12 #include "IPlayback.h"    13 #include "threads/CriticalSection.h"    14 #include "utils/Observer.h"    33 class CGUIGameMessenger;
    34 class CRPRenderManager;
    35 class CSavestateDatabase;
    46                       size_t serializeSize);
    51   void Initialize() 
override;
    52   void Deinitialize() 
override;
    53   bool CanPause()
 const override { 
return true; }
    54   bool CanSeek()
 const override { 
return true; }
    55   unsigned int GetTimeMs()
 const override { 
return m_playTimeMs; }
    56   unsigned int GetTotalTimeMs()
 const override { 
return m_totalTimeMs; }
    57   unsigned int GetCacheTimeMs()
 const override { 
return m_cacheTimeMs; }
    58   void SeekTimeMs(
unsigned int timeMs) 
override;
    59   double GetSpeed() 
const override;
    60   void SetSpeed(
double speedFactor) 
override;
    61   void PauseAsync() 
override;
    62   std::string CreateSavestate(
bool autosave, 
const std::string& savestatePath = 
"") 
override;
    63   bool LoadSavestate(
const std::string& savestatePath) 
override;
    66   void FrameEvent() 
override;
    67   void RewindEvent() 
override;
    70   void Notify(
const Observable& obs, 
const ObservableMessage msg) 
override;
    74   void RewindFrames(uint64_t frames);
    75   void AdvanceFrames(uint64_t frames);
    76   void UpdatePlaybackStats();
    77   void UpdateMemoryStream();
    78   void CommitSavestate(
bool autosave,
    79                        const std::string& savePath,
    81                        uint64_t timestampFrames);
    91   std::unique_ptr<IMemoryStream> m_memoryStream;
    92   CCriticalSection m_mutex;
    95   std::unique_ptr<CSavestateDatabase> m_savestateDatabase;
    96   std::string m_autosavePath{};
    97   std::vector<std::future<void>> m_savestateThreads;
    98   CCriticalSection m_savestateMutex;
   101   uint64_t m_totalFrameCount = 0;
   102   uint64_t m_pastFrameCount = 0;
   103   uint64_t m_futureFrameCount = 0;
   104   unsigned int m_playTimeMs = 0;
   105   unsigned int m_totalTimeMs = 0;
   106   unsigned int m_cacheTimeMs = 0;
 Renders video frames provided by the game loop. 
Definition: RPRenderManager.h:67
Class to send messages to the GUI, if a GUI is present. 
Definition: GUIGameMessenger.h:25
Definition: IPlayback.h:17
Interface between Kodi and Game add-ons. 
Definition: GameClient.h:116
Definition: GameLoop.h:20
Definition: AudioDecoder.h:18
Definition: Observer.h:31
DateTime class, which uses FileTime as it's base. 
Definition: XBDateTime.h:63
Definition: GameLoop.h:36
Definition: Observer.h:44
Definition: ReversiblePlayback.h:38