Show Music formats by name in dbg_music

This commit is contained in:
NepDisk 2025-11-15 16:54:47 -05:00
parent d5c494f901
commit 53753ef6f2
7 changed files with 87 additions and 4 deletions

View file

@ -1452,6 +1452,7 @@ struct int_const_s const INT_CONST[] = {
{"MU_WAV", MU_WAV},
{"MU_MOD", MU_MOD},
{"MU_MID", MU_MID},
{"MU_OPUS", MU_OPUS},
{"MU_OGG", MU_OGG},
{"MU_MP3", MU_MP3},
{"MU_FLAC", MU_FLAC},

View file

@ -29,11 +29,12 @@ typedef enum {
MU_MOD,
MU_MID,
MU_OGG,
MU_OPUS,
MU_MP3,
MU_FLAC,
MU_GME,
MU_MOD_EX, // libopenmpt
MU_MID_EX // Non-native MIDI
MU_MID_EX, // Non-native MIDI
} musictype_t;
/** \brief Sound subsystem runing and waiting

View file

@ -1859,6 +1859,50 @@ musictype_t S_MusicType(void)
return I_SongType();
}
const char *S_MusicTypeName(musictype_t mustype)
{
const char *TypeString = "Unknown";
musictype_t MusicType = mustype;
switch (MusicType)
{
case MU_GME:
TypeString = "Game Music Emu";
break;
case MU_MOD_EX:
TypeString = "OpenMPT";
break;
case MU_MOD:
TypeString = "MOD";
break;
case MU_MID:
TypeString = "Native MIDI";
break;
case MU_MID_EX:
TypeString = "Software MIDI";
break;
case MU_WAV:
TypeString = "Wave Audio";
break;
case MU_OPUS:
TypeString = "Opus";
break;
case MU_OGG:
TypeString = "Vorbis";
break;
case MU_MP3:
TypeString = "MPEG";
break;
case MU_FLAC:
TypeString = "FLAC";
break;
default:
break;
}
return TypeString;
}
const char *S_MusicName(void)
{
return music_name;

View file

@ -153,6 +153,7 @@ boolean S_MusicPlaying(void);
boolean S_MusicPaused(void);
boolean S_MusicNotInFocus(void);
musictype_t S_MusicType(void);
const char *S_MusicTypeName(musictype_t mustype);
const char *S_MusicName(void);
boolean S_MusicExists(const char *mname);

View file

@ -951,9 +951,38 @@ musictype_t I_SongType(void)
if (openmpt_mhandle)
return MU_MOD_EX;
#endif
// TODO if ever ported back to SRB2: add fluidsynth support
if (audio.music != INVALID_HANDLE)
return MU_MP3;
// TODO: add fluidsynth support
{
switch ((audio.musicinfo.format & SF_FORMAT_SUBMASK))
{
case SF_FORMAT_OPUS:
return MU_OPUS;
break;
case SF_FORMAT_VORBIS:
return MU_OGG;
break;
case SF_FORMAT_FLAC:
case SF_FORMAT_ALAC_20:
case SF_FORMAT_ALAC_24:
case SF_FORMAT_ALAC_32:
return MU_FLAC;
break;
case SF_FORMAT_WAV:
return MU_WAV;
break;
#ifdef HAVE_SNDFILE_MPEG
case SF_FORMAT_MPEG_LAYER_I:
case SF_FORMAT_MPEG_LAYER_II:
case SF_FORMAT_MPEG_LAYER_III:
return MU_MP3;
break;
#endif
}
}
return MU_NONE;
}

View file

@ -817,6 +817,12 @@ musictype_t I_SongType(void)
case MUS_MP3:
case MUS_MP3_MAD:
return MU_MP3;
case MUS_OPUS:
return MU_OPUS;
case MUS_OGG:
return MU_OGG;
case MUS_WAV:
return MU_WAV;
default:
return (musictype_t)mustype;
}

View file

@ -467,7 +467,8 @@ static void ST_drawMusicDebug(INT32 *height)
if (format)
{
ST_pushDebugString(height, va(" Format: %d", S_MusicType()));
musictype_t mustype = S_MusicType();
ST_pushDebugString(height, va(" Format: %s", S_MusicTypeName(mustype)));
}
ST_pushDebugString(height, va(" Song: %8s", mname));