yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
yaze::emu::audio::SDL2AudioBackend Class Reference

SDL2 audio backend implementation. More...

#include <audio_backend.h>

Inheritance diagram for yaze::emu::audio::SDL2AudioBackend:
Collaboration diagram for yaze::emu::audio::SDL2AudioBackend:

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_
 

Detailed Description

SDL2 audio backend implementation.

Definition at line 95 of file audio_backend.h.

Constructor & Destructor Documentation

◆ SDL2AudioBackend()

yaze::emu::audio::SDL2AudioBackend::SDL2AudioBackend ( )
default

◆ ~SDL2AudioBackend()

yaze::emu::audio::SDL2AudioBackend::~SDL2AudioBackend ( )
override

Definition at line 78 of file audio_backend.cc.

References Shutdown().

Here is the call graph for this function:

Member Function Documentation

◆ Initialize()

◆ Shutdown()

void yaze::emu::audio::SDL2AudioBackend::Shutdown ( )
overridevirtual

◆ Play()

void yaze::emu::audio::SDL2AudioBackend::Play ( )
overridevirtual

Implements yaze::emu::audio::IAudioBackend.

Definition at line 178 of file audio_backend.cc.

References device_id_, initialized_, LOG_INFO, and LOG_WARN.

◆ Pause()

void yaze::emu::audio::SDL2AudioBackend::Pause ( )
overridevirtual

Implements yaze::emu::audio::IAudioBackend.

Definition at line 190 of file audio_backend.cc.

References device_id_, and initialized_.

◆ Stop()

void yaze::emu::audio::SDL2AudioBackend::Stop ( )
overridevirtual

Implements yaze::emu::audio::IAudioBackend.

Definition at line 196 of file audio_backend.cc.

References Clear(), device_id_, and initialized_.

Here is the call graph for this function:

◆ Clear()

void yaze::emu::audio::SDL2AudioBackend::Clear ( )
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().

◆ QueueSamples() [1/2]

bool yaze::emu::audio::SDL2AudioBackend::QueueSamples ( const int16_t * samples,
int num_samples )
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().

◆ QueueSamples() [2/2]

bool yaze::emu::audio::SDL2AudioBackend::QueueSamples ( const float * samples,
int num_samples )
overridevirtual

Implements yaze::emu::audio::IAudioBackend.

Definition at line 272 of file audio_backend.cc.

References initialized_, QueueSamples(), and volume_.

Here is the call graph for this function:

◆ QueueSamplesNative()

bool yaze::emu::audio::SDL2AudioBackend::QueueSamplesNative ( const int16_t * samples,
int frames_per_channel,
int channels,
int native_rate )
overridevirtual

◆ GetStatus()

◆ IsInitialized()

bool yaze::emu::audio::SDL2AudioBackend::IsInitialized ( ) const
overridevirtual

Implements yaze::emu::audio::IAudioBackend.

Definition at line 410 of file audio_backend.cc.

References initialized_.

◆ GetConfig()

AudioConfig yaze::emu::audio::SDL2AudioBackend::GetConfig ( ) const
overridevirtual

Implements yaze::emu::audio::IAudioBackend.

Definition at line 414 of file audio_backend.cc.

References config_.

◆ SetVolume()

void yaze::emu::audio::SDL2AudioBackend::SetVolume ( float volume)
overridevirtual

Implements yaze::emu::audio::IAudioBackend.

Definition at line 467 of file audio_backend.cc.

References volume_.

◆ GetVolume()

float yaze::emu::audio::SDL2AudioBackend::GetVolume ( ) const
overridevirtual

Implements yaze::emu::audio::IAudioBackend.

Definition at line 471 of file audio_backend.cc.

References volume_.

◆ SetAudioStreamResampling()

void yaze::emu::audio::SDL2AudioBackend::SetAudioStreamResampling ( bool enable,
int native_rate,
int channels )
overridevirtual

◆ SupportsAudioStream()

bool yaze::emu::audio::SDL2AudioBackend::SupportsAudioStream ( ) const
inlineoverridevirtual

Reimplemented from yaze::emu::audio::IAudioBackend.

Definition at line 122 of file audio_backend.h.

◆ IsAudioStreamEnabled()

bool yaze::emu::audio::SDL2AudioBackend::IsAudioStreamEnabled ( ) const
overridevirtual

Reimplemented from yaze::emu::audio::IAudioBackend.

Definition at line 475 of file audio_backend.cc.

References audio_stream_, and audio_stream_enabled_.

◆ GetBackendName()

std::string yaze::emu::audio::SDL2AudioBackend::GetBackendName ( ) const
inlineoverridevirtual

Implements yaze::emu::audio::IAudioBackend.

Definition at line 125 of file audio_backend.h.

Member Data Documentation

◆ device_id_

uint32_t yaze::emu::audio::SDL2AudioBackend::device_id_ = 0
private

◆ config_

AudioConfig yaze::emu::audio::SDL2AudioBackend::config_
private

◆ initialized_

bool yaze::emu::audio::SDL2AudioBackend::initialized_ = false
private

◆ volume_

float yaze::emu::audio::SDL2AudioBackend::volume_ = 1.0f
private

Definition at line 131 of file audio_backend.h.

Referenced by GetVolume(), QueueSamples(), QueueSamples(), and SetVolume().

◆ call_count_

int yaze::emu::audio::SDL2AudioBackend::call_count_ = 0
private

Definition at line 132 of file audio_backend.h.

Referenced by QueueSamplesNative().

◆ device_format_

SDL_AudioFormat yaze::emu::audio::SDL2AudioBackend::device_format_ = AUDIO_S16
private

Definition at line 136 of file audio_backend.h.

Referenced by Initialize(), and SetAudioStreamResampling().

◆ device_channels_

int yaze::emu::audio::SDL2AudioBackend::device_channels_ = 2
private

Definition at line 138 of file audio_backend.h.

Referenced by Initialize(), and SetAudioStreamResampling().

◆ device_freq_

int yaze::emu::audio::SDL2AudioBackend::device_freq_ = 48000
private

Definition at line 139 of file audio_backend.h.

Referenced by Initialize(), QueueSamplesNative(), and SetAudioStreamResampling().

◆ audio_stream_enabled_

bool yaze::emu::audio::SDL2AudioBackend::audio_stream_enabled_ = false
private

◆ stream_native_rate_

int yaze::emu::audio::SDL2AudioBackend::stream_native_rate_ = 0
private

◆ audio_stream_

SDL_AudioStream* yaze::emu::audio::SDL2AudioBackend::audio_stream_ = nullptr
private

◆ stream_buffer_

std::vector<int16_t> yaze::emu::audio::SDL2AudioBackend::stream_buffer_
private

The documentation for this class was generated from the following files: