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