Skip to content

Commit

Permalink
Main menu music.
Browse files Browse the repository at this point in the history
  • Loading branch information
rohit-n committed Dec 22, 2015
1 parent 5e710b7 commit deaf7b8
Show file tree
Hide file tree
Showing 5 changed files with 50 additions and 16 deletions.
50 changes: 38 additions & 12 deletions audio.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ AudioManager::AudioManager()
}

_musicSource = 0;
_musicBuffer = 0;
_mapMusicBuffer = 0;
alGenSources(1, &_musicSource);

loadWAV("./data/sounds/alarm.wav");
Expand All @@ -63,6 +63,8 @@ AudioManager::AudioManager()
loadWAV("./data/sounds/elevator_arrive.wav");
loadWAV("./data/sounds/elevator_leave.wav");
loadWAV("./data/sounds/elevator_decelerate.wav");
_mainmenuMusicBuffer = bufferFromOGG("./data/music/ontheground.ogg");
_playingMenuMusic = false;
}

AudioManager::~AudioManager()
Expand All @@ -78,9 +80,14 @@ AudioManager::~AudioManager()

alDeleteSources(1, &_musicSource);

if (_musicBuffer != 0)
if (_mapMusicBuffer != 0)
{
alDeleteBuffers(1, &_musicBuffer);
alDeleteBuffers(1, &_mapMusicBuffer);
}

if (_mainmenuMusicBuffer != 0)
{
alDeleteBuffers(1, &_mainmenuMusicBuffer);
}

std::map<std::string, ALuint>::iterator it;
Expand All @@ -107,31 +114,50 @@ void AudioManager::playSound(std::string filename)
alSourcePlay(src);
}

void AudioManager::playMusic(std::string filename)
void AudioManager::playMapMusic(std::string filename)
{
if (_musicBuffer != 0)
if (_mapMusicBuffer != 0)
{
alDeleteBuffers(1, &_musicBuffer);
_musicBuffer = 0;
alDeleteBuffers(1, &_mapMusicBuffer);
_mapMusicBuffer = 0;
}

_musicBuffer = bufferFromOGG("./data/music/" + filename);
_mapMusicBuffer = bufferFromOGG("./data/music/" + filename);

if (_playingMenuMusic)
{
alSourceStop(_musicSource);
}
_playingMenuMusic = false;
playMusic(_mapMusicBuffer);
}

if (_musicBuffer == 0)
void AudioManager::playMenuMusic()
{
if (_playingMenuMusic)
return;

_playingMenuMusic = true;
playMusic(_mainmenuMusicBuffer);
}

void AudioManager::playMusic(ALuint buf)
{
if (buf == 0)
{
return;
}

alSourcei(_musicSource, AL_BUFFER, _musicBuffer);
alSourcei(_musicSource, AL_BUFFER, buf);
alSource3f(_musicSource, AL_POSITION, 0, 0, 0);
alSourcei(_musicSource, AL_LOOPING, 1);
alSourcePlay(_musicSource);
}

void AudioManager::stopMusic()
{
alDeleteBuffers(1, &_musicBuffer);
_musicBuffer = 0;
alDeleteBuffers(1, &_mapMusicBuffer);
_mapMusicBuffer = 0;
alSourceStop(_musicSource);
}

Expand Down
8 changes: 6 additions & 2 deletions audio.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,9 @@ class AudioManager
AudioManager();
~AudioManager();
void playSound(std::string filename);
void playMusic(std::string filename);
void playMapMusic(std::string filename);
void playMenuMusic();
void playMusic(ALuint buf);
void stopMusic();
void playSound3D(const char* filename, float x, float y, float z);
void loadWAV(std::string filename);
Expand All @@ -48,9 +50,11 @@ class AudioManager
std::map<std::string, ALuint> _loadedBuffers;
std::vector<ALuint> _loadedSources;
ALuint _musicSource;
ALuint _musicBuffer;
ALuint _mapMusicBuffer;
ALuint _mainmenuMusicBuffer;
ALCdevice* _device;
ALCcontext* _context;
bool _playingMenuMusic;
};

#endif
2 changes: 1 addition & 1 deletion loadingmapstate.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ void LoadingMapState::update(unsigned int dT)
{
_manager->initSceneAndMap(_mapFilename.c_str());
_manager->makeStartSave();
Locator::getAudio()->playMusic(_mapMusicFilename);
Locator::getAudio()->playMapMusic(_mapMusicFilename);
_loaded = true;
}

Expand Down
2 changes: 1 addition & 1 deletion readme.txt
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ Credits:
- CC0 http://creativecommons.org/publicdomain/zero/1.0/

Music
1. groove_grove.ogg, brittle_rille.ogg, ultralounge.ogg
1. groove_grove.ogg, brittle_rille.ogg, ultralounge.ogg, ontheground.ogg
- By Kevin MacLeod
- incompetech.com
- CC BY 3.0 http://creativecommons.org/licenses/by/3.0/
Expand Down
4 changes: 4 additions & 0 deletions statemanager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ StateManager::StateManager()
_settingsChanged = false;
_activeMapFilename = "";
_mapMusicFilename = "";

Locator::getAudio()->playMenuMusic();
}

StateManager::~StateManager()
Expand Down Expand Up @@ -85,6 +87,7 @@ void StateManager::switchToState(eState state)
switch(state)
{
case MAINMENU_SCREEN:
Locator::getAudio()->playMenuMusic();
_activeState = _mainMenuState;
break;
case GAME_SCREEN:
Expand All @@ -109,6 +112,7 @@ void StateManager::switchToState(eState state)
_activeState = _pauseState;
break;
case LOADINGMAP_SCREEN:
Locator::getAudio()->stopMusic();
getMusicFilename(_activeMapFilename);
lms->setMap(_activeMapFilename, _mapMusicFilename);
_activeState = _loadingMapState;
Expand Down

0 comments on commit deaf7b8

Please sign in to comment.