From c80d492694898726e4500dc9d299f6aaff6535d0 Mon Sep 17 00:00:00 2001 From: Kirill Volinsky Date: Sun, 20 Jan 2013 20:03:08 +0000 Subject: sndVol removed too - use bass_interface git-svn-id: http://svn.miranda-ng.org/main/trunk@3202 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/!NotAdopted/sndVol/DxErr8.lib | Bin 1210560 -> 0 bytes plugins/!NotAdopted/sndVol/IcoLib.h | 25 - plugins/!NotAdopted/sndVol/README | 37 - plugins/!NotAdopted/sndVol/dls1.h | 267 --- plugins/!NotAdopted/sndVol/dls2.h | 130 -- plugins/!NotAdopted/sndVol/dmdls.h | 199 --- plugins/!NotAdopted/sndVol/dmerror.h | 843 ---------- plugins/!NotAdopted/sndVol/dmplugin.h | 280 ---- plugins/!NotAdopted/sndVol/dmusbuff.h | 41 - plugins/!NotAdopted/sndVol/dmusicc.h | 784 --------- plugins/!NotAdopted/sndVol/dmusici.h | 1883 --------------------- plugins/!NotAdopted/sndVol/dmutil.cpp | 689 -------- plugins/!NotAdopted/sndVol/dmutil.h | 126 -- plugins/!NotAdopted/sndVol/dsound.h | 2358 --------------------------- plugins/!NotAdopted/sndVol/dxerr8.h | 99 -- plugins/!NotAdopted/sndVol/dxguid.lib | Bin 408634 -> 0 bytes plugins/!NotAdopted/sndVol/dxutil.cpp | 226 --- plugins/!NotAdopted/sndVol/dxutil.h | 49 - plugins/!NotAdopted/sndVol/m_cluiframes.h | 128 -- plugins/!NotAdopted/sndVol/mradio-muted.ico | Bin 318 -> 0 bytes plugins/!NotAdopted/sndVol/mradio.ico | Bin 318 -> 0 bytes plugins/!NotAdopted/sndVol/nosnd.ico | Bin 2550 -> 0 bytes plugins/!NotAdopted/sndVol/optionsdlg.cpp | 205 --- plugins/!NotAdopted/sndVol/optionsdlg.h | 1 - plugins/!NotAdopted/sndVol/playSnd.cpp | 136 -- plugins/!NotAdopted/sndVol/playSnd.h | 24 - plugins/!NotAdopted/sndVol/plugin.cpp | 478 ------ plugins/!NotAdopted/sndVol/plugin.h | 44 - plugins/!NotAdopted/sndVol/resource.h | 31 - plugins/!NotAdopted/sndVol/snd.ico | Bin 2550 -> 0 bytes plugins/!NotAdopted/sndVol/sndVol.aps | Bin 41060 -> 0 bytes plugins/!NotAdopted/sndVol/sndVol.dsp | 203 --- plugins/!NotAdopted/sndVol/sndVol.dsw | 29 - plugins/!NotAdopted/sndVol/sndVol.rc | 199 --- plugins/!NotAdopted/sndVol/sndVol.sln | 23 - plugins/!NotAdopted/sndVol/sndVol.vcproj | 540 ------ 36 files changed, 10077 deletions(-) delete mode 100644 plugins/!NotAdopted/sndVol/DxErr8.lib delete mode 100644 plugins/!NotAdopted/sndVol/IcoLib.h delete mode 100644 plugins/!NotAdopted/sndVol/README delete mode 100644 plugins/!NotAdopted/sndVol/dls1.h delete mode 100644 plugins/!NotAdopted/sndVol/dls2.h delete mode 100644 plugins/!NotAdopted/sndVol/dmdls.h delete mode 100644 plugins/!NotAdopted/sndVol/dmerror.h delete mode 100644 plugins/!NotAdopted/sndVol/dmplugin.h delete mode 100644 plugins/!NotAdopted/sndVol/dmusbuff.h delete mode 100644 plugins/!NotAdopted/sndVol/dmusicc.h delete mode 100644 plugins/!NotAdopted/sndVol/dmusici.h delete mode 100644 plugins/!NotAdopted/sndVol/dmutil.cpp delete mode 100644 plugins/!NotAdopted/sndVol/dmutil.h delete mode 100644 plugins/!NotAdopted/sndVol/dsound.h delete mode 100644 plugins/!NotAdopted/sndVol/dxerr8.h delete mode 100644 plugins/!NotAdopted/sndVol/dxguid.lib delete mode 100644 plugins/!NotAdopted/sndVol/dxutil.cpp delete mode 100644 plugins/!NotAdopted/sndVol/dxutil.h delete mode 100644 plugins/!NotAdopted/sndVol/m_cluiframes.h delete mode 100644 plugins/!NotAdopted/sndVol/mradio-muted.ico delete mode 100644 plugins/!NotAdopted/sndVol/mradio.ico delete mode 100644 plugins/!NotAdopted/sndVol/nosnd.ico delete mode 100644 plugins/!NotAdopted/sndVol/optionsdlg.cpp delete mode 100644 plugins/!NotAdopted/sndVol/optionsdlg.h delete mode 100644 plugins/!NotAdopted/sndVol/playSnd.cpp delete mode 100644 plugins/!NotAdopted/sndVol/playSnd.h delete mode 100644 plugins/!NotAdopted/sndVol/plugin.cpp delete mode 100644 plugins/!NotAdopted/sndVol/plugin.h delete mode 100644 plugins/!NotAdopted/sndVol/resource.h delete mode 100644 plugins/!NotAdopted/sndVol/snd.ico delete mode 100644 plugins/!NotAdopted/sndVol/sndVol.aps delete mode 100644 plugins/!NotAdopted/sndVol/sndVol.dsp delete mode 100644 plugins/!NotAdopted/sndVol/sndVol.dsw delete mode 100644 plugins/!NotAdopted/sndVol/sndVol.rc delete mode 100644 plugins/!NotAdopted/sndVol/sndVol.sln delete mode 100644 plugins/!NotAdopted/sndVol/sndVol.vcproj diff --git a/plugins/!NotAdopted/sndVol/DxErr8.lib b/plugins/!NotAdopted/sndVol/DxErr8.lib deleted file mode 100644 index 0e1ce15675..0000000000 Binary files a/plugins/!NotAdopted/sndVol/DxErr8.lib and /dev/null differ diff --git a/plugins/!NotAdopted/sndVol/IcoLib.h b/plugins/!NotAdopted/sndVol/IcoLib.h deleted file mode 100644 index 86666553dd..0000000000 --- a/plugins/!NotAdopted/sndVol/IcoLib.h +++ /dev/null @@ -1,25 +0,0 @@ -typedef struct { - int cbSize; - char *pszSection; //section name used to group icons - char *pszDescription; //description for options dialog - char *pszName; //name to refer to icon when playing and in db - char *pszDefaultFile; //default icon file to use - int iDefaultIndex; -} SKINICONDESC; - -// -// Add a icon into options UI -// -// wParam = (WPARAM)0 -// lParam = (LPARAM)(SKINICONDESC*)sid; -// -#define MS_SKIN2_ADDICON "Skin2/Icons/AddIcon" -// -// Retrieve HICON with name specified in lParam -// Returned HICON SHOULDN'T be destroyed, it managed by IcoLib -// -#define MS_SKIN2_GETICON "Skin2/Icons/GetIcon" -// -// Icons change notification -// -#define ME_SKIN2_ICONSCHANGED "Skin2/IconsChanged" diff --git a/plugins/!NotAdopted/sndVol/README b/plugins/!NotAdopted/sndVol/README deleted file mode 100644 index 3d326ad9b0..0000000000 --- a/plugins/!NotAdopted/sndVol/README +++ /dev/null @@ -1,37 +0,0 @@ -This is a slightly modified version of the original sndVol plugin which -was written by Std. - -The following things have changed: ----------------------------------- - -* added ability to set the volume for the mRadio plugin (if installed). - (this is optional, you can still use sndVol for ONLY setting the volume - for event sounds and handle mRadio volume directly in mRadio). - -* added ability to mute mRadio when muting event sounds (again, optional.) - -* added 2 items to the option page to allow enabling the features above - (mRadio support). - -* added ability to change background colour of the sndVol frame. - -* added 2nd mute button to mute mRadio ONLY (event sounds will stay - unmuted). This button is only visible when the mRadio plugin is - installed and detected. The 2 buttons may be synced when the option - "mute mRadio" on the options page is enabled, so it is still possible - to mute both event sounds and radio with a single click. - -* UPDATED FOR Miranda 0.8.x.x or later. - - You can also right-click this button to open mRadio settings. - ---------------------- - -contact: Nightwish (miranda forums or http://www.miranda.or.at/forums/ - silvercircle@gmail.com - ICQ: 7769309 - MSN: silvercircle@gmail.com - -LICENSE: GPL, most of the code was originally written by Std and distributed - under GPL. - diff --git a/plugins/!NotAdopted/sndVol/dls1.h b/plugins/!NotAdopted/sndVol/dls1.h deleted file mode 100644 index b33425de9a..0000000000 --- a/plugins/!NotAdopted/sndVol/dls1.h +++ /dev/null @@ -1,267 +0,0 @@ -/*==========================================================================; -// -// dls1.h -// -// -// Description: -// -// Interface defines and structures for the Instrument Collection Form -// RIFF DLS. -// -// -// Written by Sonic Foundry 1996. Released for public use. -// -//=========================================================================*/ - -#ifndef _INC_DLS1 -#define _INC_DLS1 - -/*////////////////////////////////////////////////////////////////////////// -// -// -// Layout of an instrument collection: -// -// -// RIFF [] 'DLS ' [dlid,colh,INSTLIST,WAVEPOOL,INFOLIST] -// -// INSTLIST -// LIST [] 'lins' -// LIST [] 'ins ' [dlid,insh,RGNLIST,ARTLIST,INFOLIST] -// LIST [] 'ins ' [dlid,insh,RGNLIST,ARTLIST,INFOLIST] -// LIST [] 'ins ' [dlid,insh,RGNLIST,ARTLIST,INFOLIST] -// -// RGNLIST -// LIST [] 'lrgn' -// LIST [] 'rgn ' [rgnh,wsmp,wlnk,ARTLIST] -// LIST [] 'rgn ' [rgnh,wsmp,wlnk,ARTLIST] -// LIST [] 'rgn ' [rgnh,wsmp,wlnk,ARTLIST] -// -// ARTLIST -// LIST [] 'lart' -// 'art1' level 1 Articulation connection graph -// 'art2' level 2 Articulation connection graph -// '3rd1' Possible 3rd party articulation structure 1 -// '3rd2' Possible 3rd party articulation structure 2 .... and so on -// -// WAVEPOOL -// ptbl [] [pool table] -// LIST [] 'wvpl' -// [path], -// [path], -// LIST [] 'wave' [dlid,RIFFWAVE] -// LIST [] 'wave' [dlid,RIFFWAVE] -// LIST [] 'wave' [dlid,RIFFWAVE] -// LIST [] 'wave' [dlid,RIFFWAVE] -// LIST [] 'wave' [dlid,RIFFWAVE] -// -// INFOLIST -// LIST [] 'INFO' -// 'icmt' 'One of those crazy comments.' -// 'icop' 'Copyright (C) 1996 Sonic Foundry' -// -/////////////////////////////////////////////////////////////////////////*/ - - -/*///////////////////////////////////////////////////////////////////////// -// FOURCC's used in the DLS file -/////////////////////////////////////////////////////////////////////////*/ - -#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') - -/*///////////////////////////////////////////////////////////////////////// -// Articulation connection graph definitions -/////////////////////////////////////////////////////////////////////////*/ - -/* Generic Sources */ -#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 - -/* Midi Controllers 0-127 */ -#define CONN_SRC_CC1 0x0081 -#define CONN_SRC_CC7 0x0087 -#define CONN_SRC_CC10 0x008a -#define CONN_SRC_CC11 0x008b - -/* Generic Destinations */ -#define CONN_DST_NONE 0x0000 -#define CONN_DST_ATTENUATION 0x0001 -#define CONN_DST_PITCH 0x0003 -#define CONN_DST_PAN 0x0004 - -/* LFO Destinations */ -#define CONN_DST_LFO_FREQUENCY 0x0104 -#define CONN_DST_LFO_STARTDELAY 0x0105 - -/* EG1 Destinations */ -#define CONN_DST_EG1_ATTACKTIME 0x0206 -#define CONN_DST_EG1_DECAYTIME 0x0207 -#define CONN_DST_EG1_RELEASETIME 0x0209 -#define CONN_DST_EG1_SUSTAINLEVEL 0x020a - -/* EG2 Destinations */ -#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 - -typedef struct _DLSID { - ULONG ulData1; - USHORT usData2; - USHORT usData3; - BYTE abData4[8]; -} DLSID, FAR *LPDLSID; - -typedef struct _DLSVERSION { - DWORD dwVersionMS; - DWORD dwVersionLS; -}DLSVERSION, FAR *LPDLSVERSION; - - -typedef struct _CONNECTION { - USHORT usSource; - USHORT usControl; - USHORT usDestination; - USHORT usTransform; - LONG lScale; - }CONNECTION, FAR *LPCONNECTION; - - -/* Level 1 Articulation Data */ - -typedef struct _CONNECTIONLIST { - ULONG cbSize; /* size of the connection list structure */ - ULONG cConnections; /* count of connections in the list */ - } CONNECTIONLIST, FAR *LPCONNECTIONLIST; - - - -/*///////////////////////////////////////////////////////////////////////// -// Generic type defines for regions and instruments -/////////////////////////////////////////////////////////////////////////*/ - -typedef struct _RGNRANGE { - USHORT usLow; - USHORT usHigh; -}RGNRANGE, FAR * LPRGNRANGE; - -#define F_INSTRUMENT_DRUMS 0x80000000 - -typedef struct _MIDILOCALE { - ULONG ulBank; - ULONG ulInstrument; -}MIDILOCALE, FAR *LPMIDILOCALE; - -/*///////////////////////////////////////////////////////////////////////// -// Header structures found in an DLS file for collection, instruments, and -// regions. -/////////////////////////////////////////////////////////////////////////*/ - -#define F_RGN_OPTION_SELFNONEXCLUSIVE 0x0001 - -typedef struct _RGNHEADER { - RGNRANGE RangeKey; /* Key range */ - RGNRANGE RangeVelocity; /* Velocity Range */ - USHORT fusOptions; /* Synthesis options for this range */ - USHORT usKeyGroup; /* Key grouping for non simultaneous play */ - /* 0 = no group, 1 up is group */ - /* for Level 1 only groups 1-15 are allowed */ -}RGNHEADER, FAR *LPRGNHEADER; - -typedef struct _INSTHEADER { - ULONG cRegions; /* Count of regions in this instrument */ - MIDILOCALE Locale; /* Intended MIDI locale of this instrument */ -}INSTHEADER, FAR *LPINSTHEADER; - -typedef struct _DLSHEADER { - ULONG cInstruments; /* Count of instruments in the collection */ -}DLSHEADER, FAR *LPDLSHEADER; - -/*//////////////////////////////////////////////////////////////////////////// -// definitions for the Wave link structure -////////////////////////////////////////////////////////////////////////////*/ - -/* **** For level 1 only WAVELINK_CHANNEL_MONO is valid **** */ -/* ulChannel allows for up to 32 channels of audio with each bit position */ -/* specifiying a channel of playback */ - -#define WAVELINK_CHANNEL_LEFT 0x0001l -#define WAVELINK_CHANNEL_RIGHT 0x0002l - -#define F_WAVELINK_PHASE_MASTER 0x0001 - -typedef struct _WAVELINK { /* any paths or links are stored right after struct */ - USHORT fusOptions; /* options flags for this wave */ - USHORT usPhaseGroup; /* Phase grouping for locking channels */ - ULONG ulChannel; /* channel placement */ - ULONG ulTableIndex; /* index into the wave pool table, 0 based */ -}WAVELINK, FAR *LPWAVELINK; - -#define POOL_CUE_NULL 0xffffffffl - -typedef struct _POOLCUE { - ULONG ulOffset; /* Offset to the entry in the list */ -}POOLCUE, FAR *LPPOOLCUE; - -typedef struct _POOLTABLE { - ULONG cbSize; /* size of the pool table structure */ - ULONG cCues; /* count of cues in the list */ - } POOLTABLE, FAR *LPPOOLTABLE; - -/*//////////////////////////////////////////////////////////////////////////// -// Structures for the "wsmp" chunk -////////////////////////////////////////////////////////////////////////////*/ - -#define F_WSMP_NO_TRUNCATION 0x0001l -#define F_WSMP_NO_COMPRESSION 0x0002l - - -typedef struct _rwsmp { - ULONG cbSize; - USHORT usUnityNote; /* MIDI Unity Playback Note */ - SHORT sFineTune; /* Fine Tune in log tuning */ - LONG lAttenuation; /* Overall Attenuation to be applied to data */ - ULONG fulOptions; /* Flag options */ - ULONG cSampleLoops; /* Count of Sample loops, 0 loops is one shot */ - } WSMPL, FAR *LPWSMPL; - - -/* This loop type is a normal forward playing loop which is continually */ -/* played until the envelope reaches an off threshold in the release */ -/* portion of the volume envelope */ - -#define WLOOP_TYPE_FORWARD 0 - -typedef struct _rloop { - ULONG cbSize; - ULONG ulType; /* Loop Type */ - ULONG ulStart; /* Start of loop in samples */ - ULONG ulLength; /* Length of loop in samples */ -} WLOOP, FAR *LPWLOOP; - -#endif /*_INC_DLS1 */ - diff --git a/plugins/!NotAdopted/sndVol/dls2.h b/plugins/!NotAdopted/sndVol/dls2.h deleted file mode 100644 index b372f35033..0000000000 --- a/plugins/!NotAdopted/sndVol/dls2.h +++ /dev/null @@ -1,130 +0,0 @@ -/* - - dls2.h - - Description: - - Interface defines and structures for the DLS2 extensions of DLS. - - - Written by Microsoft 1998. Released for public use. - -*/ - -#ifndef _INC_DLS2 -#define _INC_DLS2 - -/* - FOURCC's used in the DLS2 file, in addition to DLS1 chunks -*/ - -#define FOURCC_RGN2 mmioFOURCC('r','g','n','2') -#define FOURCC_LAR2 mmioFOURCC('l','a','r','2') -#define FOURCC_ART2 mmioFOURCC('a','r','t','2') -#define FOURCC_CDL mmioFOURCC('c','d','l',' ') -#define FOURCC_DLID mmioFOURCC('d','l','i','d') - -/* - Articulation connection graph definitions. These are in addition to - the definitions in the DLS1 header. -*/ - -/* Generic Sources (in addition to DLS1 sources. */ -#define CONN_SRC_POLYPRESSURE 0x0007 /* Polyphonic Pressure */ -#define CONN_SRC_CHANNELPRESSURE 0x0008 /* Channel Pressure */ -#define CONN_SRC_VIBRATO 0x0009 /* Vibrato LFO */ -#define CONN_SRC_MONOPRESSURE 0x000a /* MIDI Mono pressure */ - - -/* Midi Controllers */ -#define CONN_SRC_CC91 0x00db /* Reverb Send */ -#define CONN_SRC_CC93 0x00dd /* Chorus Send */ - - -/* Generic Destinations */ -#define CONN_DST_GAIN 0x0001 /* Same as CONN_DST_ ATTENUATION, but more appropriate terminology. */ -#define CONN_DST_KEYNUMBER 0x0005 /* Key Number Generator */ - -/* Audio Channel Output Destinations */ -#define CONN_DST_LEFT 0x0010 /* Left Channel Send */ -#define CONN_DST_RIGHT 0x0011 /* Right Channel Send */ -#define CONN_DST_CENTER 0x0012 /* Center Channel Send */ -#define CONN_DST_LEFTREAR 0x0013 /* Left Rear Channel Send */ -#define CONN_DST_RIGHTREAR 0x0014 /* Right Rear Channel Send */ -#define CONN_DST_LFE_CHANNEL 0x0015 /* LFE Channel Send */ -#define CONN_DST_CHORUS 0x0080 /* Chorus Send */ -#define CONN_DST_REVERB 0x0081 /* Reverb Send */ - -/* Vibrato LFO Destinations */ -#define CONN_DST_VIB_FREQUENCY 0x0114 /* Vibrato Frequency */ -#define CONN_DST_VIB_STARTDELAY 0x0115 /* Vibrato Start Delay */ - -/* EG1 Destinations */ -#define CONN_DST_EG1_DELAYTIME 0x020B /* EG1 Delay Time */ -#define CONN_DST_EG1_HOLDTIME 0x020C /* EG1 Hold Time */ -#define CONN_DST_EG1_SHUTDOWNTIME 0x020D /* EG1 Shutdown Time */ - - -/* EG2 Destinations */ -#define CONN_DST_EG2_DELAYTIME 0x030F /* EG2 Delay Time */ -#define CONN_DST_EG2_HOLDTIME 0x0310 /* EG2 Hold Time */ - - -/* Filter Destinations */ -#define CONN_DST_FILTER_CUTOFF 0x0500 /* Filter Cutoff Frequency */ -#define CONN_DST_FILTER_Q 0x0501 /* Filter Resonance */ - - -/* Transforms */ -#define CONN_TRN_CONVEX 0x0002 /* Convex Transform */ -#define CONN_TRN_SWITCH 0x0003 /* Switch Transform */ - - -/* Conditional chunk operators */ - #define DLS_CDL_AND 0x0001 /* X = X & Y */ - #define DLS_CDL_OR 0x0002 /* X = X | Y */ - #define DLS_CDL_XOR 0x0003 /* X = X ^ Y */ - #define DLS_CDL_ADD 0x0004 /* X = X + Y */ - #define DLS_CDL_SUBTRACT 0x0005 /* X = X - Y */ - #define DLS_CDL_MULTIPLY 0x0006 /* X = X * Y */ - #define DLS_CDL_DIVIDE 0x0007 /* X = X / Y */ - #define DLS_CDL_LOGICAL_AND 0x0008 /* X = X && Y */ - #define DLS_CDL_LOGICAL_OR 0x0009 /* X = X || Y */ - #define DLS_CDL_LT 0x000A /* X = (X < Y) */ - #define DLS_CDL_LE 0x000B /* X = (X <= Y) */ - #define DLS_CDL_GT 0x000C /* X = (X > Y) */ - #define DLS_CDL_GE 0x000D /* X = (X >= Y) */ - #define DLS_CDL_EQ 0x000E /* X = (X == Y) */ - #define DLS_CDL_NOT 0x000F /* X = !X */ - #define DLS_CDL_CONST 0x0010 /* 32-bit constant */ - #define DLS_CDL_QUERY 0x0011 /* 32-bit value returned from query */ - #define DLS_CDL_QUERYSUPPORTED 0x0012 /* Test to see if query is supported by synth */ - -/* - Loop and release -*/ - -#define WLOOP_TYPE_RELEASE 1 - -/* - WaveLink chunk -*/ - -#define F_WAVELINK_MULTICHANNEL 0x0002 - - -/* - DLSID queries for -*/ - -DEFINE_GUID(DLSID_GMInHardware, 0x178f2f24, 0xc364, 0x11d1, 0xa7, 0x60, 0x00, 0x00, 0xf8, 0x75, 0xac, 0x12); -DEFINE_GUID(DLSID_GSInHardware, 0x178f2f25, 0xc364, 0x11d1, 0xa7, 0x60, 0x00, 0x00, 0xf8, 0x75, 0xac, 0x12); -DEFINE_GUID(DLSID_XGInHardware, 0x178f2f26, 0xc364, 0x11d1, 0xa7, 0x60, 0x00, 0x00, 0xf8, 0x75, 0xac, 0x12); -DEFINE_GUID(DLSID_SupportsDLS1, 0x178f2f27, 0xc364, 0x11d1, 0xa7, 0x60, 0x00, 0x00, 0xf8, 0x75, 0xac, 0x12); -DEFINE_GUID(DLSID_SupportsDLS2, 0xf14599e5, 0x4689, 0x11d2, 0xaf, 0xa6, 0x0, 0xaa, 0x0, 0x24, 0xd8, 0xb6); -DEFINE_GUID(DLSID_SampleMemorySize, 0x178f2f28, 0xc364, 0x11d1, 0xa7, 0x60, 0x00, 0x00, 0xf8, 0x75, 0xac, 0x12); -DEFINE_GUID(DLSID_ManufacturersID, 0xb03e1181, 0x8095, 0x11d2, 0xa1, 0xef, 0x0, 0x60, 0x8, 0x33, 0xdb, 0xd8); -DEFINE_GUID(DLSID_ProductID, 0xb03e1182, 0x8095, 0x11d2, 0xa1, 0xef, 0x0, 0x60, 0x8, 0x33, 0xdb, 0xd8); -DEFINE_GUID(DLSID_SamplePlaybackRate, 0x2a91f713, 0xa4bf, 0x11d2, 0xbb, 0xdf, 0x0, 0x60, 0x8, 0x33, 0xdb, 0xd8); - -#endif /* _INC_DLS2 */ diff --git a/plugins/!NotAdopted/sndVol/dmdls.h b/plugins/!NotAdopted/sndVol/dmdls.h deleted file mode 100644 index 8d0677842a..0000000000 --- a/plugins/!NotAdopted/sndVol/dmdls.h +++ /dev/null @@ -1,199 +0,0 @@ -/************************************************************************ -* * -* dmdls.h -- DLS download definitions for DirectMusic API's * -* * -* Copyright (c) Microsoft Corporation. All rights reserved. * -* * -************************************************************************/ - -#ifndef _DMDLS_ -#define _DMDLS_ - -#include "dls1.h" - -typedef long PCENT; /* Pitch cents */ -typedef long GCENT; /* Gain cents */ -typedef long TCENT; /* Time cents */ -typedef long PERCENT; /* Per.. cent! */ - -typedef LONGLONG REFERENCE_TIME; -typedef REFERENCE_TIME *LPREFERENCE_TIME; - -#ifndef MAKE_FOURCC -#define MAKEFOURCC(ch0, ch1, ch2, ch3) \ - ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) | \ - ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24 )) - - -typedef DWORD FOURCC; /* a four character code */ -#endif - -typedef struct _DMUS_DOWNLOADINFO -{ - DWORD dwDLType; /* Instrument or Wave */ - DWORD dwDLId; /* Unique identifier to tag this download. */ - DWORD dwNumOffsetTableEntries; /* Number of index in the offset address table. */ - DWORD cbSize; /* Total size of this memory chunk. */ -} DMUS_DOWNLOADINFO; - -#define DMUS_DOWNLOADINFO_INSTRUMENT 1 -#define DMUS_DOWNLOADINFO_WAVE 2 -#define DMUS_DOWNLOADINFO_INSTRUMENT2 3 /* New version for better DLS2 support. */ - -/* Support for oneshot and streaming wave data - */ -#define DMUS_DOWNLOADINFO_WAVEARTICULATION 4 /* Wave articulation data */ -#define DMUS_DOWNLOADINFO_STREAMINGWAVE 5 /* One chunk of a streaming */ -#define DMUS_DOWNLOADINFO_ONESHOTWAVE 6 - -#define DMUS_DEFAULT_SIZE_OFFSETTABLE 1 - -/* Flags for DMUS_INSTRUMENT's ulFlags member */ - -#define DMUS_INSTRUMENT_GM_INSTRUMENT (1 << 0) - -typedef struct _DMUS_OFFSETTABLE -{ - ULONG ulOffsetTable[DMUS_DEFAULT_SIZE_OFFSETTABLE]; -} DMUS_OFFSETTABLE; - -typedef struct _DMUS_INSTRUMENT -{ - ULONG ulPatch; - ULONG ulFirstRegionIdx; - ULONG ulGlobalArtIdx; /* If zero the instrument does not have an articulation */ - ULONG ulFirstExtCkIdx; /* If zero no 3rd party entenstion chunks associated with the instrument */ - ULONG ulCopyrightIdx; /* If zero no Copyright information associated with the instrument */ - ULONG ulFlags; -} DMUS_INSTRUMENT; - -typedef struct _DMUS_REGION -{ - RGNRANGE RangeKey; - RGNRANGE RangeVelocity; - USHORT fusOptions; - USHORT usKeyGroup; - ULONG ulRegionArtIdx; /* If zero the region does not have an articulation */ - ULONG ulNextRegionIdx; /* If zero no more regions */ - ULONG ulFirstExtCkIdx; /* If zero no 3rd party entenstion chunks associated with the region */ - WAVELINK WaveLink; - WSMPL WSMP; /* If WSMP.cSampleLoops > 1 then a WLOOP is included */ - WLOOP WLOOP[1]; -} DMUS_REGION; - -typedef struct _DMUS_LFOPARAMS -{ - PCENT pcFrequency; - TCENT tcDelay; - GCENT gcVolumeScale; - PCENT pcPitchScale; - GCENT gcMWToVolume; - PCENT pcMWToPitch; -} DMUS_LFOPARAMS; - -typedef struct _DMUS_VEGPARAMS -{ - TCENT tcAttack; - TCENT tcDecay; - PERCENT ptSustain; - TCENT tcRelease; - TCENT tcVel2Attack; - TCENT tcKey2Decay; -} DMUS_VEGPARAMS; - -typedef struct _DMUS_PEGPARAMS -{ - TCENT tcAttack; - TCENT tcDecay; - PERCENT ptSustain; - TCENT tcRelease; - TCENT tcVel2Attack; - TCENT tcKey2Decay; - PCENT pcRange; -} DMUS_PEGPARAMS; - -typedef struct _DMUS_MSCPARAMS -{ - PERCENT ptDefaultPan; -} DMUS_MSCPARAMS; - -typedef struct _DMUS_ARTICPARAMS -{ - DMUS_LFOPARAMS LFO; - DMUS_VEGPARAMS VolEG; - DMUS_PEGPARAMS PitchEG; - DMUS_MSCPARAMS Misc; -} DMUS_ARTICPARAMS; - -typedef struct _DMUS_ARTICULATION /* Articulation chunk for DMUS_DOWNLOADINFO_INSTRUMENT format. */ -{ - ULONG ulArt1Idx; /* DLS Level 1 articulation chunk */ - ULONG ulFirstExtCkIdx; /* 3rd party extenstion chunks associated with the articulation */ -} DMUS_ARTICULATION; - -typedef struct _DMUS_ARTICULATION2 /* Articulation chunk for DMUS_DOWNLOADINFO_INSTRUMENT2 format. */ -{ - ULONG ulArtIdx; /* DLS Level 1/2 articulation chunk */ - ULONG ulFirstExtCkIdx; /* 3rd party extenstion chunks associated with the articulation */ - ULONG ulNextArtIdx; /* Additional articulation chunks */ -} DMUS_ARTICULATION2; - -#define DMUS_MIN_DATA_SIZE 4 -/* The actual number is determined by cbSize of struct _DMUS_EXTENSIONCHUNK */ - -typedef struct _DMUS_EXTENSIONCHUNK -{ - ULONG cbSize; /* Size of extension chunk */ - ULONG ulNextExtCkIdx; /* If zero no more 3rd party entenstion chunks */ - FOURCC ExtCkID; - BYTE byExtCk[DMUS_MIN_DATA_SIZE]; /* The actual number that follows is determined by cbSize */ -} DMUS_EXTENSIONCHUNK; - -/* The actual number is determined by cbSize of struct _DMUS_COPYRIGHT */ - -typedef struct _DMUS_COPYRIGHT -{ - ULONG cbSize; /* Size of copyright information */ - BYTE byCopyright[DMUS_MIN_DATA_SIZE]; /* The actual number that follows is determined by cbSize */ -} DMUS_COPYRIGHT; - -typedef struct _DMUS_WAVEDATA -{ - ULONG cbSize; - BYTE byData[DMUS_MIN_DATA_SIZE]; -} DMUS_WAVEDATA; - -typedef struct _DMUS_WAVE -{ - ULONG ulFirstExtCkIdx; /* If zero no 3rd party entenstion chunks associated with the wave */ - ULONG ulCopyrightIdx; /* If zero no Copyright information associated with the wave */ - ULONG ulWaveDataIdx; /* Location of actual wave data. */ - WAVEFORMATEX WaveformatEx; -} DMUS_WAVE; - -typedef struct _DMUS_NOTERANGE *LPDMUS_NOTERANGE; -typedef struct _DMUS_NOTERANGE -{ - DWORD dwLowNote; /* Sets the low note for the range of MIDI note events to which the instrument responds.*/ - DWORD dwHighNote; /* Sets the high note for the range of MIDI note events to which the instrument responds.*/ -} DMUS_NOTERANGE; - -typedef struct _DMUS_WAVEARTDL -{ - ULONG ulDownloadIdIdx; /* Download ID's of each buffer */ - ULONG ulBus; /* Playback bus */ - ULONG ulBuffers; /* Buffers */ - ULONG ulMasterDLId; /* Download ID of master voice of slave group */ - USHORT usOptions; /* Same as DLS2 region options */ -} DMUS_WAVEARTDL, - *LPDMUS_WAVEARTDL; - -typedef struct _DMUS_WAVEDL -{ - ULONG cbWaveData; /* Bytes of wave data */ -} DMUS_WAVEDL, - *LPDMUS_WAVEDL; - -#endif - - diff --git a/plugins/!NotAdopted/sndVol/dmerror.h b/plugins/!NotAdopted/sndVol/dmerror.h deleted file mode 100644 index 9279f735b9..0000000000 --- a/plugins/!NotAdopted/sndVol/dmerror.h +++ /dev/null @@ -1,843 +0,0 @@ -/************************************************************************ -* * -* dmerror.h -- Error codes returned by DirectMusic API's * -* * -* Copyright (c) Microsoft Corporation. All rights reserved. * -* * -************************************************************************/ - -#ifndef _DMERROR_ -#define _DMERROR_ - -#define FACILITY_DIRECTMUSIC 0x878 /* Shared with DirectSound */ -#define DMUS_ERRBASE 0x1000 /* Make error codes human readable in hex */ - -#ifndef MAKE_HRESULT -#define MAKE_HRESULT(sev,fac,code) \ - ((HRESULT) (((unsigned long)(sev)<<31) | ((unsigned long)(fac)<<16) | ((unsigned long)(code))) ) -#endif - -#define MAKE_DMHRESULTSUCCESS(code) MAKE_HRESULT(0, FACILITY_DIRECTMUSIC, (DMUS_ERRBASE + (code))) -#define MAKE_DMHRESULTERROR(code) MAKE_HRESULT(1, FACILITY_DIRECTMUSIC, (DMUS_ERRBASE + (code))) - -/* DMUS_S_PARTIALLOAD - * - * The object could only load partially. This can happen if some components are - * not registered properly, such as embedded tracks and tools. This can also happen - * if some content is missing. For example, if a segment uses a DLS collection that - * is not in the loader's current search directory. - */ -#define DMUS_S_PARTIALLOAD MAKE_DMHRESULTSUCCESS(0x091) - -/* DMUS_S_PARTIALDOWNLOAD - * - * Return value from IDirectMusicBand::Download() which indicates that - * some of the instruments safely downloaded, but others failed. This usually - * occurs when some instruments are on PChannels not supported by the performance - * or port. - */ -#define DMUS_S_PARTIALDOWNLOAD MAKE_DMHRESULTSUCCESS(0x092) - -/* DMUS_S_REQUEUE - * - * Return value from IDirectMusicTool::ProcessPMsg() which indicates to the - * performance that it should cue the PMsg again automatically. - */ -#define DMUS_S_REQUEUE MAKE_DMHRESULTSUCCESS(0x200) - -/* DMUS_S_FREE - * - * Return value from IDirectMusicTool::ProcessPMsg() which indicates to the - * performance that it should free the PMsg automatically. - */ -#define DMUS_S_FREE MAKE_DMHRESULTSUCCESS(0x201) - -/* DMUS_S_END - * - * Return value from IDirectMusicTrack::Play() which indicates to the - * segment that the track has no more data after mtEnd. - */ -#define DMUS_S_END MAKE_DMHRESULTSUCCESS(0x202) - -/* DMUS_S_STRING_TRUNCATED - * - * Returned string has been truncated to fit the buffer size. - */ -#define DMUS_S_STRING_TRUNCATED MAKE_DMHRESULTSUCCESS(0x210) - -/* DMUS_S_LAST_TOOL - * - * Returned from IDirectMusicGraph::StampPMsg(), this indicates that the PMsg - * is already stamped with the last tool in the graph. The returned PMsg's - * tool pointer is now NULL. - */ -#define DMUS_S_LAST_TOOL MAKE_DMHRESULTSUCCESS(0x211) - -/* DMUS_S_OVER_CHORD - * - * Returned from IDirectMusicPerformance::MusicToMIDI(), this indicates - * that no note has been calculated because the music value has the note - * at a position higher than the top note of the chord. This applies only - * to DMUS_PLAYMODE_NORMALCHORD play mode. This success code indicates - * that the caller should not do anything with the note. It is not meant - * to be played against this chord. - */ -#define DMUS_S_OVER_CHORD MAKE_DMHRESULTSUCCESS(0x212) - -/* DMUS_S_UP_OCTAVE - * - * Returned from IDirectMusicPerformance::MIDIToMusic(), and - * IDirectMusicPerformance::MusicToMIDI(), this indicates - * that the note conversion generated a note value that is below 0, - * so it has been bumped up one or more octaves to be in the proper - * MIDI range of 0 through 127. - * Note that this is valid for MIDIToMusic() when using play modes - * DMUS_PLAYMODE_FIXEDTOCHORD and DMUS_PLAYMODE_FIXEDTOKEY, both of - * which store MIDI values in wMusicValue. With MusicToMIDI(), it is - * valid for all play modes. - * Ofcourse, DMUS_PLAYMODE_FIXED will never return this success code. - */ -#define DMUS_S_UP_OCTAVE MAKE_DMHRESULTSUCCESS(0x213) - -/* DMUS_S_DOWN_OCTAVE - * - * Returned from IDirectMusicPerformance::MIDIToMusic(), and - * IDirectMusicPerformance::MusicToMIDI(), this indicates - * that the note conversion generated a note value that is above 127, - * so it has been bumped down one or more octaves to be in the proper - * MIDI range of 0 through 127. - * Note that this is valid for MIDIToMusic() when using play modes - * DMUS_PLAYMODE_FIXEDTOCHORD and DMUS_PLAYMODE_FIXEDTOKEY, both of - * which store MIDI values in wMusicValue. With MusicToMIDI(), it is - * valid for all play modes. - * Ofcourse, DMUS_PLAYMODE_FIXED will never return this success code. - */ -#define DMUS_S_DOWN_OCTAVE MAKE_DMHRESULTSUCCESS(0x214) - -/* DMUS_S_NOBUFFERCONTROL - * - * Although the audio output from the port will be routed to the - * same device as the given DirectSound buffer, buffer controls - * such as pan and volume will not affect the output. - * - */ -#define DMUS_S_NOBUFFERCONTROL MAKE_DMHRESULTSUCCESS(0x215) - -/* DMUS_S_GARBAGE_COLLECTED - * - * The requested operation was not performed because during CollectGarbage - * the loader determined that the object had been released. - */ -#define DMUS_S_GARBAGE_COLLECTED MAKE_DMHRESULTSUCCESS(0x216) - -/* DMUS_E_DRIVER_FAILED - * - * An unexpected error was returned from a device driver, indicating - * possible failure of the driver or hardware. - */ -#define DMUS_E_DRIVER_FAILED MAKE_DMHRESULTERROR(0x0101) - -/* DMUS_E_PORTS_OPEN - * - * The requested operation cannot be performed while there are - * instantiated ports in any process in the system. - */ -#define DMUS_E_PORTS_OPEN MAKE_DMHRESULTERROR(0x0102) - -/* DMUS_E_DEVICE_IN_USE - * - * The requested device is already in use (possibly by a non-DirectMusic - * client) and cannot be opened again. - */ -#define DMUS_E_DEVICE_IN_USE MAKE_DMHRESULTERROR(0x0103) - -/* DMUS_E_INSUFFICIENTBUFFER - * - * Buffer is not large enough for requested operation. - */ -#define DMUS_E_INSUFFICIENTBUFFER MAKE_DMHRESULTERROR(0x0104) - -/* DMUS_E_BUFFERNOTSET - * - * No buffer was prepared for the download data. - */ -#define DMUS_E_BUFFERNOTSET MAKE_DMHRESULTERROR(0x0105) - -/* DMUS_E_BUFFERNOTAVAILABLE - * - * Download failed due to inability to access or create download buffer. - */ -#define DMUS_E_BUFFERNOTAVAILABLE MAKE_DMHRESULTERROR(0x0106) - -/* DMUS_E_NOTADLSCOL - * - * Error parsing DLS collection. File is corrupt. - */ -#define DMUS_E_NOTADLSCOL MAKE_DMHRESULTERROR(0x0108) - -/* DMUS_E_INVALIDOFFSET - * - * Wave chunks in DLS collection file are at incorrect offsets. - */ -#define DMUS_E_INVALIDOFFSET MAKE_DMHRESULTERROR(0x0109) - -/* DMUS_E_ALREADY_LOADED - * - * Second attempt to load a DLS collection that is currently open. - */ -#define DMUS_E_ALREADY_LOADED MAKE_DMHRESULTERROR(0x0111) - -/* DMUS_E_INVALIDPOS - * - * Error reading wave data from DLS collection. Indicates bad file. - */ -#define DMUS_E_INVALIDPOS MAKE_DMHRESULTERROR(0x0113) - -/* DMUS_E_INVALIDPATCH - * - * There is no instrument in the collection that matches patch number. - */ -#define DMUS_E_INVALIDPATCH MAKE_DMHRESULTERROR(0x0114) - -/* DMUS_E_CANNOTSEEK - * - * The IStream* doesn't support Seek(). - */ -#define DMUS_E_CANNOTSEEK MAKE_DMHRESULTERROR(0x0115) - -/* DMUS_E_CANNOTWRITE - * - * The IStream* doesn't support Write(). - */ -#define DMUS_E_CANNOTWRITE MAKE_DMHRESULTERROR(0x0116) - -/* DMUS_E_CHUNKNOTFOUND - * - * The RIFF parser doesn't contain a required chunk while parsing file. - */ -#define DMUS_E_CHUNKNOTFOUND MAKE_DMHRESULTERROR(0x0117) - -/* DMUS_E_INVALID_DOWNLOADID - * - * Invalid download id was used in the process of creating a download buffer. - */ -#define DMUS_E_INVALID_DOWNLOADID MAKE_DMHRESULTERROR(0x0119) - -/* DMUS_E_NOT_DOWNLOADED_TO_PORT - * - * Tried to unload an object that was not downloaded or previously unloaded. - */ -#define DMUS_E_NOT_DOWNLOADED_TO_PORT MAKE_DMHRESULTERROR(0x0120) - -/* DMUS_E_ALREADY_DOWNLOADED - * - * Buffer was already downloaded to synth. - */ -#define DMUS_E_ALREADY_DOWNLOADED MAKE_DMHRESULTERROR(0x0121) - -/* DMUS_E_UNKNOWN_PROPERTY - * - * The specified property item was not recognized by the target object. - */ -#define DMUS_E_UNKNOWN_PROPERTY MAKE_DMHRESULTERROR(0x0122) - -/* DMUS_E_SET_UNSUPPORTED - * - * The specified property item may not be set on the target object. - */ -#define DMUS_E_SET_UNSUPPORTED MAKE_DMHRESULTERROR(0x0123) - -/* DMUS_E_GET_UNSUPPORTED - * - * The specified property item may not be retrieved from the target object. - */ -#define DMUS_E_GET_UNSUPPORTED MAKE_DMHRESULTERROR(0x0124) - -/* DMUS_E_NOTMONO - * - * Wave chunk has more than one interleaved channel. DLS format requires MONO. - */ -#define DMUS_E_NOTMONO MAKE_DMHRESULTERROR(0x0125) - -/* DMUS_E_BADARTICULATION - * - * Invalid articulation chunk in DLS collection. - */ -#define DMUS_E_BADARTICULATION MAKE_DMHRESULTERROR(0x0126) - -/* DMUS_E_BADINSTRUMENT - * - * Invalid instrument chunk in DLS collection. - */ -#define DMUS_E_BADINSTRUMENT MAKE_DMHRESULTERROR(0x0127) - -/* DMUS_E_BADWAVELINK - * - * Wavelink chunk in DLS collection points to invalid wave. - */ -#define DMUS_E_BADWAVELINK MAKE_DMHRESULTERROR(0x0128) - -/* DMUS_E_NOARTICULATION - * - * Articulation missing from instrument in DLS collection. - */ -#define DMUS_E_NOARTICULATION MAKE_DMHRESULTERROR(0x0129) - -/* DMUS_E_NOTPCM - * - * Downoaded DLS wave is not in PCM format. -*/ -#define DMUS_E_NOTPCM MAKE_DMHRESULTERROR(0x012A) - -/* DMUS_E_BADWAVE - * - * Bad wave chunk in DLS collection - */ -#define DMUS_E_BADWAVE MAKE_DMHRESULTERROR(0x012B) - -/* DMUS_E_BADOFFSETTABLE - * - * Offset Table for download buffer has errors. - */ -#define DMUS_E_BADOFFSETTABLE MAKE_DMHRESULTERROR(0x012C) - -/* DMUS_E_UNKNOWNDOWNLOAD - * - * Attempted to download unknown data type. - */ -#define DMUS_E_UNKNOWNDOWNLOAD MAKE_DMHRESULTERROR(0x012D) - -/* DMUS_E_NOSYNTHSINK - * - * The operation could not be completed because no sink was connected to - * the synthesizer. - */ -#define DMUS_E_NOSYNTHSINK MAKE_DMHRESULTERROR(0x012E) - -/* DMUS_E_ALREADYOPEN - * - * An attempt was made to open the software synthesizer while it was already - * open. - * ASSERT? - */ -#define DMUS_E_ALREADYOPEN MAKE_DMHRESULTERROR(0x012F) - -/* DMUS_E_ALREADYCLOSE - * - * An attempt was made to close the software synthesizer while it was already - * open. - * ASSERT? - */ -#define DMUS_E_ALREADYCLOSED MAKE_DMHRESULTERROR(0x0130) - -/* DMUS_E_SYNTHNOTCONFIGURED - * - * The operation could not be completed because the software synth has not - * yet been fully configured. - * ASSERT? - */ -#define DMUS_E_SYNTHNOTCONFIGURED MAKE_DMHRESULTERROR(0x0131) - -/* DMUS_E_SYNTHACTIVE - * - * The operation cannot be carried out while the synthesizer is active. - */ -#define DMUS_E_SYNTHACTIVE MAKE_DMHRESULTERROR(0x0132) - -/* DMUS_E_CANNOTREAD - * - * An error occurred while attempting to read from the IStream* object. - */ -#define DMUS_E_CANNOTREAD MAKE_DMHRESULTERROR(0x0133) - -/* DMUS_E_DMUSIC_RELEASED - * - * The operation cannot be performed because the final instance of the - * DirectMusic object was released. Ports cannot be used after final - * release of the DirectMusic object. - */ -#define DMUS_E_DMUSIC_RELEASED MAKE_DMHRESULTERROR(0x0134) - -/* DMUS_E_BUFFER_EMPTY - * - * There was no data in the referenced buffer. - */ -#define DMUS_E_BUFFER_EMPTY MAKE_DMHRESULTERROR(0x0135) - -/* DMUS_E_BUFFER_FULL - * - * There is insufficient space to insert the given event into the buffer. - */ -#define DMUS_E_BUFFER_FULL MAKE_DMHRESULTERROR(0x0136) - -/* DMUS_E_PORT_NOT_CAPTURE - * - * The given operation could not be carried out because the port is a - * capture port. - */ -#define DMUS_E_PORT_NOT_CAPTURE MAKE_DMHRESULTERROR(0x0137) - -/* DMUS_E_PORT_NOT_RENDER - * - * The given operation could not be carried out because the port is a - * render port. - */ -#define DMUS_E_PORT_NOT_RENDER MAKE_DMHRESULTERROR(0x0138) - -/* DMUS_E_DSOUND_NOT_SET - * - * The port could not be created because no DirectSound has been specified. - * Specify a DirectSound interface via the IDirectMusic::SetDirectSound - * method; pass NULL to have DirectMusic manage usage of DirectSound. - */ -#define DMUS_E_DSOUND_NOT_SET MAKE_DMHRESULTERROR(0x0139) - -/* DMUS_E_ALREADY_ACTIVATED - * - * The operation cannot be carried out while the port is active. - */ -#define DMUS_E_ALREADY_ACTIVATED MAKE_DMHRESULTERROR(0x013A) - -/* DMUS_E_INVALIDBUFFER - * - * Invalid DirectSound buffer was handed to port. - */ -#define DMUS_E_INVALIDBUFFER MAKE_DMHRESULTERROR(0x013B) - -/* DMUS_E_WAVEFORMATNOTSUPPORTED - * - * Invalid buffer format was handed to the synth sink. - */ -#define DMUS_E_WAVEFORMATNOTSUPPORTED MAKE_DMHRESULTERROR(0x013C) - -/* DMUS_E_SYNTHINACTIVE - * - * The operation cannot be carried out while the synthesizer is inactive. - */ -#define DMUS_E_SYNTHINACTIVE MAKE_DMHRESULTERROR(0x013D) - -/* DMUS_E_DSOUND_ALREADY_SET - * - * IDirectMusic::SetDirectSound has already been called. It may not be - * changed while in use. - */ -#define DMUS_E_DSOUND_ALREADY_SET MAKE_DMHRESULTERROR(0x013E) - -/* DMUS_E_INVALID_EVENT - * - * The given event is invalid (either it is not a valid MIDI message - * or it makes use of running status). The event cannot be packed - * into the buffer. - */ -#define DMUS_E_INVALID_EVENT MAKE_DMHRESULTERROR(0x013F) - -/* DMUS_E_UNSUPPORTED_STREAM - * - * The IStream* object does not contain data supported by the loading object. - */ -#define DMUS_E_UNSUPPORTED_STREAM MAKE_DMHRESULTERROR(0x0150) - -/* DMUS_E_ALREADY_INITED - * - * The object has already been initialized. - */ -#define DMUS_E_ALREADY_INITED MAKE_DMHRESULTERROR(0x0151) - -/* DMUS_E_INVALID_BAND - * - * The file does not contain a valid band. - */ -#define DMUS_E_INVALID_BAND MAKE_DMHRESULTERROR(0x0152) - -/* DMUS_E_TRACK_HDR_NOT_FIRST_CK - * - * The IStream* object's data does not have a track header as the first chunk, - * and therefore can not be read by the segment object. - */ -#define DMUS_E_TRACK_HDR_NOT_FIRST_CK MAKE_DMHRESULTERROR(0x0155) - -/* DMUS_E_TOOL_HDR_NOT_FIRST_CK - * - * The IStream* object's data does not have a tool header as the first chunk, - * and therefore can not be read by the graph object. - */ -#define DMUS_E_TOOL_HDR_NOT_FIRST_CK MAKE_DMHRESULTERROR(0x0156) - -/* DMUS_E_INVALID_TRACK_HDR - * - * The IStream* object's data contains an invalid track header (ckid is 0 and - * fccType is NULL,) and therefore can not be read by the segment object. - */ -#define DMUS_E_INVALID_TRACK_HDR MAKE_DMHRESULTERROR(0x0157) - -/* DMUS_E_INVALID_TOOL_HDR - * - * The IStream* object's data contains an invalid tool header (ckid is 0 and - * fccType is NULL,) and therefore can not be read by the graph object. - */ -#define DMUS_E_INVALID_TOOL_HDR MAKE_DMHRESULTERROR(0x0158) - -/* DMUS_E_ALL_TOOLS_FAILED - * - * The graph object was unable to load all tools from the IStream* object data. - * This may be due to errors in the stream, or the tools being incorrectly - * registered on the client. - */ -#define DMUS_E_ALL_TOOLS_FAILED MAKE_DMHRESULTERROR(0x0159) - -/* DMUS_E_ALL_TRACKS_FAILED - * - * The segment object was unable to load all tracks from the IStream* object data. - * This may be due to errors in the stream, or the tracks being incorrectly - * registered on the client. - */ -#define DMUS_E_ALL_TRACKS_FAILED MAKE_DMHRESULTERROR(0x0160) - -/* DMUS_E_NOT_FOUND - * - * The requested item was not contained by the object. - */ -#define DMUS_E_NOT_FOUND MAKE_DMHRESULTERROR(0x0161) - -/* DMUS_E_NOT_INIT - * - * A required object is not initialized or failed to initialize. - */ -#define DMUS_E_NOT_INIT MAKE_DMHRESULTERROR(0x0162) - -/* DMUS_E_TYPE_DISABLED - * - * The requested parameter type is currently disabled. Parameter types may - * be enabled and disabled by certain calls to SetParam(). - */ -#define DMUS_E_TYPE_DISABLED MAKE_DMHRESULTERROR(0x0163) - -/* DMUS_E_TYPE_UNSUPPORTED - * - * The requested parameter type is not supported on the object. - */ -#define DMUS_E_TYPE_UNSUPPORTED MAKE_DMHRESULTERROR(0x0164) - -/* DMUS_E_TIME_PAST - * - * The time is in the past, and the operation can not succeed. - */ -#define DMUS_E_TIME_PAST MAKE_DMHRESULTERROR(0x0165) - -/* DMUS_E_TRACK_NOT_FOUND - * - * The requested track is not contained by the segment. - */ -#define DMUS_E_TRACK_NOT_FOUND MAKE_DMHRESULTERROR(0x0166) - -/* DMUS_E_TRACK_NO_CLOCKTIME_SUPPORT - * - * The track does not support clock time playback or getparam. - */ -#define DMUS_E_TRACK_NO_CLOCKTIME_SUPPORT MAKE_DMHRESULTERROR(0x0167) - -/* DMUS_E_NO_MASTER_CLOCK - * - * There is no master clock in the performance. Be sure to call - * IDirectMusicPerformance::Init(). - */ -#define DMUS_E_NO_MASTER_CLOCK MAKE_DMHRESULTERROR(0x0170) - -/* DMUS_E_LOADER_NOCLASSID - * - * The class id field is required and missing in the DMUS_OBJECTDESC. - */ -#define DMUS_E_LOADER_NOCLASSID MAKE_DMHRESULTERROR(0x0180) - -/* DMUS_E_LOADER_BADPATH - * - * The requested file path is invalid. - */ -#define DMUS_E_LOADER_BADPATH MAKE_DMHRESULTERROR(0x0181) - -/* DMUS_E_LOADER_FAILEDOPEN - * - * File open failed - either file doesn't exist or is locked. - */ -#define DMUS_E_LOADER_FAILEDOPEN MAKE_DMHRESULTERROR(0x0182) - -/* DMUS_E_LOADER_FORMATNOTSUPPORTED - * - * Search data type is not supported. - */ -#define DMUS_E_LOADER_FORMATNOTSUPPORTED MAKE_DMHRESULTERROR(0x0183) - -/* DMUS_E_LOADER_FAILEDCREATE - * - * Unable to find or create object. - */ -#define DMUS_E_LOADER_FAILEDCREATE MAKE_DMHRESULTERROR(0x0184) - -/* DMUS_E_LOADER_OBJECTNOTFOUND - * - * Object was not found. - */ -#define DMUS_E_LOADER_OBJECTNOTFOUND MAKE_DMHRESULTERROR(0x0185) - -/* DMUS_E_LOADER_NOFILENAME - * - * The file name is missing from the DMUS_OBJECTDESC. - */ -#define DMUS_E_LOADER_NOFILENAME MAKE_DMHRESULTERROR(0x0186) - -/* DMUS_E_INVALIDFILE - * - * The file requested is not a valid file. - */ -#define DMUS_E_INVALIDFILE MAKE_DMHRESULTERROR(0x0200) - -/* DMUS_E_ALREADY_EXISTS - * - * The tool is already contained in the graph. Create a new instance. - */ -#define DMUS_E_ALREADY_EXISTS MAKE_DMHRESULTERROR(0x0201) - -/* DMUS_E_OUT_OF_RANGE - * - * Value is out of range, for instance the requested length is longer than - * the segment. - */ -#define DMUS_E_OUT_OF_RANGE MAKE_DMHRESULTERROR(0x0202) - -/* DMUS_E_SEGMENT_INIT_FAILED - * - * Segment initialization failed, most likely due to a critical memory situation. - */ -#define DMUS_E_SEGMENT_INIT_FAILED MAKE_DMHRESULTERROR(0x0203) - -/* DMUS_E_ALREADY_SENT - * - * The DMUS_PMSG has already been sent to the performance object via - * IDirectMusicPerformance::SendPMsg(). - */ -#define DMUS_E_ALREADY_SENT MAKE_DMHRESULTERROR(0x0204) - -/* DMUS_E_CANNOT_FREE - * - * The DMUS_PMSG was either not allocated by the performance via - * IDirectMusicPerformance::AllocPMsg(), or it was already freed via - * IDirectMusicPerformance::FreePMsg(). - */ -#define DMUS_E_CANNOT_FREE MAKE_DMHRESULTERROR(0x0205) - -/* DMUS_E_CANNOT_OPEN_PORT - * - * The default system port could not be opened. - */ -#define DMUS_E_CANNOT_OPEN_PORT MAKE_DMHRESULTERROR(0x0206) - -/* DMUS_E_CANNOT_CONVERT - * - * A call to MIDIToMusic() or MusicToMIDI() resulted in an error because - * the requested conversion could not happen. This usually occurs when the - * provided DMUS_CHORD_KEY structure has an invalid chord or scale pattern. - */ -#define DMUS_E_CANNOT_CONVERT MAKE_DMHRESULTERROR(0x0207) -/* misspelling in previous versions of DirectX preserved for backward compatibility */ -#define DMUS_E_CONNOT_CONVERT DMUS_E_CANNOT_CONVERT - -/* DMUS_E_DESCEND_CHUNK_FAIL - * - * DMUS_E_DESCEND_CHUNK_FAIL is returned when the end of the file - * was reached before the desired chunk was found. - */ -#define DMUS_E_DESCEND_CHUNK_FAIL MAKE_DMHRESULTERROR(0x0210) - -/* DMUS_E_NOT_LOADED - * - * An attempt to use this object failed because it first needs to - * be loaded. - */ -#define DMUS_E_NOT_LOADED MAKE_DMHRESULTERROR(0x0211) - -/* DMUS_E_SCRIPT_LANGUAGE_INCOMPATIBLE - * - * The activeX scripting engine for the script's language is not compatible with - * DirectMusic. - * - */ -#define DMUS_E_SCRIPT_LANGUAGE_INCOMPATIBLE MAKE_DMHRESULTERROR(0x0213) - -/* DMUS_E_SCRIPT_UNSUPPORTED_VARTYPE - * - * A varient was used that had a type that is not supported by DirectMusic. - * - */ -#define DMUS_E_SCRIPT_UNSUPPORTED_VARTYPE MAKE_DMHRESULTERROR(0x0214) - -/* DMUS_E_SCRIPT_ERROR_IN_SCRIPT - * - * An error was encountered while parsing or executing the script. - * The pErrorInfo parameter (if supplied) was filled with information about the error. - */ -#define DMUS_E_SCRIPT_ERROR_IN_SCRIPT MAKE_DMHRESULTERROR(0x0215) - -/* DMUS_E_SCRIPT_CANTLOAD_OLEAUT32 - * - * Loading of oleaut32.dll failed. VBScript and other activeX scripting languages - * require use of oleaut32.dll. On platforms where oleaut32.dll is not present, only - * the DirectMusicScript language, which doesn't require oleaut32.dll can be used. - */ -#define DMUS_E_SCRIPT_CANTLOAD_OLEAUT32 MAKE_DMHRESULTERROR(0x0216) - -/* DMUS_E_SCRIPT_LOADSCRIPT_ERROR - * - * An error occured while parsing a script loaded using LoadScript. The script that - * was loaded contains an error. - */ -#define DMUS_E_SCRIPT_LOADSCRIPT_ERROR MAKE_DMHRESULTERROR(0x0217) - -/* DMUS_E_SCRIPT_INVALID_FILE - * - * The script file is invalid. - */ -#define DMUS_E_SCRIPT_INVALID_FILE MAKE_DMHRESULTERROR(0x0218) - -/* DMUS_E_INVALID_SCRIPTTRACK - * - * The file contains an invalid script track. - */ -#define DMUS_E_INVALID_SCRIPTTRACK MAKE_DMHRESULTERROR(0x0219) - -/* DMUS_E_SCRIPT_VARIABLE_NOT_FOUND - * - * The script does not contain a variable with the specified name. - */ -#define DMUS_E_SCRIPT_VARIABLE_NOT_FOUND MAKE_DMHRESULTERROR(0x021A) - -/* DMUS_E_SCRIPT_ROUTINE_NOT_FOUND - * - * The script does not contain a routine with the specified name. - */ -#define DMUS_E_SCRIPT_ROUTINE_NOT_FOUND MAKE_DMHRESULTERROR(0x021B) - -/* DMUS_E_SCRIPT_CONTENT_READONLY - * - * Scripts variables for content referenced or embedded in a script cannot be set. - */ -#define DMUS_E_SCRIPT_CONTENT_READONLY MAKE_DMHRESULTERROR(0x021C) - -/* DMUS_E_SCRIPT_NOT_A_REFERENCE - * - * Attempt was made to set a script's variable by reference to a value that was - * not an object type. - */ -#define DMUS_E_SCRIPT_NOT_A_REFERENCE MAKE_DMHRESULTERROR(0x021D) - -/* DMUS_E_SCRIPT_VALUE_NOT_SUPPORTED - * - * Attempt was made to set a script's variable by value to an object that does - * not support a default value property. - */ -#define DMUS_E_SCRIPT_VALUE_NOT_SUPPORTED MAKE_DMHRESULTERROR(0x021E) - -/* DMUS_E_INVALID_SEGMENTTRIGGERTRACK - * - * The file contains an invalid segment trigger track. - */ -#define DMUS_E_INVALID_SEGMENTTRIGGERTRACK MAKE_DMHRESULTERROR(0x0220) - -/* DMUS_E_INVALID_LYRICSTRACK - * - * The file contains an invalid lyrics track. - */ -#define DMUS_E_INVALID_LYRICSTRACK MAKE_DMHRESULTERROR(0x0221) - -/* DMUS_E_INVALID_PARAMCONTROLTRACK - * - * The file contains an invalid parameter control track. - */ -#define DMUS_E_INVALID_PARAMCONTROLTRACK MAKE_DMHRESULTERROR(0x0222) - -/* DMUS_E_AUDIOVBSCRIPT_SYNTAXERROR - * - * A script written in AudioVBScript could not be read because it contained a statement that - * is not allowed by the AudioVBScript language. - */ -#define DMUS_E_AUDIOVBSCRIPT_SYNTAXERROR MAKE_DMHRESULTERROR(0x0223) - -/* DMUS_E_AUDIOVBSCRIPT_RUNTIMEERROR - * - * A script routine written in AudioVBScript failed because an invalid operation occurred. For example, - * adding the number 3 to a segment object would produce this error. So would attempting to call a routine - * that doesn't exist. - */ -#define DMUS_E_AUDIOVBSCRIPT_RUNTIMEERROR MAKE_DMHRESULTERROR(0x0224) - -/* DMUS_E_AUDIOVBSCRIPT_OPERATIONFAILURE - * - * A script routine written in AudioVBScript failed because a function outside of a script failed to complete. - * For example, a call to PlaySegment that fails to play because of low memory would return this error. - */ -#define DMUS_E_AUDIOVBSCRIPT_OPERATIONFAILURE MAKE_DMHRESULTERROR(0x0225) - -/* DMUS_E_AUDIOPATHS_NOT_VALID - * - * The Performance has set up some PChannels using the AssignPChannel command, which - * makes it not capable of supporting audio paths. - */ -#define DMUS_E_AUDIOPATHS_NOT_VALID MAKE_DMHRESULTERROR(0x0226) - -/* DMUS_E_AUDIOPATHS_IN_USE - * - * This is the inverse of the previous error. - * The Performance has set up some audio paths, which makes is incompatible - * with the calls to allocate pchannels, etc. - */ -#define DMUS_E_AUDIOPATHS_IN_USE MAKE_DMHRESULTERROR(0x0227) - -/* DMUS_E_NO_AUDIOPATH_CONFIG - * - * A segment was asked for its embedded audio path configuration, - * but there isn't any. - */ -#define DMUS_E_NO_AUDIOPATH_CONFIG MAKE_DMHRESULTERROR(0x0228) - -/* DMUS_E_AUDIOPATH_INACTIVE - * - * An audiopath is inactive, perhaps because closedown was called. - */ -#define DMUS_E_AUDIOPATH_INACTIVE MAKE_DMHRESULTERROR(0x0229) - -/* DMUS_E_AUDIOPATH_NOBUFFER - * - * An audiopath failed to create because a requested buffer could not be created. - */ -#define DMUS_E_AUDIOPATH_NOBUFFER MAKE_DMHRESULTERROR(0x022A) - -/* DMUS_E_AUDIOPATH_NOPORT - * - * An audiopath could not be used for playback because it lacked port assignments. - */ -#define DMUS_E_AUDIOPATH_NOPORT MAKE_DMHRESULTERROR(0x022B) - -/* DMUS_E_NO_AUDIOPATH - * - * Attempt was made to play segment in audiopath mode and there was no audiopath. - */ -#define DMUS_E_NO_AUDIOPATH MAKE_DMHRESULTERROR(0x022C) - -/* DMUS_E_INVALIDCHUNK - * - * Invalid data was found in a RIFF file chunk. - */ -#define DMUS_E_INVALIDCHUNK MAKE_DMHRESULTERROR(0x022D) - -/* DMUS_E_AUDIOPATH_NOGLOBALFXBUFFER - * - * Attempt was made to create an audiopath that sends to a global effects buffer which did not exist. - */ -#define DMUS_E_AUDIOPATH_NOGLOBALFXBUFFER MAKE_DMHRESULTERROR(0x022E) - -/* DMUS_E_INVALID_CONTAINER_OBJECT - * - * The file does not contain a valid container object. - */ -#define DMUS_E_INVALID_CONTAINER_OBJECT MAKE_DMHRESULTERROR(0x022F) - -#endif diff --git a/plugins/!NotAdopted/sndVol/dmplugin.h b/plugins/!NotAdopted/sndVol/dmplugin.h deleted file mode 100644 index 7c7d311f92..0000000000 --- a/plugins/!NotAdopted/sndVol/dmplugin.h +++ /dev/null @@ -1,280 +0,0 @@ -/************************************************************************ -* * -* dmplugin.h -- This module contains the API for plugins for the * -* DirectMusic performance layer * -* * -* Copyright (c) Microsoft Corporation. All rights reserved. * -* * -************************************************************************/ - -#ifndef _DMPLUGIN_ -#define _DMPLUGIN_ - -#include - -#define COM_NO_WINDOWS_H -#include - -#include -#include - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -interface IDirectMusicTrack; -interface IDirectMusicTool; -interface IDirectMusicTool8; -interface IDirectMusicTrack8; -interface IDirectMusicPerformance; -interface IDirectMusicPerformance8; -interface IDirectMusicSegment; -interface IDirectMusicSegment8; -interface IDirectMusicSegmentState; -interface IDirectMusicSegmentState8; -interface IDirectMusicGraph; -#ifndef __cplusplus -typedef interface IDirectMusicTrack IDirectMusicTrack; -typedef interface IDirectMusicTool IDirectMusicTool; -typedef interface IDirectMusicTool8 IDirectMusicTool8; -typedef interface IDirectMusicTrack8 IDirectMusicTrack8; -typedef interface IDirectMusicPerformance IDirectMusicPerformance; -typedef interface IDirectMusicPerformance8 IDirectMusicPerformance8; -typedef interface IDirectMusicSegment IDirectMusicSegment; -typedef interface IDirectMusicSegment8 IDirectMusicSegment8; -typedef interface IDirectMusicSegmentState IDirectMusicSegmentState; -typedef interface IDirectMusicSegmentState8 IDirectMusicSegmentState8; -typedef interface IDirectMusicGraph IDirectMusicGraph; -#endif - -typedef struct _DMUS_PMSG DMUS_PMSG; -typedef long MUSIC_TIME; - -/* Registry location for tools */ -#define DMUS_REGSTR_PATH_TOOLS "Software\\Microsoft\\DirectMusic\\Tools" - -/*//////////////////////////////////////////////////////////////////// -// IDirectMusicTool */ -#undef INTERFACE -#define INTERFACE IDirectMusicTool -DECLARE_INTERFACE_(IDirectMusicTool, IUnknown) -{ - /* IUnknown */ - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - /* IDirectMusicTool */ - STDMETHOD(Init) (THIS_ IDirectMusicGraph* pGraph) PURE; - STDMETHOD(GetMsgDeliveryType) (THIS_ DWORD* pdwDeliveryType ) PURE; - STDMETHOD(GetMediaTypeArraySize)(THIS_ DWORD* pdwNumElements ) PURE; - STDMETHOD(GetMediaTypes) (THIS_ DWORD** padwMediaTypes, - DWORD dwNumElements) PURE; - STDMETHOD(ProcessPMsg) (THIS_ IDirectMusicPerformance* pPerf, - DMUS_PMSG* pPMSG) PURE; - STDMETHOD(Flush) (THIS_ IDirectMusicPerformance* pPerf, - DMUS_PMSG* pPMSG, - REFERENCE_TIME rtTime) PURE; -}; - -/*//////////////////////////////////////////////////////////////////// -// IDirectMusicTool8 */ -#undef INTERFACE -#define INTERFACE IDirectMusicTool8 -DECLARE_INTERFACE_(IDirectMusicTool8, IDirectMusicTool) -{ - /* IUnknown */ - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - /* IDirectMusicTool */ - STDMETHOD(Init) (THIS_ IDirectMusicGraph* pGraph) PURE; - STDMETHOD(GetMsgDeliveryType) (THIS_ DWORD* pdwDeliveryType ) PURE; - STDMETHOD(GetMediaTypeArraySize)(THIS_ DWORD* pdwNumElements ) PURE; - STDMETHOD(GetMediaTypes) (THIS_ DWORD** padwMediaTypes, - DWORD dwNumElements) PURE; - STDMETHOD(ProcessPMsg) (THIS_ IDirectMusicPerformance* pPerf, - DMUS_PMSG* pPMSG) PURE; - STDMETHOD(Flush) (THIS_ IDirectMusicPerformance* pPerf, - DMUS_PMSG* pPMSG, - REFERENCE_TIME rtTime) PURE; - /* IDirectMusicTool8 */ - STDMETHOD(Clone) (THIS_ IDirectMusicTool ** ppTool) PURE; -}; - - -/* The following flags are sent in the IDirectMusicTrack::Play() method */ -/* inside the dwFlags parameter */ -typedef enum enumDMUS_TRACKF_FLAGS -{ - DMUS_TRACKF_SEEK = 1, /* set on a seek */ - DMUS_TRACKF_LOOP = 2, /* set on a loop (repeat) */ - DMUS_TRACKF_START = 4, /* set on first call to Play */ - DMUS_TRACKF_FLUSH = 8, /* set when this call is in response to a flush on the perfomance */ - DMUS_TRACKF_DIRTY = 0x10, /* set when the track should consider any cached values from a previous call to GetParam to be invalidated */ - /* The following flags are DX8 only. */ - DMUS_TRACKF_NOTIFY_OFF = 0x20, /* tells track not to send notifications. */ - DMUS_TRACKF_PLAY_OFF = 0x40, /* tells track not to play anything (but can still send notifications.) */ - DMUS_TRACKF_LOOPEND = 0x80, /* set when the end of range is also a loop end. */ - DMUS_TRACKF_STOP = 0x100, /* set when the end of range is also end of playing this segment. */ - DMUS_TRACKF_RECOMPOSE = 0x200, /* set to indicate the track should compose. */ - DMUS_TRACKF_CLOCK = 0x400, /* set when time parameters are in reference (clock) time. Only valid for PlayEx(). */ -} DMUS_TRACKF_FLAGS; - -/* The following flags are sent in the IDirectMusicTrack8::GetParamEx() and SetParamEx() methods */ -/* inside the dwFlags parameter */ -#define DMUS_TRACK_PARAMF_CLOCK 0x01 /* set when the time is measured is in reference (clock) time */ - -/*//////////////////////////////////////////////////////////////////// -// IDirectMusicTrack */ -#undef INTERFACE -#define INTERFACE IDirectMusicTrack -DECLARE_INTERFACE_(IDirectMusicTrack, IUnknown) -{ - /* IUnknown */ - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - /* IDirectMusicTrack */ - STDMETHOD(Init) (THIS_ IDirectMusicSegment* pSegment) PURE; - STDMETHOD(InitPlay) (THIS_ IDirectMusicSegmentState* pSegmentState, - IDirectMusicPerformance* pPerformance, - void** ppStateData, - DWORD dwVirtualTrackID, - DWORD dwFlags) PURE; - STDMETHOD(EndPlay) (THIS_ void* pStateData) PURE; - STDMETHOD(Play) (THIS_ void* pStateData, - MUSIC_TIME mtStart, - MUSIC_TIME mtEnd, - MUSIC_TIME mtOffset, - DWORD dwFlags, - IDirectMusicPerformance* pPerf, - IDirectMusicSegmentState* pSegSt, - DWORD dwVirtualID) PURE; - STDMETHOD(GetParam) (THIS_ REFGUID rguidType, - MUSIC_TIME mtTime, - MUSIC_TIME* pmtNext, - void* pParam) PURE; - STDMETHOD(SetParam) (THIS_ REFGUID rguidType, - MUSIC_TIME mtTime, - void* pParam) PURE; - STDMETHOD(IsParamSupported) (THIS_ REFGUID rguidType) PURE; - STDMETHOD(AddNotificationType) (THIS_ REFGUID rguidNotificationType) PURE; - STDMETHOD(RemoveNotificationType) (THIS_ REFGUID rguidNotificationType) PURE; - STDMETHOD(Clone) (THIS_ MUSIC_TIME mtStart, - MUSIC_TIME mtEnd, - IDirectMusicTrack** ppTrack) PURE; -}; - -/*//////////////////////////////////////////////////////////////////// -// IDirectMusicTrack8 */ -#undef INTERFACE -#define INTERFACE IDirectMusicTrack8 -DECLARE_INTERFACE_(IDirectMusicTrack8, IDirectMusicTrack) -{ - /* IUnknown */ - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - /* IDirectMusicTrack */ - STDMETHOD(Init) (THIS_ IDirectMusicSegment* pSegment) PURE; - STDMETHOD(InitPlay) (THIS_ IDirectMusicSegmentState* pSegmentState, - IDirectMusicPerformance* pPerformance, - void** ppStateData, - DWORD dwVirtualTrackID, - DWORD dwFlags) PURE; - STDMETHOD(EndPlay) (THIS_ void* pStateData) PURE; - STDMETHOD(Play) (THIS_ void* pStateData, - MUSIC_TIME mtStart, - MUSIC_TIME mtEnd, - MUSIC_TIME mtOffset, - DWORD dwFlags, - IDirectMusicPerformance* pPerf, - IDirectMusicSegmentState* pSegSt, - DWORD dwVirtualID) PURE; - STDMETHOD(GetParam) (THIS_ REFGUID rguidType, - MUSIC_TIME mtTime, - MUSIC_TIME* pmtNext, - void* pParam) PURE; - STDMETHOD(SetParam) (THIS_ REFGUID rguidType, - MUSIC_TIME mtTime, - void* pParam) PURE; - STDMETHOD(IsParamSupported) (THIS_ REFGUID rguidType) PURE; - STDMETHOD(AddNotificationType) (THIS_ REFGUID rguidNotificationType) PURE; - STDMETHOD(RemoveNotificationType) (THIS_ REFGUID rguidNotificationType) PURE; - STDMETHOD(Clone) (THIS_ MUSIC_TIME mtStart, - MUSIC_TIME mtEnd, - IDirectMusicTrack** ppTrack) PURE; - /* IDirectMusicTrack8 */ - STDMETHOD(PlayEx) (THIS_ void* pStateData, - REFERENCE_TIME rtStart, - REFERENCE_TIME rtEnd, - REFERENCE_TIME rtOffset, - DWORD dwFlags, - IDirectMusicPerformance* pPerf, - IDirectMusicSegmentState* pSegSt, - DWORD dwVirtualID) PURE; - STDMETHOD(GetParamEx) (THIS_ REFGUID rguidType, /* Command type. */ - REFERENCE_TIME rtTime, /* Time, in ref time if dwFlags == DMUS_TRACK_PARAMF_CLOCK. Otherwise, music time. */ - REFERENCE_TIME* prtNext, /* Time of next parameter, relative to rtTime, in music or clock time units. */ - void* pParam, /* Pointer to the parameter data. */ - void * pStateData, /* State data for track instance. */ - DWORD dwFlags) PURE; /* Control flags. */ - STDMETHOD(SetParamEx) (THIS_ REFGUID rguidType, - REFERENCE_TIME rtTime, - void* pParam, /* Pointer to the parameter data. */ - void * pStateData, /* State data for track instance. */ - DWORD dwFlags) PURE; /* Control flags. */ - STDMETHOD(Compose) (THIS_ IUnknown* pContext, /* Context for composition */ - DWORD dwTrackGroup, - IDirectMusicTrack** ppResultTrack) PURE; - STDMETHOD(Join) (THIS_ IDirectMusicTrack* pNewTrack, - MUSIC_TIME mtJoin, - IUnknown* pContext, /* Context for joining */ - DWORD dwTrackGroup, - IDirectMusicTrack** ppResultTrack) PURE; -}; - -/* CLSID's */ -DEFINE_GUID(CLSID_DirectMusicTempoTrack,0xd2ac2885, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(CLSID_DirectMusicSeqTrack,0xd2ac2886, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(CLSID_DirectMusicSysExTrack,0xd2ac2887, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(CLSID_DirectMusicTimeSigTrack,0xd2ac2888, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(CLSID_DirectMusicChordTrack,0xd2ac288b, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(CLSID_DirectMusicCommandTrack,0xd2ac288c, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(CLSID_DirectMusicStyleTrack,0xd2ac288d, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(CLSID_DirectMusicMotifTrack,0xd2ac288e, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(CLSID_DirectMusicSignPostTrack,0xf17e8672, 0xc3b4, 0x11d1, 0x87, 0xb, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(CLSID_DirectMusicBandTrack,0xd2ac2894, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(CLSID_DirectMusicChordMapTrack,0xd2ac2896, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(CLSID_DirectMusicMuteTrack,0xd2ac2898, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); - -/* New CLSID's for DX8 */ -DEFINE_GUID(CLSID_DirectMusicScriptTrack,0x4108fa85, 0x3586, 0x11d3, 0x8b, 0xd7, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xb6); /* {4108FA85-3586-11d3-8BD7-00600893B1B6} */ -DEFINE_GUID(CLSID_DirectMusicMarkerTrack,0x55a8fd00, 0x4288, 0x11d3, 0x9b, 0xd1, 0x8a, 0xd, 0x61, 0xc8, 0x88, 0x35); -DEFINE_GUID(CLSID_DirectMusicSegmentTriggerTrack, 0xbae4d665, 0x4ea1, 0x11d3, 0x8b, 0xda, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xb6); /* {BAE4D665-4EA1-11d3-8BDA-00600893B1B6} */ -DEFINE_GUID(CLSID_DirectMusicLyricsTrack, 0x995c1cf5, 0x54ff, 0x11d3, 0x8b, 0xda, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xb6); /* {995C1CF5-54FF-11d3-8BDA-00600893B1B6} */ -DEFINE_GUID(CLSID_DirectMusicParamControlTrack, 0x4be0537b, 0x5c19, 0x11d3, 0x8b, 0xdc, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xb6); /* {4BE0537B-5C19-11d3-8BDC-00600893B1B6} */ -DEFINE_GUID(CLSID_DirectMusicWaveTrack,0xeed36461, 0x9ea5, 0x11d3, 0x9b, 0xd1, 0x0, 0x80, 0xc7, 0x15, 0xa, 0x74); - -/* IID's */ -DEFINE_GUID(IID_IDirectMusicTrack, 0xf96029a1, 0x4282, 0x11d2, 0x87, 0x17, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(IID_IDirectMusicTool,0xd2ac28ba, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); - -/* Interface IDs for DX8 */ -/* changed interfaces (GUID only) */ -DEFINE_GUID(IID_IDirectMusicTool8, 0xe674303, 0x3b05, 0x11d3, 0x9b, 0xd1, 0xf9, 0xe7, 0xf0, 0xa0, 0x15, 0x36); -DEFINE_GUID(IID_IDirectMusicTrack8, 0xe674304, 0x3b05, 0x11d3, 0x9b, 0xd1, 0xf9, 0xe7, 0xf0, 0xa0, 0x15, 0x36); - -#ifdef __cplusplus -}; /* extern "C" */ -#endif - -#include - -#endif /* #ifndef _DMPLUGIN_ */ diff --git a/plugins/!NotAdopted/sndVol/dmusbuff.h b/plugins/!NotAdopted/sndVol/dmusbuff.h deleted file mode 100644 index 68414014b3..0000000000 --- a/plugins/!NotAdopted/sndVol/dmusbuff.h +++ /dev/null @@ -1,41 +0,0 @@ -/*************************************************************************** -* * -* DMusBuff.h -- This module defines the buffer format for DirectMusic * -* Shared file between user mode and kernel mode components * -* * -* Copyright (c) 1998, Microsoft Corp. All rights reserved. * -* * -***************************************************************************/ - -#ifndef _DMusBuff_ -#define _DMusBuff_ - -/* Format of DirectMusic events in a buffer - * - * A buffer contains 1 or more events, each with the following header. - * Immediately following the header is the event data. The header+data - * size is rounded to the nearest quadword (8 bytes). - */ - -#include /* Do not pad at end - that's where the data is */ -typedef struct _DMUS_EVENTHEADER *LPDMUS_EVENTHEADER; -typedef struct _DMUS_EVENTHEADER -{ - DWORD cbEvent; /* Unrounded bytes in event */ - DWORD dwChannelGroup; /* Channel group of event */ - REFERENCE_TIME rtDelta; /* Delta from start time of entire buffer */ - DWORD dwFlags; /* Flags DMUS_EVENT_xxx */ -} DMUS_EVENTHEADER; -#include - -#define DMUS_EVENT_STRUCTURED 0x00000001 /* Unstructured data (SysEx, etc.) */ - -/* The number of bytes to allocate for an event with 'cb' data bytes. - */ -#define QWORD_ALIGN(x) (((x) + 7) & ~7) -#define DMUS_EVENT_SIZE(cb) QWORD_ALIGN(sizeof(DMUS_EVENTHEADER) + cb) - - -#endif /* _DMusBuff_ */ - - diff --git a/plugins/!NotAdopted/sndVol/dmusicc.h b/plugins/!NotAdopted/sndVol/dmusicc.h deleted file mode 100644 index 74f18685e7..0000000000 --- a/plugins/!NotAdopted/sndVol/dmusicc.h +++ /dev/null @@ -1,784 +0,0 @@ -/************************************************************************ -* * -* dmusicc.h -- This module defines the DirectMusic core API's * -* * -* Copyright (c) Microsoft Corporation. All rights reserved. * -* * -************************************************************************/ - -#ifndef _DMUSICC_ -#define _DMUSICC_ - -#include - -#define COM_NO_WINDOWS_H -#include - -#include - -#include "dls1.h" -#include "dmerror.h" -#include "dmdls.h" -#include "dsound.h" -#include "dmusbuff.h" - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef ULONGLONG SAMPLE_TIME; -typedef ULONGLONG SAMPLE_POSITION; -typedef SAMPLE_TIME *LPSAMPLE_TIME; - -#define DMUS_MAX_DESCRIPTION 128 -#define DMUS_MAX_DRIVER 128 - -typedef struct _DMUS_BUFFERDESC *LPDMUS_BUFFERDESC; -typedef struct _DMUS_BUFFERDESC -{ - DWORD dwSize; - DWORD dwFlags; - GUID guidBufferFormat; - DWORD cbBuffer; -} DMUS_BUFFERDESC; - -/* DMUS_EFFECT_ flags are used in the dwEffectFlags fields of both DMUS_PORTCAPS - * and DMUS_PORTPARAMS. - */ -#define DMUS_EFFECT_NONE 0x00000000 -#define DMUS_EFFECT_REVERB 0x00000001 -#define DMUS_EFFECT_CHORUS 0x00000002 -#define DMUS_EFFECT_DELAY 0x00000004 - -/* For DMUS_PORTCAPS dwClass - */ -#define DMUS_PC_INPUTCLASS (0) -#define DMUS_PC_OUTPUTCLASS (1) - -/* For DMUS_PORTCAPS dwFlags - */ -#define DMUS_PC_DLS (0x00000001) // Supports DLS downloading and DLS level 1. -#define DMUS_PC_EXTERNAL (0x00000002) // External MIDI module. -#define DMUS_PC_SOFTWARESYNTH (0x00000004) // Software synthesizer. -#define DMUS_PC_MEMORYSIZEFIXED (0x00000008) // Memory size is fixed. -#define DMUS_PC_GMINHARDWARE (0x00000010) // GM sound set is built in, no need to download. -#define DMUS_PC_GSINHARDWARE (0x00000020) // GS sound set is built in. -#define DMUS_PC_XGINHARDWARE (0x00000040) // XG sound set is built in. -#define DMUS_PC_DIRECTSOUND (0x00000080) // Connects to DirectSound via a DirectSound buffer. -#define DMUS_PC_SHAREABLE (0x00000100) // Synth can be actively shared by multiple apps at once. -#define DMUS_PC_DLS2 (0x00000200) // Supports DLS2 instruments. -#define DMUS_PC_AUDIOPATH (0x00000400) // Multiple outputs can be connected to DirectSound for audiopaths. -#define DMUS_PC_WAVE (0x00000800) // Supports streaming and one shot waves. - -#define DMUS_PC_SYSTEMMEMORY (0x7FFFFFFF) // Sample memory is system memory. - - -typedef struct _DMUS_PORTCAPS -{ - DWORD dwSize; - DWORD dwFlags; - GUID guidPort; - DWORD dwClass; - DWORD dwType; - DWORD dwMemorySize; - DWORD dwMaxChannelGroups; - DWORD dwMaxVoices; - DWORD dwMaxAudioChannels; - DWORD dwEffectFlags; - WCHAR wszDescription[DMUS_MAX_DESCRIPTION]; -} DMUS_PORTCAPS; - -typedef DMUS_PORTCAPS *LPDMUS_PORTCAPS; - -/* Values for DMUS_PORTCAPS dwType. This field indicates the underlying - * driver type of the port. - */ -#define DMUS_PORT_WINMM_DRIVER (0) -#define DMUS_PORT_USER_MODE_SYNTH (1) -#define DMUS_PORT_KERNEL_MODE (2) - -/* These flags (set in dwValidParams) indicate which other members of the */ -/* DMUS_PORTPARAMS are valid. */ -/* */ -#define DMUS_PORTPARAMS_VOICES 0x00000001 -#define DMUS_PORTPARAMS_CHANNELGROUPS 0x00000002 -#define DMUS_PORTPARAMS_AUDIOCHANNELS 0x00000004 -#define DMUS_PORTPARAMS_SAMPLERATE 0x00000008 -#define DMUS_PORTPARAMS_EFFECTS 0x00000020 -#define DMUS_PORTPARAMS_SHARE 0x00000040 -#define DMUS_PORTPARAMS_FEATURES 0x00000080 /* DirectX 8.0 and above */ - -typedef struct _DMUS_PORTPARAMS -{ - DWORD dwSize; - DWORD dwValidParams; - DWORD dwVoices; - DWORD dwChannelGroups; - DWORD dwAudioChannels; - DWORD dwSampleRate; - DWORD dwEffectFlags; - BOOL fShare; -} DMUS_PORTPARAMS7; - -typedef struct _DMUS_PORTPARAMS8 -{ - DWORD dwSize; - DWORD dwValidParams; - DWORD dwVoices; - DWORD dwChannelGroups; - DWORD dwAudioChannels; - DWORD dwSampleRate; - DWORD dwEffectFlags; - BOOL fShare; - DWORD dwFeatures; -} DMUS_PORTPARAMS8; - -#define DMUS_PORT_FEATURE_AUDIOPATH 0x00000001 /* Supports audiopath connection to DirectSound buffers. */ -#define DMUS_PORT_FEATURE_STREAMING 0x00000002 /* Supports streaming waves through the synth. */ - - -typedef DMUS_PORTPARAMS8 DMUS_PORTPARAMS; -typedef DMUS_PORTPARAMS *LPDMUS_PORTPARAMS; - -typedef struct _DMUS_SYNTHSTATS *LPDMUS_SYNTHSTATS; -typedef struct _DMUS_SYNTHSTATS8 *LPDMUS_SYNTHSTATS8; -typedef struct _DMUS_SYNTHSTATS -{ - DWORD dwSize; /* Size in bytes of the structure */ - DWORD dwValidStats; /* Flags indicating which fields below are valid. */ - DWORD dwVoices; /* Average number of voices playing. */ - DWORD dwTotalCPU; /* Total CPU usage as percent * 100. */ - DWORD dwCPUPerVoice; /* CPU per voice as percent * 100. */ - DWORD dwLostNotes; /* Number of notes lost in 1 second. */ - DWORD dwFreeMemory; /* Free memory in bytes */ - long lPeakVolume; /* Decibel level * 100. */ -} DMUS_SYNTHSTATS; - -typedef struct _DMUS_SYNTHSTATS8 -{ - DWORD dwSize; /* Size in bytes of the structure */ - DWORD dwValidStats; /* Flags indicating which fields below are valid. */ - DWORD dwVoices; /* Average number of voices playing. */ - DWORD dwTotalCPU; /* Total CPU usage as percent * 100. */ - DWORD dwCPUPerVoice; /* CPU per voice as percent * 100. */ - DWORD dwLostNotes; /* Number of notes lost in 1 second. */ - DWORD dwFreeMemory; /* Free memory in bytes */ - long lPeakVolume; /* Decibel level * 100. */ - DWORD dwSynthMemUse; /* Memory used by synth wave data */ -} DMUS_SYNTHSTATS8; - -#define DMUS_SYNTHSTATS_VOICES (1 << 0) -#define DMUS_SYNTHSTATS_TOTAL_CPU (1 << 1) -#define DMUS_SYNTHSTATS_CPU_PER_VOICE (1 << 2) -#define DMUS_SYNTHSTATS_LOST_NOTES (1 << 3) -#define DMUS_SYNTHSTATS_PEAK_VOLUME (1 << 4) -#define DMUS_SYNTHSTATS_FREE_MEMORY (1 << 5) - -#define DMUS_SYNTHSTATS_SYSTEMMEMORY DMUS_PC_SYSTEMMEMORY - -typedef struct _DMUS_WAVES_REVERB_PARAMS -{ - float fInGain; /* Input gain in dB (to avoid output overflows) */ - float fReverbMix; /* Reverb mix in dB. 0dB means 100% wet reverb (no direct signal) - Negative values gives less wet signal. - The coeficients are calculated so that the overall output level stays - (approximately) constant regardless of the ammount of reverb mix. */ - float fReverbTime; /* The reverb decay time, in milliseconds. */ - float fHighFreqRTRatio; /* The ratio of the high frequencies to the global reverb time. - Unless very 'splashy-bright' reverbs are wanted, this should be set to - a value < 1.0. - For example if dRevTime==1000ms and dHighFreqRTRatio=0.1 than the - decay time for high frequencies will be 100ms.*/ - -} DMUS_WAVES_REVERB_PARAMS; - -/* Note: Default values for Reverb are: - fInGain = 0.0dB (no change in level) - fReverbMix = -10.0dB (a reasonable reverb mix) - fReverbTime = 1000.0ms (one second global reverb time) - fHighFreqRTRatio = 0.001 (the ratio of the high frequencies to the global reverb time) -*/ - -typedef enum -{ - DMUS_CLOCK_SYSTEM = 0, - DMUS_CLOCK_WAVE = 1 -} DMUS_CLOCKTYPE; - -#define DMUS_CLOCKF_GLOBAL 0x00000001 - -typedef struct _DMUS_CLOCKINFO7 *LPDMUS_CLOCKINFO7; -typedef struct _DMUS_CLOCKINFO7 -{ - DWORD dwSize; - DMUS_CLOCKTYPE ctType; - GUID guidClock; /* Identifies this time source */ - WCHAR wszDescription[DMUS_MAX_DESCRIPTION]; -} DMUS_CLOCKINFO7; - -typedef struct _DMUS_CLOCKINFO8 *LPDMUS_CLOCKINFO8; -typedef struct _DMUS_CLOCKINFO8 -{ - DWORD dwSize; - DMUS_CLOCKTYPE ctType; - GUID guidClock; /* Identifies this time source */ - WCHAR wszDescription[DMUS_MAX_DESCRIPTION]; - DWORD dwFlags; -} DMUS_CLOCKINFO8; - -typedef DMUS_CLOCKINFO8 DMUS_CLOCKINFO; -typedef DMUS_CLOCKINFO *LPDMUS_CLOCKINFO; - -/* Default bus identifiers - * - * The first 17 are direct mappings to the destinations defined in both - * the MMA DLS Level 2 specification and the Microsoft Multi-Channel audio - * specification. - */ -#define DSBUSID_FIRST_SPKR_LOC 0 -#define DSBUSID_FRONT_LEFT 0 -#define DSBUSID_LEFT 0 /* Front left is also just left */ -#define DSBUSID_FRONT_RIGHT 1 -#define DSBUSID_RIGHT 1 /* Ditto front right */ -#define DSBUSID_FRONT_CENTER 2 -#define DSBUSID_LOW_FREQUENCY 3 -#define DSBUSID_BACK_LEFT 4 -#define DSBUSID_BACK_RIGHT 5 -#define DSBUSID_FRONT_LEFT_OF_CENTER 6 -#define DSBUSID_FRONT_RIGHT_OF_CENTER 7 -#define DSBUSID_BACK_CENTER 8 -#define DSBUSID_SIDE_LEFT 9 -#define DSBUSID_SIDE_RIGHT 10 -#define DSBUSID_TOP_CENTER 11 -#define DSBUSID_TOP_FRONT_LEFT 12 -#define DSBUSID_TOP_FRONT_CENTER 13 -#define DSBUSID_TOP_FRONT_RIGHT 14 -#define DSBUSID_TOP_BACK_LEFT 15 -#define DSBUSID_TOP_BACK_CENTER 16 -#define DSBUSID_TOP_BACK_RIGHT 17 -#define DSBUSID_LAST_SPKR_LOC 17 - -#define DSBUSID_IS_SPKR_LOC(id) ( ((id) >= DSBUSID_FIRST_SPKR_LOC) && ((id) <= DSBUSID_LAST_SPKR_LOC) ) - -/* These bus identifiers are for the standard DLS effect sends - */ -#define DSBUSID_REVERB_SEND 64 -#define DSBUSID_CHORUS_SEND 65 - -/* Dynamic bus identifiers start here. See the documentation for how - * synthesizers map the output of voices to static and dynamic - * bus identifiers. - */ -#define DSBUSID_DYNAMIC_0 512 - -/* Null bus, used to identify busses that have no function mapping. -*/ -#define DSBUSID_NULL 0xFFFFFFFF - -interface IDirectMusic; -interface IDirectMusic8; -interface IDirectMusicBuffer; -interface IDirectMusicPort; -interface IDirectMusicThru; -interface IReferenceClock; - -#ifndef __cplusplus - -typedef interface IDirectMusic IDirectMusic; -typedef interface IDirectMusic8 IDirectMusic8; -typedef interface IDirectMusicPort IDirectMusicPort; -typedef interface IDirectMusicBuffer IDirectMusicBuffer; -typedef interface IDirectMusicThru IDirectMusicThru; -typedef interface IReferenceClock IReferenceClock; - -#endif /* C++ */ - -typedef IDirectMusic *LPDIRECTMUSIC; -typedef IDirectMusic8 *LPDIRECTMUSIC8; -typedef IDirectMusicPort *LPDIRECTMUSICPORT; -typedef IDirectMusicBuffer *LPDIRECTMUSICBUFFER; - -#undef INTERFACE -#define INTERFACE IDirectMusic -DECLARE_INTERFACE_(IDirectMusic, IUnknown) -{ - /* IUnknown */ - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - /* IDirectMusic */ - STDMETHOD(EnumPort) (THIS_ DWORD dwIndex, - LPDMUS_PORTCAPS pPortCaps) PURE; - STDMETHOD(CreateMusicBuffer) (THIS_ LPDMUS_BUFFERDESC pBufferDesc, - LPDIRECTMUSICBUFFER *ppBuffer, - LPUNKNOWN pUnkOuter) PURE; - STDMETHOD(CreatePort) (THIS_ REFCLSID rclsidPort, - LPDMUS_PORTPARAMS pPortParams, - LPDIRECTMUSICPORT *ppPort, - LPUNKNOWN pUnkOuter) PURE; - STDMETHOD(EnumMasterClock) (THIS_ DWORD dwIndex, - LPDMUS_CLOCKINFO lpClockInfo) PURE; - STDMETHOD(GetMasterClock) (THIS_ LPGUID pguidClock, - IReferenceClock **ppReferenceClock) PURE; - STDMETHOD(SetMasterClock) (THIS_ REFGUID rguidClock) PURE; - STDMETHOD(Activate) (THIS_ BOOL fEnable) PURE; - STDMETHOD(GetDefaultPort) (THIS_ LPGUID pguidPort) PURE; - STDMETHOD(SetDirectSound) (THIS_ LPDIRECTSOUND pDirectSound, - HWND hWnd) PURE; -}; - -#undef INTERFACE -#define INTERFACE IDirectMusic8 -DECLARE_INTERFACE_(IDirectMusic8, IDirectMusic) -{ - /* IUnknown */ - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - /* IDirectMusic */ - STDMETHOD(EnumPort) (THIS_ DWORD dwIndex, - LPDMUS_PORTCAPS pPortCaps) PURE; - STDMETHOD(CreateMusicBuffer) (THIS_ LPDMUS_BUFFERDESC pBufferDesc, - LPDIRECTMUSICBUFFER *ppBuffer, - LPUNKNOWN pUnkOuter) PURE; - STDMETHOD(CreatePort) (THIS_ REFCLSID rclsidPort, - LPDMUS_PORTPARAMS pPortParams, - LPDIRECTMUSICPORT *ppPort, - LPUNKNOWN pUnkOuter) PURE; - STDMETHOD(EnumMasterClock) (THIS_ DWORD dwIndex, - LPDMUS_CLOCKINFO lpClockInfo) PURE; - STDMETHOD(GetMasterClock) (THIS_ LPGUID pguidClock, - IReferenceClock **ppReferenceClock) PURE; - STDMETHOD(SetMasterClock) (THIS_ REFGUID rguidClock) PURE; - STDMETHOD(Activate) (THIS_ BOOL fEnable) PURE; - STDMETHOD(GetDefaultPort) (THIS_ LPGUID pguidPort) PURE; - STDMETHOD(SetDirectSound) (THIS_ LPDIRECTSOUND pDirectSound, - HWND hWnd) PURE; - /* IDirectMusic8 */ - STDMETHOD(SetExternalMasterClock) - (THIS_ IReferenceClock *pClock) PURE; -}; - -#undef INTERFACE -#define INTERFACE IDirectMusicBuffer -DECLARE_INTERFACE_(IDirectMusicBuffer, IUnknown) -{ - /* IUnknown */ - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - /* IDirectMusicBuffer */ - STDMETHOD(Flush) (THIS) PURE; - STDMETHOD(TotalTime) (THIS_ LPREFERENCE_TIME prtTime) PURE; - - STDMETHOD(PackStructured) (THIS_ REFERENCE_TIME rt, - DWORD dwChannelGroup, - DWORD dwChannelMessage) PURE; - - STDMETHOD(PackUnstructured) (THIS_ REFERENCE_TIME rt, - DWORD dwChannelGroup, - DWORD cb, - LPBYTE lpb) PURE; - - STDMETHOD(ResetReadPtr) (THIS) PURE; - STDMETHOD(GetNextEvent) (THIS_ LPREFERENCE_TIME prt, - LPDWORD pdwChannelGroup, - LPDWORD pdwLength, - LPBYTE *ppData) PURE; - - STDMETHOD(GetRawBufferPtr) (THIS_ LPBYTE *ppData) PURE; - STDMETHOD(GetStartTime) (THIS_ LPREFERENCE_TIME prt) PURE; - STDMETHOD(GetUsedBytes) (THIS_ LPDWORD pcb) PURE; - STDMETHOD(GetMaxBytes) (THIS_ LPDWORD pcb) PURE; - STDMETHOD(GetBufferFormat) (THIS_ LPGUID pGuidFormat) PURE; - - STDMETHOD(SetStartTime) (THIS_ REFERENCE_TIME rt) PURE; - STDMETHOD(SetUsedBytes) (THIS_ DWORD cb) PURE; -}; - -typedef IDirectMusicBuffer IDirectMusicBuffer8; -typedef IDirectMusicBuffer8 *LPDIRECTMUSICBUFFER8; - -#undef INTERFACE -#define INTERFACE IDirectMusicInstrument -DECLARE_INTERFACE_(IDirectMusicInstrument, IUnknown) -{ - /* IUnknown */ - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - /* IDirectMusicInstrument */ - STDMETHOD(GetPatch) (THIS_ DWORD* pdwPatch) PURE; - STDMETHOD(SetPatch) (THIS_ DWORD dwPatch) PURE; -}; - -typedef IDirectMusicInstrument IDirectMusicInstrument8; -typedef IDirectMusicInstrument8 *LPDIRECTMUSICINSTRUMENT8; - -#undef INTERFACE -#define INTERFACE IDirectMusicDownloadedInstrument -DECLARE_INTERFACE_(IDirectMusicDownloadedInstrument, IUnknown) -{ - /* IUnknown */ - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - /* IDirectMusicDownloadedInstrument */ - /* None at this time */ -}; - -typedef IDirectMusicDownloadedInstrument IDirectMusicDownloadedInstrument8; -typedef IDirectMusicDownloadedInstrument8 *LPDIRECTMUSICDOWNLOADEDINSTRUMENT8; - -#undef INTERFACE -#define INTERFACE IDirectMusicCollection -DECLARE_INTERFACE_(IDirectMusicCollection, IUnknown) -{ - /* IUnknown */ - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - /* IDirectMusicCollection */ - STDMETHOD(GetInstrument) (THIS_ DWORD dwPatch, - IDirectMusicInstrument** ppInstrument) PURE; - STDMETHOD(EnumInstrument) (THIS_ DWORD dwIndex, - DWORD* pdwPatch, - LPWSTR pwszName, - DWORD dwNameLen) PURE; -}; - -typedef IDirectMusicCollection IDirectMusicCollection8; -typedef IDirectMusicCollection8 *LPDIRECTMUSICCOLLECTION8; - -#undef INTERFACE -#define INTERFACE IDirectMusicDownload -DECLARE_INTERFACE_(IDirectMusicDownload , IUnknown) -{ - /* IUnknown */ - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - /* IDirectMusicDownload */ - STDMETHOD(GetBuffer) (THIS_ void** ppvBuffer, - DWORD* pdwSize) PURE; -}; - -typedef IDirectMusicDownload IDirectMusicDownload8; -typedef IDirectMusicDownload8 *LPDIRECTMUSICDOWNLOAD8; - -#undef INTERFACE -#define INTERFACE IDirectMusicPortDownload -DECLARE_INTERFACE_(IDirectMusicPortDownload, IUnknown) -{ - /* IUnknown */ - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - /* IDirectMusicPortDownload */ - STDMETHOD(GetBuffer) (THIS_ DWORD dwDLId, - IDirectMusicDownload** ppIDMDownload) PURE; - STDMETHOD(AllocateBuffer) (THIS_ DWORD dwSize, - IDirectMusicDownload** ppIDMDownload) PURE; - STDMETHOD(GetDLId) (THIS_ DWORD* pdwStartDLId, - DWORD dwCount) PURE; - STDMETHOD(GetAppend) (THIS_ DWORD* pdwAppend) PURE; - STDMETHOD(Download) (THIS_ IDirectMusicDownload* pIDMDownload) PURE; - STDMETHOD(Unload) (THIS_ IDirectMusicDownload* pIDMDownload) PURE; -}; - -typedef IDirectMusicPortDownload IDirectMusicPortDownload8; -typedef IDirectMusicPortDownload8 *LPDIRECTMUSICPORTDOWNLOAD8; - -/* Standard values for voice priorities. Numerically higher priorities are higher in priority. - * These priorities are used to set the voice priority for all voices on a channel. They are - * used in the dwPriority parameter of IDirectMusicPort::GetPriority and returned in the - * lpwPriority parameter of pdwPriority. - * - * These priorities are shared with DirectSound. - */ - -#ifndef _DIRECTAUDIO_PRIORITIES_DEFINED_ -#define _DIRECTAUDIO_PRIORITIES_DEFINED_ - -#define DAUD_CRITICAL_VOICE_PRIORITY (0xF0000000) -#define DAUD_HIGH_VOICE_PRIORITY (0xC0000000) -#define DAUD_STANDARD_VOICE_PRIORITY (0x80000000) -#define DAUD_LOW_VOICE_PRIORITY (0x40000000) -#define DAUD_PERSIST_VOICE_PRIORITY (0x10000000) - -/* These are the default priorities assigned if not overridden. By default priorities are - * equal across channel groups (e.g. channel 5 on channel group 1 has the same priority as - * channel 5 on channel group 2). - * - * In accordance with DLS level 1, channel 10 has the highest priority, followed by 1 through 16 - * except for 10. - */ -#define DAUD_CHAN1_VOICE_PRIORITY_OFFSET (0x0000000E) -#define DAUD_CHAN2_VOICE_PRIORITY_OFFSET (0x0000000D) -#define DAUD_CHAN3_VOICE_PRIORITY_OFFSET (0x0000000C) -#define DAUD_CHAN4_VOICE_PRIORITY_OFFSET (0x0000000B) -#define DAUD_CHAN5_VOICE_PRIORITY_OFFSET (0x0000000A) -#define DAUD_CHAN6_VOICE_PRIORITY_OFFSET (0x00000009) -#define DAUD_CHAN7_VOICE_PRIORITY_OFFSET (0x00000008) -#define DAUD_CHAN8_VOICE_PRIORITY_OFFSET (0x00000007) -#define DAUD_CHAN9_VOICE_PRIORITY_OFFSET (0x00000006) -#define DAUD_CHAN10_VOICE_PRIORITY_OFFSET (0x0000000F) -#define DAUD_CHAN11_VOICE_PRIORITY_OFFSET (0x00000005) -#define DAUD_CHAN12_VOICE_PRIORITY_OFFSET (0x00000004) -#define DAUD_CHAN13_VOICE_PRIORITY_OFFSET (0x00000003) -#define DAUD_CHAN14_VOICE_PRIORITY_OFFSET (0x00000002) -#define DAUD_CHAN15_VOICE_PRIORITY_OFFSET (0x00000001) -#define DAUD_CHAN16_VOICE_PRIORITY_OFFSET (0x00000000) - - -#define DAUD_CHAN1_DEF_VOICE_PRIORITY (DAUD_STANDARD_VOICE_PRIORITY | DAUD_CHAN1_VOICE_PRIORITY_OFFSET) -#define DAUD_CHAN2_DEF_VOICE_PRIORITY (DAUD_STANDARD_VOICE_PRIORITY | DAUD_CHAN2_VOICE_PRIORITY_OFFSET) -#define DAUD_CHAN3_DEF_VOICE_PRIORITY (DAUD_STANDARD_VOICE_PRIORITY | DAUD_CHAN3_VOICE_PRIORITY_OFFSET) -#define DAUD_CHAN4_DEF_VOICE_PRIORITY (DAUD_STANDARD_VOICE_PRIORITY | DAUD_CHAN4_VOICE_PRIORITY_OFFSET) -#define DAUD_CHAN5_DEF_VOICE_PRIORITY (DAUD_STANDARD_VOICE_PRIORITY | DAUD_CHAN5_VOICE_PRIORITY_OFFSET) -#define DAUD_CHAN6_DEF_VOICE_PRIORITY (DAUD_STANDARD_VOICE_PRIORITY | DAUD_CHAN6_VOICE_PRIORITY_OFFSET) -#define DAUD_CHAN7_DEF_VOICE_PRIORITY (DAUD_STANDARD_VOICE_PRIORITY | DAUD_CHAN7_VOICE_PRIORITY_OFFSET) -#define DAUD_CHAN8_DEF_VOICE_PRIORITY (DAUD_STANDARD_VOICE_PRIORITY | DAUD_CHAN8_VOICE_PRIORITY_OFFSET) -#define DAUD_CHAN9_DEF_VOICE_PRIORITY (DAUD_STANDARD_VOICE_PRIORITY | DAUD_CHAN9_VOICE_PRIORITY_OFFSET) -#define DAUD_CHAN10_DEF_VOICE_PRIORITY (DAUD_STANDARD_VOICE_PRIORITY | DAUD_CHAN10_VOICE_PRIORITY_OFFSET) -#define DAUD_CHAN11_DEF_VOICE_PRIORITY (DAUD_STANDARD_VOICE_PRIORITY | DAUD_CHAN11_VOICE_PRIORITY_OFFSET) -#define DAUD_CHAN12_DEF_VOICE_PRIORITY (DAUD_STANDARD_VOICE_PRIORITY | DAUD_CHAN12_VOICE_PRIORITY_OFFSET) -#define DAUD_CHAN13_DEF_VOICE_PRIORITY (DAUD_STANDARD_VOICE_PRIORITY | DAUD_CHAN13_VOICE_PRIORITY_OFFSET) -#define DAUD_CHAN14_DEF_VOICE_PRIORITY (DAUD_STANDARD_VOICE_PRIORITY | DAUD_CHAN14_VOICE_PRIORITY_OFFSET) -#define DAUD_CHAN15_DEF_VOICE_PRIORITY (DAUD_STANDARD_VOICE_PRIORITY | DAUD_CHAN15_VOICE_PRIORITY_OFFSET) -#define DAUD_CHAN16_DEF_VOICE_PRIORITY (DAUD_STANDARD_VOICE_PRIORITY | DAUD_CHAN16_VOICE_PRIORITY_OFFSET) - -#endif /* _DIRECTAUDIO_PRIORITIES_DEFINED_ */ - - -#undef INTERFACE -#define INTERFACE IDirectMusicPort -DECLARE_INTERFACE_(IDirectMusicPort, IUnknown) -{ - /* IUnknown */ - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - /* IDirectMusicPort */ - /* */ - STDMETHOD(PlayBuffer) (THIS_ LPDIRECTMUSICBUFFER pBuffer) PURE; - STDMETHOD(SetReadNotificationHandle) (THIS_ HANDLE hEvent) PURE; - STDMETHOD(Read) (THIS_ LPDIRECTMUSICBUFFER pBuffer) PURE; - STDMETHOD(DownloadInstrument) (THIS_ IDirectMusicInstrument *pInstrument, - IDirectMusicDownloadedInstrument **ppDownloadedInstrument, - DMUS_NOTERANGE *pNoteRanges, - DWORD dwNumNoteRanges) PURE; - STDMETHOD(UnloadInstrument) (THIS_ IDirectMusicDownloadedInstrument *pDownloadedInstrument) PURE; - STDMETHOD(GetLatencyClock) (THIS_ IReferenceClock **ppClock) PURE; - STDMETHOD(GetRunningStats) (THIS_ LPDMUS_SYNTHSTATS pStats) PURE; - STDMETHOD(Compact) (THIS) PURE; - STDMETHOD(GetCaps) (THIS_ LPDMUS_PORTCAPS pPortCaps) PURE; - STDMETHOD(DeviceIoControl) (THIS_ DWORD dwIoControlCode, - LPVOID lpInBuffer, - DWORD nInBufferSize, - LPVOID lpOutBuffer, - DWORD nOutBufferSize, - LPDWORD lpBytesReturned, - LPOVERLAPPED lpOverlapped) PURE; - STDMETHOD(SetNumChannelGroups) (THIS_ DWORD dwChannelGroups) PURE; - STDMETHOD(GetNumChannelGroups) (THIS_ LPDWORD pdwChannelGroups) PURE; - STDMETHOD(Activate) (THIS_ BOOL fActive) PURE; - STDMETHOD(SetChannelPriority) (THIS_ DWORD dwChannelGroup, DWORD dwChannel, DWORD dwPriority) PURE; - STDMETHOD(GetChannelPriority) (THIS_ DWORD dwChannelGroup, DWORD dwChannel, LPDWORD pdwPriority) PURE; - STDMETHOD(SetDirectSound) (THIS_ LPDIRECTSOUND pDirectSound, LPDIRECTSOUNDBUFFER pDirectSoundBuffer) PURE; - STDMETHOD(GetFormat) (THIS_ LPWAVEFORMATEX pWaveFormatEx, LPDWORD pdwWaveFormatExSize, LPDWORD pdwBufferSize) PURE; -}; - -typedef IDirectMusicPort IDirectMusicPort8; -typedef IDirectMusicPort8 *LPDIRECTMUSICPORT8; - -#undef INTERFACE -#define INTERFACE IDirectMusicThru -DECLARE_INTERFACE_(IDirectMusicThru, IUnknown) -{ - /* IUnknown */ - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - /* IDirectMusicThru - */ - STDMETHOD(ThruChannel) (THIS_ DWORD dwSourceChannelGroup, - DWORD dwSourceChannel, - DWORD dwDestinationChannelGroup, - DWORD dwDestinationChannel, - LPDIRECTMUSICPORT pDestinationPort) PURE; -}; - -typedef IDirectMusicThru IDirectMusicThru8; -typedef IDirectMusicThru8 *LPDIRECTMUSICTHRU8; - -#ifndef __IReferenceClock_INTERFACE_DEFINED__ -#define __IReferenceClock_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IReferenceClock,0x56a86897,0x0ad4,0x11ce,0xb0,0x3a,0x00,0x20,0xaf,0x0b,0xa7,0x70); - -#undef INTERFACE -#define INTERFACE IReferenceClock -DECLARE_INTERFACE_(IReferenceClock, IUnknown) -{ - /* IUnknown */ - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - /* IReferenceClock */ - /* */ - - /* get the time now */ - STDMETHOD(GetTime) (THIS_ REFERENCE_TIME *pTime) PURE; - - /* ask for an async notification that a time has elapsed */ - STDMETHOD(AdviseTime) (THIS_ REFERENCE_TIME baseTime, /* base time */ - REFERENCE_TIME streamTime, /* stream offset time */ - HANDLE hEvent, /* advise via this event */ - DWORD * pdwAdviseCookie) PURE; /* where your cookie goes */ - - /* ask for an async periodic notification that a time has elapsed */ - STDMETHOD(AdvisePeriodic) (THIS_ REFERENCE_TIME startTime, /* starting at this time */ - REFERENCE_TIME periodTime, /* time between notifications */ - HANDLE hSemaphore, /* advise via a semaphore */ - DWORD * pdwAdviseCookie) PURE; /* where your cookie goes */ - - /* cancel a request for notification */ - STDMETHOD(Unadvise) (THIS_ DWORD dwAdviseCookie) PURE; -}; - -#endif /* __IReferenceClock_INTERFACE_DEFINED__ */ - -DEFINE_GUID(CLSID_DirectMusic,0x636b9f10,0x0c7d,0x11d1,0x95,0xb2,0x00,0x20,0xaf,0xdc,0x74,0x21); -DEFINE_GUID(CLSID_DirectMusicCollection,0x480ff4b0, 0x28b2, 0x11d1, 0xbe, 0xf7, 0x0, 0xc0, 0x4f, 0xbf, 0x8f, 0xef); -DEFINE_GUID(CLSID_DirectMusicSynth,0x58C2B4D0,0x46E7,0x11D1,0x89,0xAC,0x00,0xA0,0xC9,0x05,0x41,0x29); - -DEFINE_GUID(IID_IDirectMusic,0x6536115a,0x7b2d,0x11d2,0xba,0x18,0x00,0x00,0xf8,0x75,0xac,0x12); -DEFINE_GUID(IID_IDirectMusicBuffer,0xd2ac2878, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(IID_IDirectMusicPort, 0x08f2d8c9,0x37c2,0x11d2,0xb9,0xf9,0x00,0x00,0xf8,0x75,0xac,0x12); -DEFINE_GUID(IID_IDirectMusicThru, 0xced153e7, 0x3606, 0x11d2, 0xb9, 0xf9, 0x00, 0x00, 0xf8, 0x75, 0xac, 0x12); -DEFINE_GUID(IID_IDirectMusicPortDownload,0xd2ac287a, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(IID_IDirectMusicDownload,0xd2ac287b, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(IID_IDirectMusicCollection,0xd2ac287c, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(IID_IDirectMusicInstrument,0xd2ac287d, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(IID_IDirectMusicDownloadedInstrument,0xd2ac287e, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); - - -/* Alternate interface ID for IID_IDirectMusic, available in DX7 release and after. */ -DEFINE_GUID(IID_IDirectMusic2,0x6fc2cae1, 0xbc78, 0x11d2, 0xaf, 0xa6, 0x0, 0xaa, 0x0, 0x24, 0xd8, 0xb6); - -DEFINE_GUID(IID_IDirectMusic8,0x2d3629f7,0x813d,0x4939,0x85,0x08,0xf0,0x5c,0x6b,0x75,0xfd,0x97); - -#define IID_IDirectMusicThru8 IID_IDirectMusicThru -#define IID_IDirectMusicPortDownload8 IID_IDirectMusicPortDownload -#define IID_IDirectMusicDownload8 IID_IDirectMusicDownload -#define IID_IDirectMusicCollection8 IID_IDirectMusicCollection -#define IID_IDirectMusicInstrument8 IID_IDirectMusicInstrument -#define IID_IDirectMusicDownloadedInstrument8 IID_IDirectMusicDownloadedInstrument -#define IID_IDirectMusicPort8 IID_IDirectMusicPort - - -/* Property Query GUID_DMUS_PROP_GM_Hardware - Local GM set, no need to download - * Property Query GUID_DMUS_PROP_GS_Hardware - Local GS set, no need to download - * Property Query GUID_DMUS_PROP_XG_Hardware - Local XG set, no need to download - * Property Query GUID_DMUS_PROP_DLS1 - Support DLS level 1 - * Property Query GUID_DMUS_PROP_INSTRUMENT2 - Support new INSTRUMENT2 download format - * Property Query GUID_DMUS_PROP_XG_Capable - Support minimum requirements of XG - * Property Query GUID_DMUS_PROP_GS_Capable - Support minimum requirements of GS - * Property Query GUID_DMUS_PROP_SynthSink_DSOUND - Synthsink talks to DirectSound - * Property Query GUID_DMUS_PROP_SynthSink_WAVE - Synthsink talks to Wave device - * - * Item 0: Supported - * Returns a DWORD which is non-zero if the feature is supported - */ -DEFINE_GUID(GUID_DMUS_PROP_GM_Hardware, 0x178f2f24, 0xc364, 0x11d1, 0xa7, 0x60, 0x00, 0x00, 0xf8, 0x75, 0xac, 0x12); -DEFINE_GUID(GUID_DMUS_PROP_GS_Hardware, 0x178f2f25, 0xc364, 0x11d1, 0xa7, 0x60, 0x00, 0x00, 0xf8, 0x75, 0xac, 0x12); -DEFINE_GUID(GUID_DMUS_PROP_XG_Hardware, 0x178f2f26, 0xc364, 0x11d1, 0xa7, 0x60, 0x00, 0x00, 0xf8, 0x75, 0xac, 0x12); -DEFINE_GUID(GUID_DMUS_PROP_XG_Capable, 0x6496aba1, 0x61b0, 0x11d2, 0xaf, 0xa6, 0x0, 0xaa, 0x0, 0x24, 0xd8, 0xb6); -DEFINE_GUID(GUID_DMUS_PROP_GS_Capable, 0x6496aba2, 0x61b0, 0x11d2, 0xaf, 0xa6, 0x0, 0xaa, 0x0, 0x24, 0xd8, 0xb6); -DEFINE_GUID(GUID_DMUS_PROP_DLS1, 0x178f2f27, 0xc364, 0x11d1, 0xa7, 0x60, 0x00, 0x00, 0xf8, 0x75, 0xac, 0x12); -DEFINE_GUID(GUID_DMUS_PROP_DLS2, 0xf14599e5, 0x4689, 0x11d2, 0xaf, 0xa6, 0x0, 0xaa, 0x0, 0x24, 0xd8, 0xb6); -DEFINE_GUID(GUID_DMUS_PROP_INSTRUMENT2, 0x865fd372, 0x9f67, 0x11d2, 0x87, 0x2a, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(GUID_DMUS_PROP_SynthSink_DSOUND,0xaa97844, 0xc877, 0x11d1, 0x87, 0xc, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(GUID_DMUS_PROP_SynthSink_WAVE,0xaa97845, 0xc877, 0x11d1, 0x87, 0xc, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(GUID_DMUS_PROP_SampleMemorySize, 0x178f2f28, 0xc364, 0x11d1, 0xa7, 0x60, 0x00, 0x00, 0xf8, 0x75, 0xac, 0x12); -DEFINE_GUID(GUID_DMUS_PROP_SamplePlaybackRate, 0x2a91f713, 0xa4bf, 0x11d2, 0xbb, 0xdf, 0x0, 0x60, 0x8, 0x33, 0xdb, 0xd8); - -/* Property Get/Set GUID_DMUS_PROP_WriteLatency - * - * Item 0: Synth buffer write latency, in milliseconds - * Get/Set SynthSink latency, the average time after the play head that the next buffer gets written. - */ -DEFINE_GUID(GUID_DMUS_PROP_WriteLatency,0x268a0fa0, 0x60f2, 0x11d2, 0xaf, 0xa6, 0x0, 0xaa, 0x0, 0x24, 0xd8, 0xb6); - -/* Property Get/Set GUID_DMUS_PROP_WritePeriod - * - * Item 0: Synth buffer write period, in milliseconds - * Get/Set SynthSink buffer write period, time span between successive writes. - */ -DEFINE_GUID(GUID_DMUS_PROP_WritePeriod,0x268a0fa1, 0x60f2, 0x11d2, 0xaf, 0xa6, 0x0, 0xaa, 0x0, 0x24, 0xd8, 0xb6); - -/* Property Get GUID_DMUS_PROP_MemorySize - * - * Item 0: Memory size - * Returns a DWORD containing the total number of bytes of sample RAM - */ -DEFINE_GUID(GUID_DMUS_PROP_MemorySize, 0x178f2f28, 0xc364, 0x11d1, 0xa7, 0x60, 0x00, 0x00, 0xf8, 0x75, 0xac, 0x12); - -/* Property Set GUID_DMUS_PROP_WavesReverb - * - * Item 0: DMUS_WAVES_REVERB structure - * Sets reverb parameters - */ -DEFINE_GUID(GUID_DMUS_PROP_WavesReverb,0x4cb5622, 0x32e5, 0x11d2, 0xaf, 0xa6, 0x0, 0xaa, 0x0, 0x24, 0xd8, 0xb6); - -/* Property Set GUID_DMUS_PROP_Effects - * - * Item 0: DWORD with effects flags. - * Get/Set effects bits, same as dwEffectFlags in DMUS_PORTPARAMS and DMUS_PORTCAPS: - * DMUS_EFFECT_NONE - * DMUS_EFFECT_REVERB - * DMUS_EFFECT_CHORUS - */ -DEFINE_GUID(GUID_DMUS_PROP_Effects, 0xcda8d611, 0x684a, 0x11d2, 0x87, 0x1e, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); - -/* Property Set GUID_DMUS_PROP_LegacyCaps - * - * Item 0: The MIDINCAPS or MIDIOUTCAPS which describes the port's underlying WinMM device. This property is only supported - * by ports which wrap WinMM devices. - */ - -DEFINE_GUID(GUID_DMUS_PROP_LegacyCaps,0xcfa7cdc2, 0x00a1, 0x11d2, 0xaa, 0xd5, 0x00, 0x00, 0xf8, 0x75, 0xac, 0x12); - -/* Property Set GUID_DMUS_PROP_Volume - * - * Item 0: A long which contains an offset, in 1/100 dB, to be added to the final volume - * - */ -DEFINE_GUID(GUID_DMUS_PROP_Volume, 0xfedfae25L, 0xe46e, 0x11d1, 0xaa, 0xce, 0x00, 0x00, 0xf8, 0x75, 0xac, 0x12); - -/* Min and Max values for setting volume with GUID_DMUS_PROP_Volume */ - -#define DMUS_VOLUME_MAX 2000 /* +20 dB */ -#define DMUS_VOLUME_MIN -20000 /* -200 dB */ - -#ifdef __cplusplus -}; /* extern "C" */ -#endif - -#include - -#endif /* #ifndef _DMUSICC_ */ diff --git a/plugins/!NotAdopted/sndVol/dmusici.h b/plugins/!NotAdopted/sndVol/dmusici.h deleted file mode 100644 index 0af3a12f8b..0000000000 --- a/plugins/!NotAdopted/sndVol/dmusici.h +++ /dev/null @@ -1,1883 +0,0 @@ -/************************************************************************ -* * -* dmusici.h -- This module contains the API for the * -* DirectMusic performance layer * -* * -* Copyright (c) Microsoft Corporation. All rights reserved. * -* * -************************************************************************/ - -#ifndef _DMUSICI_ -#define _DMUSICI_ - -#include - -#define COM_NO_WINDOWS_H -#include - -#include -#include -/* plugin (track and tool) interfaces. This #include will eventually go away. */ -#include - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef WORD TRANSITION_TYPE; -typedef __int64 REFERENCE_TIME; -typedef long MUSIC_TIME; - -#define MT_MIN 0x80000000 /* Minimum music time value. */ -#define MT_MAX 0x7FFFFFFF /* Maximum music time value. */ - -#define DMUS_PPQ 768 /* parts per quarter note */ - -interface IDirectMusicTrack; -interface IDirectMusicPerformance; -interface IDirectMusicPerformance8; -interface IDirectMusicTool; -interface IDirectMusicSegment; -interface IDirectMusicSegment8; -interface IDirectMusicSegmentState; -interface IDirectMusicSegmentState8; -interface IDirectMusicGraph; -interface IDirectMusicBuffer; -interface IDirectMusicInstrument; -interface IDirectMusicDownloadedInstrument; -interface IDirectMusicBand; -interface IDirectMusicChordMap; -interface IDirectMusicLoader; -interface IDirectMusicLoader8; -interface IDirectMusicScript; -interface IDirectMusicObject; -interface IDirectMusicStyle8; -interface IDirectMusicPatternTrack; -interface IDirectMusicContainer; -interface IDirectMusicTool8; -interface IDirectMusicTrack8; -interface IDirectMusicAudioPath; -#ifndef __cplusplus -typedef interface IDirectMusicTrack IDirectMusicTrack; -typedef interface IDirectMusicPerformance IDirectMusicPerformance; -typedef interface IDirectMusicPerformance8 IDirectMusicPerformance8; -typedef interface IDirectMusicTool IDirectMusicTool; -typedef interface IDirectMusicSegment IDirectMusicSegment; -typedef interface IDirectMusicSegment8 IDirectMusicSegment8; -typedef interface IDirectMusicSegmentState IDirectMusicSegmentState; -typedef interface IDirectMusicSegmentState8 IDirectMusicSegmentState8; -typedef interface IDirectMusicGraph IDirectMusicGraph; -typedef interface IDirectMusicBuffer IDirectMusicBuffer; -typedef interface IDirectMusicInstrument IDirectMusicInstrument; -typedef interface IDirectMusicDownloadedInstrument IDirectMusicDownloadedInstrument; -typedef interface IDirectMusicBand IDirectMusicBand; -typedef interface IDirectMusicChordMap IDirectMusicChordMap; -typedef interface IDirectMusicObject IDirectMusicObject; -typedef interface IDirectMusicLoader IDirectMusicLoader; -typedef interface IDirectMusicLoader8 IDirectMusicLoader8; -typedef interface IDirectMusicScript IDirectMusicScript; -typedef interface IDirectMusicStyle8 IDirectMusicStyle8; -typedef interface IDirectMusicPatternTrack IDirectMusicPatternTrack; -typedef interface IDirectMusicContainer IDirectMusicContainer; -typedef interface IDirectMusicTool8 IDirectMusicTool8; -typedef interface IDirectMusicTrack8 IDirectMusicTrack8; -typedef interface IDirectMusicAudioPath IDirectMusicAudioPath; -#endif - -typedef enum enumDMUS_STYLET_TYPES -{ - DMUS_STYLET_PATTERN = 0, - DMUS_STYLET_MOTIF = 1, -} DMUS_STYLET_TYPES; - - -typedef enum enumDMUS_COMMANDT_TYPES -{ - DMUS_COMMANDT_GROOVE = 0, - DMUS_COMMANDT_FILL = 1, - DMUS_COMMANDT_INTRO = 2, - DMUS_COMMANDT_BREAK = 3, - DMUS_COMMANDT_END = 4, - DMUS_COMMANDT_ENDANDINTRO = 5 -} DMUS_COMMANDT_TYPES; - -typedef enum enumDMUS_SHAPET_TYPES -{ - DMUS_SHAPET_FALLING = 0, - DMUS_SHAPET_LEVEL = 1, - DMUS_SHAPET_LOOPABLE = 2, - DMUS_SHAPET_LOUD = 3, - DMUS_SHAPET_QUIET = 4, - DMUS_SHAPET_PEAKING = 5, - DMUS_SHAPET_RANDOM = 6, - DMUS_SHAPET_RISING = 7, - DMUS_SHAPET_SONG = 8 -} DMUS_SHAPET_TYPES; - -typedef enum enumDMUS_COMPOSEF_FLAGS -{ - DMUS_COMPOSEF_NONE = 0, - DMUS_COMPOSEF_ALIGN = 0x1, - DMUS_COMPOSEF_OVERLAP = 0x2, - DMUS_COMPOSEF_IMMEDIATE = 0x4, - DMUS_COMPOSEF_GRID = 0x8, - DMUS_COMPOSEF_BEAT = 0x10, - DMUS_COMPOSEF_MEASURE = 0x20, - DMUS_COMPOSEF_AFTERPREPARETIME = 0x40, - DMUS_COMPOSEF_VALID_START_BEAT = 0x80, /* In conjunction with DMUS_COMPOSEF_ALIGN, allows the switch to occur on any beat. */ - DMUS_COMPOSEF_VALID_START_GRID = 0x100, /* In conjunction with DMUS_COMPOSEF_ALIGN, allows the switch to occur on any grid. */ - DMUS_COMPOSEF_VALID_START_TICK = 0x200, /* In conjunction with DMUS_COMPOSEF_ALIGN, allows the switch to occur any time. */ - DMUS_COMPOSEF_SEGMENTEND = 0x400, /* Play the transition at the end of the current segment. */ - DMUS_COMPOSEF_MARKER = 0x800, /* Play the transition at the next marker in the current segment. */ - DMUS_COMPOSEF_MODULATE = 0x1000, - DMUS_COMPOSEF_LONG = 0x2000, - DMUS_COMPOSEF_ENTIRE_TRANSITION = 0x4000, /* play the entire transition pattern */ - DMUS_COMPOSEF_1BAR_TRANSITION = 0x8000, /* play one bar of the transition pattern */ - DMUS_COMPOSEF_ENTIRE_ADDITION = 0x10000, /* play the additional pattern in its entirety */ - DMUS_COMPOSEF_1BAR_ADDITION = 0x20000, /* play one bar of the additional pattern */ - DMUS_COMPOSEF_VALID_START_MEASURE = 0x40000, /* In conjunction with DMUS_COMPOSEF_ALIGN, allows the switch to occur on any bar. */ - DMUS_COMPOSEF_DEFAULT = 0x80000, /* Use segment's default boundary */ - DMUS_COMPOSEF_NOINVALIDATE = 0x100000, /* Play without invalidating the currently playing segment(s) */ - DMUS_COMPOSEF_USE_AUDIOPATH = 0x200000, /* Uses the audio paths that are embedded in the segments */ - DMUS_COMPOSEF_INVALIDATE_PRI = 0x400000 /* Invalidate only the current primary seg state */ -} DMUS_COMPOSEF_FLAGS; - -#define DMUS_PMSG_PART \ - DWORD dwSize; \ - REFERENCE_TIME rtTime; /* real time (in 100 nanosecond increments) */ \ - MUSIC_TIME mtTime; /* music time */ \ - DWORD dwFlags; /* various bits (see DMUS_PMSGF_FLAGS enumeration) */ \ - DWORD dwPChannel; /* Performance Channel. The Performance can */ \ - /* use this to determine the port/channel. */ \ - DWORD dwVirtualTrackID; /* virtual track ID */ \ - IDirectMusicTool* pTool; /* tool interface pointer */ \ - IDirectMusicGraph* pGraph; /* tool graph interface pointer */ \ - DWORD dwType; /* PMSG type (see DMUS_PMSGT_TYPES defines) */ \ - DWORD dwVoiceID; /* unique voice id which allows synthesizers to */ \ - /* identify a specific event. For DirectX 6.0, */ \ - /* this field should always be 0. */ \ - DWORD dwGroupID; /* Track group id */ \ - IUnknown* punkUser; /* user com pointer, auto released upon PMSG free */ - -/* every DMUS_PMSG is based off of this structure. The Performance needs - to access these members consistently in every PMSG that goes through it. */ -typedef struct _DMUS_PMSG -{ - /* begin DMUS_PMSG_PART */ - DMUS_PMSG_PART - /* end DMUS_PMSG_PART */ - -} DMUS_PMSG; - -#define DMUS_PCHANNEL_BROADCAST_PERFORMANCE 0xFFFFFFFF /* PMsg is sent on all PChannels of the performance. */ -#define DMUS_PCHANNEL_BROADCAST_AUDIOPATH 0xFFFFFFFE /* PMsg is sent on all PChannels of the audio path. */ -#define DMUS_PCHANNEL_BROADCAST_SEGMENT 0xFFFFFFFD /* PMsg is sent on all PChannels of the segment. */ -#define DMUS_PCHANNEL_BROADCAST_GROUPS 0xFFFFFFFC /* A duplicate PMsg is for each Channels Groups in the performance. */ - -/* The DMUS_PATH constants are used in conjunction with GetObjectInPath to find a requested - interface at a particular stage in the audio path. -*/ -#define DMUS_PATH_SEGMENT 0x1000 /* Get the segment itself (from a segment state.) */ -#define DMUS_PATH_SEGMENT_TRACK 0x1100 /* Look in Track List of Segment. */ -#define DMUS_PATH_SEGMENT_GRAPH 0x1200 /* Get the segment's tool graph. */ -#define DMUS_PATH_SEGMENT_TOOL 0x1300 /* Look in Tool Graph of Segment. */ -#define DMUS_PATH_AUDIOPATH 0x2000 /* Get the audiopath itself (from a segment state.) */ -#define DMUS_PATH_AUDIOPATH_GRAPH 0x2200 /* Get the audiopath's tool graph. */ -#define DMUS_PATH_AUDIOPATH_TOOL 0x2300 /* Look in Tool Graph of Audio Path. */ -#define DMUS_PATH_PERFORMANCE 0x3000 /* Access the performance. */ -#define DMUS_PATH_PERFORMANCE_GRAPH 0x3200 /* Get the performance's tool graph. */ -#define DMUS_PATH_PERFORMANCE_TOOL 0x3300 /* Look in Tool Graph of Performance. */ -#define DMUS_PATH_PORT 0x4000 /* Access the synth. */ -#define DMUS_PATH_BUFFER 0x6000 /* Look in DirectSoundBuffer. */ -#define DMUS_PATH_BUFFER_DMO 0x6100 /* Access a DMO in the buffer. */ -#define DMUS_PATH_MIXIN_BUFFER 0x7000 /* Look in a global mixin buffer. */ -#define DMUS_PATH_MIXIN_BUFFER_DMO 0x7100 /* Access a DMO in a global mixin buffer. */ -#define DMUS_PATH_PRIMARY_BUFFER 0x8000 /* Access the primary buffer. */ - -/* To ignore PChannels when calling GetObjectInPath(), use the DMUS_PCHANNEL_ALL constant. */ -#define DMUS_PCHANNEL_ALL 0xFFFFFFFB - -/* The DMUS_APATH types are used in conjunction with CreateStandardAudioPath to - build default path types. _SHARED_ means the same buffer is shared across multiple - instantiations of the audiopath type. _DYNAMIC_ means a unique buffer is created - every time. -*/ - -#define DMUS_APATH_SHARED_STEREOPLUSREVERB 1 /* A standard music set up with stereo outs and reverb. */ -#define DMUS_APATH_DYNAMIC_3D 6 /* An audio path with one dynamic bus from the synth feeding to a dynamic 3d buffer. Does not send to env reverb. */ -#define DMUS_APATH_DYNAMIC_MONO 7 /* An audio path with one dynamic bus from the synth feeding to a dynamic mono buffer. */ -#define DMUS_APATH_DYNAMIC_STEREO 8 /* An audio path with two dynamic buses from the synth feeding to a dynamic stereo buffer. */ - -typedef struct _DMUS_AUDIOPARAMS -{ - DWORD dwSize; /* Size of this structure. */ - BOOL fInitNow; /* If true, the sink and synth are created immediately and results returned in this structure. */ - DWORD dwValidData; /* Flags indicating which fields below are valid. */ - DWORD dwFeatures; /* Required DMUS_AUDIOF features. */ - DWORD dwVoices; /* Required number of voices. */ - DWORD dwSampleRate; /* Sample rate of synths and sink. */ - CLSID clsidDefaultSynth; /* Class ID of default synthesizer. */ -} DMUS_AUDIOPARAMS; - -/* dwFeatures flags. These indicate which features are required for the audio environment. */ -#define DMUS_AUDIOF_3D 0x1 /* Require 3D buffers. */ -#define DMUS_AUDIOF_ENVIRON 0x2 /* Require environmental modeling. */ -#define DMUS_AUDIOF_EAX 0x4 /* Require use of EAX effects. */ -#define DMUS_AUDIOF_DMOS 0x8 /* Require use of additional DMOs. */ -#define DMUS_AUDIOF_STREAMING 0x10 /* Require support for streaming waves. */ -#define DMUS_AUDIOF_BUFFERS 0x20 /* Require support for multiple buffers (all above cases need this.) */ -#define DMUS_AUDIOF_ALL 0x3F /* Requires everything. */ - -/* dwValidData flags. These indicate which fields in DMUS_AUDIOPARAMS have been filled in. If fInitNow is set, these also return what was allocated. */ -#define DMUS_AUDIOPARAMS_FEATURES 0x00000001 -#define DMUS_AUDIOPARAMS_VOICES 0x00000002 -#define DMUS_AUDIOPARAMS_SAMPLERATE 0x00000004 -#define DMUS_AUDIOPARAMS_DEFAULTSYNTH 0x00000008 - -/* DMUS_PMSGF_FLAGS fill the DMUS_PMSG's dwFlags member */ -typedef enum enumDMUS_PMSGF_FLAGS -{ - DMUS_PMSGF_REFTIME = 1, /* if rtTime is valid */ - DMUS_PMSGF_MUSICTIME = 2, /* if mtTime is valid */ - DMUS_PMSGF_TOOL_IMMEDIATE = 4, /* if PMSG should be processed immediately */ - DMUS_PMSGF_TOOL_QUEUE = 8, /* if PMSG should be processed a little early, at Queue time */ - DMUS_PMSGF_TOOL_ATTIME = 0x10, /* if PMSG should be processed at the time stamp */ - DMUS_PMSGF_TOOL_FLUSH = 0x20, /* if PMSG is being flushed */ - DMUS_PMSGF_LOCKTOREFTIME = 0x40, /* if rtTime can not be overriden by a tempo change. */ - DMUS_PMSGF_DX8 = 0x80 /* if the message has DX8 or later extensions. */ - /* The values of DMUS_TIME_RESOLVE_FLAGS may also be used inside the */ - /* DMUS_PMSG's dwFlags member. */ -} DMUS_PMSGF_FLAGS; - -/* DMUS_PMSGT_TYPES fill the DMUS_PMSG's dwType member */ -typedef enum enumDMUS_PMSGT_TYPES -{ - DMUS_PMSGT_MIDI = 0, /* MIDI short message */ - DMUS_PMSGT_NOTE = 1, /* Interactive Music Note */ - DMUS_PMSGT_SYSEX = 2, /* MIDI long message (system exclusive message) */ - DMUS_PMSGT_NOTIFICATION = 3, /* Notification message */ - DMUS_PMSGT_TEMPO = 4, /* Tempo message */ - DMUS_PMSGT_CURVE = 5, /* Control change / pitch bend, etc. curve */ - DMUS_PMSGT_TIMESIG = 6, /* Time signature */ - DMUS_PMSGT_PATCH = 7, /* Patch changes */ - DMUS_PMSGT_TRANSPOSE = 8, /* Transposition messages */ - DMUS_PMSGT_CHANNEL_PRIORITY = 9, /* Channel priority */ - DMUS_PMSGT_STOP = 10, /* Stop message */ - DMUS_PMSGT_DIRTY = 11, /* Tells Tools that cache GetParam() info to refresh */ - DMUS_PMSGT_WAVE = 12, /* Carries control information for playing a wave. */ - DMUS_PMSGT_LYRIC = 13, /* Lyric message from lyric track. */ - DMUS_PMSGT_SCRIPTLYRIC = 14, /* Lyric message sent by a script with the Trace function. */ - DMUS_PMSGT_USER = 255 /* User message */ -} DMUS_PMSGT_TYPES; - -/* DMUS_SEGF_FLAGS correspond to IDirectMusicPerformance::PlaySegment, and other API */ -typedef enum enumDMUS_SEGF_FLAGS -{ - DMUS_SEGF_REFTIME = 1<<6, /* 0x40 Time parameter is in reference time */ - DMUS_SEGF_SECONDARY = 1<<7, /* 0x80 Secondary segment */ - DMUS_SEGF_QUEUE = 1<<8, /* 0x100 Queue at the end of the primary segment queue (primary only) */ - DMUS_SEGF_CONTROL = 1<<9, /* 0x200 Play as a control track (secondary segments only) */ - DMUS_SEGF_AFTERPREPARETIME = 1<<10, /* 0x400 Play after the prepare time (See IDirectMusicPerformance::GetPrepareTime) */ - DMUS_SEGF_GRID = 1<<11, /* 0x800 Play on grid boundary */ - DMUS_SEGF_BEAT = 1<<12, /* 0x1000 Play on beat boundary */ - DMUS_SEGF_MEASURE = 1<<13, /* 0x2000 Play on measure boundary */ - DMUS_SEGF_DEFAULT = 1<<14, /* 0x4000 Use segment's default boundary */ - DMUS_SEGF_NOINVALIDATE = 1<<15, /* 0x8000 Play without invalidating the currently playing segment(s) */ - DMUS_SEGF_ALIGN = 1<<16, /* 0x10000 Align segment with requested boundary, but switch at first valid point */ - DMUS_SEGF_VALID_START_BEAT = 1<<17, /* 0x20000 In conjunction with DMUS_SEGF_ALIGN, allows the switch to occur on any beat. */ - DMUS_SEGF_VALID_START_GRID = 1<<18, /* 0x40000 In conjunction with DMUS_SEGF_ALIGN, allows the switch to occur on any grid. */ - DMUS_SEGF_VALID_START_TICK = 1<<19, /* 0x80000 In conjunction with DMUS_SEGF_ALIGN, allows the switch to occur any time. */ - DMUS_SEGF_AUTOTRANSITION = 1<<20, /* 0x100000 Compose and play a transition segment, using the transition template. */ - DMUS_SEGF_AFTERQUEUETIME = 1<<21, /* 0x200000 Make sure to play after the queue time. This is default for primary segments */ - DMUS_SEGF_AFTERLATENCYTIME = 1<<22, /* 0x400000 Make sure to play after the latency time. This is true for all segments, so this is a nop */ - DMUS_SEGF_SEGMENTEND = 1<<23, /* 0x800000 Play at the next end of segment. */ - DMUS_SEGF_MARKER = 1<<24, /* 0x1000000 Play at next marker in the primary segment. If there are no markers, default to any other resolution requests. */ - DMUS_SEGF_TIMESIG_ALWAYS = 1<<25, /* 0x2000000 Even if there is no primary segment, align start time with current time signature. */ - DMUS_SEGF_USE_AUDIOPATH = 1<<26, /* 0x4000000 Uses the audio path that is embedded in the segment. */ - DMUS_SEGF_VALID_START_MEASURE = 1<<27, /* 0x8000000 In conjunction with DMUS_SEGF_ALIGN, allows the switch to occur on any bar. */ - DMUS_SEGF_INVALIDATE_PRI = 1<<28 /* 0x10000000 invalidate only the current primary seg state */ -} DMUS_SEGF_FLAGS; - -#define DMUS_SEG_REPEAT_INFINITE 0xFFFFFFFF /* For IDirectMusicSegment::SetRepeat*/ -#define DMUS_SEG_ALLTRACKS 0x80000000 /* For IDirectMusicSegment::SetParam() and SetTrackConfig() - selects all tracks instead on nth index. */ -#define DMUS_SEG_ANYTRACK 0x80000000 /* For IDirectMusicSegment::GetParam() - checks each track until it finds one that returns data (not DMUS_E_NOT_FOUND.) */ - - -/* DMUS_TIME_RESOLVE_FLAGS correspond to IDirectMusicPerformance::GetResolvedTime, and can */ -/* also be used interchangeably with the corresponding DMUS_SEGF_FLAGS, since their values */ -/* are intentionally the same */ -typedef enum enumDMUS_TIME_RESOLVE_FLAGS -{ - DMUS_TIME_RESOLVE_AFTERPREPARETIME = DMUS_SEGF_AFTERPREPARETIME, - DMUS_TIME_RESOLVE_AFTERQUEUETIME = DMUS_SEGF_AFTERQUEUETIME, - DMUS_TIME_RESOLVE_AFTERLATENCYTIME = DMUS_SEGF_AFTERLATENCYTIME, - DMUS_TIME_RESOLVE_GRID = DMUS_SEGF_GRID, - DMUS_TIME_RESOLVE_BEAT = DMUS_SEGF_BEAT, - DMUS_TIME_RESOLVE_MEASURE = DMUS_SEGF_MEASURE, - DMUS_TIME_RESOLVE_MARKER = DMUS_SEGF_MARKER, - DMUS_TIME_RESOLVE_SEGMENTEND = DMUS_SEGF_SEGMENTEND, -} DMUS_TIME_RESOLVE_FLAGS; - -/* The following flags are sent inside the DMUS_CHORD_KEY.dwFlags parameter */ -typedef enum enumDMUS_CHORDKEYF_FLAGS -{ - DMUS_CHORDKEYF_SILENT = 1, /* is the chord silent? */ -} DMUS_CHORDKEYF_FLAGS; - -#define DMUS_MAXSUBCHORD 8 - -typedef struct _DMUS_SUBCHORD -{ - DWORD dwChordPattern; /* Notes in the subchord */ - DWORD dwScalePattern; /* Notes in the scale */ - DWORD dwInversionPoints; /* Where inversions can occur */ - DWORD dwLevels; /* Which levels are supported by this subchord */ - BYTE bChordRoot; /* Root of the subchord */ - BYTE bScaleRoot; /* Root of the scale */ -} DMUS_SUBCHORD; - -typedef struct _DMUS_CHORD_KEY -{ - WCHAR wszName[16]; /* Name of the chord */ - WORD wMeasure; /* Measure this falls on */ - BYTE bBeat; /* Beat this falls on */ - BYTE bSubChordCount; /* Number of chords in the list of subchords */ - DMUS_SUBCHORD SubChordList[DMUS_MAXSUBCHORD]; /* List of sub chords */ - DWORD dwScale; /* Scale underlying the entire chord */ - BYTE bKey; /* Key underlying the entire chord */ - BYTE bFlags; /* Miscelaneous flags */ -} DMUS_CHORD_KEY; - -/* DMUS_NOTE_PMSG */ -typedef struct _DMUS_NOTE_PMSG -{ - /* begin DMUS_PMSG_PART */ - DMUS_PMSG_PART - /* end DMUS_PMSG_PART */ - - MUSIC_TIME mtDuration; /* duration */ - WORD wMusicValue; /* Description of note in chord and key. */ - WORD wMeasure; /* Measure in which this note occurs */ - short nOffset; /* Offset from grid at which this note occurs */ - BYTE bBeat; /* Beat (in measure) at which this note occurs */ - BYTE bGrid; /* Grid offset from beat at which this note occurs */ - BYTE bVelocity; /* Note velocity */ - BYTE bFlags; /* see DMUS_NOTEF_FLAGS */ - BYTE bTimeRange; /* Range to randomize time. */ - BYTE bDurRange; /* Range to randomize duration. */ - BYTE bVelRange; /* Range to randomize velocity. */ - BYTE bPlayModeFlags; /* Play mode */ - BYTE bSubChordLevel; /* Which subchord level this note uses. */ - BYTE bMidiValue; /* The MIDI note value, converted from wMusicValue */ - char cTranspose; /* Transposition to add to midi note value after converted from wMusicValue. */ -} DMUS_NOTE_PMSG; - -typedef enum enumDMUS_NOTEF_FLAGS -{ - DMUS_NOTEF_NOTEON = 1, /* Set if this is a MIDI Note On. Otherwise, it is MIDI Note Off */ - /* DX8 flags: */ - DMUS_NOTEF_NOINVALIDATE = 2, /* Don't invalidate this note off. */ - DMUS_NOTEF_NOINVALIDATE_INSCALE = 4,/* Don't invalidate if still within the scale. */ - DMUS_NOTEF_NOINVALIDATE_INCHORD = 8,/* Don't invalidate if still within the chord. */ - DMUS_NOTEF_REGENERATE = 0x10, /* Regenerate the note on an invalidate. */ -} DMUS_NOTEF_FLAGS; - -/* The DMUS_PLAYMODE_FLAGS are used to determine how to convert wMusicValue - into the appropriate bMidiValue. -*/ - -typedef enum enumDMUS_PLAYMODE_FLAGS -{ - DMUS_PLAYMODE_KEY_ROOT = 1, /* Transpose on top of the key root. */ - DMUS_PLAYMODE_CHORD_ROOT = 2, /* Transpose on top of the chord root. */ - DMUS_PLAYMODE_SCALE_INTERVALS = 4, /* Use scale intervals from scale pattern. */ - DMUS_PLAYMODE_CHORD_INTERVALS = 8, /* Use chord intervals from chord pattern. */ - DMUS_PLAYMODE_NONE = 16, /* No mode. Indicates the parent part's mode should be used. */ -} DMUS_PLAYMODE_FLAGS; - -/* The following are playback modes that can be created by combining the DMUS_PLAYMODE_FLAGS - in various ways: -*/ - -/* Fixed. wMusicValue holds final MIDI note value. This is used for drums, sound effects, and sequenced - notes that should not be transposed by the chord or scale. -*/ -#define DMUS_PLAYMODE_FIXED 0 -/* In fixed to key, the musicvalue is again a fixed MIDI value, but it - is transposed on top of the key root. -*/ -#define DMUS_PLAYMODE_FIXEDTOKEY DMUS_PLAYMODE_KEY_ROOT -/* In fixed to chord, the musicvalue is also a fixed MIDI value, but it - is transposed on top of the chord root. -*/ -#define DMUS_PLAYMODE_FIXEDTOCHORD DMUS_PLAYMODE_CHORD_ROOT -/* In Pedalpoint, the key root is used and the notes only track the intervals in - the scale. The chord root and intervals are completely ignored. This is useful - for melodic lines that play relative to the key root. -*/ -#define DMUS_PLAYMODE_PEDALPOINT (DMUS_PLAYMODE_KEY_ROOT | DMUS_PLAYMODE_SCALE_INTERVALS) -/* In the Melodic mode, the chord root is used but the notes only track the intervals in - the scale. The key root and chord intervals are completely ignored. This is useful - for melodic lines that play relative to the chord root. -*/ -#define DMUS_PLAYMODE_MELODIC (DMUS_PLAYMODE_CHORD_ROOT | DMUS_PLAYMODE_SCALE_INTERVALS) -/* Normal chord mode is the prevalent playback mode. - The notes track the intervals in the chord, which is based on the chord root. - If there is a scale component to the MusicValue, the additional intervals - are pulled from the scale and added. - If the chord does not have an interval to match the chord component of - the MusicValue, the note is silent. -*/ -#define DMUS_PLAYMODE_NORMALCHORD (DMUS_PLAYMODE_CHORD_ROOT | DMUS_PLAYMODE_CHORD_INTERVALS) -/* If it is desirable to play a note that is above the top of the chord, the - always play mode (known as "purpleized" in a former life) finds a position - for the note by using intervals from the scale. Essentially, this mode is - a combination of the Normal and Melodic playback modes, where a failure - in Normal causes a second try in Melodic mode. -*/ -#define DMUS_PLAYMODE_ALWAYSPLAY (DMUS_PLAYMODE_MELODIC | DMUS_PLAYMODE_NORMALCHORD) - -/* These playmodes are new for dx8. */ -/* In PedalpointChord, the key root is used and the notes only track the intervals in - the chord. The chord root and scale intervals are completely ignored. This is useful - for chordal lines that play relative to the key root. -*/ -#define DMUS_PLAYMODE_PEDALPOINTCHORD (DMUS_PLAYMODE_KEY_ROOT | DMUS_PLAYMODE_CHORD_INTERVALS) - -/* For completeness, here's a mode that tries for pedalpointchord, but if it fails - uses scale intervals -*/ -#define DMUS_PLAYMODE_PEDALPOINTALWAYS (DMUS_PLAYMODE_PEDALPOINT | DMUS_PLAYMODE_PEDALPOINTCHORD) - - -/* Legacy names for modes... */ -#define DMUS_PLAYMODE_PURPLEIZED DMUS_PLAYMODE_ALWAYSPLAY -#define DMUS_PLAYMODE_SCALE_ROOT DMUS_PLAYMODE_KEY_ROOT -#define DMUS_PLAYMODE_FIXEDTOSCALE DMUS_PLAYMODE_FIXEDTOKEY - - -/* DMUS_MIDI_PMSG */ -typedef struct _DMUS_MIDI_PMSG -{ - /* begin DMUS_PMSG_PART */ - DMUS_PMSG_PART - /* end DMUS_PMSG_PART */ - - BYTE bStatus; - BYTE bByte1; - BYTE bByte2; - BYTE bPad[1]; -} DMUS_MIDI_PMSG; - -/* DMUS_PATCH_PMSG */ -typedef struct _DMUS_PATCH_PMSG -{ - /* begin DMUS_PMSG_PART */ - DMUS_PMSG_PART - /* end DMUS_PMSG_PART */ - - BYTE byInstrument; - BYTE byMSB; - BYTE byLSB; - BYTE byPad[1]; -} DMUS_PATCH_PMSG; - -/* DMUS_TRANSPOSE_PMSG */ -typedef struct _DMUS_TRANSPOSE_PMSG -{ - /* begin DMUS_PMSG_PART */ - DMUS_PMSG_PART - /* end DMUS_PMSG_PART */ - - short nTranspose; - /* Following exists only under DX8 and on (check dwFlags for DMUS_PMSGF_DX8) */ - WORD wMergeIndex; /* Allows multiple parameters to be merged (pitchbend, volume, and expression.)*/ -} DMUS_TRANSPOSE_PMSG; - -/* DMUS_CHANNEL_PRIORITY_PMSG */ -typedef struct _DMUS_CHANNEL_PRIORITY_PMSG -{ - /* begin DMUS_PMSG_PART */ - DMUS_PMSG_PART - /* end DMUS_PMSG_PART */ - - DWORD dwChannelPriority; -} DMUS_CHANNEL_PRIORITY_PMSG; - -/* DMUS_TEMPO_PMSG */ -typedef struct _DMUS_TEMPO_PMSG -{ - /* begin DMUS_PMSG_PART */ - DMUS_PMSG_PART - /* end DMUS_PMSG_PART */ - - double dblTempo; /* the tempo */ -} DMUS_TEMPO_PMSG; - -#define DMUS_TEMPO_MAX 1000 -#define DMUS_TEMPO_MIN 1 - -#define DMUS_MASTERTEMPO_MAX 100.0f -#define DMUS_MASTERTEMPO_MIN 0.01f - -/* DMUS_SYSEX_PMSG */ -typedef struct _DMUS_SYSEX_PMSG -{ - /* begin DMUS_PMSG_PART */ - DMUS_PMSG_PART - /* end DMUS_PMSG_PART */ - - DWORD dwLen; /* length of the data */ - BYTE abData[1]; /* array of data, length equal to dwLen */ -} DMUS_SYSEX_PMSG; - -/* DMUS_CURVE_PMSG */ -typedef struct _DMUS_CURVE_PMSG -{ - /* begin DMUS_PMSG_PART */ - DMUS_PMSG_PART - /* end DMUS_PMSG_PART */ - - MUSIC_TIME mtDuration; /* how long this curve lasts */ - MUSIC_TIME mtOriginalStart; /* must be set to either zero when this PMSG is created or to the original mtTime of the curve */ - MUSIC_TIME mtResetDuration; /* how long after the curve is finished to allow a flush or - invalidation to reset to the reset value, nResetValue */ - short nStartValue; /* curve's start value */ - short nEndValue; /* curve's end value */ - short nResetValue; /* curve's reset value, set when a flush or invalidation - occurs within mtDuration + mtResetDuration */ - WORD wMeasure; /* Measure in which this curve occurs */ - short nOffset; /* Offset from grid at which this curve occurs */ - BYTE bBeat; /* Beat (in measure) at which this curve occurs */ - BYTE bGrid; /* Grid offset from beat at which this curve occurs */ - BYTE bType; /* type of curve */ - BYTE bCurveShape; /* shape of curve */ - BYTE bCCData; /* CC# if this is a control change type */ - BYTE bFlags; /* Curve reset and start from current value flags. */ - /* Following exists only under DX8 and on (check dwFlags for DMUS_PMSGF_DX8) */ - WORD wParamType; /* RPN or NRPN parameter number. */ - WORD wMergeIndex; /* Allows multiple parameters to be merged (pitchbend, volume, and expression.)*/ -} DMUS_CURVE_PMSG; - -typedef enum enumDMUS_CURVE_FLAGS -{ - DMUS_CURVE_RESET = 1, /* When set, the nResetValue must be sent when the - time is reached or an invalidate occurs because - of a transition. If not set, the curve stays - permanently stuck at the new value. */ - DMUS_CURVE_START_FROM_CURRENT = 2/* Ignore Start, start the curve at the current value. - This only works for volume, expression, and pitchbend. */ -} DMUS_CURVE_FLAGS; - - -#define DMUS_CURVE_RESET 1 - -/* Curve shapes */ -enum -{ - DMUS_CURVES_LINEAR = 0, - DMUS_CURVES_INSTANT = 1, - DMUS_CURVES_EXP = 2, - DMUS_CURVES_LOG = 3, - DMUS_CURVES_SINE = 4 -}; -/* curve types */ -#define DMUS_CURVET_PBCURVE 0x03 /* Pitch bend curve. */ -#define DMUS_CURVET_CCCURVE 0x04 /* Control change curve. */ -#define DMUS_CURVET_MATCURVE 0x05 /* Mono aftertouch curve. */ -#define DMUS_CURVET_PATCURVE 0x06 /* Poly aftertouch curve. */ -#define DMUS_CURVET_RPNCURVE 0x07 /* RPN curve with curve type in wParamType. */ -#define DMUS_CURVET_NRPNCURVE 0x08 /* NRPN curve with curve type in wParamType. */ - -/* DMUS_TIMESIG_PMSG */ -typedef struct _DMUS_TIMESIG_PMSG -{ - /* begin DMUS_PMSG_PART */ - DMUS_PMSG_PART - /* end DMUS_PMSG_PART */ - - /* Time signatures define how many beats per measure, which note receives */ - /* the beat, and the grid resolution. */ - BYTE bBeatsPerMeasure; /* beats per measure (top of time sig) */ - BYTE bBeat; /* what note receives the beat (bottom of time sig.) */ - /* we can assume that 0 means 256th note */ - WORD wGridsPerBeat; /* grids per beat */ -} DMUS_TIMESIG_PMSG; - - - -/* notification type values */ -/* The following correspond to GUID_NOTIFICATION_SEGMENT */ -#define DMUS_NOTIFICATION_SEGSTART 0 -#define DMUS_NOTIFICATION_SEGEND 1 -#define DMUS_NOTIFICATION_SEGALMOSTEND 2 -#define DMUS_NOTIFICATION_SEGLOOP 3 -#define DMUS_NOTIFICATION_SEGABORT 4 -/* The following correspond to GUID_NOTIFICATION_PERFORMANCE */ -#define DMUS_NOTIFICATION_MUSICSTARTED 0 -#define DMUS_NOTIFICATION_MUSICSTOPPED 1 -#define DMUS_NOTIFICATION_MUSICALMOSTEND 2 -/* The following corresponds to GUID_NOTIFICATION_MEASUREANDBEAT */ -#define DMUS_NOTIFICATION_MEASUREBEAT 0 -/* The following corresponds to GUID_NOTIFICATION_CHORD */ -#define DMUS_NOTIFICATION_CHORD 0 -/* The following correspond to GUID_NOTIFICATION_COMMAND */ -#define DMUS_NOTIFICATION_GROOVE 0 -#define DMUS_NOTIFICATION_EMBELLISHMENT 1 -/* The following corresponds to GUID_NOTIFICATION_RECOMPOSE */ -#define DMUS_NOTIFICATION_RECOMPOSE 0 - -/* DMUS_NOTIFICATION_PMSG */ -typedef struct _DMUS_NOTIFICATION_PMSG -{ - /* begin DMUS_PMSG_PART */ - DMUS_PMSG_PART - /* end DMUS_PMSG_PART */ - - GUID guidNotificationType; - DWORD dwNotificationOption; - DWORD dwField1; - DWORD dwField2; -} DMUS_NOTIFICATION_PMSG; - -/* DMUS_WAVE_PMSG */ -typedef struct _DMUS_WAVE_PMSG -{ - /* begin DMUS_PMSG_PART */ - DMUS_PMSG_PART - /* end DMUS_PMSG_PART */ - - REFERENCE_TIME rtStartOffset; /* How far into the wave to start, in reference time units only. */ - REFERENCE_TIME rtDuration; /* Duration of the wave, in either reference time or music time. */ - long lOffset; /* Offset from actual time to logical time, in music or ref time. */ - long lVolume; /* Initial volume, in 100ths of a dB. */ - long lPitch; /* Initial pitch, in 100ths of a semitone. */ - BYTE bFlags; /* Flags, including DMUS_WAVEF_OFF... */ -} DMUS_WAVE_PMSG; - -#define DMUS_WAVEF_OFF 1 /* If wave is playing and this is the off message. */ -#define DMUS_WAVEF_STREAMING 2 /* If wave is streaming. */ -#define DMUS_WAVEF_NOINVALIDATE 4 /* Don't invalidate this wave. */ -#define DMUS_WAVEF_NOPREROLL 8 /* Don't preroll any wave data. */ -#define DMUS_WAVEF_IGNORELOOPS 0x20 /* Ignore segment looping. */ - -/* DMUS_LYRIC_PMSG */ -typedef struct _DMUS_LYRIC_PMSG -{ - /* begin DMUS_PMSG_PART */ - DMUS_PMSG_PART - /* end DMUS_PMSG_PART */ - - WCHAR wszString[1]; /* null-terminated Unicode lyric string (structure is actually larger than size 1) */ -} DMUS_LYRIC_PMSG; - -#define DMUS_MAX_NAME 64 /* Maximum object name length. */ -#define DMUS_MAX_CATEGORY 64 /* Maximum object category name length. */ -#define DMUS_MAX_FILENAME MAX_PATH - -typedef struct _DMUS_VERSION { - DWORD dwVersionMS; - DWORD dwVersionLS; -}DMUS_VERSION, FAR *LPDMUS_VERSION; - -/* Time Signature structure, used by IDirectMusicStyle */ -/* Also used as a parameter for GetParam() and SetParam */ -typedef struct _DMUS_TIMESIGNATURE -{ - MUSIC_TIME mtTime; - BYTE bBeatsPerMeasure; /* beats per measure (top of time sig) */ - BYTE bBeat; /* what note receives the beat (bottom of time sig.) */ - /* we can assume that 0 means 256th note */ - WORD wGridsPerBeat; /* grids per beat */ -} DMUS_TIMESIGNATURE; - -typedef struct _DMUS_VALID_START_PARAM -{ - MUSIC_TIME mtTime; /* Time of the first legal start - point after (or including) the requested time. - This is a returned value. - Time format is the relative offset from requested time. */ -} DMUS_VALID_START_PARAM; - -typedef struct _DMUS_PLAY_MARKER_PARAM -{ - MUSIC_TIME mtTime; /* Time of the first legal segment play - marker before (or including) the requested time. - This is a returned value. - Time format is the relative offset from requested time. */ -} DMUS_PLAY_MARKER_PARAM; - -/* The DMUSOBJECTDESC structure is used to communicate everything you could */ -/* possibly use to describe a DirectMusic object. */ - -typedef struct _DMUS_OBJECTDESC -{ - DWORD dwSize; /* Size of this structure. */ - DWORD dwValidData; /* Flags indicating which fields below are valid. */ - GUID guidObject; /* Unique ID for this object. */ - GUID guidClass; /* GUID for the class of object. */ - FILETIME ftDate; /* Last edited date of object. */ - DMUS_VERSION vVersion; /* Version. */ - WCHAR wszName[DMUS_MAX_NAME]; /* Name of object. */ - WCHAR wszCategory[DMUS_MAX_CATEGORY]; /* Category for object (optional). */ - WCHAR wszFileName[DMUS_MAX_FILENAME]; /* File path. */ - LONGLONG llMemLength; /* Size of Memory data. */ - LPBYTE pbMemData; /* Memory pointer for data. */ - IStream * pStream; /* Stream with data. */ -} DMUS_OBJECTDESC; - -typedef DMUS_OBJECTDESC *LPDMUS_OBJECTDESC; - -/* Flags for dwValidData. When set, a flag indicates that the */ -/* corresponding field in DMUSOBJECTDESC holds valid data. */ - -#define DMUS_OBJ_OBJECT (1 << 0) /* Object GUID is valid. */ -#define DMUS_OBJ_CLASS (1 << 1) /* Class GUID is valid. */ -#define DMUS_OBJ_NAME (1 << 2) /* Name is valid. */ -#define DMUS_OBJ_CATEGORY (1 << 3) /* Category is valid. */ -#define DMUS_OBJ_FILENAME (1 << 4) /* File path is valid. */ -#define DMUS_OBJ_FULLPATH (1 << 5) /* Path is full path. */ -#define DMUS_OBJ_URL (1 << 6) /* Path is URL. */ -#define DMUS_OBJ_VERSION (1 << 7) /* Version is valid. */ -#define DMUS_OBJ_DATE (1 << 8) /* Date is valid. */ -#define DMUS_OBJ_LOADED (1 << 9) /* Object is currently loaded in memory. */ -#define DMUS_OBJ_MEMORY (1 << 10) /* Object is pointed to by pbMemData. */ -#define DMUS_OBJ_STREAM (1 << 11) /* Object is stored in pStream. */ - -/* The DMUS_SCRIPT_ERRORINFO structure describes an error that occurred in a script. - It is returned by methods in IDirectMusicScript. */ -typedef struct _DMUS_SCRIPT_ERRORINFO -{ - DWORD dwSize; /* Size of this structure. */ - HRESULT hr; - ULONG ulLineNumber; - LONG ichCharPosition; - WCHAR wszSourceFile[DMUS_MAX_FILENAME]; - WCHAR wszSourceComponent[DMUS_MAX_FILENAME]; - WCHAR wszDescription[DMUS_MAX_FILENAME]; - WCHAR wszSourceLineText[DMUS_MAX_FILENAME]; -} DMUS_SCRIPT_ERRORINFO; - -/* Track configuration flags, used with IDirectMusicSegment8::SetTrackConfig() */ - -#define DMUS_TRACKCONFIG_OVERRIDE_ALL 1 /* This track should get parameters from this segment before controlling and primary tracks. */ -#define DMUS_TRACKCONFIG_OVERRIDE_PRIMARY 2 /* This track should get parameters from this segment before the primary segment tracks. */ -#define DMUS_TRACKCONFIG_FALLBACK 4 /* This track should get parameters from this segment if the primary and controlling segments don't succeed. */ -#define DMUS_TRACKCONFIG_CONTROL_ENABLED 8 /* GetParam() enabled for this track. */ -#define DMUS_TRACKCONFIG_PLAY_ENABLED 0x10 /* Play() enabled for this track. */ -#define DMUS_TRACKCONFIG_NOTIFICATION_ENABLED 0x20 /* Notifications enabled for this track. */ -#define DMUS_TRACKCONFIG_PLAY_CLOCKTIME 0x40 /* This track plays in clock time, not music time. */ -#define DMUS_TRACKCONFIG_PLAY_COMPOSE 0x80 /* This track should regenerate data each time it starts playing. */ -#define DMUS_TRACKCONFIG_LOOP_COMPOSE 0x100 /* This track should regenerate data each time it repeats. */ -#define DMUS_TRACKCONFIG_COMPOSING 0x200 /* This track is used to compose other tracks. */ -#define DMUS_TRACKCONFIG_CONTROL_PLAY 0x10000 /* This track, when played in a controlling segment, overrides playback of primary segment tracks. */ -#define DMUS_TRACKCONFIG_CONTROL_NOTIFICATION 0x20000 /* This track, when played in a controlling segment, overrides notification of primary segment tracks. */ -/* Additional track config flags for composing transitions */ -#define DMUS_TRACKCONFIG_TRANS1_FROMSEGSTART 0x400 /* Get track info from start of From segment */ -#define DMUS_TRACKCONFIG_TRANS1_FROMSEGCURRENT 0x800 /* Get track info from current place in From segment */ -#define DMUS_TRACKCONFIG_TRANS1_TOSEGSTART 0x1000 /* Get track info from start of To segment */ -#define DMUS_TRACKCONFIG_DEFAULT (DMUS_TRACKCONFIG_CONTROL_ENABLED | DMUS_TRACKCONFIG_PLAY_ENABLED | DMUS_TRACKCONFIG_NOTIFICATION_ENABLED) - -/* Get/SetParam structs for commands */ -/* PARAM structures, used by GetParam() and SetParam() */ -typedef struct _DMUS_COMMAND_PARAM -{ - BYTE bCommand; - BYTE bGrooveLevel; - BYTE bGrooveRange; - BYTE bRepeatMode; -} DMUS_COMMAND_PARAM; - -typedef struct _DMUS_COMMAND_PARAM_2 -{ - MUSIC_TIME mtTime; - BYTE bCommand; - BYTE bGrooveLevel; - BYTE bGrooveRange; - BYTE bRepeatMode; -} DMUS_COMMAND_PARAM_2; - -typedef IDirectMusicObject __RPC_FAR *LPDMUS_OBJECT; -typedef IDirectMusicLoader __RPC_FAR *LPDMUS_LOADER; -typedef IDirectMusicBand __RPC_FAR *LPDMUS_BAND; - -#define DMUSB_LOADED (1 << 0) /* Set when band has been loaded */ -#define DMUSB_DEFAULT (1 << 1) /* Set when band is default band for a style */ - -/*//////////////////////////////////////////////////////////////////// -// IDirectMusicBand */ -#undef INTERFACE -#define INTERFACE IDirectMusicBand -DECLARE_INTERFACE_(IDirectMusicBand, IUnknown) -{ - /* IUnknown */ - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - /* IDirectMusicBand */ - STDMETHOD(CreateSegment) (THIS_ IDirectMusicSegment** ppSegment) PURE; - STDMETHOD(Download) (THIS_ IDirectMusicPerformance* pPerformance) PURE; - STDMETHOD(Unload) (THIS_ IDirectMusicPerformance* pPerformance) PURE; -}; - -typedef IDirectMusicBand IDirectMusicBand8; - -/*//////////////////////////////////////////////////////////////////// -// IDirectMusicObject */ -#undef INTERFACE -#define INTERFACE IDirectMusicObject -DECLARE_INTERFACE_(IDirectMusicObject, IUnknown) -{ - /* IUnknown */ - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - /* IDirectMusicObject */ - STDMETHOD(GetDescriptor) (THIS_ LPDMUS_OBJECTDESC pDesc) PURE; - STDMETHOD(SetDescriptor) (THIS_ LPDMUS_OBJECTDESC pDesc) PURE; - STDMETHOD(ParseDescriptor) (THIS_ LPSTREAM pStream, - LPDMUS_OBJECTDESC pDesc) PURE; -}; - -typedef IDirectMusicObject IDirectMusicObject8; - -/*//////////////////////////////////////////////////////////////////// -// IDirectMusicLoader */ -#undef INTERFACE -#define INTERFACE IDirectMusicLoader -DECLARE_INTERFACE_(IDirectMusicLoader, IUnknown) -{ - /* IUnknown */ - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - /* IDirectMusicLoader */ - STDMETHOD(GetObject) (THIS_ LPDMUS_OBJECTDESC pDesc, - REFIID riid, - LPVOID FAR *ppv) PURE; - STDMETHOD(SetObject) (THIS_ LPDMUS_OBJECTDESC pDesc) PURE; - STDMETHOD(SetSearchDirectory) (THIS_ REFGUID rguidClass, - WCHAR *pwzPath, - BOOL fClear) PURE; - STDMETHOD(ScanDirectory) (THIS_ REFGUID rguidClass, - WCHAR *pwzFileExtension, - WCHAR *pwzScanFileName) PURE; - STDMETHOD(CacheObject) (THIS_ IDirectMusicObject * pObject) PURE; - STDMETHOD(ReleaseObject) (THIS_ IDirectMusicObject * pObject) PURE; - STDMETHOD(ClearCache) (THIS_ REFGUID rguidClass) PURE; - STDMETHOD(EnableCache) (THIS_ REFGUID rguidClass, - BOOL fEnable) PURE; - STDMETHOD(EnumObject) (THIS_ REFGUID rguidClass, - DWORD dwIndex, - LPDMUS_OBJECTDESC pDesc) PURE; -}; - -/*//////////////////////////////////////////////////////////////////// -// IDirectMusicLoader8 */ -#undef INTERFACE -#define INTERFACE IDirectMusicLoader8 -DECLARE_INTERFACE_(IDirectMusicLoader8, IDirectMusicLoader) -{ - /* IUnknown */ - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - /* IDirectMusicLoader */ - STDMETHOD(GetObject) (THIS_ LPDMUS_OBJECTDESC pDesc, - REFIID riid, - LPVOID FAR *ppv) PURE; - STDMETHOD(SetObject) (THIS_ LPDMUS_OBJECTDESC pDesc) PURE; - STDMETHOD(SetSearchDirectory) (THIS_ REFGUID rguidClass, - WCHAR *pwzPath, - BOOL fClear) PURE; - STDMETHOD(ScanDirectory) (THIS_ REFGUID rguidClass, - WCHAR *pwzFileExtension, - WCHAR *pwzScanFileName) PURE; - STDMETHOD(CacheObject) (THIS_ IDirectMusicObject * pObject) PURE; - STDMETHOD(ReleaseObject) (THIS_ IDirectMusicObject * pObject) PURE; - STDMETHOD(ClearCache) (THIS_ REFGUID rguidClass) PURE; - STDMETHOD(EnableCache) (THIS_ REFGUID rguidClass, - BOOL fEnable) PURE; - STDMETHOD(EnumObject) (THIS_ REFGUID rguidClass, - DWORD dwIndex, - LPDMUS_OBJECTDESC pDesc) PURE; - - /* IDirectMusicLoader8 */ - STDMETHOD_(void, CollectGarbage) (THIS) PURE; - STDMETHOD(ReleaseObjectByUnknown) (THIS_ IUnknown *pObject) PURE; - STDMETHOD(LoadObjectFromFile) (THIS_ REFGUID rguidClassID, - REFIID iidInterfaceID, - WCHAR *pwzFilePath, - void ** ppObject) PURE; -}; - -/* Stream object supports IDirectMusicGetLoader interface to access loader while file parsing. */ - -#undef INTERFACE -#define INTERFACE IDirectMusicGetLoader -DECLARE_INTERFACE_(IDirectMusicGetLoader, IUnknown) -{ - /* IUnknown */ - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - /* IDirectMusicGetLoader */ - STDMETHOD(GetLoader) (THIS_ IDirectMusicLoader ** ppLoader) PURE; -}; - -typedef IDirectMusicGetLoader IDirectMusicGetLoader8; - -/*//////////////////////////////////////////////////////////////////// -// IDirectMusicSegment */ -#undef INTERFACE -#define INTERFACE IDirectMusicSegment -DECLARE_INTERFACE_(IDirectMusicSegment, IUnknown) -{ - /* IUnknown */ - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - /* IDirectMusicSegment */ - STDMETHOD(GetLength) (THIS_ MUSIC_TIME* pmtLength) PURE; - STDMETHOD(SetLength) (THIS_ MUSIC_TIME mtLength) PURE; - STDMETHOD(GetRepeats) (THIS_ DWORD* pdwRepeats) PURE; - STDMETHOD(SetRepeats) (THIS_ DWORD dwRepeats) PURE; - STDMETHOD(GetDefaultResolution) (THIS_ DWORD* pdwResolution) PURE; - STDMETHOD(SetDefaultResolution) (THIS_ DWORD dwResolution) PURE; - STDMETHOD(GetTrack) (THIS_ REFGUID rguidType, - DWORD dwGroupBits, - DWORD dwIndex, - IDirectMusicTrack** ppTrack) PURE; - STDMETHOD(GetTrackGroup) (THIS_ IDirectMusicTrack* pTrack, - DWORD* pdwGroupBits) PURE; - STDMETHOD(InsertTrack) (THIS_ IDirectMusicTrack* pTrack, - DWORD dwGroupBits) PURE; - STDMETHOD(RemoveTrack) (THIS_ IDirectMusicTrack* pTrack) PURE; - STDMETHOD(InitPlay) (THIS_ IDirectMusicSegmentState** ppSegState, - IDirectMusicPerformance* pPerformance, - DWORD dwFlags) PURE; - STDMETHOD(GetGraph) (THIS_ IDirectMusicGraph** ppGraph) PURE; - STDMETHOD(SetGraph) (THIS_ IDirectMusicGraph* pGraph) PURE; - STDMETHOD(AddNotificationType) (THIS_ REFGUID rguidNotificationType) PURE; - STDMETHOD(RemoveNotificationType) (THIS_ REFGUID rguidNotificationType) PURE; - STDMETHOD(GetParam) (THIS_ REFGUID rguidType, - DWORD dwGroupBits, - DWORD dwIndex, - MUSIC_TIME mtTime, - MUSIC_TIME* pmtNext, - void* pParam) PURE; - STDMETHOD(SetParam) (THIS_ REFGUID rguidType, - DWORD dwGroupBits, - DWORD dwIndex, - MUSIC_TIME mtTime, - void* pParam) PURE; - STDMETHOD(Clone) (THIS_ MUSIC_TIME mtStart, - MUSIC_TIME mtEnd, - IDirectMusicSegment** ppSegment) PURE; - STDMETHOD(SetStartPoint) (THIS_ MUSIC_TIME mtStart) PURE; - STDMETHOD(GetStartPoint) (THIS_ MUSIC_TIME* pmtStart) PURE; - STDMETHOD(SetLoopPoints) (THIS_ MUSIC_TIME mtStart, - MUSIC_TIME mtEnd) PURE; - STDMETHOD(GetLoopPoints) (THIS_ MUSIC_TIME* pmtStart, - MUSIC_TIME* pmtEnd) PURE; - STDMETHOD(SetPChannelsUsed) (THIS_ DWORD dwNumPChannels, - DWORD* paPChannels) PURE; -}; - -/*//////////////////////////////////////////////////////////////////// -// IDirectMusicSegment8 */ -#undef INTERFACE -#define INTERFACE IDirectMusicSegment8 -DECLARE_INTERFACE_(IDirectMusicSegment8, IDirectMusicSegment) -{ - /* IUnknown */ - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - /* IDirectMusicSegment */ - STDMETHOD(GetLength) (THIS_ MUSIC_TIME* pmtLength) PURE; - STDMETHOD(SetLength) (THIS_ MUSIC_TIME mtLength) PURE; - STDMETHOD(GetRepeats) (THIS_ DWORD* pdwRepeats) PURE; - STDMETHOD(SetRepeats) (THIS_ DWORD dwRepeats) PURE; - STDMETHOD(GetDefaultResolution) (THIS_ DWORD* pdwResolution) PURE; - STDMETHOD(SetDefaultResolution) (THIS_ DWORD dwResolution) PURE; - STDMETHOD(GetTrack) (THIS_ REFGUID rguidType, - DWORD dwGroupBits, - DWORD dwIndex, - IDirectMusicTrack** ppTrack) PURE; - STDMETHOD(GetTrackGroup) (THIS_ IDirectMusicTrack* pTrack, - DWORD* pdwGroupBits) PURE; - STDMETHOD(InsertTrack) (THIS_ IDirectMusicTrack* pTrack, - DWORD dwGroupBits) PURE; - STDMETHOD(RemoveTrack) (THIS_ IDirectMusicTrack* pTrack) PURE; - STDMETHOD(InitPlay) (THIS_ IDirectMusicSegmentState** ppSegState, - IDirectMusicPerformance* pPerformance, - DWORD dwFlags) PURE; - STDMETHOD(GetGraph) (THIS_ IDirectMusicGraph** ppGraph) PURE; - STDMETHOD(SetGraph) (THIS_ IDirectMusicGraph* pGraph) PURE; - STDMETHOD(AddNotificationType) (THIS_ REFGUID rguidNotificationType) PURE; - STDMETHOD(RemoveNotificationType) (THIS_ REFGUID rguidNotificationType) PURE; - STDMETHOD(GetParam) (THIS_ REFGUID rguidType, - DWORD dwGroupBits, - DWORD dwIndex, - MUSIC_TIME mtTime, - MUSIC_TIME* pmtNext, - void* pParam) PURE; - STDMETHOD(SetParam) (THIS_ REFGUID rguidType, - DWORD dwGroupBits, - DWORD dwIndex, - MUSIC_TIME mtTime, - void* pParam) PURE; - STDMETHOD(Clone) (THIS_ MUSIC_TIME mtStart, - MUSIC_TIME mtEnd, - IDirectMusicSegment** ppSegment) PURE; - STDMETHOD(SetStartPoint) (THIS_ MUSIC_TIME mtStart) PURE; - STDMETHOD(GetStartPoint) (THIS_ MUSIC_TIME* pmtStart) PURE; - STDMETHOD(SetLoopPoints) (THIS_ MUSIC_TIME mtStart, - MUSIC_TIME mtEnd) PURE; - STDMETHOD(GetLoopPoints) (THIS_ MUSIC_TIME* pmtStart, - MUSIC_TIME* pmtEnd) PURE; - STDMETHOD(SetPChannelsUsed) (THIS_ DWORD dwNumPChannels, - DWORD* paPChannels) PURE; - /* IDirectMusicSegment8 */ - STDMETHOD(SetTrackConfig) (THIS_ REFGUID rguidTrackClassID, /* Class ID of the type of track on which to set the configuration flags. */ - DWORD dwGroupBits, /* Group bits. */ - DWORD dwIndex, /* Nth track (or DMUS_SEG_ALLTRACKS) that matches class id and group id. */ - DWORD dwFlagsOn, /* DMUS_TRACKCONFIG_ flags to enable. */ - DWORD dwFlagsOff) PURE; /* DMUS_TRACKCONFIG_ flags to disable. */ - STDMETHOD(GetAudioPathConfig) (THIS_ IUnknown ** ppAudioPathConfig) PURE; - STDMETHOD(Compose) (THIS_ MUSIC_TIME mtTime, - IDirectMusicSegment* pFromSegment, - IDirectMusicSegment* pToSegment, - IDirectMusicSegment** ppComposedSegment) PURE; - STDMETHOD(Download) (THIS_ IUnknown *pAudioPath) PURE; - STDMETHOD(Unload) (THIS_ IUnknown *pAudioPath) PURE; -}; - -/*///////////////////////////////////////////////////////////////////// -// IDirectMusicSegmentState */ -#undef INTERFACE -#define INTERFACE IDirectMusicSegmentState -DECLARE_INTERFACE_(IDirectMusicSegmentState, IUnknown) -{ - /* IUnknown */ - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - /* IDirectMusicSegmentState */ - STDMETHOD(GetRepeats) (THIS_ DWORD* pdwRepeats) PURE; - STDMETHOD(GetSegment ) (THIS_ IDirectMusicSegment** ppSegment) PURE; - STDMETHOD(GetStartTime) (THIS_ MUSIC_TIME* pmtStart) PURE; - STDMETHOD(GetSeek) (THIS_ MUSIC_TIME* pmtSeek) PURE; - STDMETHOD(GetStartPoint) (THIS_ MUSIC_TIME* pmtStart) PURE; -}; - -/*///////////////////////////////////////////////////////////////////// -// IDirectMusicSegmentState8 */ -#undef INTERFACE -#define INTERFACE IDirectMusicSegmentState8 -DECLARE_INTERFACE_(IDirectMusicSegmentState8, IDirectMusicSegmentState) -{ - /* IUnknown */ - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - /* IDirectMusicSegmentState */ - STDMETHOD(GetRepeats) (THIS_ DWORD* pdwRepeats) PURE; - STDMETHOD(GetSegment ) (THIS_ IDirectMusicSegment** ppSegment) PURE; - STDMETHOD(GetStartTime) (THIS_ MUSIC_TIME* pmtStart) PURE; - STDMETHOD(GetSeek) (THIS_ MUSIC_TIME* pmtSeek) PURE; - STDMETHOD(GetStartPoint) (THIS_ MUSIC_TIME* pmtStart) PURE; - - /* IDirectMusicSegmentState8 */ - STDMETHOD(SetTrackConfig) (THIS_ REFGUID rguidTrackClassID, /* Class ID of the type of track on which to set the configuration flags. */ - DWORD dwGroupBits, /* Group bits. */ - DWORD dwIndex, /* Nth track (or DMUS_SEG_ALLTRACKS) that matches class id and group id. */ - DWORD dwFlagsOn, /* DMUS_TRACKCONFIG_ flags to enable. */ - DWORD dwFlagsOff) PURE; /* DMUS_TRACKCONFIG_ flags to disable. */ - STDMETHOD(GetObjectInPath) (THIS_ DWORD dwPChannel, /* PChannel to search. */ - DWORD dwStage, /* Which stage in the path. */ - DWORD dwBuffer, /* Which buffer to address, if more than one. */ - REFGUID guidObject, /* ClassID of object. */ - DWORD dwIndex, /* Which object of that class. */ - REFGUID iidInterface,/* Requested COM interface. */ - void ** ppObject) PURE; /* Pointer to interface. */ -}; - -/*//////////////////////////////////////////////////////////////////// -// IDirectMusicAudioPath */ -#undef INTERFACE -#define INTERFACE IDirectMusicAudioPath -DECLARE_INTERFACE_(IDirectMusicAudioPath, IUnknown) -{ - /* IUnknown */ - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - /* IDirectMusicAudioPath */ - STDMETHOD(GetObjectInPath) (THIS_ DWORD dwPChannel, /* PChannel to search. */ - DWORD dwStage, /* Which stage in the path. */ - DWORD dwBuffer, /* Which buffer to address, if more than one. */ - REFGUID guidObject, /* ClassID of object. */ - DWORD dwIndex, /* Which object of that class. */ - REFGUID iidInterface,/* Requested COM interface. */ - void ** ppObject) PURE; /* Pointer to interface. */ - STDMETHOD(Activate) (THIS_ BOOL fActivate) PURE;/* True to activate, False to deactivate. */ - STDMETHOD(SetVolume) (THIS_ long lVolume, /* Gain, in 100ths of a dB. This must be negative (0 represents full volume.) */ - DWORD dwDuration) PURE;/* Duration of volume ramp in milliseconds. Note that 0 is more efficient. */ - STDMETHOD(ConvertPChannel) (THIS_ DWORD dwPChannelIn, /* Pchannel of source. */ - DWORD *pdwPChannelOut) PURE; /* Equivalent pchannel on performance. */ -}; - -typedef IDirectMusicAudioPath IDirectMusicAudioPath8; - -/*//////////////////////////////////////////////////////////////////// -// IDirectMusicPerformance */ -#undef INTERFACE -#define INTERFACE IDirectMusicPerformance -DECLARE_INTERFACE_(IDirectMusicPerformance, IUnknown) -{ - /* IUnknown */ - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - /* IDirectMusicPerformance */ - STDMETHOD(Init) (THIS_ IDirectMusic** ppDirectMusic, - LPDIRECTSOUND pDirectSound, - HWND hWnd) PURE; - STDMETHOD(PlaySegment) (THIS_ IDirectMusicSegment* pSegment, - DWORD dwFlags, - __int64 i64StartTime, - IDirectMusicSegmentState** ppSegmentState) PURE; - STDMETHOD(Stop) (THIS_ IDirectMusicSegment* pSegment, - IDirectMusicSegmentState* pSegmentState, - MUSIC_TIME mtTime, - DWORD dwFlags) PURE; - STDMETHOD(GetSegmentState) (THIS_ IDirectMusicSegmentState** ppSegmentState, - MUSIC_TIME mtTime) PURE; - STDMETHOD(SetPrepareTime) (THIS_ DWORD dwMilliSeconds) PURE; - STDMETHOD(GetPrepareTime) (THIS_ DWORD* pdwMilliSeconds) PURE; - STDMETHOD(SetBumperLength) (THIS_ DWORD dwMilliSeconds) PURE; - STDMETHOD(GetBumperLength) (THIS_ DWORD* pdwMilliSeconds) PURE; - STDMETHOD(SendPMsg) (THIS_ DMUS_PMSG* pPMSG) PURE; - STDMETHOD(MusicToReferenceTime) (THIS_ MUSIC_TIME mtTime, - REFERENCE_TIME* prtTime) PURE; - STDMETHOD(ReferenceToMusicTime) (THIS_ REFERENCE_TIME rtTime, - MUSIC_TIME* pmtTime) PURE; - STDMETHOD(IsPlaying) (THIS_ IDirectMusicSegment* pSegment, - IDirectMusicSegmentState* pSegState) PURE; - STDMETHOD(GetTime) (THIS_ REFERENCE_TIME* prtNow, - MUSIC_TIME* pmtNow) PURE; - STDMETHOD(AllocPMsg) (THIS_ ULONG cb, - DMUS_PMSG** ppPMSG) PURE; - STDMETHOD(FreePMsg) (THIS_ DMUS_PMSG* pPMSG) PURE; - STDMETHOD(GetGraph) (THIS_ IDirectMusicGraph** ppGraph) PURE; - STDMETHOD(SetGraph) (THIS_ IDirectMusicGraph* pGraph) PURE; - STDMETHOD(SetNotificationHandle)(THIS_ HANDLE hNotification, - REFERENCE_TIME rtMinimum) PURE; - STDMETHOD(GetNotificationPMsg) (THIS_ DMUS_NOTIFICATION_PMSG** ppNotificationPMsg) PURE; - STDMETHOD(AddNotificationType) (THIS_ REFGUID rguidNotificationType) PURE; - STDMETHOD(RemoveNotificationType)(THIS_ REFGUID rguidNotificationType) PURE; - STDMETHOD(AddPort) (THIS_ IDirectMusicPort* pPort) PURE; - STDMETHOD(RemovePort) (THIS_ IDirectMusicPort* pPort ) PURE; - STDMETHOD(AssignPChannelBlock) (THIS_ DWORD dwBlockNum, - IDirectMusicPort* pPort, - DWORD dwGroup ) PURE; - STDMETHOD(AssignPChannel) (THIS_ DWORD dwPChannel, - IDirectMusicPort* pPort, - DWORD dwGroup, - DWORD dwMChannel ) PURE; - STDMETHOD(PChannelInfo) (THIS_ DWORD dwPChannel, - IDirectMusicPort** ppPort, - DWORD* pdwGroup, - DWORD* pdwMChannel ) PURE; - STDMETHOD(DownloadInstrument) (THIS_ IDirectMusicInstrument* pInst, - DWORD dwPChannel, - IDirectMusicDownloadedInstrument** ppDownInst, - DMUS_NOTERANGE* pNoteRanges, - DWORD dwNumNoteRanges, - IDirectMusicPort** ppPort, - DWORD* pdwGroup, - DWORD* pdwMChannel ) PURE; - STDMETHOD(Invalidate) (THIS_ MUSIC_TIME mtTime, - DWORD dwFlags) PURE; - STDMETHOD(GetParam) (THIS_ REFGUID rguidType, - DWORD dwGroupBits, - DWORD dwIndex, - MUSIC_TIME mtTime, - MUSIC_TIME* pmtNext, - void* pParam) PURE; - STDMETHOD(SetParam) (THIS_ REFGUID rguidType, - DWORD dwGroupBits, - DWORD dwIndex, - MUSIC_TIME mtTime, - void* pParam) PURE; - STDMETHOD(GetGlobalParam) (THIS_ REFGUID rguidType, - void* pParam, - DWORD dwSize) PURE; - STDMETHOD(SetGlobalParam) (THIS_ REFGUID rguidType, - void* pParam, - DWORD dwSize) PURE; - STDMETHOD(GetLatencyTime) (THIS_ REFERENCE_TIME* prtTime) PURE; - STDMETHOD(GetQueueTime) (THIS_ REFERENCE_TIME* prtTime) PURE; - STDMETHOD(AdjustTime) (THIS_ REFERENCE_TIME rtAmount) PURE; - STDMETHOD(CloseDown) (THIS) PURE; - STDMETHOD(GetResolvedTime) (THIS_ REFERENCE_TIME rtTime, - REFERENCE_TIME* prtResolved, - DWORD dwTimeResolveFlags) PURE; - STDMETHOD(MIDIToMusic) (THIS_ BYTE bMIDIValue, - DMUS_CHORD_KEY* pChord, - BYTE bPlayMode, - BYTE bChordLevel, - WORD *pwMusicValue) PURE; - STDMETHOD(MusicToMIDI) (THIS_ WORD wMusicValue, - DMUS_CHORD_KEY* pChord, - BYTE bPlayMode, - BYTE bChordLevel, - BYTE *pbMIDIValue) PURE; - STDMETHOD(TimeToRhythm) (THIS_ MUSIC_TIME mtTime, - DMUS_TIMESIGNATURE *pTimeSig, - WORD *pwMeasure, - BYTE *pbBeat, - BYTE *pbGrid, - short *pnOffset) PURE; - STDMETHOD(RhythmToTime) (THIS_ WORD wMeasure, - BYTE bBeat, - BYTE bGrid, - short nOffset, - DMUS_TIMESIGNATURE *pTimeSig, - MUSIC_TIME *pmtTime) PURE; -}; - -/*//////////////////////////////////////////////////////////////////// -// IDirectMusicPerformance8 */ -#undef INTERFACE -#define INTERFACE IDirectMusicPerformance8 -DECLARE_INTERFACE_(IDirectMusicPerformance8, IDirectMusicPerformance) -{ - /* IUnknown */ - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - /* IDirectMusicPerformance */ - STDMETHOD(Init) (THIS_ IDirectMusic** ppDirectMusic, - LPDIRECTSOUND pDirectSound, - HWND hWnd) PURE; - STDMETHOD(PlaySegment) (THIS_ IDirectMusicSegment* pSegment, - DWORD dwFlags, - __int64 i64StartTime, - IDirectMusicSegmentState** ppSegmentState) PURE; - STDMETHOD(Stop) (THIS_ IDirectMusicSegment* pSegment, - IDirectMusicSegmentState* pSegmentState, - MUSIC_TIME mtTime, - DWORD dwFlags) PURE; - STDMETHOD(GetSegmentState) (THIS_ IDirectMusicSegmentState** ppSegmentState, - MUSIC_TIME mtTime) PURE; - STDMETHOD(SetPrepareTime) (THIS_ DWORD dwMilliSeconds) PURE; - STDMETHOD(GetPrepareTime) (THIS_ DWORD* pdwMilliSeconds) PURE; - STDMETHOD(SetBumperLength) (THIS_ DWORD dwMilliSeconds) PURE; - STDMETHOD(GetBumperLength) (THIS_ DWORD* pdwMilliSeconds) PURE; - STDMETHOD(SendPMsg) (THIS_ DMUS_PMSG* pPMSG) PURE; - STDMETHOD(MusicToReferenceTime) (THIS_ MUSIC_TIME mtTime, - REFERENCE_TIME* prtTime) PURE; - STDMETHOD(ReferenceToMusicTime) (THIS_ REFERENCE_TIME rtTime, - MUSIC_TIME* pmtTime) PURE; - STDMETHOD(IsPlaying) (THIS_ IDirectMusicSegment* pSegment, - IDirectMusicSegmentState* pSegState) PURE; - STDMETHOD(GetTime) (THIS_ REFERENCE_TIME* prtNow, - MUSIC_TIME* pmtNow) PURE; - STDMETHOD(AllocPMsg) (THIS_ ULONG cb, - DMUS_PMSG** ppPMSG) PURE; - STDMETHOD(FreePMsg) (THIS_ DMUS_PMSG* pPMSG) PURE; - STDMETHOD(GetGraph) (THIS_ IDirectMusicGraph** ppGraph) PURE; - STDMETHOD(SetGraph) (THIS_ IDirectMusicGraph* pGraph) PURE; - STDMETHOD(SetNotificationHandle)(THIS_ HANDLE hNotification, - REFERENCE_TIME rtMinimum) PURE; - STDMETHOD(GetNotificationPMsg) (THIS_ DMUS_NOTIFICATION_PMSG** ppNotificationPMsg) PURE; - STDMETHOD(AddNotificationType) (THIS_ REFGUID rguidNotificationType) PURE; - STDMETHOD(RemoveNotificationType)(THIS_ REFGUID rguidNotificationType) PURE; - STDMETHOD(AddPort) (THIS_ IDirectMusicPort* pPort) PURE; - STDMETHOD(RemovePort) (THIS_ IDirectMusicPort* pPort ) PURE; - STDMETHOD(AssignPChannelBlock) (THIS_ DWORD dwBlockNum, - IDirectMusicPort* pPort, - DWORD dwGroup ) PURE; - STDMETHOD(AssignPChannel) (THIS_ DWORD dwPChannel, - IDirectMusicPort* pPort, - DWORD dwGroup, - DWORD dwMChannel ) PURE; - STDMETHOD(PChannelInfo) (THIS_ DWORD dwPChannel, - IDirectMusicPort** ppPort, - DWORD* pdwGroup, - DWORD* pdwMChannel ) PURE; - STDMETHOD(DownloadInstrument) (THIS_ IDirectMusicInstrument* pInst, - DWORD dwPChannel, - IDirectMusicDownloadedInstrument** ppDownInst, - DMUS_NOTERANGE* pNoteRanges, - DWORD dwNumNoteRanges, - IDirectMusicPort** ppPort, - DWORD* pdwGroup, - DWORD* pdwMChannel ) PURE; - STDMETHOD(Invalidate) (THIS_ MUSIC_TIME mtTime, - DWORD dwFlags) PURE; - STDMETHOD(GetParam) (THIS_ REFGUID rguidType, - DWORD dwGroupBits, - DWORD dwIndex, - MUSIC_TIME mtTime, - MUSIC_TIME* pmtNext, - void* pParam) PURE; - STDMETHOD(SetParam) (THIS_ REFGUID rguidType, - DWORD dwGroupBits, - DWORD dwIndex, - MUSIC_TIME mtTime, - void* pParam) PURE; - STDMETHOD(GetGlobalParam) (THIS_ REFGUID rguidType, - void* pParam, - DWORD dwSize) PURE; - STDMETHOD(SetGlobalParam) (THIS_ REFGUID rguidType, - void* pParam, - DWORD dwSize) PURE; - STDMETHOD(GetLatencyTime) (THIS_ REFERENCE_TIME* prtTime) PURE; - STDMETHOD(GetQueueTime) (THIS_ REFERENCE_TIME* prtTime) PURE; - STDMETHOD(AdjustTime) (THIS_ REFERENCE_TIME rtAmount) PURE; - STDMETHOD(CloseDown) (THIS) PURE; - STDMETHOD(GetResolvedTime) (THIS_ REFERENCE_TIME rtTime, - REFERENCE_TIME* prtResolved, - DWORD dwTimeResolveFlags) PURE; - STDMETHOD(MIDIToMusic) (THIS_ BYTE bMIDIValue, - DMUS_CHORD_KEY* pChord, - BYTE bPlayMode, - BYTE bChordLevel, - WORD *pwMusicValue) PURE; - STDMETHOD(MusicToMIDI) (THIS_ WORD wMusicValue, - DMUS_CHORD_KEY* pChord, - BYTE bPlayMode, - BYTE bChordLevel, - BYTE *pbMIDIValue) PURE; - STDMETHOD(TimeToRhythm) (THIS_ MUSIC_TIME mtTime, - DMUS_TIMESIGNATURE *pTimeSig, - WORD *pwMeasure, - BYTE *pbBeat, - BYTE *pbGrid, - short *pnOffset) PURE; - STDMETHOD(RhythmToTime) (THIS_ WORD wMeasure, - BYTE bBeat, - BYTE bGrid, - short nOffset, - DMUS_TIMESIGNATURE *pTimeSig, - MUSIC_TIME *pmtTime) PURE; - /* IDirectMusicPerformance8 */ - STDMETHOD(InitAudio) (THIS_ IDirectMusic** ppDirectMusic, /* Optional DirectMusic pointer. */ - IDirectSound** ppDirectSound, /* Optional DirectSound pointer. */ - HWND hWnd, /* HWND for DirectSound. */ - DWORD dwDefaultPathType, /* Requested default audio path type, also optional. */ - DWORD dwPChannelCount, /* Number of PChannels, if default audio path to be created. */ - DWORD dwFlags, /* DMUS_AUDIOF flags, if no pParams structure. */ - DMUS_AUDIOPARAMS *pParams) PURE; /* Optional initialization structure, defining required voices, buffers, etc. */ - STDMETHOD(PlaySegmentEx) (THIS_ IUnknown* pSource, /* Segment to play. */ - WCHAR *pwzSegmentName, /* Not supported in DX8. */ - IUnknown* pTransition, /* Optional template segment to compose transition with. */ - DWORD dwFlags, /* DMUS_SEGF_ flags. */ - __int64 i64StartTime, /* Time to start playback. */ - IDirectMusicSegmentState** ppSegmentState, /* Returned Segment State. */ - IUnknown *pFrom, /* Optional segmentstate or audiopath to replace. */ - IUnknown *pAudioPath) PURE; /* Optional audioPath to play on. */ - STDMETHOD(StopEx) (THIS_ IUnknown *pObjectToStop, /* Segstate, AudioPath, or Segment. */ - __int64 i64StopTime, - DWORD dwFlags) PURE; - STDMETHOD(ClonePMsg) (THIS_ DMUS_PMSG* pSourcePMSG, - DMUS_PMSG** ppCopyPMSG) PURE; - STDMETHOD(CreateAudioPath) (THIS_ IUnknown *pSourceConfig, /* Source configuration, from AudioPathConfig file. */ - BOOL fActivate, /* TRUE to activate on creation. */ - IDirectMusicAudioPath **ppNewPath) PURE; /* Returns created audiopath. */ - STDMETHOD(CreateStandardAudioPath)(THIS_ DWORD dwType, /* Type of path to create. */ - DWORD dwPChannelCount, /* How many PChannels to allocate for it. */ - BOOL fActivate, /* TRUE to activate on creation. */ - IDirectMusicAudioPath **ppNewPath) PURE; /* Returns created audiopath. */ - STDMETHOD(SetDefaultAudioPath) (THIS_ IDirectMusicAudioPath *pAudioPath) PURE; - STDMETHOD(GetDefaultAudioPath) (THIS_ IDirectMusicAudioPath **ppAudioPath) PURE; - STDMETHOD(GetParamEx) (THIS_ REFGUID rguidType, /* GetParam command ID. */ - DWORD dwTrackID, /* Virtual track ID of caller. */ - DWORD dwGroupBits, /* Group bits of caller. */ - DWORD dwIndex, /* Index to Nth parameter. */ - MUSIC_TIME mtTime, /* Time of requested parameter. */ - MUSIC_TIME* pmtNext, /* Returned delta to next parameter. */ - void* pParam) PURE; /* Data structure to fill with parameter. */ -}; - - - -/*//////////////////////////////////////////////////////////////////// -// IDirectMusicGraph */ -#undef INTERFACE -#define INTERFACE IDirectMusicGraph -DECLARE_INTERFACE_(IDirectMusicGraph, IUnknown) -{ - /* IUnknown */ - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - /* IDirectMusicGraph */ - STDMETHOD(StampPMsg) (THIS_ DMUS_PMSG* pPMSG) PURE; - STDMETHOD(InsertTool) (THIS_ IDirectMusicTool* pTool, - DWORD* pdwPChannels, - DWORD cPChannels, - LONG lIndex) PURE; - STDMETHOD(GetTool) (THIS_ DWORD dwIndex, - IDirectMusicTool** ppTool) PURE; - STDMETHOD(RemoveTool) (THIS_ IDirectMusicTool* pTool) PURE; -}; - -typedef IDirectMusicGraph IDirectMusicGraph8; - - -/*///////////////////////////////////////////////////////////////////// -// IDirectMusicStyle */ -#undef INTERFACE -#define INTERFACE IDirectMusicStyle -DECLARE_INTERFACE_(IDirectMusicStyle, IUnknown) -{ - /* IUnknown */ - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - /* IDirectMusicStyle */ - STDMETHOD(GetBand) (THIS_ WCHAR* pwszName, - IDirectMusicBand** ppBand) PURE; - STDMETHOD(EnumBand) (THIS_ DWORD dwIndex, - WCHAR *pwszName) PURE; - STDMETHOD(GetDefaultBand) (THIS_ IDirectMusicBand** ppBand) PURE; - STDMETHOD(EnumMotif) (THIS_ DWORD dwIndex, - WCHAR* pwszName) PURE; - STDMETHOD(GetMotif) (THIS_ WCHAR* pwszName, - IDirectMusicSegment** ppSegment) PURE; - STDMETHOD(GetDefaultChordMap) (THIS_ IDirectMusicChordMap** ppChordMap) PURE; - STDMETHOD(EnumChordMap) (THIS_ DWORD dwIndex, - WCHAR *pwszName) PURE; - STDMETHOD(GetChordMap) (THIS_ WCHAR* pwszName, - IDirectMusicChordMap** ppChordMap) PURE; - STDMETHOD(GetTimeSignature) (THIS_ DMUS_TIMESIGNATURE* pTimeSig) PURE; - STDMETHOD(GetEmbellishmentLength) (THIS_ DWORD dwType, - DWORD dwLevel, - DWORD* pdwMin, - DWORD* pdwMax) PURE; - STDMETHOD(GetTempo) (THIS_ double* pTempo) PURE; -}; - -/*///////////////////////////////////////////////////////////////////// -// IDirectMusicStyle8 */ -#undef INTERFACE -#define INTERFACE IDirectMusicStyle8 -DECLARE_INTERFACE_(IDirectMusicStyle8, IDirectMusicStyle) -{ - /* IUnknown */ - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - /* IDirectMusicStyle */ - STDMETHOD(GetBand) (THIS_ WCHAR* pwszName, - IDirectMusicBand** ppBand) PURE; - STDMETHOD(EnumBand) (THIS_ DWORD dwIndex, - WCHAR *pwszName) PURE; - STDMETHOD(GetDefaultBand) (THIS_ IDirectMusicBand** ppBand) PURE; - STDMETHOD(EnumMotif) (THIS_ DWORD dwIndex, - WCHAR* pwszName) PURE; - STDMETHOD(GetMotif) (THIS_ WCHAR* pwszName, - IDirectMusicSegment** ppSegment) PURE; - STDMETHOD(GetDefaultChordMap) (THIS_ IDirectMusicChordMap** ppChordMap) PURE; - STDMETHOD(EnumChordMap) (THIS_ DWORD dwIndex, - WCHAR *pwszName) PURE; - STDMETHOD(GetChordMap) (THIS_ WCHAR* pwszName, - IDirectMusicChordMap** ppChordMap) PURE; - STDMETHOD(GetTimeSignature) (THIS_ DMUS_TIMESIGNATURE* pTimeSig) PURE; - STDMETHOD(GetEmbellishmentLength) (THIS_ DWORD dwType, - DWORD dwLevel, - DWORD* pdwMin, - DWORD* pdwMax) PURE; - STDMETHOD(GetTempo) (THIS_ double* pTempo) PURE; - - /* IDirectMusicStyle8 */ - STDMETHOD(EnumPattern) (THIS_ DWORD dwIndex, - DWORD dwPatternType, - WCHAR* pwszName) PURE; -}; - -/*///////////////////////////////////////////////////////////////////// -// IDirectMusicChordMap */ -#undef INTERFACE -#define INTERFACE IDirectMusicChordMap -DECLARE_INTERFACE_(IDirectMusicChordMap, IUnknown) -{ - /* IUnknown */ - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - /* IDirectMusicChordMap */ - STDMETHOD(GetScale) (THIS_ DWORD* pdwScale) PURE; -}; - -typedef IDirectMusicChordMap IDirectMusicChordMap8; - -/*///////////////////////////////////////////////////////////////////// -// IDirectMusicComposer */ -#undef INTERFACE -#define INTERFACE IDirectMusicComposer -DECLARE_INTERFACE_(IDirectMusicComposer, IUnknown) -{ - /* IUnknown */ - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - /* IDirectMusicComposer */ - STDMETHOD(ComposeSegmentFromTemplate) (THIS_ IDirectMusicStyle* pStyle, - IDirectMusicSegment* pTemplate, - WORD wActivity, - IDirectMusicChordMap* pChordMap, - IDirectMusicSegment** ppSegment) PURE; - STDMETHOD(ComposeSegmentFromShape) (THIS_ IDirectMusicStyle* pStyle, - WORD wNumMeasures, - WORD wShape, - WORD wActivity, - BOOL fIntro, - BOOL fEnd, - IDirectMusicChordMap* pChordMap, - IDirectMusicSegment** ppSegment ) PURE; - STDMETHOD(ComposeTransition) (THIS_ IDirectMusicSegment* pFromSeg, - IDirectMusicSegment* pToSeg, - MUSIC_TIME mtTime, - WORD wCommand, - DWORD dwFlags, - IDirectMusicChordMap* pChordMap, - IDirectMusicSegment** ppTransSeg) PURE; - STDMETHOD(AutoTransition) (THIS_ IDirectMusicPerformance* pPerformance, - IDirectMusicSegment* pToSeg, - WORD wCommand, - DWORD dwFlags, - IDirectMusicChordMap* pChordMap, - IDirectMusicSegment** ppTransSeg, - IDirectMusicSegmentState** ppToSegState, - IDirectMusicSegmentState** ppTransSegState) PURE; - STDMETHOD(ComposeTemplateFromShape) (THIS_ WORD wNumMeasures, - WORD wShape, - BOOL fIntro, - BOOL fEnd, - WORD wEndLength, - IDirectMusicSegment** ppTemplate) PURE; - STDMETHOD(ChangeChordMap) (THIS_ IDirectMusicSegment* pSegment, - BOOL fTrackScale, - IDirectMusicChordMap* pChordMap) PURE; -}; - -typedef IDirectMusicComposer IDirectMusicComposer8; - -/*///////////////////////////////////////////////////////////////////// -// IDirectMusicPatternTrack */ - -#undef INTERFACE -#define INTERFACE IDirectMusicPatternTrack -DECLARE_INTERFACE_(IDirectMusicPatternTrack, IUnknown) -{ - /* IUnknown */ - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - /* IDirectMusicPatternTrack */ - STDMETHOD(CreateSegment) (THIS_ IDirectMusicStyle* pStyle, - IDirectMusicSegment** ppSegment) PURE; - STDMETHOD(SetVariation) (THIS_ IDirectMusicSegmentState* pSegState, - DWORD dwVariationFlags, - DWORD dwPart) PURE; - STDMETHOD(SetPatternByName) (THIS_ IDirectMusicSegmentState* pSegState, - WCHAR* wszName, - IDirectMusicStyle* pStyle, - DWORD dwPatternType, - DWORD* pdwLength) PURE; -}; - -typedef IDirectMusicPatternTrack IDirectMusicPatternTrack8; - -/*///////////////////////////////////////////////////////////////////// -// IDirectMusicScript */ - -#undef INTERFACE -#define INTERFACE IDirectMusicScript -DECLARE_INTERFACE_(IDirectMusicScript, IUnknown) -{ - /* IUnknown */ - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - /* IDirectMusicScript */ - STDMETHOD(Init) (THIS_ IDirectMusicPerformance *pPerformance, - DMUS_SCRIPT_ERRORINFO *pErrorInfo) PURE; - STDMETHOD(CallRoutine) (THIS_ WCHAR *pwszRoutineName, - DMUS_SCRIPT_ERRORINFO *pErrorInfo) PURE; - STDMETHOD(SetVariableVariant) (THIS_ WCHAR *pwszVariableName, - VARIANT varValue, - BOOL fSetRef, - DMUS_SCRIPT_ERRORINFO *pErrorInfo) PURE; - STDMETHOD(GetVariableVariant) (THIS_ WCHAR *pwszVariableName, - VARIANT *pvarValue, - DMUS_SCRIPT_ERRORINFO *pErrorInfo) PURE; - STDMETHOD(SetVariableNumber) (THIS_ WCHAR *pwszVariableName, - LONG lValue, - DMUS_SCRIPT_ERRORINFO *pErrorInfo) PURE; - STDMETHOD(GetVariableNumber) (THIS_ WCHAR *pwszVariableName, - LONG *plValue, - DMUS_SCRIPT_ERRORINFO *pErrorInfo) PURE; - STDMETHOD(SetVariableObject) (THIS_ WCHAR *pwszVariableName, - IUnknown *punkValue, - DMUS_SCRIPT_ERRORINFO *pErrorInfo) PURE; - STDMETHOD(GetVariableObject) (THIS_ WCHAR *pwszVariableName, - REFIID riid, - LPVOID FAR *ppv, - DMUS_SCRIPT_ERRORINFO *pErrorInfo) PURE; - STDMETHOD(EnumRoutine) (THIS_ DWORD dwIndex, - WCHAR *pwszName) PURE; - STDMETHOD(EnumVariable) (THIS_ DWORD dwIndex, - WCHAR *pwszName) PURE; -}; - -typedef IDirectMusicScript IDirectMusicScript8; - -/*///////////////////////////////////////////////////////////////////// -// IDirectMusicContainer */ - -#undef INTERFACE -#define INTERFACE IDirectMusicContainer -DECLARE_INTERFACE_(IDirectMusicContainer, IUnknown) -{ - /* IUnknown */ - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - /* IDirectMusicContainer */ - STDMETHOD(EnumObject) (THIS_ REFGUID rguidClass, - DWORD dwIndex, - LPDMUS_OBJECTDESC pDesc, - WCHAR *pwszAlias) PURE; -}; - -typedef IDirectMusicContainer IDirectMusicContainer8; - -/* CLSID's */ -DEFINE_GUID(CLSID_DirectMusicPerformance,0xd2ac2881, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(CLSID_DirectMusicSegment,0xd2ac2882, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(CLSID_DirectMusicSegmentState,0xd2ac2883, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(CLSID_DirectMusicGraph,0xd2ac2884, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(CLSID_DirectMusicStyle,0xd2ac288a, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(CLSID_DirectMusicChordMap,0xd2ac288f, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(CLSID_DirectMusicComposer,0xd2ac2890, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(CLSID_DirectMusicLoader,0xd2ac2892, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(CLSID_DirectMusicBand,0x79ba9e00, 0xb6ee, 0x11d1, 0x86, 0xbe, 0x0, 0xc0, 0x4f, 0xbf, 0x8f, 0xef); - -/* New CLSID's for DX8 */ -DEFINE_GUID(CLSID_DirectMusicPatternTrack,0xd2ac2897, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(CLSID_DirectMusicScript,0x810b5013, 0xe88d, 0x11d2, 0x8b, 0xc1, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xb6); /* {810B5013-E88D-11d2-8BC1-00600893B1B6} */ -DEFINE_GUID(CLSID_DirectMusicContainer,0x9301e380, 0x1f22, 0x11d3, 0x82, 0x26, 0xd2, 0xfa, 0x76, 0x25, 0x5d, 0x47); -DEFINE_GUID(CLSID_DirectSoundWave,0x8a667154, 0xf9cb, 0x11d2, 0xad, 0x8a, 0x0, 0x60, 0xb0, 0x57, 0x5a, 0xbc); -DEFINE_GUID(CLSID_DirectMusicAudioPathConfig,0xee0b9ca0, 0xa81e, 0x11d3, 0x9b, 0xd1, 0x0, 0x80, 0xc7, 0x15, 0xa, 0x74); - -/* Special GUID for all object types. This is used by the loader. */ -DEFINE_GUID(GUID_DirectMusicAllTypes,0xd2ac2893, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); - -/* Notification guids */ -DEFINE_GUID(GUID_NOTIFICATION_SEGMENT,0xd2ac2899, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(GUID_NOTIFICATION_PERFORMANCE,0x81f75bc5, 0x4e5d, 0x11d2, 0xbc, 0xc7, 0x0, 0xa0, 0xc9, 0x22, 0xe6, 0xeb); -DEFINE_GUID(GUID_NOTIFICATION_MEASUREANDBEAT,0xd2ac289a, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(GUID_NOTIFICATION_CHORD,0xd2ac289b, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(GUID_NOTIFICATION_COMMAND,0xd2ac289c, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(GUID_NOTIFICATION_RECOMPOSE, 0xd348372b, 0x945b, 0x45ae, 0xa5, 0x22, 0x45, 0xf, 0x12, 0x5b, 0x84, 0xa5); - -/* Track param type guids */ -/* Use to get/set a DMUS_COMMAND_PARAM param in the Command track */ -DEFINE_GUID(GUID_CommandParam,0xd2ac289d, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); - -/* Use to get a DMUS_COMMAND_PARAM_2 param in the Command track */ -DEFINE_GUID(GUID_CommandParam2, 0x28f97ef7, 0x9538, 0x11d2, 0x97, 0xa9, 0x0, 0xc0, 0x4f, 0xa3, 0x6e, 0x58); - -/* Use to get/set a DMUS_COMMAND_PARAM_2 param to be used as the command following all commands in -the Command track (this information can't be saved) */ -DEFINE_GUID(GUID_CommandParamNext, 0x472afe7a, 0x281b, 0x11d3, 0x81, 0x7d, 0x0, 0xc0, 0x4f, 0xa3, 0x6e, 0x58); - -/* Use to get/set a DMUS_CHORD_PARAM param in the Chord track */ -DEFINE_GUID(GUID_ChordParam,0xd2ac289e, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); - -/* Use to get a DMUS_RHYTHM_PARAM param in the Chord track */ -DEFINE_GUID(GUID_RhythmParam,0xd2ac289f, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); - -/* Use to get/set an IDirectMusicStyle param in the Style track */ -DEFINE_GUID(GUID_IDirectMusicStyle,0xd2ac28a1, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); - -/* Use to get a DMUS_TIMESIGNATURE param in the Style and TimeSig tracks */ -DEFINE_GUID(GUID_TimeSignature,0xd2ac28a4, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); - -/* Use to get/set a DMUS_TEMPO_PARAM param in the Tempo track */ -DEFINE_GUID(GUID_TempoParam,0xd2ac28a5, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); - -/* Use to get the next valid point in a segment at which it may start */ -DEFINE_GUID(GUID_Valid_Start_Time,0x7f6b1760, 0x1fdb, 0x11d3, 0x82, 0x26, 0x44, 0x45, 0x53, 0x54, 0x0, 0x0); - -/* Use to get the next point in the currently playing primary segment at which a new segment may start */ -DEFINE_GUID(GUID_Play_Marker,0xd8761a41, 0x801a, 0x11d3, 0x9b, 0xd1, 0xda, 0xf7, 0xe1, 0xc3, 0xd8, 0x34); - -/* Use to get (GetParam) or add (SetParam) bands in the Band track */ -DEFINE_GUID(GUID_BandParam,0x2bb1938, 0xcb8b, 0x11d2, 0x8b, 0xb9, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xb6); -typedef struct _DMUS_BAND_PARAM -{ - MUSIC_TIME mtTimePhysical; /* Note: If this is a clock-time track, then this field is interpreted in the track's internal time format, which is the number of milliseconds after the beginning of playback. */ - IDirectMusicBand *pBand; -} DMUS_BAND_PARAM; - -/* Obsolete -- doesn't distinguish physical and logical time. Use GUID_BandParam instead. */ -DEFINE_GUID(GUID_IDirectMusicBand,0xd2ac28ac, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); - -/* Use to get/set an IDirectMusicChordMap param in the ChordMap track */ -DEFINE_GUID(GUID_IDirectMusicChordMap,0xd2ac28ad, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); - -/* Use to get/set a DMUS_MUTE_PARAM param in the Mute track */ -DEFINE_GUID(GUID_MuteParam,0xd2ac28af, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); - -/* These guids are used in IDirectMusicSegment::SetParam to tell the band track to perform various actions. - Some of these guids (where noted) also apply to wave tracks. - */ -/* Download bands/waves for the IDirectMusicSegment */ -DEFINE_GUID(GUID_Download,0xd2ac28a7, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); - -/* Unload bands/waves for the IDirectMusicSegment */ -DEFINE_GUID(GUID_Unload,0xd2ac28a8, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); - -/* Connect segment's bands to an IDirectMusicCollection */ -DEFINE_GUID(GUID_ConnectToDLSCollection, 0x1db1ae6b, 0xe92e, 0x11d1, 0xa8, 0xc5, 0x0, 0xc0, 0x4f, 0xa3, 0x72, 0x6e); - -/* Enable/disable autodownloading of bands/waves */ -DEFINE_GUID(GUID_Enable_Auto_Download,0xd2ac28a9, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(GUID_Disable_Auto_Download,0xd2ac28aa, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); - -/* Clear all bands */ -DEFINE_GUID(GUID_Clear_All_Bands,0xd2ac28ab, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); - -/* Set segment to manage all program changes, bank selects, etc. for simple playback of a standard MIDI file */ -DEFINE_GUID(GUID_StandardMIDIFile, 0x6621075, 0xe92e, 0x11d1, 0xa8, 0xc5, 0x0, 0xc0, 0x4f, 0xa3, 0x72, 0x6e); -/* For compatibility with beta releases... */ -#define GUID_IgnoreBankSelectForGM GUID_StandardMIDIFile - -/* Disable/enable param guids. Use these in SetParam calls to disable or enable sending - * specific PMsg types. - */ -DEFINE_GUID(GUID_DisableTimeSig, 0x45fc707b, 0x1db4, 0x11d2, 0xbc, 0xac, 0x0, 0xa0, 0xc9, 0x22, 0xe6, 0xeb); -DEFINE_GUID(GUID_EnableTimeSig, 0x45fc707c, 0x1db4, 0x11d2, 0xbc, 0xac, 0x0, 0xa0, 0xc9, 0x22, 0xe6, 0xeb); -DEFINE_GUID(GUID_DisableTempo, 0x45fc707d, 0x1db4, 0x11d2, 0xbc, 0xac, 0x0, 0xa0, 0xc9, 0x22, 0xe6, 0xeb); -DEFINE_GUID(GUID_EnableTempo, 0x45fc707e, 0x1db4, 0x11d2, 0xbc, 0xac, 0x0, 0xa0, 0xc9, 0x22, 0xe6, 0xeb); - -/* Used in SetParam calls for pattern-based tracks. A nonzero value seeds the random number -generator for variation selection; a value of zero reverts to the default behavior of -getting the seed from the system clock. -*/ -DEFINE_GUID(GUID_SeedVariations, 0x65b76fa5, 0xff37, 0x11d2, 0x81, 0x4e, 0x0, 0xc0, 0x4f, 0xa3, 0x6e, 0x58); - -/* Used to get the variations currently in effect across PChannels */ -DEFINE_GUID(GUID_Variations, 0x11f72cce, 0x26e6, 0x4ecd, 0xaf, 0x2e, 0xd6, 0x68, 0xe6, 0x67, 0x7, 0xd8); -typedef struct _DMUS_VARIATIONS_PARAM -{ - DWORD dwPChannelsUsed; /* number of PChannels in use */ - DWORD* padwPChannels; /* array of PChannels in use */ - DWORD* padwVariations; /* array of variations in effect for each PChannel */ -} DMUS_VARIATIONS_PARAM; - -/* Download bands/waves for the IDirectMusicSegment, passed an IDirectMusicAudioPath instead of an IDirectMusicPerformance */ -DEFINE_GUID(GUID_DownloadToAudioPath,0x9f2c0341, 0xc5c4, 0x11d3, 0x9b, 0xd1, 0x44, 0x45, 0x53, 0x54, 0x0, 0x0); - -/* Unload bands/waves for the IDirectMusicSegment, passed an IDirectMusicAudioPath instead of an IDirectMusicPerformance */ -DEFINE_GUID(GUID_UnloadFromAudioPath,0x9f2c0342, 0xc5c4, 0x11d3, 0x9b, 0xd1, 0x44, 0x45, 0x53, 0x54, 0x0, 0x0); - - -/* Global data guids */ -DEFINE_GUID(GUID_PerfMasterTempo,0xd2ac28b0, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(GUID_PerfMasterVolume,0xd2ac28b1, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(GUID_PerfMasterGrooveLevel,0xd2ac28b2, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(GUID_PerfAutoDownload, 0xfb09565b, 0x3631, 0x11d2, 0xbc, 0xb8, 0x0, 0xa0, 0xc9, 0x22, 0xe6, 0xeb); - -/* GUID for default GM/GS dls collection. */ -DEFINE_GUID(GUID_DefaultGMCollection, 0xf17e8673, 0xc3b4, 0x11d1, 0x87, 0xb, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); - -/* GUID to define default synth, placed in AudioPath configuration file. */ -DEFINE_GUID(GUID_Synth_Default,0x26bb9432, 0x45fe, 0x48d3, 0xa3, 0x75, 0x24, 0x72, 0xc5, 0xe3, 0xe7, 0x86); - -/* GUIDs to define default buffer configurations to place in AudioPath configuration file. */ -DEFINE_GUID(GUID_Buffer_Reverb,0x186cc541, 0xdb29, 0x11d3, 0x9b, 0xd1, 0x0, 0x80, 0xc7, 0x15, 0xa, 0x74); -DEFINE_GUID(GUID_Buffer_EnvReverb,0x186cc542, 0xdb29, 0x11d3, 0x9b, 0xd1, 0x0, 0x80, 0xc7, 0x15, 0xa, 0x74); -DEFINE_GUID(GUID_Buffer_Stereo,0x186cc545, 0xdb29, 0x11d3, 0x9b, 0xd1, 0x0, 0x80, 0xc7, 0x15, 0xa, 0x74); -DEFINE_GUID(GUID_Buffer_3D_Dry,0x186cc546, 0xdb29, 0x11d3, 0x9b, 0xd1, 0x0, 0x80, 0xc7, 0x15, 0xa, 0x74); -DEFINE_GUID(GUID_Buffer_Mono,0x186cc547, 0xdb29, 0x11d3, 0x9b, 0xd1, 0x0, 0x80, 0xc7, 0x15, 0xa, 0x74); - -/* IID's */ -DEFINE_GUID(IID_IDirectMusicLoader, 0x2ffaaca2, 0x5dca, 0x11d2, 0xaf, 0xa6, 0x0, 0xaa, 0x0, 0x24, 0xd8, 0xb6); -DEFINE_GUID(IID_IDirectMusicGetLoader,0x68a04844, 0xd13d, 0x11d1, 0xaf, 0xa6, 0x0, 0xaa, 0x0, 0x24, 0xd8, 0xb6); -DEFINE_GUID(IID_IDirectMusicObject,0xd2ac28b5, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(IID_IDirectMusicSegment, 0xf96029a2, 0x4282, 0x11d2, 0x87, 0x17, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(IID_IDirectMusicSegmentState, 0xa3afdcc7, 0xd3ee, 0x11d1, 0xbc, 0x8d, 0x0, 0xa0, 0xc9, 0x22, 0xe6, 0xeb); -DEFINE_GUID(IID_IDirectMusicPerformance,0x7d43d03, 0x6523, 0x11d2, 0x87, 0x1d, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(IID_IDirectMusicGraph,0x2befc277, 0x5497, 0x11d2, 0xbc, 0xcb, 0x0, 0xa0, 0xc9, 0x22, 0xe6, 0xeb); -DEFINE_GUID(IID_IDirectMusicStyle,0xd2ac28bd, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(IID_IDirectMusicChordMap,0xd2ac28be, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(IID_IDirectMusicComposer,0xd2ac28bf, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); -DEFINE_GUID(IID_IDirectMusicBand,0xd2ac28c0, 0xb39b, 0x11d1, 0x87, 0x4, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); - -/* Alternate interface IDs, available in DX7 release and after. */ -DEFINE_GUID(IID_IDirectMusicPerformance2,0x6fc2cae0, 0xbc78, 0x11d2, 0xaf, 0xa6, 0x0, 0xaa, 0x0, 0x24, 0xd8, 0xb6); -DEFINE_GUID(IID_IDirectMusicSegment2, 0xd38894d1, 0xc052, 0x11d2, 0x87, 0x2f, 0x0, 0x60, 0x8, 0x93, 0xb1, 0xbd); - -/* Interface IDs for DX8 */ -/* changed interfaces (GUID only) */ -DEFINE_GUID(IID_IDirectMusicLoader8, 0x19e7c08c, 0xa44, 0x4e6a, 0xa1, 0x16, 0x59, 0x5a, 0x7c, 0xd5, 0xde, 0x8c); -DEFINE_GUID(IID_IDirectMusicPerformance8, 0x679c4137, 0xc62e, 0x4147, 0xb2, 0xb4, 0x9d, 0x56, 0x9a, 0xcb, 0x25, 0x4c); -DEFINE_GUID(IID_IDirectMusicSegment8,0xc6784488, 0x41a3, 0x418f, 0xaa, 0x15, 0xb3, 0x50, 0x93, 0xba, 0x42, 0xd4); -DEFINE_GUID(IID_IDirectMusicSegmentState8, 0xa50e4730, 0xae4, 0x48a7, 0x98, 0x39, 0xbc, 0x4, 0xbf, 0xe0, 0x77, 0x72); -DEFINE_GUID(IID_IDirectMusicStyle8, 0xfd24ad8a, 0xa260, 0x453d, 0xbf, 0x50, 0x6f, 0x93, 0x84, 0xf7, 0x9, 0x85); -/* new interfaces (GUID + alias) */ -DEFINE_GUID(IID_IDirectMusicPatternTrack, 0x51c22e10, 0xb49f, 0x46fc, 0xbe, 0xc2, 0xe6, 0x28, 0x8f, 0xb9, 0xed, 0xe6); -#define IID_IDirectMusicPatternTrack8 IID_IDirectMusicPatternTrack -DEFINE_GUID(IID_IDirectMusicScript, 0x2252373a, 0x5814, 0x489b, 0x82, 0x9, 0x31, 0xfe, 0xde, 0xba, 0xf1, 0x37); /* {2252373A-5814-489b-8209-31FEDEBAF137} */ -#define IID_IDirectMusicScript8 IID_IDirectMusicScript -DEFINE_GUID(IID_IDirectMusicContainer, 0x9301e386, 0x1f22, 0x11d3, 0x82, 0x26, 0xd2, 0xfa, 0x76, 0x25, 0x5d, 0x47); -#define IID_IDirectMusicContainer8 IID_IDirectMusicContainer -DEFINE_GUID(IID_IDirectMusicAudioPath,0xc87631f5, 0x23be, 0x4986, 0x88, 0x36, 0x5, 0x83, 0x2f, 0xcc, 0x48, 0xf9); -#define IID_IDirectMusicAudioPath8 IID_IDirectMusicAudioPath -/* unchanged interfaces (alias only) */ -#define IID_IDirectMusicGetLoader8 IID_IDirectMusicGetLoader -#define IID_IDirectMusicChordMap8 IID_IDirectMusicChordMap -#define IID_IDirectMusicGraph8 IID_IDirectMusicGraph -#define IID_IDirectMusicBand8 IID_IDirectMusicBand -#define IID_IDirectMusicObject8 IID_IDirectMusicObject -#define IID_IDirectMusicComposer8 IID_IDirectMusicComposer - - -#ifdef __cplusplus -}; /* extern "C" */ -#endif - -#include - -#endif /* #ifndef _DMUSICI_ */ diff --git a/plugins/!NotAdopted/sndVol/dmutil.cpp b/plugins/!NotAdopted/sndVol/dmutil.cpp deleted file mode 100644 index 4e2767ac27..0000000000 --- a/plugins/!NotAdopted/sndVol/dmutil.cpp +++ /dev/null @@ -1,689 +0,0 @@ -//----------------------------------------------------------------------------- -// File: DMUtil.cpp -// -// Desc: DirectMusic framework classes for playing DirectMusic segments and -// DirectMusic scripts. Feel free to use this class as a starting point -// for adding extra functionality. -// -// Copyright (c) 1999-2001 Microsoft Corp. All rights reserved. -//----------------------------------------------------------------------------- -#define STRICT -#include -#include -#include -#include -#include "DMUtil.h" -#include "DXUtil.h" - - - - -//----------------------------------------------------------------------------- -// Name: CMusicManager::CMusicManager() -// Desc: Constructs the class -//----------------------------------------------------------------------------- -CMusicManager::CMusicManager() -{ - m_pLoader = NULL; - m_pPerformance = NULL; - - // Initialize COM - HRESULT hr = CoInitialize(NULL); - m_bCleanupCOM = SUCCEEDED(hr); -} - - - - -//----------------------------------------------------------------------------- -// Name: CMusicManager::~CMusicManager() -// Desc: Destroys the class -//----------------------------------------------------------------------------- -CMusicManager::~CMusicManager() -{ - SAFE_RELEASE( m_pLoader ); - - if( m_pPerformance ) - { - // If there is any music playing, stop it. - m_pPerformance->Stop( NULL, NULL, 0, 0 ); - m_pPerformance->CloseDown(); - - SAFE_RELEASE( m_pPerformance ); - } - - if( m_bCleanupCOM ) - CoUninitialize(); -} - - - - -//----------------------------------------------------------------------------- -// Name: CMusicManager::Initialize() -// Desc: Inits DirectMusic using a standard audio path -//----------------------------------------------------------------------------- -HRESULT CMusicManager::Initialize( HWND hWnd, DWORD dwPChannels, DWORD dwDefaultPathType ) -{ - HRESULT hr; - - // Create loader object - if( FAILED( hr = CoCreateInstance( CLSID_DirectMusicLoader, NULL, CLSCTX_INPROC, - IID_IDirectMusicLoader8, (void**)&m_pLoader ) ) ) - return DXTRACE_ERR( TEXT("CoCreateInstance"), hr ); - - // Create performance object - if( FAILED( hr = CoCreateInstance( CLSID_DirectMusicPerformance, NULL, CLSCTX_INPROC, - IID_IDirectMusicPerformance8, (void**)&m_pPerformance ) ) ) - return DXTRACE_ERR( TEXT("CoCreateInstance"), hr ); - - // Initialize the performance with the standard audio path. - // This initializes both DirectMusic and DirectSound and - // sets up the synthesizer. Typcially its easist to use an - // audio path for playing music and sound effects. - if( FAILED( hr = m_pPerformance->InitAudio( NULL, NULL, hWnd, dwDefaultPathType, - dwPChannels, DMUS_AUDIOF_ALL, NULL ) ) ) - { - if( hr == DSERR_NODRIVER ) - { - DXTRACE( "Warning: No sound card found\n" ); - return hr; - } - - return DXTRACE_ERR( TEXT("InitAudio"), hr ); - } - - return S_OK; -} - - - - -//----------------------------------------------------------------------------- -// Name: CMusicManager::SetSearchDirectory() -// Desc: Sets the search directory. If not called, the current working -// directory is used to load content. -//----------------------------------------------------------------------------- -HRESULT CMusicManager::SetSearchDirectory( const TCHAR* strMediaPath ) -{ - if( NULL == m_pLoader ) - return E_UNEXPECTED; - - // DMusic only takes wide strings - WCHAR wstrMediaPath[MAX_PATH]; - DXUtil_ConvertGenericStringToWide( wstrMediaPath, strMediaPath ); - - return m_pLoader->SetSearchDirectory( GUID_DirectMusicAllTypes, - wstrMediaPath, FALSE ); -} - - - - -//----------------------------------------------------------------------------- -// Name: CMusicManager::GetDefaultAudioPath() -// Desc: -//----------------------------------------------------------------------------- -IDirectMusicAudioPath8* CMusicManager::GetDefaultAudioPath() -{ - IDirectMusicAudioPath8* pAudioPath = NULL; - if( NULL == m_pPerformance ) - return NULL; - - m_pPerformance->GetDefaultAudioPath( &pAudioPath ); - return pAudioPath; -} - - - - -//----------------------------------------------------------------------------- -// Name: CMusicManager::CollectGarbage() -// Desc: Tells the loader to cleanup any garbage from previously -// released objects. -//----------------------------------------------------------------------------- -VOID CMusicManager::CollectGarbage() -{ - if( m_pLoader ) - m_pLoader->CollectGarbage(); -} - - - - -//----------------------------------------------------------------------------- -// Name: CMusicManager::CreateSegmentFromFile() -// Desc: -//----------------------------------------------------------------------------- -HRESULT CMusicManager::CreateSegmentFromFile( CMusicSegment** ppSegment, - TCHAR* strFileName, - BOOL bDownloadNow, - BOOL bIsMidiFile ) -{ - HRESULT hr; - IDirectMusicSegment8* pSegment = NULL; - - // DMusic only takes wide strings - WCHAR wstrFileName[MAX_PATH]; - DXUtil_ConvertGenericStringToWide( wstrFileName, strFileName ); - - if ( FAILED( hr = m_pLoader->LoadObjectFromFile( CLSID_DirectMusicSegment, - IID_IDirectMusicSegment8, - wstrFileName, - (LPVOID*) &pSegment ) ) ) - { - if( hr == DMUS_E_LOADER_FAILEDOPEN ) - return hr; - return DXTRACE_ERR( TEXT("LoadObjectFromFile"), hr ); - } - - *ppSegment = new CMusicSegment( m_pPerformance, m_pLoader, pSegment ); - if (!*ppSegment) - return E_OUTOFMEMORY; - - if( bIsMidiFile ) - { - if( FAILED( hr = pSegment->SetParam( GUID_StandardMIDIFile, - 0xFFFFFFFF, 0, 0, NULL ) ) ) - return DXTRACE_ERR( TEXT("SetParam"), hr ); - } - - if( bDownloadNow ) - { - if( FAILED( hr = (*ppSegment)->Download() ) ) - return DXTRACE_ERR( TEXT("Download"), hr ); - } - - return S_OK; -} - - - - -//----------------------------------------------------------------------------- -// Name: CMusicManager::CreateSegmentFromResource() -// Desc: -//----------------------------------------------------------------------------- -HRESULT CMusicManager::CreateSegmentFromResource( CMusicSegment** ppSegment, - TCHAR* strResource, - TCHAR* strResourceType, - BOOL bDownloadNow, - BOOL bIsMidiFile ) -{ - HRESULT hr; - IDirectMusicSegment8* pSegment = NULL; - HRSRC hres = NULL; - void* pMem = NULL; - DWORD dwSize = 0; - DMUS_OBJECTDESC objdesc; - - // Find the resource - hres = FindResource( NULL,strResource,strResourceType ); - if( NULL == hres ) - return E_FAIL; - - // Load the resource - pMem = (void*)LoadResource( NULL, hres ); - if( NULL == pMem ) - return E_FAIL; - - // Store the size of the resource - dwSize = SizeofResource( NULL, hres ); - - // Set up our object description - ZeroMemory(&objdesc,sizeof(DMUS_OBJECTDESC)); - objdesc.dwSize = sizeof(DMUS_OBJECTDESC); - objdesc.dwValidData = DMUS_OBJ_MEMORY | DMUS_OBJ_CLASS; - objdesc.guidClass = CLSID_DirectMusicSegment; - objdesc.llMemLength =(LONGLONG)dwSize; - objdesc.pbMemData = (BYTE*)pMem; - - if (FAILED ( hr = m_pLoader->GetObject( &objdesc, - IID_IDirectMusicSegment8, - (void**)&pSegment ) ) ) - { - if( hr == DMUS_E_LOADER_FAILEDOPEN ) - return hr; - return DXTRACE_ERR( TEXT("LoadObjectFromFile"), hr ); - } - - *ppSegment = new CMusicSegment( m_pPerformance, m_pLoader, pSegment ); - if( NULL == *ppSegment ) - return E_OUTOFMEMORY; - - if( bIsMidiFile ) - { - // Do this to make sure that the default General MIDI set - // is connected appropriately to the MIDI file and - // all instruments sound correct. - if( FAILED( hr = pSegment->SetParam( GUID_StandardMIDIFile, - 0xFFFFFFFF, 0, 0, NULL ) ) ) - return DXTRACE_ERR( TEXT("SetParam"), hr ); - } - - if( bDownloadNow ) - { - // The segment needs to be download first before playing. - // However, some apps may want to wait before calling this - // to because the download allocates memory for the - // instruments. The more instruments currently downloaded, - // the more memory is in use by the synthesizer. - if( FAILED( hr = (*ppSegment)->Download() ) ) - return DXTRACE_ERR( TEXT("Download"), hr ); - } - - return S_OK; -} - - - - -//----------------------------------------------------------------------------- -// Name: CMusicManager::CreateScriptFromFile() -// Desc: -//----------------------------------------------------------------------------- -HRESULT CMusicManager::CreateScriptFromFile( CMusicScript** ppScript, - TCHAR* strFileName ) -{ - HRESULT hr; - IDirectMusicScript* pScript = NULL; - - // DMusic only takes wide strings - WCHAR wstrFileName[MAX_PATH]; - DXUtil_ConvertGenericStringToWide( wstrFileName, strFileName ); - - if ( FAILED( hr = m_pLoader->LoadObjectFromFile( CLSID_DirectMusicScript, - IID_IDirectMusicScript8, - wstrFileName, - (LPVOID*) &pScript ) ) ) - return DXTRACE_ERR_NOMSGBOX( TEXT("LoadObjectFromFile"), hr ); - - if ( FAILED( hr = pScript->Init( m_pPerformance, NULL ) ) ) - return DXTRACE_ERR( TEXT("Init"), hr ); - - *ppScript = new CMusicScript( m_pPerformance, m_pLoader, pScript ); - if (!*ppScript) - return E_OUTOFMEMORY; - - return hr; -} - - - - -//----------------------------------------------------------------------------- -// Name: CMusicManager::CreateChordMapFromFile() -// Desc: -//----------------------------------------------------------------------------- -HRESULT CMusicManager::CreateChordMapFromFile( IDirectMusicChordMap8** ppChordMap, - TCHAR* strFileName ) -{ - // DMusic only takes wide strings - WCHAR wstrFileName[MAX_PATH]; - DXUtil_ConvertGenericStringToWide( wstrFileName, strFileName ); - - return m_pLoader->LoadObjectFromFile( CLSID_DirectMusicChordMap, - IID_IDirectMusicChordMap8, - wstrFileName, (LPVOID*) ppChordMap ); -} - - - - -//----------------------------------------------------------------------------- -// Name: CMusicManager::CreateChordMapFromFile() -// Desc: -//----------------------------------------------------------------------------- -HRESULT CMusicManager::CreateStyleFromFile( IDirectMusicStyle8** ppStyle, - TCHAR* strFileName ) -{ - // DMusic only takes wide strings - WCHAR wstrFileName[MAX_PATH]; - DXUtil_ConvertGenericStringToWide( wstrFileName, strFileName ); - - return m_pLoader->LoadObjectFromFile( CLSID_DirectMusicStyle, - IID_IDirectMusicStyle8, - wstrFileName, (LPVOID*) ppStyle ); -} - - - - -//----------------------------------------------------------------------------- -// Name: CMusicManager::GetMotifFromStyle() -// Desc: -//----------------------------------------------------------------------------- -HRESULT CMusicManager::GetMotifFromStyle( IDirectMusicSegment8** ppMotif8, - TCHAR* strStyle, TCHAR* strMotif ) -{ - HRESULT hr; - IDirectMusicStyle8* pStyle = NULL; - IDirectMusicSegment* pMotif = NULL; - - if( FAILED( hr = CreateStyleFromFile( &pStyle, strStyle ) ) ) - return DXTRACE_ERR( TEXT("CreateStyleFromFile"), hr ); - - if( pStyle ) - { - // DMusic only takes wide strings - WCHAR wstrMotif[MAX_PATH]; - DXUtil_ConvertGenericStringToWide( wstrMotif, strMotif ); - - hr = pStyle->GetMotif( wstrMotif, &pMotif ); - SAFE_RELEASE( pStyle ); - - if( FAILED( hr ) ) - return DXTRACE_ERR( TEXT("GetMotif"), hr ); - - pMotif->QueryInterface( IID_IDirectMusicSegment8, (LPVOID*) ppMotif8 ); - } - - return S_OK; -} - - - - -//----------------------------------------------------------------------------- -// Name: CMusicSegment::CMusicSegment() -// Desc: Constructs the class -//----------------------------------------------------------------------------- -CMusicSegment::CMusicSegment( IDirectMusicPerformance8* pPerformance, - IDirectMusicLoader8* pLoader, - IDirectMusicSegment8* pSegment ) -{ - m_pPerformance = pPerformance; - m_pLoader = pLoader; - m_pSegment = pSegment; - m_pEmbeddedAudioPath = NULL; - m_bDownloaded = FALSE; - - // Try to pull out an audio path from the segment itself if there is one. - // This embedded audio path will be used instead of the default - // audio path if the app doesn't wish to use an overriding audio path. - IUnknown* pConfig = NULL; - if( SUCCEEDED( m_pSegment->GetAudioPathConfig( &pConfig ) ) ) - { - m_pPerformance->CreateAudioPath( pConfig, TRUE, &m_pEmbeddedAudioPath ); - SAFE_RELEASE( pConfig ); - } - -} - - - - -//----------------------------------------------------------------------------- -// Name: CMusicSegment::~CMusicSegment() -// Desc: Destroys the class -//----------------------------------------------------------------------------- -CMusicSegment::~CMusicSegment() -{ - if( m_pSegment ) - { - // Tell the loader that this object should now be released - if( m_pLoader ) - m_pLoader->ReleaseObjectByUnknown( m_pSegment ); - - if( m_bDownloaded ) - { - if( m_pEmbeddedAudioPath ) - m_pSegment->Unload( m_pEmbeddedAudioPath ); - else - m_pSegment->Unload( m_pPerformance ); - } - - SAFE_RELEASE( m_pEmbeddedAudioPath ); - SAFE_RELEASE( m_pSegment ); - } - - m_pPerformance = NULL; -} - - - - -//----------------------------------------------------------------------------- -// Name: CMusicSegment::Play() -// Desc: Plays the sound using voice management flags. Pass in DSBPLAY_LOOPING -// in the dwFlags to loop the sound -//----------------------------------------------------------------------------- -HRESULT CMusicSegment::Play( DWORD dwFlags, IDirectMusicAudioPath8* pAudioPath ) -{ - if( m_pSegment == NULL || m_pPerformance == NULL ) - return CO_E_NOTINITIALIZED; - - if( !m_bDownloaded ) - return E_FAIL; - - // If an audio path was passed in then use it, otherwise - // use the embedded audio path if there was one. - if( pAudioPath == NULL && m_pEmbeddedAudioPath != NULL ) - pAudioPath = m_pEmbeddedAudioPath; - - // If pAudioPath is NULL then this plays on the default audio path. - return m_pPerformance->PlaySegmentEx( m_pSegment, 0, NULL, dwFlags, - 0, 0, NULL, pAudioPath ); -} - - - - - -//----------------------------------------------------------------------------- -// Name: CMusicSegment::Download() -// Desc: -//----------------------------------------------------------------------------- -HRESULT CMusicSegment::Download( IDirectMusicAudioPath8* pAudioPath ) -{ - HRESULT hr; - - if( m_pSegment == NULL ) - return CO_E_NOTINITIALIZED; - - // If no audio path was passed in, then download - // to the embedded audio path if it exists - // else download to the performance - if( pAudioPath == NULL ) - { - if( m_pEmbeddedAudioPath ) - hr = m_pSegment->Download( m_pEmbeddedAudioPath ); - else - hr = m_pSegment->Download( m_pPerformance ); - } - else - { - hr = m_pSegment->Download( pAudioPath ); - } - - if ( SUCCEEDED( hr ) ) - m_bDownloaded = TRUE; - - return hr; -} - - - - -//----------------------------------------------------------------------------- -// Name: CMusicSegment::Unload() -// Desc: -//----------------------------------------------------------------------------- -HRESULT CMusicSegment::Unload( IDirectMusicAudioPath8* pAudioPath ) -{ - HRESULT hr; - - if( m_pSegment == NULL ) - return CO_E_NOTINITIALIZED; - - // If no audio path was passed in, then unload - // from the embedded audio path if it exists - // else unload from the performance - if( pAudioPath == NULL ) - { - if( m_pEmbeddedAudioPath ) - hr = m_pSegment->Unload( m_pEmbeddedAudioPath ); - else - hr = m_pSegment->Unload( m_pPerformance ); - } - else - { - hr = m_pSegment->Unload( pAudioPath ); - } - - if ( SUCCEEDED( hr ) ) - m_bDownloaded = FALSE; - - return hr; -} - - - - -//----------------------------------------------------------------------------- -// Name: CMusicSegment::IsPlaying() -// Desc: -//----------------------------------------------------------------------------- -BOOL CMusicSegment::IsPlaying() -{ - if( m_pSegment == NULL || m_pPerformance == NULL ) - return CO_E_NOTINITIALIZED; - - return ( m_pPerformance->IsPlaying( m_pSegment, NULL ) == S_OK ); -} - - - - -//----------------------------------------------------------------------------- -// Name: CMusicSegment::Stop() -// Desc: Stops the sound from playing -//----------------------------------------------------------------------------- -HRESULT CMusicSegment::Stop( DWORD dwFlags ) -{ - if( m_pSegment == NULL || m_pPerformance == NULL ) - return CO_E_NOTINITIALIZED; - - return m_pPerformance->Stop( m_pSegment, NULL, 0, dwFlags );; -} - - - - -//----------------------------------------------------------------------------- -// Name: CMusicSegment::SetRepeats() -// Desc: -//----------------------------------------------------------------------------- -HRESULT CMusicSegment::SetRepeats( DWORD dwRepeats ) -{ - if( m_pSegment == NULL ) - return CO_E_NOTINITIALIZED; - - return m_pSegment->SetRepeats( dwRepeats ); -} - - - - -//----------------------------------------------------------------------------- -// Name: CMusicSegment::GetStyle() -// Desc: -//----------------------------------------------------------------------------- -HRESULT CMusicSegment::GetStyle( IDirectMusicStyle8** ppStyle, DWORD dwStyleIndex ) -{ - // Get the Style from the Segment by calling the Segment's GetData() with - // the data type GUID_StyleTrackStyle. 0xffffffff indicates to look at - // tracks in all TrackGroups in the segment. The first 0 indicates to - // retrieve the Style from the first Track in the indicated TrackGroup. - // The second 0 indicates to retrieve the Style from the beginning of the - // segment, i.e. time 0 in Segment time. If this Segment was loaded from a - // section file, there is only one Style and it is at time 0. - return m_pSegment->GetParam( GUID_IDirectMusicStyle, 0xffffffff, dwStyleIndex, - 0, NULL, (VOID*)ppStyle ); -} - - - -//----------------------------------------------------------------------------- -// Name: CMusicScript::CMusicScript() -// Desc: Constructs the class -//----------------------------------------------------------------------------- -CMusicScript::CMusicScript( IDirectMusicPerformance8* pPerformance, - IDirectMusicLoader8* pLoader, - IDirectMusicScript8* pScript ) -{ - m_pPerformance = pPerformance; - m_pLoader = pLoader; - m_pScript = pScript; -} - - - - -//----------------------------------------------------------------------------- -// Name: CMusicScript::~CMusicScript() -// Desc: Destroys the class -//----------------------------------------------------------------------------- -CMusicScript::~CMusicScript() -{ - if( m_pLoader ) - { - // Tell the loader that this object should now be released - m_pLoader->ReleaseObjectByUnknown( m_pScript ); - m_pLoader = NULL; - } - - SAFE_RELEASE( m_pScript ); - m_pPerformance = NULL; -} - - - - -//----------------------------------------------------------------------------- -// Name: CMusicScript::Play() -// Desc: Calls a routine in the script -//----------------------------------------------------------------------------- -HRESULT CMusicScript::CallRoutine( TCHAR* strRoutine ) -{ - // DMusic only takes wide strings - WCHAR wstrRoutine[MAX_PATH]; - DXUtil_ConvertGenericStringToWide( wstrRoutine, strRoutine ); - - return m_pScript->CallRoutine( wstrRoutine, NULL ); -} - - - - -//----------------------------------------------------------------------------- -// Name: CMusicScript::SetVariableNumber() -// Desc: Sets the value of a variable in the script -//----------------------------------------------------------------------------- -HRESULT CMusicScript::SetVariableNumber( TCHAR* strVariable, LONG lValue ) -{ - // DMusic only takes wide strings - WCHAR wstrVariable[MAX_PATH]; - DXUtil_ConvertGenericStringToWide( wstrVariable, strVariable ); - - return m_pScript->SetVariableNumber( wstrVariable, lValue, NULL ); -} - - - - -//----------------------------------------------------------------------------- -// Name: CMusicScript::GetVariableNumber() -// Desc: Gets the value of a variable in the script -//----------------------------------------------------------------------------- -HRESULT CMusicScript::GetVariableNumber( TCHAR* strVariable, LONG* plValue ) -{ - // DMusic only takes wide strings - WCHAR wstrVariable[MAX_PATH]; - DXUtil_ConvertGenericStringToWide( wstrVariable, strVariable ); - - return m_pScript->GetVariableNumber( wstrVariable, plValue, NULL ); -} - - - diff --git a/plugins/!NotAdopted/sndVol/dmutil.h b/plugins/!NotAdopted/sndVol/dmutil.h deleted file mode 100644 index 99cc464e61..0000000000 --- a/plugins/!NotAdopted/sndVol/dmutil.h +++ /dev/null @@ -1,126 +0,0 @@ -//----------------------------------------------------------------------------- -// File: DMUtil.h -// -// Desc: -// -// Copyright (c) 1999-2001 Microsoft Corp. All rights reserved. -//----------------------------------------------------------------------------- -#ifndef DMUTIL_H -#define DMUTIL_H - -#include -#include -#include - - -//----------------------------------------------------------------------------- -// Classes used by this header -//----------------------------------------------------------------------------- -class CMusicManager; -class CMusicSegment; -class CMusicScript; - - - - -//----------------------------------------------------------------------------- -// Name: class CMusicManager -// Desc: -//----------------------------------------------------------------------------- -class CMusicManager -{ -protected: - BOOL m_bCleanupCOM; - IDirectMusicLoader8* m_pLoader; - IDirectMusicPerformance8* m_pPerformance; - -public: - CMusicManager(); - ~CMusicManager(); - - inline IDirectMusicLoader8* GetLoader() { return m_pLoader; } - inline IDirectMusicPerformance8* GetPerformance() { return m_pPerformance; } - IDirectMusicAudioPath8* GetDefaultAudioPath(); - - HRESULT Initialize( HWND hWnd, DWORD dwPChannels = 128, DWORD dwDefaultPathType = DMUS_APATH_DYNAMIC_STEREO ); - - HRESULT SetSearchDirectory( const TCHAR* strMediaPath ); - VOID CollectGarbage(); - - HRESULT CreateSegmentFromFile( CMusicSegment** ppSegment, TCHAR* strFileName, - BOOL bDownloadNow = TRUE, BOOL bIsMidiFile = FALSE ); - HRESULT CreateScriptFromFile( CMusicScript** ppScript, TCHAR* strFileName ); - - HRESULT CreateChordMapFromFile( IDirectMusicChordMap8** ppChordMap, TCHAR* strFileName ); - HRESULT CreateStyleFromFile( IDirectMusicStyle8** ppStyle, TCHAR* strFileName ); - HRESULT GetMotifFromStyle( IDirectMusicSegment8** ppMotif, TCHAR* strStyle, TCHAR* wstrMotif ); - - HRESULT CreateSegmentFromResource( CMusicSegment** ppSegment, TCHAR* strResource, TCHAR* strResourceType, - BOOL bDownloadNow = TRUE, BOOL bIsMidiFile = FALSE ); -}; - - - - -//----------------------------------------------------------------------------- -// Name: class CMusicSegment -// Desc: Encapsulates functionality of an IDirectMusicSegment -//----------------------------------------------------------------------------- -class CMusicSegment -{ -protected: - IDirectMusicSegment8* m_pSegment; - IDirectMusicLoader8* m_pLoader; - IDirectMusicPerformance8* m_pPerformance; - IDirectMusicAudioPath8* m_pEmbeddedAudioPath; - BOOL m_bDownloaded; - -public: - CMusicSegment( IDirectMusicPerformance8* pPerformance, - IDirectMusicLoader8* pLoader, - IDirectMusicSegment8* pSegment ); - virtual ~CMusicSegment(); - - inline IDirectMusicSegment8* GetSegment() { return m_pSegment; } - HRESULT GetStyle( IDirectMusicStyle8** ppStyle, DWORD dwStyleIndex = 0 ); - - HRESULT SetRepeats( DWORD dwRepeats ); - HRESULT Play( DWORD dwFlags = DMUS_SEGF_SECONDARY, IDirectMusicAudioPath8* pAudioPath = NULL ); - HRESULT Stop( DWORD dwFlags = 0 ); - HRESULT Download( IDirectMusicAudioPath8* pAudioPath = NULL ); - HRESULT Unload( IDirectMusicAudioPath8* pAudioPath = NULL ); - - BOOL IsPlaying(); -}; - - - - -//----------------------------------------------------------------------------- -// Name: class CMusicScript -// Desc: Encapsulates functionality of an IDirectMusicScript -//----------------------------------------------------------------------------- -class CMusicScript -{ -protected: - IDirectMusicScript8* m_pScript; - IDirectMusicLoader8* m_pLoader; - IDirectMusicPerformance8* m_pPerformance; - -public: - CMusicScript( IDirectMusicPerformance8* pPerformance, - IDirectMusicLoader8* pLoader, - IDirectMusicScript8* pScript ); - virtual ~CMusicScript(); - - inline IDirectMusicScript8* GetScript() { return m_pScript; } - - HRESULT CallRoutine( TCHAR* strRoutine ); - HRESULT SetVariableNumber( TCHAR* strVariable, LONG lValue ); - HRESULT GetVariableNumber( TCHAR* strVariable, LONG* plValue ); -}; - - - - -#endif // DMUTIL_H diff --git a/plugins/!NotAdopted/sndVol/dsound.h b/plugins/!NotAdopted/sndVol/dsound.h deleted file mode 100644 index c088b63a35..0000000000 --- a/plugins/!NotAdopted/sndVol/dsound.h +++ /dev/null @@ -1,2358 +0,0 @@ -/*==========================================================================; - * - * Copyright (c) Microsoft Corporation. All rights reserved. - * - * File: dsound.h - * Content: DirectSound include file - * - **************************************************************************/ - -#define COM_NO_WINDOWS_H -#include -#include - -#ifndef DIRECTSOUND_VERSION -#define DIRECTSOUND_VERSION 0x0900 /* Version 9.0 */ -#endif - -#ifdef __cplusplus -extern "C" { -#endif // __cplusplus - -#ifndef __DSOUND_INCLUDED__ -#define __DSOUND_INCLUDED__ - -/* Type definitions shared with Direct3D */ - -#ifndef DX_SHARED_DEFINES - -typedef float D3DVALUE, *LPD3DVALUE; - -#ifndef D3DCOLOR_DEFINED -typedef DWORD D3DCOLOR; -#define D3DCOLOR_DEFINED -#endif - -#ifndef LPD3DCOLOR_DEFINED -typedef DWORD *LPD3DCOLOR; -#define LPD3DCOLOR_DEFINED -#endif - -#ifndef D3DVECTOR_DEFINED -typedef struct _D3DVECTOR { - float x; - float y; - float z; -} D3DVECTOR; -#define D3DVECTOR_DEFINED -#endif - -#ifndef LPD3DVECTOR_DEFINED -typedef D3DVECTOR *LPD3DVECTOR; -#define LPD3DVECTOR_DEFINED -#endif - -#define DX_SHARED_DEFINES -#endif // DX_SHARED_DEFINES - -#define _FACDS 0x878 /* DirectSound's facility code */ -#define MAKE_DSHRESULT(code) MAKE_HRESULT(1, _FACDS, code) - -// DirectSound Component GUID {47D4D946-62E8-11CF-93BC-444553540000} -DEFINE_GUID(CLSID_DirectSound, 0x47d4d946, 0x62e8, 0x11cf, 0x93, 0xbc, 0x44, 0x45, 0x53, 0x54, 0x0, 0x0); - -// DirectSound 8.0 Component GUID {3901CC3F-84B5-4FA4-BA35-AA8172B8A09B} -DEFINE_GUID(CLSID_DirectSound8, 0x3901cc3f, 0x84b5, 0x4fa4, 0xba, 0x35, 0xaa, 0x81, 0x72, 0xb8, 0xa0, 0x9b); - -// DirectSound Capture Component GUID {B0210780-89CD-11D0-AF08-00A0C925CD16} -DEFINE_GUID(CLSID_DirectSoundCapture, 0xb0210780, 0x89cd, 0x11d0, 0xaf, 0x8, 0x0, 0xa0, 0xc9, 0x25, 0xcd, 0x16); - -// DirectSound 8.0 Capture Component GUID {E4BCAC13-7F99-4908-9A8E-74E3BF24B6E1} -DEFINE_GUID(CLSID_DirectSoundCapture8, 0xe4bcac13, 0x7f99, 0x4908, 0x9a, 0x8e, 0x74, 0xe3, 0xbf, 0x24, 0xb6, 0xe1); - -// DirectSound Full Duplex Component GUID {FEA4300C-7959-4147-B26A-2377B9E7A91D} -DEFINE_GUID(CLSID_DirectSoundFullDuplex, 0xfea4300c, 0x7959, 0x4147, 0xb2, 0x6a, 0x23, 0x77, 0xb9, 0xe7, 0xa9, 0x1d); - - -// DirectSound default playback device GUID {DEF00000-9C6D-47ED-AAF1-4DDA8F2B5C03} -DEFINE_GUID(DSDEVID_DefaultPlayback, 0xdef00000, 0x9c6d, 0x47ed, 0xaa, 0xf1, 0x4d, 0xda, 0x8f, 0x2b, 0x5c, 0x03); - -// DirectSound default capture device GUID {DEF00001-9C6D-47ED-AAF1-4DDA8F2B5C03} -DEFINE_GUID(DSDEVID_DefaultCapture, 0xdef00001, 0x9c6d, 0x47ed, 0xaa, 0xf1, 0x4d, 0xda, 0x8f, 0x2b, 0x5c, 0x03); - -// DirectSound default device for voice playback {DEF00002-9C6D-47ED-AAF1-4DDA8F2B5C03} -DEFINE_GUID(DSDEVID_DefaultVoicePlayback, 0xdef00002, 0x9c6d, 0x47ed, 0xaa, 0xf1, 0x4d, 0xda, 0x8f, 0x2b, 0x5c, 0x03); - -// DirectSound default device for voice capture {DEF00003-9C6D-47ED-AAF1-4DDA8F2B5C03} -DEFINE_GUID(DSDEVID_DefaultVoiceCapture, 0xdef00003, 0x9c6d, 0x47ed, 0xaa, 0xf1, 0x4d, 0xda, 0x8f, 0x2b, 0x5c, 0x03); - - -// -// Forward declarations for interfaces. -// 'struct' not 'class' per the way DECLARE_INTERFACE_ is defined -// - -#ifdef __cplusplus -struct IDirectSound; -struct IDirectSoundBuffer; -struct IDirectSound3DListener; -struct IDirectSound3DBuffer; -struct IDirectSoundCapture; -struct IDirectSoundCaptureBuffer; -struct IDirectSoundNotify; -#endif // __cplusplus - - -// -// DirectSound 8.0 interfaces. -// - -#if DIRECTSOUND_VERSION >= 0x0800 - -#ifdef __cplusplus -struct IDirectSound8; -struct IDirectSoundBuffer8; -struct IDirectSoundCaptureBuffer8; -struct IDirectSoundFXGargle; -struct IDirectSoundFXChorus; -struct IDirectSoundFXFlanger; -struct IDirectSoundFXEcho; -struct IDirectSoundFXDistortion; -struct IDirectSoundFXCompressor; -struct IDirectSoundFXParamEq; -struct IDirectSoundFXWavesReverb; -struct IDirectSoundFXI3DL2Reverb; -struct IDirectSoundCaptureFXAec; -struct IDirectSoundCaptureFXNoiseSuppress; -struct IDirectSoundFullDuplex; -#endif // __cplusplus - -// IDirectSound8, IDirectSoundBuffer8 and IDirectSoundCaptureBuffer8 are the -// only DirectSound 7.0 interfaces with changed functionality in version 8.0. -// The other level 8 interfaces as equivalent to their level 7 counterparts: - -#define IDirectSoundCapture8 IDirectSoundCapture -#define IDirectSound3DListener8 IDirectSound3DListener -#define IDirectSound3DBuffer8 IDirectSound3DBuffer -#define IDirectSoundNotify8 IDirectSoundNotify -#define IDirectSoundFXGargle8 IDirectSoundFXGargle -#define IDirectSoundFXChorus8 IDirectSoundFXChorus -#define IDirectSoundFXFlanger8 IDirectSoundFXFlanger -#define IDirectSoundFXEcho8 IDirectSoundFXEcho -#define IDirectSoundFXDistortion8 IDirectSoundFXDistortion -#define IDirectSoundFXCompressor8 IDirectSoundFXCompressor -#define IDirectSoundFXParamEq8 IDirectSoundFXParamEq -#define IDirectSoundFXWavesReverb8 IDirectSoundFXWavesReverb -#define IDirectSoundFXI3DL2Reverb8 IDirectSoundFXI3DL2Reverb -#define IDirectSoundCaptureFXAec8 IDirectSoundCaptureFXAec -#define IDirectSoundCaptureFXNoiseSuppress8 IDirectSoundCaptureFXNoiseSuppress -#define IDirectSoundFullDuplex8 IDirectSoundFullDuplex - -#endif // DIRECTSOUND_VERSION >= 0x0800 - -typedef struct IDirectSound *LPDIRECTSOUND; -typedef struct IDirectSoundBuffer *LPDIRECTSOUNDBUFFER; -typedef struct IDirectSound3DListener *LPDIRECTSOUND3DLISTENER; -typedef struct IDirectSound3DBuffer *LPDIRECTSOUND3DBUFFER; -typedef struct IDirectSoundCapture *LPDIRECTSOUNDCAPTURE; -typedef struct IDirectSoundCaptureBuffer *LPDIRECTSOUNDCAPTUREBUFFER; -typedef struct IDirectSoundNotify *LPDIRECTSOUNDNOTIFY; - - -#if DIRECTSOUND_VERSION >= 0x0800 - -typedef struct IDirectSoundFXGargle *LPDIRECTSOUNDFXGARGLE; -typedef struct IDirectSoundFXChorus *LPDIRECTSOUNDFXCHORUS; -typedef struct IDirectSoundFXFlanger *LPDIRECTSOUNDFXFLANGER; -typedef struct IDirectSoundFXEcho *LPDIRECTSOUNDFXECHO; -typedef struct IDirectSoundFXDistortion *LPDIRECTSOUNDFXDISTORTION; -typedef struct IDirectSoundFXCompressor *LPDIRECTSOUNDFXCOMPRESSOR; -typedef struct IDirectSoundFXParamEq *LPDIRECTSOUNDFXPARAMEQ; -typedef struct IDirectSoundFXWavesReverb *LPDIRECTSOUNDFXWAVESREVERB; -typedef struct IDirectSoundFXI3DL2Reverb *LPDIRECTSOUNDFXI3DL2REVERB; -typedef struct IDirectSoundCaptureFXAec *LPDIRECTSOUNDCAPTUREFXAEC; -typedef struct IDirectSoundCaptureFXNoiseSuppress *LPDIRECTSOUNDCAPTUREFXNOISESUPPRESS; -typedef struct IDirectSoundFullDuplex *LPDIRECTSOUNDFULLDUPLEX; - -typedef struct IDirectSound8 *LPDIRECTSOUND8; -typedef struct IDirectSoundBuffer8 *LPDIRECTSOUNDBUFFER8; -typedef struct IDirectSound3DListener8 *LPDIRECTSOUND3DLISTENER8; -typedef struct IDirectSound3DBuffer8 *LPDIRECTSOUND3DBUFFER8; -typedef struct IDirectSoundCapture8 *LPDIRECTSOUNDCAPTURE8; -typedef struct IDirectSoundCaptureBuffer8 *LPDIRECTSOUNDCAPTUREBUFFER8; -typedef struct IDirectSoundNotify8 *LPDIRECTSOUNDNOTIFY8; -typedef struct IDirectSoundFXGargle8 *LPDIRECTSOUNDFXGARGLE8; -typedef struct IDirectSoundFXChorus8 *LPDIRECTSOUNDFXCHORUS8; -typedef struct IDirectSoundFXFlanger8 *LPDIRECTSOUNDFXFLANGER8; -typedef struct IDirectSoundFXEcho8 *LPDIRECTSOUNDFXECHO8; -typedef struct IDirectSoundFXDistortion8 *LPDIRECTSOUNDFXDISTORTION8; -typedef struct IDirectSoundFXCompressor8 *LPDIRECTSOUNDFXCOMPRESSOR8; -typedef struct IDirectSoundFXParamEq8 *LPDIRECTSOUNDFXPARAMEQ8; -typedef struct IDirectSoundFXWavesReverb8 *LPDIRECTSOUNDFXWAVESREVERB8; -typedef struct IDirectSoundFXI3DL2Reverb8 *LPDIRECTSOUNDFXI3DL2REVERB8; -typedef struct IDirectSoundCaptureFXAec8 *LPDIRECTSOUNDCAPTUREFXAEC8; -typedef struct IDirectSoundCaptureFXNoiseSuppress8 *LPDIRECTSOUNDCAPTUREFXNOISESUPPRESS8; -typedef struct IDirectSoundFullDuplex8 *LPDIRECTSOUNDFULLDUPLEX8; - -#endif // DIRECTSOUND_VERSION >= 0x0800 - -// -// IID definitions for the unchanged DirectSound 8.0 interfaces -// - -#if DIRECTSOUND_VERSION >= 0x0800 - -#define IID_IDirectSoundCapture8 IID_IDirectSoundCapture -#define IID_IDirectSound3DListener8 IID_IDirectSound3DListener -#define IID_IDirectSound3DBuffer8 IID_IDirectSound3DBuffer -#define IID_IDirectSoundNotify8 IID_IDirectSoundNotify -#define IID_IDirectSoundFXGargle8 IID_IDirectSoundFXGargle -#define IID_IDirectSoundFXChorus8 IID_IDirectSoundFXChorus -#define IID_IDirectSoundFXFlanger8 IID_IDirectSoundFXFlanger -#define IID_IDirectSoundFXEcho8 IID_IDirectSoundFXEcho -#define IID_IDirectSoundFXDistortion8 IID_IDirectSoundFXDistortion -#define IID_IDirectSoundFXCompressor8 IID_IDirectSoundFXCompressor -#define IID_IDirectSoundFXParamEq8 IID_IDirectSoundFXParamEq -#define IID_IDirectSoundFXWavesReverb8 IID_IDirectSoundFXWavesReverb -#define IID_IDirectSoundFXI3DL2Reverb8 IID_IDirectSoundFXI3DL2Reverb -#define IID_IDirectSoundCaptureFXAec8 IID_IDirectSoundCaptureFXAec -#define IID_IDirectSoundCaptureFXNoiseSuppress8 IID_IDirectSoundCaptureFXNoiseSuppress -#define IID_IDirectSoundFullDuplex8 IID_IDirectSoundFullDuplex - -#endif // DIRECTSOUND_VERSION >= 0x0800 - -// -// Compatibility typedefs -// - -#ifndef _LPCWAVEFORMATEX_DEFINED -#define _LPCWAVEFORMATEX_DEFINED -typedef const WAVEFORMATEX *LPCWAVEFORMATEX; -#endif // _LPCWAVEFORMATEX_DEFINED - -#ifndef __LPCGUID_DEFINED__ -#define __LPCGUID_DEFINED__ -typedef const GUID *LPCGUID; -#endif // __LPCGUID_DEFINED__ - -typedef LPDIRECTSOUND *LPLPDIRECTSOUND; -typedef LPDIRECTSOUNDBUFFER *LPLPDIRECTSOUNDBUFFER; -typedef LPDIRECTSOUND3DLISTENER *LPLPDIRECTSOUND3DLISTENER; -typedef LPDIRECTSOUND3DBUFFER *LPLPDIRECTSOUND3DBUFFER; -typedef LPDIRECTSOUNDCAPTURE *LPLPDIRECTSOUNDCAPTURE; -typedef LPDIRECTSOUNDCAPTUREBUFFER *LPLPDIRECTSOUNDCAPTUREBUFFER; -typedef LPDIRECTSOUNDNOTIFY *LPLPDIRECTSOUNDNOTIFY; - -#if DIRECTSOUND_VERSION >= 0x0800 -typedef LPDIRECTSOUND8 *LPLPDIRECTSOUND8; -typedef LPDIRECTSOUNDBUFFER8 *LPLPDIRECTSOUNDBUFFER8; -typedef LPDIRECTSOUNDCAPTURE8 *LPLPDIRECTSOUNDCAPTURE8; -typedef LPDIRECTSOUNDCAPTUREBUFFER8 *LPLPDIRECTSOUNDCAPTUREBUFFER8; -#endif // DIRECTSOUND_VERSION >= 0x0800 - -// -// Structures -// - -typedef struct _DSCAPS -{ - DWORD dwSize; - DWORD dwFlags; - DWORD dwMinSecondarySampleRate; - DWORD dwMaxSecondarySampleRate; - DWORD dwPrimaryBuffers; - DWORD dwMaxHwMixingAllBuffers; - DWORD dwMaxHwMixingStaticBuffers; - DWORD dwMaxHwMixingStreamingBuffers; - DWORD dwFreeHwMixingAllBuffers; - DWORD dwFreeHwMixingStaticBuffers; - DWORD dwFreeHwMixingStreamingBuffers; - DWORD dwMaxHw3DAllBuffers; - DWORD dwMaxHw3DStaticBuffers; - DWORD dwMaxHw3DStreamingBuffers; - DWORD dwFreeHw3DAllBuffers; - DWORD dwFreeHw3DStaticBuffers; - DWORD dwFreeHw3DStreamingBuffers; - DWORD dwTotalHwMemBytes; - DWORD dwFreeHwMemBytes; - DWORD dwMaxContigFreeHwMemBytes; - DWORD dwUnlockTransferRateHwBuffers; - DWORD dwPlayCpuOverheadSwBuffers; - DWORD dwReserved1; - DWORD dwReserved2; -} DSCAPS, *LPDSCAPS; - -typedef const DSCAPS *LPCDSCAPS; - -typedef struct _DSBCAPS -{ - DWORD dwSize; - DWORD dwFlags; - DWORD dwBufferBytes; - DWORD dwUnlockTransferRate; - DWORD dwPlayCpuOverhead; -} DSBCAPS, *LPDSBCAPS; - -typedef const DSBCAPS *LPCDSBCAPS; - -#if DIRECTSOUND_VERSION >= 0x0800 - - typedef struct _DSEFFECTDESC - { - DWORD dwSize; - DWORD dwFlags; - GUID guidDSFXClass; - DWORD_PTR dwReserved1; - DWORD_PTR dwReserved2; - } DSEFFECTDESC, *LPDSEFFECTDESC; - typedef const DSEFFECTDESC *LPCDSEFFECTDESC; - - #define DSFX_LOCHARDWARE 0x00000001 - #define DSFX_LOCSOFTWARE 0x00000002 - - enum - { - DSFXR_PRESENT, // 0 - DSFXR_LOCHARDWARE, // 1 - DSFXR_LOCSOFTWARE, // 2 - DSFXR_UNALLOCATED, // 3 - DSFXR_FAILED, // 4 - DSFXR_UNKNOWN, // 5 - DSFXR_SENDLOOP // 6 - }; - - typedef struct _DSCEFFECTDESC - { - DWORD dwSize; - DWORD dwFlags; - GUID guidDSCFXClass; - GUID guidDSCFXInstance; - DWORD dwReserved1; - DWORD dwReserved2; - } DSCEFFECTDESC, *LPDSCEFFECTDESC; - typedef const DSCEFFECTDESC *LPCDSCEFFECTDESC; - - #define DSCFX_LOCHARDWARE 0x00000001 - #define DSCFX_LOCSOFTWARE 0x00000002 - - #define DSCFXR_LOCHARDWARE 0x00000010 - #define DSCFXR_LOCSOFTWARE 0x00000020 - -#endif // DIRECTSOUND_VERSION >= 0x0800 - -typedef struct _DSBUFFERDESC -{ - DWORD dwSize; - DWORD dwFlags; - DWORD dwBufferBytes; - DWORD dwReserved; - LPWAVEFORMATEX lpwfxFormat; -#if DIRECTSOUND_VERSION >= 0x0700 - GUID guid3DAlgorithm; -#endif -} DSBUFFERDESC, *LPDSBUFFERDESC; - -typedef const DSBUFFERDESC *LPCDSBUFFERDESC; - -// Older version of this structure: - -typedef struct _DSBUFFERDESC1 -{ - DWORD dwSize; - DWORD dwFlags; - DWORD dwBufferBytes; - DWORD dwReserved; - LPWAVEFORMATEX lpwfxFormat; -} DSBUFFERDESC1, *LPDSBUFFERDESC1; - -typedef const DSBUFFERDESC1 *LPCDSBUFFERDESC1; - -typedef struct _DS3DBUFFER -{ - DWORD dwSize; - D3DVECTOR vPosition; - D3DVECTOR vVelocity; - DWORD dwInsideConeAngle; - DWORD dwOutsideConeAngle; - D3DVECTOR vConeOrientation; - LONG lConeOutsideVolume; - D3DVALUE flMinDistance; - D3DVALUE flMaxDistance; - DWORD dwMode; -} DS3DBUFFER, *LPDS3DBUFFER; - -typedef const DS3DBUFFER *LPCDS3DBUFFER; - -typedef struct _DS3DLISTENER -{ - DWORD dwSize; - D3DVECTOR vPosition; - D3DVECTOR vVelocity; - D3DVECTOR vOrientFront; - D3DVECTOR vOrientTop; - D3DVALUE flDistanceFactor; - D3DVALUE flRolloffFactor; - D3DVALUE flDopplerFactor; -} DS3DLISTENER, *LPDS3DLISTENER; - -typedef const DS3DLISTENER *LPCDS3DLISTENER; - -typedef struct _DSCCAPS -{ - DWORD dwSize; - DWORD dwFlags; - DWORD dwFormats; - DWORD dwChannels; -} DSCCAPS, *LPDSCCAPS; - -typedef const DSCCAPS *LPCDSCCAPS; - -typedef struct _DSCBUFFERDESC1 -{ - DWORD dwSize; - DWORD dwFlags; - DWORD dwBufferBytes; - DWORD dwReserved; - LPWAVEFORMATEX lpwfxFormat; -} DSCBUFFERDESC1, *LPDSCBUFFERDESC1; - -typedef struct _DSCBUFFERDESC -{ - DWORD dwSize; - DWORD dwFlags; - DWORD dwBufferBytes; - DWORD dwReserved; - LPWAVEFORMATEX lpwfxFormat; -#if DIRECTSOUND_VERSION >= 0x0800 - DWORD dwFXCount; - LPDSCEFFECTDESC lpDSCFXDesc; -#endif -} DSCBUFFERDESC, *LPDSCBUFFERDESC; - -typedef const DSCBUFFERDESC *LPCDSCBUFFERDESC; - -typedef struct _DSCBCAPS -{ - DWORD dwSize; - DWORD dwFlags; - DWORD dwBufferBytes; - DWORD dwReserved; -} DSCBCAPS, *LPDSCBCAPS; - -typedef const DSCBCAPS *LPCDSCBCAPS; - -typedef struct _DSBPOSITIONNOTIFY -{ - DWORD dwOffset; - HANDLE hEventNotify; -} DSBPOSITIONNOTIFY, *LPDSBPOSITIONNOTIFY; - -typedef const DSBPOSITIONNOTIFY *LPCDSBPOSITIONNOTIFY; - -// -// DirectSound API -// - -typedef BOOL (CALLBACK *LPDSENUMCALLBACKA)(LPGUID, LPCSTR, LPCSTR, LPVOID); -typedef BOOL (CALLBACK *LPDSENUMCALLBACKW)(LPGUID, LPCWSTR, LPCWSTR, LPVOID); - -extern HRESULT WINAPI DirectSoundCreate(LPCGUID pcGuidDevice, LPDIRECTSOUND *ppDS, LPUNKNOWN pUnkOuter); -extern HRESULT WINAPI DirectSoundEnumerateA(LPDSENUMCALLBACKA pDSEnumCallback, LPVOID pContext); -extern HRESULT WINAPI DirectSoundEnumerateW(LPDSENUMCALLBACKW pDSEnumCallback, LPVOID pContext); - -extern HRESULT WINAPI DirectSoundCaptureCreate(LPCGUID pcGuidDevice, LPDIRECTSOUNDCAPTURE *ppDSC, LPUNKNOWN pUnkOuter); -extern HRESULT WINAPI DirectSoundCaptureEnumerateA(LPDSENUMCALLBACKA pDSEnumCallback, LPVOID pContext); -extern HRESULT WINAPI DirectSoundCaptureEnumerateW(LPDSENUMCALLBACKW pDSEnumCallback, LPVOID pContext); - -#if DIRECTSOUND_VERSION >= 0x0800 -extern HRESULT WINAPI DirectSoundCreate8(LPCGUID pcGuidDevice, LPDIRECTSOUND8 *ppDS8, LPUNKNOWN pUnkOuter); -extern HRESULT WINAPI DirectSoundCaptureCreate8(LPCGUID pcGuidDevice, LPDIRECTSOUNDCAPTURE8 *ppDSC8, LPUNKNOWN pUnkOuter); -extern HRESULT WINAPI DirectSoundFullDuplexCreate(LPCGUID pcGuidCaptureDevice, LPCGUID pcGuidRenderDevice, - LPCDSCBUFFERDESC pcDSCBufferDesc, LPCDSBUFFERDESC pcDSBufferDesc, HWND hWnd, - DWORD dwLevel, LPDIRECTSOUNDFULLDUPLEX* ppDSFD, LPDIRECTSOUNDCAPTUREBUFFER8 *ppDSCBuffer8, - LPDIRECTSOUNDBUFFER8 *ppDSBuffer8, LPUNKNOWN pUnkOuter); -#define DirectSoundFullDuplexCreate8 DirectSoundFullDuplexCreate - -extern HRESULT WINAPI GetDeviceID(LPCGUID pGuidSrc, LPGUID pGuidDest); -#endif // DIRECTSOUND_VERSION >= 0x0800 - -#ifdef UNICODE -#define LPDSENUMCALLBACK LPDSENUMCALLBACKW -#define DirectSoundEnumerate DirectSoundEnumerateW -#define DirectSoundCaptureEnumerate DirectSoundCaptureEnumerateW -#else // UNICODE -#define LPDSENUMCALLBACK LPDSENUMCALLBACKA -#define DirectSoundEnumerate DirectSoundEnumerateA -#define DirectSoundCaptureEnumerate DirectSoundCaptureEnumerateA -#endif // UNICODE - -// -// IUnknown -// - -#if !defined(__cplusplus) || defined(CINTERFACE) -#ifndef IUnknown_QueryInterface -#define IUnknown_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) -#endif // IUnknown_QueryInterface -#ifndef IUnknown_AddRef -#define IUnknown_AddRef(p) (p)->lpVtbl->AddRef(p) -#endif // IUnknown_AddRef -#ifndef IUnknown_Release -#define IUnknown_Release(p) (p)->lpVtbl->Release(p) -#endif // IUnknown_Release -#else // !defined(__cplusplus) || defined(CINTERFACE) -#ifndef IUnknown_QueryInterface -#define IUnknown_QueryInterface(p,a,b) (p)->QueryInterface(a,b) -#endif // IUnknown_QueryInterface -#ifndef IUnknown_AddRef -#define IUnknown_AddRef(p) (p)->AddRef() -#endif // IUnknown_AddRef -#ifndef IUnknown_Release -#define IUnknown_Release(p) (p)->Release() -#endif // IUnknown_Release -#endif // !defined(__cplusplus) || defined(CINTERFACE) - -#ifndef __IReferenceClock_INTERFACE_DEFINED__ -#define __IReferenceClock_INTERFACE_DEFINED__ - -typedef LONGLONG REFERENCE_TIME; -typedef REFERENCE_TIME *LPREFERENCE_TIME; - -DEFINE_GUID(IID_IReferenceClock, 0x56a86897, 0x0ad4, 0x11ce, 0xb0, 0x3a, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70); - -#undef INTERFACE -#define INTERFACE IReferenceClock - -DECLARE_INTERFACE_(IReferenceClock, IUnknown) -{ - // IUnknown methods - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - // IReferenceClock methods - STDMETHOD(GetTime) (THIS_ REFERENCE_TIME *pTime) PURE; - STDMETHOD(AdviseTime) (THIS_ REFERENCE_TIME rtBaseTime, REFERENCE_TIME rtStreamTime, - HANDLE hEvent, LPDWORD pdwAdviseCookie) PURE; - STDMETHOD(AdvisePeriodic) (THIS_ REFERENCE_TIME rtStartTime, REFERENCE_TIME rtPeriodTime, - HANDLE hSemaphore, LPDWORD pdwAdviseCookie) PURE; - STDMETHOD(Unadvise) (THIS_ DWORD dwAdviseCookie) PURE; -}; - -#endif // __IReferenceClock_INTERFACE_DEFINED__ - -#ifndef IReferenceClock_QueryInterface - -#define IReferenceClock_QueryInterface(p,a,b) IUnknown_QueryInterface(p,a,b) -#define IReferenceClock_AddRef(p) IUnknown_AddRef(p) -#define IReferenceClock_Release(p) IUnknown_Release(p) - -#if !defined(__cplusplus) || defined(CINTERFACE) -#define IReferenceClock_GetTime(p,a) (p)->lpVtbl->GetTime(p,a) -#define IReferenceClock_AdviseTime(p,a,b,c,d) (p)->lpVtbl->AdviseTime(p,a,b,c,d) -#define IReferenceClock_AdvisePeriodic(p,a,b,c,d) (p)->lpVtbl->AdvisePeriodic(p,a,b,c,d) -#define IReferenceClock_Unadvise(p,a) (p)->lpVtbl->Unadvise(p,a) -#else // !defined(__cplusplus) || defined(CINTERFACE) -#define IReferenceClock_GetTime(p,a) (p)->GetTime(a) -#define IReferenceClock_AdviseTime(p,a,b,c,d) (p)->AdviseTime(a,b,c,d) -#define IReferenceClock_AdvisePeriodic(p,a,b,c,d) (p)->AdvisePeriodic(a,b,c,d) -#define IReferenceClock_Unadvise(p,a) (p)->Unadvise(a) -#endif // !defined(__cplusplus) || defined(CINTERFACE) - -#endif // IReferenceClock_QueryInterface - -// -// IDirectSound -// - -DEFINE_GUID(IID_IDirectSound, 0x279AFA83, 0x4981, 0x11CE, 0xA5, 0x21, 0x00, 0x20, 0xAF, 0x0B, 0xE5, 0x60); - -#undef INTERFACE -#define INTERFACE IDirectSound - -DECLARE_INTERFACE_(IDirectSound, IUnknown) -{ - // IUnknown methods - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - // IDirectSound methods - STDMETHOD(CreateSoundBuffer) (THIS_ LPCDSBUFFERDESC pcDSBufferDesc, LPDIRECTSOUNDBUFFER *ppDSBuffer, LPUNKNOWN pUnkOuter) PURE; - STDMETHOD(GetCaps) (THIS_ LPDSCAPS pDSCaps) PURE; - STDMETHOD(DuplicateSoundBuffer) (THIS_ LPDIRECTSOUNDBUFFER pDSBufferOriginal, LPDIRECTSOUNDBUFFER *ppDSBufferDuplicate) PURE; - STDMETHOD(SetCooperativeLevel) (THIS_ HWND hwnd, DWORD dwLevel) PURE; - STDMETHOD(Compact) (THIS) PURE; - STDMETHOD(GetSpeakerConfig) (THIS_ LPDWORD pdwSpeakerConfig) PURE; - STDMETHOD(SetSpeakerConfig) (THIS_ DWORD dwSpeakerConfig) PURE; - STDMETHOD(Initialize) (THIS_ LPCGUID pcGuidDevice) PURE; -}; - -#define IDirectSound_QueryInterface(p,a,b) IUnknown_QueryInterface(p,a,b) -#define IDirectSound_AddRef(p) IUnknown_AddRef(p) -#define IDirectSound_Release(p) IUnknown_Release(p) - -#if !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSound_CreateSoundBuffer(p,a,b,c) (p)->lpVtbl->CreateSoundBuffer(p,a,b,c) -#define IDirectSound_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a) -#define IDirectSound_DuplicateSoundBuffer(p,a,b) (p)->lpVtbl->DuplicateSoundBuffer(p,a,b) -#define IDirectSound_SetCooperativeLevel(p,a,b) (p)->lpVtbl->SetCooperativeLevel(p,a,b) -#define IDirectSound_Compact(p) (p)->lpVtbl->Compact(p) -#define IDirectSound_GetSpeakerConfig(p,a) (p)->lpVtbl->GetSpeakerConfig(p,a) -#define IDirectSound_SetSpeakerConfig(p,b) (p)->lpVtbl->SetSpeakerConfig(p,b) -#define IDirectSound_Initialize(p,a) (p)->lpVtbl->Initialize(p,a) -#else // !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSound_CreateSoundBuffer(p,a,b,c) (p)->CreateSoundBuffer(a,b,c) -#define IDirectSound_GetCaps(p,a) (p)->GetCaps(a) -#define IDirectSound_DuplicateSoundBuffer(p,a,b) (p)->DuplicateSoundBuffer(a,b) -#define IDirectSound_SetCooperativeLevel(p,a,b) (p)->SetCooperativeLevel(a,b) -#define IDirectSound_Compact(p) (p)->Compact() -#define IDirectSound_GetSpeakerConfig(p,a) (p)->GetSpeakerConfig(a) -#define IDirectSound_SetSpeakerConfig(p,b) (p)->SetSpeakerConfig(b) -#define IDirectSound_Initialize(p,a) (p)->Initialize(a) -#endif // !defined(__cplusplus) || defined(CINTERFACE) - -#if DIRECTSOUND_VERSION >= 0x0800 - -// -// IDirectSound8 -// - -DEFINE_GUID(IID_IDirectSound8, 0xC50A7E93, 0xF395, 0x4834, 0x9E, 0xF6, 0x7F, 0xA9, 0x9D, 0xE5, 0x09, 0x66); - -#undef INTERFACE -#define INTERFACE IDirectSound8 - -DECLARE_INTERFACE_(IDirectSound8, IDirectSound) -{ - // IUnknown methods - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - // IDirectSound methods - STDMETHOD(CreateSoundBuffer) (THIS_ LPCDSBUFFERDESC pcDSBufferDesc, LPDIRECTSOUNDBUFFER *ppDSBuffer, LPUNKNOWN pUnkOuter) PURE; - STDMETHOD(GetCaps) (THIS_ LPDSCAPS pDSCaps) PURE; - STDMETHOD(DuplicateSoundBuffer) (THIS_ LPDIRECTSOUNDBUFFER pDSBufferOriginal, LPDIRECTSOUNDBUFFER *ppDSBufferDuplicate) PURE; - STDMETHOD(SetCooperativeLevel) (THIS_ HWND hwnd, DWORD dwLevel) PURE; - STDMETHOD(Compact) (THIS) PURE; - STDMETHOD(GetSpeakerConfig) (THIS_ LPDWORD pdwSpeakerConfig) PURE; - STDMETHOD(SetSpeakerConfig) (THIS_ DWORD dwSpeakerConfig) PURE; - STDMETHOD(Initialize) (THIS_ LPCGUID pcGuidDevice) PURE; - - // IDirectSound8 methods - STDMETHOD(VerifyCertification) (THIS_ LPDWORD pdwCertified) PURE; -}; - -#define IDirectSound8_QueryInterface(p,a,b) IDirectSound_QueryInterface(p,a,b) -#define IDirectSound8_AddRef(p) IDirectSound_AddRef(p) -#define IDirectSound8_Release(p) IDirectSound_Release(p) -#define IDirectSound8_CreateSoundBuffer(p,a,b,c) IDirectSound_CreateSoundBuffer(p,a,b,c) -#define IDirectSound8_GetCaps(p,a) IDirectSound_GetCaps(p,a) -#define IDirectSound8_DuplicateSoundBuffer(p,a,b) IDirectSound_DuplicateSoundBuffer(p,a,b) -#define IDirectSound8_SetCooperativeLevel(p,a,b) IDirectSound_SetCooperativeLevel(p,a,b) -#define IDirectSound8_Compact(p) IDirectSound_Compact(p) -#define IDirectSound8_GetSpeakerConfig(p,a) IDirectSound_GetSpeakerConfig(p,a) -#define IDirectSound8_SetSpeakerConfig(p,a) IDirectSound_SetSpeakerConfig(p,a) -#define IDirectSound8_Initialize(p,a) IDirectSound_Initialize(p,a) - -#if !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSound8_VerifyCertification(p,a) (p)->lpVtbl->VerifyCertification(p,a) -#else // !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSound8_VerifyCertification(p,a) (p)->VerifyCertification(a) -#endif // !defined(__cplusplus) || defined(CINTERFACE) - -#endif // DIRECTSOUND_VERSION >= 0x0800 - -// -// IDirectSoundBuffer -// - -DEFINE_GUID(IID_IDirectSoundBuffer, 0x279AFA85, 0x4981, 0x11CE, 0xA5, 0x21, 0x00, 0x20, 0xAF, 0x0B, 0xE5, 0x60); - -#undef INTERFACE -#define INTERFACE IDirectSoundBuffer - -DECLARE_INTERFACE_(IDirectSoundBuffer, IUnknown) -{ - // IUnknown methods - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - // IDirectSoundBuffer methods - STDMETHOD(GetCaps) (THIS_ LPDSBCAPS pDSBufferCaps) PURE; - STDMETHOD(GetCurrentPosition) (THIS_ LPDWORD pdwCurrentPlayCursor, LPDWORD pdwCurrentWriteCursor) PURE; - STDMETHOD(GetFormat) (THIS_ LPWAVEFORMATEX pwfxFormat, DWORD dwSizeAllocated, LPDWORD pdwSizeWritten) PURE; - STDMETHOD(GetVolume) (THIS_ LPLONG plVolume) PURE; - STDMETHOD(GetPan) (THIS_ LPLONG plPan) PURE; - STDMETHOD(GetFrequency) (THIS_ LPDWORD pdwFrequency) PURE; - STDMETHOD(GetStatus) (THIS_ LPDWORD pdwStatus) PURE; - STDMETHOD(Initialize) (THIS_ LPDIRECTSOUND pDirectSound, LPCDSBUFFERDESC pcDSBufferDesc) PURE; - STDMETHOD(Lock) (THIS_ DWORD dwOffset, DWORD dwBytes, LPVOID *ppvAudioPtr1, LPDWORD pdwAudioBytes1, - LPVOID *ppvAudioPtr2, LPDWORD pdwAudioBytes2, DWORD dwFlags) PURE; - STDMETHOD(Play) (THIS_ DWORD dwReserved1, DWORD dwPriority, DWORD dwFlags) PURE; - STDMETHOD(SetCurrentPosition) (THIS_ DWORD dwNewPosition) PURE; - STDMETHOD(SetFormat) (THIS_ LPCWAVEFORMATEX pcfxFormat) PURE; - STDMETHOD(SetVolume) (THIS_ LONG lVolume) PURE; - STDMETHOD(SetPan) (THIS_ LONG lPan) PURE; - STDMETHOD(SetFrequency) (THIS_ DWORD dwFrequency) PURE; - STDMETHOD(Stop) (THIS) PURE; - STDMETHOD(Unlock) (THIS_ LPVOID pvAudioPtr1, DWORD dwAudioBytes1, LPVOID pvAudioPtr2, DWORD dwAudioBytes2) PURE; - STDMETHOD(Restore) (THIS) PURE; -}; - -#define IDirectSoundBuffer_QueryInterface(p,a,b) IUnknown_QueryInterface(p,a,b) -#define IDirectSoundBuffer_AddRef(p) IUnknown_AddRef(p) -#define IDirectSoundBuffer_Release(p) IUnknown_Release(p) - -#if !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSoundBuffer_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a) -#define IDirectSoundBuffer_GetCurrentPosition(p,a,b) (p)->lpVtbl->GetCurrentPosition(p,a,b) -#define IDirectSoundBuffer_GetFormat(p,a,b,c) (p)->lpVtbl->GetFormat(p,a,b,c) -#define IDirectSoundBuffer_GetVolume(p,a) (p)->lpVtbl->GetVolume(p,a) -#define IDirectSoundBuffer_GetPan(p,a) (p)->lpVtbl->GetPan(p,a) -#define IDirectSoundBuffer_GetFrequency(p,a) (p)->lpVtbl->GetFrequency(p,a) -#define IDirectSoundBuffer_GetStatus(p,a) (p)->lpVtbl->GetStatus(p,a) -#define IDirectSoundBuffer_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b) -#define IDirectSoundBuffer_Lock(p,a,b,c,d,e,f,g) (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g) -#define IDirectSoundBuffer_Play(p,a,b,c) (p)->lpVtbl->Play(p,a,b,c) -#define IDirectSoundBuffer_SetCurrentPosition(p,a) (p)->lpVtbl->SetCurrentPosition(p,a) -#define IDirectSoundBuffer_SetFormat(p,a) (p)->lpVtbl->SetFormat(p,a) -#define IDirectSoundBuffer_SetVolume(p,a) (p)->lpVtbl->SetVolume(p,a) -#define IDirectSoundBuffer_SetPan(p,a) (p)->lpVtbl->SetPan(p,a) -#define IDirectSoundBuffer_SetFrequency(p,a) (p)->lpVtbl->SetFrequency(p,a) -#define IDirectSoundBuffer_Stop(p) (p)->lpVtbl->Stop(p) -#define IDirectSoundBuffer_Unlock(p,a,b,c,d) (p)->lpVtbl->Unlock(p,a,b,c,d) -#define IDirectSoundBuffer_Restore(p) (p)->lpVtbl->Restore(p) -#else // !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSoundBuffer_GetCaps(p,a) (p)->GetCaps(a) -#define IDirectSoundBuffer_GetCurrentPosition(p,a,b) (p)->GetCurrentPosition(a,b) -#define IDirectSoundBuffer_GetFormat(p,a,b,c) (p)->GetFormat(a,b,c) -#define IDirectSoundBuffer_GetVolume(p,a) (p)->GetVolume(a) -#define IDirectSoundBuffer_GetPan(p,a) (p)->GetPan(a) -#define IDirectSoundBuffer_GetFrequency(p,a) (p)->GetFrequency(a) -#define IDirectSoundBuffer_GetStatus(p,a) (p)->GetStatus(a) -#define IDirectSoundBuffer_Initialize(p,a,b) (p)->Initialize(a,b) -#define IDirectSoundBuffer_Lock(p,a,b,c,d,e,f,g) (p)->Lock(a,b,c,d,e,f,g) -#define IDirectSoundBuffer_Play(p,a,b,c) (p)->Play(a,b,c) -#define IDirectSoundBuffer_SetCurrentPosition(p,a) (p)->SetCurrentPosition(a) -#define IDirectSoundBuffer_SetFormat(p,a) (p)->SetFormat(a) -#define IDirectSoundBuffer_SetVolume(p,a) (p)->SetVolume(a) -#define IDirectSoundBuffer_SetPan(p,a) (p)->SetPan(a) -#define IDirectSoundBuffer_SetFrequency(p,a) (p)->SetFrequency(a) -#define IDirectSoundBuffer_Stop(p) (p)->Stop() -#define IDirectSoundBuffer_Unlock(p,a,b,c,d) (p)->Unlock(a,b,c,d) -#define IDirectSoundBuffer_Restore(p) (p)->Restore() -#endif // !defined(__cplusplus) || defined(CINTERFACE) - -#if DIRECTSOUND_VERSION >= 0x0800 - -// -// IDirectSoundBuffer8 -// - -DEFINE_GUID(IID_IDirectSoundBuffer8, 0x6825a449, 0x7524, 0x4d82, 0x92, 0x0f, 0x50, 0xe3, 0x6a, 0xb3, 0xab, 0x1e); - -#undef INTERFACE -#define INTERFACE IDirectSoundBuffer8 - -DECLARE_INTERFACE_(IDirectSoundBuffer8, IDirectSoundBuffer) -{ - // IUnknown methods - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - // IDirectSoundBuffer methods - STDMETHOD(GetCaps) (THIS_ LPDSBCAPS pDSBufferCaps) PURE; - STDMETHOD(GetCurrentPosition) (THIS_ LPDWORD pdwCurrentPlayCursor, LPDWORD pdwCurrentWriteCursor) PURE; - STDMETHOD(GetFormat) (THIS_ LPWAVEFORMATEX pwfxFormat, DWORD dwSizeAllocated, LPDWORD pdwSizeWritten) PURE; - STDMETHOD(GetVolume) (THIS_ LPLONG plVolume) PURE; - STDMETHOD(GetPan) (THIS_ LPLONG plPan) PURE; - STDMETHOD(GetFrequency) (THIS_ LPDWORD pdwFrequency) PURE; - STDMETHOD(GetStatus) (THIS_ LPDWORD pdwStatus) PURE; - STDMETHOD(Initialize) (THIS_ LPDIRECTSOUND pDirectSound, LPCDSBUFFERDESC pcDSBufferDesc) PURE; - STDMETHOD(Lock) (THIS_ DWORD dwOffset, DWORD dwBytes, LPVOID *ppvAudioPtr1, LPDWORD pdwAudioBytes1, - LPVOID *ppvAudioPtr2, LPDWORD pdwAudioBytes2, DWORD dwFlags) PURE; - STDMETHOD(Play) (THIS_ DWORD dwReserved1, DWORD dwPriority, DWORD dwFlags) PURE; - STDMETHOD(SetCurrentPosition) (THIS_ DWORD dwNewPosition) PURE; - STDMETHOD(SetFormat) (THIS_ LPCWAVEFORMATEX pcfxFormat) PURE; - STDMETHOD(SetVolume) (THIS_ LONG lVolume) PURE; - STDMETHOD(SetPan) (THIS_ LONG lPan) PURE; - STDMETHOD(SetFrequency) (THIS_ DWORD dwFrequency) PURE; - STDMETHOD(Stop) (THIS) PURE; - STDMETHOD(Unlock) (THIS_ LPVOID pvAudioPtr1, DWORD dwAudioBytes1, LPVOID pvAudioPtr2, DWORD dwAudioBytes2) PURE; - STDMETHOD(Restore) (THIS) PURE; - - // IDirectSoundBuffer8 methods - STDMETHOD(SetFX) (THIS_ DWORD dwEffectsCount, LPDSEFFECTDESC pDSFXDesc, LPDWORD pdwResultCodes) PURE; - STDMETHOD(AcquireResources) (THIS_ DWORD dwFlags, DWORD dwEffectsCount, LPDWORD pdwResultCodes) PURE; - STDMETHOD(GetObjectInPath) (THIS_ REFGUID rguidObject, DWORD dwIndex, REFGUID rguidInterface, LPVOID *ppObject) PURE; -}; - -// Special GUID meaning "select all objects" for use in GetObjectInPath() -DEFINE_GUID(GUID_All_Objects, 0xaa114de5, 0xc262, 0x4169, 0xa1, 0xc8, 0x23, 0xd6, 0x98, 0xcc, 0x73, 0xb5); - -#define IDirectSoundBuffer8_QueryInterface(p,a,b) IUnknown_QueryInterface(p,a,b) -#define IDirectSoundBuffer8_AddRef(p) IUnknown_AddRef(p) -#define IDirectSoundBuffer8_Release(p) IUnknown_Release(p) - -#define IDirectSoundBuffer8_GetCaps(p,a) IDirectSoundBuffer_GetCaps(p,a) -#define IDirectSoundBuffer8_GetCurrentPosition(p,a,b) IDirectSoundBuffer_GetCurrentPosition(p,a,b) -#define IDirectSoundBuffer8_GetFormat(p,a,b,c) IDirectSoundBuffer_GetFormat(p,a,b,c) -#define IDirectSoundBuffer8_GetVolume(p,a) IDirectSoundBuffer_GetVolume(p,a) -#define IDirectSoundBuffer8_GetPan(p,a) IDirectSoundBuffer_GetPan(p,a) -#define IDirectSoundBuffer8_GetFrequency(p,a) IDirectSoundBuffer_GetFrequency(p,a) -#define IDirectSoundBuffer8_GetStatus(p,a) IDirectSoundBuffer_GetStatus(p,a) -#define IDirectSoundBuffer8_Initialize(p,a,b) IDirectSoundBuffer_Initialize(p,a,b) -#define IDirectSoundBuffer8_Lock(p,a,b,c,d,e,f,g) IDirectSoundBuffer_Lock(p,a,b,c,d,e,f,g) -#define IDirectSoundBuffer8_Play(p,a,b,c) IDirectSoundBuffer_Play(p,a,b,c) -#define IDirectSoundBuffer8_SetCurrentPosition(p,a) IDirectSoundBuffer_SetCurrentPosition(p,a) -#define IDirectSoundBuffer8_SetFormat(p,a) IDirectSoundBuffer_SetFormat(p,a) -#define IDirectSoundBuffer8_SetVolume(p,a) IDirectSoundBuffer_SetVolume(p,a) -#define IDirectSoundBuffer8_SetPan(p,a) IDirectSoundBuffer_SetPan(p,a) -#define IDirectSoundBuffer8_SetFrequency(p,a) IDirectSoundBuffer_SetFrequency(p,a) -#define IDirectSoundBuffer8_Stop(p) IDirectSoundBuffer_Stop(p) -#define IDirectSoundBuffer8_Unlock(p,a,b,c,d) IDirectSoundBuffer_Unlock(p,a,b,c,d) -#define IDirectSoundBuffer8_Restore(p) IDirectSoundBuffer_Restore(p) - -#if !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSoundBuffer8_SetFX(p,a,b,c) (p)->lpVtbl->SetFX(p,a,b,c) -#define IDirectSoundBuffer8_AcquireResources(p,a,b,c) (p)->lpVtbl->AcquireResources(p,a,b,c) -#define IDirectSoundBuffer8_GetObjectInPath(p,a,b,c,d) (p)->lpVtbl->GetObjectInPath(p,a,b,c,d) -#else // !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSoundBuffer8_SetFX(p,a,b,c) (p)->SetFX(a,b,c) -#define IDirectSoundBuffer8_AcquireResources(p,a,b,c) (p)->AcquireResources(a,b,c) -#define IDirectSoundBuffer8_GetObjectInPath(p,a,b,c,d) (p)->GetObjectInPath(a,b,c,d) -#endif // !defined(__cplusplus) || defined(CINTERFACE) - -#endif // DIRECTSOUND_VERSION >= 0x0800 - -// -// IDirectSound3DListener -// - -DEFINE_GUID(IID_IDirectSound3DListener, 0x279AFA84, 0x4981, 0x11CE, 0xA5, 0x21, 0x00, 0x20, 0xAF, 0x0B, 0xE5, 0x60); - -#undef INTERFACE -#define INTERFACE IDirectSound3DListener - -DECLARE_INTERFACE_(IDirectSound3DListener, IUnknown) -{ - // IUnknown methods - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - // IDirectSound3DListener methods - STDMETHOD(GetAllParameters) (THIS_ LPDS3DLISTENER pListener) PURE; - STDMETHOD(GetDistanceFactor) (THIS_ D3DVALUE* pflDistanceFactor) PURE; - STDMETHOD(GetDopplerFactor) (THIS_ D3DVALUE* pflDopplerFactor) PURE; - STDMETHOD(GetOrientation) (THIS_ D3DVECTOR* pvOrientFront, D3DVECTOR* pvOrientTop) PURE; - STDMETHOD(GetPosition) (THIS_ D3DVECTOR* pvPosition) PURE; - STDMETHOD(GetRolloffFactor) (THIS_ D3DVALUE* pflRolloffFactor) PURE; - STDMETHOD(GetVelocity) (THIS_ D3DVECTOR* pvVelocity) PURE; - STDMETHOD(SetAllParameters) (THIS_ LPCDS3DLISTENER pcListener, DWORD dwApply) PURE; - STDMETHOD(SetDistanceFactor) (THIS_ D3DVALUE flDistanceFactor, DWORD dwApply) PURE; - STDMETHOD(SetDopplerFactor) (THIS_ D3DVALUE flDopplerFactor, DWORD dwApply) PURE; - STDMETHOD(SetOrientation) (THIS_ D3DVALUE xFront, D3DVALUE yFront, D3DVALUE zFront, - D3DVALUE xTop, D3DVALUE yTop, D3DVALUE zTop, DWORD dwApply) PURE; - STDMETHOD(SetPosition) (THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) PURE; - STDMETHOD(SetRolloffFactor) (THIS_ D3DVALUE flRolloffFactor, DWORD dwApply) PURE; - STDMETHOD(SetVelocity) (THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) PURE; - STDMETHOD(CommitDeferredSettings) (THIS) PURE; -}; - -#define IDirectSound3DListener_QueryInterface(p,a,b) IUnknown_QueryInterface(p,a,b) -#define IDirectSound3DListener_AddRef(p) IUnknown_AddRef(p) -#define IDirectSound3DListener_Release(p) IUnknown_Release(p) - -#if !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSound3DListener_GetAllParameters(p,a) (p)->lpVtbl->GetAllParameters(p,a) -#define IDirectSound3DListener_GetDistanceFactor(p,a) (p)->lpVtbl->GetDistanceFactor(p,a) -#define IDirectSound3DListener_GetDopplerFactor(p,a) (p)->lpVtbl->GetDopplerFactor(p,a) -#define IDirectSound3DListener_GetOrientation(p,a,b) (p)->lpVtbl->GetOrientation(p,a,b) -#define IDirectSound3DListener_GetPosition(p,a) (p)->lpVtbl->GetPosition(p,a) -#define IDirectSound3DListener_GetRolloffFactor(p,a) (p)->lpVtbl->GetRolloffFactor(p,a) -#define IDirectSound3DListener_GetVelocity(p,a) (p)->lpVtbl->GetVelocity(p,a) -#define IDirectSound3DListener_SetAllParameters(p,a,b) (p)->lpVtbl->SetAllParameters(p,a,b) -#define IDirectSound3DListener_SetDistanceFactor(p,a,b) (p)->lpVtbl->SetDistanceFactor(p,a,b) -#define IDirectSound3DListener_SetDopplerFactor(p,a,b) (p)->lpVtbl->SetDopplerFactor(p,a,b) -#define IDirectSound3DListener_SetOrientation(p,a,b,c,d,e,f,g) (p)->lpVtbl->SetOrientation(p,a,b,c,d,e,f,g) -#define IDirectSound3DListener_SetPosition(p,a,b,c,d) (p)->lpVtbl->SetPosition(p,a,b,c,d) -#define IDirectSound3DListener_SetRolloffFactor(p,a,b) (p)->lpVtbl->SetRolloffFactor(p,a,b) -#define IDirectSound3DListener_SetVelocity(p,a,b,c,d) (p)->lpVtbl->SetVelocity(p,a,b,c,d) -#define IDirectSound3DListener_CommitDeferredSettings(p) (p)->lpVtbl->CommitDeferredSettings(p) -#else // !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSound3DListener_GetAllParameters(p,a) (p)->GetAllParameters(a) -#define IDirectSound3DListener_GetDistanceFactor(p,a) (p)->GetDistanceFactor(a) -#define IDirectSound3DListener_GetDopplerFactor(p,a) (p)->GetDopplerFactor(a) -#define IDirectSound3DListener_GetOrientation(p,a,b) (p)->GetOrientation(a,b) -#define IDirectSound3DListener_GetPosition(p,a) (p)->GetPosition(a) -#define IDirectSound3DListener_GetRolloffFactor(p,a) (p)->GetRolloffFactor(a) -#define IDirectSound3DListener_GetVelocity(p,a) (p)->GetVelocity(a) -#define IDirectSound3DListener_SetAllParameters(p,a,b) (p)->SetAllParameters(a,b) -#define IDirectSound3DListener_SetDistanceFactor(p,a,b) (p)->SetDistanceFactor(a,b) -#define IDirectSound3DListener_SetDopplerFactor(p,a,b) (p)->SetDopplerFactor(a,b) -#define IDirectSound3DListener_SetOrientation(p,a,b,c,d,e,f,g) (p)->SetOrientation(a,b,c,d,e,f,g) -#define IDirectSound3DListener_SetPosition(p,a,b,c,d) (p)->SetPosition(a,b,c,d) -#define IDirectSound3DListener_SetRolloffFactor(p,a,b) (p)->SetRolloffFactor(a,b) -#define IDirectSound3DListener_SetVelocity(p,a,b,c,d) (p)->SetVelocity(a,b,c,d) -#define IDirectSound3DListener_CommitDeferredSettings(p) (p)->CommitDeferredSettings() -#endif // !defined(__cplusplus) || defined(CINTERFACE) - -// -// IDirectSound3DBuffer -// - -DEFINE_GUID(IID_IDirectSound3DBuffer, 0x279AFA86, 0x4981, 0x11CE, 0xA5, 0x21, 0x00, 0x20, 0xAF, 0x0B, 0xE5, 0x60); - -#undef INTERFACE -#define INTERFACE IDirectSound3DBuffer - -DECLARE_INTERFACE_(IDirectSound3DBuffer, IUnknown) -{ - // IUnknown methods - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - // IDirectSound3DBuffer methods - STDMETHOD(GetAllParameters) (THIS_ LPDS3DBUFFER pDs3dBuffer) PURE; - STDMETHOD(GetConeAngles) (THIS_ LPDWORD pdwInsideConeAngle, LPDWORD pdwOutsideConeAngle) PURE; - STDMETHOD(GetConeOrientation) (THIS_ D3DVECTOR* pvOrientation) PURE; - STDMETHOD(GetConeOutsideVolume) (THIS_ LPLONG plConeOutsideVolume) PURE; - STDMETHOD(GetMaxDistance) (THIS_ D3DVALUE* pflMaxDistance) PURE; - STDMETHOD(GetMinDistance) (THIS_ D3DVALUE* pflMinDistance) PURE; - STDMETHOD(GetMode) (THIS_ LPDWORD pdwMode) PURE; - STDMETHOD(GetPosition) (THIS_ D3DVECTOR* pvPosition) PURE; - STDMETHOD(GetVelocity) (THIS_ D3DVECTOR* pvVelocity) PURE; - STDMETHOD(SetAllParameters) (THIS_ LPCDS3DBUFFER pcDs3dBuffer, DWORD dwApply) PURE; - STDMETHOD(SetConeAngles) (THIS_ DWORD dwInsideConeAngle, DWORD dwOutsideConeAngle, DWORD dwApply) PURE; - STDMETHOD(SetConeOrientation) (THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) PURE; - STDMETHOD(SetConeOutsideVolume) (THIS_ LONG lConeOutsideVolume, DWORD dwApply) PURE; - STDMETHOD(SetMaxDistance) (THIS_ D3DVALUE flMaxDistance, DWORD dwApply) PURE; - STDMETHOD(SetMinDistance) (THIS_ D3DVALUE flMinDistance, DWORD dwApply) PURE; - STDMETHOD(SetMode) (THIS_ DWORD dwMode, DWORD dwApply) PURE; - STDMETHOD(SetPosition) (THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) PURE; - STDMETHOD(SetVelocity) (THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) PURE; -}; - -#define IDirectSound3DBuffer_QueryInterface(p,a,b) IUnknown_QueryInterface(p,a,b) -#define IDirectSound3DBuffer_AddRef(p) IUnknown_AddRef(p) -#define IDirectSound3DBuffer_Release(p) IUnknown_Release(p) - -#if !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSound3DBuffer_GetAllParameters(p,a) (p)->lpVtbl->GetAllParameters(p,a) -#define IDirectSound3DBuffer_GetConeAngles(p,a,b) (p)->lpVtbl->GetConeAngles(p,a,b) -#define IDirectSound3DBuffer_GetConeOrientation(p,a) (p)->lpVtbl->GetConeOrientation(p,a) -#define IDirectSound3DBuffer_GetConeOutsideVolume(p,a) (p)->lpVtbl->GetConeOutsideVolume(p,a) -#define IDirectSound3DBuffer_GetPosition(p,a) (p)->lpVtbl->GetPosition(p,a) -#define IDirectSound3DBuffer_GetMinDistance(p,a) (p)->lpVtbl->GetMinDistance(p,a) -#define IDirectSound3DBuffer_GetMaxDistance(p,a) (p)->lpVtbl->GetMaxDistance(p,a) -#define IDirectSound3DBuffer_GetMode(p,a) (p)->lpVtbl->GetMode(p,a) -#define IDirectSound3DBuffer_GetVelocity(p,a) (p)->lpVtbl->GetVelocity(p,a) -#define IDirectSound3DBuffer_SetAllParameters(p,a,b) (p)->lpVtbl->SetAllParameters(p,a,b) -#define IDirectSound3DBuffer_SetConeAngles(p,a,b,c) (p)->lpVtbl->SetConeAngles(p,a,b,c) -#define IDirectSound3DBuffer_SetConeOrientation(p,a,b,c,d) (p)->lpVtbl->SetConeOrientation(p,a,b,c,d) -#define IDirectSound3DBuffer_SetConeOutsideVolume(p,a,b) (p)->lpVtbl->SetConeOutsideVolume(p,a,b) -#define IDirectSound3DBuffer_SetPosition(p,a,b,c,d) (p)->lpVtbl->SetPosition(p,a,b,c,d) -#define IDirectSound3DBuffer_SetMinDistance(p,a,b) (p)->lpVtbl->SetMinDistance(p,a,b) -#define IDirectSound3DBuffer_SetMaxDistance(p,a,b) (p)->lpVtbl->SetMaxDistance(p,a,b) -#define IDirectSound3DBuffer_SetMode(p,a,b) (p)->lpVtbl->SetMode(p,a,b) -#define IDirectSound3DBuffer_SetVelocity(p,a,b,c,d) (p)->lpVtbl->SetVelocity(p,a,b,c,d) -#else // !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSound3DBuffer_GetAllParameters(p,a) (p)->GetAllParameters(a) -#define IDirectSound3DBuffer_GetConeAngles(p,a,b) (p)->GetConeAngles(a,b) -#define IDirectSound3DBuffer_GetConeOrientation(p,a) (p)->GetConeOrientation(a) -#define IDirectSound3DBuffer_GetConeOutsideVolume(p,a) (p)->GetConeOutsideVolume(a) -#define IDirectSound3DBuffer_GetPosition(p,a) (p)->GetPosition(a) -#define IDirectSound3DBuffer_GetMinDistance(p,a) (p)->GetMinDistance(a) -#define IDirectSound3DBuffer_GetMaxDistance(p,a) (p)->GetMaxDistance(a) -#define IDirectSound3DBuffer_GetMode(p,a) (p)->GetMode(a) -#define IDirectSound3DBuffer_GetVelocity(p,a) (p)->GetVelocity(a) -#define IDirectSound3DBuffer_SetAllParameters(p,a,b) (p)->SetAllParameters(a,b) -#define IDirectSound3DBuffer_SetConeAngles(p,a,b,c) (p)->SetConeAngles(a,b,c) -#define IDirectSound3DBuffer_SetConeOrientation(p,a,b,c,d) (p)->SetConeOrientation(a,b,c,d) -#define IDirectSound3DBuffer_SetConeOutsideVolume(p,a,b) (p)->SetConeOutsideVolume(a,b) -#define IDirectSound3DBuffer_SetPosition(p,a,b,c,d) (p)->SetPosition(a,b,c,d) -#define IDirectSound3DBuffer_SetMinDistance(p,a,b) (p)->SetMinDistance(a,b) -#define IDirectSound3DBuffer_SetMaxDistance(p,a,b) (p)->SetMaxDistance(a,b) -#define IDirectSound3DBuffer_SetMode(p,a,b) (p)->SetMode(a,b) -#define IDirectSound3DBuffer_SetVelocity(p,a,b,c,d) (p)->SetVelocity(a,b,c,d) -#endif // !defined(__cplusplus) || defined(CINTERFACE) - -// -// IDirectSoundCapture -// - -DEFINE_GUID(IID_IDirectSoundCapture, 0xb0210781, 0x89cd, 0x11d0, 0xaf, 0x8, 0x0, 0xa0, 0xc9, 0x25, 0xcd, 0x16); - -#undef INTERFACE -#define INTERFACE IDirectSoundCapture - -DECLARE_INTERFACE_(IDirectSoundCapture, IUnknown) -{ - // IUnknown methods - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - // IDirectSoundCapture methods - STDMETHOD(CreateCaptureBuffer) (THIS_ LPCDSCBUFFERDESC pcDSCBufferDesc, LPDIRECTSOUNDCAPTUREBUFFER *ppDSCBuffer, LPUNKNOWN pUnkOuter) PURE; - STDMETHOD(GetCaps) (THIS_ LPDSCCAPS pDSCCaps) PURE; - STDMETHOD(Initialize) (THIS_ LPCGUID pcGuidDevice) PURE; -}; - -#define IDirectSoundCapture_QueryInterface(p,a,b) IUnknown_QueryInterface(p,a,b) -#define IDirectSoundCapture_AddRef(p) IUnknown_AddRef(p) -#define IDirectSoundCapture_Release(p) IUnknown_Release(p) - -#if !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSoundCapture_CreateCaptureBuffer(p,a,b,c) (p)->lpVtbl->CreateCaptureBuffer(p,a,b,c) -#define IDirectSoundCapture_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a) -#define IDirectSoundCapture_Initialize(p,a) (p)->lpVtbl->Initialize(p,a) -#else // !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSoundCapture_CreateCaptureBuffer(p,a,b,c) (p)->CreateCaptureBuffer(a,b,c) -#define IDirectSoundCapture_GetCaps(p,a) (p)->GetCaps(a) -#define IDirectSoundCapture_Initialize(p,a) (p)->Initialize(a) -#endif // !defined(__cplusplus) || defined(CINTERFACE) - -// -// IDirectSoundCaptureBuffer -// - -DEFINE_GUID(IID_IDirectSoundCaptureBuffer, 0xb0210782, 0x89cd, 0x11d0, 0xaf, 0x8, 0x0, 0xa0, 0xc9, 0x25, 0xcd, 0x16); - -#undef INTERFACE -#define INTERFACE IDirectSoundCaptureBuffer - -DECLARE_INTERFACE_(IDirectSoundCaptureBuffer, IUnknown) -{ - // IUnknown methods - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - // IDirectSoundCaptureBuffer methods - STDMETHOD(GetCaps) (THIS_ LPDSCBCAPS pDSCBCaps) PURE; - STDMETHOD(GetCurrentPosition) (THIS_ LPDWORD pdwCapturePosition, LPDWORD pdwReadPosition) PURE; - STDMETHOD(GetFormat) (THIS_ LPWAVEFORMATEX pwfxFormat, DWORD dwSizeAllocated, LPDWORD pdwSizeWritten) PURE; - STDMETHOD(GetStatus) (THIS_ LPDWORD pdwStatus) PURE; - STDMETHOD(Initialize) (THIS_ LPDIRECTSOUNDCAPTURE pDirectSoundCapture, LPCDSCBUFFERDESC pcDSCBufferDesc) PURE; - STDMETHOD(Lock) (THIS_ DWORD dwOffset, DWORD dwBytes, LPVOID *ppvAudioPtr1, LPDWORD pdwAudioBytes1, - LPVOID *ppvAudioPtr2, LPDWORD pdwAudioBytes2, DWORD dwFlags) PURE; - STDMETHOD(Start) (THIS_ DWORD dwFlags) PURE; - STDMETHOD(Stop) (THIS) PURE; - STDMETHOD(Unlock) (THIS_ LPVOID pvAudioPtr1, DWORD dwAudioBytes1, LPVOID pvAudioPtr2, DWORD dwAudioBytes2) PURE; -}; - -#define IDirectSoundCaptureBuffer_QueryInterface(p,a,b) IUnknown_QueryInterface(p,a,b) -#define IDirectSoundCaptureBuffer_AddRef(p) IUnknown_AddRef(p) -#define IDirectSoundCaptureBuffer_Release(p) IUnknown_Release(p) - -#if !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSoundCaptureBuffer_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a) -#define IDirectSoundCaptureBuffer_GetCurrentPosition(p,a,b) (p)->lpVtbl->GetCurrentPosition(p,a,b) -#define IDirectSoundCaptureBuffer_GetFormat(p,a,b,c) (p)->lpVtbl->GetFormat(p,a,b,c) -#define IDirectSoundCaptureBuffer_GetStatus(p,a) (p)->lpVtbl->GetStatus(p,a) -#define IDirectSoundCaptureBuffer_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b) -#define IDirectSoundCaptureBuffer_Lock(p,a,b,c,d,e,f,g) (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g) -#define IDirectSoundCaptureBuffer_Start(p,a) (p)->lpVtbl->Start(p,a) -#define IDirectSoundCaptureBuffer_Stop(p) (p)->lpVtbl->Stop(p) -#define IDirectSoundCaptureBuffer_Unlock(p,a,b,c,d) (p)->lpVtbl->Unlock(p,a,b,c,d) -#else // !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSoundCaptureBuffer_GetCaps(p,a) (p)->GetCaps(a) -#define IDirectSoundCaptureBuffer_GetCurrentPosition(p,a,b) (p)->GetCurrentPosition(a,b) -#define IDirectSoundCaptureBuffer_GetFormat(p,a,b,c) (p)->GetFormat(a,b,c) -#define IDirectSoundCaptureBuffer_GetStatus(p,a) (p)->GetStatus(a) -#define IDirectSoundCaptureBuffer_Initialize(p,a,b) (p)->Initialize(a,b) -#define IDirectSoundCaptureBuffer_Lock(p,a,b,c,d,e,f,g) (p)->Lock(a,b,c,d,e,f,g) -#define IDirectSoundCaptureBuffer_Start(p,a) (p)->Start(a) -#define IDirectSoundCaptureBuffer_Stop(p) (p)->Stop() -#define IDirectSoundCaptureBuffer_Unlock(p,a,b,c,d) (p)->Unlock(a,b,c,d) -#endif // !defined(__cplusplus) || defined(CINTERFACE) - - -#if DIRECTSOUND_VERSION >= 0x0800 - -// -// IDirectSoundCaptureBuffer8 -// - -DEFINE_GUID(IID_IDirectSoundCaptureBuffer8, 0x990df4, 0xdbb, 0x4872, 0x83, 0x3e, 0x6d, 0x30, 0x3e, 0x80, 0xae, 0xb6); - -#undef INTERFACE -#define INTERFACE IDirectSoundCaptureBuffer8 - -DECLARE_INTERFACE_(IDirectSoundCaptureBuffer8, IDirectSoundCaptureBuffer) -{ - // IUnknown methods - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - // IDirectSoundCaptureBuffer methods - STDMETHOD(GetCaps) (THIS_ LPDSCBCAPS pDSCBCaps) PURE; - STDMETHOD(GetCurrentPosition) (THIS_ LPDWORD pdwCapturePosition, LPDWORD pdwReadPosition) PURE; - STDMETHOD(GetFormat) (THIS_ LPWAVEFORMATEX pwfxFormat, DWORD dwSizeAllocated, LPDWORD pdwSizeWritten) PURE; - STDMETHOD(GetStatus) (THIS_ LPDWORD pdwStatus) PURE; - STDMETHOD(Initialize) (THIS_ LPDIRECTSOUNDCAPTURE pDirectSoundCapture, LPCDSCBUFFERDESC pcDSCBufferDesc) PURE; - STDMETHOD(Lock) (THIS_ DWORD dwOffset, DWORD dwBytes, LPVOID *ppvAudioPtr1, LPDWORD pdwAudioBytes1, - LPVOID *ppvAudioPtr2, LPDWORD pdwAudioBytes2, DWORD dwFlags) PURE; - STDMETHOD(Start) (THIS_ DWORD dwFlags) PURE; - STDMETHOD(Stop) (THIS) PURE; - STDMETHOD(Unlock) (THIS_ LPVOID pvAudioPtr1, DWORD dwAudioBytes1, LPVOID pvAudioPtr2, DWORD dwAudioBytes2) PURE; - - // IDirectSoundCaptureBuffer8 methods - STDMETHOD(GetObjectInPath) (THIS_ REFGUID rguidObject, DWORD dwIndex, REFGUID rguidInterface, LPVOID *ppObject) PURE; - STDMETHOD(GetFXStatus) (DWORD dwFXCount, LPDWORD pdwFXStatus) PURE; -}; - -#define IDirectSoundCaptureBuffer8_QueryInterface(p,a,b) IUnknown_QueryInterface(p,a,b) -#define IDirectSoundCaptureBuffer8_AddRef(p) IUnknown_AddRef(p) -#define IDirectSoundCaptureBuffer8_Release(p) IUnknown_Release(p) - -#define IDirectSoundCaptureBuffer8_GetCaps(p,a) IDirectSoundCaptureBuffer_GetCaps(p,a) -#define IDirectSoundCaptureBuffer8_GetCurrentPosition(p,a,b) IDirectSoundCaptureBuffer_GetCurrentPosition(p,a,b) -#define IDirectSoundCaptureBuffer8_GetFormat(p,a,b,c) IDirectSoundCaptureBuffer_GetFormat(p,a,b,c) -#define IDirectSoundCaptureBuffer8_GetStatus(p,a) IDirectSoundCaptureBuffer_GetStatus(p,a) -#define IDirectSoundCaptureBuffer8_Initialize(p,a,b) IDirectSoundCaptureBuffer_Initialize(p,a,b) -#define IDirectSoundCaptureBuffer8_Lock(p,a,b,c,d,e,f,g) IDirectSoundCaptureBuffer_Lock(p,a,b,c,d,e,f,g) -#define IDirectSoundCaptureBuffer8_Start(p,a) IDirectSoundCaptureBuffer_Start(p,a) -#define IDirectSoundCaptureBuffer8_Stop(p) IDirectSoundCaptureBuffer_Stop(p)) -#define IDirectSoundCaptureBuffer8_Unlock(p,a,b,c,d) IDirectSoundCaptureBuffer_Unlock(p,a,b,c,d) - -#if !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSoundCaptureBuffer8_GetObjectInPath(p,a,b,c,d) (p)->lpVtbl->GetObjectInPath(p,a,b,c,d) -#define IDirectSoundCaptureBuffer8_GetFXStatus(p,a,b) (p)->lpVtbl->GetFXStatus(p,a,b) -#else // !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSoundCaptureBuffer8_GetObjectInPath(p,a,b,c,d) (p)->GetObjectInPath(a,b,c,d) -#define IDirectSoundCaptureBuffer8_GetFXStatus(p,a,b) (p)->GetFXStatus(a,b) -#endif // !defined(__cplusplus) || defined(CINTERFACE) - -#endif // DIRECTSOUND_VERSION >= 0x0800 - -// -// IDirectSoundNotify -// - -DEFINE_GUID(IID_IDirectSoundNotify, 0xb0210783, 0x89cd, 0x11d0, 0xaf, 0x8, 0x0, 0xa0, 0xc9, 0x25, 0xcd, 0x16); - -#undef INTERFACE -#define INTERFACE IDirectSoundNotify - -DECLARE_INTERFACE_(IDirectSoundNotify, IUnknown) -{ - // IUnknown methods - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - // IDirectSoundNotify methods - STDMETHOD(SetNotificationPositions) (THIS_ DWORD dwPositionNotifies, LPCDSBPOSITIONNOTIFY pcPositionNotifies) PURE; -}; - -#define IDirectSoundNotify_QueryInterface(p,a,b) IUnknown_QueryInterface(p,a,b) -#define IDirectSoundNotify_AddRef(p) IUnknown_AddRef(p) -#define IDirectSoundNotify_Release(p) IUnknown_Release(p) - -#if !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSoundNotify_SetNotificationPositions(p,a,b) (p)->lpVtbl->SetNotificationPositions(p,a,b) -#else // !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSoundNotify_SetNotificationPositions(p,a,b) (p)->SetNotificationPositions(a,b) -#endif // !defined(__cplusplus) || defined(CINTERFACE) - -// -// IKsPropertySet -// - -#ifndef _IKsPropertySet_ -#define _IKsPropertySet_ - -#ifdef __cplusplus -// 'struct' not 'class' per the way DECLARE_INTERFACE_ is defined -struct IKsPropertySet; -#endif // __cplusplus - -typedef struct IKsPropertySet *LPKSPROPERTYSET; - -#define KSPROPERTY_SUPPORT_GET 0x00000001 -#define KSPROPERTY_SUPPORT_SET 0x00000002 - -DEFINE_GUID(IID_IKsPropertySet, 0x31efac30, 0x515c, 0x11d0, 0xa9, 0xaa, 0x00, 0xaa, 0x00, 0x61, 0xbe, 0x93); - -#undef INTERFACE -#define INTERFACE IKsPropertySet - -DECLARE_INTERFACE_(IKsPropertySet, IUnknown) -{ - // IUnknown methods - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - // IKsPropertySet methods - STDMETHOD(Get) (THIS_ REFGUID rguidPropSet, ULONG ulId, LPVOID pInstanceData, ULONG ulInstanceLength, - LPVOID pPropertyData, ULONG ulDataLength, PULONG pulBytesReturned) PURE; - STDMETHOD(Set) (THIS_ REFGUID rguidPropSet, ULONG ulId, LPVOID pInstanceData, ULONG ulInstanceLength, - LPVOID pPropertyData, ULONG ulDataLength) PURE; - STDMETHOD(QuerySupport) (THIS_ REFGUID rguidPropSet, ULONG ulId, PULONG pulTypeSupport) PURE; -}; - -#define IKsPropertySet_QueryInterface(p,a,b) IUnknown_QueryInterface(p,a,b) -#define IKsPropertySet_AddRef(p) IUnknown_AddRef(p) -#define IKsPropertySet_Release(p) IUnknown_Release(p) - -#if !defined(__cplusplus) || defined(CINTERFACE) -#define IKsPropertySet_Get(p,a,b,c,d,e,f,g) (p)->lpVtbl->Get(p,a,b,c,d,e,f,g) -#define IKsPropertySet_Set(p,a,b,c,d,e,f) (p)->lpVtbl->Set(p,a,b,c,d,e,f) -#define IKsPropertySet_QuerySupport(p,a,b,c) (p)->lpVtbl->QuerySupport(p,a,b,c) -#else // !defined(__cplusplus) || defined(CINTERFACE) -#define IKsPropertySet_Get(p,a,b,c,d,e,f,g) (p)->Get(a,b,c,d,e,f,g) -#define IKsPropertySet_Set(p,a,b,c,d,e,f) (p)->Set(a,b,c,d,e,f) -#define IKsPropertySet_QuerySupport(p,a,b,c) (p)->QuerySupport(a,b,c) -#endif // !defined(__cplusplus) || defined(CINTERFACE) - -#endif // _IKsPropertySet_ - -#if DIRECTSOUND_VERSION >= 0x0800 - -// -// IDirectSoundFXGargle -// - -DEFINE_GUID(IID_IDirectSoundFXGargle, 0xd616f352, 0xd622, 0x11ce, 0xaa, 0xc5, 0x00, 0x20, 0xaf, 0x0b, 0x99, 0xa3); - -typedef struct _DSFXGargle -{ - DWORD dwRateHz; // Rate of modulation in hz - DWORD dwWaveShape; // DSFXGARGLE_WAVE_xxx -} DSFXGargle, *LPDSFXGargle; - -#define DSFXGARGLE_WAVE_TRIANGLE 0 -#define DSFXGARGLE_WAVE_SQUARE 1 - -typedef const DSFXGargle *LPCDSFXGargle; - -#define DSFXGARGLE_RATEHZ_MIN 1 -#define DSFXGARGLE_RATEHZ_MAX 1000 - -#undef INTERFACE -#define INTERFACE IDirectSoundFXGargle - -DECLARE_INTERFACE_(IDirectSoundFXGargle, IUnknown) -{ - // IUnknown methods - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - // IDirectSoundFXGargle methods - STDMETHOD(SetAllParameters) (THIS_ LPCDSFXGargle pcDsFxGargle) PURE; - STDMETHOD(GetAllParameters) (THIS_ LPDSFXGargle pDsFxGargle) PURE; -}; - -#define IDirectSoundFXGargle_QueryInterface(p,a,b) IUnknown_QueryInterface(p,a,b) -#define IDirectSoundFXGargle_AddRef(p) IUnknown_AddRef(p) -#define IDirectSoundFXGargle_Release(p) IUnknown_Release(p) - -#if !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSoundFXGargle_SetAllParameters(p,a) (p)->lpVtbl->SetAllParameters(p,a) -#define IDirectSoundFXGargle_GetAllParameters(p,a) (p)->lpVtbl->GetAllParameters(p,a) -#else // !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSoundFXGargle_SetAllParameters(p,a) (p)->SetAllParameters(a) -#define IDirectSoundFXGargle_GetAllParameters(p,a) (p)->GetAllParameters(a) -#endif // !defined(__cplusplus) || defined(CINTERFACE) - -// -// IDirectSoundFXChorus -// - -DEFINE_GUID(IID_IDirectSoundFXChorus, 0x880842e3, 0x145f, 0x43e6, 0xa9, 0x34, 0xa7, 0x18, 0x06, 0xe5, 0x05, 0x47); - -typedef struct _DSFXChorus -{ - FLOAT fWetDryMix; - FLOAT fDepth; - FLOAT fFeedback; - FLOAT fFrequency; - LONG lWaveform; // LFO shape; DSFXCHORUS_WAVE_xxx - FLOAT fDelay; - LONG lPhase; -} DSFXChorus, *LPDSFXChorus; - -typedef const DSFXChorus *LPCDSFXChorus; - -#define DSFXCHORUS_WAVE_TRIANGLE 0 -#define DSFXCHORUS_WAVE_SIN 1 - -#define DSFXCHORUS_WETDRYMIX_MIN 0.0f -#define DSFXCHORUS_WETDRYMIX_MAX 100.0f -#define DSFXCHORUS_DEPTH_MIN 0.0f -#define DSFXCHORUS_DEPTH_MAX 100.0f -#define DSFXCHORUS_FEEDBACK_MIN -99.0f -#define DSFXCHORUS_FEEDBACK_MAX 99.0f -#define DSFXCHORUS_FREQUENCY_MIN 0.0f -#define DSFXCHORUS_FREQUENCY_MAX 10.0f -#define DSFXCHORUS_DELAY_MIN 0.0f -#define DSFXCHORUS_DELAY_MAX 20.0f -#define DSFXCHORUS_PHASE_MIN 0 -#define DSFXCHORUS_PHASE_MAX 4 - -#define DSFXCHORUS_PHASE_NEG_180 0 -#define DSFXCHORUS_PHASE_NEG_90 1 -#define DSFXCHORUS_PHASE_ZERO 2 -#define DSFXCHORUS_PHASE_90 3 -#define DSFXCHORUS_PHASE_180 4 - -#undef INTERFACE -#define INTERFACE IDirectSoundFXChorus - -DECLARE_INTERFACE_(IDirectSoundFXChorus, IUnknown) -{ - // IUnknown methods - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - // IDirectSoundFXChorus methods - STDMETHOD(SetAllParameters) (THIS_ LPCDSFXChorus pcDsFxChorus) PURE; - STDMETHOD(GetAllParameters) (THIS_ LPDSFXChorus pDsFxChorus) PURE; -}; - -#define IDirectSoundFXChorus_QueryInterface(p,a,b) IUnknown_QueryInterface(p,a,b) -#define IDirectSoundFXChorus_AddRef(p) IUnknown_AddRef(p) -#define IDirectSoundFXChorus_Release(p) IUnknown_Release(p) - -#if !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSoundFXChorus_SetAllParameters(p,a) (p)->lpVtbl->SetAllParameters(p,a) -#define IDirectSoundFXChorus_GetAllParameters(p,a) (p)->lpVtbl->GetAllParameters(p,a) -#else // !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSoundFXChorus_SetAllParameters(p,a) (p)->SetAllParameters(a) -#define IDirectSoundFXChorus_GetAllParameters(p,a) (p)->GetAllParameters(a) -#endif // !defined(__cplusplus) || defined(CINTERFACE) - -// -// IDirectSoundFXFlanger -// - -DEFINE_GUID(IID_IDirectSoundFXFlanger, 0x903e9878, 0x2c92, 0x4072, 0x9b, 0x2c, 0xea, 0x68, 0xf5, 0x39, 0x67, 0x83); - -typedef struct _DSFXFlanger -{ - FLOAT fWetDryMix; - FLOAT fDepth; - FLOAT fFeedback; - FLOAT fFrequency; - LONG lWaveform; - FLOAT fDelay; - LONG lPhase; -} DSFXFlanger, *LPDSFXFlanger; - -typedef const DSFXFlanger *LPCDSFXFlanger; - -#define DSFXFLANGER_WAVE_TRIANGLE 0 -#define DSFXFLANGER_WAVE_SIN 1 - -#define DSFXFLANGER_WETDRYMIX_MIN 0.0f -#define DSFXFLANGER_WETDRYMIX_MAX 100.0f -#define DSFXFLANGER_FREQUENCY_MIN 0.0f -#define DSFXFLANGER_FREQUENCY_MAX 10.0f -#define DSFXFLANGER_DEPTH_MIN 0.0f -#define DSFXFLANGER_DEPTH_MAX 100.0f -#define DSFXFLANGER_PHASE_MIN 0 -#define DSFXFLANGER_PHASE_MAX 4 -#define DSFXFLANGER_FEEDBACK_MIN -99.0f -#define DSFXFLANGER_FEEDBACK_MAX 99.0f -#define DSFXFLANGER_DELAY_MIN 0.0f -#define DSFXFLANGER_DELAY_MAX 4.0f - -#define DSFXFLANGER_PHASE_NEG_180 0 -#define DSFXFLANGER_PHASE_NEG_90 1 -#define DSFXFLANGER_PHASE_ZERO 2 -#define DSFXFLANGER_PHASE_90 3 -#define DSFXFLANGER_PHASE_180 4 - -#undef INTERFACE -#define INTERFACE IDirectSoundFXFlanger - -DECLARE_INTERFACE_(IDirectSoundFXFlanger, IUnknown) -{ - // IUnknown methods - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - // IDirectSoundFXFlanger methods - STDMETHOD(SetAllParameters) (THIS_ LPCDSFXFlanger pcDsFxFlanger) PURE; - STDMETHOD(GetAllParameters) (THIS_ LPDSFXFlanger pDsFxFlanger) PURE; -}; - -#define IDirectSoundFXFlanger_QueryInterface(p,a,b) IUnknown_QueryInterface(p,a,b) -#define IDirectSoundFXFlanger_AddRef(p) IUnknown_AddRef(p) -#define IDirectSoundFXFlanger_Release(p) IUnknown_Release(p) - -#if !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSoundFXFlanger_SetAllParameters(p,a) (p)->lpVtbl->SetAllParameters(p,a) -#define IDirectSoundFXFlanger_GetAllParameters(p,a) (p)->lpVtbl->GetAllParameters(p,a) -#else // !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSoundFXFlanger_SetAllParameters(p,a) (p)->SetAllParameters(a) -#define IDirectSoundFXFlanger_GetAllParameters(p,a) (p)->GetAllParameters(a) -#endif // !defined(__cplusplus) || defined(CINTERFACE) - -// -// IDirectSoundFXEcho -// - -DEFINE_GUID(IID_IDirectSoundFXEcho, 0x8bd28edf, 0x50db, 0x4e92, 0xa2, 0xbd, 0x44, 0x54, 0x88, 0xd1, 0xed, 0x42); - -typedef struct _DSFXEcho -{ - FLOAT fWetDryMix; - FLOAT fFeedback; - FLOAT fLeftDelay; - FLOAT fRightDelay; - LONG lPanDelay; -} DSFXEcho, *LPDSFXEcho; - -typedef const DSFXEcho *LPCDSFXEcho; - -#define DSFXECHO_WETDRYMIX_MIN 0.0f -#define DSFXECHO_WETDRYMIX_MAX 100.0f -#define DSFXECHO_FEEDBACK_MIN 0.0f -#define DSFXECHO_FEEDBACK_MAX 100.0f -#define DSFXECHO_LEFTDELAY_MIN 1.0f -#define DSFXECHO_LEFTDELAY_MAX 2000.0f -#define DSFXECHO_RIGHTDELAY_MIN 1.0f -#define DSFXECHO_RIGHTDELAY_MAX 2000.0f -#define DSFXECHO_PANDELAY_MIN 0 -#define DSFXECHO_PANDELAY_MAX 1 - -#undef INTERFACE -#define INTERFACE IDirectSoundFXEcho - -DECLARE_INTERFACE_(IDirectSoundFXEcho, IUnknown) -{ - // IUnknown methods - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - // IDirectSoundFXEcho methods - STDMETHOD(SetAllParameters) (THIS_ LPCDSFXEcho pcDsFxEcho) PURE; - STDMETHOD(GetAllParameters) (THIS_ LPDSFXEcho pDsFxEcho) PURE; -}; - -#define IDirectSoundFXEcho_QueryInterface(p,a,b) IUnknown_QueryInterface(p,a,b) -#define IDirectSoundFXEcho_AddRef(p) IUnknown_AddRef(p) -#define IDirectSoundFXEcho_Release(p) IUnknown_Release(p) - -#if !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSoundFXEcho_SetAllParameters(p,a) (p)->lpVtbl->SetAllParameters(p,a) -#define IDirectSoundFXEcho_GetAllParameters(p,a) (p)->lpVtbl->GetAllParameters(p,a) -#else // !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSoundFXEcho_SetAllParameters(p,a) (p)->SetAllParameters(a) -#define IDirectSoundFXEcho_GetAllParameters(p,a) (p)->GetAllParameters(a) -#endif // !defined(__cplusplus) || defined(CINTERFACE) - -// -// IDirectSoundFXDistortion -// - -DEFINE_GUID(IID_IDirectSoundFXDistortion, 0x8ecf4326, 0x455f, 0x4d8b, 0xbd, 0xa9, 0x8d, 0x5d, 0x3e, 0x9e, 0x3e, 0x0b); - -typedef struct _DSFXDistortion -{ - FLOAT fGain; - FLOAT fEdge; - FLOAT fPostEQCenterFrequency; - FLOAT fPostEQBandwidth; - FLOAT fPreLowpassCutoff; -} DSFXDistortion, *LPDSFXDistortion; - -typedef const DSFXDistortion *LPCDSFXDistortion; - -#define DSFXDISTORTION_GAIN_MIN -60.0f -#define DSFXDISTORTION_GAIN_MAX 0.0f -#define DSFXDISTORTION_EDGE_MIN 0.0f -#define DSFXDISTORTION_EDGE_MAX 100.0f -#define DSFXDISTORTION_POSTEQCENTERFREQUENCY_MIN 100.0f -#define DSFXDISTORTION_POSTEQCENTERFREQUENCY_MAX 8000.0f -#define DSFXDISTORTION_POSTEQBANDWIDTH_MIN 100.0f -#define DSFXDISTORTION_POSTEQBANDWIDTH_MAX 8000.0f -#define DSFXDISTORTION_PRELOWPASSCUTOFF_MIN 100.0f -#define DSFXDISTORTION_PRELOWPASSCUTOFF_MAX 8000.0f - -#undef INTERFACE -#define INTERFACE IDirectSoundFXDistortion - -DECLARE_INTERFACE_(IDirectSoundFXDistortion, IUnknown) -{ - // IUnknown methods - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - // IDirectSoundFXDistortion methods - STDMETHOD(SetAllParameters) (THIS_ LPCDSFXDistortion pcDsFxDistortion) PURE; - STDMETHOD(GetAllParameters) (THIS_ LPDSFXDistortion pDsFxDistortion) PURE; -}; - -#define IDirectSoundFXDistortion_QueryInterface(p,a,b) IUnknown_QueryInterface(p,a,b) -#define IDirectSoundFXDistortion_AddRef(p) IUnknown_AddRef(p) -#define IDirectSoundFXDistortion_Release(p) IUnknown_Release(p) - -#if !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSoundFXDistortion_SetAllParameters(p,a) (p)->lpVtbl->SetAllParameters(p,a) -#define IDirectSoundFXDistortion_GetAllParameters(p,a) (p)->lpVtbl->GetAllParameters(p,a) -#else // !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSoundFXDistortion_SetAllParameters(p,a) (p)->SetAllParameters(a) -#define IDirectSoundFXDistortion_GetAllParameters(p,a) (p)->GetAllParameters(a) -#endif // !defined(__cplusplus) || defined(CINTERFACE) - -// -// IDirectSoundFXCompressor -// - -DEFINE_GUID(IID_IDirectSoundFXCompressor, 0x4bbd1154, 0x62f6, 0x4e2c, 0xa1, 0x5c, 0xd3, 0xb6, 0xc4, 0x17, 0xf7, 0xa0); - -typedef struct _DSFXCompressor -{ - FLOAT fGain; - FLOAT fAttack; - FLOAT fRelease; - FLOAT fThreshold; - FLOAT fRatio; - FLOAT fPredelay; -} DSFXCompressor, *LPDSFXCompressor; - -typedef const DSFXCompressor *LPCDSFXCompressor; - -#define DSFXCOMPRESSOR_GAIN_MIN -60.0f -#define DSFXCOMPRESSOR_GAIN_MAX 60.0f -#define DSFXCOMPRESSOR_ATTACK_MIN 0.01f -#define DSFXCOMPRESSOR_ATTACK_MAX 500.0f -#define DSFXCOMPRESSOR_RELEASE_MIN 50.0f -#define DSFXCOMPRESSOR_RELEASE_MAX 3000.0f -#define DSFXCOMPRESSOR_THRESHOLD_MIN -60.0f -#define DSFXCOMPRESSOR_THRESHOLD_MAX 0.0f -#define DSFXCOMPRESSOR_RATIO_MIN 1.0f -#define DSFXCOMPRESSOR_RATIO_MAX 100.0f -#define DSFXCOMPRESSOR_PREDELAY_MIN 0.0f -#define DSFXCOMPRESSOR_PREDELAY_MAX 4.0f - -#undef INTERFACE -#define INTERFACE IDirectSoundFXCompressor - -DECLARE_INTERFACE_(IDirectSoundFXCompressor, IUnknown) -{ - // IUnknown methods - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - // IDirectSoundFXCompressor methods - STDMETHOD(SetAllParameters) (THIS_ LPCDSFXCompressor pcDsFxCompressor) PURE; - STDMETHOD(GetAllParameters) (THIS_ LPDSFXCompressor pDsFxCompressor) PURE; -}; - -#define IDirectSoundFXCompressor_QueryInterface(p,a,b) IUnknown_QueryInterface(p,a,b) -#define IDirectSoundFXCompressor_AddRef(p) IUnknown_AddRef(p) -#define IDirectSoundFXCompressor_Release(p) IUnknown_Release(p) - -#if !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSoundFXCompressor_SetAllParameters(p,a) (p)->lpVtbl->SetAllParameters(p,a) -#define IDirectSoundFXCompressor_GetAllParameters(p,a) (p)->lpVtbl->GetAllParameters(p,a) -#else // !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSoundFXCompressor_SetAllParameters(p,a) (p)->SetAllParameters(a) -#define IDirectSoundFXCompressor_GetAllParameters(p,a) (p)->GetAllParameters(a) -#endif // !defined(__cplusplus) || defined(CINTERFACE) - -// -// IDirectSoundFXParamEq -// - -DEFINE_GUID(IID_IDirectSoundFXParamEq, 0xc03ca9fe, 0xfe90, 0x4204, 0x80, 0x78, 0x82, 0x33, 0x4c, 0xd1, 0x77, 0xda); - -typedef struct _DSFXParamEq -{ - FLOAT fCenter; - FLOAT fBandwidth; - FLOAT fGain; -} DSFXParamEq, *LPDSFXParamEq; - -typedef const DSFXParamEq *LPCDSFXParamEq; - -#define DSFXPARAMEQ_CENTER_MIN 80.0f -#define DSFXPARAMEQ_CENTER_MAX 16000.0f -#define DSFXPARAMEQ_BANDWIDTH_MIN 1.0f -#define DSFXPARAMEQ_BANDWIDTH_MAX 36.0f -#define DSFXPARAMEQ_GAIN_MIN -15.0f -#define DSFXPARAMEQ_GAIN_MAX 15.0f - -#undef INTERFACE -#define INTERFACE IDirectSoundFXParamEq - -DECLARE_INTERFACE_(IDirectSoundFXParamEq, IUnknown) -{ - // IUnknown methods - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - // IDirectSoundFXParamEq methods - STDMETHOD(SetAllParameters) (THIS_ LPCDSFXParamEq pcDsFxParamEq) PURE; - STDMETHOD(GetAllParameters) (THIS_ LPDSFXParamEq pDsFxParamEq) PURE; -}; - -#define IDirectSoundFXParamEq_QueryInterface(p,a,b) IUnknown_QueryInterface(p,a,b) -#define IDirectSoundFXParamEq_AddRef(p) IUnknown_AddRef(p) -#define IDirectSoundFXParamEq_Release(p) IUnknown_Release(p) - -#if !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSoundFXParamEq_SetAllParameters(p,a) (p)->lpVtbl->SetAllParameters(p,a) -#define IDirectSoundFXParamEq_GetAllParameters(p,a) (p)->lpVtbl->GetAllParameters(p,a) -#else // !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSoundFXParamEq_SetAllParameters(p,a) (p)->SetAllParameters(a) -#define IDirectSoundFXParamEq_GetAllParameters(p,a) (p)->GetAllParameters(a) -#endif // !defined(__cplusplus) || defined(CINTERFACE) - -// -// IDirectSoundFXI3DL2Reverb -// - -DEFINE_GUID(IID_IDirectSoundFXI3DL2Reverb, 0x4b166a6a, 0x0d66, 0x43f3, 0x80, 0xe3, 0xee, 0x62, 0x80, 0xde, 0xe1, 0xa4); - -typedef struct _DSFXI3DL2Reverb -{ - LONG lRoom; // [-10000, 0] default: -1000 mB - LONG lRoomHF; // [-10000, 0] default: 0 mB - FLOAT flRoomRolloffFactor; // [0.0, 10.0] default: 0.0 - FLOAT flDecayTime; // [0.1, 20.0] default: 1.49s - FLOAT flDecayHFRatio; // [0.1, 2.0] default: 0.83 - LONG lReflections; // [-10000, 1000] default: -2602 mB - FLOAT flReflectionsDelay; // [0.0, 0.3] default: 0.007 s - LONG lReverb; // [-10000, 2000] default: 200 mB - FLOAT flReverbDelay; // [0.0, 0.1] default: 0.011 s - FLOAT flDiffusion; // [0.0, 100.0] default: 100.0 % - FLOAT flDensity; // [0.0, 100.0] default: 100.0 % - FLOAT flHFReference; // [20.0, 20000.0] default: 5000.0 Hz -} DSFXI3DL2Reverb, *LPDSFXI3DL2Reverb; - -typedef const DSFXI3DL2Reverb *LPCDSFXI3DL2Reverb; - -#define DSFX_I3DL2REVERB_ROOM_MIN (-10000) -#define DSFX_I3DL2REVERB_ROOM_MAX 0 -#define DSFX_I3DL2REVERB_ROOM_DEFAULT (-1000) - -#define DSFX_I3DL2REVERB_ROOMHF_MIN (-10000) -#define DSFX_I3DL2REVERB_ROOMHF_MAX 0 -#define DSFX_I3DL2REVERB_ROOMHF_DEFAULT (-100) - -#define DSFX_I3DL2REVERB_ROOMROLLOFFFACTOR_MIN 0.0f -#define DSFX_I3DL2REVERB_ROOMROLLOFFFACTOR_MAX 10.0f -#define DSFX_I3DL2REVERB_ROOMROLLOFFFACTOR_DEFAULT 0.0f - -#define DSFX_I3DL2REVERB_DECAYTIME_MIN 0.1f -#define DSFX_I3DL2REVERB_DECAYTIME_MAX 20.0f -#define DSFX_I3DL2REVERB_DECAYTIME_DEFAULT 1.49f - -#define DSFX_I3DL2REVERB_DECAYHFRATIO_MIN 0.1f -#define DSFX_I3DL2REVERB_DECAYHFRATIO_MAX 2.0f -#define DSFX_I3DL2REVERB_DECAYHFRATIO_DEFAULT 0.83f - -#define DSFX_I3DL2REVERB_REFLECTIONS_MIN (-10000) -#define DSFX_I3DL2REVERB_REFLECTIONS_MAX 1000 -#define DSFX_I3DL2REVERB_REFLECTIONS_DEFAULT (-2602) - -#define DSFX_I3DL2REVERB_REFLECTIONSDELAY_MIN 0.0f -#define DSFX_I3DL2REVERB_REFLECTIONSDELAY_MAX 0.3f -#define DSFX_I3DL2REVERB_REFLECTIONSDELAY_DEFAULT 0.007f - -#define DSFX_I3DL2REVERB_REVERB_MIN (-10000) -#define DSFX_I3DL2REVERB_REVERB_MAX 2000 -#define DSFX_I3DL2REVERB_REVERB_DEFAULT (200) - -#define DSFX_I3DL2REVERB_REVERBDELAY_MIN 0.0f -#define DSFX_I3DL2REVERB_REVERBDELAY_MAX 0.1f -#define DSFX_I3DL2REVERB_REVERBDELAY_DEFAULT 0.011f - -#define DSFX_I3DL2REVERB_DIFFUSION_MIN 0.0f -#define DSFX_I3DL2REVERB_DIFFUSION_MAX 100.0f -#define DSFX_I3DL2REVERB_DIFFUSION_DEFAULT 100.0f - -#define DSFX_I3DL2REVERB_DENSITY_MIN 0.0f -#define DSFX_I3DL2REVERB_DENSITY_MAX 100.0f -#define DSFX_I3DL2REVERB_DENSITY_DEFAULT 100.0f - -#define DSFX_I3DL2REVERB_HFREFERENCE_MIN 20.0f -#define DSFX_I3DL2REVERB_HFREFERENCE_MAX 20000.0f -#define DSFX_I3DL2REVERB_HFREFERENCE_DEFAULT 5000.0f - -#define DSFX_I3DL2REVERB_QUALITY_MIN 0 -#define DSFX_I3DL2REVERB_QUALITY_MAX 3 -#define DSFX_I3DL2REVERB_QUALITY_DEFAULT 2 - -#undef INTERFACE -#define INTERFACE IDirectSoundFXI3DL2Reverb - -DECLARE_INTERFACE_(IDirectSoundFXI3DL2Reverb, IUnknown) -{ - // IUnknown methods - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - // IDirectSoundFXI3DL2Reverb methods - STDMETHOD(SetAllParameters) (THIS_ LPCDSFXI3DL2Reverb pcDsFxI3DL2Reverb) PURE; - STDMETHOD(GetAllParameters) (THIS_ LPDSFXI3DL2Reverb pDsFxI3DL2Reverb) PURE; - STDMETHOD(SetPreset) (THIS_ DWORD dwPreset) PURE; - STDMETHOD(GetPreset) (THIS_ LPDWORD pdwPreset) PURE; - STDMETHOD(SetQuality) (THIS_ LONG lQuality) PURE; - STDMETHOD(GetQuality) (THIS_ LONG *plQuality) PURE; -}; - -#define IDirectSoundFXI3DL2Reverb_QueryInterface(p,a,b) IUnknown_QueryInterface(p,a,b) -#define IDirectSoundFXI3DL2Reverb_AddRef(p) IUnknown_AddRef(p) -#define IDirectSoundFXI3DL2Reverb_Release(p) IUnknown_Release(p) - -#if !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSoundFXI3DL2Reverb_SetAllParameters(p,a) (p)->lpVtbl->SetAllParameters(p,a) -#define IDirectSoundFXI3DL2Reverb_GetAllParameters(p,a) (p)->lpVtbl->GetAllParameters(p,a) -#define IDirectSoundFXI3DL2Reverb_SetPreset(p,a) (p)->lpVtbl->SetPreset(p,a) -#define IDirectSoundFXI3DL2Reverb_GetPreset(p,a) (p)->lpVtbl->GetPreset(p,a) -#else // !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSoundFXI3DL2Reverb_SetAllParameters(p,a) (p)->SetAllParameters(a) -#define IDirectSoundFXI3DL2Reverb_GetAllParameters(p,a) (p)->GetAllParameters(a) -#define IDirectSoundFXI3DL2Reverb_SetPreset(p,a) (p)->SetPreset(a) -#define IDirectSoundFXI3DL2Reverb_GetPreset(p,a) (p)->GetPreset(a) -#endif // !defined(__cplusplus) || defined(CINTERFACE) - -// -// IDirectSoundFXWavesReverb -// - -DEFINE_GUID(IID_IDirectSoundFXWavesReverb,0x46858c3a,0x0dc6,0x45e3,0xb7,0x60,0xd4,0xee,0xf1,0x6c,0xb3,0x25); - -typedef struct _DSFXWavesReverb -{ - FLOAT fInGain; // [-96.0,0.0] default: 0.0 dB - FLOAT fReverbMix; // [-96.0,0.0] default: 0.0 db - FLOAT fReverbTime; // [0.001,3000.0] default: 1000.0 ms - FLOAT fHighFreqRTRatio; // [0.001,0.999] default: 0.001 -} DSFXWavesReverb, *LPDSFXWavesReverb; - -typedef const DSFXWavesReverb *LPCDSFXWavesReverb; - -#define DSFX_WAVESREVERB_INGAIN_MIN -96.0f -#define DSFX_WAVESREVERB_INGAIN_MAX 0.0f -#define DSFX_WAVESREVERB_INGAIN_DEFAULT 0.0f -#define DSFX_WAVESREVERB_REVERBMIX_MIN -96.0f -#define DSFX_WAVESREVERB_REVERBMIX_MAX 0.0f -#define DSFX_WAVESREVERB_REVERBMIX_DEFAULT 0.0f -#define DSFX_WAVESREVERB_REVERBTIME_MIN 0.001f -#define DSFX_WAVESREVERB_REVERBTIME_MAX 3000.0f -#define DSFX_WAVESREVERB_REVERBTIME_DEFAULT 1000.0f -#define DSFX_WAVESREVERB_HIGHFREQRTRATIO_MIN 0.001f -#define DSFX_WAVESREVERB_HIGHFREQRTRATIO_MAX 0.999f -#define DSFX_WAVESREVERB_HIGHFREQRTRATIO_DEFAULT 0.001f - -#undef INTERFACE -#define INTERFACE IDirectSoundFXWavesReverb - -DECLARE_INTERFACE_(IDirectSoundFXWavesReverb, IUnknown) -{ - // IUnknown methods - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - // IDirectSoundFXWavesReverb methods - STDMETHOD(SetAllParameters) (THIS_ LPCDSFXWavesReverb pcDsFxWavesReverb) PURE; - STDMETHOD(GetAllParameters) (THIS_ LPDSFXWavesReverb pDsFxWavesReverb) PURE; -}; - -#define IDirectSoundFXWavesReverb_QueryInterface(p,a,b) IUnknown_QueryInterface(p,a,b) -#define IDirectSoundFXWavesReverb_AddRef(p) IUnknown_AddRef(p) -#define IDirectSoundFXWavesReverb_Release(p) IUnknown_Release(p) - -#if !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSoundFXWavesReverb_SetAllParameters(p,a) (p)->lpVtbl->SetAllParameters(p,a) -#define IDirectSoundFXWavesReverb_GetAllParameters(p,a) (p)->lpVtbl->GetAllParameters(p,a) -#else // !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSoundFXWavesReverb_SetAllParameters(p,a) (p)->SetAllParameters(a) -#define IDirectSoundFXWavesReverb_GetAllParameters(p,a) (p)->GetAllParameters(a) -#endif // !defined(__cplusplus) || defined(CINTERFACE) - -// -// IDirectSoundCaptureFXAec -// - -DEFINE_GUID(IID_IDirectSoundCaptureFXAec, 0xad74143d, 0x903d, 0x4ab7, 0x80, 0x66, 0x28, 0xd3, 0x63, 0x03, 0x6d, 0x65); - -typedef struct _DSCFXAec -{ - BOOL fEnable; - BOOL fNoiseFill; - DWORD dwMode; -} DSCFXAec, *LPDSCFXAec; - -typedef const DSCFXAec *LPCDSCFXAec; - -// These match the AEC_MODE_* constants in the DDK's ksmedia.h file -#define DSCFX_AEC_MODE_PASS_THROUGH 0x0 -#define DSCFX_AEC_MODE_HALF_DUPLEX 0x1 -#define DSCFX_AEC_MODE_FULL_DUPLEX 0x2 - -// These match the AEC_STATUS_* constants in ksmedia.h -#define DSCFX_AEC_STATUS_HISTORY_UNINITIALIZED 0x0 -#define DSCFX_AEC_STATUS_HISTORY_CONTINUOUSLY_CONVERGED 0x1 -#define DSCFX_AEC_STATUS_HISTORY_PREVIOUSLY_DIVERGED 0x2 -#define DSCFX_AEC_STATUS_CURRENTLY_CONVERGED 0x8 - -#undef INTERFACE -#define INTERFACE IDirectSoundCaptureFXAec - -DECLARE_INTERFACE_(IDirectSoundCaptureFXAec, IUnknown) -{ - // IUnknown methods - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - // IDirectSoundCaptureFXAec methods - STDMETHOD(SetAllParameters) (THIS_ LPCDSCFXAec pDscFxAec) PURE; - STDMETHOD(GetAllParameters) (THIS_ LPDSCFXAec pDscFxAec) PURE; - STDMETHOD(GetStatus) (THIS_ PDWORD pdwStatus) PURE; - STDMETHOD(Reset) (THIS) PURE; -}; - -#define IDirectSoundCaptureFXAec_QueryInterface(p,a,b) IUnknown_QueryInterface(p,a,b) -#define IDirectSoundCaptureFXAec_AddRef(p) IUnknown_AddRef(p) -#define IDirectSoundCaptureFXAec_Release(p) IUnknown_Release(p) - -#if !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSoundCaptureFXAec_SetAllParameters(p,a) (p)->lpVtbl->SetAllParameters(p,a) -#define IDirectSoundCaptureFXAec_GetAllParameters(p,a) (p)->lpVtbl->GetAllParameters(p,a) -#else // !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSoundCaptureFXAec_SetAllParameters(p,a) (p)->SetAllParameters(a) -#define IDirectSoundCaptureFXAec_GetAllParameters(p,a) (p)->GetAllParameters(a) -#endif // !defined(__cplusplus) || defined(CINTERFACE) - - -// -// IDirectSoundCaptureFXNoiseSuppress -// - -DEFINE_GUID(IID_IDirectSoundCaptureFXNoiseSuppress, 0xed311e41, 0xfbae, 0x4175, 0x96, 0x25, 0xcd, 0x8, 0x54, 0xf6, 0x93, 0xca); - -typedef struct _DSCFXNoiseSuppress -{ - BOOL fEnable; -} DSCFXNoiseSuppress, *LPDSCFXNoiseSuppress; - -typedef const DSCFXNoiseSuppress *LPCDSCFXNoiseSuppress; - -#undef INTERFACE -#define INTERFACE IDirectSoundCaptureFXNoiseSuppress - -DECLARE_INTERFACE_(IDirectSoundCaptureFXNoiseSuppress, IUnknown) -{ - // IUnknown methods - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - // IDirectSoundCaptureFXNoiseSuppress methods - STDMETHOD(SetAllParameters) (THIS_ LPCDSCFXNoiseSuppress pcDscFxNoiseSuppress) PURE; - STDMETHOD(GetAllParameters) (THIS_ LPDSCFXNoiseSuppress pDscFxNoiseSuppress) PURE; - STDMETHOD(Reset) (THIS) PURE; -}; - -#define IDirectSoundCaptureFXNoiseSuppress_QueryInterface(p,a,b) IUnknown_QueryInterface(p,a,b) -#define IDirectSoundCaptureFXNoiseSuppress_AddRef(p) IUnknown_AddRef(p) -#define IDirectSoundCaptureFXNoiseSuppress_Release(p) IUnknown_Release(p) - -#if !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSoundCaptureFXNoiseSuppress_SetAllParameters(p,a) (p)->lpVtbl->SetAllParameters(p,a) -#define IDirectSoundCaptureFXNoiseSuppress_GetAllParameters(p,a) (p)->lpVtbl->GetAllParameters(p,a) -#else // !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSoundCaptureFXNoiseSuppress_SetAllParameters(p,a) (p)->SetAllParameters(a) -#define IDirectSoundCaptureFXNoiseSuppress_GetAllParameters(p,a) (p)->GetAllParameters(a) -#endif // !defined(__cplusplus) || defined(CINTERFACE) - - -// -// IDirectSoundFullDuplex -// - -#ifndef _IDirectSoundFullDuplex_ -#define _IDirectSoundFullDuplex_ - -#ifdef __cplusplus -// 'struct' not 'class' per the way DECLARE_INTERFACE_ is defined -struct IDirectSoundFullDuplex; -#endif // __cplusplus - -typedef struct IDirectSoundFullDuplex *LPDIRECTSOUNDFULLDUPLEX; - -DEFINE_GUID(IID_IDirectSoundFullDuplex, 0xedcb4c7a, 0xdaab, 0x4216, 0xa4, 0x2e, 0x6c, 0x50, 0x59, 0x6d, 0xdc, 0x1d); - -#undef INTERFACE -#define INTERFACE IDirectSoundFullDuplex - -DECLARE_INTERFACE_(IDirectSoundFullDuplex, IUnknown) -{ - // IUnknown methods - STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - - // IDirectSoundFullDuplex methods - STDMETHOD(Initialize) (THIS_ LPCGUID pCaptureGuid, LPCGUID pRenderGuid, LPCDSCBUFFERDESC lpDscBufferDesc, LPCDSBUFFERDESC lpDsBufferDesc, HWND hWnd, DWORD dwLevel, LPLPDIRECTSOUNDCAPTUREBUFFER8 lplpDirectSoundCaptureBuffer8, LPLPDIRECTSOUNDBUFFER8 lplpDirectSoundBuffer8) PURE; -}; - -#define IDirectSoundFullDuplex_QueryInterface(p,a,b) IUnknown_QueryInterface(p,a,b) -#define IDirectSoundFullDuplex_AddRef(p) IUnknown_AddRef(p) -#define IDirectSoundFullDuplex_Release(p) IUnknown_Release(p) - -#if !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSoundFullDuplex_Initialize(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Initialize(p,a,b,c,d,e,f,g,h) -#else // !defined(__cplusplus) || defined(CINTERFACE) -#define IDirectSoundFullDuplex_Initialize(p,a,b,c,d,e,f,g,h) (p)->Initialize(a,b,c,d,e,f,g,h) -#endif // !defined(__cplusplus) || defined(CINTERFACE) - -#endif // _IDirectSoundFullDuplex_ - -#endif // DIRECTSOUND_VERSION >= 0x0800 - -// -// Return Codes -// - -// The function completed successfully -#define DS_OK S_OK - -// The call succeeded, but we had to substitute the 3D algorithm -#define DS_NO_VIRTUALIZATION MAKE_HRESULT(0, _FACDS, 10) - -// The call failed because resources (such as a priority level) -// were already being used by another caller -#define DSERR_ALLOCATED MAKE_DSHRESULT(10) - -// The control (vol, pan, etc.) requested by the caller is not available -#define DSERR_CONTROLUNAVAIL MAKE_DSHRESULT(30) - -// An invalid parameter was passed to the returning function -#define DSERR_INVALIDPARAM E_INVALIDARG - -// This call is not valid for the current state of this object -#define DSERR_INVALIDCALL MAKE_DSHRESULT(50) - -// An undetermined error occurred inside the DirectSound subsystem -#define DSERR_GENERIC E_FAIL - -// The caller does not have the priority level required for the function to -// succeed -#define DSERR_PRIOLEVELNEEDED MAKE_DSHRESULT(70) - -// Not enough free memory is available to complete the operation -#define DSERR_OUTOFMEMORY E_OUTOFMEMORY - -// The specified WAVE format is not supported -#define DSERR_BADFORMAT MAKE_DSHRESULT(100) - -// The function called is not supported at this time -#define DSERR_UNSUPPORTED E_NOTIMPL - -// No sound driver is available for use -#define DSERR_NODRIVER MAKE_DSHRESULT(120) - -// This object is already initialized -#define DSERR_ALREADYINITIALIZED MAKE_DSHRESULT(130) - -// This object does not support aggregation -#define DSERR_NOAGGREGATION CLASS_E_NOAGGREGATION - -// The buffer memory has been lost, and must be restored -#define DSERR_BUFFERLOST MAKE_DSHRESULT(150) - -// Another app has a higher priority level, preventing this call from -// succeeding -#define DSERR_OTHERAPPHASPRIO MAKE_DSHRESULT(160) - -// This object has not been initialized -#define DSERR_UNINITIALIZED MAKE_DSHRESULT(170) - -// The requested COM interface is not available -#define DSERR_NOINTERFACE E_NOINTERFACE - -// Access is denied -#define DSERR_ACCESSDENIED E_ACCESSDENIED - -// Tried to create a DSBCAPS_CTRLFX buffer shorter than DSBSIZE_FX_MIN milliseconds -#define DSERR_BUFFERTOOSMALL MAKE_DSHRESULT(180) - -// Attempt to use DirectSound 8 functionality on an older DirectSound object -#define DSERR_DS8_REQUIRED MAKE_DSHRESULT(190) - -// A circular loop of send effects was detected -#define DSERR_SENDLOOP MAKE_DSHRESULT(200) - -// The GUID specified in an audiopath file does not match a valid MIXIN buffer -#define DSERR_BADSENDBUFFERGUID MAKE_DSHRESULT(210) - -// The object requested was not found (numerically equal to DMUS_E_NOT_FOUND) -#define DSERR_OBJECTNOTFOUND MAKE_DSHRESULT(4449) - -// The effects requested could not be found on the system, or they were found -// but in the wrong order, or in the wrong hardware/software locations. -#define DSERR_FXUNAVAILABLE MAKE_DSHRESULT(220) - -// -// Flags -// - -#define DSCAPS_PRIMARYMONO 0x00000001 -#define DSCAPS_PRIMARYSTEREO 0x00000002 -#define DSCAPS_PRIMARY8BIT 0x00000004 -#define DSCAPS_PRIMARY16BIT 0x00000008 -#define DSCAPS_CONTINUOUSRATE 0x00000010 -#define DSCAPS_EMULDRIVER 0x00000020 -#define DSCAPS_CERTIFIED 0x00000040 -#define DSCAPS_SECONDARYMONO 0x00000100 -#define DSCAPS_SECONDARYSTEREO 0x00000200 -#define DSCAPS_SECONDARY8BIT 0x00000400 -#define DSCAPS_SECONDARY16BIT 0x00000800 - -#define DSSCL_NORMAL 0x00000001 -#define DSSCL_PRIORITY 0x00000002 -#define DSSCL_EXCLUSIVE 0x00000003 -#define DSSCL_WRITEPRIMARY 0x00000004 - -#define DSSPEAKER_DIRECTOUT 0x00000000 -#define DSSPEAKER_HEADPHONE 0x00000001 -#define DSSPEAKER_MONO 0x00000002 -#define DSSPEAKER_QUAD 0x00000003 -#define DSSPEAKER_STEREO 0x00000004 -#define DSSPEAKER_SURROUND 0x00000005 -#define DSSPEAKER_5POINT1 0x00000006 -#define DSSPEAKER_7POINT1 0x00000007 - -#define DSSPEAKER_GEOMETRY_MIN 0x00000005 // 5 degrees -#define DSSPEAKER_GEOMETRY_NARROW 0x0000000A // 10 degrees -#define DSSPEAKER_GEOMETRY_WIDE 0x00000014 // 20 degrees -#define DSSPEAKER_GEOMETRY_MAX 0x000000B4 // 180 degrees - -#define DSSPEAKER_COMBINED(c, g) ((DWORD)(((BYTE)(c)) | ((DWORD)((BYTE)(g))) << 16)) -#define DSSPEAKER_CONFIG(a) ((BYTE)(a)) -#define DSSPEAKER_GEOMETRY(a) ((BYTE)(((DWORD)(a) >> 16) & 0x00FF)) - -#define DSBCAPS_PRIMARYBUFFER 0x00000001 -#define DSBCAPS_STATIC 0x00000002 -#define DSBCAPS_LOCHARDWARE 0x00000004 -#define DSBCAPS_LOCSOFTWARE 0x00000008 -#define DSBCAPS_CTRL3D 0x00000010 -#define DSBCAPS_CTRLFREQUENCY 0x00000020 -#define DSBCAPS_CTRLPAN 0x00000040 -#define DSBCAPS_CTRLVOLUME 0x00000080 -#define DSBCAPS_CTRLPOSITIONNOTIFY 0x00000100 -#define DSBCAPS_CTRLFX 0x00000200 -#define DSBCAPS_STICKYFOCUS 0x00004000 -#define DSBCAPS_GLOBALFOCUS 0x00008000 -#define DSBCAPS_GETCURRENTPOSITION2 0x00010000 -#define DSBCAPS_MUTE3DATMAXDISTANCE 0x00020000 -#define DSBCAPS_LOCDEFER 0x00040000 - -#define DSBPLAY_LOOPING 0x00000001 -#define DSBPLAY_LOCHARDWARE 0x00000002 -#define DSBPLAY_LOCSOFTWARE 0x00000004 -#define DSBPLAY_TERMINATEBY_TIME 0x00000008 -#define DSBPLAY_TERMINATEBY_DISTANCE 0x000000010 -#define DSBPLAY_TERMINATEBY_PRIORITY 0x000000020 - -#define DSBSTATUS_PLAYING 0x00000001 -#define DSBSTATUS_BUFFERLOST 0x00000002 -#define DSBSTATUS_LOOPING 0x00000004 -#define DSBSTATUS_LOCHARDWARE 0x00000008 -#define DSBSTATUS_LOCSOFTWARE 0x00000010 -#define DSBSTATUS_TERMINATED 0x00000020 - -#define DSBLOCK_FROMWRITECURSOR 0x00000001 -#define DSBLOCK_ENTIREBUFFER 0x00000002 - -#define DSBFREQUENCY_ORIGINAL 0 -#define DSBFREQUENCY_MIN 100 -#if DIRECTSOUND_VERSION >= 0x0900 -#define DSBFREQUENCY_MAX 200000 -#else -#define DSBFREQUENCY_MAX 100000 -#endif - -#define DSBPAN_LEFT -10000 -#define DSBPAN_CENTER 0 -#define DSBPAN_RIGHT 10000 - -#define DSBVOLUME_MIN -10000 -#define DSBVOLUME_MAX 0 - -#define DSBSIZE_MIN 4 -#define DSBSIZE_MAX 0x0FFFFFFF -#define DSBSIZE_FX_MIN 150 // NOTE: Milliseconds, not bytes - -#define DS3DMODE_NORMAL 0x00000000 -#define DS3DMODE_HEADRELATIVE 0x00000001 -#define DS3DMODE_DISABLE 0x00000002 - -#define DS3D_IMMEDIATE 0x00000000 -#define DS3D_DEFERRED 0x00000001 - -#define DS3D_MINDISTANCEFACTOR FLT_MIN -#define DS3D_MAXDISTANCEFACTOR FLT_MAX -#define DS3D_DEFAULTDISTANCEFACTOR 1.0f - -#define DS3D_MINROLLOFFFACTOR 0.0f -#define DS3D_MAXROLLOFFFACTOR 10.0f -#define DS3D_DEFAULTROLLOFFFACTOR 1.0f - -#define DS3D_MINDOPPLERFACTOR 0.0f -#define DS3D_MAXDOPPLERFACTOR 10.0f -#define DS3D_DEFAULTDOPPLERFACTOR 1.0f - -#define DS3D_DEFAULTMINDISTANCE 1.0f -#define DS3D_DEFAULTMAXDISTANCE 1000000000.0f - -#define DS3D_MINCONEANGLE 0 -#define DS3D_MAXCONEANGLE 360 -#define DS3D_DEFAULTCONEANGLE 360 - -#define DS3D_DEFAULTCONEOUTSIDEVOLUME DSBVOLUME_MAX - -// IDirectSoundCapture attributes - -#define DSCCAPS_EMULDRIVER DSCAPS_EMULDRIVER -#define DSCCAPS_CERTIFIED DSCAPS_CERTIFIED -#define DSCCAPS_MULTIPLECAPTURE 0x00000001 - -// IDirectSoundCaptureBuffer attributes - -#define DSCBCAPS_WAVEMAPPED 0x80000000 - -#if DIRECTSOUND_VERSION >= 0x0800 -#define DSCBCAPS_CTRLFX 0x00000200 -#endif - - -#define DSCBLOCK_ENTIREBUFFER 0x00000001 - -#define DSCBSTATUS_CAPTURING 0x00000001 -#define DSCBSTATUS_LOOPING 0x00000002 - -#define DSCBSTART_LOOPING 0x00000001 - -#define DSBPN_OFFSETSTOP 0xFFFFFFFF - -#define DS_CERTIFIED 0x00000000 -#define DS_UNCERTIFIED 0x00000001 - - -// -// Flags for the I3DL2 effects -// - -// -// I3DL2 Material Presets -// - -enum -{ - DSFX_I3DL2_MATERIAL_PRESET_SINGLEWINDOW, - DSFX_I3DL2_MATERIAL_PRESET_DOUBLEWINDOW, - DSFX_I3DL2_MATERIAL_PRESET_THINDOOR, - DSFX_I3DL2_MATERIAL_PRESET_THICKDOOR, - DSFX_I3DL2_MATERIAL_PRESET_WOODWALL, - DSFX_I3DL2_MATERIAL_PRESET_BRICKWALL, - DSFX_I3DL2_MATERIAL_PRESET_STONEWALL, - DSFX_I3DL2_MATERIAL_PRESET_CURTAIN -}; - -#define I3DL2_MATERIAL_PRESET_SINGLEWINDOW -2800,0.71f -#define I3DL2_MATERIAL_PRESET_DOUBLEWINDOW -5000,0.40f -#define I3DL2_MATERIAL_PRESET_THINDOOR -1800,0.66f -#define I3DL2_MATERIAL_PRESET_THICKDOOR -4400,0.64f -#define I3DL2_MATERIAL_PRESET_WOODWALL -4000,0.50f -#define I3DL2_MATERIAL_PRESET_BRICKWALL -5000,0.60f -#define I3DL2_MATERIAL_PRESET_STONEWALL -6000,0.68f -#define I3DL2_MATERIAL_PRESET_CURTAIN -1200,0.15f - -enum -{ - DSFX_I3DL2_ENVIRONMENT_PRESET_DEFAULT, - DSFX_I3DL2_ENVIRONMENT_PRESET_GENERIC, - DSFX_I3DL2_ENVIRONMENT_PRESET_PADDEDCELL, - DSFX_I3DL2_ENVIRONMENT_PRESET_ROOM, - DSFX_I3DL2_ENVIRONMENT_PRESET_BATHROOM, - DSFX_I3DL2_ENVIRONMENT_PRESET_LIVINGROOM, - DSFX_I3DL2_ENVIRONMENT_PRESET_STONEROOM, - DSFX_I3DL2_ENVIRONMENT_PRESET_AUDITORIUM, - DSFX_I3DL2_ENVIRONMENT_PRESET_CONCERTHALL, - DSFX_I3DL2_ENVIRONMENT_PRESET_CAVE, - DSFX_I3DL2_ENVIRONMENT_PRESET_ARENA, - DSFX_I3DL2_ENVIRONMENT_PRESET_HANGAR, - DSFX_I3DL2_ENVIRONMENT_PRESET_CARPETEDHALLWAY, - DSFX_I3DL2_ENVIRONMENT_PRESET_HALLWAY, - DSFX_I3DL2_ENVIRONMENT_PRESET_STONECORRIDOR, - DSFX_I3DL2_ENVIRONMENT_PRESET_ALLEY, - DSFX_I3DL2_ENVIRONMENT_PRESET_FOREST, - DSFX_I3DL2_ENVIRONMENT_PRESET_CITY, - DSFX_I3DL2_ENVIRONMENT_PRESET_MOUNTAINS, - DSFX_I3DL2_ENVIRONMENT_PRESET_QUARRY, - DSFX_I3DL2_ENVIRONMENT_PRESET_PLAIN, - DSFX_I3DL2_ENVIRONMENT_PRESET_PARKINGLOT, - DSFX_I3DL2_ENVIRONMENT_PRESET_SEWERPIPE, - DSFX_I3DL2_ENVIRONMENT_PRESET_UNDERWATER, - DSFX_I3DL2_ENVIRONMENT_PRESET_SMALLROOM, - DSFX_I3DL2_ENVIRONMENT_PRESET_MEDIUMROOM, - DSFX_I3DL2_ENVIRONMENT_PRESET_LARGEROOM, - DSFX_I3DL2_ENVIRONMENT_PRESET_MEDIUMHALL, - DSFX_I3DL2_ENVIRONMENT_PRESET_LARGEHALL, - DSFX_I3DL2_ENVIRONMENT_PRESET_PLATE -}; - -// -// I3DL2 Reverberation Presets Values -// - -#define I3DL2_ENVIRONMENT_PRESET_DEFAULT -1000, -100, 0.0f, 1.49f, 0.83f, -2602, 0.007f, 200, 0.011f, 100.0f, 100.0f, 5000.0f -#define I3DL2_ENVIRONMENT_PRESET_GENERIC -1000, -100, 0.0f, 1.49f, 0.83f, -2602, 0.007f, 200, 0.011f, 100.0f, 100.0f, 5000.0f -#define I3DL2_ENVIRONMENT_PRESET_PADDEDCELL -1000,-6000, 0.0f, 0.17f, 0.10f, -1204, 0.001f, 207, 0.002f, 100.0f, 100.0f, 5000.0f -#define I3DL2_ENVIRONMENT_PRESET_ROOM -1000, -454, 0.0f, 0.40f, 0.83f, -1646, 0.002f, 53, 0.003f, 100.0f, 100.0f, 5000.0f -#define I3DL2_ENVIRONMENT_PRESET_BATHROOM -1000,-1200, 0.0f, 1.49f, 0.54f, -370, 0.007f, 1030, 0.011f, 100.0f, 60.0f, 5000.0f -#define I3DL2_ENVIRONMENT_PRESET_LIVINGROOM -1000,-6000, 0.0f, 0.50f, 0.10f, -1376, 0.003f, -1104, 0.004f, 100.0f, 100.0f, 5000.0f -#define I3DL2_ENVIRONMENT_PRESET_STONEROOM -1000, -300, 0.0f, 2.31f, 0.64f, -711, 0.012f, 83, 0.017f, 100.0f, 100.0f, 5000.0f -#define I3DL2_ENVIRONMENT_PRESET_AUDITORIUM -1000, -476, 0.0f, 4.32f, 0.59f, -789, 0.020f, -289, 0.030f, 100.0f, 100.0f, 5000.0f -#define I3DL2_ENVIRONMENT_PRESET_CONCERTHALL -1000, -500, 0.0f, 3.92f, 0.70f, -1230, 0.020f, -2, 0.029f, 100.0f, 100.0f, 5000.0f -#define I3DL2_ENVIRONMENT_PRESET_CAVE -1000, 0, 0.0f, 2.91f, 1.30f, -602, 0.015f, -302, 0.022f, 100.0f, 100.0f, 5000.0f -#define I3DL2_ENVIRONMENT_PRESET_ARENA -1000, -698, 0.0f, 7.24f, 0.33f, -1166, 0.020f, 16, 0.030f, 100.0f, 100.0f, 5000.0f -#define I3DL2_ENVIRONMENT_PRESET_HANGAR -1000,-1000, 0.0f,10.05f, 0.23f, -602, 0.020f, 198, 0.030f, 100.0f, 100.0f, 5000.0f -#define I3DL2_ENVIRONMENT_PRESET_CARPETEDHALLWAY -1000,-4000, 0.0f, 0.30f, 0.10f, -1831, 0.002f, -1630, 0.030f, 100.0f, 100.0f, 5000.0f -#define I3DL2_ENVIRONMENT_PRESET_HALLWAY -1000, -300, 0.0f, 1.49f, 0.59f, -1219, 0.007f, 441, 0.011f, 100.0f, 100.0f, 5000.0f -#define I3DL2_ENVIRONMENT_PRESET_STONECORRIDOR -1000, -237, 0.0f, 2.70f, 0.79f, -1214, 0.013f, 395, 0.020f, 100.0f, 100.0f, 5000.0f -#define I3DL2_ENVIRONMENT_PRESET_ALLEY -1000, -270, 0.0f, 1.49f, 0.86f, -1204, 0.007f, -4, 0.011f, 100.0f, 100.0f, 5000.0f -#define I3DL2_ENVIRONMENT_PRESET_FOREST -1000,-3300, 0.0f, 1.49f, 0.54f, -2560, 0.162f, -613, 0.088f, 79.0f, 100.0f, 5000.0f -#define I3DL2_ENVIRONMENT_PRESET_CITY -1000, -800, 0.0f, 1.49f, 0.67f, -2273, 0.007f, -2217, 0.011f, 50.0f, 100.0f, 5000.0f -#define I3DL2_ENVIRONMENT_PRESET_MOUNTAINS -1000,-2500, 0.0f, 1.49f, 0.21f, -2780, 0.300f, -2014, 0.100f, 27.0f, 100.0f, 5000.0f -#define I3DL2_ENVIRONMENT_PRESET_QUARRY -1000,-1000, 0.0f, 1.49f, 0.83f,-10000, 0.061f, 500, 0.025f, 100.0f, 100.0f, 5000.0f -#define I3DL2_ENVIRONMENT_PRESET_PLAIN -1000,-2000, 0.0f, 1.49f, 0.50f, -2466, 0.179f, -2514, 0.100f, 21.0f, 100.0f, 5000.0f -#define I3DL2_ENVIRONMENT_PRESET_PARKINGLOT -1000, 0, 0.0f, 1.65f, 1.50f, -1363, 0.008f, -1153, 0.012f, 100.0f, 100.0f, 5000.0f -#define I3DL2_ENVIRONMENT_PRESET_SEWERPIPE -1000,-1000, 0.0f, 2.81f, 0.14f, 429, 0.014f, 648, 0.021f, 80.0f, 60.0f, 5000.0f -#define I3DL2_ENVIRONMENT_PRESET_UNDERWATER -1000,-4000, 0.0f, 1.49f, 0.10f, -449, 0.007f, 1700, 0.011f, 100.0f, 100.0f, 5000.0f - -// -// Examples simulating 'musical' reverb presets -// -// Name Decay time Description -// Small Room 1.1s A small size room with a length of 5m or so. -// Medium Room 1.3s A medium size room with a length of 10m or so. -// Large Room 1.5s A large size room suitable for live performances. -// Medium Hall 1.8s A medium size concert hall. -// Large Hall 1.8s A large size concert hall suitable for a full orchestra. -// Plate 1.3s A plate reverb simulation. -// - -#define I3DL2_ENVIRONMENT_PRESET_SMALLROOM -1000, -600, 0.0f, 1.10f, 0.83f, -400, 0.005f, 500, 0.010f, 100.0f, 100.0f, 5000.0f -#define I3DL2_ENVIRONMENT_PRESET_MEDIUMROOM -1000, -600, 0.0f, 1.30f, 0.83f, -1000, 0.010f, -200, 0.020f, 100.0f, 100.0f, 5000.0f -#define I3DL2_ENVIRONMENT_PRESET_LARGEROOM -1000, -600, 0.0f, 1.50f, 0.83f, -1600, 0.020f, -1000, 0.040f, 100.0f, 100.0f, 5000.0f -#define I3DL2_ENVIRONMENT_PRESET_MEDIUMHALL -1000, -600, 0.0f, 1.80f, 0.70f, -1300, 0.015f, -800, 0.030f, 100.0f, 100.0f, 5000.0f -#define I3DL2_ENVIRONMENT_PRESET_LARGEHALL -1000, -600, 0.0f, 1.80f, 0.70f, -2000, 0.030f, -1400, 0.060f, 100.0f, 100.0f, 5000.0f -#define I3DL2_ENVIRONMENT_PRESET_PLATE -1000, -200, 0.0f, 1.30f, 0.90f, 0, 0.002f, 0, 0.010f, 100.0f, 75.0f, 5000.0f - -// -// DirectSound3D Algorithms -// - -// Default DirectSound3D algorithm {00000000-0000-0000-0000-000000000000} -#define DS3DALG_DEFAULT GUID_NULL - -// No virtualization (Pan3D) {C241333F-1C1B-11d2-94F5-00C04FC28ACA} -DEFINE_GUID(DS3DALG_NO_VIRTUALIZATION, 0xc241333f, 0x1c1b, 0x11d2, 0x94, 0xf5, 0x0, 0xc0, 0x4f, 0xc2, 0x8a, 0xca); - -// High-quality HRTF algorithm {C2413340-1C1B-11d2-94F5-00C04FC28ACA} -DEFINE_GUID(DS3DALG_HRTF_FULL, 0xc2413340, 0x1c1b, 0x11d2, 0x94, 0xf5, 0x0, 0xc0, 0x4f, 0xc2, 0x8a, 0xca); - -// Lower-quality HRTF algorithm {C2413342-1C1B-11d2-94F5-00C04FC28ACA} -DEFINE_GUID(DS3DALG_HRTF_LIGHT, 0xc2413342, 0x1c1b, 0x11d2, 0x94, 0xf5, 0x0, 0xc0, 0x4f, 0xc2, 0x8a, 0xca); - - -#if DIRECTSOUND_VERSION >= 0x0800 - -// -// DirectSound Internal Effect Algorithms -// - - -// Gargle {DAFD8210-5711-4B91-9FE3-F75B7AE279BF} -DEFINE_GUID(GUID_DSFX_STANDARD_GARGLE, 0xdafd8210, 0x5711, 0x4b91, 0x9f, 0xe3, 0xf7, 0x5b, 0x7a, 0xe2, 0x79, 0xbf); - -// Chorus {EFE6629C-81F7-4281-BD91-C9D604A95AF6} -DEFINE_GUID(GUID_DSFX_STANDARD_CHORUS, 0xefe6629c, 0x81f7, 0x4281, 0xbd, 0x91, 0xc9, 0xd6, 0x04, 0xa9, 0x5a, 0xf6); - -// Flanger {EFCA3D92-DFD8-4672-A603-7420894BAD98} -DEFINE_GUID(GUID_DSFX_STANDARD_FLANGER, 0xefca3d92, 0xdfd8, 0x4672, 0xa6, 0x03, 0x74, 0x20, 0x89, 0x4b, 0xad, 0x98); - -// Echo/Delay {EF3E932C-D40B-4F51-8CCF-3F98F1B29D5D} -DEFINE_GUID(GUID_DSFX_STANDARD_ECHO, 0xef3e932c, 0xd40b, 0x4f51, 0x8c, 0xcf, 0x3f, 0x98, 0xf1, 0xb2, 0x9d, 0x5d); - -// Distortion {EF114C90-CD1D-484E-96E5-09CFAF912A21} -DEFINE_GUID(GUID_DSFX_STANDARD_DISTORTION, 0xef114c90, 0xcd1d, 0x484e, 0x96, 0xe5, 0x09, 0xcf, 0xaf, 0x91, 0x2a, 0x21); - -// Compressor/Limiter {EF011F79-4000-406D-87AF-BFFB3FC39D57} -DEFINE_GUID(GUID_DSFX_STANDARD_COMPRESSOR, 0xef011f79, 0x4000, 0x406d, 0x87, 0xaf, 0xbf, 0xfb, 0x3f, 0xc3, 0x9d, 0x57); - -// Parametric Equalization {120CED89-3BF4-4173-A132-3CB406CF3231} -DEFINE_GUID(GUID_DSFX_STANDARD_PARAMEQ, 0x120ced89, 0x3bf4, 0x4173, 0xa1, 0x32, 0x3c, 0xb4, 0x06, 0xcf, 0x32, 0x31); - -// I3DL2 Environmental Reverberation: Reverb (Listener) Effect {EF985E71-D5C7-42D4-BA4D-2D073E2E96F4} -DEFINE_GUID(GUID_DSFX_STANDARD_I3DL2REVERB, 0xef985e71, 0xd5c7, 0x42d4, 0xba, 0x4d, 0x2d, 0x07, 0x3e, 0x2e, 0x96, 0xf4); - -// Waves Reverberation {87FC0268-9A55-4360-95AA-004A1D9DE26C} -DEFINE_GUID(GUID_DSFX_WAVES_REVERB, 0x87fc0268, 0x9a55, 0x4360, 0x95, 0xaa, 0x00, 0x4a, 0x1d, 0x9d, 0xe2, 0x6c); - -// -// DirectSound Capture Effect Algorithms -// - - -// Acoustic Echo Canceller {BF963D80-C559-11D0-8A2B-00A0C9255AC1} -// Matches KSNODETYPE_ACOUSTIC_ECHO_CANCEL in ksmedia.h -DEFINE_GUID(GUID_DSCFX_CLASS_AEC, 0xBF963D80L, 0xC559, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1); - -// Microsoft AEC {CDEBB919-379A-488a-8765-F53CFD36DE40} -DEFINE_GUID(GUID_DSCFX_MS_AEC, 0xcdebb919, 0x379a, 0x488a, 0x87, 0x65, 0xf5, 0x3c, 0xfd, 0x36, 0xde, 0x40); - -// System AEC {1C22C56D-9879-4f5b-A389-27996DDC2810} -DEFINE_GUID(GUID_DSCFX_SYSTEM_AEC, 0x1c22c56d, 0x9879, 0x4f5b, 0xa3, 0x89, 0x27, 0x99, 0x6d, 0xdc, 0x28, 0x10); - -// Noise Supression {E07F903F-62FD-4e60-8CDD-DEA7236665B5} -// Matches KSNODETYPE_NOISE_SUPPRESS in post Windows ME DDK's ksmedia.h -DEFINE_GUID(GUID_DSCFX_CLASS_NS, 0xe07f903f, 0x62fd, 0x4e60, 0x8c, 0xdd, 0xde, 0xa7, 0x23, 0x66, 0x65, 0xb5); - -// Microsoft Noise Suppresion {11C5C73B-66E9-4ba1-A0BA-E814C6EED92D} -DEFINE_GUID(GUID_DSCFX_MS_NS, 0x11c5c73b, 0x66e9, 0x4ba1, 0xa0, 0xba, 0xe8, 0x14, 0xc6, 0xee, 0xd9, 0x2d); - -// System Noise Suppresion {5AB0882E-7274-4516-877D-4EEE99BA4FD0} -DEFINE_GUID(GUID_DSCFX_SYSTEM_NS, 0x5ab0882e, 0x7274, 0x4516, 0x87, 0x7d, 0x4e, 0xee, 0x99, 0xba, 0x4f, 0xd0); - -#endif // DIRECTSOUND_VERSION >= 0x0800 - -#endif // __DSOUND_INCLUDED__ - - - -#ifdef __cplusplus -}; -#endif // __cplusplus - - diff --git a/plugins/!NotAdopted/sndVol/dxerr8.h b/plugins/!NotAdopted/sndVol/dxerr8.h deleted file mode 100644 index c2744306e2..0000000000 --- a/plugins/!NotAdopted/sndVol/dxerr8.h +++ /dev/null @@ -1,99 +0,0 @@ -/*==========================================================================; - * - * - * File: dxerr8.h - * Content: DirectX Error Library Include File - * - ****************************************************************************/ - -#ifndef _DXERR8_H_ -#define _DXERR8_H_ - -#ifdef __cplusplus -extern "C" { -#endif //__cplusplus - -// -// DXGetErrorString8 -// -// Desc: Converts a DirectX HRESULT to a string -// -// Args: HRESULT hr Can be any error code from -// D3D8 D3DX8 DDRAW DPLAY8 DMUSIC DSOUND DINPUT DSHOW -// -// Return: Converted string -// -const char* WINAPI DXGetErrorString8A(HRESULT hr); -const WCHAR* WINAPI DXGetErrorString8W(HRESULT hr); - -#ifdef UNICODE -#define DXGetErrorString8 DXGetErrorString8W -#else -#define DXGetErrorString8 DXGetErrorString8A -#endif - - -// -// DXGetErrorDescription8 -// -// Desc: Returns a string description of a DirectX HRESULT -// -// Args: HRESULT hr Can be any error code from -// D3D8 D3DX8 DDRAW DPLAY8 DMUSIC DSOUND DINPUT DSHOW -// -// Return: String description -// -const char* WINAPI DXGetErrorDescription8A(HRESULT hr); -const WCHAR* WINAPI DXGetErrorDescription8W(HRESULT hr); - -#ifdef UNICODE - #define DXGetErrorDescription8 DXGetErrorDescription8W -#else - #define DXGetErrorDescription8 DXGetErrorDescription8A -#endif - - -// -// DXTrace -// -// Desc: Outputs a formatted error message to the debug stream -// -// Args: CHAR* strFile The current file, typically passed in using the -// __FILE__ macro. -// DWORD dwLine The current line number, typically passed in using the -// __LINE__ macro. -// HRESULT hr An HRESULT that will be traced to the debug stream. -// CHAR* strMsg A string that will be traced to the debug stream (may be NULL) -// BOOL bPopMsgBox If TRUE, then a message box will popup also containing the passed info. -// -// Return: The hr that was passed in. -// -HRESULT WINAPI DXTraceA( const char* strFile, DWORD dwLine, HRESULT hr, const char* strMsg, BOOL bPopMsgBox ); -HRESULT WINAPI DXTraceW( const char* strFile, DWORD dwLine, HRESULT hr, const WCHAR* strMsg, BOOL bPopMsgBox ); - -#ifdef UNICODE -#define DXTrace DXTraceW -#else -#define DXTrace DXTraceA -#endif - - -// -// Helper macros -// -#if defined(DEBUG) | defined(_DEBUG) -#define DXTRACE_MSG(str) DXTrace( __FILE__, (DWORD)__LINE__, 0, str, FALSE ) -#define DXTRACE_ERR(str,hr) DXTrace( __FILE__, (DWORD)__LINE__, hr, str, TRUE ) -#define DXTRACE_ERR_NOMSGBOX(str,hr) DXTrace( __FILE__, (DWORD)__LINE__, hr, str, FALSE ) -#else -#define DXTRACE_MSG(str) (0L) -#define DXTRACE_ERR(str,hr) (hr) -#define DXTRACE_ERR_NOMSGBOX(str,hr) (hr) -#endif - - -#ifdef __cplusplus -} -#endif //__cplusplus - -#endif // _DXERR8_H_ diff --git a/plugins/!NotAdopted/sndVol/dxguid.lib b/plugins/!NotAdopted/sndVol/dxguid.lib deleted file mode 100644 index 53b96d26b2..0000000000 Binary files a/plugins/!NotAdopted/sndVol/dxguid.lib and /dev/null differ diff --git a/plugins/!NotAdopted/sndVol/dxutil.cpp b/plugins/!NotAdopted/sndVol/dxutil.cpp deleted file mode 100644 index 7cf3ecd863..0000000000 --- a/plugins/!NotAdopted/sndVol/dxutil.cpp +++ /dev/null @@ -1,226 +0,0 @@ -//----------------------------------------------------------------------------- -// File: DXUtil.cpp -// -// Desc: Shortcut macros and functions for using DX objects -// -// -// Copyright (c) 1997-2001 Microsoft Corporation. All rights reserved -//----------------------------------------------------------------------------- -#define STRICT -#include -#include -#include -#include -#include -#include "DXUtil.h" - -//----------------------------------------------------------------------------- -// Name: DXUtil_ConvertAnsiStringToWide() -// Desc: This is a UNICODE conversion utility to convert a CHAR string into a -// WCHAR string. cchDestChar defaults -1 which means it -// assumes strDest is large enough to store strSource -//----------------------------------------------------------------------------- -VOID DXUtil_ConvertAnsiStringToWide( WCHAR* wstrDestination, const CHAR* strSource, - int cchDestChar ) -{ - if( wstrDestination==NULL || strSource==NULL ) - return; - - if( cchDestChar == -1 ) - cchDestChar = strlen(strSource)+1; - - MultiByteToWideChar( CP_ACP, 0, strSource, -1, - wstrDestination, cchDestChar-1 ); - - wstrDestination[cchDestChar-1] = 0; -} - - - - -//----------------------------------------------------------------------------- -// Name: DXUtil_ConvertWideStringToAnsi() -// Desc: This is a UNICODE conversion utility to convert a WCHAR string into a -// CHAR string. cchDestChar defaults -1 which means it -// assumes strDest is large enough to store strSource -//----------------------------------------------------------------------------- -VOID DXUtil_ConvertWideStringToAnsi( CHAR* strDestination, const WCHAR* wstrSource, - int cchDestChar ) -{ - if( strDestination==NULL || wstrSource==NULL ) - return; - - if( cchDestChar == -1 ) - cchDestChar = wcslen(wstrSource)+1; - - WideCharToMultiByte( CP_ACP, 0, wstrSource, -1, strDestination, - cchDestChar-1, NULL, NULL ); - - strDestination[cchDestChar-1] = 0; -} - - - - -//----------------------------------------------------------------------------- -// Name: DXUtil_ConvertGenericStringToAnsi() -// Desc: This is a UNICODE conversion utility to convert a TCHAR string into a -// CHAR string. cchDestChar defaults -1 which means it -// assumes strDest is large enough to store strSource -//----------------------------------------------------------------------------- -VOID DXUtil_ConvertGenericStringToAnsi( CHAR* strDestination, const TCHAR* tstrSource, - int cchDestChar ) -{ - if( strDestination==NULL || tstrSource==NULL || cchDestChar == 0 ) - return; - -#ifdef _UNICODE - DXUtil_ConvertWideStringToAnsi( strDestination, tstrSource, cchDestChar ); -#else - if( cchDestChar == -1 ) - { - strcpy( strDestination, tstrSource ); - } - else - { - strncpy( strDestination, tstrSource, cchDestChar ); - strDestination[cchDestChar-1] = '\0'; - } -#endif -} - - - - -//----------------------------------------------------------------------------- -// Name: DXUtil_ConvertGenericStringToWide() -// Desc: This is a UNICODE conversion utility to convert a TCHAR string into a -// WCHAR string. cchDestChar defaults -1 which means it -// assumes strDest is large enough to store strSource -//----------------------------------------------------------------------------- -VOID DXUtil_ConvertGenericStringToWide( WCHAR* wstrDestination, const TCHAR* tstrSource, - int cchDestChar ) -{ - if( wstrDestination==NULL || tstrSource==NULL || cchDestChar == 0 ) - return; - -#ifdef _UNICODE - if( cchDestChar == -1 ) - { - wcscpy( wstrDestination, tstrSource ); - } - else - { - wcsncpy( wstrDestination, tstrSource, cchDestChar ); - wstrDestination[cchDestChar-1] = L'\0'; - } -#else - DXUtil_ConvertAnsiStringToWide( wstrDestination, tstrSource, cchDestChar ); -#endif -} - - - - -//----------------------------------------------------------------------------- -// Name: DXUtil_ConvertAnsiStringToGeneric() -// Desc: This is a UNICODE conversion utility to convert a CHAR string into a -// TCHAR string. cchDestChar defaults -1 which means it -// assumes strDest is large enough to store strSource -//----------------------------------------------------------------------------- -VOID DXUtil_ConvertAnsiStringToGeneric( TCHAR* tstrDestination, const CHAR* strSource, - int cchDestChar ) -{ - if( tstrDestination==NULL || strSource==NULL || cchDestChar == 0 ) - return; - -#ifdef _UNICODE - DXUtil_ConvertAnsiStringToWide( tstrDestination, strSource, cchDestChar ); -#else - if( cchDestChar == -1 ) - { - strcpy( tstrDestination, strSource ); - } - else - { - strncpy( tstrDestination, strSource, cchDestChar ); - tstrDestination[cchDestChar-1] = '\0'; - } -#endif -} - - - - -//----------------------------------------------------------------------------- -// Name: DXUtil_ConvertAnsiStringToGeneric() -// Desc: This is a UNICODE conversion utility to convert a WCHAR string into a -// TCHAR string. cchDestChar defaults -1 which means it -// assumes strDest is large enough to store strSource -//----------------------------------------------------------------------------- -VOID DXUtil_ConvertWideStringToGeneric( TCHAR* tstrDestination, const WCHAR* wstrSource, - int cchDestChar ) -{ - if( tstrDestination==NULL || wstrSource==NULL || cchDestChar == 0 ) - return; - -#ifdef _UNICODE - if( cchDestChar == -1 ) - { - wcscpy( tstrDestination, wstrSource ); - } - else - { - wcsncpy( tstrDestination, wstrSource, cchDestChar ); - tstrDestination[cchDestChar-1] = L'\0'; - } -#else - DXUtil_ConvertWideStringToAnsi( tstrDestination, wstrSource, cchDestChar ); -#endif -} - -//----------------------------------------------------------------------------- -// Name: _DbgOut() -// Desc: Outputs a message to the debug stream -//----------------------------------------------------------------------------- -HRESULT _DbgOut( TCHAR* strFile, DWORD dwLine, HRESULT hr, TCHAR* strMsg ) -{ - TCHAR buffer[256]; - wsprintf( buffer, _T("%s(%ld): "), strFile, dwLine ); - OutputDebugString( buffer ); - OutputDebugString( strMsg ); - - if( hr ) - { - wsprintf( buffer, _T("(hr=%08lx)\n"), hr ); - OutputDebugString( buffer ); - } - - OutputDebugString( _T("\n") ); - - return hr; -} - - - - -//----------------------------------------------------------------------------- -// Name: DXUtil_Trace() -// Desc: Outputs to the debug stream a formatted string with a variable- -// argument list. -//----------------------------------------------------------------------------- -VOID DXUtil_Trace( TCHAR* strMsg, ... ) -{ -#if defined(DEBUG) | defined(_DEBUG) - TCHAR strBuffer[512]; - - va_list args; - va_start(args, strMsg); - _vsntprintf( strBuffer, 512, strMsg, args ); - va_end(args); - - OutputDebugString( strBuffer ); -#else - UNREFERENCED_PARAMETER(strMsg); -#endif -} diff --git a/plugins/!NotAdopted/sndVol/dxutil.h b/plugins/!NotAdopted/sndVol/dxutil.h deleted file mode 100644 index cfded98bcd..0000000000 --- a/plugins/!NotAdopted/sndVol/dxutil.h +++ /dev/null @@ -1,49 +0,0 @@ -//----------------------------------------------------------------------------- -// File: DXUtil.h -// -// Desc: Helper functions and typing shortcuts for DirectX programming. -// -// Copyright (c) 1997-2001 Microsoft Corporation. All rights reserved -//----------------------------------------------------------------------------- -#ifndef DXUTIL_H -#define DXUTIL_H - -//----------------------------------------------------------------------------- -// UNICODE support for converting between CHAR, TCHAR, and WCHAR strings -//----------------------------------------------------------------------------- -VOID DXUtil_ConvertAnsiStringToWide( WCHAR* wstrDestination, const CHAR* strSource, int cchDestChar = -1 ); -VOID DXUtil_ConvertWideStringToAnsi( CHAR* strDestination, const WCHAR* wstrSource, int cchDestChar = -1 ); -VOID DXUtil_ConvertGenericStringToAnsi( CHAR* strDestination, const TCHAR* tstrSource, int cchDestChar = -1 ); -VOID DXUtil_ConvertGenericStringToWide( WCHAR* wstrDestination, const TCHAR* tstrSource, int cchDestChar = -1 ); -VOID DXUtil_ConvertAnsiStringToGeneric( TCHAR* tstrDestination, const CHAR* strSource, int cchDestChar = -1 ); -VOID DXUtil_ConvertWideStringToGeneric( TCHAR* tstrDestination, const WCHAR* wstrSource, int cchDestChar = -1 ); - -//----------------------------------------------------------------------------- -// Miscellaneous helper functions -//----------------------------------------------------------------------------- -#define SAFE_DELETE(p) { if(p) { delete (p); (p)=NULL; } } -#define SAFE_DELETE_ARRAY(p) { if(p) { delete[] (p); (p)=NULL; } } -#define SAFE_RELEASE(p) { if(p) { (p)->Release(); (p)=NULL; } } - -//----------------------------------------------------------------------------- -// Debug printing support -//----------------------------------------------------------------------------- -VOID DXUtil_Trace( TCHAR* strMsg, ... ); -HRESULT _DbgOut( TCHAR*, DWORD, HRESULT, TCHAR* ); - -#if defined(DEBUG) | defined(_DEBUG) - #define DXTRACE DXUtil_Trace -#else - #define DXTRACE sizeof -#endif - -#if defined(DEBUG) | defined(_DEBUG) - #define DEBUG_MSG(str) _DbgOut( __FILE__, (DWORD)__LINE__, 0, str ) -#else - #define DEBUG_MSG(str) (0L) -#endif - - - - -#endif // DXUTIL_H diff --git a/plugins/!NotAdopted/sndVol/m_cluiframes.h b/plugins/!NotAdopted/sndVol/m_cluiframes.h deleted file mode 100644 index d046439346..0000000000 --- a/plugins/!NotAdopted/sndVol/m_cluiframes.h +++ /dev/null @@ -1,128 +0,0 @@ -/* -Miranda ICQ: the free icq client for MS Windows -Copyright (C) 2000-2 Richard Hughes, Roland Rabien & Tristan Van de Vreede - -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 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. -*/ - -//#include "../../core/commonheaders.h" -//#pragma hdrstop - -//adds a frame window -//wParam=(CLISTFrame*) -//lParam=0 -//returns an integer, the frame id. -typedef struct tagCLISTFrame { - DWORD cbSize; - HWND hWnd ; - HICON hIcon; - int align; //al flags below - int height; - int Flags; //F_flags below - char *name; //frame window name,will be shown in menu - char *TBname; //titlebar caption - //COLORREF TBBackColour; //titlebar background colour -} CLISTFrame; -#define F_VISIBLE 1 //Frame visible -#define F_SHOWTB 2 //Show TitleBar -#define F_UNCOLLAPSED 4 //UnCollapse frame -#define F_LOCKED 8 //Lock Frame -#define F_NOBORDER 16 //Dont apply WS_BORDER style for window -#define F_SHOWTBTIP 32 //Show titlebar tooltip - - -// frame alignment -#define alTop 0x00000001 -#define alBottom 0x00000002 -#define alClient 0x00000004 //only one alClient frame -#define MS_CLIST_FRAMES_ADDFRAME "CListFrames/AddFrame" - -#define MS_CLIST_FRAMES_REMOVEFRAME "CListFrames/RemoveFrame" - -//shows all frames -//wParam=lParam=0 -//returns 0 on success, -1 on failure -#define MS_CLIST_FRAMES_SHOWALLFRAMES "CListFrames/ShowALLFrames" - -//shows the titlebars of all frames -//wParam=lParam=0 -//returns 0 on success, -1 on failure -#define MS_CLIST_FRAMES_SHOWALLFRAMESTB "CListFrames/ShowALLFramesTB" - -//hides the titlebars of all frames -//wParam=lParam=0 -//returns 0 on success, -1 on failure -#define MS_CLIST_FRAMES_HIDEALLFRAMESTB "CListFrames/HideALLFramesTB" - -//shows the frame if it is hidden, -//hides the frame if it is shown -//wParam=FrameId -//lParam=0 -//returns 0 on success, -1 on failure -#define MS_CLIST_FRAMES_SHFRAME "CListFrames/SHFrame" - -//shows the frame titlebar if it is hidden, -//hides the frame titlebar if it is shown -//wParam=FrameId -//lParam=0 -//returns 0 on success, -1 on failure -#define MS_CLIST_FRAMES_SHFRAMETITLEBAR "CListFrame/SHFrameTitleBar" - -//locks the frame if it is unlocked, -//unlock the frame if it is locked -//wParam=FrameId -//lParam=0 -//returns 0 on success, -1 on failure -#define MS_CLIST_FRAMES_ULFRAME "CListFrame/ULFrame" - -//collapses the frame if it is uncollapsed, -//uncollapses the frame if it is collapsed -//wParam=FrameId -//lParam=0 -//returns 0 on success, -1 on failure -#define MS_CLIST_FRAMES_UCOLLFRAME "CListFrame/UCOLLFrame" - -//redraws the frame -//wParam=FrameId, -1 for all frames -//lparam=FU_flags -//returns a pointer to option, -1 on failure -#define FU_TBREDRAW 1 //redraw titlebar -#define FU_FMREDRAW 2 //redraw Frame -#define FU_FMPOS 4 //update Frame position -#define MS_CLIST_FRAMES_UPDATEFRAME "CListFrame/UpdateFrame" - -//gets the frame options -//(HIWORLD)wParam=FrameId -//(LOWORD)wParam=FO_flag -//lParam=0 -//returns a pointer to option, -1 on failure -#define FO_FLAGS 0x0001 //return set of F_VISIBLE,F_SHOWTB,F_UNCOLLAPSED,F_LOCKED,F_NOBORDER,F_SHOWTBTIP -#define FO_NAME 0x0002 //Change name -#define FO_TBNAME 0x0003 //Change TB caption -#define FO_TBSTYLE 0x0004 //Change TB style -#define FO_TBEXSTYLE 0x0005 //Change TB exstyle -#define FO_ICON 0x0006 //Change icon -#define FO_HEIGHT 0x0007 //Change height -#define FO_ALIGN 0x0008 //Change align -#define FO_TBTIPNAME 0x0009 //Change TB tooltip - -#define MS_CLIST_FRAMES_GETFRAMEOPTIONS "CListFrame/GetFrameOptions" - -//sets the frame options -//(HIWORLD)wParam=FrameId -//(LOWORD)wParam=FO_flag -//lParam=value -//returns 0 on success, -1 on failure -#define MS_CLIST_FRAMES_SETFRAMEOPTIONS "CListFrame/SetFrameOptions" diff --git a/plugins/!NotAdopted/sndVol/mradio-muted.ico b/plugins/!NotAdopted/sndVol/mradio-muted.ico deleted file mode 100644 index 4efbca899c..0000000000 Binary files a/plugins/!NotAdopted/sndVol/mradio-muted.ico and /dev/null differ diff --git a/plugins/!NotAdopted/sndVol/mradio.ico b/plugins/!NotAdopted/sndVol/mradio.ico deleted file mode 100644 index e95c6fe21a..0000000000 Binary files a/plugins/!NotAdopted/sndVol/mradio.ico and /dev/null differ diff --git a/plugins/!NotAdopted/sndVol/nosnd.ico b/plugins/!NotAdopted/sndVol/nosnd.ico deleted file mode 100644 index 231bc4187d..0000000000 Binary files a/plugins/!NotAdopted/sndVol/nosnd.ico and /dev/null differ diff --git a/plugins/!NotAdopted/sndVol/optionsdlg.cpp b/plugins/!NotAdopted/sndVol/optionsdlg.cpp deleted file mode 100644 index 0b194fc046..0000000000 --- a/plugins/!NotAdopted/sndVol/optionsdlg.cpp +++ /dev/null @@ -1,205 +0,0 @@ -#include "plugin.h" -#include "playSnd.h" -#include "resource.h" -#include "optionsdlg.h" - -#include - -#pragma comment(lib, "comctl32.lib") - -extern void SetRadioVolume(int value); -extern COLORREF g_clrback; -extern HBRUSH g_HBRback; -extern int g_mRadioMuted; -extern HWND hwndMRadio; -extern HICON hIconMRadio, hIconMRadio_off; - -void LoadBackgroundSettings() -{ - HWND hwnd; - - if(g_HBRback) - DeleteObject(g_HBRback); - - if(DBGetContactSettingByte(NULL, SERVICENAME, "def_bg", 1)) - g_clrback = GetSysColor(COLOR_3DFACE); - else - g_clrback = DBGetContactSettingDword(NULL, SERVICENAME, "bgc", GetSysColor(COLOR_3DFACE)); - - g_HBRback = CreateSolidBrush(g_clrback); - hwnd = GetFocus(); - InvalidateRect(hwndSlider, NULL, TRUE); - SetFocus(hwndSlider); - RedrawWindow(hwndFrame, NULL, NULL, RDW_INVALIDATE | RDW_ALLCHILDREN | RDW_ERASE); - SetFocus(hwnd); -} - -LRESULT CALLBACK GroupWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) -{ - switch( uMsg ) - { - case WM_LBUTTONDOWN: - ::MessageBox(0,_T("LB"),_T(""),0); - return 0; - case WM_PAINT: - { - CallWindowProc((WNDPROC)GetWindowLong(hwnd, GWL_USERDATA), hwnd, uMsg, wParam, lParam); - - HDC hdc = GetDC(hwnd); - RECT rc; - TCHAR szTitle[256]; - HFONT oldfont; - int oldBk; - ZeroMemory(&rc, sizeof(rc)); - // Determine a size of the text - - oldBk = SetBkMode(hdc, TRANSPARENT); - oldfont = (HFONT)SelectObject(hdc, (HFONT)SendMessage(hwnd, WM_GETFONT, 0,0)); - SetBkMode(hdc, TRANSPARENT); - GetWindowText(hwnd, szTitle, sizeof(szTitle) / sizeof(TCHAR)); - DrawText(hdc, szTitle, lstrlen(szTitle), &rc, DT_SINGLELINE|DT_CALCRECT); - - rc.left += 8; rc.right += 8 + 16 + 4; - - FillRect(hdc, &rc, (HBRUSH) (COLOR_BTNFACE+1)); - DrawIconEx(hdc, rc.left+2, rc.top, hSoundOn, 16,16, 0, NULL, DI_NORMAL); - - rc.left += 2 + 16 + 2; - //rc.right += 2 + 16 + 2; - DrawText(hdc, szTitle, lstrlen(szTitle), &rc, DT_SINGLELINE|DT_WORD_ELLIPSIS); - - SetBkMode(hdc, oldBk); - - SelectObject(hdc, oldfont); - - ReleaseDC(hwnd, hdc); - - return 0; - } - } - - return CallWindowProc((WNDPROC)GetWindowLong(hwnd, GWL_USERDATA), hwnd, uMsg, wParam, lParam); -} - -LRESULT CALLBACK OptionsDlgProc( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam ) -{ - switch( uMsg ) { - case WM_INITDIALOG: - { - HWND grp = GetDlgItem(hwndDlg, IDC_GRP); - - TranslateDialogDefault(hwndDlg); - CheckDlgButton(hwndDlg, IDC_AUTO, DBGetContactSettingByte(NULL,SERVICENAME,"AutoPreview", TRUE)?BST_CHECKED:BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_MUTE, DBGetContactSettingByte(NULL,SERVICENAME,"MuteBtn", TRUE)?BST_CHECKED:BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_MRADIO, DBGetContactSettingByte(NULL, SERVICENAME, "mRadioAdjust", 0) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_MUTERADIO, DBGetContactSettingByte(NULL, SERVICENAME, "mRadioMute", 0) ? BST_CHECKED : BST_UNCHECKED); - - EnableWindow(GetDlgItem(hwndDlg, IDC_MRADIO), ServiceExists(MS_RADIO_SETVOL)); - EnableWindow(GetDlgItem(hwndDlg, IDC_MUTERADIO), ServiceExists(MS_RADIO_SETVOL)); - - hwndOptSlider = GetDlgItem(hwndDlg, IDC_VOLUME); - SendDlgItemMessage(hwndDlg, IDC_VOLUME, TBM_SETRANGE, FALSE, MAKELONG(SLIDER_MIN,SLIDER_MAX)); - SendDlgItemMessage(hwndDlg, IDC_VOLUME, TBM_SETPOS, TRUE, DBGetContactSettingDword(NULL,SERVICENAME,"Volume",100)); - - SetWindowLong(grp, GWL_USERDATA, GetWindowLong(grp, GWL_WNDPROC)); - SetWindowLong(grp, GWL_WNDPROC, (LONG)GroupWndProc); - SendDlgItemMessage(hwndDlg, IDC_BACKCOLOR, CPM_SETCOLOUR, 0, (LPARAM)DBGetContactSettingDword(NULL, SERVICENAME, "bgc", GetSysColor(COLOR_3DFACE))); - EnableWindow(GetDlgItem(hwndDlg, IDC_BACKCOLOR), DBGetContactSettingByte(NULL, SERVICENAME, "def_bg", 1) ? FALSE : TRUE); - CheckDlgButton(hwndDlg, IDC_DEFCOLOR, DBGetContactSettingByte(NULL, SERVICENAME, "def_bg", 1)); - return TRUE; - } - case WM_HSCROLL: - { - int value = (DWORD)SendDlgItemMessage(hwndDlg, IDC_VOLUME, TBM_GETPOS, 0, 0); - if(hwndSlider) - SendMessage(hwndSlider, TBM_SETPOS, TRUE, value); - else - DBWriteContactSettingDword(NULL, SERVICENAME, "Volume", value); - playSnd::SetVolume(value); - if(IsDlgButtonChecked(hwndDlg, IDC_AUTO)) - SkinPlaySound("AlertMsg"); - SetRadioVolume(value); - break; - } - case WM_COMMAND: - if(LOWORD(wParam) == IDC_TEST) { - playSnd::SetVolume((DWORD)SendDlgItemMessage(hwndDlg, IDC_VOLUME, TBM_GETPOS, 0, 0)); - SkinPlaySound("AlertMsg"); - return FALSE; - } - else if(LOWORD(wParam) == IDC_MRADIO) { - DBWriteContactSettingByte(NULL, SERVICENAME, "mRadioAdjust", IsDlgButtonChecked(hwndDlg, IDC_MRADIO) ? 1 : 0); - if(IsDlgButtonChecked(hwndDlg, IDC_MRADIO) && ServiceExists(MS_RADIO_SETVOL)) { - int value = (DWORD)SendDlgItemMessage(hwndDlg, IDC_VOLUME, TBM_GETPOS, 0, 0); - CallService(MS_RADIO_SETVOL, (WPARAM)value, 0); - } - } - else if(LOWORD(wParam) == IDC_MUTERADIO) { - int useSound = DBGetContactSettingByte(NULL, "Skin", "UseSound", 1); - int value; - DBWriteContactSettingByte(NULL, SERVICENAME, "mRadioMute", IsDlgButtonChecked(hwndDlg, IDC_MUTERADIO) ? 1 : 0); - if(ServiceExists(MS_RADIO_SETVOL)) { - if(IsDlgButtonChecked(hwndDlg, IDC_MUTERADIO)) - g_mRadioMuted = !useSound; - value = g_mRadioMuted ? 0 : (int)SendMessage(hwndSlider, TBM_GETPOS, 0, 0); - CallService(MS_RADIO_SETVOL, (WPARAM)value, 0); - DBWriteContactSettingByte(NULL, "mRadio", "Volume", (BYTE)value); - SendMessage(hwndMRadio, BM_SETIMAGE,IMAGE_ICON,(LPARAM)(g_mRadioMuted ? hIconMRadio_off : hIconMRadio)); - } - } - else if(LOWORD(wParam) == IDC_DEFCOLOR) { - DBWriteContactSettingByte(NULL, SERVICENAME, "def_bg", IsDlgButtonChecked(hwndDlg, IDC_DEFCOLOR) ? 1 : 0); - EnableWindow(GetDlgItem(hwndDlg, IDC_BACKCOLOR), DBGetContactSettingByte(NULL, SERVICENAME, "def_bg", 1) ? FALSE : TRUE); - LoadBackgroundSettings(); - } - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0,0); - break; - - case WM_NOTIFY: - switch(((LPNMHDR)lParam)->code) { - case NM_RELEASEDCAPTURE: - if(IsDlgButtonChecked(hwndDlg, IDC_AUTO) == BST_CHECKED) { - int value = (DWORD)SendDlgItemMessage(hwndDlg, IDC_VOLUME, TBM_GETPOS, 0, 0); - if(hwndSlider) - SendMessage(hwndSlider, TBM_SETPOS, TRUE, value); - - playSnd::SetVolume(value); - SkinPlaySound("AlertMsg"); - SetRadioVolume(value); - } - break; - case PSN_APPLY: - { - int value = (DWORD)SendDlgItemMessage(hwndDlg, IDC_VOLUME, TBM_GETPOS, 0, 0); - if(hwndSlider) - SendMessage(hwndSlider, TBM_SETPOS, TRUE, value); - playSnd::SetVolume(value); - - DBWriteContactSettingDword(NULL, SERVICENAME, "Volume", value); - autoPreview = (BYTE)(IsDlgButtonChecked(hwndDlg, IDC_AUTO) == BST_CHECKED); - DBWriteContactSettingByte(NULL, SERVICENAME, "AutoPreview", autoPreview); - value = (BYTE)(IsDlgButtonChecked(hwndDlg, IDC_MUTE) == BST_CHECKED); - DBWriteContactSettingByte(NULL, SERVICENAME, "MuteBtn", value); - PostMessage(hwndFrame, WM_USER, value, 0); - DBWriteContactSettingDword(NULL, SERVICENAME, "bgc", (DWORD)SendDlgItemMessage(hwndDlg, IDC_BACKCOLOR, CPM_GETCOLOUR, 0, 0)); - LoadBackgroundSettings(); - return TRUE; - } - case PSN_RESET: - { - int value = DBGetContactSettingDword(NULL,SERVICENAME,"Volume",100); - SendDlgItemMessage(hwndDlg, IDC_VOLUME, TBM_SETPOS, TRUE, value); - if(hwndSlider) - SendMessage(hwndSlider, TBM_SETPOS, TRUE, value); - playSnd::SetVolume(value); - return TRUE; - } - } - break; - - case WM_DESTROY: - hwndOptSlider = NULL; - return FALSE; - } - return FALSE; -} diff --git a/plugins/!NotAdopted/sndVol/optionsdlg.h b/plugins/!NotAdopted/sndVol/optionsdlg.h deleted file mode 100644 index ae4080788e..0000000000 --- a/plugins/!NotAdopted/sndVol/optionsdlg.h +++ /dev/null @@ -1 +0,0 @@ -LRESULT CALLBACK OptionsDlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam ); \ No newline at end of file diff --git a/plugins/!NotAdopted/sndVol/playSnd.cpp b/plugins/!NotAdopted/sndVol/playSnd.cpp deleted file mode 100644 index ccc49c7965..0000000000 --- a/plugins/!NotAdopted/sndVol/playSnd.cpp +++ /dev/null @@ -1,136 +0,0 @@ -#include "plugin.h" -#include "playSnd.h" - -namespace playSnd -{ - -CMusicManager* g_pMusicManager = NULL; -CMusicSegment* g_pMusicSegment = NULL; -HANDLE g_hDMusicMessageEvent = NULL; -DWORD g_dwVolume = -77777; -BOOL g_bInOption = FALSE; - - -HRESULT Init() -{ - HRESULT hr; - g_pMusicManager = new CMusicManager(); - - if( FAILED( hr = g_pMusicManager->Initialize( NULL ) ) ) - return DXTRACE_ERR( TEXT("Initialize"), hr ); - - return S_OK; -} - -void Destroy() -{ - SAFE_DELETE( g_pMusicSegment ); - SAFE_DELETE( g_pMusicManager ); -} - -//----------------------------------------------------------------------------- -// Name: LoadSegmentFile() -// Desc: -//----------------------------------------------------------------------------- -HRESULT LoadSegmentFile( TCHAR *strFileName ) -{ - HRESULT hr; - - // Free any previous segment, and make a new one - SAFE_DELETE( g_pMusicSegment ); - - // Have the loader collect any garbage now that the old - // segment has been released - g_pMusicManager->CollectGarbage(); - - // Set the media path based on the file name (something like C:\MEDIA) - // to be used as the search directory for finding DirectMusic content - // related to this file. - TCHAR strMediaPath[MAX_PATH]; - _tcscpy( strMediaPath, strFileName ); - TCHAR* strLastSlash = _tcsrchr(strMediaPath, TEXT('\\')); - if(strLastSlash != NULL) - { - *strLastSlash = 0; - if( FAILED( hr = g_pMusicManager->SetSearchDirectory( strMediaPath ) ) ) - return DXTRACE_ERR( TEXT("SetSearchDirectory"), hr ); - } - else - { - if( FAILED( hr = g_pMusicManager->SetSearchDirectory( _T("") ) ) ) - return DXTRACE_ERR( TEXT("SetSearchDirectory"), hr ); - } - - // For DirectMusic must know if the file is a standard MIDI file or not - // in order to load the correct instruments. - BOOL bMidiFile = FALSE; - if( _tcsstr( strFileName, _T(".mid") ) != NULL || - _tcsstr( strFileName, _T(".rmi") ) != NULL ) - { - bMidiFile = TRUE; - } - - BOOL bWavFile = FALSE; - if( _tcsstr( strFileName, _T(".wav") ) != NULL ) - { - bWavFile = TRUE; - } - - // Load the file into a DirectMusic segment - if( FAILED( g_pMusicManager->CreateSegmentFromFile( &g_pMusicSegment, strFileName, - TRUE, bMidiFile ) ) ) - { - // Not a critical failure, so just update the status - return E_FAIL; - } - - return S_OK; -} - -BOOL WINAPI PlaySound(char* pszSound, HMODULE hmod, DWORD fdwSound) -{ - HRESULT hr; -#if defined(UNICODE) - TCHAR ptszSound[MAX_PATH]; - DWORD cpSys = CP_ACP; - - MultiByteToWideChar(cpSys, 0, pszSound, -1, ptszSound, MAX_PATH); - ptszSound[MAX_PATH - 1] = 0; - if( FAILED( hr = LoadSegmentFile(ptszSound) ) ) - return FALSE; - - if( FAILED( hr = g_pMusicSegment->SetRepeats( 0 ) ) ) - return FALSE; -#else - if( FAILED( hr = LoadSegmentFile(pszSound) ) ) - return FALSE; - - if( FAILED( hr = g_pMusicSegment->SetRepeats( 0 ) ) ) - return FALSE; -#endif - // Play the segment and wait. The DMUS_SEGF_BEAT indicates to play on the - // next beat if there is a segment currently playing. - if( FAILED( hr = g_pMusicSegment->Play( DMUS_SEGF_BEAT ) ) ) - return FALSE; - - return TRUE; -} - - -BOOL SetVolume(long Value) -{ - long value = (int)(log10((float)Value)/2.0*5000.0-4000.0); - IDirectMusicPerformance* pPerf = NULL; - if( g_pMusicManager ) - pPerf = g_pMusicManager->GetPerformance(); - if( NULL == pPerf ) - return FALSE; - - // Adjust the slider position to match GUID_PerfMasterTempo range - pPerf->SetGlobalParam(GUID_PerfMasterVolume, (void*)&value, sizeof(long)); - - return TRUE; -} - - -} diff --git a/plugins/!NotAdopted/sndVol/playSnd.h b/plugins/!NotAdopted/sndVol/playSnd.h deleted file mode 100644 index b3582c0790..0000000000 --- a/plugins/!NotAdopted/sndVol/playSnd.h +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include -#include -#include "dmusicc.h" -#include "dmusici.h" -#include -#include -#include "DMUtil.h" -#include "DXUtil.h" - -//----------------------------------------------------------------------------- -// Defines, constants, and global variables -//----------------------------------------------------------------------------- - -namespace playSnd -{ - extern BOOL g_bInOption; - - HRESULT Init(); - void Destroy(); - HRESULT LoadSegmentFile( TCHAR* strFileName ); - BOOL WINAPI PlaySound(char* pszSound, HMODULE hmod, DWORD fdwSound); - BOOL SetVolume(long Value); -} diff --git a/plugins/!NotAdopted/sndVol/plugin.cpp b/plugins/!NotAdopted/sndVol/plugin.cpp deleted file mode 100644 index 016c0ad3e1..0000000000 --- a/plugins/!NotAdopted/sndVol/plugin.cpp +++ /dev/null @@ -1,478 +0,0 @@ -#define _WIN32_WINNT 0x0500 -#include "plugin.h" -#include "playSnd.h" -#include "optionsdlg.h" -#include "resource.h" -#include "m_cluiframes.h" - -#include "IcoLib.h" - -HINSTANCE hInst; -PLUGINLINK *pluginLink; - -HWND hwndFrame = NULL, hwndMute = NULL, hwndSlider = NULL, hwndOptSlider = NULL, hwndMRadio = 0; -HANDLE hHookSkinPlayingSound, hHookDbSettingChange, hHookSkinIconsChanged; -HHOOK hHookMouse; -bool showMute = TRUE; -extern void LoadBackgroundSettings(); - -HBRUSH g_HBRback = 0; -COLORREF g_clrback = 0; - -#if defined(UNICODE) - char szTitle[] = "sndVol (UNICODE)"; -#else - char szTitle[] = "sndVol"; -#endif - -bool isEnabled = FALSE; -HICON hSoundOn = NULL, hSoundOff = NULL; -HICON hIconMRadio = 0, hIconMRadio_off = 0; - -int isMuteVisible = FALSE; -int autoPreview = FALSE; - -char *szIconId[4] = {"sndVol_Off", "sndVol_On", "mradio_off", "mradio_on"}; -char *szIconName[4] = {"Off", "On", "mRadio off", "mRadio on"}; -int iIconId[4] = {-IDI_SND_OFF, -IDI_SND_ON, -IDI_MRAADIO_OFF, -IDI_MRADIO}; -int g_mRadioMuted = 0; - -/* -PLUGININFO pluginInfo={ - sizeof( PLUGININFO ), - szTitle, - PLUGIN_MAKE_VERSION( 0,0,2,2 ), -#if defined(UNICODE) - "Volume control for Mirandas event sounds and mRadio (UNICODE)", -#else - "Volume control for Mirandas event sounds and mRadio", -#endif - "Denis Stanishevskiy / StDenis", - "stdenformiranda(at)fromru(dot)com", - "Copyright (c) 2005-2006, Denis Stanishevskiy, modifications and mRadio support by Nightwish - silvercircle(at)gmail(dot)com", - "", - 0, 0 -}; - -*/ - -PLUGININFOEX pluginInfo = { - sizeof(PLUGININFOEX), - szTitle, - PLUGIN_MAKE_VERSION(0, 0, 3, 0), -#if defined(UNICODE) - "Volume control for Mirandas event sounds and mRadio (UNICODE)", -#else - "Volume control for Mirandas event sounds and mRadio", -#endif - "Denis Stanishevskiy / StDenis", - "stdenformiranda(at)fromru(dot)com", - "Copyright (c) 2005-2006, Denis Stanishevskiy, modifications and mRadio support by Nightwish - silvercircle(at)gmail(dot)com", - "", - UNICODE_AWARE, - 0, -#ifdef _UNICODE - { 0xb0733420, 0x7bf2, 0x4c08, { 0xb2, 0xbf, 0xf2, 0x63, 0xdf, 0x72, 0x42, 0xc9 }} -#else - { 0x35235260, 0x3d3d, 0x4b81, { 0xbe, 0x2e, 0x7f, 0x95, 0xdb, 0xad, 0x1a, 0x23 }} -#endif -}; - -void SetRadioVolume(int value) -{ - if(ServiceExists(MS_RADIO_SETVOL) && DBGetContactSettingByte(NULL,SERVICENAME,"mRadioAdjust", FALSE)) { - int useSound = DBGetContactSettingByte(NULL, "Skin", "UseSound", 1); - - if(g_mRadioMuted) - return; - - if(useSound || !DBGetContactSettingByte(NULL, SERVICENAME, "mRadioMute", 0) || !g_mRadioMuted) - CallService(MS_RADIO_SETVOL, (WPARAM)value, 0); - } -} - -BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved) -{ - hInst=hinstDLL; - if(fdwReason == DLL_PROCESS_ATTACH) - DisableThreadLibraryCalls(GetModuleHandle(_T("sndvol"))); - return TRUE; -} - -extern "C" __declspec(dllexport) PLUGININFOEX *MirandaPluginInfoEx(DWORD mirandaVersion) -{ - if (mirandaVersion < PLUGIN_MAKE_VERSION(0, 8, 0, 0)) - return NULL; - return &pluginInfo; -} - -#define MIID_SNDVOL {0x50ea8870, 0x1c68, 0x4962, { 0xbc, 0xc1, 0x57, 0x73, 0x45, 0x4e, 0x3d, 0x26 }} - -extern "C" static const MUUID interfaces[] = {MIID_TESTPLUGIN, MIID_SNDVOL, MIID_LAST}; - -extern "C" __declspec(dllexport) const MUUID* MirandaPluginInterfaces(void) -{ - return interfaces; -} - -HANDLE hMenuItem; - -int OnSkinPlayingSound(WPARAM wParam,LPARAM lParam) -{ - char * pszFile = (char *) lParam; - if(pszFile && (DBGetContactSettingByte(NULL,"Skin","UseSound",1) || (int)wParam==1)) - playSnd::PlaySound(pszFile, NULL, SND_ASYNC | SND_FILENAME | SND_NOWAIT); - return 0; -} - -int OnSkinIconsChanged(WPARAM wParam,LPARAM lParam) -{ - hSoundOff = (HICON)CallService(MS_SKIN2_GETICON, 0, (LPARAM)szIconId[0]); - hSoundOn = (HICON)CallService(MS_SKIN2_GETICON, 0, (LPARAM)szIconId[1]); - hIconMRadio_off = (HICON)CallService(MS_SKIN2_GETICON, 0, (LPARAM)szIconId[2]); - hIconMRadio = (HICON)CallService(MS_SKIN2_GETICON, 0, (LPARAM)szIconId[3]); - - int useSound = DBGetContactSettingByte(NULL,"Skin","UseSound",1); - DBWriteContactSettingByte(NULL,"Skin","UseSound",useSound); - SendMessage(hwndMute, BM_SETIMAGE,IMAGE_ICON,(LPARAM)(useSound?hSoundOn:hSoundOff)); - SendMessage(hwndMRadio, BM_SETIMAGE,IMAGE_ICON,(LPARAM)(g_mRadioMuted ? hIconMRadio_off : hIconMRadio)); - - return 0; -} - -int OnSettingChanged(WPARAM wParam,LPARAM lParam) -{ - if(wParam != 0 || lParam == NULL) - return 0; - { - DBCONTACTWRITESETTING *dbcws=(DBCONTACTWRITESETTING*)lParam; - if(!strcmp(dbcws->szModule,"Skin")) { - if(!strcmp(dbcws->szSetting,"UseSound")) { - int useSound = dbcws->value.bVal; - SendMessage(hwndMute, BM_SETIMAGE,IMAGE_ICON,(LPARAM)(useSound?hSoundOn:hSoundOff)); - if(ServiceExists(MS_RADIO_SETVOL) && DBGetContactSettingByte(NULL,SERVICENAME,"mRadioMute", FALSE)) { - if(useSound) { - int value = (int)SendMessage(hwndSlider, TBM_GETPOS, 0, 0); - CallService(MS_RADIO_SETVOL, (WPARAM)value, 0); - } - else - CallService(MS_RADIO_SETVOL, 0, 0); - } - return 0; - } - } - else if(!strcmp(dbcws->szModule, "mRadio") && !strcmp(dbcws->szSetting, "Volume")) { - g_mRadioMuted = (DBGetContactSettingByte(NULL, "mRadio", "Volume", 50) == 0) ? TRUE : FALSE; - SendMessage(hwndMRadio, BM_SETIMAGE,IMAGE_ICON,(LPARAM)(g_mRadioMuted ? hIconMRadio_off : hIconMRadio)); - return 0; - } - } - return 0; -} - -static int OnOptionsInit(WPARAM wParam,LPARAM lParam) -{ - OPTIONSDIALOGPAGE odp; - - ZeroMemory(&odp, sizeof(odp)); - - odp.cbSize = sizeof(odp); - odp.ptszGroup = TranslateT("Events"); - odp.position = -200000000; - odp.hInstance = hInst; - odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT); - odp.ptszTitle = TranslateT("Sounds Volume"); - odp.pfnDlgProc = (DLGPROC)OptionsDlgProc; - odp.flags = ODPF_BOLDGROUPS | ODPF_TCHAR; - CallService(MS_OPT_ADDPAGE, wParam, (LPARAM)&odp); - - return 0; -} - -BOOL __inline IsMouseInside(HWND hwnd) -{ - POINT pt; - HWND hwndAtPt; - - GetCursorPos(&pt); - hwndAtPt = WindowFromPoint(pt); - while(hwndAtPt != NULL) { - if(hwndAtPt == hwnd) - return TRUE; - hwndAtPt = GetParent(hwndAtPt); - } - return FALSE; -} - -LRESULT CALLBACK OnMouseHook(int code, WPARAM wParam, LPARAM lParam) -{ - if(code >= 0) { - if(wParam == WM_MOUSEWHEEL) { - MOUSEHOOKSTRUCTEX *mhk = (MOUSEHOOKSTRUCTEX*)lParam; - - if(IsMouseInside(hwndSlider)) { - int count = (short)HIWORD(mhk->mouseData); - PostMessage(hwndSlider, WM_MOUSEWHEEL, MAKEWPARAM(0,-count), MAKELPARAM(mhk->pt.x, mhk->pt.y)); - return 1; - } - } - } - return CallNextHookEx(hHookMouse, code, wParam, lParam); -} - -static WNDPROC OldSliderWndProc = 0; - -static LRESULT CALLBACK SliderWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) -{ - switch(msg) { - case WM_ERASEBKGND: - return TRUE; - } - return(CallWindowProc(OldSliderWndProc, hwnd, msg, wParam, lParam)); -} -static LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) -{ - switch(msg) { - case WM_CREATE: - { -#define MUTE_W 20 -#define MUTE_H 20 - isMuteVisible = DBGetContactSettingByte(NULL,SERVICENAME,"MuteBtn", TRUE); - hwndMute = CreateWindow(MIRANDABUTTONCLASS, _T(""), WS_CHILD | (isMuteVisible?WS_VISIBLE:0), 1, 1, - MUTE_W, MUTE_H, hwnd, (HMENU)0, (HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE), NULL); - SendMessage(hwndMute, BUTTONSETASFLATBTN,0,0); - SendMessage(hwndMute, BM_SETIMAGE,IMAGE_ICON,(LPARAM)hSoundOn); - - hwndSlider = CreateWindow(TRACKBAR_CLASS, _T(""), WS_CHILD | WS_VISIBLE | TBS_NOTICKS | TBS_TOOLTIPS, MUTE_W+1, 1, 120, - MUTE_W, hwnd, (HMENU)0, (HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE), NULL); - SendMessage(hwndSlider, TBM_SETRANGE, FALSE, MAKELONG(SLIDER_MIN, SLIDER_MAX)); - SendMessage(hwndSlider, TBM_SETPOS, TRUE, DBGetContactSettingDword(NULL,SERVICENAME,"Volume",80)); - OldSliderWndProc = (WNDPROC)SetWindowLong(hwndSlider, GWL_WNDPROC, (LONG)SliderWndProc); - SendMessage(hwndMute, BUTTONADDTOOLTIP, (WPARAM)Translate("Click to toggle all sounds"), 0); - - if(ServiceExists(MS_RADIO_SETVOL)) { - hwndMRadio = CreateWindow(MIRANDABUTTONCLASS, _T(""), WS_CHILD | (isMuteVisible?WS_VISIBLE:0), 1, 1, - MUTE_W, MUTE_H, hwnd, (HMENU)0, (HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE), NULL); - SendMessage(hwndMRadio, BUTTONSETASFLATBTN,0,0); - SendMessage(hwndMRadio, BUTTONADDTOOLTIP, (WPARAM)Translate("Click to mute mRadio only, right click for mRadio settings"), 0); - SendMessage(hwndMRadio, BM_SETIMAGE,IMAGE_ICON,(LPARAM)(g_mRadioMuted ? hIconMRadio_off : hIconMRadio)); - } - break; - } - case WM_COMMAND: - if((HWND)lParam == hwndMute) { - int useSound = !DBGetContactSettingByte(NULL,"Skin","UseSound",1); - DBWriteContactSettingByte(NULL,"Skin","UseSound",useSound); - SendMessage(hwndMute, BM_SETIMAGE,IMAGE_ICON,(LPARAM)(useSound?hSoundOn:hSoundOff)); - } - else if((HWND)lParam == hwndMRadio) { - int value; - - g_mRadioMuted = !g_mRadioMuted; - value = g_mRadioMuted ? 0 : (int)SendMessage(hwndSlider, TBM_GETPOS, 0, 0); - CallService(MS_RADIO_SETVOL, (WPARAM)value, 0); - DBWriteContactSettingByte(NULL, "mRadio", "Volume", (BYTE)value); - SendMessage(hwndMRadio, BM_SETIMAGE,IMAGE_ICON,(LPARAM)(g_mRadioMuted ? hIconMRadio_off : hIconMRadio)); - } - break; - case WM_CONTEXTMENU: - if(IsMouseInside(hwndMRadio)) - CallService("mRadio/Settings", 0, 0); - break; - case WM_USER: - ShowWindow(hwndMute, wParam?SW_SHOW:SW_HIDE); - isMuteVisible = wParam; - case WM_HSCROLL: - { - int value = (DWORD)SendMessage(hwndSlider, TBM_GETPOS, 0, 0); - if(hwndOptSlider) - SendMessage(hwndOptSlider, TBM_SETPOS, TRUE, value); - else - DBWriteContactSettingDword(NULL, SERVICENAME, "Volume", value); - playSnd::SetVolume(value); - if(DBGetContactSettingByte(NULL,SERVICENAME,"AutoPreview", FALSE)) - SkinPlaySound("AlertMsg"); - - SetRadioVolume(value); - break; - } - case WM_SIZE: - { - RECT rect; - - GetClientRect(hwnd,&rect); - #define SLIDER_H 18 - if(hwndMute) - MoveWindow(hwndMute, 1, 1, MUTE_W, MUTE_H, FALSE); - SetWindowPos(hwndSlider, 0, - rect.left+(isMuteVisible?MUTE_W:0)+1, rect.top+1+ (MUTE_H-SLIDER_H)/2, rect.right-rect.left-3-(isMuteVisible?MUTE_W:0)-(ServiceExists(MS_RADIO_SETVOL) ? MUTE_W:0), SLIDER_H, - SWP_NOZORDER); - if(hwndMRadio) - MoveWindow(hwndMRadio, rect.right - MUTE_W, 1, MUTE_W, MUTE_H, FALSE); - InvalidateRect(hwnd, &rect, FALSE); - return 0; - } - case WM_CTLCOLORSTATIC: - { - if((HANDLE)lParam == hwndSlider) { - HDC dc = (HDC)wParam; - - SetBkColor(dc, g_clrback); - return((BOOL)g_HBRback); - } - break; - } - case WM_ERASEBKGND: - { - HDC dc = (HDC)wParam; - RECT rc; - - GetClientRect(hwnd, &rc); - FillRect(dc, &rc, g_HBRback); - return TRUE; - } - case WM_NOTIFY: - switch(((LPNMHDR)lParam)->code) - { - case NM_RELEASEDCAPTURE: - { - int value = (DWORD)SendMessage(hwndSlider, TBM_GETPOS, 0, 0); //*SLIDER_DIV; - - DBWriteContactSettingDword(NULL, SERVICENAME, "Volume", value); - if(hwndOptSlider) SendMessage(hwndOptSlider, TBM_SETPOS, TRUE, value); - playSnd::SetVolume(value); - SetRadioVolume(value); - break; - } - } - break; - case WM_DESTROY: - if(hwndSlider && IsWindow(hwndSlider) && OldSliderWndProc != 0) - SetWindowLong(hwndSlider, GWL_WNDPROC, (LONG)OldSliderWndProc); - break; - } - return DefWindowProc(hwnd,msg,wParam,lParam); -} -#define WndClass _T("SNDVOL_WND") - -static HANDLE g_ShutDownEvent; -static HANDLE g_hFrame = 0; - -static int ShutDownPlugin(WPARAM wParam, LPARAM lParam) -{ - UnhookEvent(g_ShutDownEvent); - - if(!ServiceExists(MS_SKIN2_ADDICON)) - { - DestroyIcon(hSoundOff); - DestroyIcon(hSoundOn); - UnhookEvent(hHookSkinIconsChanged); - } - UnhookEvent(hHookSkinPlayingSound); - playSnd::Destroy(); - if(g_HBRback) - DeleteObject(g_HBRback); - - CallService(MS_CLIST_FRAMES_REMOVEFRAME, (WPARAM)g_hFrame, 0); - return 0; -} - -static int OnModulesLoaded(WPARAM wparam,LPARAM lparam) -{ - int useSound; - - g_mRadioMuted = (DBGetContactSettingByte(NULL, "mRadio", "Volume", 50) == 0) ? TRUE : FALSE; - - g_ShutDownEvent = HookEvent(ME_SYSTEM_OKTOEXIT, ShutDownPlugin); - - if(!ServiceExists(MS_SKIN2_ADDICON)) { - hSoundOn = (HICON)LoadImage(hInst,MAKEINTRESOURCE(IDI_SND_ON),IMAGE_ICON,GetSystemMetrics(SM_CXSMICON),GetSystemMetrics(SM_CYSMICON),0); - hSoundOff = (HICON)LoadImage(hInst,MAKEINTRESOURCE(IDI_SND_OFF),IMAGE_ICON,GetSystemMetrics(SM_CXSMICON),GetSystemMetrics(SM_CYSMICON),0); - hIconMRadio = (HICON)LoadImage(hInst,MAKEINTRESOURCE(IDI_MRADIO),IMAGE_ICON,GetSystemMetrics(SM_CXSMICON),GetSystemMetrics(SM_CYSMICON),0); - hIconMRadio_off = (HICON)LoadImage(hInst,MAKEINTRESOURCE(IDI_MRAADIO_OFF),IMAGE_ICON,GetSystemMetrics(SM_CXSMICON),GetSystemMetrics(SM_CYSMICON),0); - } - else { - SKINICONDESC sid; - char ModuleName[MAX_PATH]; - - sid.cbSize = sizeof(sid); - sid.pszSection = Translate("Sound Volume"); - GetModuleFileNameA(hInst, ModuleName, sizeof(ModuleName)); - sid.pszDefaultFile = ModuleName; -#define myLOAD_ICON(n, result)\ - sid.pszName = szIconId[n];\ - sid.pszDescription = szIconName[n];\ - sid.iDefaultIndex = iIconId[n];\ - CallService(MS_SKIN2_ADDICON, 0, (LPARAM)&sid);\ - result = (HICON)CallService(MS_SKIN2_GETICON, 0, (LPARAM)szIconId[n]); - - myLOAD_ICON(0, hSoundOff); - myLOAD_ICON(1, hSoundOn); - myLOAD_ICON(2, hIconMRadio_off); - myLOAD_ICON(3, hIconMRadio); - - hHookSkinIconsChanged = HookEvent(ME_SKIN2_ICONSCHANGED, OnSkinIconsChanged); - } - if(ServiceExists(MS_CLIST_FRAMES_ADDFRAME)) { - WNDCLASSEX wcx; - CLISTFrame f; - - ZeroMemory( &wcx, sizeof( wcx ) ); - - wcx.cbSize = sizeof(WNDCLASSEX); - wcx.style = 0; - wcx.lpfnWndProc = WndProc; - wcx.cbClsExtra = 0; - wcx.cbWndExtra = 0; - wcx.hInstance = hInst; - wcx.hIcon = NULL; - wcx.hCursor = LoadCursor(hInst, IDC_ARROW); - wcx.hbrBackground = (HBRUSH)(COLOR_3DFACE+1); - wcx.lpszMenuName = NULL; - wcx.lpszClassName = WndClass; - wcx.hIconSm = NULL; - - RegisterClassEx(&wcx); - - hwndFrame = CreateWindow(WndClass, NULL, WS_CHILD | WS_VISIBLE, 0, 0, 120, MUTE_H+2, - (HWND)CallService( MS_CLUI_GETHWND, 0, 0 ), NULL, hInst, NULL); - - ZeroMemory(&f, sizeof(CLISTFrame)); - f.align = alBottom; - f.cbSize = sizeof(CLISTFrame); - f.height = MUTE_H+2; - f.Flags = F_VISIBLE; - f.hWnd = hwndFrame; - f.name = "SoundVolume"; - g_hFrame = (HANDLE)CallService(MS_CLIST_FRAMES_ADDFRAME,(int)&f,0); - } - else - MessageBox(0, _T("Frame services not found. The sound volume plugin needs a multiwindow-enabled contact list"), _T("Critical"), MB_OK | MB_ICONERROR); - - useSound = DBGetContactSettingByte(NULL, "Skin", "UseSound", 1); - DBWriteContactSettingByte(NULL, "Skin", "UseSound", !useSound); - DBWriteContactSettingByte(NULL, "Skin", "UseSound", useSound); - - LoadBackgroundSettings(); - return 0; -} - - -extern "C" int __declspec(dllexport) Load(PLUGINLINK *link) -{ - pluginLink=link; - - playSnd::Init(); - hHookSkinPlayingSound = HookEvent(ME_SKIN_PLAYINGSOUND, OnSkinPlayingSound); - HookEvent(ME_OPT_INITIALISE, OnOptionsInit); - HookEvent(ME_SYSTEM_MODULESLOADED, OnModulesLoaded); - hHookDbSettingChange = HookEvent(ME_DB_CONTACT_SETTINGCHANGED, OnSettingChanged); - hHookMouse = SetWindowsHookEx(WH_MOUSE, OnMouseHook, hInst, 0); - - return 0; -} - -extern "C" int __declspec(dllexport) Unload(void) -{ - return 0; -} diff --git a/plugins/!NotAdopted/sndVol/plugin.h b/plugins/!NotAdopted/sndVol/plugin.h deleted file mode 100644 index dce6605048..0000000000 --- a/plugins/!NotAdopted/sndVol/plugin.h +++ /dev/null @@ -1,44 +0,0 @@ -#include -#include -#include -#include "../../include/newpluginapi.h" -#include "../../include/m_system.h" -#include "../../include/m_database.h" -#include "../../include/m_protomod.h" -#include "../../include/m_protosvc.h" -#include "../../include/m_langpack.h" -#include "../../include/m_clist.h" -#include "../../include/m_options.h" -#include "../../include/m_clui.h" -#include "../../include/m_clc.h" -#include "../../include/m_utils.h" -#include "../../include/m_skin.h" -#include "../../include/m_button.h" -#include - - -#define SERVICENAME "sndVol" - -extern HINSTANCE hInst; -extern bool isEnabled; -extern HWND hwndFrame, hwndSlider, hwndOptSlider; -extern HICON hSoundOn, hSoundOff; -extern int autoPreview; - -#define SLIDER_MIN 1 -#define SLIDER_MAX 100 -#define SLIDER_DIV 6 - -#define MS_RADIO_SETVOL "mRadio/SetVol" - -#ifdef __cplusplus -extern "C" { -#endif - -int __declspec(dllexport) Load( PLUGINLINK *link ); -int __declspec(dllexport) Unload( void ); -__declspec(dllexport) PLUGININFO *MirandaPluginInfo( DWORD dwVersion ); - -#ifdef __cplusplus -} -#endif diff --git a/plugins/!NotAdopted/sndVol/resource.h b/plugins/!NotAdopted/sndVol/resource.h deleted file mode 100644 index 4646bcc9b7..0000000000 --- a/plugins/!NotAdopted/sndVol/resource.h +++ /dev/null @@ -1,31 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated include file. -// Used by sndVol.rc -// -#define IDD_OPT 101 -#define IDI_SND_ON 103 -#define IDI_SND_OFF 104 -#define IDI_MRADIO 105 -#define IDI_MRAADIO_OFF 107 -#define IDC_SLIDER1 1000 -#define IDC_VOLUME 1000 -#define IDC_TEST 1001 -#define IDC_AUTO 1002 -#define IDC_GRP 1003 -#define IDC_MUTE 1004 -#define IDC_MRADIO 1005 -#define IDC_MUTERADIO 1006 -#define IDC_CUSTOM1 1007 -#define IDC_BACKCOLOR 1008 -#define IDC_DEFCOLOR 1009 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 108 -#define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1010 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif diff --git a/plugins/!NotAdopted/sndVol/snd.ico b/plugins/!NotAdopted/sndVol/snd.ico deleted file mode 100644 index 60f5752468..0000000000 Binary files a/plugins/!NotAdopted/sndVol/snd.ico and /dev/null differ diff --git a/plugins/!NotAdopted/sndVol/sndVol.aps b/plugins/!NotAdopted/sndVol/sndVol.aps deleted file mode 100644 index 155b97c18a..0000000000 Binary files a/plugins/!NotAdopted/sndVol/sndVol.aps and /dev/null differ diff --git a/plugins/!NotAdopted/sndVol/sndVol.dsp b/plugins/!NotAdopted/sndVol/sndVol.dsp deleted file mode 100644 index 24eb2355cc..0000000000 --- a/plugins/!NotAdopted/sndVol/sndVol.dsp +++ /dev/null @@ -1,203 +0,0 @@ -# Microsoft Developer Studio Project File - Name="sndVol" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** NICHT BEARBEITEN ** - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -CFG=sndVol - Win32 Debug -!MESSAGE Dies ist kein gültiges Makefile. Zum Erstellen dieses Projekts mit NMAKE -!MESSAGE verwenden Sie den Befehl "Makefile exportieren" und führen Sie den Befehl -!MESSAGE -!MESSAGE NMAKE /f "sndVol.mak". -!MESSAGE -!MESSAGE Sie können beim Ausführen von NMAKE eine Konfiguration angeben -!MESSAGE durch Definieren des Makros CFG in der Befehlszeile. Zum Beispiel: -!MESSAGE -!MESSAGE NMAKE /f "sndVol.mak" CFG="sndVol - Win32 Debug" -!MESSAGE -!MESSAGE Für die Konfiguration stehen zur Auswahl: -!MESSAGE -!MESSAGE "sndVol - Win32 Release" (basierend auf "Win32 (x86) Dynamic-Link Library") -!MESSAGE "sndVol - Win32 Debug" (basierend auf "Win32 (x86) Dynamic-Link Library") -!MESSAGE "sndVol - Win32 Release Unicode" (basierend auf "Win32 (x86) Dynamic-Link Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "sndVol - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "sndVol_EXPORTS" /YX /FD /c -# ADD CPP /nologo /MD /W3 /GX /O1 /I "." /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "sndVol_EXPORTS" /YX /FD /c -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x809 /d "NDEBUG" -# ADD RSC /l 0x809 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib dxerr8.lib dxguid.lib advapi32.lib winmm.lib /nologo /dll /map /machine:I386 /out:"..\..\bin\Release\plugins\sndVol.dll" /opt:nowin98 -# SUBTRACT LINK32 /pdb:none - -!ELSEIF "$(CFG)" == "sndVol - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "sndVol_EXPORTS" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "sndVol_EXPORTS" /YX /FD /GZ /c -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x809 /d "_DEBUG" -# ADD RSC /l 0x809 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib dxerr8.lib winmm.lib dxguid.lib /nologo /dll /debug /machine:I386 /out:"..\..\bin\Release\plugins\sndVol.dll" /pdbtype:sept - -!ELSEIF "$(CFG)" == "sndVol - Win32 Release Unicode" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "sndVol___Win32_Release_Unicode" -# PROP BASE Intermediate_Dir "sndVol___Win32_Release_Unicode" -# PROP BASE Ignore_Export_Lib 0 -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "sndVol___Win32_Release_Unicode" -# PROP Intermediate_Dir "sndVol___Win32_Release_Unicode" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MD /W3 /GX /O1 /I "." /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "sndVol_EXPORTS" /YX /FD /c -# ADD CPP /nologo /MD /W3 /GX /O1 /I "." /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "UNICODE" /D "_UNICODE" /D "_USRDLL" /D "sndVol_EXPORTS" /YX /FD /c -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x809 /d "NDEBUG" -# ADD RSC /l 0x809 /d "NDEBUG" /d "UNICODE" /d "_UNICODE" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib dxerr8.lib dxguid.lib advapi32.lib winmm.lib /nologo /dll /map /machine:I386 /out:"..\..\bin\Release\plugins\sndVol.dll" /opt:nowin98 -# SUBTRACT BASE LINK32 /pdb:none -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib dxerr8.lib dxguid.lib advapi32.lib winmm.lib /nologo /dll /map /machine:I386 /out:"..\..\bin\Release Unicode\plugins\sndVol.dll" /opt:nowin98 -# SUBTRACT LINK32 /pdb:none - -!ENDIF - -# Begin Target - -# Name "sndVol - Win32 Release" -# Name "sndVol - Win32 Debug" -# Name "sndVol - Win32 Release Unicode" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=.\dmutil.cpp -# End Source File -# Begin Source File - -SOURCE=.\dxutil.cpp -# End Source File -# Begin Source File - -SOURCE=.\optionsdlg.cpp -# End Source File -# Begin Source File - -SOURCE=.\playSnd.cpp -# End Source File -# Begin Source File - -SOURCE=.\plugin.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=.\dmutil.h -# End Source File -# Begin Source File - -SOURCE=.\dxutil.h -# End Source File -# Begin Source File - -SOURCE=.\optionsdlg.h -# End Source File -# Begin Source File - -SOURCE=.\playSnd.h -# End Source File -# Begin Source File - -SOURCE=.\plugin.h -# End Source File -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# Begin Source File - -SOURCE=".\mradio-muted.ico" -# End Source File -# Begin Source File - -SOURCE=.\mradio.ico -# End Source File -# Begin Source File - -SOURCE=.\nosnd.ico -# End Source File -# Begin Source File - -SOURCE=.\resource.h -# End Source File -# Begin Source File - -SOURCE=.\snd.ico -# End Source File -# Begin Source File - -SOURCE=.\sndVol.rc -# End Source File -# Begin Source File - -SOURCE=.\volume.ico -# End Source File -# End Group -# End Target -# End Project diff --git a/plugins/!NotAdopted/sndVol/sndVol.dsw b/plugins/!NotAdopted/sndVol/sndVol.dsw deleted file mode 100644 index 7e7ac094a5..0000000000 --- a/plugins/!NotAdopted/sndVol/sndVol.dsw +++ /dev/null @@ -1,29 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "sndVol"=".\sndVol.dsp" - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/plugins/!NotAdopted/sndVol/sndVol.rc b/plugins/!NotAdopted/sndVol/sndVol.rc deleted file mode 100644 index ae4fb896a7..0000000000 --- a/plugins/!NotAdopted/sndVol/sndVol.rc +++ /dev/null @@ -1,199 +0,0 @@ -//Microsoft Developer Studio generated resource script. -// -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "afxres.h" - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// Russisch resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS) -#ifdef _WIN32 -LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT -#pragma code_page(1251) -#endif //_WIN32 - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE MOVEABLE PURE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE MOVEABLE PURE -BEGIN - "#include ""afxres.h""\r\n" - "\0" -END - -3 TEXTINCLUDE MOVEABLE PURE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - -#endif // Russisch resources -///////////////////////////////////////////////////////////////////////////// - - -///////////////////////////////////////////////////////////////////////////// -// Neutral resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU) -#ifdef _WIN32 -LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL -#pragma code_page(1252) -#endif //_WIN32 - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -IDD_OPT DIALOGEX 0, 0, 296, 104 -STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD -FONT 8, "MS Shell Dlg", 0, 0, 0x1 -BEGIN - GROUPBOX "Volume",IDC_GRP,0,0,296,103 - CONTROL "Slider1",IDC_VOLUME,"msctls_trackbar32",TBS_NOTICKS | - WS_TABSTOP,6,13,284,17 - LTEXT "min",IDC_STATIC,6,27,12,8 - LTEXT "max",IDC_STATIC,276,27,14,8 - PUSHBUTTON "Preview",IDC_TEST,10,40,50,14 - CONTROL "Auto-preview",IDC_AUTO,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,65,40,57,15 - CONTROL "Mute button",IDC_MUTE,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,206,40,65,15 - CONTROL "Set mRadio volume",IDC_MRADIO,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,65,56,137,15 - CONTROL "Mute mRadio ",IDC_MUTERADIO,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,206,56,65,15 - LTEXT "Background colour:",IDC_STATIC,13,84,86,13 - CONTROL "",IDC_BACKCOLOR,"ColourPicker",WS_DISABLED | WS_TABSTOP, - 114,83,22,11 - CONTROL "Use windows default colour",IDC_DEFCOLOR,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,169,83,112,11 -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDI_SND_ON ICON DISCARDABLE "snd.ico" -IDI_SND_OFF ICON DISCARDABLE "nosnd.ico" -IDI_MRADIO ICON DISCARDABLE "mradio.ico" - -#ifndef _MAC -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,0,3,0 - PRODUCTVERSION 0,0,3,0 - FILEFLAGSMASK 0x17L -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x4L - FILETYPE 0x2L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "000004b0" - BEGIN -#if defined(UNICODE) - VALUE "Comments", "Requires a multiwindow-enabled contact list.\0" - VALUE "CompanyName", "\0" - VALUE "FileDescription", "Sound Volume plugin (UNICODE)\0" - VALUE "FileVersion", "0, 0, 3, 0\0" - VALUE "InternalName", "sndVol (UNICODE)\0" - VALUE "LegalCopyright", "Copyright (C) 2006-2007\0" - VALUE "LegalTrademarks", "Licensed under the General Public License V2 or any later version.\0" - VALUE "OriginalFilename", "sndVol.dll\0" - VALUE "PrivateBuild", "W\0" - VALUE "ProductName", "sndVol plugin (UNICODE)\0" - VALUE "ProductVersion", "0, 0, 3, 0\0" - VALUE "SpecialBuild", "\0" -#else - VALUE "Comments", "Requires a multiwindow-enabled contact list.\0" - VALUE "CompanyName", "\0" - VALUE "FileDescription", "Sound Volume plugin\0" - VALUE "FileVersion", "0, 0, 3, 0\0" - VALUE "InternalName", "sndVol\0" - VALUE "LegalCopyright", "Copyright (C) 2006\0" - VALUE "LegalTrademarks", "Licensed under the General Public License V2 or any later version.\0" - VALUE "OriginalFilename", "sndVol.dll\0" - VALUE "PrivateBuild", "\0" - VALUE "ProductName", "sndVol plugin\0" - VALUE "ProductVersion", "0, 0, 3, 0\0" - VALUE "SpecialBuild", "\0" -#endif - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0, 1200 - END -END - -#endif // !_MAC - -#endif // Neutral resources -///////////////////////////////////////////////////////////////////////////// - - -///////////////////////////////////////////////////////////////////////////// -// Deutsch (Österreich) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEA) -#ifdef _WIN32 -LANGUAGE LANG_GERMAN, SUBLANG_GERMAN_AUSTRIAN -#pragma code_page(1252) -#endif //_WIN32 - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDI_MRAADIO_OFF ICON DISCARDABLE "mradio-muted.ico" -#endif // Deutsch (Österreich) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/plugins/!NotAdopted/sndVol/sndVol.sln b/plugins/!NotAdopted/sndVol/sndVol.sln deleted file mode 100644 index 3d84726cb2..0000000000 --- a/plugins/!NotAdopted/sndVol/sndVol.sln +++ /dev/null @@ -1,23 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sndVol", "sndVol.vcproj", "{8852C7E2-FD61-45D8-BA15-7C18F64B845F}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release UNICODE|Win32 = Release UNICODE|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {8852C7E2-FD61-45D8-BA15-7C18F64B845F}.Debug|Win32.ActiveCfg = Debug|Win32 - {8852C7E2-FD61-45D8-BA15-7C18F64B845F}.Debug|Win32.Build.0 = Debug|Win32 - {8852C7E2-FD61-45D8-BA15-7C18F64B845F}.Release UNICODE|Win32.ActiveCfg = Release UNICODE|Win32 - {8852C7E2-FD61-45D8-BA15-7C18F64B845F}.Release UNICODE|Win32.Build.0 = Release UNICODE|Win32 - {8852C7E2-FD61-45D8-BA15-7C18F64B845F}.Release|Win32.ActiveCfg = Release|Win32 - {8852C7E2-FD61-45D8-BA15-7C18F64B845F}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/plugins/!NotAdopted/sndVol/sndVol.vcproj b/plugins/!NotAdopted/sndVol/sndVol.vcproj deleted file mode 100644 index f102395833..0000000000 --- a/plugins/!NotAdopted/sndVol/sndVol.vcproj +++ /dev/null @@ -1,540 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- cgit v1.2.3