Sound_Buffer::Sound_Buffer(const String &filename) : #ifndef DISABLE_AL m_buffer(AL_NONE), #endif m_duration(float()) //, m_loader(0) //, m_thread(0) { Sound &sr = get_Sound(); #ifndef DISABLE_AL if(dynamic_cast<Sound_Renderer_AL *>(&sr.get_Renderer())) { //m_loader = new Loader(filename); //m_thread = new Thread(*m_loader); std::pair<ALuint, float> loaded_ogg = load_ogg_vorbis(filename); if(loaded_ogg.first == AL_NONE) { std::cerr << "OpenAL error on '" << filename << "': " << Sound_Renderer_AL::errorString() << std::endl; throw Sound_Buffer_Init_Failure(); } m_buffer = loaded_ogg.first; m_duration = loaded_ogg.second; } #endif #ifdef ENABLE_SLES init_SLES(filename); #endif }
int Sound_Buffer::Loader::function() { #ifndef DISABLE_AL pair<ALuint, float> loaded_ogg = load_ogg_vorbis(m_filename); //if(loaded_ogg.first == AL_NONE) // loaded_ogg.first = alutCreateBufferFromFile(m_filename.c_str()); if(loaded_ogg.first == AL_NONE) { cerr << "ALUT error on '" << m_filename << "': " << alutGetErrorString(alutGetError()) << endl; return -1; } m_buffer = loaded_ogg.first; m_duration = loaded_ogg.second; #endif return 0; }