From 4fb4efd8ed54a81ea545e51265f2acdd01654f21 Mon Sep 17 00:00:00 2001 From: PilzAdam Date: Sun, 28 Jul 2013 23:14:42 +0200 Subject: Play sounds/main_menu.ogg in menu --- src/guiEngine.cpp | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) (limited to 'src/guiEngine.cpp') diff --git a/src/guiEngine.cpp b/src/guiEngine.cpp index 4c5d0189d..b62c1a547 100644 --- a/src/guiEngine.cpp +++ b/src/guiEngine.cpp @@ -30,6 +30,8 @@ extern "C" { #include "main.h" #include "settings.h" #include "guiMainMenu.h" +#include "sound.h" +#include "sound_openal.h" #include "guiEngine.h" @@ -84,6 +86,7 @@ GUIEngine::GUIEngine( irr::IrrlichtDevice* dev, m_menumanager(menumgr), m_smgr(smgr), m_data(data), + m_sound_manager(NULL), m_formspecgui(0), m_buttonhandler(0), m_menu(0), @@ -122,6 +125,14 @@ GUIEngine::GUIEngine( irr::IrrlichtDevice* dev, m_data->errormessage = ""; } + //create soundmanager + MenuMusicFetcher soundfetcher; +#if USE_SOUND + m_sound_manager = createOpenALSoundManager(&soundfetcher); +#endif + if(!m_sound_manager) + m_sound_manager = &dummySoundManager; + //create topleft header core::rect rect(0, 0, 500, 40); rect += v2s32(4, 0); @@ -299,7 +310,12 @@ GUIEngine::~GUIEngine() { video::IVideoDriver* driver = m_device->getVideoDriver(); assert(driver != 0); - + + if(m_sound_manager != &dummySoundManager){ + delete m_sound_manager; + m_sound_manager = NULL; + } + //TODO: clean up m_menu here lua_close(m_engineluastack); @@ -571,3 +587,16 @@ void GUIEngine::setTopleftText(std::string append) { m_irr_toplefttext->setText(narrow_to_wide(toset).c_str()); } + +/******************************************************************************/ +s32 GUIEngine::playSound(SimpleSoundSpec spec, bool looped) +{ + s32 handle = m_sound_manager->playSound(spec, looped); + return handle; +} + +/******************************************************************************/ +void GUIEngine::stopSound(s32 handle) +{ + m_sound_manager->stopSound(handle); +} -- cgit v1.2.3