summaryrefslogtreecommitdiff
path: root/Source/Core/AudioCommon/CubebStream.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/AudioCommon/CubebStream.cpp')
-rw-r--r--Source/Core/AudioCommon/CubebStream.cpp32
1 files changed, 13 insertions, 19 deletions
diff --git a/Source/Core/AudioCommon/CubebStream.cpp b/Source/Core/AudioCommon/CubebStream.cpp
index a12f0fda4b..754db1d957 100644
--- a/Source/Core/AudioCommon/CubebStream.cpp
+++ b/Source/Core/AudioCommon/CubebStream.cpp
@@ -32,7 +32,7 @@ void CubebStream::StateCallback(cubeb_stream* stream, void* user_data, cubeb_sta
{
}
-bool CubebStream::Start()
+bool CubebStream::Init()
{
m_ctx = CubebUtils::GetContext();
if (!m_ctx)
@@ -60,28 +60,22 @@ bool CubebStream::Start()
ERROR_LOG(AUDIO, "Error getting minimum latency");
INFO_LOG(AUDIO, "Minimum latency: %i frames", minimum_latency);
- if (cubeb_stream_init(m_ctx.get(), &m_stream, "Dolphin Audio Output", nullptr, nullptr, nullptr,
- &params, std::max(BUFFER_SAMPLES, minimum_latency), DataCallback,
- StateCallback, this) != CUBEB_OK)
- {
- ERROR_LOG(AUDIO, "Error initializing cubeb stream");
- return false;
- }
+ return cubeb_stream_init(m_ctx.get(), &m_stream, "Dolphin Audio Output", nullptr, nullptr,
+ nullptr, &params, std::max(BUFFER_SAMPLES, minimum_latency),
+ DataCallback, StateCallback, this) == CUBEB_OK;
+}
- if (cubeb_stream_start(m_stream) != CUBEB_OK)
- {
- ERROR_LOG(AUDIO, "Error starting cubeb stream");
- return false;
- }
- return true;
+bool CubebStream::SetRunning(bool running)
+{
+ if (running)
+ return cubeb_stream_start(m_stream) == CUBEB_OK;
+ else
+ return cubeb_stream_stop(m_stream) == CUBEB_OK;
}
-void CubebStream::Stop()
+CubebStream::~CubebStream()
{
- if (cubeb_stream_stop(m_stream) != CUBEB_OK)
- {
- ERROR_LOG(AUDIO, "Error stopping cubeb stream");
- }
+ SetRunning(false);
cubeb_stream_destroy(m_stream);
m_ctx.reset();
}