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;
102 uint64_t m_pastFrameCount;
103 uint64_t m_futureFrameCount;
104 unsigned int m_playTimeMs;
105 unsigned int m_totalTimeMs;
106 unsigned int m_cacheTimeMs;
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:115
Definition: GameLoop.h:20
Controller configuration window.
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