PS2SDK
PS2 Homebrew Libraries
libsnd2.h
1 /*
2 # _____ ___ ____ ___ ____
3 # ____| | ____| | | |____|
4 # | ___| |____ ___| ____| | \ PS2DEV Open Source Project.
5 #-----------------------------------------------------------------------
6 # Copyright ps2dev - http://www.ps2dev.org
7 # Licenced under Academic Free License version 2.0
8 # Review ps2sdk README & LICENSE files for further details.
9 */
10 
11 #ifndef _LIBSND2_H
12 #define _LIBSND2_H
13 
14 enum libsnd2_ss_tick_enum
15 {
16  SS_NOTICK = 0x1000,
17  SS_NOTICK0 = 0,
18  SS_TICK60,
19  SS_TICK240,
20  SS_TICK120,
21  SS_TICK50,
22  SS_TICKVSYNC,
23  SS_TICKMODE_MAX,
24 };
25 
26 enum libsnd2_ss_play_enum
27 {
28  SSPLAY_INFINITY = 0,
29  SSPLAY_PAUSE = 0,
30  SSPLAY_PLAY,
31 };
32 
33 enum libsnd2_ss_s_enum
34 {
35  SS_SOFF = 0,
36  SS_SON,
37 };
38 
39 enum libsnd2_ss_mix_enum
40 {
41  SS_MIX = 0,
42  SS_REV,
43 };
44 
45 enum libsnd2_ss_serial_enum
46 {
47  SS_SERIAL_A = 0,
48  SS_SERIAL_B,
49 };
50 
51 enum libsnd2_ss_mute_enum
52 {
53  SS_MUTE_OFF = 0,
54  SS_MUTE_ON,
55 };
56 
57 enum libsnd2_wait_enum
58 {
59  SS_IMEDIATE = 0,
60  SS_IMMEDIATE = 0,
61  SS_WAIT_COMPLETED,
62 };
63 
64 enum libsnd2_ss_rev_type_enum
65 {
66  SS_REV_TYPE_CHECK = -1,
67  SS_REV_TYPE_OFF = 0,
68  SS_REV_TYPE_ROOM,
69  SS_REV_TYPE_STUDIO_A,
70  SS_REV_TYPE_STUDIO_B,
71  SS_REV_TYPE_STUDIO_C,
72  SS_REV_TYPE_HALL,
73  SS_REV_TYPE_SPACE,
74  SS_REV_TYPE_ECHO,
75  SS_REV_TYPE_DELAY,
76  SS_REV_TYPE_PIPE,
77  SS_REV_TYPE_MAX,
78 };
79 
80 enum libsnd2_ss_skip_enum
81 {
82  SSSKIP_TICK = 0,
83  SSSKIP_NOTE4,
84  SSSKIP_NOTE8,
85  SSSKIP_BAR,
86 };
87 
88 // sizeof(libsnd2_sequence_struct_t)
89 #define SS_SEQ_TABSIZ 0xb0
90 
91 #define SND_VOLL (1 << 0)
92 #define SND_VOLR (1 << 1)
93 #define SND_ADSR1 (1 << 2)
94 #define SND_ADSR2 (1 << 3)
95 #define SND_ADDR (1 << 4)
96 #define SND_PITCH (1 << 5)
97 
98 enum libsnd2_control_enum
99 {
100  CC_NUMBER = 0,
101  CC_BANKCHANGE,
102  CC_DATAENTRY,
103  CC_MAINVOL,
104  CC_PANPOT,
105  CC_EXPRESSION,
106  CC_DAMPER,
107  CC_NRPN1,
108  CC_NRPN2,
109  CC_RPN1,
110  CC_RPN2,
111  CC_EXTERNAL,
112  CC_RESETALL,
113  CC_MAX,
114 };
115 
116 enum libsnd2_ccentry_enum
117 {
118  DE_PRIORITY = 0,
119  DE_MODE,
120  DE_LIMITL,
121  DE_LIMITH,
122  DE_ADSR_AR_L,
123  DE_ADSR_AR_E,
124  DE_ADSR_DR,
125  DE_ADSR_SL,
126  DE_ADSR_SR_L,
127  DE_ADSR_SR_E,
128  DE_ADSR_RR_L,
129  DE_ADSR_RR_E,
130  DE_ADSR_SR,
131  DE_VIB_TIME,
132  DE_PORTA_DEPTH,
133  DE_REV_TYPE,
134  DE_REV_DEPTH,
135  DE_ECHO_FB,
136  DE_ECHO_DELAY,
137  DE_DELAY,
138  DE_MAX,
139 };
140 
141 typedef struct VabHdr
142 {
143  int form;
144  int ver;
145  int id;
146  unsigned int fsize;
147  u16 reserved0;
148  u16 ps;
149  u16 ts;
150  u16 vs;
151  u8 mvol;
152  u8 pan;
153  u8 attr1;
154  u8 attr2;
155  unsigned int reserved1;
156 } VabHdr;
157 
158 typedef struct ProgAtr
159 {
160  u8 tones;
161  u8 mvol;
162  u8 prior;
163  u8 mode;
164  u8 mpan;
165  char reserved0;
166  s16 attr;
167  unsigned int m_fake_prog_idx;
168  u16 m_vag_spu_addr_hi;
169  u16 m_vag_spu_addr_lo;
170 } ProgAtr;
171 
172 typedef struct VagAtr
173 {
174  u8 prior;
175  u8 mode;
176  u8 vol;
177  u8 pan;
178  u8 center;
179  u8 shift;
180  u8 min;
181  u8 max;
182  u8 vibW;
183  u8 vibT;
184  u8 porW;
185  u8 porT;
186  u8 pbmin;
187  u8 pbmax;
188  u8 reserved1;
189  u8 reserved2;
190  u16 adsr1;
191  u16 adsr2;
192  s16 prog;
193  s16 vag;
194  s16 reserved[4];
195 } VagAtr;
196 
197 typedef struct SndVolume_
198 {
199  u16 left;
200  u16 right;
201 } SndVolume;
202 
203 typedef struct SndVolume2
204 {
205  s16 left;
206  s16 right;
207 } SndVolume2;
208 
209 typedef struct SndRegisterAttr
210 {
211  SndVolume2 volume;
212  s16 pitch;
213  s16 mask;
214  s16 addr;
215  s16 adsr1;
216  s16 adsr2;
218 
219 typedef struct SndVoiceStats
220 {
221  s16 vagId;
222  s16 vabId;
223  u16 pitch;
224  s16 note;
225  s16 tone;
226  s16 prog_num;
227  s16 prog_actual;
228  s16 vol;
229  s16 pan;
230 } SndVoiceStats;
231 
232 typedef void (*SsMarkCallbackProc)(s16 sep_no, s16 seq_no, s16 control_value);
233 
234 typedef struct _SsFCALL_
235 {
236  void (*noteon)(s16 sep_no, s16 seq_no, u8 midi_byte_next, u8 midi_byte);
237  void (*programchange)(s16 sep_no, s16 seq_no, u8 midi_byte);
238  void (*pitchbend)(s16 sep_no, s16 seq_no);
239  void (*metaevent)(s16 sep_no, s16 seq_no, u8 midi_byte);
240  void (*control[CC_MAX])(s16 sep_no, s16 seq_no, u8 midi_byte);
241  void (*ccentry[DE_MAX])(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
242 } _SsFCALL;
243 
244 extern void _SsContBankChange(s16 sep_no, s16 seq_no, u8 control_value);
245 extern void _SsContDataEntry(s16 sep_no, s16 seq_no, u8 control_value);
246 extern void _SsContMainVol(s16 sep_no, s16 seq_no, u8 control_value);
247 extern void _SsContPanpot(s16 sep_no, s16 seq_no, u8 control_value);
248 extern void _SsContExpression(s16 sep_no, s16 seq_no, u8 control_value);
249 extern void _SsContDamper(s16 sep_no, s16 seq_no, u8 control_value);
250 extern void _SsContExternal(s16 sep_no, s16 seq_no, u8 control_value);
251 extern void _SsContNrpn1(s16 sep_no, s16 seq_no, u8 control_value);
252 extern void _SsContNrpn2(s16 sep_no, s16 seq_no, u8 control_value);
253 extern void _SsContRpn1(s16 sep_no, s16 seq_no, u8 control_value);
254 extern void _SsContRpn2(s16 sep_no, s16 seq_no, u8 control_value);
255 extern void _SsContResetAll(s16 sep_no, s16 seq_no, u8 control_value);
256 extern void _SsSetNrpnVabAttr0(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
257 extern void _SsSetNrpnVabAttr1(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
258 extern void _SsSetNrpnVabAttr2(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
259 extern void _SsSetNrpnVabAttr3(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
260 extern void _SsSetNrpnVabAttr4(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
261 extern void _SsSetNrpnVabAttr5(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
262 extern void _SsSetNrpnVabAttr6(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
263 extern void _SsSetNrpnVabAttr7(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
264 extern void _SsSetNrpnVabAttr8(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
265 extern void _SsSetNrpnVabAttr9(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
266 extern void _SsSetNrpnVabAttr10(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
267 extern void _SsSetNrpnVabAttr11(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
268 extern void _SsSetNrpnVabAttr12(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
269 extern void _SsSetNrpnVabAttr13(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
270 extern void _SsSetNrpnVabAttr14(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
271 extern void _SsSetNrpnVabAttr15(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
272 extern void _SsSetNrpnVabAttr16(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
273 extern void _SsSetNrpnVabAttr17(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
274 extern void _SsSetNrpnVabAttr18(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
275 extern void _SsSetNrpnVabAttr19(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
276 extern void _SsSetPitchBend(s16 sep_no, s16 seq_no);
277 extern void _SsSetControlChange(s16 sep_no, s16 seq_no, u8 control_value);
278 extern void _SsGetMetaEvent(s16 sep_no, s16 seq_no, u8 meta_event);
279 extern void _SsNoteOn(s16 sep_no, s16 seq_no, u8 note, u8 vollr);
280 extern void _SsSetProgramChange(s16 sep_no, s16 seq_no, u8 prog);
281 extern void SsSeqSetAccelerando(s16 seq_no, int tempo, int v_time);
282 extern void SsSepSetAccelerando(s16 seq_no, s16 sep_no, int tempo, int v_time);
283 extern void SsSeqCalledTbyT(void);
284 extern void SsSeqClose(s16 seq_sep_no);
285 extern void SsSepClose(s16 seq_sep_no);
286 extern void SsChannelMute(s16 sep_no, s16 seq_no, int channels);
287 extern int SsGetChannelMute(s16 sep_no, s16 seq_no);
288 extern void SsSeqSetCrescendo(s16 sep_no, s16 vol, int v_time);
289 extern void SsSepSetCrescendo(s16 sep_no, s16 seq_no, s16 vol, int v_time);
290 extern void SsSeqSetDecrescendo(s16 sep_no, s16 vol, int v_time);
291 extern void SsSepSetDecrescendo(s16 sep_no, s16 seq_no, s16 vol, int v_time);
292 extern void SsEnd(void);
293 extern char SsGetMute(void);
294 extern void SsGetMVol(SndVolume *m_vol);
295 extern s16 SsGetNck(void);
296 extern void SsGetRVol(SndVolume *r_vol);
297 extern char SsGetSerialAttr(char s_num, char attr);
298 extern void SsGetSerialVol(char s_num, SndVolume *s_vol);
299 extern void SsInit(void);
300 extern void SsPitchCorrect(s16 pitch_correct);
301 extern void SsInitHot(void);
302 extern void SsSetLoop(s16 sep_no, s16 seq_no, s16 l_count);
303 extern s16 SsIsEos(s16 sep_no, s16 seq_no);
304 extern void SsSetMarkCallback(s16 sep_no, s16 seq_no, SsMarkCallbackProc proc);
305 extern void SsSetNext(s16 sep_no1, s16 seq_no1, s16 sep_no2, s16 seq_no2);
306 extern void SsSeqSetNext(s16 sep_no1, s16 sep_no2);
307 extern void SsSetNoiseOff(void);
308 extern void SsSetNoiseOn(s16 voll, s16 volr);
309 extern s16 SsSepOpen(unsigned int *addr, s16 vab_id, s16 seq_cnt);
310 extern s16 SsSeqOpen(unsigned int *addr, s16 vab_id);
311 extern s16 SsSepOpenJ(unsigned int *addr, s16 vab_id, s16 seq_cnt);
312 extern s16 SsSeqOpenJ(unsigned int *addr, s16 vab_id);
313 extern void SsSeqPause(s16 sep_no);
314 extern void SsSepPause(s16 sep_no, s16 seq_no);
315 extern void SsSeqPlay(s16 sep_no, char play_mode, s16 l_count);
316 extern void SsSepPlay(s16 sep_no, s16 seq_no, char play_mode, s16 l_count);
317 extern void SsPlayBack(s16 sep_no, s16 seq_no, s16 l_count);
318 extern void SsQuit(void);
319 extern void SsSeqReplay(s16 sep_no);
320 extern void SsSepReplay(s16 sep_no, s16 seq_no);
321 extern void SsSeqSetRitardando(s16 sep_no, int tempo, int v_time);
322 extern void SsSepSetRitardando(s16 sep_no, s16 seq_no, int tempo, int v_time);
323 extern int SsSeqSkip(s16 sep_no, s16 seq_no, char unit, s16 count);
324 extern int SsSetCurrentPoint(s16 sep_no, s16 seq_no, u8 *point);
325 extern void SsSeqPlayPtoP(s16 sep_no, s16 seq_no, u8 *start_point, u8 *end_point, char play_mode, s16 l_count);
326 extern void SsSetSerialAttr(char s_num, char attr, char mode);
327 extern void SsSetMute(char mode);
328 extern void SsSetMVol(s16 voll, s16 volr);
329 extern void SsSetNck(s16 n_clock);
330 extern void SsSetRVol(s16 voll, s16 volr);
331 extern void SsStart(void);
332 extern void SsStart2(void);
333 extern void SsSeqStop(s16 sep_no);
334 extern void SsSepStop(s16 sep_no, s16 seq_no);
335 extern void SsSetSerialVol(char s_num, s16 voll, s16 volr);
336 extern void SsSetTableSize(char *table, s16 s_max, s16 t_max);
337 extern void SsSetTempo(s16 sep_no, s16 seq_no, s16 tempo);
338 extern void SsSetTickMode(int tick_mode);
339 extern void *SsSetTickCallback(void (*cb)(void));
340 extern int SsVoKeyOff(int vab_pro, int pitch);
341 extern int SsVoKeyOn(int vab_pro, int pitch, u16 voll, u16 volr);
342 extern void SsSeqSetVol(s16 sep_no, s16 voll, s16 volr);
343 extern void SsSepSetVol(s16 sep_no, s16 seq_no, s16 voll, s16 volr);
344 extern void SsSeqGetVol(s16 sep_no, s16 seq_no, s16 *voll, s16 *volr);
345 extern void dmy_nothing1(s16 seq_no, s16 sep_no, u8 note, u8 vollr);
346 extern void dmy_SsNoteOn(s16 sep_no, s16 seq_no, u8 note, u8 vollr);
347 extern void dmy_SsSetProgramChange(s16 sep_no, s16 seq_no, u8 prog);
348 extern void dmy_SsGetMetaEvent(s16 sep_no, s16 seq_no, u8 meta_event);
349 extern void dmy_SsSetPitchBend(s16 sep_no, s16 seq_no);
350 extern void dmy_SsSetControlChange(s16 sep_no, s16 seq_no, u8 control_value);
351 extern void dmy_SsContBankChange(s16 sep_no, s16 seq_no, u8 control_value);
352 extern void dmy_SsContDataEntry(s16 sep_no, s16 seq_no, u8 control_value);
353 extern void dmy_SsContMainVol(s16 sep_no, s16 seq_no, u8 control_value);
354 extern void dmy_SsContPanpot(s16 sep_no, s16 seq_no, u8 control_value);
355 extern void dmy_SsContExpression(s16 sep_no, s16 seq_no, u8 control_value);
356 extern void dmy_SsContDamper(s16 sep_no, s16 seq_no, u8 control_value);
357 extern void dmy_SsContExternal(s16 sep_no, s16 seq_no, u8 control_value);
358 extern void dmy_SsContNrpn1(s16 sep_no, s16 seq_no, u8 control_value);
359 extern void dmy_SsContNrpn2(s16 sep_no, s16 seq_no, u8 control_value);
360 extern void dmy_SsContRpn1(s16 sep_no, s16 seq_no, u8 control_value);
361 extern void dmy_SsContRpn2(s16 sep_no, s16 seq_no, u8 control_value);
362 extern void dmy_SsContResetAll(s16 sep_no, s16 seq_no, u8 control_value);
363 extern void dmy_SsSetNrpnVabAttr0(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
364 extern void dmy_SsSetNrpnVabAttr1(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
365 extern void dmy_SsSetNrpnVabAttr2(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
366 extern void dmy_SsSetNrpnVabAttr3(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
367 extern void dmy_SsSetNrpnVabAttr4(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
368 extern void dmy_SsSetNrpnVabAttr5(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
369 extern void dmy_SsSetNrpnVabAttr6(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
370 extern void dmy_SsSetNrpnVabAttr7(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
371 extern void dmy_SsSetNrpnVabAttr8(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
372 extern void dmy_SsSetNrpnVabAttr9(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
373 extern void dmy_SsSetNrpnVabAttr10(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
374 extern void dmy_SsSetNrpnVabAttr11(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
375 extern void dmy_SsSetNrpnVabAttr12(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
376 extern void dmy_SsSetNrpnVabAttr13(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
377 extern void dmy_SsSetNrpnVabAttr14(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
378 extern void dmy_SsSetNrpnVabAttr15(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
379 extern void dmy_SsSetNrpnVabAttr16(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
380 extern void dmy_SsSetNrpnVabAttr17(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
381 extern void dmy_SsSetNrpnVabAttr18(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
382 extern void dmy_SsSetNrpnVabAttr19(s16 vab_id, s16 prog, s16 tone, VagAtr vag_attr, s16 fn_idx, u8 attribute_value);
383 extern u8 *SsGetCurrentPoint(s16 sep_no, s16 seq_no);
384 extern void SsSetVoiceMask(unsigned int s_voice);
385 extern unsigned int SsGetVoiceMask(void);
386 extern void SsUtAllKeyOff(s16 mode);
387 extern s16 SsUtAutoPan(s16 vc, s16 start_pan, s16 end_pan, s16 delta_time);
388 extern s16 SsUtAutoVol(s16 vc, s16 start_vol, s16 end_vol, s16 delta_time);
389 extern s16 SsUtChangeADSR(s16 vc, s16 vab_id, s16 prog, s16 old_note, u16 adsr1, u16 adsr2);
390 extern s16 SsUtChangePitch(s16 vc, s16 vab_id, s16 prog, s16 old_note, s16 old_fine, s16 new_note, s16 new_fine);
391 extern void SsUtFlush(void);
392 extern s16 SsUtGetProgAtr(s16 vab_id, s16 prog, ProgAtr *prog_attr_ptr);
393 extern s16 SsUtGetVagAtr(s16 vab_id, s16 prog, s16 tone, VagAtr *vag_attr_ptr);
394 extern int SsUtGetVagAddr(s16 vab_id, s16 vag_id);
395 extern unsigned int SsUtGetVagAddrFromTone(s16 vab_id, s16 prog, s16 tone);
396 extern unsigned int SsUtGetVBaddrInSB(s16 vab_id);
397 extern s16 SsUtGetVabHdr(s16 vab_id, VabHdr *vab_hdr_ptr);
398 extern s16 SsUtKeyOn(s16 vab_id, s16 prog, s16 tone, s16 note, s16 fine, s16 voll, s16 volr);
399 extern s16 SsUtKeyOff(s16 vc, s16 vab_id, s16 prog, s16 tone, s16 note);
400 extern s16 SsUtKeyOnV(s16 vc, s16 vab_id, s16 prog, s16 tone, s16 note, s16 fine, s16 voll, s16 volr);
401 extern s16 SsUtKeyOffV(s16 vc);
402 extern s16 SsUtPitchBend(s16 vc, s16 vab_id, s16 prog, s16 note, s16 pbend);
403 extern void SsUtSetReverbDelay(s16 delay);
404 extern void SsUtSetReverbDepth(s16 ldepth, s16 rdepth);
405 extern s16 SsUtSetReverbType(s16 type);
406 extern s16 SsUtGetReverbType(void);
407 extern void SsUtSetReverbFeedback(s16 feedback);
408 extern void SsUtReverbOff(void);
409 extern void SsUtReverbOn(void);
410 extern s16 SsUtSetProgAtr(s16 vab_id, s16 prog, const ProgAtr *prog_attr_ptr);
411 extern s16 SsUtSetVagAtr(s16 vab_id, s16 prog, s16 tone, const VagAtr *vag_attr_ptr);
412 extern s16 SsUtSetVabHdr(s16 vab_id, const VabHdr *vab_hdr_ptr);
413 extern s16 SsUtGetDetVVol(s16 vc, s16 *detvoll, s16 *detvolr);
414 extern s16 SsUtSetDetVVol(s16 vc, s16 detvoll, s16 detvolr);
415 extern s16 SsUtGetVVol(s16 vc, s16 *voll, s16 *volr);
416 extern s16 SsUtSetVVol(s16 vc, s16 voll, s16 volr);
417 extern u16 SsPitchFromNote(s16 note, s16 fine, u8 center, u8 shift);
418 extern void SsSetAutoKeyOffMode(s16 mode);
419 extern void SsSetMono(void);
420 extern void SsSetStereo(void);
421 extern char SsSetReservedVoice(char voices);
422 extern void SsVabClose(s16 vab_id);
423 extern s16 SsVabFakeBody(s16 vab_id);
424 extern s16 SsVabOpenHeadSticky(u8 *addr, s16 vab_id, unsigned int sbaddr);
425 extern s16 SsVabFakeHead(u8 *addr, s16 vab_id, unsigned int sbaddr);
426 extern s16 SsVabOpenHead(u8 *addr, s16 vab_id);
427 extern s16 SsVabTransfer(u8 *vh_addr, u8 *vb_addr, s16 vab_id, s16 i_flag);
428 extern s16 SsVabTransBody(u8 *addr, s16 vab_id);
429 extern s16 SsVabTransBodyPartly(u8 *addr, unsigned int bufsize, s16 vab_id);
430 extern s16 SsVabTransCompleted(s16 immediate_flag);
431 extern char SsBlockVoiceAllocation(void);
432 extern char SsUnBlockVoiceAllocation(void);
433 extern int SsAllocateVoices(u8 voices, u8 priority);
434 extern void SsQueueKeyOn(int voices);
435 extern void SsQueueReverb(int voices, int reverb);
436 extern void SsQueueRegisters(int vc, SndRegisterAttr *sra);
437 extern s16 SsGetActualProgFromProg(s16 vab_id, s16 prog);
438 extern void SsSetVoiceSettings(int vc, const SndVoiceStats *snd_v_attr);
439 extern s16 SsVoiceCheck(int vc, int vab_id, s16 note);
440 
441 #endif
SndRegisterAttr
Definition: libsnd2.h:209
count
u32 count
start sector of fragmented bd/file
Definition: usbhdfsd-common.h:3
VabHdr
Definition: libsnd2.h:141
_SsFCALL_
Definition: libsnd2.h:234
VagAtr
Definition: libsnd2.h:172
SndVolume_
Definition: libsnd2.h:197
ProgAtr
Definition: libsnd2.h:158
SndVoiceStats
Definition: libsnd2.h:219
SndVolume2
Definition: libsnd2.h:203