1 2 3 #ifndef _INC_DLS1 4 #define _INC_DLS1 5 6 #define CONN_SRC_NONE 0x0000 7 #define CONN_SRC_LFO 0x0001 8 #define CONN_SRC_KEYONVELOCITY 0x0002 9 #define CONN_SRC_KEYNUMBER 0x0003 10 #define CONN_SRC_EG1 0x0004 11 #define CONN_SRC_EG2 0x0005 12 #define CONN_SRC_PITCHWHEEL 0x0006 13 #define CONN_SRC_CC1 0x0081 14 #define CONN_SRC_CC7 0x0087 15 #define CONN_SRC_CC10 0x008a 16 #define CONN_SRC_CC11 0x008b 17 #define CONN_DST_NONE 0x0000 18 #define CONN_DST_ATTENUATION 0x0001 19 #define CONN_DST_PITCH 0x0003 20 #define CONN_DST_PAN 0x0004 21 #define CONN_DST_LFO_FREQUENCY 0x0104 22 #define CONN_DST_LFO_STARTDELAY 0x0105 23 #define CONN_DST_EG1_ATTACKTIME 0x0206 24 #define CONN_DST_EG1_DECAYTIME 0x0207 25 #define CONN_DST_EG1_RELEASETIME 0x0209 26 #define CONN_DST_EG1_SUSTAINLEVEL 0x020a 27 #define CONN_DST_EG2_ATTACKTIME 0x030a 28 #define CONN_DST_EG2_DECAYTIME 0x030b 29 #define CONN_DST_EG2_RELEASETIME 0x030d 30 #define CONN_DST_EG2_SUSTAINLEVEL 0x030e 31 #define CONN_TRN_NONE 0x0000 32 #define CONN_TRN_CONCAVE 0x0001 33 #define FOURCC_DLS mmioFOURCC('D','L','S',' ') 34 #define FOURCC_DLID mmioFOURCC('d','l','i','d') 35 #define FOURCC_COLH mmioFOURCC('c','o','l','h') 36 #define FOURCC_WVPL mmioFOURCC('w','v','p','l') 37 #define FOURCC_PTBL mmioFOURCC('p','t','b','l') 38 #define FOURCC_PATH mmioFOURCC('p','a','t','h') 39 #define FOURCC_wave mmioFOURCC('w','a','v','e') 40 #define FOURCC_LINS mmioFOURCC('l','i','n','s') 41 #define FOURCC_INS mmioFOURCC('i','n','s',' ') 42 #define FOURCC_INSH mmioFOURCC('i','n','s','h') 43 #define FOURCC_LRGN mmioFOURCC('l','r','g','n') 44 #define FOURCC_RGN mmioFOURCC('r','g','n',' ') 45 #define FOURCC_RGNH mmioFOURCC('r','g','n','h') 46 #define FOURCC_LART mmioFOURCC('l','a','r','t') 47 #define FOURCC_ART1 mmioFOURCC('a','r','t','1') 48 #define FOURCC_WLNK mmioFOURCC('w','l','n','k') 49 #define FOURCC_WSMP mmioFOURCC('w','s','m','p') 50 #define FOURCC_VERS mmioFOURCC('v','e','r','s') 51 #define F_INSTRUMENT_DRUMS 0x80000000 52 #define F_RGN_OPTION_SELFNONEXCLUSIVE 0x0001 53 #define WAVELINK_CHANNEL_LEFT 0x0001 54 #define WAVELINK_CHANNEL_RIGHT 0x0002 55 #define F_WAVELINK_PHASE_MASTER 0x0001 56 #define POOL_CUE_NULL 0xffffffff 57 #define F_WSMP_NO_TRUNCATION 0x0001l 58 #define F_WSMP_NO_COMPRESSION 0x0002l 59 #define WLOOP_TYPE_FORWARD 0 60 61 typedef struct _CONNECTION 62 { 63 USHORT usSource; 64 USHORT usControl; 65 USHORT usDestination; 66 USHORT usTransform; 67 LONG lScale; 68 }CONNECTION, *LPCONNECTION; 69 70 typedef struct _CONNECTIONLIST 71 { 72 ULONG cbSize; 73 ULONG cConnections; 74 } CONNECTIONLIST, *LPCONNECTIONLIST; 75 76 typedef struct _DLSVERSION 77 { 78 DWORD dwVersionMS; 79 DWORD dwVersionLS; 80 } DLSVERSION, *LPDLSVERSION; 81 82 typedef struct _DLSHEADER 83 { 84 ULONG cInstruments; 85 }DLSHEADER, *LPDLSHEADER; 86 87 typedef struct _DLSID 88 { 89 ULONG ulData1; 90 USHORT usData2; 91 USHORT usData3; 92 BYTE abData4[8]; 93 } DLSID, FAR *LPDLSID; 94 95 typedef struct _MIDILOCALE { 96 ULONG ulBank; 97 ULONG ulInstrument; 98 } MIDILOCALE, *LPMIDILOCALE; 99 100 typedef struct _INSTHEADER 101 { 102 ULONG cRegions; 103 MIDILOCALE Locale; 104 }INSTHEADER, *LPINSTHEADER; 105 106 typedef struct _POOLCUE 107 { 108 ULONG ulOffset; 109 }POOLCUE, *LPPOOLCUE; 110 111 typedef struct _POOLTABLE 112 { 113 ULONG cbSize; 114 ULONG cCues; 115 } POOLTABLE, FAR *LPPOOLTABLE; 116 117 typedef struct _RGNRANGE 118 { 119 USHORT usLow; 120 USHORT usHigh; 121 } RGNRANGE, *LPRGNRANGE; 122 123 typedef struct _RGNHEADER 124 { 125 RGNRANGE RangeKey; 126 RGNRANGE RangeVelocity; 127 USHORT fusOptions; 128 USHORT usKeyGroup; 129 }RGNHEADER, *LPRGNHEADER; 130 131 typedef struct _rloop 132 { 133 ULONG cbSize; 134 ULONG ulType; 135 ULONG ulStart; 136 ULONG ulLength; 137 } WLOOP, *LPWLOOP; 138 139 typedef struct _rwsmp 140 { 141 ULONG cbSize; 142 USHORT usUnityNote; 143 SHORT sFineTune; 144 LONG lAttenuation; 145 ULONG fulOptions; 146 ULONG cSampleLoops; 147 } WSMPL, *LPWSMPL; 148 149 typedef struct _WAVELINK 150 { 151 USHORT fusOptions; 152 USHORT usPhaseGroup; 153 ULONG ulChannel; 154 ULONG ulTableIndex; 155 }WAVELINK, *LPWAVELINK; 156 157 158 #endif 159