[1166] | 1 | /* Defines and Structures for Instrument Collection Form RIFF DLS1
|
---|
| 2 | *
|
---|
| 3 | * Copyright (C) 2003-2004 Rok Mandeljc
|
---|
| 4 | *
|
---|
| 5 | * This program is free software; you can redistribute it and/or
|
---|
| 6 | * modify it under the terms of the GNU Lesser General Public
|
---|
| 7 | * License as published by the Free Software Foundation; either
|
---|
| 8 | * version 2.1 of the License, or (at your option) any later version.
|
---|
| 9 | *
|
---|
| 10 | * This program is distributed in the hope that it will be useful,
|
---|
| 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
---|
| 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
---|
| 13 | * Lesser General Public License for more details.
|
---|
| 14 | *
|
---|
| 15 | * You should have received a copy of the GNU Lesser General Public
|
---|
| 16 | * License along with this program; if not, write to the Free Software
|
---|
| 17 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
---|
| 18 | */
|
---|
| 19 |
|
---|
| 20 | #ifndef __WINE_INCLUDE_DLS1_H
|
---|
| 21 | #define __WINE_INCLUDE_DLS1_H
|
---|
| 22 |
|
---|
| 23 | /*****************************************************************************
|
---|
| 24 | * FOURCCs
|
---|
| 25 | */
|
---|
| 26 | #define FOURCC_DLS mmioFOURCC('D','L','S',' ')
|
---|
| 27 | #define FOURCC_DLID mmioFOURCC('d','l','i','d')
|
---|
| 28 | #define FOURCC_COLH mmioFOURCC('c','o','l','h')
|
---|
| 29 | #define FOURCC_WVPL mmioFOURCC('w','v','p','l')
|
---|
| 30 | #define FOURCC_PTBL mmioFOURCC('p','t','b','l')
|
---|
| 31 | #define FOURCC_PATH mmioFOURCC('p','a','t','h')
|
---|
| 32 | #define FOURCC_wave mmioFOURCC('w','a','v','e')
|
---|
| 33 | #define FOURCC_LINS mmioFOURCC('l','i','n','s')
|
---|
| 34 | #define FOURCC_INS mmioFOURCC('i','n','s',' ')
|
---|
| 35 | #define FOURCC_INSH mmioFOURCC('i','n','s','h')
|
---|
| 36 | #define FOURCC_LRGN mmioFOURCC('l','r','g','n')
|
---|
| 37 | #define FOURCC_RGN mmioFOURCC('r','g','n',' ')
|
---|
| 38 | #define FOURCC_RGNH mmioFOURCC('r','g','n','h')
|
---|
| 39 | #define FOURCC_LART mmioFOURCC('l','a','r','t')
|
---|
| 40 | #define FOURCC_ART1 mmioFOURCC('a','r','t','1')
|
---|
| 41 | #define FOURCC_WLNK mmioFOURCC('w','l','n','k')
|
---|
| 42 | #define FOURCC_WSMP mmioFOURCC('w','s','m','p')
|
---|
| 43 | #define FOURCC_VERS mmioFOURCC('v','e','r','s')
|
---|
| 44 |
|
---|
| 45 | /*****************************************************************************
|
---|
| 46 | * Flags
|
---|
| 47 | */
|
---|
| 48 |
|
---|
| 49 | #define CONN_DST_NONE 0x000
|
---|
| 50 | #define CONN_DST_ATTENUATION 0x001
|
---|
| 51 | #define CONN_DST_PITCH 0x003
|
---|
| 52 | #define CONN_DST_PAN 0x004
|
---|
| 53 |
|
---|
| 54 | #define CONN_DST_LFO_FREQUENCY 0x104
|
---|
| 55 | #define CONN_DST_LFO_STARTDELAY 0x105
|
---|
| 56 |
|
---|
| 57 | #define CONN_DST_EG1_ATTACKTIME 0x206
|
---|
| 58 | #define CONN_DST_EG1_DECAYTIME 0x207
|
---|
| 59 | #define CONN_DST_EG1_RELEASETIME 0x209
|
---|
| 60 | #define CONN_DST_EG1_SUSTAINLEVEL 0x20A
|
---|
| 61 |
|
---|
| 62 | #define CONN_DST_EG2_ATTACKTIME 0x30A
|
---|
| 63 | #define CONN_DST_EG2_DECAYTIME 0x30B
|
---|
| 64 | #define CONN_DST_EG2_RELEASETIME 0x30D
|
---|
| 65 | #define CONN_DST_EG2_SUSTAINLEVEL 0x30E
|
---|
| 66 |
|
---|
| 67 | #define CONN_SRC_NONE 0x000
|
---|
| 68 | #define CONN_SRC_LFO 0x001
|
---|
| 69 | #define CONN_SRC_KEYONVELOCITY 0x002
|
---|
| 70 | #define CONN_SRC_KEYNUMBER 0x003
|
---|
| 71 | #define CONN_SRC_EG1 0x004
|
---|
| 72 | #define CONN_SRC_EG2 0x005
|
---|
| 73 | #define CONN_SRC_PITCHWHEEL 0x006
|
---|
| 74 |
|
---|
| 75 | #define CONN_SRC_CC1 0x081
|
---|
| 76 | #define CONN_SRC_CC7 0x087
|
---|
| 77 | #define CONN_SRC_CC10 0x08A
|
---|
| 78 | #define CONN_SRC_CC11 0x08B
|
---|
| 79 |
|
---|
| 80 | #define CONN_TRN_NONE 0x000
|
---|
| 81 | #define CONN_TRN_CONCAVE 0x001
|
---|
| 82 |
|
---|
| 83 | #define F_INSTRUMENT_DRUMS 0x80000000
|
---|
| 84 |
|
---|
| 85 | #define F_RGN_OPTION_SELFNONEXCLUSIVE 0x1
|
---|
| 86 |
|
---|
| 87 | #define F_WAVELINK_PHASE_MASTER 0x1
|
---|
| 88 |
|
---|
| 89 | #define F_WSMP_NO_TRUNCATION 0x1
|
---|
| 90 | #define F_WSMP_NO_COMPRESSION 0x2
|
---|
| 91 |
|
---|
| 92 | #define POOL_CUE_NULL 0xFFFFFFFF
|
---|
| 93 |
|
---|
| 94 | #define WAVELINK_CHANNEL_LEFT 0x1
|
---|
| 95 | #define WAVELINK_CHANNEL_RIGHT 0x2
|
---|
| 96 |
|
---|
| 97 | #define WLOOP_TYPE_FORWARD 0x0
|
---|
| 98 |
|
---|
| 99 | /*****************************************************************************
|
---|
| 100 | * Structures
|
---|
| 101 | */
|
---|
| 102 |
|
---|
| 103 | /* actual structures */
|
---|
| 104 | typedef struct _DLSID {
|
---|
| 105 | ULONG ulData1;
|
---|
| 106 | USHORT usData2;
|
---|
| 107 | USHORT usData3;
|
---|
| 108 | BYTE abData4[8];
|
---|
| 109 | } DLSID, *LPDLSID;
|
---|
| 110 |
|
---|
| 111 | typedef struct _DLSVERSION {
|
---|
| 112 | DWORD dwVersionMS;
|
---|
| 113 | DWORD dwVersionLS;
|
---|
| 114 | } DLSVERSION, *LPDLSVERSION;
|
---|
| 115 |
|
---|
| 116 | typedef struct _CONNECTION {
|
---|
| 117 | USHORT usSource;
|
---|
| 118 | USHORT usControl;
|
---|
| 119 | USHORT usDestination;
|
---|
| 120 | USHORT usTransform;
|
---|
| 121 | LONG lScale;
|
---|
| 122 | } CONNECTION, *LPCONNECTION;
|
---|
| 123 |
|
---|
| 124 | typedef struct _CONNECTIONLIST {
|
---|
| 125 | ULONG cbSize;
|
---|
| 126 | ULONG cConnections;
|
---|
| 127 | } CONNECTIONLIST, *LPCONNECTIONLIST;
|
---|
| 128 |
|
---|
| 129 | typedef struct _RGNRANGE {
|
---|
| 130 | USHORT usLow;
|
---|
| 131 | USHORT usHigh;
|
---|
| 132 | } RGNRANGE, *LPRGNRANGE;
|
---|
| 133 |
|
---|
| 134 | typedef struct _MIDILOCALE {
|
---|
| 135 | ULONG ulBank;
|
---|
| 136 | ULONG ulInstrument;
|
---|
| 137 | } MIDILOCALE, *LPMIDILOCALE;
|
---|
| 138 |
|
---|
| 139 | typedef struct _RGNHEADER {
|
---|
| 140 | RGNRANGE RangeKey;
|
---|
| 141 | RGNRANGE RangeVelocity;
|
---|
| 142 | USHORT fusOptions;
|
---|
| 143 | USHORT usKeyGroup;
|
---|
| 144 | } RGNHEADER, *LPRGNHEADER;
|
---|
| 145 |
|
---|
| 146 | typedef struct _INSTHEADER {
|
---|
| 147 | ULONG cRegions;
|
---|
| 148 | MIDILOCALE Locale;
|
---|
| 149 | } INSTHEADER, *LPINSTHEADER;
|
---|
| 150 |
|
---|
| 151 | typedef struct _DLSHEADER {
|
---|
| 152 | ULONG cInstruments;
|
---|
| 153 | } DLSHEADER, *LPDLSHEADER;
|
---|
| 154 |
|
---|
| 155 | typedef struct _WAVELINK {
|
---|
| 156 | USHORT fusOptions;
|
---|
| 157 | USHORT usPhaseGroup;
|
---|
| 158 | ULONG ulChannel;
|
---|
| 159 | ULONG ulTableIndex;
|
---|
| 160 | } WAVELINK, *LPWAVELINK;
|
---|
| 161 |
|
---|
| 162 | typedef struct _POOLCUE {
|
---|
| 163 | ULONG ulOffset;
|
---|
| 164 | } POOLCUE, *LPPOOLCUE;
|
---|
| 165 |
|
---|
| 166 | typedef struct _POOLTABLE {
|
---|
| 167 | ULONG cbSize;
|
---|
| 168 | ULONG cCues;
|
---|
| 169 | } POOLTABLE, *LPPOOLTABLE;
|
---|
| 170 |
|
---|
| 171 | typedef struct _rwsmp {
|
---|
| 172 | ULONG cbSize;
|
---|
| 173 | USHORT usUnityNote;
|
---|
| 174 | SHORT sFineTune;
|
---|
| 175 | LONG lAttenuation;
|
---|
| 176 | ULONG fulOptions;
|
---|
| 177 | ULONG cSampleLoops;
|
---|
| 178 | } WSMPL, *LPWSMPL;
|
---|
| 179 |
|
---|
| 180 | typedef struct _rloop {
|
---|
| 181 | ULONG cbSize;
|
---|
| 182 | ULONG ulType;
|
---|
| 183 | ULONG ulStart;
|
---|
| 184 | ULONG ulLength;
|
---|
| 185 | } WLOOP, *LPWLOOP;
|
---|
| 186 |
|
---|
| 187 | #endif /* __WINE_INCLUDE_DLS1_H */
|
---|