ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

dmusicf.h
Go to the documentation of this file.
00001 /*
00002  *  DirectMusic File Formats
00003  *
00004  *  Copyright (C) 2003-2004 Rok Mandeljc
00005  *
00006  *  This program is free software; you can redistribute it and/or
00007  *  modify it under the terms of the GNU Lesser General Public
00008  *  License as published by the Free Software Foundation; either
00009  *  version 2.1 of the License, or (at your option) any later version.
00010  *
00011  *  This program is distributed in the hope that it will be useful,
00012  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014  *  Lesser General Public License for more details.
00015  *
00016  *  You should have received a copy of the GNU Lesser General Public
00017  *  License along with this program; if not, write to the Free Software
00018  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
00019  */
00020 
00021 #ifndef __WINE_DMUSIC_FILEFORMATS_H
00022 #define __WINE_DMUSIC_FILEFORMATS_H
00023 
00024 #ifndef __WINESRC__
00025 #include <windows.h>
00026 #endif /* __WINESRC__ */
00027 
00028 #define COM_NO_WINDOWS_H
00029 #include <objbase.h>
00030 #include <mmsystem.h>
00031 #include <pshpack8.h>
00032 
00033 #ifdef __cplusplus
00034 extern "C" {
00035 #endif
00036 
00037 
00038 /*****************************************************************************
00039  * FOURCC Definitions
00040  */
00041 /* Common chunks */
00042 #define DMUS_FOURCC_GUID_CHUNK                     mmioFOURCC('g','u','i','d')
00043 #define DMUS_FOURCC_INFO_LIST                      mmioFOURCC('I','N','F','O')
00044 #define DMUS_FOURCC_UNFO_LIST                      mmioFOURCC('U','N','F','O')
00045 #define DMUS_FOURCC_UNAM_CHUNK                     mmioFOURCC('U','N','A','M')
00046 #define DMUS_FOURCC_UART_CHUNK                     mmioFOURCC('U','A','R','T')
00047 #define DMUS_FOURCC_UCOP_CHUNK                     mmioFOURCC('U','C','O','P')
00048 #define DMUS_FOURCC_USBJ_CHUNK                     mmioFOURCC('U','S','B','J')
00049 #define DMUS_FOURCC_UCMT_CHUNK                     mmioFOURCC('U','C','M','T')
00050 #define DMUS_FOURCC_CATEGORY_CHUNK                 mmioFOURCC('c','a','t','g')
00051 #define DMUS_FOURCC_VERSION_CHUNK                  mmioFOURCC('v','e','r','s')
00052 /* AudioPath */
00053 #define DMUS_FOURCC_AUDIOPATH_FORM                 mmioFOURCC('D','M','A','P')
00054 #define DMUS_FOURCC_PORTCONFIGS_LIST               mmioFOURCC('p','c','s','l')
00055 #define DMUS_FOURCC_PORTCONFIG_LIST                mmioFOURCC('p','c','f','l')
00056 #define DMUS_FOURCC_PORTCONFIG_ITEM                mmioFOURCC('p','c','f','h')
00057 #define DMUS_FOURCC_PORTPARAMS_ITEM                mmioFOURCC('p','p','r','h')
00058 #define DMUS_FOURCC_DSBUFFER_LIST                  mmioFOURCC('d','b','f','l')
00059 #define DMUS_FOURCC_DSBUFFATTR_ITEM                mmioFOURCC('d','d','a','h')
00060 #define DMUS_FOURCC_PCHANNELS_LIST                 mmioFOURCC('p','c','h','l')
00061 #define DMUS_FOURCC_PCHANNELS_ITEM                 mmioFOURCC('p','c','h','h')
00062 /* Band */
00063 #define DMUS_FOURCC_BAND_FORM                      mmioFOURCC('D','M','B','D')
00064 #define DMUS_FOURCC_INSTRUMENTS_LIST               mmioFOURCC('l','b','i','l')
00065 #define DMUS_FOURCC_INSTRUMENT_LIST                mmioFOURCC('l','b','i','n')
00066 #define DMUS_FOURCC_INSTRUMENT_CHUNK               mmioFOURCC('b','i','n','s')
00067 /* Chordmap */
00068 #define DMUS_FOURCC_CHORDMAP_FORM                  mmioFOURCC('D','M','P','R')
00069 #define DMUS_FOURCC_IOCHORDMAP_CHUNK               mmioFOURCC('p','e','r','h')
00070 #define DMUS_FOURCC_SUBCHORD_CHUNK                 mmioFOURCC('c','h','d','t')
00071 #define DMUS_FOURCC_CHORDENTRY_CHUNK               mmioFOURCC('c','h','e','h')
00072 #define DMUS_FOURCC_SUBCHORDID_CHUNK               mmioFOURCC('s','b','c','n')
00073 #define DMUS_FOURCC_IONEXTCHORD_CHUNK              mmioFOURCC('n','c','r','d')
00074 #define DMUS_FOURCC_NEXTCHORDSEQ_CHUNK             mmioFOURCC('n','c','s','q')
00075 #define DMUS_FOURCC_IOSIGNPOST_CHUNK               mmioFOURCC('s','p','s','h')
00076 #define DMUS_FOURCC_CHORDNAME_CHUNK                mmioFOURCC('I','N','A','M')
00077 #define DMUS_FOURCC_CHORDENTRY_LIST                mmioFOURCC('c','h','o','e')
00078 #define DMUS_FOURCC_CHORDMAP_LIST                  mmioFOURCC('c','m','a','p')
00079 #define DMUS_FOURCC_CHORD_LIST                     mmioFOURCC('c','h','r','d')
00080 #define DMUS_FOURCC_CHORDPALETTE_LIST              mmioFOURCC('c','h','p','l')
00081 #define DMUS_FOURCC_CADENCE_LIST                   mmioFOURCC('c','a','d','e')
00082 #define DMUS_FOURCC_SIGNPOSTITEM_LIST              mmioFOURCC('s','p','s','t')
00083 #define DMUS_FOURCC_SIGNPOST_LIST                  mmioFOURCC('s','p','s','q')
00084 /* Container */
00085 #define DMUS_FOURCC_CONTAINER_FORM                 mmioFOURCC('D','M','C','N')
00086 #define DMUS_FOURCC_CONTAINER_CHUNK                mmioFOURCC('c','o','n','h')
00087 #define DMUS_FOURCC_CONTAINED_ALIAS_CHUNK          mmioFOURCC('c','o','b','a')
00088 #define DMUS_FOURCC_CONTAINED_OBJECT_CHUNK         mmioFOURCC('c','o','b','h')
00089 #define DMUS_FOURCC_CONTAINED_OBJECTS_LIST         mmioFOURCC('c','o','s','l')
00090 #define DMUS_FOURCC_CONTAINED_OBJECT_LIST          mmioFOURCC('c','o','b','l')
00091 /* DirectSound Buffer Configuration */
00092 #define DMUS_FOURCC_DSBC_FORM                      mmioFOURCC('D','S','B','C')
00093 #define DMUS_FOURCC_DSBD_CHUNK                     mmioFOURCC('d','s','b','d')
00094 #define DMUS_FOURCC_BSID_CHUNK                     mmioFOURCC('b','s','i','d')
00095 #define DMUS_FOURCC_DS3D_CHUNK                     mmioFOURCC('d','s','3','d')
00096 #define DMUS_FOURCC_DSBC_LIST                      mmioFOURCC('f','x','l','s')
00097 /* Effects */
00098 #define DMUS_FOURCC_DSFX_FORM                      mmioFOURCC('D','S','F','X')
00099 #define DMUS_FOURCC_DSFX_CHUNK                     mmioFOURCC('f','x','h','r')
00100 #define DMUS_FOURCC_DSFX_DATA                      mmioFOURCC('d','a','t','a')
00101 /* Reference */
00102 #define DMUS_FOURCC_REF_LIST                       mmioFOURCC('D','M','R','F')
00103 #define DMUS_FOURCC_REF_CHUNK                      mmioFOURCC('r','e','f','h')
00104 #define DMUS_FOURCC_DATE_CHUNK                     mmioFOURCC('d','a','t','e')
00105 #define DMUS_FOURCC_NAME_CHUNK                     mmioFOURCC('n','a','m','e')
00106 #define DMUS_FOURCC_FILE_CHUNK                     mmioFOURCC('f','i','l','e')
00107 /* Script */
00108 #define DMUS_FOURCC_SCRIPT_FORM                    mmioFOURCC('D','M','S','C')
00109 #define DMUS_FOURCC_SCRIPT_CHUNK                   mmioFOURCC('s','c','h','d')
00110 #define DMUS_FOURCC_SCRIPTVERSION_CHUNK            mmioFOURCC('s','c','v','e')
00111 #define DMUS_FOURCC_SCRIPTLANGUAGE_CHUNK           mmioFOURCC('s','c','l','a')
00112 #define DMUS_FOURCC_SCRIPTSOURCE_CHUNK             mmioFOURCC('s','c','s','r')
00113 /* Segment */
00114 #define DMUS_FOURCC_SEGMENT_FORM                   mmioFOURCC('D','M','S','G')
00115 #define DMUS_FOURCC_SEGMENT_CHUNK                  mmioFOURCC('s','e','g','h')
00116 #define DMUS_FOURCC_TRACK_LIST                     mmioFOURCC('t','r','k','l')
00117 /* Style chunks */
00118 #define DMUS_FOURCC_STYLE_FORM                     mmioFOURCC('D','M','S','T')
00119 #define DMUS_FOURCC_STYLE_CHUNK                    mmioFOURCC('s','t','y','h')
00120 #define DMUS_FOURCC_PART_LIST                      mmioFOURCC('p','a','r','t')
00121 #define DMUS_FOURCC_PART_CHUNK                     mmioFOURCC('p','r','t','h')
00122 #define DMUS_FOURCC_NOTE_CHUNK                     mmioFOURCC('n','o','t','e')
00123 #define DMUS_FOURCC_CURVE_CHUNK                    mmioFOURCC('c','r','v','e')
00124 #define DMUS_FOURCC_MARKER_CHUNK                   mmioFOURCC('m','r','k','r')
00125 #define DMUS_FOURCC_RESOLUTION_CHUNK               mmioFOURCC('r','s','l','n')
00126 #define DMUS_FOURCC_ANTICIPATION_CHUNK             mmioFOURCC('a','n','p','n')
00127 #define DMUS_FOURCC_PATTERN_LIST                   mmioFOURCC('p','t','t','n')
00128 #define DMUS_FOURCC_PATTERN_CHUNK                  mmioFOURCC('p','t','n','h')
00129 #define DMUS_FOURCC_RHYTHM_CHUNK                   mmioFOURCC('r','h','t','m')
00130 #define DMUS_FOURCC_PARTREF_LIST                   mmioFOURCC('p','r','e','f')
00131 #define DMUS_FOURCC_PARTREF_CHUNK                  mmioFOURCC('p','r','f','c')
00132 #define DMUS_FOURCC_STYLE_PERS_REF_LIST            mmioFOURCC('p','r','r','f')
00133 #define DMUS_FOURCC_MOTIFSETTINGS_CHUNK            mmioFOURCC('m','t','f','s')
00134 /* Tool */
00135 #define DMUS_FOURCC_TOOL_FORM                      mmioFOURCC('D','M','T','L')
00136 #define DMUS_FOURCC_TOOL_CHUNK                     mmioFOURCC('t','o','l','h')
00137 /* ToolGraph */
00138 #define DMUS_FOURCC_TOOLGRAPH_FORM                 mmioFOURCC('D','M','T','G')
00139 #define DMUS_FOURCC_TOOL_LIST                      mmioFOURCC('t','o','l','l')
00140 /* Track */
00141 #define DMUS_FOURCC_TRACK_FORM                     mmioFOURCC('D','M','T','K')
00142 #define DMUS_FOURCC_TRACK_CHUNK                    mmioFOURCC('t','r','k','h')
00143 #define DMUS_FOURCC_TRACK_EXTRAS_CHUNK             mmioFOURCC('t','r','k','x')
00144 /* Band Track */
00145 #define DMUS_FOURCC_BANDTRACK_FORM                 mmioFOURCC('D','M','B','T')
00146 #define DMUS_FOURCC_BANDTRACK_CHUNK                mmioFOURCC('b','d','t','h')
00147 #define DMUS_FOURCC_BANDS_LIST                     mmioFOURCC('l','b','d','l')
00148 #define DMUS_FOURCC_BAND_LIST                      mmioFOURCC('l','b','n','d')
00149 #define DMUS_FOURCC_BANDITEM_CHUNK                 mmioFOURCC('b','d','i','h')
00150 #define DMUS_FOURCC_BANDITEM_CHUNK2                mmioFOURCC('b','d','2','h')
00151 /* Chord Track */
00152 #define DMUS_FOURCC_CHORDTRACK_LIST                mmioFOURCC('c','o','r','d')
00153 #define DMUS_FOURCC_CHORDTRACKHEADER_CHUNK         mmioFOURCC('c','r','d','h')
00154 #define DMUS_FOURCC_CHORDTRACKBODY_CHUNK           mmioFOURCC('c','r','d','b')
00155 /* Chordmap Track */
00156 #define DMUS_FOURCC_PERS_TRACK_LIST                mmioFOURCC('p','f','t','r')
00157 #define DMUS_FOURCC_PERS_REF_LIST                  mmioFOURCC('p','f','r','f')
00158 #define DMUS_FOURCC_TIME_STAMP_CHUNK               mmioFOURCC('s','t','m','p')
00159 /* Command Track */
00160 #define DMUS_FOURCC_COMMANDTRACK_CHUNK             mmioFOURCC('c','m','n','d')
00161 /* Lyrics Track */
00162 #define DMUS_FOURCC_LYRICSTRACK_LIST               mmioFOURCC('l','y','r','t')
00163 #define DMUS_FOURCC_LYRICSTRACKEVENTS_LIST         mmioFOURCC('l','y','r','l')
00164 #define DMUS_FOURCC_LYRICSTRACKEVENT_LIST          mmioFOURCC('l','y','r','e')
00165 #define DMUS_FOURCC_LYRICSTRACKEVENTHEADER_CHUNK   mmioFOURCC('l','y','r','h')
00166 #define DMUS_FOURCC_LYRICSTRACKEVENTTEXT_CHUNK     mmioFOURCC('l','y','r','n')
00167 /* Marker Track */
00168 #define DMUS_FOURCC_MARKERTRACK_LIST               mmioFOURCC('M','A','R','K')
00169 #define DMUS_FOURCC_VALIDSTART_CHUNK               mmioFOURCC('v','a','l','s')
00170 #define DMUS_FOURCC_PLAYMARKER_CHUNK               mmioFOURCC('p','l','a','y')
00171 /* Mute Track */
00172 #define DMUS_FOURCC_MUTE_CHUNK                     mmioFOURCC('m','u','t','e')
00173 /* Parameter Control Track */
00174 #define DMUS_FOURCC_PARAMCONTROLTRACK_TRACK_LIST   mmioFOURCC('p','r','m','t')
00175 #define DMUS_FOURCC_PARAMCONTROLTRACK_OBJECT_LIST  mmioFOURCC('p','r','o','l')
00176 #define DMUS_FOURCC_PARAMCONTROLTRACK_OBJECT_CHUNK mmioFOURCC('p','r','o','h')
00177 #define DMUS_FOURCC_PARAMCONTROLTRACK_PARAM_LIST   mmioFOURCC('p','r','p','l')
00178 #define DMUS_FOURCC_PARAMCONTROLTRACK_PARAM_CHUNK  mmioFOURCC('p','r','p','h')
00179 #define DMUS_FOURCC_PARAMCONTROLTRACK_CURVES_CHUNK mmioFOURCC('p','r','c','c')
00180 /* Pattern Track */
00181 #define DMUS_FOURCC_PATTERN_FORM                   mmioFOURCC('D','M','P','T')
00182 /* Script Track */
00183 #define DMUS_FOURCC_SCRIPTTRACK_LIST               mmioFOURCC('s','c','r','t')
00184 #define DMUS_FOURCC_SCRIPTTRACKEVENTS_LIST         mmioFOURCC('s','c','r','l')
00185 #define DMUS_FOURCC_SCRIPTTRACKEVENT_LIST          mmioFOURCC('s','c','r','e')
00186 #define DMUS_FOURCC_SCRIPTTRACKEVENTHEADER_CHUNK   mmioFOURCC('s','c','r','h')
00187 #define DMUS_FOURCC_SCRIPTTRACKEVENTNAME_CHUNK     mmioFOURCC('s','c','r','n')
00188 /* Segment Trgigger Track */
00189 #define DMUS_FOURCC_SEGTRACK_LIST                  mmioFOURCC('s','e','g','t')
00190 #define DMUS_FOURCC_SEGTRACK_CHUNK                 mmioFOURCC('s','g','t','h')
00191 #define DMUS_FOURCC_SEGMENTS_LIST                  mmioFOURCC('l','s','g','l')
00192 #define DMUS_FOURCC_SEGMENT_LIST                   mmioFOURCC('l','s','e','g')
00193 #define DMUS_FOURCC_SEGMENTITEM_CHUNK              mmioFOURCC('s','g','i','h')
00194 #define DMUS_FOURCC_SEGMENTITEMNAME_CHUNK          mmioFOURCC('s','n','a','m')
00195 /* Sequence Track */
00196 #define DMUS_FOURCC_SEQ_TRACK                      mmioFOURCC('s','e','q','t')
00197 #define DMUS_FOURCC_SEQ_LIST                       mmioFOURCC('e','v','t','l')
00198 #define DMUS_FOURCC_CURVE_LIST                     mmioFOURCC('c','u','r','l')
00199 /* Signpost Track */
00200 #define DMUS_FOURCC_SIGNPOST_TRACK_CHUNK           mmioFOURCC('s','g','n','p')
00201 /* Style Track */
00202 #define DMUS_FOURCC_STYLE_TRACK_LIST               mmioFOURCC('s','t','t','r')
00203 #define DMUS_FOURCC_STYLE_REF_LIST                 mmioFOURCC('s','t','r','f')
00204 /* SysEx Track */
00205 #define DMUS_FOURCC_SYSEX_TRACK                    mmioFOURCC('s','y','e','x')
00206 /* Tempo Track */
00207 #define DMUS_FOURCC_TEMPO_TRACK                    mmioFOURCC('t','e','t','r')
00208 /* Time Signature Track */
00209 #define DMUS_FOURCC_TIMESIGNATURE_TRACK            mmioFOURCC('t','i','m','s')
00210 #define DMUS_FOURCC_TIMESIGTRACK_LIST              mmioFOURCC('T','I','M','S')
00211 #define DMUS_FOURCC_TIMESIG_CHUNK                  DMUS_FOURCC_TIMESIGNATURE_TRACK
00212 /* Wave Track */
00213 #define DMUS_FOURCC_WAVETRACK_LIST                 mmioFOURCC('w','a','v','t')
00214 #define DMUS_FOURCC_WAVETRACK_CHUNK                mmioFOURCC('w','a','t','h')
00215 #define DMUS_FOURCC_WAVEPART_LIST                  mmioFOURCC('w','a','v','p')
00216 #define DMUS_FOURCC_WAVEPART_CHUNK                 mmioFOURCC('w','a','p','h')
00217 #define DMUS_FOURCC_WAVEITEM_LIST                  mmioFOURCC('w','a','v','i')
00218 #define DMUS_FOURCC_WAVE_LIST                      mmioFOURCC('w','a','v','e')
00219 #define DMUS_FOURCC_WAVEITEM_CHUNK                 mmioFOURCC('w','a','i','h')
00220 /* Wave Header */
00221 #define DMUS_FOURCC_WAVEHEADER_CHUNK               mmioFOURCC('w','a','v','h')
00222 
00223 
00224 /*****************************************************************************
00225  * Flags
00226  */
00227 #define DMUS_BUFFERF_SHARED  0x1
00228 #define DMUS_BUFFERF_DEFINED 0x2
00229 #define DMUS_BUFFERF_MIXIN   0x8
00230 
00231 #define DMUS_CHORDMAPF_VERSION8 0x1
00232 
00233 #define DMUS_CONTAINED_OBJF_KEEP 0x1
00234 
00235 #define DMUS_CONTAINER_NOLOADS 0x2
00236 
00237 #define DMUS_IO_INST_PATCH              0x0001
00238 #define DMUS_IO_INST_BANKSELECT         0x0002
00239 #define DMUS_IO_INST_ASSIGN_PATCH       0x0008
00240 #define DMUS_IO_INST_NOTERANGES         0x0010
00241 #define DMUS_IO_INST_PAN                0x0020
00242 #define DMUS_IO_INST_VOLUME             0x0040
00243 #define DMUS_IO_INST_TRANSPOSE          0x0080
00244 #define DMUS_IO_INST_GM                 0x0100
00245 #define DMUS_IO_INST_GS                 0x0200
00246 #define DMUS_IO_INST_XG                 0x0400
00247 #define DMUS_IO_INST_CHANNEL_PRIORITY   0x0800
00248 #define DMUS_IO_INST_USE_DEFAULT_GM_SET 0x1000
00249 #define DMUS_IO_INST_PITCHBENDRANGE     0x2000
00250 
00251 #define DMUS_IO_SCRIPTTRACKF_PREPARE 0x1
00252 #define DMUS_IO_SCRIPTTRACKF_QUEUE   0x2
00253 #define DMUS_IO_SCRIPTTRACKF_ATTIME  0x4
00254 
00255 #define DMUS_MARKERF_START       0x1
00256 #define DMUS_MARKERF_STOP        0x2
00257 #define DMUS_MARKERF_CHORD_ALIGN 0x4
00258 
00259 #define DMUS_PATTERNF_PERSIST_CONTROL 0x1
00260 
00261 #define DMUS_PARTF_USE_MARKERS  0x1
00262 #define DMUS_PARTF_ALIGN_CHORDS 0x2
00263 
00264 #define DMUS_PORTCONFIGF_DRUMSON10  0x1
00265 #define DMUS_PORTCONFIGF_USEDEFAULT 0x2
00266 
00267 #define DMUS_SCRIPTIOF_LOAD_ALL_CONTENT       0x1
00268 #define DMUS_SCRIPTIOF_DOWNLOAD_ALL_SEGMENTS  0x2
00269 
00270 #define DMUS_SEGIOF_REFLENGTH 0x1
00271 #define DMUS_SEGIOF_CLOCKTIME 0x2
00272 
00273 #define DMUS_SEGMENTTRACKF_MOTIF 0x1
00274 
00275 /* Song flags; MS doesn't support this in DX 9.0 anymore */
00276 #define DMUS_SONG_MAXSEGID  0x7FFFFFFF
00277 #define DMUS_SONG_ANYSEG    0x80000000
00278 #define DMUS_SONG_NOSEG     0xFFFFFFFF
00279 #define DMUS_SONG_NOFROMSEG 0x80000001
00280 
00281 #define DMUS_SIGNPOSTF_A        0x0001      
00282 #define DMUS_SIGNPOSTF_B        0x0002
00283 #define DMUS_SIGNPOSTF_C        0x0004
00284 #define DMUS_SIGNPOSTF_D        0x0008
00285 #define DMUS_SIGNPOSTF_E        0x0010
00286 #define DMUS_SIGNPOSTF_F        0x0020
00287 #define DMUS_SIGNPOSTF_1        0x0100
00288 #define DMUS_SIGNPOSTF_2        0x0200
00289 #define DMUS_SIGNPOSTF_3        0x0400
00290 #define DMUS_SIGNPOSTF_4        0x0800
00291 #define DMUS_SIGNPOSTF_5        0x1000
00292 #define DMUS_SIGNPOSTF_6        0x2000
00293 #define DMUS_SIGNPOSTF_7        0x4000
00294 #define DMUS_SIGNPOSTF_CADENCE  0x8000
00295 #define DMUS_SIGNPOSTF_LETTER   (DMUS_SIGNPOSTF_A | DMUS_SIGNPOSTF_B | DMUS_SIGNPOSTF_C | DMUS_SIGNPOSTF_D | DMUS_SIGNPOSTF_E | DMUS_SIGNPOSTF_F)
00296 #define DMUS_SIGNPOSTF_ROOT     (DMUS_SIGNPOSTF_1 | DMUS_SIGNPOSTF_2 | DMUS_SIGNPOSTF_3 | DMUS_SIGNPOSTF_4 | DMUS_SIGNPOSTF_5 | DMUS_SIGNPOSTF_6 | DMUS_SIGNPOSTF_7)
00297 
00298 #define DMUS_SPOSTCADENCEF_1 0x2
00299 #define DMUS_SPOSTCADENCEF_2 0x4
00300 
00301 #define DMUS_VARIATIONF_MAJOR        0x0000007F
00302 #define DMUS_VARIATIONF_MINOR        0x00003F80
00303 #define DMUS_VARIATIONF_OTHER        0x001FC000
00304 #define DMUS_VARIATIONF_ROOT_SCALE   0x00200000
00305 #define DMUS_VARIATIONF_ROOT_FLAT    0x00400000
00306 #define DMUS_VARIATIONF_ROOT_SHARP   0x00800000
00307 #define DMUS_VARIATIONF_TYPE_TRIAD   0x01000000
00308 #define DMUS_VARIATIONF_TYPE_6AND7   0x02000000
00309 #define DMUS_VARIATIONF_TYPE_COMPLEX 0x04000000
00310 #define DMUS_VARIATIONF_DEST_TO1     0x08000000
00311 #define DMUS_VARIATIONF_DEST_TO5     0x10000000
00312 #define DMUS_VARIATIONF_DEST_OTHER   0x40000000
00313 #define DMUS_VARIATIONF_MODES        0xE0000000
00314 #define DMUS_VARIATIONF_MODES_EX     (0x20000000 | 0x80000000)
00315 #define DMUS_VARIATIONF_IMA25_MODE   0x00000000
00316 #define DMUS_VARIATIONF_DMUS_MODE    0x20000000
00317 
00318 #define DMUS_WAVETRACKF_SYNC_VAR        0x1
00319 #define DMUS_WAVETRACKF_PERSIST_CONTROL 0x2
00320 
00321 
00322 /*****************************************************************************
00323  * Enumerations
00324  */
00325 /* typedef definitions */
00326 typedef enum enumDMUS_VARIATIONT_TYPES DMUS_VARIATIONT_TYPES;
00327 typedef enum enumDMUS_EMBELLISHT_TYPES DMUS_EMBELLISHT_TYPES;
00328 typedef enum enumDMUS_PATTERNT_TYPES   DMUS_PATTERNT_TYPES;
00329 
00330 /* actual enumerations */
00331 enum enumDMUS_VARIATIONT_TYPES {
00332     DMUS_VARIATIONT_SEQUENTIAL   = 0x0,
00333     DMUS_VARIATIONT_RANDOM       = 0x1,
00334     DMUS_VARIATIONT_RANDOM_START = 0x2,
00335     DMUS_VARIATIONT_NO_REPEAT    = 0x3,
00336     DMUS_VARIATIONT_RANDOM_ROW   = 0x4
00337 };
00338 
00339 enum enumDMUS_EMBELLISHT_TYPES {
00340     DMUS_EMBELLISHT_NORMAL = 0x0000,
00341     DMUS_EMBELLISHT_FILL   = 0x0001,
00342     DMUS_EMBELLISHT_BREAK  = 0x0002,
00343     DMUS_EMBELLISHT_INTRO  = 0x0004,
00344     DMUS_EMBELLISHT_END    = 0x0008,
00345     DMUS_EMBELLISHT_MOTIF  = 0x0010,
00346     DMUS_EMBELLISHT_ALL    = 0xFFFF
00347 };
00348 
00349 enum enumDMUS_PATTERNT_TYPES {
00350     DMUS_PATTERNT_RANDOM       = 0x0,
00351     DMUS_PATTERNT_REPEAT       = 0x1,
00352     DMUS_PATTERNT_SEQUENTIAL   = 0x2,
00353     DMUS_PATTERNT_RANDOM_START = 0x3,
00354     DMUS_PATTERNT_NO_REPEAT    = 0x4,
00355     DMUS_PATTERNT_RANDOM_ROW   = 0x5
00356 };
00357 
00358 
00359 /*****************************************************************************
00360  * Structures
00361  */
00362 /* typedef definitions */
00363 typedef struct _DMUS_IO_SEQ_ITEM                       DMUS_IO_SEQ_ITEM,                       *LPDMUS_IO_SEQ_ITEM;
00364 typedef struct _DMUS_IO_CURVE_ITEM                     DMUS_IO_CURVE_ITEM,                     *LPDMUS_IO_CURVE_ITEM;
00365 typedef struct _DMUS_IO_TEMPO_ITEM                     DMUS_IO_TEMPO_ITEM,                     *LPDMUS_IO_TEMPO_ITEM;
00366 typedef struct _DMUS_IO_SYSEX_ITEM                     DMUS_IO_SYSEX_ITEM,                     *LPDMUS_IO_SYSEX_ITEM;
00367 typedef struct  DMUS_CHORD_KEY                         DMUS_CHORD_PARAM,                       *LPDMUS_CHORD_PARAM; /* in dmusici.h */
00368 typedef struct _DMUS_RHYTHM_PARAM                      DMUS_RHYTHM_PARAM,                      *LPDMUS_RHYTHM_PARAM;
00369 typedef struct _DMUS_TEMPO_PARAM                       DMUS_TEMPO_PARAM,                       *LPDMUS_TEMPO_PARAM;
00370 typedef struct _DMUS_MUTE_PARAM                        DMUS_MUTE_PARAM,                        *LPDMUS_MUTE_PARAM;
00371 typedef struct _DMUS_IO_TIMESIG                        DMUS_IO_TIMESIG,                        *LPDMUS_IO_TIMESIG;
00372 typedef struct _DMUS_IO_STYLE                          DMUS_IO_STYLE,                          *LPDMUS_IO_STYLE;
00373 typedef struct _DMUS_IO_VERSION                        DMUS_IO_VERSION,                        *LPDMUS_IO_VERSION;
00374 typedef struct _DMUS_IO_PATTERN                        DMUS_IO_PATTERN,                        *LPDMUS_IO_PATTERN;
00375 typedef struct _DMUS_IO_STYLEPART                      DMUS_IO_STYLEPART,                      *LPDMUS_IO_STYLEPART;
00376 typedef struct _DMUS_IO_PARTREF                        DMUS_IO_PARTREF,                        *LPDMUS_IO_PARTREF;
00377 typedef struct _DMUS_IO_STYLENOTE                      DMUS_IO_STYLENOTE,                      *LPDMUS_IO_STYLENOTE;
00378 typedef struct _DMUS_IO_STYLECURVE                     DMUS_IO_STYLECURVE,                     *LPDMUS_IO_STYLECURVE;
00379 typedef struct _DMUS_IO_STYLEMARKER                    DMUS_IO_STYLEMARKER,                    *LPDMUS_IO_STYLEMARKER;
00380 typedef struct _DMUS_IO_STYLERESOLUTION                DMUS_IO_STYLERESOLUTION,                *LPDMUS_IO_STYLERESOLUTION;
00381 typedef struct _DMUS_IO_STYLE_ANTICIPATION             DMUS_IO_STYLE_ANTICIPATION,             *LPDMUS_IO_STYLE_ANTICIPATION;
00382 typedef struct _DMUS_IO_MOTIFSETTINGS                  DMUS_IO_MOTIFSETTINGS,                  *LPDMUS_IO_MOTIFSETTINGS;
00383 typedef struct _DMUS_IO_CHORD                          DMUS_IO_CHORD,                          *LPDMUS_IO_CHORD;
00384 typedef struct _DMUS_IO_SUBCHORD                       DMUS_IO_SUBCHORD,                       *LPDMUS_IO_SUBCHORD;
00385 typedef struct _DMUS_IO_COMMAND                        DMUS_IO_COMMAND,                        *LPDMUS_IO_COMMAND;
00386 typedef struct _DMUS_IO_TOOL_HEADER                    DMUS_IO_TOOL_HEADER,                    *LPDMUS_IO_TOOL_HEADER;
00387 typedef struct _DMUS_IO_PORTCONFIG_HEADER              DMUS_IO_PORTCONFIG_HEADER,              *LPDMUS_IO_PORTCONFIG_HEADER;
00388 typedef struct _DMUS_IO_PCHANNELTOBUFFER_HEADER        DMUS_IO_PCHANNELTOBUFFER_HEADER,        *LPDMUS_IO_PCHANNELTOBUFFER_HEADER;
00389 typedef struct _DMUS_IO_BUFFER_ATTRIBUTES_HEADER       DMUS_IO_BUFFER_ATTRIBUTES_HEADER,       *LPDMUS_IO_BUFFER_ATTRIBUTES_HEADER;
00390 typedef struct _DMUS_IO_BAND_TRACK_HEADER              DMUS_IO_BAND_TRACK_HEADER,              *LPDMUS_IO_BAND_TRACK_HEADER;
00391 typedef struct _DMUS_IO_BAND_ITEM_HEADER               DMUS_IO_BAND_ITEM_HEADER,               *LPDMUS_IO_BAND_ITEM_HEADER;
00392 typedef struct _DMUS_IO_BAND_ITEM_HEADER2              DMUS_IO_BAND_ITEM_HEADER2,              *LPDMUS_IO_BAND_ITEM_HEADER2;
00393 typedef struct _DMUS_IO_INSTRUMENT                     DMUS_IO_INSTRUMENT,                     *LPDMUS_IO_INSTRUMENT;
00394 typedef struct _DMUS_IO_WAVE_HEADER                    DMUS_IO_WAVE_HEADER,                    *LPDMUS_IO_WAVE_HEADER;
00395 typedef struct _DMUS_IO_WAVE_TRACK_HEADER              DMUS_IO_WAVE_TRACK_HEADER,              *LPDMUS_IO_WAVE_TRACK_HEADER;
00396 typedef struct _DMUS_IO_WAVE_PART_HEADER               DMUS_IO_WAVE_PART_HEADER,               *LPDMUS_IO_WAVE_PART_HEADER;
00397 typedef struct _DMUS_IO_WAVE_ITEM_HEADER               DMUS_IO_WAVE_ITEM_HEADER,               *LPDMUS_IO_WAVE_ITEM_HEADER;
00398 typedef struct _DMUS_IO_CONTAINER_HEADER               DMUS_IO_CONTAINER_HEADER,               *LPDMUS_IO_CONTAINER_HEADER;
00399 typedef struct _DMUS_IO_CONTAINED_OBJECT_HEADER        DMUS_IO_CONTAINED_OBJECT_HEADER,        *LPDMUS_IO_CONTAINED_OBJECT_HEADER;
00400 typedef struct _DMUS_IO_SEGMENT_HEADER                 DMUS_IO_SEGMENT_HEADER,                 *LPDMUS_IO_SEGMENT_HEADER;   
00401 typedef struct _DMUS_IO_TRACK_HEADER                   DMUS_IO_TRACK_HEADER,                   *LPDMUS_IO_TRACK_HEADER;
00402 typedef struct _DMUS_IO_TRACK_EXTRAS_HEADER            DMUS_IO_TRACK_EXTRAS_HEADER,            *LPDMUS_IO_TRACK_EXTRAS_HEADER;
00403 typedef struct _DMUS_IO_REFERENCE                      DMUS_IO_REFERENCE,                      *LPDMUS_IO_REFERENCE;
00404 typedef struct _DMUS_IO_CHORDMAP                       DMUS_IO_CHORDMAP,                       *LPDMUS_IO_CHORDMAP;
00405 typedef struct _DMUS_IO_CHORDMAP_SUBCHORD              DMUS_IO_CHORDMAP_SUBCHORD,              *LPDMUS_IO_CHORDMAP_SUBCHORD;
00406 typedef struct _DMUS_IO_CHORDMAP_SUBCHORD              DMUS_IO_PERS_SUBCHORD,                  *LPDMUS_IO_PERS_SUBCHORD;
00407 typedef struct _DMUS_IO_CHORDENTRY                     DMUS_IO_CHORDENTRY,                     *LPDMUS_IO_CHORDENTRY;
00408 typedef struct _DMUS_IO_NEXTCHORD                      DMUS_IO_NEXTCHORD,                      *LPDMUS_IO_NEXTCHORD;
00409 typedef struct _DMUS_IO_CHORDMAP_SIGNPOST              DMUS_IO_CHORDMAP_SIGNPOST,              *LPDMUS_IO_CHORDMAP_SIGNPOST;
00410 typedef struct _DMUS_IO_CHORDMAP_SIGNPOST              DMUS_IO_PERS_SIGNPOST,                  *LPDMUS_IO_PERS_SIGNPOST;
00411 typedef struct _DMUS_IO_SCRIPT_HEADER                  DMUS_IO_SCRIPT_HEADER,                  *LPDMUS_IO_SCRIPT_HEADER;
00412 typedef struct _DMUS_IO_SIGNPOST                       DMUS_IO_SIGNPOST,                       *LPDMUS_IO_SIGNPOST;
00413 typedef struct _DMUS_IO_MUTE                           DMUS_IO_MUTE,                           *LPDMUS_IO_MUTE;
00414 typedef struct _DMUS_IO_TIMESIGNATURE_ITEM             DMUS_IO_TIMESIGNATURE_ITEM,             *LPDMUS_IO_TIMESIGNATURE_ITEM;
00415 typedef struct _DMUS_IO_VALID_START                    DMUS_IO_VALID_START,                    *LPDMUS_IO_VALID_START;
00416 typedef struct _DMUS_IO_PLAY_MARKER                    DMUS_IO_PLAY_MARKER,                    *LPDMUS_IO_PLAY_MARKER;
00417 typedef struct _DMUS_IO_SEGMENT_TRACK_HEADER           DMUS_IO_SEGMENT_TRACK_HEADER,           *LPDMUS_IO_SEGMENT_TRACK_HEADER;
00418 typedef struct _DMUS_IO_SEGMENT_ITEM_HEADER            DMUS_IO_SEGMENT_ITEM_HEADER,            *LPDMUS_IO_SEGMENT_ITEM_HEADER;
00419 typedef struct _DMUS_IO_SCRIPTTRACK_EVENTHEADER        DMUS_IO_SCRIPTTRACK_EVENTHEADER,        *LPDMUS_IO_SCRIPTTRACK_EVENTHEADER;
00420 typedef struct _DMUS_IO_LYRICSTRACK_EVENTHEADER        DMUS_IO_LYRICSTRACK_EVENTHEADER,        *LPDMUS_IO_LYRICSTRACK_EVENTHEADER;
00421 typedef struct _DMUS_IO_PARAMCONTROLTRACK_OBJECTHEADER DMUS_IO_PARAMCONTROLTRACK_OBJECTHEADER, *LPDMUS_IO_PARAMCONTROLTRACK_OBJECTHEADER;
00422 typedef struct _DMUS_IO_PARAMCONTROLTRACK_PARAMHEADER  DMUS_IO_PARAMCONTROLTRACK_PARAMHEADER,  *LPDMUS_IO_PARAMCONTROLTRACK_PARAMHEADER;
00423 typedef struct _DMUS_IO_PARAMCONTROLTRACK_CURVEINFO    DMUS_IO_PARAMCONTROLTRACK_CURVEINFO,    *LPDMUS_IO_PARAMCONTROLTRACK_CURVEINFO;
00424 typedef struct _DSOUND_IO_DSBUFFERDESC                 DSOUND_IO_DSBUFFERDESC,                 *LPDSOUND_IO_DSBUFFERDESC;
00425 typedef struct _DSOUND_IO_DSBUSID                      DSOUND_IO_DSBUSID,                      *LPDSOUND_IO_DSBUSID;
00426 typedef struct _DSOUND_IO_3D                           DSOUND_IO_3D,                           *LPDSOUND_IO_3D;
00427 typedef struct _DSOUND_IO_DXDMO_HEADER                 DSOUND_IO_DXDMO_HEADER,                 *LPDSOUND_IO_DXDMO_HEADER;
00428 typedef struct _DSOUND_IO_DXDMO_DATA                   DSOUND_IO_DXDMO_DATA,                   *LPDSOUND_IO_DXDMO_DATA;
00429 
00430 /* actual structures */
00431 struct _DMUS_IO_SEQ_ITEM {
00432     MUSIC_TIME mtTime;
00433     MUSIC_TIME mtDuration;
00434     DWORD      dwPChannel;
00435     short      nOffset; 
00436     BYTE       bStatus;
00437     BYTE       bByte1;
00438     BYTE       bByte2;
00439 };
00440 
00441 struct _DMUS_IO_CURVE_ITEM {
00442     MUSIC_TIME mtStart;
00443     MUSIC_TIME mtDuration;
00444     MUSIC_TIME mtResetDuration;
00445     DWORD      dwPChannel;
00446     short      nOffset;
00447     short      nStartValue;
00448     short      nEndValue;
00449     short      nResetValue;
00450     BYTE       bType;
00451     BYTE       bCurveShape;
00452     BYTE       bCCData;
00453     BYTE       bFlags;
00454     /* DX8 */
00455     WORD       wParamType;
00456     WORD       wMergeIndex;
00457 };
00458 
00459 struct _DMUS_IO_TEMPO_ITEM {
00460     MUSIC_TIME lTime;
00461     double     dblTempo;
00462 };
00463 
00464 struct _DMUS_IO_SYSEX_ITEM {
00465     MUSIC_TIME mtTime;
00466     DWORD      dwPChannel;
00467     DWORD      dwSysExLength;
00468 };
00469 
00470 struct _DMUS_RHYTHM_PARAM {
00471     DMUS_TIMESIGNATURE TimeSig;
00472     DWORD              dwRhythmPattern;
00473 };
00474 
00475 struct _DMUS_TEMPO_PARAM {
00476     MUSIC_TIME mtTime;
00477     double     dblTempo;
00478 };
00479 
00480 struct _DMUS_MUTE_PARAM {
00481     DWORD dwPChannel;
00482     DWORD dwPChannelMap;
00483     BOOL  fMute;
00484 };
00485 
00486 #pragma pack(2)
00487 struct _DMUS_IO_TIMESIG {
00488     BYTE bBeatsPerMeasure;
00489     BYTE bBeat;
00490     WORD wGridsPerBeat;
00491 };
00492 
00493 struct _DMUS_IO_STYLE {
00494     DMUS_IO_TIMESIG timeSig;
00495     double          dblTempo;   
00496 };
00497 
00498 struct _DMUS_IO_VERSION {
00499     DWORD dwVersionMS;
00500     DWORD dwVersionLS;
00501 };
00502 
00503 struct _DMUS_IO_PATTERN {
00504     DMUS_IO_TIMESIG timeSig;
00505     BYTE            bGrooveBottom;
00506     BYTE            bGrooveTop;
00507     WORD            wEmbellishment;
00508     WORD            wNbrMeasures;
00509     BYTE            bDestGrooveBottom;
00510     BYTE            bDestGrooveTop;
00511     DWORD           dwFlags;
00512 };
00513 
00514 struct _DMUS_IO_STYLEPART {
00515     DMUS_IO_TIMESIG timeSig;
00516     DWORD           dwVariationChoices[32];
00517     GUID            guidPartID;
00518     WORD            wNbrMeasures;
00519     BYTE            bPlayModeFlags;
00520     BYTE            bInvertUpper;
00521     BYTE            bInvertLower;
00522     BYTE            bPad[3];
00523     DWORD           dwFlags;
00524 };
00525 
00526 struct _DMUS_IO_PARTREF {
00527     GUID  guidPartID;
00528     WORD  wLogicalPartID;
00529     BYTE  bVariationLockID;
00530     BYTE  bSubChordLevel;
00531     BYTE  bPriority;
00532     BYTE  bRandomVariation;
00533     WORD  wPad;
00534     DWORD dwPChannel;
00535 };
00536 
00537 
00538 struct _DMUS_IO_STYLENOTE {
00539     MUSIC_TIME mtGridStart;
00540     DWORD      dwVariation;
00541     MUSIC_TIME mtDuration;
00542     short      nTimeOffset;
00543     WORD       wMusicValue;
00544     BYTE       bVelocity;
00545     BYTE       bTimeRange;
00546     BYTE       bDurRange;
00547     BYTE       bVelRange;
00548     BYTE       bInversionID;
00549     BYTE       bPlayModeFlags;
00550      /* DX8 */
00551     BYTE       bNoteFlags;
00552 };
00553 
00554 struct _DMUS_IO_STYLECURVE {
00555     MUSIC_TIME mtGridStart;
00556     DWORD      dwVariation;
00557     MUSIC_TIME mtDuration;
00558     MUSIC_TIME mtResetDuration;
00559     short      nTimeOffset;
00560     short      nStartValue;
00561     short      nEndValue;
00562     short      nResetValue;
00563     BYTE       bEventType;
00564     BYTE       bCurveShape;
00565     BYTE       bCCData;
00566     BYTE       bFlags;
00567     /* DX8 */
00568     WORD       wParamType;
00569     WORD       wMergeIndex;
00570 };
00571 
00572 struct _DMUS_IO_STYLEMARKER {
00573     MUSIC_TIME mtGridStart;
00574     DWORD      dwVariation;
00575     WORD       wMarkerFlags;
00576 };
00577 
00578 struct _DMUS_IO_STYLERESOLUTION {
00579     DWORD dwVariation;
00580     WORD  wMusicValue;
00581     BYTE  bInversionID;
00582     BYTE  bPlayModeFlags;
00583 };
00584 
00585 struct _DMUS_IO_STYLE_ANTICIPATION {
00586     MUSIC_TIME mtGridStart;
00587     DWORD      dwVariation;
00588     short      nTimeOffset;
00589     BYTE       bTimeRange;
00590 };
00591 
00592 struct _DMUS_IO_MOTIFSETTINGS {
00593     DWORD      dwRepeats;
00594     MUSIC_TIME mtPlayStart;
00595     MUSIC_TIME mtLoopStart;
00596     MUSIC_TIME mtLoopEnd;
00597     DWORD      dwResolution;
00598 };
00599 #pragma pack()
00600 
00601 struct _DMUS_IO_CHORD {
00602     WCHAR      wszName[16];
00603     MUSIC_TIME mtTime;
00604     WORD       wMeasure;
00605     BYTE       bBeat;
00606     BYTE       bFlags;
00607 };
00608 
00609 struct _DMUS_IO_SUBCHORD {
00610     DWORD dwChordPattern;
00611     DWORD dwScalePattern;
00612     DWORD dwInversionPoints;
00613     DWORD dwLevels;
00614     BYTE  bChordRoot;
00615     BYTE  bScaleRoot;
00616 };
00617 
00618 struct _DMUS_IO_COMMAND {
00619     MUSIC_TIME mtTime;
00620     WORD       wMeasure;
00621     BYTE       bBeat;
00622     BYTE       bCommand;
00623     BYTE       bGrooveLevel;
00624     BYTE       bGrooveRange;
00625     BYTE       bRepeatMode;
00626 };
00627 
00628 struct _DMUS_IO_TOOL_HEADER {
00629     GUID   guidClassID;
00630     LONG   lIndex;
00631     DWORD  cPChannels;
00632     FOURCC ckid;
00633     FOURCC fccType;
00634     DWORD  dwPChannels[1];
00635 };
00636 
00637 struct _DMUS_IO_PORTCONFIG_HEADER {
00638     GUID  guidPort;
00639     DWORD dwPChannelBase;
00640     DWORD dwPChannelCount;
00641     DWORD dwFlags;
00642 };
00643 
00644 struct _DMUS_IO_PCHANNELTOBUFFER_HEADER {
00645     DWORD dwPChannelBase;
00646     DWORD dwPChannelCount;
00647     DWORD dwBufferCount;
00648     DWORD dwFlags;
00649 };
00650 
00651 struct _DMUS_IO_BUFFER_ATTRIBUTES_HEADER {
00652     GUID  guidBufferID;
00653     DWORD dwFlags;
00654 };
00655 
00656 struct _DMUS_IO_BAND_TRACK_HEADER {
00657     BOOL bAutoDownload;
00658 };
00659 
00660 struct _DMUS_IO_BAND_ITEM_HEADER {
00661     MUSIC_TIME lBandTime;
00662 };
00663 
00664 struct _DMUS_IO_BAND_ITEM_HEADER2 {
00665     MUSIC_TIME lBandTimeLogical;
00666     MUSIC_TIME lBandTimePhysical;
00667 };
00668 
00669 struct _DMUS_IO_INSTRUMENT {
00670     DWORD dwPatch;
00671     DWORD dwAssignPatch;
00672     DWORD dwNoteRanges[4];
00673     DWORD dwPChannel;
00674     DWORD dwFlags;
00675     BYTE  bPan;
00676     BYTE  bVolume;
00677     short nTranspose;
00678     DWORD dwChannelPriority;
00679     short nPitchBendRange;
00680 };
00681 
00682 struct _DMUS_IO_WAVE_HEADER {
00683     REFERENCE_TIME rtReadAhead;
00684     DWORD          dwFlags;
00685 };
00686 
00687 struct _DMUS_IO_WAVE_TRACK_HEADER {
00688     LONG  lVolume;
00689     DWORD dwFlags;
00690 };
00691 
00692 struct _DMUS_IO_WAVE_PART_HEADER {
00693     LONG  lVolume;
00694     DWORD dwVariations;
00695     DWORD dwPChannel;
00696     DWORD dwLockToPart;
00697     DWORD dwFlags;
00698     DWORD dwIndex;
00699 };
00700 
00701 struct _DMUS_IO_WAVE_ITEM_HEADER  {
00702     LONG           lVolume;
00703     LONG           lPitch;
00704     DWORD          dwVariations;
00705     REFERENCE_TIME rtTime;
00706     REFERENCE_TIME rtStartOffset;
00707     REFERENCE_TIME rtReserved;
00708     REFERENCE_TIME rtDuration;
00709     MUSIC_TIME     mtLogicalTime;
00710     DWORD          dwLoopStart;
00711     DWORD          dwLoopEnd;
00712     DWORD          dwFlags;
00713     WORD           wVolumeRange;
00714     WORD           wPitchRange;
00715 };
00716 
00717 struct _DMUS_IO_CONTAINER_HEADER {
00718     DWORD dwFlags;
00719 };
00720 
00721 struct _DMUS_IO_CONTAINED_OBJECT_HEADER {
00722     GUID   guidClassID;
00723     DWORD  dwFlags;
00724     FOURCC ckid;
00725     FOURCC fccType;
00726 };
00727 
00728 struct _DMUS_IO_SEGMENT_HEADER {
00729     DWORD          dwRepeats;
00730     MUSIC_TIME     mtLength;
00731     MUSIC_TIME     mtPlayStart;
00732     MUSIC_TIME     mtLoopStart;
00733     MUSIC_TIME     mtLoopEnd;
00734     DWORD          dwResolution;
00735     /* DX8 */
00736     REFERENCE_TIME rtLength;
00737     DWORD          dwFlags;
00738     DWORD          dwReserved;
00739     /* DX9 */
00740     REFERENCE_TIME rtLoopStart;
00741     REFERENCE_TIME rtLoopEnd;
00742     REFERENCE_TIME rtPlayStart;
00743 };
00744 
00745 struct _DMUS_IO_TRACK_HEADER {
00746     GUID   guidClassID;
00747     DWORD  dwPosition;
00748     DWORD  dwGroup;
00749     FOURCC ckid;
00750     FOURCC fccType;
00751 };
00752 
00753 struct _DMUS_IO_TRACK_EXTRAS_HEADER {
00754     DWORD dwFlags;
00755     DWORD dwPriority;
00756 };
00757 
00758 struct _DMUS_IO_REFERENCE {
00759     GUID  guidClassID;
00760     DWORD dwValidData;
00761 };
00762 
00763 struct _DMUS_IO_CHORDMAP {
00764     WCHAR wszLoadName[20];
00765     DWORD dwScalePattern;
00766     DWORD dwFlags;
00767 };
00768 
00769 struct _DMUS_IO_CHORDMAP_SUBCHORD {
00770     DWORD dwChordPattern;
00771     DWORD dwScalePattern;
00772     DWORD dwInvertPattern;
00773     BYTE  bChordRoot;
00774     BYTE  bScaleRoot;
00775     WORD  wCFlags;
00776     DWORD dwLevels;
00777 };
00778 
00779 struct _DMUS_IO_CHORDENTRY {
00780     DWORD dwFlags;
00781     WORD  wConnectionID;
00782 };
00783 
00784 struct _DMUS_IO_NEXTCHORD {
00785     DWORD dwFlags;
00786     WORD  nWeight;
00787     WORD  wMinBeats;
00788     WORD  wMaxBeats;
00789     WORD  wConnectionID;
00790 };
00791 
00792 struct _DMUS_IO_CHORDMAP_SIGNPOST {
00793     DWORD dwChords;
00794     DWORD dwFlags;
00795 };
00796 
00797 struct _DMUS_IO_SCRIPT_HEADER {
00798     DWORD dwFlags;
00799 };
00800 
00801 struct _DMUS_IO_SIGNPOST {
00802     MUSIC_TIME mtTime;
00803     DWORD      dwChords;
00804     WORD       wMeasure;
00805 };
00806 
00807 struct _DMUS_IO_MUTE {
00808     MUSIC_TIME mtTime;
00809     DWORD      dwPChannel;
00810     DWORD      dwPChannelMap;
00811 };
00812 
00813 struct _DMUS_IO_TIMESIGNATURE_ITEM {
00814     MUSIC_TIME lTime;
00815     BYTE       bBeatsPerMeasure;
00816     BYTE       bBeat;
00817     WORD       wGridsPerBeat;
00818 };
00819 
00820 struct _DMUS_IO_VALID_START {
00821     MUSIC_TIME mtTime;
00822 };
00823 
00824 struct _DMUS_IO_PLAY_MARKER {
00825     MUSIC_TIME mtTime;
00826 };
00827 
00828 struct _DMUS_IO_SEGMENT_TRACK_HEADER {
00829     DWORD dwFlags;
00830 };
00831 
00832 struct _DMUS_IO_SEGMENT_ITEM_HEADER {
00833     MUSIC_TIME lTimeLogical;
00834     MUSIC_TIME lTimePhysical;
00835     DWORD      dwPlayFlags;
00836     DWORD      dwFlags;
00837 };
00838 
00839 struct _DMUS_IO_SCRIPTTRACK_EVENTHEADER {
00840     DWORD      dwFlags;
00841     MUSIC_TIME lTimeLogical;
00842     MUSIC_TIME lTimePhysical;
00843 };
00844 
00845 struct _DMUS_IO_LYRICSTRACK_EVENTHEADER {
00846     DWORD dwFlags;
00847     DWORD dwTimingFlags;
00848     MUSIC_TIME lTimeLogical;
00849     MUSIC_TIME lTimePhysical;
00850 };
00851 
00852 struct _DMUS_IO_PARAMCONTROLTRACK_OBJECTHEADER {
00853     DWORD dwFlags;
00854     GUID guidTimeFormat;
00855     DWORD dwPChannel;
00856     DWORD dwStage;
00857     DWORD dwBuffer;
00858     GUID guidObject;
00859     DWORD dwIndex;
00860 };
00861 
00862 struct _DMUS_IO_PARAMCONTROLTRACK_PARAMHEADER {
00863     DWORD dwFlags;
00864     DWORD dwIndex;
00865 };
00866 
00867 struct _DMUS_IO_PARAMCONTROLTRACK_CURVEINFO {
00868     MUSIC_TIME mtStartTime;
00869     MUSIC_TIME mtEndTime;
00870     float      fltStartValue;
00871     float      fltEndValue;
00872     DWORD      dwCurveType;
00873     DWORD      dwFlags;
00874 };
00875 
00876 struct _DSOUND_IO_DSBUFFERDESC {
00877     DWORD dwFlags;
00878     WORD  nChannels;
00879     LONG  lVolume;
00880     LONG  lPan;
00881     DWORD dwReserved;
00882 };
00883 
00884 struct _DSOUND_IO_DSBUSID {
00885     DWORD busid[1];
00886 };
00887 
00888 struct _DSOUND_IO_3D {
00889     GUID guid3DAlgorithm;
00890     DS3DBUFFER ds3d;
00891 };
00892 
00893 struct _DSOUND_IO_DXDMO_HEADER {
00894     DWORD dwEffectFlags;
00895     GUID  guidDSFXClass;
00896     GUID  guidReserved;
00897     GUID  guidSendBuffer;
00898     DWORD dwReserved;
00899 };
00900 
00901 struct _DSOUND_IO_DXDMO_DATA {
00902     DWORD data[1];
00903 };
00904 
00905 #ifdef __cplusplus
00906 }
00907 #endif
00908 
00909 #include <poppack.h>
00910 
00911 #endif /* __WINE_DMUSIC_FILEFORMATS_H */

Generated on Sun May 27 2012 04:30:39 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.