PS2SDK
PS2 Homebrew Libraries
Loading...
Searching...
No Matches
ssopenq.c
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#include "libsnd2_internal.h"
12
13s16 SsSeqOpen(unsigned int *addr, s16 vab_id)
14{
15 s16 open_counter_2;
16 unsigned int open_counter_1;
17 int seq_init;
18
19 open_counter_2 = 0;
20 if ( _snd_openflag == (u32)-1 )
21 {
22 printf("Can't Open Sequence data any more\n\n");
23 return -1;
24 }
25 for ( open_counter_1 = 0; open_counter_1 < 32; open_counter_1 += 1 )
26 {
27 if ( (_snd_openflag & ((u32)1 << open_counter_1)) == 0 )
28 {
29 open_counter_2 = open_counter_1;
30 break;
31 }
32 }
33 _snd_openflag |= 1 << open_counter_2;
34 seq_init = _SsInitSoundSeq(open_counter_2, vab_id, (u8 *)addr);
35 SsFCALL.noteon = _SsNoteOn;
36 SsFCALL.programchange = _SsSetProgramChange;
37 SsFCALL.metaevent = _SsGetMetaEvent;
38 SsFCALL.pitchbend = _SsSetPitchBend;
39 SsFCALL.control[CC_NUMBER] = _SsSetControlChange;
40 SsFCALL.control[CC_BANKCHANGE] = _SsContBankChange;
41 SsFCALL.control[CC_MAINVOL] = _SsContMainVol;
42 SsFCALL.control[CC_PANPOT] = _SsContPanpot;
43 SsFCALL.control[CC_EXPRESSION] = _SsContExpression;
44 SsFCALL.control[CC_DAMPER] = _SsContDamper;
45 SsFCALL.control[CC_NRPN1] = _SsContNrpn1;
46 SsFCALL.control[CC_NRPN2] = _SsContNrpn2;
47 SsFCALL.control[CC_RPN1] = _SsContRpn1;
48 SsFCALL.control[CC_RPN2] = _SsContRpn2;
49 SsFCALL.control[CC_EXTERNAL] = _SsContExternal;
50 SsFCALL.control[CC_RESETALL] = _SsContResetAll;
51 SsFCALL.control[CC_DATAENTRY] = _SsContDataEntry;
52 SsFCALL.ccentry[DE_PRIORITY] = _SsSetNrpnVabAttr0;
53 SsFCALL.ccentry[DE_MODE] = _SsSetNrpnVabAttr1;
54 SsFCALL.ccentry[DE_LIMITL] = _SsSetNrpnVabAttr2;
55 SsFCALL.ccentry[DE_LIMITH] = _SsSetNrpnVabAttr3;
56 SsFCALL.ccentry[DE_ADSR_AR_L] = _SsSetNrpnVabAttr4;
57 SsFCALL.ccentry[DE_ADSR_AR_E] = _SsSetNrpnVabAttr5;
58 SsFCALL.ccentry[DE_ADSR_DR] = _SsSetNrpnVabAttr6;
59 SsFCALL.ccentry[DE_ADSR_SL] = _SsSetNrpnVabAttr7;
60 SsFCALL.ccentry[DE_ADSR_SR_L] = _SsSetNrpnVabAttr8;
61 SsFCALL.ccentry[DE_ADSR_SR_E] = _SsSetNrpnVabAttr9;
62 SsFCALL.ccentry[DE_ADSR_RR_L] = _SsSetNrpnVabAttr10;
63 SsFCALL.ccentry[DE_ADSR_RR_E] = _SsSetNrpnVabAttr11;
64 SsFCALL.ccentry[DE_ADSR_SR] = _SsSetNrpnVabAttr12;
65 SsFCALL.ccentry[DE_VIB_TIME] = _SsSetNrpnVabAttr13;
66 SsFCALL.ccentry[DE_PORTA_DEPTH] = _SsSetNrpnVabAttr14;
67 SsFCALL.ccentry[DE_REV_TYPE] = _SsSetNrpnVabAttr15;
68 SsFCALL.ccentry[DE_REV_DEPTH] = _SsSetNrpnVabAttr16;
69 SsFCALL.ccentry[DE_ECHO_FB] = _SsSetNrpnVabAttr17;
70 SsFCALL.ccentry[DE_ECHO_DELAY] = _SsSetNrpnVabAttr18;
71 SsFCALL.ccentry[DE_DELAY] = _SsSetNrpnVabAttr19;
72 if ( seq_init == -1 )
73 return -1;
74 return open_counter_2;
75}