kodi
IMemoryStream.h
1 /*
2  * Copyright (C) 2016-2018 Team Kodi
3  * This file is part of Kodi - https://kodi.tv
4  *
5  * SPDX-License-Identifier: GPL-2.0-or-later
6  * See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include <stddef.h>
12 #include <stdint.h>
13 
14 namespace KODI
15 {
16 namespace RETRO
17 {
44 {
45 public:
46  virtual ~IMemoryStream() = default;
47 
54  virtual void Init(size_t frameSize, uint64_t maxFrameCount) = 0;
55 
59  virtual void Reset() = 0;
60 
64  virtual size_t FrameSize() const = 0;
65 
69  virtual uint64_t MaxFrameCount() const = 0;
70 
76  virtual void SetMaxFrameCount(uint64_t maxFrameCount) = 0;
77 
84  virtual uint8_t* BeginFrame() = 0;
85 
90  virtual void SubmitFrame() = 0;
91 
100  virtual const uint8_t* CurrentFrame() const = 0;
101 
108  virtual uint64_t FutureFramesAvailable() const = 0;
109 
115  virtual uint64_t AdvanceFrames(uint64_t frameCount) = 0;
116 
120  virtual uint64_t PastFramesAvailable() const = 0;
121 
127  virtual uint64_t RewindFrames(uint64_t frameCount) = 0;
128 
134  virtual uint64_t GetFrameCounter() const = 0;
135 
141  virtual void SetFrameCounter(uint64_t frameCount) = 0;
142 };
143 } // namespace RETRO
144 } // namespace KODI
virtual const uint8_t * CurrentFrame() const =0
Get a pointer to the current frame.
virtual uint64_t MaxFrameCount() const =0
Return the current max frame count.
virtual uint64_t GetFrameCounter() const =0
Get the total number of frames played until the current frame.
virtual void SubmitFrame()=0
Indicate that a frame of size FrameSize() has been written to the location returned from BeginFrame()...
virtual uint8_t * BeginFrame()=0
Definition: AudioDecoder.h:18
virtual void SetFrameCounter(uint64_t frameCount)=0
Set the total number of frames played until the current frame.
virtual uint64_t PastFramesAvailable() const =0
Return the number of frames behind the current frame.
virtual void SetMaxFrameCount(uint64_t maxFrameCount)=0
Update the max frame count.
virtual void Init(size_t frameSize, uint64_t maxFrameCount)=0
Initialize memory stream.
Stream of serialized states from game clients.
Definition: IMemoryStream.h:43
virtual uint64_t RewindFrames(uint64_t frameCount)=0
Seek backwards the specified number of frames.
virtual size_t FrameSize() const =0
Return the frame size passed to Init()
virtual uint64_t FutureFramesAvailable() const =0
Return the number of frames ahead of the current frame.
virtual uint64_t AdvanceFrames(uint64_t frameCount)=0
Seek ahead the specified number of frames.
virtual void Reset()=0
Free any resources used by this stream.