mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2025-02-21 03:11:03 +00:00
Merge branch 'musicplus-core' into musicplus-fade-sdltimer
This commit is contained in:
commit
69153194fe
1 changed files with 41 additions and 16 deletions
|
@ -456,9 +456,12 @@ void I_SetSfxVolume(UINT8 volume)
|
|||
|
||||
musictype_t I_MusicType(void)
|
||||
{
|
||||
#ifdef HAVE_LIBGME
|
||||
if (gme)
|
||||
return MU_GME;
|
||||
else if (midimode)
|
||||
else
|
||||
#endif
|
||||
if (midimode)
|
||||
return MU_MID;
|
||||
else if (!music)
|
||||
return MU_NONE;
|
||||
|
@ -472,7 +475,11 @@ musictype_t I_MusicType(void)
|
|||
|
||||
static void count_music_bytes(int chan, void *stream, int len, void *udata)
|
||||
{
|
||||
if (gme || midimode || !music || I_MusicType() == MU_MOD)
|
||||
if (
|
||||
#ifdef HAVE_LIBGME
|
||||
gme ||
|
||||
#endif
|
||||
midimode || !music || I_MusicType() == MU_MOD)
|
||||
return;
|
||||
music_bytes += len;
|
||||
}
|
||||
|
@ -540,7 +547,11 @@ void I_PauseSong(INT32 handle)
|
|||
if(midimode) // really, SDL Mixer? why can't you pause MIDI???
|
||||
return;
|
||||
|
||||
if(!gme && I_MusicType() != MU_MOD)
|
||||
if(
|
||||
#ifdef HAVE_LIBGME
|
||||
!gme &&
|
||||
#endif
|
||||
I_MusicType() != MU_MOD)
|
||||
Mix_UnregisterEffect(MIX_CHANNEL_POST, count_music_bytes);
|
||||
|
||||
Mix_PauseMusic();
|
||||
|
@ -554,7 +565,11 @@ void I_ResumeSong(INT32 handle)
|
|||
if (midimode)
|
||||
return;
|
||||
|
||||
if (!gme && I_MusicType() != MU_MOD)
|
||||
if (
|
||||
#ifdef HAVE_LIBGME
|
||||
!gme &&
|
||||
#endif
|
||||
I_MusicType() != MU_MOD)
|
||||
{
|
||||
while(Mix_UnregisterEffect(MIX_CHANNEL_POST, count_music_bytes) != 0) { }
|
||||
// HACK: fixes issue of multiple effect callbacks being registered
|
||||
|
@ -917,6 +932,7 @@ UINT32 I_GetMusicLength(void)
|
|||
{
|
||||
INT32 length;
|
||||
|
||||
#ifdef HAVE_LIBGME
|
||||
if (gme)
|
||||
{
|
||||
gme_info_t *info;
|
||||
|
@ -943,7 +959,9 @@ UINT32 I_GetMusicLength(void)
|
|||
gme_free_info(info);
|
||||
return max(length, 0);
|
||||
}
|
||||
else if (midimode || !music || I_MusicType() == MU_MOD)
|
||||
else
|
||||
#endif
|
||||
if (midimode || !music || I_MusicType() == MU_MOD)
|
||||
return 0;
|
||||
else
|
||||
{
|
||||
|
@ -958,7 +976,11 @@ UINT32 I_GetMusicLength(void)
|
|||
|
||||
boolean I_SetMusicLoopPoint(UINT32 looppoint)
|
||||
{
|
||||
if (midimode || gme || !music || I_MusicType() == MU_MOD || !is_looping)
|
||||
if (
|
||||
#ifdef HAVE_LIBGME
|
||||
gme ||
|
||||
#endif
|
||||
midimode || !music || I_MusicType() == MU_MOD || !is_looping)
|
||||
return false;
|
||||
else
|
||||
{
|
||||
|
@ -974,6 +996,7 @@ boolean I_SetMusicLoopPoint(UINT32 looppoint)
|
|||
|
||||
UINT32 I_GetMusicLoopPoint(void)
|
||||
{
|
||||
#ifdef HAVE_LIBGME
|
||||
if (gme)
|
||||
{
|
||||
INT32 looppoint;
|
||||
|
@ -991,7 +1014,9 @@ UINT32 I_GetMusicLoopPoint(void)
|
|||
gme_free_info(info);
|
||||
return max(looppoint, 0);
|
||||
}
|
||||
else if (midimode || !music || I_MusicType() == MU_MOD)
|
||||
else
|
||||
#endif
|
||||
if (midimode || !music || I_MusicType() == MU_MOD)
|
||||
return 0;
|
||||
else
|
||||
return (UINT32)(loop_point * 1000);
|
||||
|
@ -1000,7 +1025,7 @@ UINT32 I_GetMusicLoopPoint(void)
|
|||
boolean I_SetMusicPosition(UINT32 position)
|
||||
{
|
||||
UINT32 length;
|
||||
|
||||
#ifdef HAVE_LIBGME
|
||||
if (gme)
|
||||
{
|
||||
// this isn't required technically, but GME thread-locks for a second
|
||||
|
@ -1021,7 +1046,9 @@ boolean I_SetMusicPosition(UINT32 position)
|
|||
else
|
||||
return true;
|
||||
}
|
||||
else if (midimode || !music)
|
||||
else
|
||||
#endif
|
||||
if (midimode || !music)
|
||||
return false;
|
||||
else if (I_MusicType() == MU_MOD)
|
||||
return Mix_SetMusicPosition(position); // Goes by channels
|
||||
|
@ -1049,6 +1076,7 @@ boolean I_SetMusicPosition(UINT32 position)
|
|||
|
||||
UINT32 I_GetMusicPosition(void)
|
||||
{
|
||||
#ifdef HAVE_LIBGME
|
||||
if (gme)
|
||||
{
|
||||
INT32 position = gme_tell(gme);
|
||||
|
@ -1075,7 +1103,9 @@ UINT32 I_GetMusicPosition(void)
|
|||
gme_free_info(info);
|
||||
return max(position, 0);
|
||||
}
|
||||
else if (midimode || !music)
|
||||
else
|
||||
#endif
|
||||
if (midimode || !music)
|
||||
return 0;
|
||||
else
|
||||
return music_bytes/44100.0L*1000.0L/4; //assume 44.1khz
|
||||
|
@ -1184,12 +1214,7 @@ void I_ShutdownMIDIMusic(void)
|
|||
|
||||
void I_SetMIDIMusicVolume(UINT8 volume)
|
||||
{
|
||||
// HACK: Until we stop using native MIDI,
|
||||
// disable volume changes
|
||||
(void)volume;
|
||||
midi_volume = 31;
|
||||
//midi_volume = volume;
|
||||
|
||||
midi_volume = volume;
|
||||
if (!midimode || !music)
|
||||
return;
|
||||
Mix_VolumeMusic((UINT32)midi_volume*128/31);
|
||||
|
|
Loading…
Reference in a new issue