void AudioManager::playsound(String File, String ext) { ga_Mixer* mixer = gau_manager_mixer(m_Manager); ga_Sound* sound = gau_load_sound_file(File, ext); if (!loop) pLoopSrc = 0; ga_Handle* handle = gau_create_handle_sound(mixer, sound, &setFlagAndDestroyOnFinish, &quit, pLoopSrc); ga_handle_play(handle); }
Sound::Sound(const String& name, const String& filename) : m_Name(name), m_Filename(filename), m_Playing(false), m_Count(0) { std::vector<String> split = utils::SplitString(m_Filename, '.'); if (split.size() < 2) { std::cout << "[Sound] Invalid file name '" << m_Filename << "'!" << std::endl; return; } #ifdef SPARKY_PLATFORM_WEB #else m_Sound = gau_load_sound_file(filename.c_str(), split.back().c_str()); if (m_Sound == nullptr) std::cout << "[Sound] Could not load file '" << m_Filename << "'!" << std::endl; #endif }
Sound::Sound(const std::string& name, const std::string& filename) : m_Name(name), m_Filename(filename), m_Playing(false), m_Count(0) { std::vector<std::string> split = split_string(m_Filename, '.'); if (split.size() < 2) { std::cout << "[Sound] Invalid file name '" << m_Filename << "'!" << std::endl; return; } #ifdef SPARKY_EMSCRIPTEN // EM_ASM( // window.SoundManager.m_Sounds[] // ); #else m_Sound = gau_load_sound_file(filename.c_str(), split.back().c_str()); if (m_Sound == nullptr) std::cout << "[Sound] Could not load file '" << m_Filename << "'!" << std::endl; #endif }
int main(int argc, char** argv) { gau_Manager* mgr; ga_Mixer* mixer; ga_Sound* sound; ga_Handle* handle; gau_SampleSourceLoop* loopSrc = 0; gau_SampleSourceLoop** pLoopSrc = &loopSrc; gc_int32 loop = 0; gc_int32 quit = 0; /* Initialize library + manager */ gc_initialize(0); mgr = gau_manager_create(); mixer = gau_manager_mixer(mgr); /* Create and play shared sound */ if(!loop) pLoopSrc = 0; sound = gau_load_sound_file("test.wav", "wav"); handle = gau_create_handle_sound(mixer, sound, &setFlagAndDestroyOnFinish, &quit, pLoopSrc); ga_handle_play(handle); /* Bounded mix/queue/dispatch loop */ while(!quit) { gau_manager_update(mgr); printf("%d / %d\n", ga_handle_tell(handle, GA_TELL_PARAM_CURRENT), ga_handle_tell(handle, GA_TELL_PARAM_TOTAL)); gc_thread_sleep(1); } /* Clean up sound */ ga_sound_release(sound); /* Clean up library + manager */ gau_manager_destroy(mgr); gc_shutdown(); return 0; }