11#include "libsnd2_internal.h"
13s16 SsSepOpen(
unsigned int *addr, s16 vab_id, s16 seq_cnt)
20 if ( _snd_openflag == (u32)-1 )
22 printf(
"Can't Open Sequence data any more\n\n");
25 SsFCALL.noteon = _SsNoteOn;
26 SsFCALL.programchange = _SsSetProgramChange;
27 SsFCALL.metaevent = _SsGetMetaEvent;
28 SsFCALL.pitchbend = _SsSetPitchBend;
29 SsFCALL.control[CC_NUMBER] = _SsSetControlChange;
30 SsFCALL.control[CC_BANKCHANGE] = _SsContBankChange;
31 SsFCALL.control[CC_MAINVOL] = _SsContMainVol;
32 SsFCALL.control[CC_PANPOT] = _SsContPanpot;
33 SsFCALL.control[CC_EXPRESSION] = _SsContExpression;
34 SsFCALL.control[CC_DAMPER] = _SsContDamper;
35 SsFCALL.control[CC_NRPN1] = _SsContNrpn1;
36 SsFCALL.control[CC_NRPN2] = _SsContNrpn2;
37 SsFCALL.control[CC_RPN1] = _SsContRpn1;
38 SsFCALL.control[CC_RPN2] = _SsContRpn2;
39 SsFCALL.control[CC_EXTERNAL] = _SsContExternal;
40 SsFCALL.control[CC_RESETALL] = _SsContResetAll;
41 SsFCALL.control[CC_DATAENTRY] = _SsContDataEntry;
42 SsFCALL.ccentry[DE_PRIORITY] = _SsSetNrpnVabAttr0;
43 SsFCALL.ccentry[DE_MODE] = _SsSetNrpnVabAttr1;
44 SsFCALL.ccentry[DE_LIMITL] = _SsSetNrpnVabAttr2;
45 SsFCALL.ccentry[DE_LIMITH] = _SsSetNrpnVabAttr3;
46 SsFCALL.ccentry[DE_ADSR_AR_L] = _SsSetNrpnVabAttr4;
47 SsFCALL.ccentry[DE_ADSR_AR_E] = _SsSetNrpnVabAttr5;
48 SsFCALL.ccentry[DE_ADSR_DR] = _SsSetNrpnVabAttr6;
49 SsFCALL.ccentry[DE_ADSR_SL] = _SsSetNrpnVabAttr7;
50 SsFCALL.ccentry[DE_ADSR_SR_L] = _SsSetNrpnVabAttr8;
51 SsFCALL.ccentry[DE_ADSR_SR_E] = _SsSetNrpnVabAttr9;
52 SsFCALL.ccentry[DE_ADSR_RR_L] = _SsSetNrpnVabAttr10;
53 SsFCALL.ccentry[DE_ADSR_RR_E] = _SsSetNrpnVabAttr11;
54 SsFCALL.ccentry[DE_ADSR_SR] = _SsSetNrpnVabAttr12;
55 SsFCALL.ccentry[DE_VIB_TIME] = _SsSetNrpnVabAttr13;
56 SsFCALL.ccentry[DE_PORTA_DEPTH] = _SsSetNrpnVabAttr14;
57 SsFCALL.ccentry[DE_REV_TYPE] = _SsSetNrpnVabAttr15;
58 SsFCALL.ccentry[DE_REV_DEPTH] = _SsSetNrpnVabAttr16;
59 SsFCALL.ccentry[DE_ECHO_FB] = _SsSetNrpnVabAttr17;
60 SsFCALL.ccentry[DE_ECHO_DELAY] = _SsSetNrpnVabAttr18;
61 SsFCALL.ccentry[DE_DELAY] = _SsSetNrpnVabAttr19;
62 for ( v6 = 0; v6 < 32; v6 += 1 )
64 if ( (_snd_openflag & ((u32)1 << v6)) == 0 )
70 _snd_openflag |= 1 << v4;
71 for ( v8 = 0; v8 < seq_cnt; v8 += 1 )
75 inited = _SsInitSoundSep(v4, v8, vab_id, (u8 *)addr);
76 addr = (
unsigned int *)((
char *)addr + inited);