// Copyright (C) 2012-2017 ChaosForge Ltd // http://chaosforge.org/ // // This file is part of Nova libraries. // For conditions of distribution and use, see copying.txt file in root folder. /** * @file fmod_audio.hh * @author Kornel Kisielewicz epyon@chaosforge.org * @brief FMOD Audio interface */ #ifndef NV_FMOD_AUDIO_HH #define NV_FMOD_AUDIO_HH #include #include #include namespace nv { namespace fmod { class audio; struct sound_info { void* fmod_sound; }; class audio : public nv::audio { public: audio(); virtual channel play_sound( sound a_sound, float volume = 1.0f, float pan = 0.0f ); virtual channel play_sound( sound a_sound, vec3 position ); virtual sound load_sound( const string_view& a_path ); virtual void release( sound a_sound ); virtual void set_orientation( vec3 forward, vec3 up ); virtual void update( vec3 position ); virtual ~audio(); private: handle_store< sound_info, sound > m_sounds; vec3 m_position; void* m_system; }; } } #endif // NV_FMOD_AUDIO_HH