2019-12-31 21:02:35 +01:00
|
|
|
#pragma once
|
|
|
|
|
2019-06-27 18:39:42 +01:00
|
|
|
#include "tools/PsfPlayer/Source/SoundHandler.h"
|
2019-12-31 21:02:35 +01:00
|
|
|
|
2019-06-27 19:57:15 +01:00
|
|
|
#include <deque>
|
|
|
|
#include <vector>
|
2019-07-08 20:06:21 +01:00
|
|
|
#include <mutex>
|
2019-06-27 19:57:15 +01:00
|
|
|
|
2019-06-27 18:39:42 +01:00
|
|
|
class CSH_LibreAudio : public CSoundHandler
|
2019-12-31 21:02:35 +01:00
|
|
|
{
|
|
|
|
public:
|
|
|
|
CSH_LibreAudio() = default;
|
|
|
|
|
2019-06-27 18:39:42 +01:00
|
|
|
static CSoundHandler* HandlerFactory();
|
2019-12-31 21:02:35 +01:00
|
|
|
|
2019-06-27 18:39:42 +01:00
|
|
|
void Reset() override;
|
|
|
|
void Write(int16*, unsigned int, unsigned int) override;
|
|
|
|
bool HasFreeBuffers() override;
|
|
|
|
void RecycleBuffers() override;
|
2019-06-27 19:57:15 +01:00
|
|
|
|
|
|
|
void ProcessBuffer();
|
|
|
|
|
|
|
|
private:
|
2019-06-28 18:54:19 +01:00
|
|
|
std::vector<int16> m_buffer;
|
2019-07-08 20:06:21 +01:00
|
|
|
std::mutex m_buffer_lock;
|
2019-12-31 21:02:35 +01:00
|
|
|
};
|