2017-06-27 09:46:10 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "Common/CommonWindows.h"
|
|
|
|
#include "Core/ConfigValues.h"
|
|
|
|
|
2021-07-09 23:22:34 +00:00
|
|
|
// Always 2 channels.
|
|
|
|
typedef int(*StreamCallback)(short *buffer, int numSamples, int bits, int rate);
|
2017-06-27 09:46:10 +00:00
|
|
|
|
|
|
|
// Note that the backend may override the passed in sample rate. The actual sample rate
|
|
|
|
// should be returned by GetSampleRate though.
|
|
|
|
class WindowsAudioBackend {
|
|
|
|
public:
|
|
|
|
WindowsAudioBackend() {}
|
|
|
|
virtual ~WindowsAudioBackend() {}
|
|
|
|
virtual bool Init(HWND window, StreamCallback _callback, int sampleRate) = 0;
|
|
|
|
virtual void Update() {} // Doesn't have to do anything
|
|
|
|
virtual int GetSampleRate() = 0;
|
|
|
|
};
|
|
|
|
|
|
|
|
// Factory
|
|
|
|
WindowsAudioBackend *CreateAudioBackend(AudioBackendType type);
|