mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2024-12-27 04:41:23 +00:00
Added I_GetMusicType and removed midimode variable: other targets
(cherry picked from commit 14b393ab16736bb44dab6fd4a90b7bdd8ff782e0)
This commit is contained in:
parent
06b7367941
commit
46b53e8bae
5 changed files with 155 additions and 193 deletions
|
@ -60,6 +60,11 @@ void I_SetSfxVolume(INT32 volume)
|
|||
//
|
||||
UINT8 music_started = 0;
|
||||
|
||||
musictype_t I_GetMusicType(void)
|
||||
{
|
||||
return MU_NONE;
|
||||
}
|
||||
|
||||
void I_InitMusic(void){}
|
||||
|
||||
void I_ShutdownMusic(void){}
|
||||
|
@ -99,12 +104,12 @@ boolean I_PlaySong(boolean looping)
|
|||
return false;
|
||||
}
|
||||
|
||||
void I_StopSong(INT32 handle)
|
||||
void I_StopSong(void)
|
||||
{
|
||||
(void)handle;
|
||||
}
|
||||
|
||||
void I_UnRegisterSong(INT32 handle)
|
||||
void I_UnloadSong(void)
|
||||
{
|
||||
(void)handle;
|
||||
}
|
||||
|
@ -115,19 +120,6 @@ void I_UnRegisterSong(INT32 handle)
|
|||
|
||||
UINT8 digmusic_started = 0;
|
||||
|
||||
void I_InitDigMusic(void){}
|
||||
|
||||
void I_ShutdownDigMusic(void){}
|
||||
|
||||
boolean I_StartDigSong(const char *musicname, INT32 looping)
|
||||
{
|
||||
(void)musicname;
|
||||
(void)looping;
|
||||
return false;
|
||||
}
|
||||
|
||||
void I_StopDigSong(void){}
|
||||
|
||||
void I_SetDigMusicVolume(INT32 volume)
|
||||
{
|
||||
(void)volume;
|
||||
|
@ -137,4 +129,4 @@ boolean I_SetSongSpeed(float speed)
|
|||
{
|
||||
(void)speed;
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -322,6 +322,13 @@ static int islooping=0;
|
|||
static int musicdies=-1;
|
||||
UINT8 music_started=0;
|
||||
|
||||
musictype_t I_GetMusicType(void)
|
||||
{
|
||||
if (currsong)
|
||||
return MU_MID;
|
||||
else
|
||||
return MU_NONE;
|
||||
}
|
||||
|
||||
/* load_midi_mem:
|
||||
* Loads a standard MIDI file from memory, returning a pointer to
|
||||
|
@ -389,7 +396,7 @@ static MIDI *load_midi_mem(char *mempointer,int *e)
|
|||
return midi;
|
||||
}
|
||||
|
||||
void I_InitMIDIMusic(void)
|
||||
void I_InitMusic(void)
|
||||
{
|
||||
if (nomidimusic)
|
||||
return;
|
||||
|
@ -398,12 +405,12 @@ void I_InitMIDIMusic(void)
|
|||
music_started = true;
|
||||
}
|
||||
|
||||
void I_ShutdownMIDIMusic(void)
|
||||
void I_ShutdownMusic(void)
|
||||
{
|
||||
if ( !music_started )
|
||||
return;
|
||||
|
||||
I_StopSong(1);
|
||||
I_StopSong();
|
||||
|
||||
music_started=false;
|
||||
}
|
||||
|
@ -439,7 +446,7 @@ void I_ResumeSong (INT32 handle)
|
|||
midi_resume();
|
||||
}
|
||||
|
||||
void I_StopSong(INT32 handle)
|
||||
void I_StopSong(void)
|
||||
{
|
||||
handle = 0;
|
||||
if (nomidimusic)
|
||||
|
@ -462,7 +469,7 @@ int I_QrySongPlaying(int handle)
|
|||
}
|
||||
#endif
|
||||
|
||||
void I_UnRegisterSong(INT32 handle)
|
||||
void I_UnloadSong(void)
|
||||
{
|
||||
handle = 0;
|
||||
if (nomidimusic)
|
||||
|
@ -496,20 +503,6 @@ boolean I_LoadSong(char *data, size_t len)
|
|||
return 1;
|
||||
}
|
||||
|
||||
/// \todo Add OGG/MP3 support for dos
|
||||
boolean I_StartDigSong(const char *musicname, INT32 looping)
|
||||
{
|
||||
musicname = NULL;
|
||||
looping = 0;
|
||||
//CONS_Printf("I_StartDigSong: Not yet supported under DOS.\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
void I_StopDigSong(void)
|
||||
{
|
||||
// CONS_Printf("I_StopDigSong: Not yet supported under DOS.\n");
|
||||
}
|
||||
|
||||
void I_SetDigMusicVolume(INT32 volume)
|
||||
{
|
||||
volume = 0;
|
||||
|
@ -524,4 +517,4 @@ boolean I_SetSongSpeed(float speed)
|
|||
{
|
||||
(void)speed;
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -61,11 +61,21 @@ void I_SetSfxVolume(UINT8 volume)
|
|||
// MUSIC I/O
|
||||
//
|
||||
|
||||
musictype_t I_GetMusicType(void)
|
||||
{
|
||||
return MU_NONE;
|
||||
}
|
||||
|
||||
void I_InitMusic(void){}
|
||||
|
||||
void I_ShutdownMusic(void){}
|
||||
|
||||
void I_PauseSong(INT32 handle)
|
||||
void I_SetMIDIMusicVolume(UINT8 volume)
|
||||
{
|
||||
(void)volume;
|
||||
}
|
||||
|
||||
void I_PauseSong(void)
|
||||
{
|
||||
(void)handle;
|
||||
}
|
||||
|
@ -93,12 +103,12 @@ boolean I_PlaySong(boolean looping)
|
|||
return false;
|
||||
}
|
||||
|
||||
void I_StopSong(INT32 handle)
|
||||
void I_StopSong(void)
|
||||
{
|
||||
(void)handle;
|
||||
}
|
||||
|
||||
void I_UnRegisterSong(INT32 handle)
|
||||
void I_UnloadSong(void)
|
||||
{
|
||||
(void)handle;
|
||||
}
|
||||
|
@ -107,19 +117,6 @@ void I_UnRegisterSong(INT32 handle)
|
|||
// DIGMUSIC I/O
|
||||
//
|
||||
|
||||
void I_InitDigMusic(void){}
|
||||
|
||||
void I_ShutdownDigMusic(void){}
|
||||
|
||||
boolean I_StartDigSong(const char *musicname, boolean looping)
|
||||
{
|
||||
(void)musicname;
|
||||
(void)looping;
|
||||
return false;
|
||||
}
|
||||
|
||||
void I_StopDigSong(void){}
|
||||
|
||||
void I_SetDigMusicVolume(UINT8 volume)
|
||||
{
|
||||
(void)volume;
|
||||
|
@ -135,4 +132,4 @@ boolean I_SetSongTrack(int track)
|
|||
{
|
||||
(void)track;
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -1313,10 +1313,27 @@ void I_StartupSound(void)
|
|||
// MUSIC API.
|
||||
//
|
||||
|
||||
void I_ShutdownMIDIMusic(void)
|
||||
musictype_t I_GetMusicType(void)
|
||||
{
|
||||
nomidimusic = false;
|
||||
if (nodigimusic) I_ShutdownMusic();
|
||||
#ifdef HAVE_MIXER
|
||||
#ifdef HAVE_LIBGME
|
||||
if (gme)
|
||||
return MU_GME;
|
||||
else
|
||||
#endif
|
||||
if (!music)
|
||||
return MU_NONE;
|
||||
else if (Mix_GetMusicType(music) == MUS_MID)
|
||||
return MU_MID;
|
||||
else if (Mix_GetMusicType(music) == MUS_MOD || Mix_GetMusicType(music) == MUS_MODPLUG_UNUSED)
|
||||
return MU_MOD;
|
||||
else if (Mix_GetMusicType(music) == MUS_MP3 || Mix_GetMusicType(music) == MUS_MP3_MAD_UNUSED)
|
||||
return MU_MP3;
|
||||
else
|
||||
return (musictype_t)Mix_GetMusicType(music);
|
||||
#else
|
||||
return MU_NONE
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef HAVE_LIBGME
|
||||
|
@ -1330,12 +1347,6 @@ static void I_ShutdownGMEMusic(void)
|
|||
}
|
||||
#endif
|
||||
|
||||
void I_ShutdownDigMusic(void)
|
||||
{
|
||||
nodigimusic = false;
|
||||
if (nomidimusic) I_ShutdownMusic();
|
||||
}
|
||||
|
||||
#ifdef HAVE_MIXER
|
||||
static boolean LoadSong(void *data, size_t lumplength, size_t selectpos)
|
||||
{
|
||||
|
@ -1436,8 +1447,8 @@ void I_ShutdownMusic(void)
|
|||
|
||||
CONS_Printf("%s", M_GetText("I_ShutdownMusic: "));
|
||||
|
||||
I_UnRegisterSong(0);
|
||||
I_StopDigSong();
|
||||
I_UnloadSong();
|
||||
I_StopSong();
|
||||
Mix_CloseAudio();
|
||||
#ifdef MIX_INIT
|
||||
Mix_Quit();
|
||||
|
@ -1450,16 +1461,6 @@ void I_ShutdownMusic(void)
|
|||
#endif
|
||||
}
|
||||
|
||||
void I_InitMIDIMusic(void)
|
||||
{
|
||||
if (nodigimusic) I_InitMusic();
|
||||
}
|
||||
|
||||
void I_InitDigMusic(void)
|
||||
{
|
||||
if (nomidimusic) I_InitMusic();
|
||||
}
|
||||
|
||||
void I_InitMusic(void)
|
||||
{
|
||||
#ifdef HAVE_MIXER
|
||||
|
@ -1639,17 +1640,29 @@ void I_ResumeSong(void)
|
|||
#endif
|
||||
}
|
||||
|
||||
void I_StopSong(INT32 handle)
|
||||
void I_StopSong(void)
|
||||
{
|
||||
(void)handle;
|
||||
I_StopGME();
|
||||
#ifdef HAVE_MIXER
|
||||
if (nomidimusic || !musicStarted)
|
||||
if (nodigimusic)
|
||||
return;
|
||||
Mix_FadeOutMusic(MIDIfade);
|
||||
|
||||
#ifdef MIXER_POS
|
||||
if (canlooping)
|
||||
Mix_HookMusicFinished(NULL);
|
||||
#endif
|
||||
|
||||
Mix_HaltMusic();
|
||||
while (Mix_PlayingMusic())
|
||||
;
|
||||
|
||||
if (music[1])
|
||||
Mix_FreeMusic(music[1]);
|
||||
music[1] = NULL;
|
||||
LoadSong(NULL, 0, 1);
|
||||
}
|
||||
|
||||
void I_UnRegisterSong(INT32 handle)
|
||||
void I_UnloadSong(void)
|
||||
{
|
||||
#ifdef HAVE_MIXER
|
||||
|
||||
|
@ -1714,7 +1727,7 @@ static void I_CleanupGME(void *userdata)
|
|||
static boolean I_StartGMESong(const char *musicname, boolean looping)
|
||||
{
|
||||
#ifdef HAVE_LIBGME
|
||||
XBOXSTATIC char filename[9];
|
||||
char filename[9];
|
||||
void *data;
|
||||
lumpnum_t lumpnum;
|
||||
size_t lumplength;
|
||||
|
@ -1769,7 +1782,7 @@ static boolean I_StartGMESong(const char *musicname, boolean looping)
|
|||
boolean I_StartDigSong(const char *musicname, boolean looping)
|
||||
{
|
||||
#ifdef HAVE_MIXER
|
||||
XBOXSTATIC char filename[9];
|
||||
char filename[9];
|
||||
void *data;
|
||||
lumpnum_t lumpnum;
|
||||
size_t lumplength;
|
||||
|
@ -1786,7 +1799,7 @@ boolean I_StartDigSong(const char *musicname, boolean looping)
|
|||
|
||||
lumpnum = W_CheckNumForName(filename);
|
||||
|
||||
I_StopDigSong();
|
||||
I_StopSong();
|
||||
|
||||
if (lumpnum == LUMPERROR)
|
||||
{
|
||||
|
@ -1811,7 +1824,7 @@ boolean I_StartDigSong(const char *musicname, boolean looping)
|
|||
{
|
||||
size_t scan;
|
||||
const char *dataum = data;
|
||||
XBOXSTATIC char looplength[64];
|
||||
char looplength[64];
|
||||
UINT32 loopstart = 0;
|
||||
UINT8 newcount = 0;
|
||||
|
||||
|
@ -1938,29 +1951,6 @@ static void I_StopGME(void)
|
|||
#endif
|
||||
}
|
||||
|
||||
void I_StopDigSong(void)
|
||||
{
|
||||
I_StopGME();
|
||||
#ifdef HAVE_MIXER
|
||||
if (nodigimusic)
|
||||
return;
|
||||
|
||||
#ifdef MIXER_POS
|
||||
if (canlooping)
|
||||
Mix_HookMusicFinished(NULL);
|
||||
#endif
|
||||
|
||||
Mix_HaltMusic();
|
||||
while (Mix_PlayingMusic())
|
||||
;
|
||||
|
||||
if (music[1])
|
||||
Mix_FreeMusic(music[1]);
|
||||
music[1] = NULL;
|
||||
LoadSong(NULL, 0, 1);
|
||||
#endif
|
||||
}
|
||||
|
||||
void I_SetDigMusicVolume(UINT8 volume)
|
||||
{
|
||||
I_SetMIDIMusicVolume(volume);
|
||||
|
@ -1995,4 +1985,4 @@ static void SDLCALL I_FinishMusic(void)
|
|||
if (Msc_Mutex) SDL_UnlockMutex(Msc_Mutex);
|
||||
}
|
||||
#endif
|
||||
#endif //HAVE_SDL
|
||||
#endif //HAVE_SDL
|
|
@ -22,12 +22,10 @@
|
|||
#define HAVE_ZLIB
|
||||
|
||||
#ifndef _MSC_VER
|
||||
#ifndef _WII
|
||||
#ifndef _LARGEFILE64_SOURCE
|
||||
#define _LARGEFILE64_SOURCE
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef _LFS64_LARGEFILE
|
||||
#define _LFS64_LARGEFILE
|
||||
|
@ -44,7 +42,6 @@
|
|||
static FMOD_SYSTEM *fsys;
|
||||
static FMOD_SOUND *music_stream;
|
||||
static FMOD_CHANNEL *music_channel;
|
||||
static boolean midimode;
|
||||
|
||||
static UINT8 music_volume, midi_volume, sfx_volume;
|
||||
static INT32 current_track;
|
||||
|
@ -446,14 +443,48 @@ void I_SetSfxVolume(UINT8 volume)
|
|||
// MUSIC
|
||||
//
|
||||
|
||||
musictype_t I_GetMusicType(void)
|
||||
{
|
||||
#ifdef HAVE_LIBGME
|
||||
if (gme)
|
||||
return MU_GME;
|
||||
#endif
|
||||
|
||||
if (!music_stream)
|
||||
return MU_NONE;
|
||||
|
||||
FMOD_SOUND_TYPE type;
|
||||
if (FMOD_Sound_GetFormat(music_stream, &type, NULL, NULL, NULL) == FMOD_OK)
|
||||
{
|
||||
switch(type)
|
||||
{
|
||||
case FMOD_SOUND_TYPE_WAV:
|
||||
return MU_WAV;
|
||||
case FMOD_SOUND_TYPE_MOD:
|
||||
return MU_MOD;
|
||||
case FMOD_SOUND_TYPE_MID:
|
||||
return MU_MID;
|
||||
case FMOD_SOUND_TYPE_OGGVORBIS:
|
||||
return MU_OGG;
|
||||
case FMOD_SOUND_TYPE_MP3:
|
||||
return MU_MP3;
|
||||
case FMOD_SOUND_TYPE_FLAC:
|
||||
return MU_FLAC;
|
||||
default:
|
||||
return MU_NONE;
|
||||
}
|
||||
}
|
||||
else
|
||||
return MU_NONE;
|
||||
}
|
||||
|
||||
void I_InitMusic(void)
|
||||
{
|
||||
}
|
||||
|
||||
void I_ShutdownMusic(void)
|
||||
{
|
||||
I_ShutdownDigMusic();
|
||||
I_ShutdownMIDIMusic();
|
||||
I_StopSong();
|
||||
}
|
||||
|
||||
void I_PauseSong(void)
|
||||
|
@ -470,17 +501,7 @@ void I_ResumeSong(void)
|
|||
FMR_MUSIC(FMOD_Channel_SetPaused(music_channel, false));
|
||||
}
|
||||
|
||||
void I_InitDigMusic(void)
|
||||
{
|
||||
}
|
||||
|
||||
void I_ShutdownDigMusic(void)
|
||||
{
|
||||
if (!midimode)
|
||||
I_StopDigSong();
|
||||
}
|
||||
|
||||
boolean I_StartDigSong(const char *musicname, boolean looping)
|
||||
boolean I_LoadSong(char *data, size_t len)
|
||||
{
|
||||
char *data;
|
||||
size_t len;
|
||||
|
@ -492,10 +513,7 @@ boolean I_StartDigSong(const char *musicname, boolean looping)
|
|||
lumpnum = W_CheckNumForName(va("D_%s",musicname));
|
||||
if (lumpnum == LUMPERROR)
|
||||
return false;
|
||||
midimode = true;
|
||||
}
|
||||
else
|
||||
midimode = false;
|
||||
|
||||
data = (char *)W_CacheLumpNum(lumpnum, PU_MUSIC);
|
||||
len = W_LumpLength(lumpnum);
|
||||
|
@ -605,8 +623,6 @@ boolean I_StartDigSong(const char *musicname, boolean looping)
|
|||
{
|
||||
gme_equalizer_t gmeq = {GME_TREBLE, GME_BASS, 0,0,0,0,0,0,0,0};
|
||||
Z_Free(data); // We don't need this anymore.
|
||||
gme_start_track(gme, 0);
|
||||
current_track = 0;
|
||||
gme_set_equalizer(gme,&gmeq);
|
||||
fmt.format = FMOD_SOUND_FORMAT_PCM16;
|
||||
fmt.defaultfrequency = 44100;
|
||||
|
@ -616,32 +632,21 @@ boolean I_StartDigSong(const char *musicname, boolean looping)
|
|||
fmt.pcmreadcallback = GMEReadCallback;
|
||||
fmt.userdata = gme;
|
||||
FMR(FMOD_System_CreateStream(fsys, NULL, FMOD_OPENUSER | (looping ? FMOD_LOOP_NORMAL : 0), &fmt, &music_stream));
|
||||
FMR(FMOD_System_PlaySound(fsys, FMOD_CHANNEL_FREE, music_stream, false, &music_channel));
|
||||
FMR(FMOD_Channel_SetVolume(music_channel, music_volume / 31.0));
|
||||
FMR(FMOD_Channel_SetPriority(music_channel, 0));
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
|
||||
fmt.length = len;
|
||||
|
||||
FMOD_RESULT e = FMOD_System_CreateStream(fsys, data, FMOD_OPENMEMORY_POINT|(looping ? FMOD_LOOP_NORMAL : 0), &fmt, &music_stream);
|
||||
if (e != FMOD_OK)
|
||||
{
|
||||
FMOD_RESULT e = FMOD_System_CreateStream(fsys, data, FMOD_OPENMEMORY_POINT|(looping ? FMOD_LOOP_NORMAL : 0), &fmt, &music_stream);
|
||||
if (e != FMOD_OK)
|
||||
{
|
||||
if (e == FMOD_ERR_FORMAT)
|
||||
CONS_Alert(CONS_WARNING, "Failed to play music lump %s due to invalid format.\n", W_CheckNameForNum(lumpnum));
|
||||
else
|
||||
FMR(e);
|
||||
return false;
|
||||
}
|
||||
if (e == FMOD_ERR_FORMAT)
|
||||
CONS_Alert(CONS_WARNING, "Failed to play music lump %s due to invalid format.\n", W_CheckNameForNum(lumpnum));
|
||||
else
|
||||
FMR(e);
|
||||
return false;
|
||||
}
|
||||
FMR(FMOD_System_PlaySound(fsys, FMOD_CHANNEL_FREE, music_stream, false, &music_channel));
|
||||
if (midimode)
|
||||
FMR(FMOD_Channel_SetVolume(music_channel, midi_volume / 31.0));
|
||||
else
|
||||
FMR(FMOD_Channel_SetVolume(music_channel, music_volume / 31.0));
|
||||
FMR(FMOD_Channel_SetPriority(music_channel, 0));
|
||||
current_track = 0;
|
||||
|
||||
// Try to find a loop point in streaming music formats (ogg, mp3)
|
||||
FMOD_RESULT e;
|
||||
|
@ -704,28 +709,15 @@ boolean I_StartDigSong(const char *musicname, boolean looping)
|
|||
return true;
|
||||
}
|
||||
|
||||
// No special loop point, but we're playing so it's all good.
|
||||
// No special loop point
|
||||
return true;
|
||||
}
|
||||
|
||||
void I_StopDigSong(void)
|
||||
{
|
||||
if (music_stream)
|
||||
FMR(FMOD_Sound_Release(music_stream));
|
||||
music_stream = NULL;
|
||||
#ifdef HAVE_LIBGME
|
||||
if (gme)
|
||||
gme_delete(gme);
|
||||
gme = NULL;
|
||||
#endif
|
||||
current_track = -1;
|
||||
}
|
||||
|
||||
void I_SetDigMusicVolume(UINT8 volume)
|
||||
{
|
||||
// volume is 0 to 31.
|
||||
music_volume = volume;
|
||||
if (!midimode && music_stream)
|
||||
if (I_GetMusicType() != MU_MID && music_stream)
|
||||
FMR_MUSIC(FMOD_Channel_SetVolume(music_channel, volume / 31.0));
|
||||
}
|
||||
|
||||
|
@ -811,57 +803,55 @@ boolean I_SetSongTrack(INT32 track)
|
|||
// Fuck MIDI. ... Okay fine, you can have your silly D_-only mode.
|
||||
//
|
||||
|
||||
void I_InitMIDIMusic(void)
|
||||
{
|
||||
}
|
||||
|
||||
void I_ShutdownMIDIMusic(void)
|
||||
{
|
||||
if (midimode)
|
||||
I_StopSong(0);
|
||||
}
|
||||
|
||||
void I_SetMIDIMusicVolume(UINT8 volume)
|
||||
{
|
||||
// volume is 0 to 31.
|
||||
midi_volume = volume;
|
||||
if (midimode && music_stream)
|
||||
if (I_GetMusicType() != MU_MID && music_stream)
|
||||
FMR_MUSIC(FMOD_Channel_SetVolume(music_channel, volume / 31.0));
|
||||
}
|
||||
|
||||
boolean I_PlaySong(boolean looping)
|
||||
{
|
||||
FMOD_CREATESOUNDEXINFO fmt;
|
||||
memset(&fmt, 0, sizeof(FMOD_CREATESOUNDEXINFO));
|
||||
fmt.cbsize = sizeof(FMOD_CREATESOUNDEXINFO);
|
||||
fmt.length = len;
|
||||
FMR(FMOD_System_CreateStream(fsys, (char *)data, FMOD_OPENMEMORY_POINT, &fmt, &music_stream));
|
||||
return 1337;
|
||||
}
|
||||
|
||||
boolean I_PlaySong(INT32 handle, boolean looping)
|
||||
{
|
||||
if (1337 == handle)
|
||||
#ifdef HAVE_LIBGME
|
||||
if (gme)
|
||||
{
|
||||
midimode = true;
|
||||
if (looping)
|
||||
FMR(FMOD_Sound_SetMode(music_stream, FMOD_LOOP_NORMAL));
|
||||
gme_start_track(gme, 0);
|
||||
current_track = 0;
|
||||
FMR(FMOD_System_PlaySound(fsys, FMOD_CHANNEL_FREE, music_stream, false, &music_channel));
|
||||
FMR_MUSIC(FMOD_Channel_SetVolume(music_channel, midi_volume / 31.0));
|
||||
FMR_MUSIC(FMOD_Channel_SetPriority(music_channel, 0));
|
||||
FMR(FMOD_Channel_SetVolume(music_channel, music_volume / 31.0));
|
||||
FMR(FMOD_Channel_SetPriority(music_channel, 0));
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
|
||||
FMR(FMOD_System_PlaySound(fsys, FMOD_CHANNEL_FREE, music_stream, false, &music_channel));
|
||||
if (I_GetMusicType() != MU_MID)
|
||||
FMR(FMOD_Channel_SetVolume(music_channel, midi_volume / 31.0));
|
||||
else
|
||||
FMR(FMOD_Channel_SetVolume(music_channel, music_volume / 31.0));
|
||||
FMR(FMOD_Channel_SetPriority(music_channel, 0));
|
||||
current_track = 0;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void I_StopSong(INT32 handle)
|
||||
void I_StopSong(void)
|
||||
{
|
||||
I_UnRegisterSong(handle);
|
||||
#ifdef HAVE_LIBGME
|
||||
if (gme)
|
||||
gme_delete(gme);
|
||||
gme = NULL;
|
||||
#endif
|
||||
current_track = -1;
|
||||
|
||||
I_UnloadSong();
|
||||
}
|
||||
|
||||
void I_UnRegisterSong(INT32 handle)
|
||||
void I_UnloadSong(void)
|
||||
{
|
||||
UNREFERENCED_PARAMETER(handle);
|
||||
if (music_stream)
|
||||
FMR(FMOD_Sound_Release(music_stream));
|
||||
music_stream = NULL;
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue