15#ifndef _LIBSND2_INTERNAL_H
16#define _LIBSND2_INTERNAL_H
26#include "libspu2_internal.h"
34 void (*m_tick_callback)();
35 void (*m_vsync_callback)();
40} libsnd2_seq_tick_env_t;
42typedef int (*libsnd2_vab_allocate_callback)(
unsigned int size_in_bytes,
int mode, s16 vab_id);
44typedef void (*libsnd2_ss_mark_callback_proc)(s16 seq_no, s16 sep_no, s16 data);
48 libsnd2_ss_mark_callback_proc m_entries[16];
49} libsnd2_sequence_marker_t;
84 s16 m_resolution_of_quarter_note;
101 unsigned int m_flags;
107} libsnd2_sequence_struct_t;
119} libsnd2_reg_buffer_struct_t;
141 s16 m_auto_vol_amount;
144 s16 m_auto_vol_start;
147 s16 m_auto_pan_amount;
150 s16 m_auto_pan_start;
153} libsnd2_spu_voice_t;
157 char m_sep_sep_no_tonecount;
183typedef void (*libsnd2_auto_vol_pan_callback)(
unsigned int voice);
192 u16 m_vab_spu_offset;
195} libsnd2_reg_buffer_struct_2_t;
197extern libsnd2_sequence_marker_t _SsMarkCallback[32];
198extern int VBLANK_MINUS;
199extern unsigned int _snd_openflag;
200extern int _snd_ev_flag;
201extern _SsFCALL SsFCALL;
202extern libsnd2_sequence_struct_t *_ss_score[32];
203extern s16 _snd_seq_s_max;
204extern s16 _snd_seq_t_max;
206extern s16 _svm_stereo_mono;
207extern int _svm_vab_not_send_size;
208extern SpuReverbAttr _svm_rattr;
209extern char _svm_vab_used[16];
210extern char _SsVmMaxVoice;
211extern s16 _svm_vab_count;
212extern s16 kMaxPrograms;
213extern libsnd2_svm_t _svm_cur;
214extern s16 _svm_damper;
215extern u8 _svm_auto_kof_mode;
216extern VabHdr *_svm_vab_vh[16];
217extern ProgAtr *_svm_vab_pg[16];
218extern VagAtr *_svm_vab_tn[16];
219extern int _svm_vab_start[16];
220extern int _svm_vab_total[16];
225extern u16 _svm_okon1;
227extern unsigned int _svm_envx_hist[16];
228extern libsnd2_spu_voice_t _svm_voice[24];
229extern u16 _svm_okof1;
230extern u16 _svm_okof2;
231extern u16 _svm_okon2;
232extern libsnd2_auto_vol_pan_callback _autovol;
233extern libsnd2_auto_vol_pan_callback _autopan;
234extern char _svm_sreg_dirty[24];
235extern libsnd2_reg_buffer_struct_t _svm_sreg_buf[24];
236extern libsnd2_reg_buffer_struct_2_t _svm_sreg_buf2[24];
237extern u16 _svm_orev2;
238extern u16 _svm_orev1;
239extern u16 _svm_onos2;
240extern u16 _svm_onos1;
242extern s16 gVabOffet[16];
244extern unsigned int _snd_vmask;
248extern libsnd2_seq_tick_env_t _snd_seq_tick_env;
249extern int _snd_seq_interval;
251extern void _SsUtResolveADSR(u16 adsr1, u16 adsr2, u16 *adsr_buf);
252extern void _SsUtBuildADSR(
const u16 *adsr_buf, u16 *adsr1, u16 *adsr2);
253extern void _SsSndCrescendo(s16 sep_no, s16 seq_no);
254extern void _SsSeqPlay(s16 sep_no, s16 seq_no);
255extern void _SsSeqGetEof(s16 sep_no, s16 seq_no);
256extern int _SsGetSeqData(s16 sep_no, s16 seq_no);
257extern s32 _SsReadDeltaValue(s16 sep_no, s16 seq_no);
258extern void _SsSndNextSep(s16 sep_no, s16 seq_no);
259extern void _SsSndNextPause(s16 sep_no, s16 seq_no);
260extern void _SsSndPause(s16 sep_no, s16 seq_no);
261extern void _SsSndPlay(s16 sep_no, s16 seq_no);
262extern void _SsSndReplay(s16 sep_no, s16 seq_no);
263extern int _SsInitSoundSep(s16 sep_no,
int seq_no, u8 vab_id, u8 *addr);
264extern s16 _SsInitSoundSeq(s16 seq_no, s16 vab_id, u8 *addr);
265extern void _SsSndSetAccele(s16 sep_no, s16 seq_no,
int tempo,
int v_time);
266extern void _SsSndSetCres(s16 sep_no, s16 seq_no, s16 vol,
int v_time);
267extern void _SsSndSetDecres(s16 sep_no, s16 seq_no, s16 vol,
int v_time);
268extern void _SsInit(
void);
269extern void _SsSndSetPauseMode(s16 sep_no, s16 seq_no);
270extern void _SsSndSetReplayMode(s16 sep_no, s16 seq_no);
271extern void Snd_SetPlayMode(s16 sep_no, s16 seq_no,
char play_mode,
char l_count);
272extern void _SsSndSetRit(s16 sep_no, s16 seq_no,
int tempo,
int v_time);
274extern void _SsTrapIntrVSync(
void);
277extern void _SsSeqCalledTbyT_1per2(
void);
279extern int _SsTrapIntrProcIOP(
void *userdata);
280extern void _SsSndStop(s16 sep_no, s16 seq_no);
281extern void _SsSndSetVol(s16 sep_no, s16 seq_no, u16 voll, u16 volr);
282extern void _SsSndTempo(s16 sep_no, s16 seq_no);
283extern void _SsSndSetVolData(s16 sep_no, s16 seq_no, s16 vol,
int v_time);
284extern s16 _SsVmAlloc(
void);
285extern void _SsVmDoAllocate(
void);
286extern void SeAutoPan(s16 vc, s16 start_pan, s16 end_pan, s16 delta_time);
287extern void SetAutoPan(
int vc);
288extern void SeAutoVol(s16 vc, s16 start_vol, s16 end_vol, s16 delta_time);
289extern void SetAutoVol(
int vc);
290extern void _SsVmDamperOff(
void);
291extern void _SsVmDamperOn(
void);
292extern void wait1fsa(
void);
293extern void DumpSpu(
void);
294extern void DumpVoice(
void);
295extern void DumpVoice2(
void);
296extern void _SsVmFlush(
void);
297extern void _SsVmInit(
int voice_count);
298extern int _SsVmKeyOn(
int seq_sep_no, s16 vab_id, s16 prog, s16 note, s16 voll, s16 unknown27);
299extern int _SsVmKeyOff(
int seq_sep_no, s16 vab_id, s16 prog, s16 note);
300extern int _SsVmSeKeyOn(s16 vab_id, s16 prog, u16 note,
int pitch, u16 voll, u16 volr);
301extern int _SsVmSeKeyOff(s16 vab_id, s16 prog, s16 note);
302extern void KeyOnCheck(
void);
303extern s16 note2pitch(
void);
304extern s16 note2pitch2(s16 note, s16 fine);
305extern void vmNoiseOn(u8 vc);
306extern void vmNoiseOn2(u8 vc, u16 voll, u16 volr, u16 arg3, u16 arg4);
307extern void vmNoiseOff(u8 vc);
308extern void _SsVmNoiseOnWithAdsr(s32 voll, s32 volr, s32 arg2, s32 arg3);
309extern void _SsVmNoiseOff(
void);
310extern void _SsVmNoiseOn(u16 voll, u16 volr);
311extern void _SsVmKeyOffNow(
void);
312extern void _SsVmKeyOnNow(s16 vag_count, s16 pitch);
313extern int _SsVmPBVoice(s16 vc, s16 seq_sep_num, s16 vab_id, s16 prog, s16 pitch);
314extern int _SsVmPitchBend(s16 seq_sep_no,
int vab_id,
int prog, s16 pitch);
315extern void _SsVmSetProgVol(s16 vab_id, s16 prog, u8 vol);
316extern int _SsVmGetProgVol(s16 vab_id, s16 prog);
317extern int _SsVmSetProgPan(s16 vab_id, s16 prog,
char mpan);
318extern int _SsVmGetProgPan(s16 vab_id, s16 prog);
319extern void _SsVmSetSeqVol(s16 seq_sep_num, s16 voll, s16 volr);
320extern void _SsVmGetSeqVol(s16 seq_sep_no, s16 *voll_ptr, s16 *volr_ptr);
321extern int _SsVmGetSeqLVol(s16 seq_sep_no);
322extern int _SsVmGetSeqRVol(s16 seq_sep_no);
323extern void _SsVmSeqKeyOff(s16 seq_sep_no);
324extern void SePitchBend(u8 vc, s16 arg1);
325extern s16 _SsVmSelectToneAndVag(u8 *vag_attr_idx_ptr, u8 *vag_nums_ptr);
326extern void SeVibOn(
void);
327extern void SetVib(
void);
328extern void SsUtVibrateOn(
void);
329extern void SsUtVibrateOff(
void);
330extern int _SsVmSetVol(s16 seq_sep_no, s16 vab_id, s16 prog, s16 voll, s16 volr);
331extern int _SsVmVSetUp(s16 vab_id, s16 prog);
332extern int _SsVabOpenHeadWithMode(u8 *addr,
int vab_id, libsnd2_vab_allocate_callback alloc_fn,
int mode);