11#ifndef _LIBSND2_INTERNAL_H
12#define _LIBSND2_INTERNAL_H
22#include "libspu2_internal.h"
30 void (*m_tick_callback)();
31 void (*m_vsync_callback)();
38typedef int (*libsnd2_vab_allocate_callback)(
unsigned int size_in_bytes,
int mode, s16 vab_id);
40typedef void (*libsnd2_ss_mark_callback_proc)(s16 seq_no, s16 sep_no, s16 data);
44 libsnd2_ss_mark_callback_proc m_entries[16];
80 s16 m_resolution_of_quarter_note;
137 s16 m_auto_vol_amount;
140 s16 m_auto_vol_start;
143 s16 m_auto_pan_amount;
146 s16 m_auto_pan_start;
153 char m_sep_sep_no_tonecount;
179typedef void (*libsnd2_auto_vol_pan_callback)(
unsigned int voice);
188 u16 m_vab_spu_offset;
194extern int VBLANK_MINUS;
195extern unsigned int _snd_openflag;
196extern int _snd_ev_flag;
199extern s16 _snd_seq_s_max;
200extern s16 _snd_seq_t_max;
202extern s16 _svm_stereo_mono;
203extern int _svm_vab_not_send_size;
205extern char _svm_vab_used[16];
206extern char _SsVmMaxVoice;
207extern s16 _svm_vab_count;
208extern s16 kMaxPrograms;
210extern s16 _svm_damper;
211extern u8 _svm_auto_kof_mode;
212extern VabHdr *_svm_vab_vh[16];
213extern ProgAtr *_svm_vab_pg[16];
214extern VagAtr *_svm_vab_tn[16];
215extern int _svm_vab_start[16];
216extern int _svm_vab_total[16];
221extern u16 _svm_okon1;
223extern unsigned int _svm_envx_hist[16];
225extern u16 _svm_okof1;
226extern u16 _svm_okof2;
227extern u16 _svm_okon2;
228extern libsnd2_auto_vol_pan_callback _autovol;
229extern libsnd2_auto_vol_pan_callback _autopan;
230extern char _svm_sreg_dirty[24];
233extern u16 _svm_orev2;
234extern u16 _svm_orev1;
235extern u16 _svm_onos2;
236extern u16 _svm_onos1;
238extern s16 gVabOffet[16];
240extern unsigned int _snd_vmask;
245extern int _snd_seq_interval;
247extern void _SsUtResolveADSR(u16 adsr1, u16 adsr2, u16 *adsr_buf);
248extern void _SsUtBuildADSR(
const u16 *adsr_buf, u16 *adsr1, u16 *adsr2);
249extern void _SsSndCrescendo(s16 sep_no, s16 seq_no);
250extern void _SsSeqPlay(s16 sep_no, s16 seq_no);
251extern void _SsSeqGetEof(s16 sep_no, s16 seq_no);
252extern int _SsGetSeqData(s16 sep_no, s16 seq_no);
253extern s32 _SsReadDeltaValue(s16 sep_no, s16 seq_no);
254extern void _SsSndNextSep(s16 sep_no, s16 seq_no);
255extern void _SsSndNextPause(s16 sep_no, s16 seq_no);
256extern void _SsSndPause(s16 sep_no, s16 seq_no);
257extern void _SsSndPlay(s16 sep_no, s16 seq_no);
258extern void _SsSndReplay(s16 sep_no, s16 seq_no);
259extern int _SsInitSoundSep(s16 sep_no,
int seq_no, u8 vab_id, u8 *addr);
260extern s16 _SsInitSoundSeq(s16 seq_no, s16 vab_id, u8 *addr);
261extern void _SsSndSetAccele(s16 sep_no, s16 seq_no,
int tempo,
int v_time);
262extern void _SsSndSetCres(s16 sep_no, s16 seq_no, s16 vol,
int v_time);
263extern void _SsSndSetDecres(s16 sep_no, s16 seq_no, s16 vol,
int v_time);
264extern void _SsInit(
void);
265extern void _SsSndSetPauseMode(s16 sep_no, s16 seq_no);
266extern void _SsSndSetReplayMode(s16 sep_no, s16 seq_no);
267extern void Snd_SetPlayMode(s16 sep_no, s16 seq_no,
char play_mode,
char l_count);
268extern void _SsSndSetRit(s16 sep_no, s16 seq_no,
int tempo,
int v_time);
270extern void _SsTrapIntrVSync(
void);
273extern void _SsSeqCalledTbyT_1per2(
void);
275extern int _SsTrapIntrProcIOP(
void *userdata);
276extern void _SsSndStop(s16 sep_no, s16 seq_no);
277extern void _SsSndSetVol(s16 sep_no, s16 seq_no, u16 voll, u16 volr);
278extern void _SsSndTempo(s16 sep_no, s16 seq_no);
279extern void _SsSndSetVolData(s16 sep_no, s16 seq_no, s16 vol,
int v_time);
280extern s16 _SsVmAlloc(
void);
281extern void _SsVmDoAllocate(
void);
282extern void SeAutoPan(s16 vc, s16 start_pan, s16 end_pan, s16 delta_time);
283extern void SetAutoPan(
int vc);
284extern void SeAutoVol(s16 vc, s16 start_vol, s16 end_vol, s16 delta_time);
285extern void SetAutoVol(
int vc);
286extern void _SsVmDamperOff(
void);
287extern void _SsVmDamperOn(
void);
288extern void wait1fsa(
void);
289extern void DumpSpu(
void);
290extern void DumpVoice(
void);
291extern void DumpVoice2(
void);
292extern void _SsVmFlush(
void);
293extern void _SsVmInit(
int voice_count);
294extern int _SsVmKeyOn(
int seq_sep_no, s16 vab_id, s16 prog, s16 note, s16 voll, s16 unknown27);
295extern int _SsVmKeyOff(
int seq_sep_no, s16 vab_id, s16 prog, s16 note);
296extern int _SsVmSeKeyOn(s16 vab_id, s16 prog, u16 note,
int pitch, u16 voll, u16 volr);
297extern int _SsVmSeKeyOff(s16 vab_id, s16 prog, s16 note);
298extern void KeyOnCheck(
void);
299extern s16 note2pitch(
void);
300extern s16 note2pitch2(s16 note, s16 fine);
301extern void vmNoiseOn(u8 vc);
302extern void vmNoiseOn2(u8 vc, u16 voll, u16 volr, u16 arg3, u16 arg4);
303extern void vmNoiseOff(u8 vc);
304extern void _SsVmNoiseOnWithAdsr(s32 voll, s32 volr, s32 arg2, s32 arg3);
305extern void _SsVmNoiseOff(
void);
306extern void _SsVmNoiseOn(u16 voll, u16 volr);
307extern void _SsVmKeyOffNow(
void);
308extern void _SsVmKeyOnNow(s16 vag_count, s16 pitch);
309extern int _SsVmPBVoice(s16 vc, s16 seq_sep_num, s16 vab_id, s16 prog, s16 pitch);
310extern int _SsVmPitchBend(s16 seq_sep_no,
int vab_id,
int prog, s16 pitch);
311extern void _SsVmSetProgVol(s16 vab_id, s16 prog, u8 vol);
312extern int _SsVmGetProgVol(s16 vab_id, s16 prog);
313extern int _SsVmSetProgPan(s16 vab_id, s16 prog,
char mpan);
314extern int _SsVmGetProgPan(s16 vab_id, s16 prog);
315extern void _SsVmSetSeqVol(s16 seq_sep_num, s16 voll, s16 volr);
316extern void _SsVmGetSeqVol(s16 seq_sep_no, s16 *voll_ptr, s16 *volr_ptr);
317extern int _SsVmGetSeqLVol(s16 seq_sep_no);
318extern int _SsVmGetSeqRVol(s16 seq_sep_no);
319extern void _SsVmSeqKeyOff(s16 seq_sep_no);
320extern void SePitchBend(u8 vc, s16 arg1);
321extern s16 _SsVmSelectToneAndVag(u8 *vag_attr_idx_ptr, u8 *vag_nums_ptr);
322extern void SeVibOn(
void);
323extern void SetVib(
void);
324extern void SsUtVibrateOn(
void);
325extern void SsUtVibrateOff(
void);
326extern int _SsVmSetVol(s16 seq_sep_no, s16 vab_id, s16 prog, s16 voll, s16 volr);
327extern int _SsVmVSetUp(s16 vab_id, s16 prog);
328extern int _SsVabOpenHeadWithMode(u8 *addr,
int vab_id, libsnd2_vab_allocate_callback alloc_fn,
int mode);