[PATCH] dmscript: Use the debug functions provided by dmobject.[ch]

Michael Stefaniuc mstefani at winehq.org
Thu Dec 12 17:29:04 CST 2019


Signed-off-by: Michael Stefaniuc <mstefani at winehq.org>
---
 dlls/dmscript/dmobject.c         | 247 +++++++++++++++++++++++++++-
 dlls/dmscript/dmobject.h         |  14 +-
 dlls/dmscript/dmscript_main.c    | 272 +------------------------------
 dlls/dmscript/dmscript_private.h |  21 ---
 dlls/dmscript/script.c           |   3 +-
 dlls/dmscript/scripttrack.c      |   1 +
 6 files changed, 257 insertions(+), 301 deletions(-)

diff --git a/dlls/dmscript/dmobject.c b/dlls/dmscript/dmobject.c
index 25f3198d2b..9ea31ab32a 100644
--- a/dlls/dmscript/dmobject.c
+++ b/dlls/dmscript/dmobject.c
@@ -25,22 +25,257 @@
 #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);
 
-/* RIFF format parsing */
-#define CHUNK_HDR_SIZE (sizeof(FOURCC) + sizeof(DWORD))
+/* 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);
+}
 
-static inline const char *debugstr_fourcc(DWORD fourcc)
+void dump_DMUS_OBJECTDESC(DMUS_OBJECTDESC *desc)
 {
-    if (!fourcc) return "''";
-    return wine_dbg_sprintf("'%c%c%c%c'", (char)(fourcc), (char)(fourcc >> 8),
-            (char)(fourcc >> 16), (char)(fourcc >> 24));
+    if (!desc || !TRACE_ON(dmfile))
+        return;
+
+    TRACE_(dmfile)("DMUS_OBJECTDESC (%p):", desc);
+    TRACE_(dmfile)(" - dwSize = %u\n", desc->dwSize);
+
+#define X(flag) if (desc->dwValidData & flag) TRACE_(dmfile)(#flag " ")
+    TRACE_(dmfile)(" - dwValidData = %#08x ( ", desc->dwValidData);
+    X(DMUS_OBJ_OBJECT);
+    X(DMUS_OBJ_CLASS);
+    X(DMUS_OBJ_NAME);
+    X(DMUS_OBJ_CATEGORY);
+    X(DMUS_OBJ_FILENAME);
+    X(DMUS_OBJ_FULLPATH);
+    X(DMUS_OBJ_URL);
+    X(DMUS_OBJ_VERSION);
+    X(DMUS_OBJ_DATE);
+    X(DMUS_OBJ_LOADED);
+    X(DMUS_OBJ_MEMORY);
+    X(DMUS_OBJ_STREAM);
+    TRACE_(dmfile)(")\n");
+#undef X
+
+    if (desc->dwValidData & DMUS_OBJ_CLASS)
+        TRACE_(dmfile)(" - guidClass = %s\n", debugstr_dmguid(&desc->guidClass));
+    if (desc->dwValidData & DMUS_OBJ_OBJECT)
+        TRACE_(dmfile)(" - guidObject = %s\n", debugstr_guid(&desc->guidObject));
+
+    if (desc->dwValidData & DMUS_OBJ_DATE) {
+        SYSTEMTIME time;
+        FileTimeToSystemTime(&desc->ftDate, &time);
+        TRACE_(dmfile)(" - ftDate = \'%04u-%02u-%02u %02u:%02u:%02u\'\n",
+                time.wYear, time.wMonth, time.wDay, time.wHour, time.wMinute, time.wSecond);
+    }
+    if (desc->dwValidData & DMUS_OBJ_VERSION)
+        TRACE_(dmfile)(" - vVersion = \'%u,%u,%u,%u\'\n",
+                HIWORD(desc->vVersion.dwVersionMS), LOWORD(desc->vVersion.dwVersionMS),
+                HIWORD(desc->vVersion.dwVersionLS), LOWORD(desc->vVersion.dwVersionLS));
+    if (desc->dwValidData & DMUS_OBJ_NAME)
+        TRACE_(dmfile)(" - wszName = %s\n", debugstr_w(desc->wszName));
+    if (desc->dwValidData & DMUS_OBJ_CATEGORY)
+        TRACE_(dmfile)(" - wszCategory = %s\n", debugstr_w(desc->wszCategory));
+    if (desc->dwValidData & DMUS_OBJ_FILENAME)
+        TRACE_(dmfile)(" - wszFileName = %s\n", debugstr_w(desc->wszFileName));
+    if (desc->dwValidData & DMUS_OBJ_MEMORY)
+        TRACE_(dmfile)(" - llMemLength = 0x%s - pbMemData = %p\n",
+                wine_dbgstr_longlong(desc->llMemLength), desc->pbMemData);
+    if (desc->dwValidData & DMUS_OBJ_STREAM)
+        TRACE_(dmfile)(" - pStream = %p\n", desc->pStream);
 }
 
+
+/* RIFF format parsing */
+#define CHUNK_HDR_SIZE (sizeof(FOURCC) + sizeof(DWORD))
+
 const char *debugstr_chunk(const struct chunk_entry *chunk)
 {
     const char *type = "";
diff --git a/dlls/dmscript/dmobject.h b/dlls/dmscript/dmobject.h
index 4a721cc152..d347020691 100644
--- a/dlls/dmscript/dmobject.h
+++ b/dlls/dmscript/dmobject.h
@@ -60,8 +60,6 @@ static inline HRESULT stream_reset_chunk_start(IStream *stream, const struct chu
     return IStream_Seek(stream, offset, STREAM_SEEK_SET, NULL);
 }
 
-const char *debugstr_chunk(const struct chunk_entry *chunk) DECLSPEC_HIDDEN;
-
 
 /* IDirectMusicObject base object */
 struct dmobject {
@@ -106,3 +104,15 @@ HRESULT WINAPI unimpl_IPersistStream_Save(IPersistStream *iface, IStream *stream
         BOOL clear_dirty) DECLSPEC_HIDDEN;
 HRESULT WINAPI unimpl_IPersistStream_GetSizeMax(IPersistStream *iface,
         ULARGE_INTEGER *size) DECLSPEC_HIDDEN;
+
+/* Debugging helpers */
+const char *debugstr_chunk(const struct chunk_entry *chunk) DECLSPEC_HIDDEN;
+const char *debugstr_dmguid(const GUID *id) DECLSPEC_HIDDEN;
+void dump_DMUS_OBJECTDESC(DMUS_OBJECTDESC *desc) DECLSPEC_HIDDEN;
+
+static inline const char *debugstr_fourcc(DWORD fourcc)
+{
+    if (!fourcc) return "''";
+    return wine_dbg_sprintf("'%c%c%c%c'", (char)(fourcc), (char)(fourcc >> 8),
+            (char)(fourcc >> 16), (char)(fourcc >> 24));
+}
diff --git a/dlls/dmscript/dmscript_main.c b/dlls/dmscript/dmscript_main.c
index 55bc11b29a..163dd67185 100644
--- a/dlls/dmscript/dmscript_main.c
+++ b/dlls/dmscript/dmscript_main.c
@@ -34,6 +34,7 @@
 #include "dmusici.h"
 
 #include "dmscript_private.h"
+#include "dmobject.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(dmscript);
 
@@ -236,274 +237,3 @@ HRESULT WINAPI DllUnregisterServer(void)
 {
     return __wine_unregister_resources( instance );
 }
-
-/******************************************************************
- *		Helper functions
- *
- *
- */
-
-/* FOURCC to string conversion for debug messages */
-const char *debugstr_fourcc (DWORD fourcc) {
-    if (!fourcc) return "'null'";
-    return wine_dbg_sprintf ("\'%c%c%c%c\'",
-		(char)(fourcc), (char)(fourcc >> 8),
-        (char)(fourcc >> 16), (char)(fourcc >> 24));
-}
-
-/* DMUS_VERSION struct to string conversion for debug messages */
-static const char *debugstr_dmversion(const DMUS_VERSION *version)
-{
-    if (!version)
-        return "'null'";
-    return wine_dbg_sprintf("'%hu,%hu,%hu,%hu'",
-            HIWORD(version->dwVersionMS), LOWORD(version->dwVersionMS),
-            HIWORD(version->dwVersionLS), LOWORD(version->dwVersionLS));
-}
-
-/* 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);
-}	
-
-/* generic flag-dumping function */
-static const char* debugstr_flags (DWORD flags, const flag_info* names, size_t num_names){
-	char buffer[128] = "", *ptr = &buffer[0];
-	unsigned int i;
-	int size = sizeof(buffer);
-	
-	for (i=0; i < num_names; i++)
-	{
-		if ((flags & names[i].val) ||	/* standard flag*/
-			((!flags) && (!names[i].val))) { /* zero value only */
-				int cnt = snprintf(ptr, size, "%s ", names[i].name);
-				if (cnt < 0 || cnt >= size) break;
-				size -= cnt;
-				ptr += cnt;
-		}
-	}
-	
-	return wine_dbg_sprintf("%s", buffer);
-}
-
-/* dump DMUS_OBJ flags */
-static const char *debugstr_DMUS_OBJ_FLAGS (DWORD flagmask) {
-    static const flag_info flags[] = {
-	    FE(DMUS_OBJ_OBJECT),
-	    FE(DMUS_OBJ_CLASS),
-	    FE(DMUS_OBJ_NAME),
-	    FE(DMUS_OBJ_CATEGORY),
-	    FE(DMUS_OBJ_FILENAME),
-	    FE(DMUS_OBJ_FULLPATH),
-	    FE(DMUS_OBJ_URL),
-	    FE(DMUS_OBJ_VERSION),
-	    FE(DMUS_OBJ_DATE),
-	    FE(DMUS_OBJ_LOADED),
-	    FE(DMUS_OBJ_MEMORY),
-	    FE(DMUS_OBJ_STREAM)
-	};
-    return debugstr_flags(flagmask, flags, ARRAY_SIZE(flags));
-}
-
-/* dump whole DMUS_OBJECTDESC struct */
-const char *debugstr_DMUS_OBJECTDESC (LPDMUS_OBJECTDESC pDesc) {
-	if (pDesc) {
-		char buffer[1024] = "", *ptr = &buffer[0];
-		
-		ptr += sprintf(ptr, "DMUS_OBJECTDESC (%p):\n", pDesc);
-		ptr += sprintf(ptr, " - dwSize = %d\n", pDesc->dwSize);
-		ptr += sprintf(ptr, " - dwValidData = %s\n", debugstr_DMUS_OBJ_FLAGS (pDesc->dwValidData));
-		if (pDesc->dwValidData & DMUS_OBJ_CLASS) ptr +=	sprintf(ptr, " - guidClass = %s\n", debugstr_dmguid(&pDesc->guidClass));
-		if (pDesc->dwValidData & DMUS_OBJ_OBJECT) ptr += sprintf(ptr, " - guidObject = %s\n", debugstr_guid(&pDesc->guidObject));
-		if (pDesc->dwValidData & DMUS_OBJ_DATE) ptr += sprintf(ptr, " - ftDate = FIXME\n");
-		if (pDesc->dwValidData & DMUS_OBJ_VERSION) ptr += sprintf(ptr, " - vVersion = %s\n", debugstr_dmversion(&pDesc->vVersion));
-		if (pDesc->dwValidData & DMUS_OBJ_NAME) ptr += sprintf(ptr, " - wszName = %s\n", debugstr_w(pDesc->wszName));
-		if (pDesc->dwValidData & DMUS_OBJ_CATEGORY) ptr += sprintf(ptr, " - wszCategory = %s\n", debugstr_w(pDesc->wszCategory));
-		if (pDesc->dwValidData & DMUS_OBJ_FILENAME) ptr += sprintf(ptr, " - wszFileName = %s\n", debugstr_w(pDesc->wszFileName));
-		if (pDesc->dwValidData & DMUS_OBJ_MEMORY) ptr += sprintf(ptr, " - llMemLength = 0x%s - pbMemData = %p\n",
-		                                                     wine_dbgstr_longlong(pDesc->llMemLength), pDesc->pbMemData);
-		if (pDesc->dwValidData & DMUS_OBJ_STREAM) ptr += sprintf(ptr, " - pStream = %p", pDesc->pStream);
-
-		return wine_dbg_sprintf("%s", buffer);
-	} else {
-		return wine_dbg_sprintf("(NULL)");
-	}
-}
diff --git a/dlls/dmscript/dmscript_private.h b/dlls/dmscript/dmscript_private.h
index 1ff88a9ef7..a6723e36aa 100644
--- a/dlls/dmscript/dmscript_private.h
+++ b/dlls/dmscript/dmscript_private.h
@@ -64,25 +64,4 @@ typedef struct _DMUS_PRIVATE_CHUNK {
 	DWORD dwSize; /* size of the chunk */
 } DMUS_PRIVATE_CHUNK, *LPDMUS_PRIVATE_CHUNK;
 
-/* used for generic dumping (copied from ddraw) */
-typedef struct {
-    DWORD val;
-    const char* name;
-} flag_info;
-
-typedef struct {
-    const GUID *guid;
-    const char* name;
-} guid_info;
-
-#define FE(x) { x, #x }	
-#define GE(x) { &x, #x }
-
-/* FOURCC to string conversion for debug messages */
-extern const char *debugstr_fourcc (DWORD fourcc) DECLSPEC_HIDDEN;
-/* returns name of given GUID */
-extern const char *debugstr_dmguid (const GUID *id) DECLSPEC_HIDDEN;
-/* dump whole DMUS_OBJECTDESC struct */
-extern const char *debugstr_DMUS_OBJECTDESC (LPDMUS_OBJECTDESC pDesc) DECLSPEC_HIDDEN;
-
 #endif	/* __WINE_DMSCRIPT_PRIVATE_H */
diff --git a/dlls/dmscript/script.c b/dlls/dmscript/script.c
index 94fd28207b..a3eceafb5e 100644
--- a/dlls/dmscript/script.c
+++ b/dlls/dmscript/script.c
@@ -234,7 +234,8 @@ static HRESULT WINAPI script_IDirectMusicObject_ParseDescriptor(IDirectMusicObje
         desc->dwValidData |= DMUS_OBJ_CLASS;
     }
 
-    TRACE("returning descriptor:\n%s\n", debugstr_DMUS_OBJECTDESC(desc));
+    TRACE("returning descriptor:\n");
+    dump_DMUS_OBJECTDESC(desc);
     return S_OK;
 }
 
diff --git a/dlls/dmscript/scripttrack.c b/dlls/dmscript/scripttrack.c
index 608e36bd90..ad5617f414 100644
--- a/dlls/dmscript/scripttrack.c
+++ b/dlls/dmscript/scripttrack.c
@@ -18,6 +18,7 @@
  */
 
 #include "dmscript_private.h"
+#include "dmobject.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(dmscript);
 
-- 
2.23.0




More information about the wine-devel mailing list