2 Упрощенное управление звуком для DOS4GW
4 (C) Алексей Волынсков, 1996
7 #pragma library("fsound.lib")
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)
22 ST_NONE=-1, // нет карты
23 ST_DAC, // побайтовый ЦАП
27 // заголовок инструмента (DMI)
29 unsigned long len, // длина в байтах
30 rate, // частота в Герцах
31 lstart, // начало повтора в байтах от начала данных
32 llen; // длина повтора в байтах
35 // установить драйвер n
37 void set_snd_drv(short n);
39 // проверить наличие звуковой карты
40 // возвращает 0, если карты нет
52 // проиграть звук s длины l, повторяя c ls длиной ll
53 void S_playraw(char *s,int l,int ls,int ll);
58 // проигрывается ли звук?
59 // возвращает 0, если нет
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()
75 // выключить драйвер таймера
76 // обычно выключается при вызове S_done()
80 extern unsigned short snd_port,snd_dma,snd_irq;
82 // тип карты (см. выше)
83 extern short snd_type;
86 extern char *snd_name;
88 // частота смешанного звука в Герцах
89 extern unsigned short sfreq;
92 extern volatile int timer;