summaryrefslogtreecommitdiff
path: root/Source/Core/AudioCommon/CubebStream.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/AudioCommon/CubebStream.h')
-rw-r--r--Source/Core/AudioCommon/CubebStream.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/Source/Core/AudioCommon/CubebStream.h b/Source/Core/AudioCommon/CubebStream.h
index 1c95fd50d8..4bc0070e88 100644
--- a/Source/Core/AudioCommon/CubebStream.h
+++ b/Source/Core/AudioCommon/CubebStream.h
@@ -16,6 +16,8 @@
#include <cubeb/cubeb.h>
#endif
+#include "Core/Config/MainSettings.h"
+
class CubebStream final : public SoundStream
{
#ifdef HAVE_CUBEB
@@ -38,11 +40,19 @@ private:
std::size_t wiimote_index;
};
+ struct GBAStreamData
+ {
+ CubebStream* self;
+ std::size_t gba_index;
+ };
+
bool m_stereo = false;
std::shared_ptr<cubeb> m_ctx;
cubeb_stream* m_stream = nullptr;
std::array<WiimoteStreamData, 4> m_wiimote_stream_data{};
std::array<cubeb_stream*, 4> m_wiimote_streams{};
+ std::array<GBAStreamData, Config::GBA_SPEAKER_COUNT> m_gba_stream_data{};
+ std::array<cubeb_stream*, Config::GBA_SPEAKER_COUNT> m_gba_streams{};
std::vector<short> m_short_buffer;
std::vector<float> m_floatstereo_buffer;
@@ -60,5 +70,8 @@ private:
const void* /*input_buffer*/, void* output_buffer,
long num_frames);
static void WiimoteStateCallback(cubeb_stream* stream, void* user_data, cubeb_state state);
+ static long GBADataCallback(cubeb_stream* stream, void* user_data, const void* /*input_buffer*/,
+ void* output_buffer, long num_frames);
+ static void GBAStateCallback(cubeb_stream* stream, void* user_data, cubeb_state state);
#endif
};