From: Michael Stefaniuc Subject: [PATCH] dmscript: Use the debug functions provided by dmobject.[ch] Message-Id: <20191212232907.160934-1-mstefani@winehq.org> Date: Fri, 13 Dec 2019 00:29:04 +0100 Signed-off-by: Michael Stefaniuc --- 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