Пример #1
0
void MapMode::_ResetMusicState()
{
    MusicDescriptor* music = AudioManager->RetrieveMusic(_music_filename);
    MusicDescriptor* active_music = AudioManager->GetActiveMusic();

    // Stop the current music if it's not the right one.
    if (active_music != nullptr && music != active_music)
        active_music->FadeOut(500);

    // If there is no map music or the music is already in the correct state, don't do anything.
    if (!music || music->GetState() == _music_audio_state)
        return;

    switch(_music_audio_state) {
    case AUDIO_STATE_FADE_IN:
    case AUDIO_STATE_PLAYING:
    default:
        // Seek the music point to not restart it from the beginning.
        music->SeekSample(_music_audio_sample);
        // In case the music volume was modified, we fade it back in smoothly
        if(music->GetVolume() < 1.0f)
            music->FadeIn(1000);
        else
            music->Play();
        break;
    case AUDIO_STATE_UNLOADED:
    case AUDIO_STATE_FADE_OUT:
    case AUDIO_STATE_PAUSED:
    case AUDIO_STATE_STOPPED:
        if (music->GetState() == AUDIO_STATE_PLAYING || music->GetState() == AUDIO_STATE_FADE_IN)
            music->FadeOut(1000);
        break;
    }
}
Пример #2
0
void AudioEngine::FadeInActiveMusic(float time)
{
    MusicDescriptor* music = GetActiveMusic();
    if (music)
        music->FadeIn(time);
}
Пример #3
0
void AudioEngine::StopActiveMusic()
{
    MusicDescriptor* music = GetActiveMusic();
    if (music)
        music->Stop();
}
Пример #4
0
void AudioEngine::RewindActiveMusic()
{
    MusicDescriptor* music = GetActiveMusic();
    if (music)
        music->Rewind();
}
Пример #5
0
void AudioEngine::PauseActiveMusic()
{
    MusicDescriptor* music = GetActiveMusic();
    if (music)
        music->Pause();
}