#ifndef MUXER_H_3146C802 #define MUXER_H_3146C802 #include #include #include #include class fmod_system_deleter { public: void operator()(FMOD::Studio::System* val) { val->release(); } }; using fmod_system_ptr = std::unique_ptr; 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 startMusic(); 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 */