192 lines
5.1 KiB
C
192 lines
5.1 KiB
C
/* Defines and Structures for Instrument Collection Form RIFF DLS
|
|
*
|
|
* Copyright (C) 2003 Rok Mandeljc
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Library General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
*/
|
|
|
|
#ifndef __WINE_INCLUDE_DLS1_H
|
|
#define __WINE_INCLUDE_DLS1_H
|
|
|
|
/*****************************************************************************
|
|
* FOURCC's
|
|
*/
|
|
#define FOURCC_DLS mmioFOURCC('D','L','S',' ')
|
|
#define FOURCC_DLID mmioFOURCC('d','l','i','d')
|
|
#define FOURCC_COLH mmioFOURCC('c','o','l','h')
|
|
#define FOURCC_WVPL mmioFOURCC('w','v','p','l')
|
|
#define FOURCC_PTBL mmioFOURCC('p','t','b','l')
|
|
#define FOURCC_PATH mmioFOURCC('p','a','t','h')
|
|
#define FOURCC_wave mmioFOURCC('w','a','v','e')
|
|
#define FOURCC_LINS mmioFOURCC('l','i','n','s')
|
|
#define FOURCC_INS mmioFOURCC('i','n','s',' ')
|
|
#define FOURCC_INSH mmioFOURCC('i','n','s','h')
|
|
#define FOURCC_LRGN mmioFOURCC('l','r','g','n')
|
|
#define FOURCC_RGN mmioFOURCC('r','g','n',' ')
|
|
#define FOURCC_RGNH mmioFOURCC('r','g','n','h')
|
|
#define FOURCC_LART mmioFOURCC('l','a','r','t')
|
|
#define FOURCC_ART1 mmioFOURCC('a','r','t','1')
|
|
#define FOURCC_WLNK mmioFOURCC('w','l','n','k')
|
|
#define FOURCC_WSMP mmioFOURCC('w','s','m','p')
|
|
#define FOURCC_VERS mmioFOURCC('v','e','r','s')
|
|
|
|
/*****************************************************************************
|
|
* Definitions
|
|
*/
|
|
#define CONN_SRC_NONE 0x0000
|
|
#define CONN_SRC_LFO 0x0001
|
|
#define CONN_SRC_KEYONVELOCITY 0x0002
|
|
#define CONN_SRC_KEYNUMBER 0x0003
|
|
#define CONN_SRC_EG1 0x0004
|
|
#define CONN_SRC_EG2 0x0005
|
|
#define CONN_SRC_PITCHWHEEL 0x0006
|
|
#define CONN_SRC_CC1 0x0081
|
|
#define CONN_SRC_CC7 0x0087
|
|
#define CONN_SRC_CC10 0x008a
|
|
#define CONN_SRC_CC11 0x008b
|
|
|
|
#define CONN_DST_NONE 0x0000
|
|
#define CONN_DST_ATTENUATION 0x0001
|
|
#define CONN_DST_PITCH 0x0003
|
|
#define CONN_DST_PAN 0x0004
|
|
#define CONN_DST_LFO_FREQUENCY 0x0104
|
|
#define CONN_DST_LFO_STARTDELAY 0x0105
|
|
#define CONN_DST_EG1_ATTACKTIME 0x0206
|
|
#define CONN_DST_EG1_DECAYTIME 0x0207
|
|
#define CONN_DST_EG1_RELEASETIME 0x0209
|
|
#define CONN_DST_EG1_SUSTAINLEVEL 0x020a
|
|
#define CONN_DST_EG2_ATTACKTIME 0x030a
|
|
#define CONN_DST_EG2_DECAYTIME 0x030b
|
|
#define CONN_DST_EG2_RELEASETIME 0x030d
|
|
#define CONN_DST_EG2_SUSTAINLEVEL 0x030e
|
|
|
|
#define CONN_TRN_NONE 0x0000
|
|
#define CONN_TRN_CONCAVE 0x0001
|
|
|
|
#define F_INSTRUMENT_DRUMS 0x80000000
|
|
#define F_RGN_OPTION_SELFNONEXCLUSIVE 0x0001
|
|
|
|
#define WAVELINK_CHANNEL_LEFT 0x0001l
|
|
#define WAVELINK_CHANNEL_RIGHT 0x0002l
|
|
|
|
#define F_WAVELINK_PHASE_MASTER 0x0001
|
|
#define POOL_CUE_NULL 0xffffffffl
|
|
|
|
#define F_WSMP_NO_TRUNCATION 0x0001l
|
|
#define F_WSMP_NO_COMPRESSION 0x0002l
|
|
|
|
#define WLOOP_TYPE_FORWARD 0
|
|
|
|
/*****************************************************************************
|
|
* Structures
|
|
*/
|
|
typedef struct _DLSID
|
|
{
|
|
ULONG ulData1;
|
|
USHORT usData2;
|
|
USHORT usData3;
|
|
BYTE abData4[8];
|
|
} DLSID, *LPDLSID;
|
|
|
|
typedef struct _DLSVERSION
|
|
{ DWORD dwVersionMS;
|
|
DWORD dwVersionLS;
|
|
} DLSVERSION, *LPDLSVERSION;
|
|
|
|
typedef struct _CONNECTION
|
|
{
|
|
USHORT usSource;
|
|
USHORT usControl;
|
|
USHORT usDestination;
|
|
USHORT usTransform;
|
|
LONG lScale;
|
|
} CONNECTION, *LPCONNECTION;
|
|
|
|
typedef struct _CONNECTIONLIST
|
|
{
|
|
ULONG cbSize;
|
|
ULONG cConnections;
|
|
} CONNECTIONLIST, *LPCONNECTIONLIST;
|
|
|
|
typedef struct _RGNRANGE
|
|
{
|
|
USHORT usLow;
|
|
USHORT usHigh;
|
|
} RGNRANGE, *LPRGNRANGE;
|
|
|
|
typedef struct _MIDILOCALE
|
|
{
|
|
ULONG ulBank;
|
|
ULONG ulInstrument;
|
|
} MIDILOCALE, *LPMIDILOCALE;
|
|
|
|
typedef struct _RGNHEADER
|
|
{
|
|
RGNRANGE RangeKey;
|
|
RGNRANGE RangeVelocity;
|
|
USHORT fusOptions;
|
|
USHORT usKeyGroup;
|
|
} RGNHEADER, *LPRGNHEADER;
|
|
|
|
typedef struct _INSTHEADER
|
|
{
|
|
ULONG cRegions;
|
|
MIDILOCALE Locale;
|
|
} INSTHEADER, *LPINSTHEADER;
|
|
|
|
typedef struct _DLSHEADER
|
|
{
|
|
ULONG cInstruments;
|
|
} DLSHEADER, *LPDLSHEADER;
|
|
|
|
typedef struct _WAVELINK
|
|
{
|
|
USHORT fusOptions;
|
|
USHORT usPhaseGroup;
|
|
ULONG ulChannel;
|
|
ULONG ulTableIndex;
|
|
} WAVELINK, *LPWAVELINK;
|
|
|
|
typedef struct _POOLCUE
|
|
{
|
|
ULONG ulOffset;
|
|
} POOLCUE, *LPPOOLCUE;
|
|
|
|
typedef struct _POOLTABLE
|
|
{
|
|
ULONG cbSize;
|
|
ULONG cCues;
|
|
} POOLTABLE, *LPPOOLTABLE;
|
|
|
|
typedef struct _rwsmp
|
|
{
|
|
ULONG cbSize;
|
|
USHORT usUnityNote;
|
|
SHORT sFineTune;
|
|
LONG lAttenuation;
|
|
ULONG fulOptions;
|
|
ULONG cSampleLoops;
|
|
} WSMPL, *LPWSMPL;
|
|
|
|
typedef struct _rloop
|
|
{
|
|
ULONG cbSize;
|
|
ULONG ulType;
|
|
ULONG ulStart;
|
|
ULONG ulLength;
|
|
} WLOOP, *LPWLOOP;
|
|
|
|
#endif /* __WINE_INCLUDE_DLS1_H */
|