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 |
| bool | IsAudioStreamEnabled () 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 |
| int | call_count_ = 0 |
| 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 95 of file audio_backend.h.
|
default |
|
override |
Definition at line 78 of file audio_backend.cc.
References Shutdown().

|
overridevirtual |
Implements yaze::emu::audio::IAudioBackend.
Definition at line 82 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 156 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 178 of file audio_backend.cc.
References device_id_, initialized_, LOG_INFO, and LOG_WARN.
|
overridevirtual |
Implements yaze::emu::audio::IAudioBackend.
Definition at line 190 of file audio_backend.cc.
References device_id_, and initialized_.
|
overridevirtual |
Implements yaze::emu::audio::IAudioBackend.
Definition at line 196 of file audio_backend.cc.
References Clear(), device_id_, and initialized_.

|
overridevirtual |
Implements yaze::emu::audio::IAudioBackend.
Definition at line 203 of file audio_backend.cc.
References audio_stream_, device_id_, initialized_, and LOG_INFO.
Referenced by Stop().
|
overridevirtual |
Implements yaze::emu::audio::IAudioBackend.
Definition at line 215 of file audio_backend.cc.
References device_id_, initialized_, LOG_DEBUG, LOG_ERROR, and volume_.
Referenced by QueueSamples(), and QueueSamplesNative().
|
overridevirtual |
Implements yaze::emu::audio::IAudioBackend.
Definition at line 272 of file audio_backend.cc.
References initialized_, QueueSamples(), and volume_.

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

|
overridevirtual |
Implements yaze::emu::audio::IAudioBackend.
Definition at line 382 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, LOG_WARN, yaze::emu::audio::AudioStatus::queued_bytes, and yaze::emu::audio::AudioStatus::queued_frames.
|
overridevirtual |
Implements yaze::emu::audio::IAudioBackend.
Definition at line 410 of file audio_backend.cc.
References initialized_.
|
overridevirtual |
Implements yaze::emu::audio::IAudioBackend.
Definition at line 414 of file audio_backend.cc.
References config_.
|
overridevirtual |
Implements yaze::emu::audio::IAudioBackend.
Definition at line 467 of file audio_backend.cc.
References volume_.
|
overridevirtual |
Implements yaze::emu::audio::IAudioBackend.
Definition at line 471 of file audio_backend.cc.
References volume_.
|
overridevirtual |
Reimplemented from yaze::emu::audio::IAudioBackend.
Definition at line 418 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, LOG_INFO, stream_buffer_, and stream_native_rate_.
Referenced by QueueSamplesNative().
|
inlineoverridevirtual |
Reimplemented from yaze::emu::audio::IAudioBackend.
Definition at line 122 of file audio_backend.h.
|
overridevirtual |
Reimplemented from yaze::emu::audio::IAudioBackend.
Definition at line 475 of file audio_backend.cc.
References audio_stream_, and audio_stream_enabled_.
|
inlineoverridevirtual |
Implements yaze::emu::audio::IAudioBackend.
Definition at line 125 of file audio_backend.h.
|
private |
Definition at line 128 of file audio_backend.h.
Referenced by Clear(), GetStatus(), Initialize(), Pause(), Play(), QueueSamples(), QueueSamplesNative(), Shutdown(), and Stop().
|
private |
Definition at line 129 of file audio_backend.h.
Referenced by GetConfig(), GetStatus(), Initialize(), QueueSamplesNative(), and SetAudioStreamResampling().
|
private |
Definition at line 130 of file audio_backend.h.
Referenced by Clear(), GetStatus(), Initialize(), IsInitialized(), Pause(), Play(), QueueSamples(), QueueSamples(), QueueSamplesNative(), SetAudioStreamResampling(), Shutdown(), and Stop().
|
private |
Definition at line 131 of file audio_backend.h.
Referenced by GetVolume(), QueueSamples(), QueueSamples(), and SetVolume().
|
private |
Definition at line 132 of file audio_backend.h.
Referenced by QueueSamplesNative().
|
private |
Definition at line 136 of file audio_backend.h.
Referenced by Initialize(), and SetAudioStreamResampling().
|
private |
Definition at line 138 of file audio_backend.h.
Referenced by Initialize(), and SetAudioStreamResampling().
|
private |
Definition at line 139 of file audio_backend.h.
Referenced by Initialize(), QueueSamplesNative(), and SetAudioStreamResampling().
|
private |
Definition at line 140 of file audio_backend.h.
Referenced by Initialize(), IsAudioStreamEnabled(), QueueSamplesNative(), SetAudioStreamResampling(), and Shutdown().
|
private |
Definition at line 141 of file audio_backend.h.
Referenced by Initialize(), QueueSamplesNative(), SetAudioStreamResampling(), and Shutdown().
|
private |
Definition at line 142 of file audio_backend.h.
Referenced by Clear(), Initialize(), IsAudioStreamEnabled(), QueueSamplesNative(), SetAudioStreamResampling(), and Shutdown().
|
private |
Definition at line 143 of file audio_backend.h.
Referenced by Initialize(), QueueSamplesNative(), SetAudioStreamResampling(), and Shutdown().