diff options
| author | Admiral H. Curtiss <pikachu025@gmail.com> | 2022-06-18 00:39:41 +0200 |
|---|---|---|
| committer | Admiral H. Curtiss <pikachu025@gmail.com> | 2022-11-26 05:05:56 +0100 |
| commit | ca10e92ab92afeb4cb6d3ac935cf86767ab469eb (patch) | |
| tree | 4830494d6220750b7c0bf1187a22fdf2d58e6d4f /Source/Core/AudioCommon/CubebStream.cpp | |
| parent | 59b1419a8ef2912f349c1bd3984bc85cc21c6ff1 (diff) | |
Core: Abide by COM MTA requirement for cubeb on Windows. Partially based on https://github.com/dolphin-emu/dolphin/pull/8920#discussion_r459746604
Co-authored-by: Michael M <mchtly@gmail.com>
Diffstat (limited to 'Source/Core/AudioCommon/CubebStream.cpp')
| -rw-r--r-- | Source/Core/AudioCommon/CubebStream.cpp | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/Source/Core/AudioCommon/CubebStream.cpp b/Source/Core/AudioCommon/CubebStream.cpp index 16ec40fcda..afef4f467e 100644 --- a/Source/Core/AudioCommon/CubebStream.cpp +++ b/Source/Core/AudioCommon/CubebStream.cpp @@ -66,20 +66,26 @@ bool CubebStream::Init() bool CubebStream::SetRunning(bool running) { - if (running) - return cubeb_stream_start(m_stream) == CUBEB_OK; - else - return cubeb_stream_stop(m_stream) == CUBEB_OK; + bool return_value = false; + CubebUtils::RunInCubebContext([&] { + if (running) + return_value = cubeb_stream_start(m_stream) == CUBEB_OK; + else + return_value = cubeb_stream_stop(m_stream) == CUBEB_OK; + }); + return return_value; } CubebStream::~CubebStream() { - SetRunning(false); - cubeb_stream_destroy(m_stream); + CubebUtils::RunInCubebContext([&] { + SetRunning(false); + cubeb_stream_destroy(m_stream); + }); m_ctx.reset(); } void CubebStream::SetVolume(int volume) { - cubeb_stream_set_volume(m_stream, volume / 100.0f); + CubebUtils::RunInCubebContext([&] { cubeb_stream_set_volume(m_stream, volume / 100.0f); }); } |
