SDL2 audio backend implementation. More...
#include <audio_backend.h>


Public Member Functions | |
| SDL2AudioBackend ()=default | |
| ~SDL2AudioBackend () override | |
| bool | Initialize (const AudioConfig &config) override |
| void | Shutdown () override |
| void | Play () override |
| void | Pause () override |
| void | Stop () override |
| void | Clear () override |
| bool | QueueSamples (const int16_t *samples, int num_samples) override |
| bool | QueueSamples (const float *samples, int num_samples) override |
| bool | QueueSamplesNative (const int16_t *samples, int frames_per_channel, int channels, int native_rate) override |
| AudioStatus | GetStatus () const override |
| bool | IsInitialized () const override |
| AudioConfig | GetConfig () const override |
| void | SetVolume (float volume) override |
| float | GetVolume () const override |
| void | SetAudioStreamResampling (bool enable, int native_rate, int channels) override |
| bool | SupportsAudioStream () const override |
| std::string | GetBackendName () const override |
Public Member Functions inherited from yaze::emu::audio::IAudioBackend | |
| virtual | ~IAudioBackend ()=default |
Private Attributes | |
| uint32_t | device_id_ = 0 |
| AudioConfig | config_ |
| bool | initialized_ = false |
| float | volume_ = 1.0f |
| SDL_AudioFormat | device_format_ = AUDIO_S16 |
| int | device_channels_ = 2 |
| int | device_freq_ = 48000 |
| bool | audio_stream_enabled_ = false |
| int | stream_native_rate_ = 0 |
| SDL_AudioStream * | audio_stream_ = nullptr |
| std::vector< int16_t > | stream_buffer_ |
SDL2 audio backend implementation.
Definition at line 89 of file audio_backend.h.
|
default |
|
override |
Definition at line 18 of file audio_backend.cc.
References Shutdown().

|
overridevirtual |
Implements yaze::emu::audio::IAudioBackend.
Definition at line 22 of file audio_backend.cc.
References audio_stream_, audio_stream_enabled_, yaze::emu::audio::AudioConfig::buffer_frames, yaze::emu::audio::AudioConfig::channels, config_, device_channels_, device_format_, device_freq_, device_id_, yaze::emu::audio::AudioConfig::format, initialized_, yaze::emu::audio::INT16, LOG_ERROR, LOG_INFO, LOG_WARN, yaze::emu::audio::AudioConfig::sample_rate, Shutdown(), stream_buffer_, and stream_native_rate_.

|
overridevirtual |
Implements yaze::emu::audio::IAudioBackend.
Definition at line 78 of file audio_backend.cc.
References audio_stream_, audio_stream_enabled_, device_id_, initialized_, LOG_INFO, stream_buffer_, and stream_native_rate_.
Referenced by Initialize(), and ~SDL2AudioBackend().
|
overridevirtual |
Implements yaze::emu::audio::IAudioBackend.
Definition at line 99 of file audio_backend.cc.
References device_id_, and initialized_.
|
overridevirtual |
Implements yaze::emu::audio::IAudioBackend.
Definition at line 104 of file audio_backend.cc.
References device_id_, and initialized_.
|
overridevirtual |
Implements yaze::emu::audio::IAudioBackend.
Definition at line 109 of file audio_backend.cc.
References Clear(), device_id_, and initialized_.

|
overridevirtual |
Implements yaze::emu::audio::IAudioBackend.
Definition at line 115 of file audio_backend.cc.
References audio_stream_, device_id_, and initialized_.
Referenced by Stop().
|
overridevirtual |
Implements yaze::emu::audio::IAudioBackend.
Definition at line 123 of file audio_backend.cc.
References device_id_, initialized_, LOG_ERROR, and volume_.
Referenced by QueueSamples(), and QueueSamplesNative().
|
overridevirtual |
Implements yaze::emu::audio::IAudioBackend.
Definition at line 165 of file audio_backend.cc.
References initialized_, QueueSamples(), and volume_.

|
overridevirtual |
Reimplemented from yaze::emu::audio::IAudioBackend.
Definition at line 178 of file audio_backend.cc.
References audio_stream_, audio_stream_enabled_, yaze::emu::audio::AudioConfig::channels, config_, initialized_, LOG_ERROR, QueueSamples(), SetAudioStreamResampling(), stream_buffer_, and stream_native_rate_.

|
overridevirtual |
Implements yaze::emu::audio::IAudioBackend.
Definition at line 228 of file audio_backend.cc.
References yaze::emu::audio::AudioConfig::channels, config_, device_id_, yaze::emu::audio::AudioConfig::format, yaze::emu::audio::AudioStatus::has_underrun, initialized_, yaze::emu::audio::INT16, yaze::emu::audio::AudioStatus::is_playing, yaze::emu::audio::AudioStatus::queued_bytes, and yaze::emu::audio::AudioStatus::queued_frames.
|
overridevirtual |
Implements yaze::emu::audio::IAudioBackend.
Definition at line 249 of file audio_backend.cc.
References initialized_.
|
overridevirtual |
Implements yaze::emu::audio::IAudioBackend.
Definition at line 253 of file audio_backend.cc.
References config_.
|
overridevirtual |
Implements yaze::emu::audio::IAudioBackend.
Definition at line 302 of file audio_backend.cc.
References volume_.
|
overridevirtual |
Implements yaze::emu::audio::IAudioBackend.
Definition at line 306 of file audio_backend.cc.
References volume_.
|
overridevirtual |
Reimplemented from yaze::emu::audio::IAudioBackend.
Definition at line 257 of file audio_backend.cc.
References audio_stream_, audio_stream_enabled_, yaze::emu::audio::AudioConfig::channels, config_, device_channels_, device_format_, device_freq_, initialized_, LOG_ERROR, stream_buffer_, and stream_native_rate_.
Referenced by QueueSamplesNative().
|
inlineoverridevirtual |
Reimplemented from yaze::emu::audio::IAudioBackend.
Definition at line 116 of file audio_backend.h.
|
inlineoverridevirtual |
Implements yaze::emu::audio::IAudioBackend.
Definition at line 118 of file audio_backend.h.
|
private |
Definition at line 121 of file audio_backend.h.
Referenced by Clear(), GetStatus(), Initialize(), Pause(), Play(), QueueSamples(), Shutdown(), and Stop().
|
private |
Definition at line 122 of file audio_backend.h.
Referenced by GetConfig(), GetStatus(), Initialize(), QueueSamplesNative(), and SetAudioStreamResampling().
|
private |
Definition at line 123 of file audio_backend.h.
Referenced by Clear(), GetStatus(), Initialize(), IsInitialized(), Pause(), Play(), QueueSamples(), QueueSamples(), QueueSamplesNative(), SetAudioStreamResampling(), Shutdown(), and Stop().
|
private |
Definition at line 124 of file audio_backend.h.
Referenced by GetVolume(), QueueSamples(), QueueSamples(), and SetVolume().
|
private |
Definition at line 125 of file audio_backend.h.
Referenced by Initialize(), and SetAudioStreamResampling().
|
private |
Definition at line 126 of file audio_backend.h.
Referenced by Initialize(), and SetAudioStreamResampling().
|
private |
Definition at line 127 of file audio_backend.h.
Referenced by Initialize(), and SetAudioStreamResampling().
|
private |
Definition at line 128 of file audio_backend.h.
Referenced by Initialize(), QueueSamplesNative(), SetAudioStreamResampling(), and Shutdown().
|
private |
Definition at line 129 of file audio_backend.h.
Referenced by Initialize(), QueueSamplesNative(), SetAudioStreamResampling(), and Shutdown().
|
private |
Definition at line 130 of file audio_backend.h.
Referenced by Clear(), Initialize(), QueueSamplesNative(), SetAudioStreamResampling(), and Shutdown().
|
private |
Definition at line 131 of file audio_backend.h.
Referenced by Initialize(), QueueSamplesNative(), SetAudioStreamResampling(), and Shutdown().