diff --git a/dlls/dmband/dmband_main.c b/dlls/dmband/dmband_main.c index e63678c831d..baf36a3d6a9 100644 --- a/dlls/dmband/dmband_main.c +++ b/dlls/dmband/dmband_main.c @@ -19,6 +19,7 @@ #include "dmband_private.h" #include "rpcproxy.h" +#include "dmobject.h" WINE_DEFAULT_DEBUG_CHANNEL(dmband); diff --git a/dlls/dmband/dmobject.c b/dlls/dmband/dmobject.c index 3b71a2719c7..e0b7eafe255 100644 --- a/dlls/dmband/dmobject.c +++ b/dlls/dmband/dmobject.c @@ -25,12 +25,201 @@ #include "objbase.h" #include "dmusici.h" #include "dmusicf.h" +#include "dmusics.h" #include "dmobject.h" #include "wine/debug.h" WINE_DEFAULT_DEBUG_CHANNEL(dmobj); WINE_DECLARE_DEBUG_CHANNEL(dmfile); +/* Debugging helpers */ +const char *debugstr_dmguid(const GUID *id) { + unsigned int i; +#define X(guid) { &guid, #guid } + static const struct { + const GUID *guid; + const char *name; + } guids[] = { + /* CLSIDs */ + X(CLSID_AudioVBScript), + X(CLSID_DirectMusic), + X(CLSID_DirectMusicAudioPathConfig), + X(CLSID_DirectMusicAuditionTrack), + X(CLSID_DirectMusicBand), + X(CLSID_DirectMusicBandTrack), + X(CLSID_DirectMusicChordMapTrack), + X(CLSID_DirectMusicChordMap), + X(CLSID_DirectMusicChordTrack), + X(CLSID_DirectMusicCollection), + X(CLSID_DirectMusicCommandTrack), + X(CLSID_DirectMusicComposer), + X(CLSID_DirectMusicContainer), + X(CLSID_DirectMusicGraph), + X(CLSID_DirectMusicLoader), + X(CLSID_DirectMusicLyricsTrack), + X(CLSID_DirectMusicMarkerTrack), + X(CLSID_DirectMusicMelodyFormulationTrack), + X(CLSID_DirectMusicMotifTrack), + X(CLSID_DirectMusicMuteTrack), + X(CLSID_DirectMusicParamControlTrack), + X(CLSID_DirectMusicPatternTrack), + X(CLSID_DirectMusicPerformance), + X(CLSID_DirectMusicScript), + X(CLSID_DirectMusicScriptAutoImpSegment), + X(CLSID_DirectMusicScriptAutoImpPerformance), + X(CLSID_DirectMusicScriptAutoImpSegmentState), + X(CLSID_DirectMusicScriptAutoImpAudioPathConfig), + X(CLSID_DirectMusicScriptAutoImpAudioPath), + X(CLSID_DirectMusicScriptAutoImpSong), + X(CLSID_DirectMusicScriptSourceCodeLoader), + X(CLSID_DirectMusicScriptTrack), + X(CLSID_DirectMusicSection), + X(CLSID_DirectMusicSegment), + X(CLSID_DirectMusicSegmentState), + X(CLSID_DirectMusicSegmentTriggerTrack), + X(CLSID_DirectMusicSegTriggerTrack), + X(CLSID_DirectMusicSeqTrack), + X(CLSID_DirectMusicSignPostTrack), + X(CLSID_DirectMusicSong), + X(CLSID_DirectMusicStyle), + X(CLSID_DirectMusicStyleTrack), + X(CLSID_DirectMusicSynth), + X(CLSID_DirectMusicSynthSink), + X(CLSID_DirectMusicSysExTrack), + X(CLSID_DirectMusicTemplate), + X(CLSID_DirectMusicTempoTrack), + X(CLSID_DirectMusicTimeSigTrack), + X(CLSID_DirectMusicWaveTrack), + X(CLSID_DirectSoundWave), + /* IIDs */ + X(IID_IDirectMusic), + X(IID_IDirectMusic2), + X(IID_IDirectMusic8), + X(IID_IDirectMusicAudioPath), + X(IID_IDirectMusicBand), + X(IID_IDirectMusicBuffer), + X(IID_IDirectMusicChordMap), + X(IID_IDirectMusicCollection), + X(IID_IDirectMusicComposer), + X(IID_IDirectMusicContainer), + X(IID_IDirectMusicDownload), + X(IID_IDirectMusicDownloadedInstrument), + X(IID_IDirectMusicGetLoader), + X(IID_IDirectMusicGraph), + X(IID_IDirectMusicInstrument), + X(IID_IDirectMusicLoader), + X(IID_IDirectMusicLoader8), + X(IID_IDirectMusicObject), + X(IID_IDirectMusicPatternTrack), + X(IID_IDirectMusicPerformance), + X(IID_IDirectMusicPerformance2), + X(IID_IDirectMusicPerformance8), + X(IID_IDirectMusicPort), + X(IID_IDirectMusicPortDownload), + X(IID_IDirectMusicScript), + X(IID_IDirectMusicSegment), + X(IID_IDirectMusicSegment2), + X(IID_IDirectMusicSegment8), + X(IID_IDirectMusicSegmentState), + X(IID_IDirectMusicSegmentState8), + X(IID_IDirectMusicStyle), + X(IID_IDirectMusicStyle8), + X(IID_IDirectMusicSynth), + X(IID_IDirectMusicSynth8), + X(IID_IDirectMusicSynthSink), + X(IID_IDirectMusicThru), + X(IID_IDirectMusicTool), + X(IID_IDirectMusicTool8), + X(IID_IDirectMusicTrack), + X(IID_IDirectMusicTrack8), + X(IID_IUnknown), + X(IID_IPersistStream), + X(IID_IStream), + X(IID_IClassFactory), + /* GUIDs */ + X(GUID_DirectMusicAllTypes), + X(GUID_NOTIFICATION_CHORD), + X(GUID_NOTIFICATION_COMMAND), + X(GUID_NOTIFICATION_MEASUREANDBEAT), + X(GUID_NOTIFICATION_PERFORMANCE), + X(GUID_NOTIFICATION_RECOMPOSE), + X(GUID_NOTIFICATION_SEGMENT), + X(GUID_BandParam), + X(GUID_ChordParam), + X(GUID_CommandParam), + X(GUID_CommandParam2), + X(GUID_CommandParamNext), + X(GUID_IDirectMusicBand), + X(GUID_IDirectMusicChordMap), + X(GUID_IDirectMusicStyle), + X(GUID_MuteParam), + X(GUID_Play_Marker), + X(GUID_RhythmParam), + X(GUID_TempoParam), + X(GUID_TimeSignature), + X(GUID_Valid_Start_Time), + X(GUID_Clear_All_Bands), + X(GUID_ConnectToDLSCollection), + X(GUID_Disable_Auto_Download), + X(GUID_DisableTempo), + X(GUID_DisableTimeSig), + X(GUID_Download), + X(GUID_DownloadToAudioPath), + X(GUID_Enable_Auto_Download), + X(GUID_EnableTempo), + X(GUID_EnableTimeSig), + X(GUID_IgnoreBankSelectForGM), + X(GUID_SeedVariations), + X(GUID_StandardMIDIFile), + X(GUID_Unload), + X(GUID_UnloadFromAudioPath), + X(GUID_Variations), + X(GUID_PerfMasterTempo), + X(GUID_PerfMasterVolume), + X(GUID_PerfMasterGrooveLevel), + X(GUID_PerfAutoDownload), + X(GUID_DefaultGMCollection), + X(GUID_Synth_Default), + X(GUID_Buffer_Reverb), + X(GUID_Buffer_EnvReverb), + X(GUID_Buffer_Stereo), + X(GUID_Buffer_3D_Dry), + X(GUID_Buffer_Mono), + X(GUID_DMUS_PROP_GM_Hardware), + X(GUID_DMUS_PROP_GS_Capable), + X(GUID_DMUS_PROP_GS_Hardware), + X(GUID_DMUS_PROP_DLS1), + X(GUID_DMUS_PROP_DLS2), + X(GUID_DMUS_PROP_Effects), + X(GUID_DMUS_PROP_INSTRUMENT2), + X(GUID_DMUS_PROP_LegacyCaps), + X(GUID_DMUS_PROP_MemorySize), + X(GUID_DMUS_PROP_SampleMemorySize), + X(GUID_DMUS_PROP_SamplePlaybackRate), + X(GUID_DMUS_PROP_SetSynthSink), + X(GUID_DMUS_PROP_SinkUsesDSound), + X(GUID_DMUS_PROP_SynthSink_DSOUND), + X(GUID_DMUS_PROP_SynthSink_WAVE), + X(GUID_DMUS_PROP_Volume), + X(GUID_DMUS_PROP_WavesReverb), + X(GUID_DMUS_PROP_WriteLatency), + X(GUID_DMUS_PROP_WritePeriod), + X(GUID_DMUS_PROP_XG_Capable), + X(GUID_DMUS_PROP_XG_Hardware) + }; +#undef X + + if (!id) + return "(null)"; + + for (i = 0; i < ARRAY_SIZE(guids); i++) + if (IsEqualGUID(id, guids[i].guid)) + return guids[i].name; + + return debugstr_guid(id); +} + + /* RIFF format parsing */ #define CHUNK_HDR_SIZE (sizeof(FOURCC) + sizeof(DWORD)) diff --git a/dlls/dmband/dmobject.h b/dlls/dmband/dmobject.h index 9e287a4126b..13545536650 100644 --- a/dlls/dmband/dmobject.h +++ b/dlls/dmband/dmobject.h @@ -107,6 +107,7 @@ HRESULT WINAPI unimpl_IPersistStream_GetSizeMax(IPersistStream *iface, /* Debugging helpers */ const char *debugstr_chunk(const struct chunk_entry *chunk) DECLSPEC_HIDDEN; +const char *debugstr_dmguid(const GUID *id) DECLSPEC_HIDDEN; static inline const char *debugstr_fourcc(DWORD fourcc) { diff --git a/dlls/dmband/dmutils.c b/dlls/dmband/dmutils.c index 2401b20a601..1309c7c318b 100644 --- a/dlls/dmband/dmutils.c +++ b/dlls/dmband/dmutils.c @@ -297,190 +297,6 @@ HRESULT IDirectMusicUtils_IPersistStream_ParseReference (LPPERSISTSTREAM iface, return hr; } -/* returns name of given GUID */ -const char *debugstr_dmguid (const GUID *id) { - static const guid_info guids[] = { - /* CLSIDs */ - GE(CLSID_AudioVBScript), - GE(CLSID_DirectMusic), - GE(CLSID_DirectMusicAudioPathConfig), - GE(CLSID_DirectMusicAuditionTrack), - GE(CLSID_DirectMusicBand), - GE(CLSID_DirectMusicBandTrack), - GE(CLSID_DirectMusicChordMapTrack), - GE(CLSID_DirectMusicChordMap), - GE(CLSID_DirectMusicChordTrack), - GE(CLSID_DirectMusicCollection), - GE(CLSID_DirectMusicCommandTrack), - GE(CLSID_DirectMusicComposer), - GE(CLSID_DirectMusicContainer), - GE(CLSID_DirectMusicGraph), - GE(CLSID_DirectMusicLoader), - GE(CLSID_DirectMusicLyricsTrack), - GE(CLSID_DirectMusicMarkerTrack), - GE(CLSID_DirectMusicMelodyFormulationTrack), - GE(CLSID_DirectMusicMotifTrack), - GE(CLSID_DirectMusicMuteTrack), - GE(CLSID_DirectMusicParamControlTrack), - GE(CLSID_DirectMusicPatternTrack), - GE(CLSID_DirectMusicPerformance), - GE(CLSID_DirectMusicScript), - GE(CLSID_DirectMusicScriptAutoImpSegment), - GE(CLSID_DirectMusicScriptAutoImpPerformance), - GE(CLSID_DirectMusicScriptAutoImpSegmentState), - GE(CLSID_DirectMusicScriptAutoImpAudioPathConfig), - GE(CLSID_DirectMusicScriptAutoImpAudioPath), - GE(CLSID_DirectMusicScriptAutoImpSong), - GE(CLSID_DirectMusicScriptSourceCodeLoader), - GE(CLSID_DirectMusicScriptTrack), - GE(CLSID_DirectMusicSection), - GE(CLSID_DirectMusicSegment), - GE(CLSID_DirectMusicSegmentState), - GE(CLSID_DirectMusicSegmentTriggerTrack), - GE(CLSID_DirectMusicSegTriggerTrack), - GE(CLSID_DirectMusicSeqTrack), - GE(CLSID_DirectMusicSignPostTrack), - GE(CLSID_DirectMusicSong), - GE(CLSID_DirectMusicStyle), - GE(CLSID_DirectMusicStyleTrack), - GE(CLSID_DirectMusicSynth), - GE(CLSID_DirectMusicSynthSink), - GE(CLSID_DirectMusicSysExTrack), - GE(CLSID_DirectMusicTemplate), - GE(CLSID_DirectMusicTempoTrack), - GE(CLSID_DirectMusicTimeSigTrack), - GE(CLSID_DirectMusicWaveTrack), - GE(CLSID_DirectSoundWave), - /* IIDs */ - GE(IID_IDirectMusic), - GE(IID_IDirectMusic2), - GE(IID_IDirectMusic8), - GE(IID_IDirectMusicAudioPath), - GE(IID_IDirectMusicBand), - GE(IID_IDirectMusicBuffer), - GE(IID_IDirectMusicChordMap), - GE(IID_IDirectMusicCollection), - GE(IID_IDirectMusicComposer), - GE(IID_IDirectMusicContainer), - GE(IID_IDirectMusicDownload), - GE(IID_IDirectMusicDownloadedInstrument), - GE(IID_IDirectMusicGetLoader), - GE(IID_IDirectMusicGraph), - GE(IID_IDirectMusicInstrument), - GE(IID_IDirectMusicLoader), - GE(IID_IDirectMusicLoader8), - GE(IID_IDirectMusicObject), - GE(IID_IDirectMusicPatternTrack), - GE(IID_IDirectMusicPerformance), - GE(IID_IDirectMusicPerformance2), - GE(IID_IDirectMusicPerformance8), - GE(IID_IDirectMusicPort), - GE(IID_IDirectMusicPortDownload), - GE(IID_IDirectMusicScript), - GE(IID_IDirectMusicSegment), - GE(IID_IDirectMusicSegment2), - GE(IID_IDirectMusicSegment8), - GE(IID_IDirectMusicSegmentState), - GE(IID_IDirectMusicSegmentState8), - GE(IID_IDirectMusicStyle), - GE(IID_IDirectMusicStyle8), - GE(IID_IDirectMusicSynth), - GE(IID_IDirectMusicSynth8), - GE(IID_IDirectMusicSynthSink), - GE(IID_IDirectMusicThru), - GE(IID_IDirectMusicTool), - GE(IID_IDirectMusicTool8), - GE(IID_IDirectMusicTrack), - GE(IID_IDirectMusicTrack8), - GE(IID_IUnknown), - GE(IID_IPersistStream), - GE(IID_IStream), - GE(IID_IClassFactory), - /* GUIDs */ - GE(GUID_DirectMusicAllTypes), - GE(GUID_NOTIFICATION_CHORD), - GE(GUID_NOTIFICATION_COMMAND), - GE(GUID_NOTIFICATION_MEASUREANDBEAT), - GE(GUID_NOTIFICATION_PERFORMANCE), - GE(GUID_NOTIFICATION_RECOMPOSE), - GE(GUID_NOTIFICATION_SEGMENT), - GE(GUID_BandParam), - GE(GUID_ChordParam), - GE(GUID_CommandParam), - GE(GUID_CommandParam2), - GE(GUID_CommandParamNext), - GE(GUID_IDirectMusicBand), - GE(GUID_IDirectMusicChordMap), - GE(GUID_IDirectMusicStyle), - GE(GUID_MuteParam), - GE(GUID_Play_Marker), - GE(GUID_RhythmParam), - GE(GUID_TempoParam), - GE(GUID_TimeSignature), - GE(GUID_Valid_Start_Time), - GE(GUID_Clear_All_Bands), - GE(GUID_ConnectToDLSCollection), - GE(GUID_Disable_Auto_Download), - GE(GUID_DisableTempo), - GE(GUID_DisableTimeSig), - GE(GUID_Download), - GE(GUID_DownloadToAudioPath), - GE(GUID_Enable_Auto_Download), - GE(GUID_EnableTempo), - GE(GUID_EnableTimeSig), - GE(GUID_IgnoreBankSelectForGM), - GE(GUID_SeedVariations), - GE(GUID_StandardMIDIFile), - GE(GUID_Unload), - GE(GUID_UnloadFromAudioPath), - GE(GUID_Variations), - GE(GUID_PerfMasterTempo), - GE(GUID_PerfMasterVolume), - GE(GUID_PerfMasterGrooveLevel), - GE(GUID_PerfAutoDownload), - GE(GUID_DefaultGMCollection), - GE(GUID_Synth_Default), - GE(GUID_Buffer_Reverb), - GE(GUID_Buffer_EnvReverb), - GE(GUID_Buffer_Stereo), - GE(GUID_Buffer_3D_Dry), - GE(GUID_Buffer_Mono), - GE(GUID_DMUS_PROP_GM_Hardware), - GE(GUID_DMUS_PROP_GS_Capable), - GE(GUID_DMUS_PROP_GS_Hardware), - GE(GUID_DMUS_PROP_DLS1), - GE(GUID_DMUS_PROP_DLS2), - GE(GUID_DMUS_PROP_Effects), - GE(GUID_DMUS_PROP_INSTRUMENT2), - GE(GUID_DMUS_PROP_LegacyCaps), - GE(GUID_DMUS_PROP_MemorySize), - GE(GUID_DMUS_PROP_SampleMemorySize), - GE(GUID_DMUS_PROP_SamplePlaybackRate), - GE(GUID_DMUS_PROP_SetSynthSink), - GE(GUID_DMUS_PROP_SinkUsesDSound), - GE(GUID_DMUS_PROP_SynthSink_DSOUND), - GE(GUID_DMUS_PROP_SynthSink_WAVE), - GE(GUID_DMUS_PROP_Volume), - GE(GUID_DMUS_PROP_WavesReverb), - GE(GUID_DMUS_PROP_WriteLatency), - GE(GUID_DMUS_PROP_WritePeriod), - GE(GUID_DMUS_PROP_XG_Capable), - GE(GUID_DMUS_PROP_XG_Hardware) - }; - - unsigned int i; - - if (!id) return "(null)"; - for (i = 0; i < ARRAY_SIZE(guids); i++) { - if (IsEqualGUID(id, guids[i].guid)) - return guids[i].name; - } - - /* if we didn't find it, act like standard debugstr_guid */ - return debugstr_guid(id); -} - - void debug_DMUS_OBJECTDESC (LPDMUS_OBJECTDESC pDesc) { if (pDesc) { TRACE("DMUS_OBJECTDESC (%p):\n", pDesc); diff --git a/dlls/dmband/dmutils.h b/dlls/dmband/dmutils.h index 5a845a81a80..dfa8ac46d62 100644 --- a/dlls/dmband/dmutils.h +++ b/dlls/dmband/dmutils.h @@ -43,17 +43,8 @@ typedef struct { const char* name; } flag_info; -typedef struct { - const GUID *guid; - const char* name; -} guid_info; - /* used for initialising structs */ #define FE(x) { x, #x } -#define GE(x) { &x, #x } - -/* returns name of given GUID */ -extern const char *debugstr_dmguid (const GUID *id) DECLSPEC_HIDDEN; extern void debug_DMUS_OBJECTDESC (LPDMUS_OBJECTDESC pDesc) DECLSPEC_HIDDEN;