install: add install sources and resources
[doom2d-restoration.git] / LIBS / FSOUND.H
blobecd4df561623b9a1d81113765ca9ba11df618c1a
1 /*
2   Упрощенное управление звуком для DOS4GW
3   Версия 1.1
4   (C) Алексей Волынсков, 1996
5 */
7 #pragma library("fsound.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 long  len,    // длина в байтах
30                  rate,   // частота в Герцах
31                  lstart, // начало повтора в байтах от начала данных
32                  llen;   // длина повтора в байтах
33 }snd;
35 // установить драйвер n
36 // (см. snddrv.h)
37 void set_snd_drv(short n);
39 // проверить наличие звуковой карты
40 // возвращает 0, если карты нет
41 int S_detect(void);
43 // включить драйвер
44 void S_init(void);
46 // выключить драйвер
47 void S_done(void);
49 // проиграть звук s
50 void S_play(snd *s);
52 // проиграть звук s длины l, повторяя c ls длиной ll
53 void S_playraw(char *s,int l,int ls,int ll);
55 // остановить звук
56 void S_stop(void);
58 // проигрывается ли звук?
59 // возвращает 0, если нет
60 int S_issound(void);
62 // загрузить звук из файла f (чистый 8-битовый звук)
63 // и установить его частоту r (Гц), начало и длину повтора ls и ll
64 // (если ll==0, то звук не повторяется)
65 // (если ll==1, то звук повторяется полностью)
66 snd *load_snd(char *f,unsigned r,unsigned ls,unsigned ll);
68 // загрузить звук из файла f (формат DMI)
69 snd *load_dmi(char *f);
71 // включить драйвер таймера
72 // обычно включается при вызове S_init()
73 void T_init(void);
75 // выключить драйвер таймера
76 // обычно выключается при вызове S_done()
77 void T_done(void);
79 // порт, DMA, IRQ
80 extern unsigned short snd_port,snd_dma,snd_irq;
82 // тип карты (см. выше)
83 extern short snd_type;
85 // название карты
86 extern char *snd_name;
88 // частота смешанного звука в Герцах
89 extern unsigned short sfreq;
91 // таймер
92 extern volatile int timer;
94 #ifdef __cplusplus
96 #endif