AudioStream: Replace buffer queue with ring buffer
Should achieve a decent overall minimum latency reduction.
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
#pragma once
|
||||
#include "common/audio_stream.h"
|
||||
#include "cubeb/cubeb.h"
|
||||
#include <atomic>
|
||||
#include <cstdint>
|
||||
|
||||
class CubebAudioStream final : public AudioStream
|
||||
@@ -9,13 +10,15 @@ public:
|
||||
CubebAudioStream();
|
||||
~CubebAudioStream();
|
||||
|
||||
void SetOutputVolume(u32 volume) override;
|
||||
|
||||
protected:
|
||||
bool IsOpen() const { return m_cubeb_stream != nullptr; }
|
||||
|
||||
bool OpenDevice() override;
|
||||
void PauseDevice(bool paused) override;
|
||||
void CloseDevice() override;
|
||||
void BufferAvailable() override;
|
||||
void FramesAvailable() override;
|
||||
|
||||
void DestroyContext();
|
||||
|
||||
@@ -26,6 +29,7 @@ protected:
|
||||
cubeb* m_cubeb_context = nullptr;
|
||||
cubeb_stream* m_cubeb_stream = nullptr;
|
||||
bool m_paused = true;
|
||||
std::atomic_bool m_output_volume_changed{ false };
|
||||
|
||||
#ifdef WIN32
|
||||
bool m_com_initialized_by_us = false;
|
||||
|
||||
Reference in New Issue
Block a user