diff options
Diffstat (limited to 'Source/Core/AudioCommon/CubebStream.h')
| -rw-r--r-- | Source/Core/AudioCommon/CubebStream.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/Source/Core/AudioCommon/CubebStream.h b/Source/Core/AudioCommon/CubebStream.h new file mode 100644 index 0000000000..32434affd1 --- /dev/null +++ b/Source/Core/AudioCommon/CubebStream.h @@ -0,0 +1,32 @@ +// Copyright 2017 Dolphin Emulator Project +// Licensed under GPLv2+ +// Refer to the license.txt file included. + +#pragma once + +#include <cstddef> +#include <memory> + +#include "AudioCommon/SoundStream.h" + +#include <cubeb/cubeb.h> + +class CubebStream final : public SoundStream +{ +public: + bool Start() override; + void Stop() override; + void SetVolume(int) override; + +private: + bool m_stereo = false; + cubeb* m_ctx = nullptr; + cubeb_stream* m_stream = nullptr; + + std::vector<short> m_short_buffer; + std::vector<float> m_floatstereo_buffer; + + static long DataCallback(cubeb_stream* stream, void* user_data, const void* /*input_buffer*/, + void* output_buffer, long num_frames); + static void StateCallback(cubeb_stream* stream, void* user_data, cubeb_state state); +}; |
