install: add install sources and resources
[doom2d-restoration.git] / LIBS / SOUND.H
blobe11d293267a1d6e526326451f10cfc3dafc7e39b
1 /*
2   Управление звуком и музыкой для DOS4GW
3   Версия 1.0
4   (C) Алексей Волынсков, 1996
5 */
7 #pragma library("sound.lib")
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
13 // частота таймера
14 #define TIMER_FREQ 1193180L
16 // 1/f доля секунды в еденицах таймера (см. timer)
17 // например: for(timer=0;timer<tlength(25);); // пауза на 1/25 секунды
18 #define tlength(f) (TIMER_FREQ/f)
20 // тип драйвера
21 enum{
22   ST_NONE=-1,   // нет карты
23   ST_DAC,       // побайтовый ЦАП
24   ST_DMA        // DMA-карта
27 // заголовок инструмента (DMI)
28 typedef struct{
29   unsigned int   len,           // длина в байтах
30                  rate,          // частота в Гц.
31                  lstart,        // начало повтора в байтах от начала данных
32                  llen;          // длина повтора в байтах
33 }snd_t;
35 // установить драйвер n
36 // (см. snddrv.h)
37 void set_snd_drv(short n);
39 // проверить наличие звуковой карты
40 // возвращает 0, если карты нет
41 short S_detect(void);
43 // включить драйвер
44 void S_init(void);
46 // выключить драйвер
47 void S_done(void);
49 // проиграть звук s на канале c (1-8), частоте r и громкости v (0-255)
50 // возвращает номер канала, на котором играется звук
51 // если c==0, то звук попадет в любой свободный канал
52 // r - это относительная частота (обычно 1024)
53 short S_play(snd_t *s,short c,unsigned r,short v);
55 // остановить звук на канале c (1-8)
56 void S_stop(short c);
58 // установить частоту r у звука на канале c
59 void S_setrate(short c,unsigned r);
61 // установить громкость v (0-255) у звука на канале c
62 void S_setvolume(short c,int v);
64 // начать музыку
65 void S_startmusic(void);
67 // остановить музыку
68 void S_stopmusic(void);
70 // включить драйвер таймера
71 // обычно включается при вызове S_init()
72 void T_init(void);
74 // выключить драйвер таймера
75 // обычно выключается при вызове S_done()
76 void T_done(void);
78 // громкость звука и музыки (0-128)
79 extern short snd_vol,mus_vol;
81 extern char s_interp;
83 // порт, DMA, IRQ
84 extern unsigned short snd_port,snd_dma,snd_irq;
86 // тип карты (см. выше)
87 extern short snd_type;
89 // название карты
90 extern char *snd_name;
92 // частота смешанного звука в Герцах
93 extern unsigned short sfreq;
95 // таблица относительных частот нот
96 extern unsigned short note_tab[96];
98 // таймер
99 extern volatile int timer;
101 #ifdef __cplusplus
103 #endif