// Copyright 2013 Dolphin Emulator Project // Licensed under GPLv2 // Refer to the license.txt file included. #pragma once #include #include #include #include "AudioCommon/SoundStream.h" #include "Common/Event.h" #include "Common/Thread.h" #if defined(HAVE_AO) && HAVE_AO #include #endif class AOSound final : public SoundStream { #if defined(HAVE_AO) && HAVE_AO std::thread thread; std::atomic m_run_thread; std::mutex soundCriticalSection; Common::Event soundSyncEvent; int buf_size; ao_device *device; ao_sample_format format; int default_driver; short realtimeBuffer[1024 * 1024]; public: bool Start() override; void SoundLoop() override; void Stop() override; void Update() override; static bool isValid() { return true; } #endif };