mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-23 14:19:46 -06:00
Use Common::Flag and Common::Event when possible
Replaces old and simple usages of std::atomic<bool> with Common::Flag (which was introduced after the initial usage), so it's clear that the variable is a flag and because Common::Flag is well tested. This also replaces the ready logic in WiimoteReal with Common::Event since it was basically just unnecessarily reimplementing Common::Event.
This commit is contained in:
@ -34,7 +34,7 @@ void AOSound::SoundLoop()
|
||||
|
||||
buf_size = format.bits / 8 * format.channels * format.rate;
|
||||
|
||||
while (m_run_thread.load())
|
||||
while (m_run_thread.IsSet())
|
||||
{
|
||||
m_mixer->Mix(realtimeBuffer, numBytesToRender >> 2);
|
||||
|
||||
@ -49,7 +49,7 @@ void AOSound::SoundLoop()
|
||||
|
||||
bool AOSound::Start()
|
||||
{
|
||||
m_run_thread.store(true);
|
||||
m_run_thread.Set();
|
||||
memset(realtimeBuffer, 0, sizeof(realtimeBuffer));
|
||||
|
||||
thread = std::thread(&AOSound::SoundLoop, this);
|
||||
@ -63,7 +63,7 @@ void AOSound::Update()
|
||||
|
||||
void AOSound::Stop()
|
||||
{
|
||||
m_run_thread.store(false);
|
||||
m_run_thread.Clear();
|
||||
soundSyncEvent.Set();
|
||||
|
||||
{
|
||||
|
@ -4,7 +4,6 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <atomic>
|
||||
#include <mutex>
|
||||
#include <thread>
|
||||
|
||||
@ -20,7 +19,7 @@ class AOSound final : public SoundStream
|
||||
{
|
||||
#if defined(HAVE_AO) && HAVE_AO
|
||||
std::thread thread;
|
||||
std::atomic<bool> m_run_thread;
|
||||
Common::Flag m_run_thread;
|
||||
std::mutex soundCriticalSection;
|
||||
Common::Event soundSyncEvent;
|
||||
|
||||
|
@ -25,7 +25,7 @@ static soundtouch::SoundTouch soundTouch;
|
||||
//
|
||||
bool OpenALStream::Start()
|
||||
{
|
||||
m_run_thread.store(true);
|
||||
m_run_thread.Set();
|
||||
bool bReturn = false;
|
||||
|
||||
ALDeviceList pDeviceList;
|
||||
@ -75,7 +75,7 @@ bool OpenALStream::Start()
|
||||
|
||||
void OpenALStream::Stop()
|
||||
{
|
||||
m_run_thread.store(false);
|
||||
m_run_thread.Clear();
|
||||
// kick the thread if it's waiting
|
||||
soundSyncEvent.Set();
|
||||
|
||||
@ -207,7 +207,7 @@ void OpenALStream::SoundLoop()
|
||||
soundTouch.setSetting(SETTING_SEEKWINDOW_MS, 28);
|
||||
soundTouch.setSetting(SETTING_OVERLAP_MS, 12);
|
||||
|
||||
while (m_run_thread.load())
|
||||
while (m_run_thread.IsSet())
|
||||
{
|
||||
// num_samples_to_render in this update - depends on SystemTimers::AUDIO_DMA_PERIOD.
|
||||
const u32 stereo_16_bit_size = 4;
|
||||
|
@ -4,7 +4,6 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <atomic>
|
||||
#include <thread>
|
||||
|
||||
#include "AudioCommon/SoundStream.h"
|
||||
@ -68,7 +67,7 @@ public:
|
||||
static bool isValid() { return true; }
|
||||
private:
|
||||
std::thread thread;
|
||||
std::atomic<bool> m_run_thread;
|
||||
Common::Flag m_run_thread;
|
||||
|
||||
Common::Event soundSyncEvent;
|
||||
|
||||
|
@ -27,7 +27,7 @@ bool PulseAudio::Start()
|
||||
|
||||
NOTICE_LOG(AUDIO, "PulseAudio backend using %d channels", m_channels);
|
||||
|
||||
m_run_thread = true;
|
||||
m_run_thread.Set();
|
||||
m_thread = std::thread(&PulseAudio::SoundLoop, this);
|
||||
|
||||
// Initialize DPL2 parameters
|
||||
@ -38,7 +38,7 @@ bool PulseAudio::Start()
|
||||
|
||||
void PulseAudio::Stop()
|
||||
{
|
||||
m_run_thread = false;
|
||||
m_run_thread.Clear();
|
||||
m_thread.join();
|
||||
}
|
||||
|
||||
@ -54,7 +54,7 @@ void PulseAudio::SoundLoop()
|
||||
|
||||
if (PulseInit())
|
||||
{
|
||||
while (m_run_thread.load() && m_pa_connected == 1 && m_pa_error >= 0)
|
||||
while (m_run_thread.IsSet() && m_pa_connected == 1 && m_pa_error >= 0)
|
||||
m_pa_error = pa_mainloop_iterate(m_pa_ml, 1, nullptr);
|
||||
|
||||
if (m_pa_error < 0)
|
||||
|
@ -8,10 +8,9 @@
|
||||
#include <pulse/pulseaudio.h>
|
||||
#endif
|
||||
|
||||
#include <atomic>
|
||||
|
||||
#include "AudioCommon/SoundStream.h"
|
||||
#include "Common/CommonTypes.h"
|
||||
#include "Common/Flag.h"
|
||||
#include "Common/Thread.h"
|
||||
|
||||
class PulseAudio final : public SoundStream
|
||||
@ -41,7 +40,7 @@ private:
|
||||
static void UnderflowCallback(pa_stream* s, void* userdata);
|
||||
|
||||
std::thread m_thread;
|
||||
std::atomic<bool> m_run_thread;
|
||||
Common::Flag m_run_thread;
|
||||
|
||||
bool m_stereo; // stereo, else surround
|
||||
int m_bytespersample;
|
||||
|
Reference in New Issue
Block a user