Emu?
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

34 lines
734 B

/* SdlAudio.h
*
* An SDL2 audio implementation.
*/
#pragma once
#include <SDL.h>
#include "Audio/PlipAudio.h"
namespace PlipSdl {
class SdlAudio : public Plip::PlipAudio {
public:
SdlAudio();
~SdlAudio();
void DequeueAll() override;
void Enqueue(std::vector<float> buffer) override;
int GetBufferSize() override;
uintmax_t GetQueueSize() override;
static const int SampleLength = 4096;
private:
void ConvertQueue(void *data, int size);
void DirectQueue(void *data, int size);
SDL_AudioCVT m_cvt {};
SDL_AudioDeviceID m_device = 0;
SDL_AudioSpec m_spec {};
void (SdlAudio::*m_playFunc)(void*, int);
};
}