00001 00010 #ifdef USE_OPENAL 00011 00012 #ifndef SOUNDIMPOPENAL 00013 #define SOUNDIMPOPENAL 00014 00015 #include "SoundMgr.H" 00016 00017 namespace IS3D { 00018 00019 class SoundImpOpenAL : public SoundImplementation 00020 { 00021 public: 00022 00023 SoundImpOpenAL(); 00024 virtual ~SoundImpOpenAL(); 00025 00026 void setListenerLoc(const CoordinateFrame &m); 00027 void setListenerVel(const Vector3 &v); 00028 void setListenerGain(const float g); 00029 00030 void load(const std::string &filename); 00031 void play(const std::string &filename); 00032 void stop(const std::string &filename); 00033 void deleteSound(const std::string &filename); 00034 void setParam(const std::string &filename, const SOUNDPARAM param, 00035 const float value); 00036 00037 protected: 00038 00039 unsigned int getOpenALSource(const std::string &filename); 00040 00041 Array<unsigned int> _sources; 00042 Array<std::string> _fnames; 00043 00044 }; 00045 00046 } // end namespace 00047 00048 #endif 00049 00050 #endif // USE_OPENAL