#pragma once #include "stdafx.h" #include "MessageManager.h" #include "EmulationSettings.h" #include "IInputProvider.h" #include "Types.h" class MovieRecorder; class VirtualFile; class IMovie : public IInputProvider { protected: void EndMovie() { MessageManager::DisplayMessage("Movies", "MovieEnded"); MessageManager::SendNotification(ConsoleNotificationType::MovieEnded); if(EmulationSettings::CheckFlag(EmulationFlags::PauseOnMovieEnd)) { EmulationSettings::SetFlags(EmulationFlags::Paused); } } public: virtual bool Play(VirtualFile &file) = 0; virtual bool IsPlaying() = 0; }; class MovieManager { private: static shared_ptr _player; static shared_ptr _recorder; public: static void Record(RecordMovieOptions options); static void Play(VirtualFile file); static void Stop(); static bool Playing(); static bool Recording(); };