diff options
| author | Mat M <mathew1800@gmail.com> | 2017-05-27 21:39:03 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-05-27 21:39:03 -0400 |
| commit | 905232fd2b0f0545e524c4c34859bf62576e43f5 (patch) | |
| tree | 88d01f6fe28d6c1312eb19c68693aa3d728f66bf /Source/Core/AudioCommon/CubebStream.h | |
| parent | d4faa099d95edcc408d90fefb601999b1481d308 (diff) | |
| parent | d416cbd9ed5efb391ad65c36ded74c17ab713622 (diff) | |
Merge pull request #5313 from ligfx/addcubeb
Add CubebStream output backend and replace PortAudio for microphones
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..d0b153975e --- /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; + std::shared_ptr<cubeb> m_ctx; + 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); +}; |
