4#ifndef YAZE_APP_EMU_AUDIO_AUDIO_BACKEND_H
5#define YAZE_APP_EMU_AUDIO_AUDIO_BACKEND_H
61 virtual bool QueueSamples(
const int16_t* samples,
int num_samples) = 0;
62 virtual bool QueueSamples(
const float* samples,
int num_samples) = 0;
64 int channels,
int native_rate) {
98 void Pause()
override;
100 void Clear()
override;
102 bool QueueSamples(
const int16_t* samples,
int num_samples)
override;
103 bool QueueSamples(
const float* samples,
int num_samples)
override;
105 int channels,
int native_rate)
override;
115 int channels)
override;
Factory for creating audio backends.
static std::unique_ptr< IAudioBackend > Create(BackendType type)
Abstract audio backend interface.
virtual std::string GetBackendName() const =0
virtual bool QueueSamples(const float *samples, int num_samples)=0
virtual void SetVolume(float volume)=0
virtual bool Initialize(const AudioConfig &config)=0
virtual bool QueueSamplesNative(const int16_t *samples, int frames_per_channel, int channels, int native_rate)
virtual void SetAudioStreamResampling(bool enable, int native_rate, int channels)
virtual AudioStatus GetStatus() const =0
virtual bool SupportsAudioStream() const
virtual bool IsInitialized() const =0
virtual void Shutdown()=0
virtual ~IAudioBackend()=default
virtual AudioConfig GetConfig() const =0
virtual float GetVolume() const =0
virtual bool QueueSamples(const int16_t *samples, int num_samples)=0
SDL2 audio backend implementation.
AudioConfig GetConfig() const override
SDL_AudioFormat device_format_
bool SupportsAudioStream() const override
void SetVolume(float volume) override
bool Initialize(const AudioConfig &config) override
~SDL2AudioBackend() override
bool IsInitialized() const override
std::vector< int16_t > stream_buffer_
bool audio_stream_enabled_
std::string GetBackendName() const override
SDL2AudioBackend()=default
SDL_AudioStream * audio_stream_
AudioStatus GetStatus() const override
float GetVolume() const override
bool QueueSamplesNative(const int16_t *samples, int frames_per_channel, int channels, int native_rate) override
bool QueueSamples(const int16_t *samples, int num_samples) override
void SetAudioStreamResampling(bool enable, int native_rate, int channels) override
Main namespace for the application.