#ifndef MUXER_H_3146C802 #define MUXER_H_3146C802 #include <memory> #include <string> #include <fmod_studio_common.h> #include <fmod_studio.hpp> class fmod_system_deleter { public: void operator()(FMOD::Studio::System* val) { val->release(); } }; using fmod_system_ptr = std::unique_ptr<FMOD::Studio::System, fmod_system_deleter>; enum class TransitionState { Pre, Transition, Post, Stopped }; class Muxer { public: Muxer(); void setPlayerLoc(int x, int y); void playSound(std::string name); void playSoundAtPosition(std::string name, float x, float y); void setMusicLevel(int level); void stopMusic(); void update(); private: fmod_system_ptr system_; FMOD::Studio::EventInstance* exploration_event_; FMOD::Studio::EventInstance* transition_event_; FMOD::Studio::EventInstance* the_world_event_; TransitionState transition_state_ = TransitionState::Pre; }; #endif /* end of include guard: MUXER_H_3146C802 */