zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

dls1.h (5093B) - Raw


      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 */