kodi
BasicMemoryStream.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 "IMemoryStream.h"
12 
13 #include <memory>
14 
15 namespace KODI
16 {
17 namespace RETRO
18 {
20 {
21 public:
23 
24  ~CBasicMemoryStream() override = default;
25 
26  // implementation of IMemoryStream
27  void Init(size_t frameSize, uint64_t maxFrameCount) override;
28  void Reset() override;
29  size_t FrameSize() const override { return m_frameSize; }
30  uint64_t MaxFrameCount() const override { return 1; }
31  void SetMaxFrameCount(uint64_t maxFrameCount) override {}
32  uint8_t* BeginFrame() override;
33  void SubmitFrame() override;
34  const uint8_t* CurrentFrame() const override;
35  uint64_t FutureFramesAvailable() const override { return 0; }
36  uint64_t AdvanceFrames(uint64_t frameCount) override { return 0; }
37  uint64_t PastFramesAvailable() const override { return 0; }
38  uint64_t RewindFrames(uint64_t frameCount) override { return 0; }
39  uint64_t GetFrameCounter() const override { return 0; }
40  void SetFrameCounter(uint64_t frameCount) override{};
41 
42 private:
43  size_t m_frameSize;
44  std::unique_ptr<uint8_t[]> m_frameBuffer;
45  bool m_bHasFrame;
46 };
47 } // namespace RETRO
48 } // namespace KODI
uint64_t AdvanceFrames(uint64_t frameCount) override
Seek ahead the specified number of frames.
Definition: BasicMemoryStream.h:36
uint8_t * BeginFrame() override
Definition: BasicMemoryStream.cpp:33
size_t FrameSize() const override
Return the frame size passed to Init()
Definition: BasicMemoryStream.h:29
uint64_t GetFrameCounter() const override
Get the total number of frames played until the current frame.
Definition: BasicMemoryStream.h:39
uint64_t PastFramesAvailable() const override
Return the number of frames behind the current frame.
Definition: BasicMemoryStream.h:37
void SetFrameCounter(uint64_t frameCount) override
Set the total number of frames played until the current frame.
Definition: BasicMemoryStream.h:40
Definition: AudioDecoder.h:18
Definition: BasicMemoryStream.h:19
void Reset() override
Free any resources used by this stream.
Definition: BasicMemoryStream.cpp:26
uint64_t FutureFramesAvailable() const override
Return the number of frames ahead of the current frame.
Definition: BasicMemoryStream.h:35
void SubmitFrame() override
Indicate that a frame of size FrameSize() has been written to the location returned from BeginFrame()...
Definition: BasicMemoryStream.cpp:46
Stream of serialized states from game clients.
Definition: IMemoryStream.h:43
uint64_t RewindFrames(uint64_t frameCount) override
Seek backwards the specified number of frames.
Definition: BasicMemoryStream.h:38
void SetMaxFrameCount(uint64_t maxFrameCount) override
Update the max frame count.
Definition: BasicMemoryStream.h:31
const uint8_t * CurrentFrame() const override
Get a pointer to the current frame.
Definition: BasicMemoryStream.cpp:52
void Init(size_t frameSize, uint64_t maxFrameCount) override
Initialize memory stream.
Definition: BasicMemoryStream.cpp:19
uint64_t MaxFrameCount() const override
Return the current max frame count.
Definition: BasicMemoryStream.h:30