Mesen-X/Core/HistoryViewer.h

38 lines
953 B
C
Raw Normal View History

2018-07-11 18:07:13 -04:00
#pragma once
#include "stdafx.h"
#include <deque>
#include "IInputProvider.h"
#include "RewindData.h"
class Console;
class HistoryViewer : public IInputProvider
{
private:
static constexpr int32_t BufferSize = 30; //Number of frames between each save state
shared_ptr<Console> _console;
std::deque<RewindData> _history;
uint32_t _position;
uint32_t _pollCounter;
public:
HistoryViewer(shared_ptr<Console> console);
virtual ~HistoryViewer();
2018-07-11 18:07:13 -04:00
void SetHistoryData(std::deque<RewindData> &history);
uint32_t GetHistoryLength();
void GetHistorySegments(uint32_t * segmentBuffer, uint32_t &bufferSize);
2018-07-11 18:07:13 -04:00
uint32_t GetPosition();
void SeekTo(uint32_t seekPosition);
bool SaveMovie(string movieFile, uint32_t startPosition, uint32_t endPosition);
void ResumeGameplay(shared_ptr<Console> console, uint32_t resumePosition);
2018-07-11 18:07:13 -04:00
void ProcessEndOfFrame();
// Inherited via IInputProvider
bool SetInput(BaseControlDevice * device) override;
2018-07-11 18:07:13 -04:00
};