summaryrefslogtreecommitdiff
path: root/Source/Core/AudioCommon/CubebStream.cpp
diff options
context:
space:
mode:
authorAdmiral H. Curtiss <pikachu025@gmail.com>2022-06-18 00:39:41 +0200
committerAdmiral H. Curtiss <pikachu025@gmail.com>2022-11-26 05:05:56 +0100
commitca10e92ab92afeb4cb6d3ac935cf86767ab469eb (patch)
tree4830494d6220750b7c0bf1187a22fdf2d58e6d4f /Source/Core/AudioCommon/CubebStream.cpp
parent59b1419a8ef2912f349c1bd3984bc85cc21c6ff1 (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.cpp20
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); });
}