Skip to content

Commit

Permalink
Add code to play main_menu.ogg in main menu
Browse files Browse the repository at this point in the history
  • Loading branch information
RealBadAngel authored and PilzAdam committed May 11, 2013
1 parent 6911a7d commit 9575b0a
Showing 1 changed file with 60 additions and 1 deletion.
61 changes: 60 additions & 1 deletion src/main.cpp
Expand Up @@ -76,6 +76,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "subgame.h"
#include "quicktune.h"
#include "serverlist.h"
#include "sound.h"
#include "sound_openal.h"

/*
Settings.
Expand Down Expand Up @@ -200,7 +202,49 @@ u32 getTime(TimePrecision prec) {
return 0;
return g_timegetter->getTime(prec);
}
#endif

//Client side main menu music fetcher
#ifndef SERVER
class MenuMusicFetcher: public OnDemandSoundFetcher
{
std::set<std::string> m_fetched;
public:

void fetchSounds(const std::string &name,
std::set<std::string> &dst_paths,
std::set<std::string> &dst_datas)
{
if(m_fetched.count(name))
return;
m_fetched.insert(name);
std::string base;
base = porting::path_share + DIR_DELIM + "sounds";
dst_paths.insert(base + DIR_DELIM + name + ".ogg");
dst_paths.insert(base + DIR_DELIM + name + ".0.ogg");
dst_paths.insert(base + DIR_DELIM + name + ".1.ogg");
dst_paths.insert(base + DIR_DELIM + name + ".2.ogg");
dst_paths.insert(base + DIR_DELIM + name + ".3.ogg");
dst_paths.insert(base + DIR_DELIM + name + ".4.ogg");
dst_paths.insert(base + DIR_DELIM + name + ".5.ogg");
dst_paths.insert(base + DIR_DELIM + name + ".6.ogg");
dst_paths.insert(base + DIR_DELIM + name + ".7.ogg");
dst_paths.insert(base + DIR_DELIM + name + ".8.ogg");
dst_paths.insert(base + DIR_DELIM + name + ".9.ogg");
base = porting::path_user + DIR_DELIM + "sounds";
dst_paths.insert(base + DIR_DELIM + name + ".ogg");
dst_paths.insert(base + DIR_DELIM + name + ".0.ogg");
dst_paths.insert(base + DIR_DELIM + name + ".1.ogg");
dst_paths.insert(base + DIR_DELIM + name + ".2.ogg");
dst_paths.insert(base + DIR_DELIM + name + ".3.ogg");
dst_paths.insert(base + DIR_DELIM + name + ".4.ogg");
dst_paths.insert(base + DIR_DELIM + name + ".5.ogg");
dst_paths.insert(base + DIR_DELIM + name + ".6.ogg");
dst_paths.insert(base + DIR_DELIM + name + ".7.ogg");
dst_paths.insert(base + DIR_DELIM + name + ".8.ogg");
dst_paths.insert(base + DIR_DELIM + name + ".9.ogg");
}
};
#endif

class StderrLogOutput: public ILogOutput
Expand Down Expand Up @@ -1776,6 +1820,16 @@ int main(int argc, char *argv[])
// Time is in milliseconds, for clouds
u32 lasttime = device->getTimer()->getTime();

MenuMusicFetcher soundfetcher;
ISoundManager *sound = NULL;
sound = createOpenALSoundManager(&soundfetcher);
if(!sound)
sound = &dummySoundManager;
SimpleSoundSpec spec;
spec.name = "main_menu";
spec.gain = 1;
s32 handle = sound->playSound(spec, true);

infostream<<"Created main menu"<<std::endl;

while(device->run() && kill == false)
Expand Down Expand Up @@ -1857,7 +1911,12 @@ int main(int argc, char *argv[])
sleep_ms(25);
}
}

sound->stopSound(handle);
if(sound != &dummySoundManager){
delete sound;
sound = NULL;
}

infostream<<"Dropping main menu"<<std::endl;

menu->drop();
Expand Down

0 comments on commit 9575b0a

Please sign in to comment.