xbmc
IGameClientStream.h
1 /*
2  * Copyright (C) 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 struct game_stream_buffer;
12 struct game_stream_packet;
14 
15 namespace KODI
16 {
17 namespace RETRO
18 {
19 class IRetroPlayerStream;
20 }
21 
22 namespace GAME
23 {
24 
26 {
27 public:
28  virtual ~IGameClientStream() = default;
29 
37  virtual bool OpenStream(RETRO::IRetroPlayerStream* stream,
38  const game_stream_properties& properties) = 0;
39 
43  virtual void CloseStream() = 0;
44 
56  virtual bool GetBuffer(unsigned int width, unsigned int height, game_stream_buffer& buffer)
57  {
58  return false;
59  }
60 
66  virtual void ReleaseBuffer(game_stream_buffer& buffer) {}
67 
73  virtual void AddData(const game_stream_packet& packet) = 0;
74 };
75 
76 } // namespace GAME
77 } // namespace KODI
virtual bool GetBuffer(unsigned int width, unsigned int height, game_stream_buffer &buffer)
Get a buffer for zero-copy stream data.
Definition: IGameClientStream.h:56
Definition: IGameClientStream.h:25
Stream packet and ephemeral metadata
Definition: game.h:528
Controller configuration window.
Definition: AudioDecoder.h:18
Stream buffers for hardware rendering and zero-copy support
Definition: game.h:506
Immutable stream metadata
Definition: game.h:482
virtual void ReleaseBuffer(game_stream_buffer &buffer)
Free an allocated buffer.
Definition: IGameClientStream.h:66
Definition: IRetroPlayerStream.h:30