xbmc
RetroPlayerAudio.h
1 /*
2  * Copyright (C) 2012-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 "IRetroPlayerStream.h"
12 #include "cores/AudioEngine/Interfaces/AE.h"
13 
14 #include <memory>
15 
16 class IAEStream;
17 
18 namespace KODI
19 {
20 namespace RETRO
21 {
22 class CRPProcessInfo;
23 
25 {
26  AudioStreamProperties(PCMFormat format, double sampleRate, AudioChannelMap channelMap)
27  : format(format), sampleRate(sampleRate), channelMap(channelMap)
28  {
29  }
30 
31  PCMFormat format;
32  double sampleRate;
33  AudioChannelMap channelMap;
34 };
35 
37 {
38  AudioStreamPacket(const uint8_t* data, size_t size) : data(data), size(size) {}
39 
40  const uint8_t* data;
41  size_t size;
42 };
43 
45 {
46 public:
47  explicit CRetroPlayerAudio(CRPProcessInfo& processInfo);
48  ~CRetroPlayerAudio() override;
49 
50  void Enable(bool bEnabled) { m_bAudioEnabled = bEnabled; }
51 
52  // implementation of IRetroPlayerStream
53  bool OpenStream(const StreamProperties& properties) override;
54  bool GetStreamBuffer(unsigned int width, unsigned int height, StreamBuffer& buffer) override
55  {
56  return false;
57  }
58  void AddStreamData(const StreamPacket& packet) override;
59  void CloseStream() override;
60 
61 private:
62  CRPProcessInfo& m_processInfo;
63  IAE::StreamPtr m_pAudioStream;
64  bool m_bAudioEnabled;
65 };
66 } // namespace RETRO
67 } // namespace KODI
Definition: RetroPlayerAudio.h:24
IAEStream Stream Interface for streaming audio.
Definition: AEStream.h:52
Controller configuration window.
Definition: AudioDecoder.h:18
Definition: IRetroPlayerStream.h:26
Definition: RetroPlayerAudio.h:36
Definition: RetroPlayerAudio.h:44
Definition: IRetroPlayerStream.h:22
Player process info.
Definition: RPProcessInfo.h:77
Definition: IRetroPlayerStream.h:18
bool GetStreamBuffer(unsigned int width, unsigned int height, StreamBuffer &buffer) override
Get a buffer for zero-copy stream data.
Definition: RetroPlayerAudio.h:54
Definition: IRetroPlayerStream.h:30