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
 
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_
 

Detailed Description

SDL2 audio backend implementation.

Definition at line 89 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 18 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 99 of file audio_backend.cc.

References device_id_, and initialized_.

◆ Pause()

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

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

Definition at line 104 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 109 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 115 of file audio_backend.cc.

References audio_stream_, device_id_, and initialized_.

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 123 of file audio_backend.cc.

References device_id_, initialized_, 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 165 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 249 of file audio_backend.cc.

References initialized_.

◆ GetConfig()

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

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

Definition at line 253 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 302 of file audio_backend.cc.

References volume_.

◆ GetVolume()

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

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

Definition at line 306 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 116 of file audio_backend.h.

◆ GetBackendName()

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

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

Definition at line 118 of file audio_backend.h.

Member Data Documentation

◆ device_id_

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

Definition at line 121 of file audio_backend.h.

Referenced by Clear(), GetStatus(), Initialize(), Pause(), Play(), QueueSamples(), Shutdown(), and Stop().

◆ 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 124 of file audio_backend.h.

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

◆ device_format_

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

Definition at line 125 of file audio_backend.h.

Referenced by Initialize(), and SetAudioStreamResampling().

◆ device_channels_

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

Definition at line 126 of file audio_backend.h.

Referenced by Initialize(), and SetAudioStreamResampling().

◆ device_freq_

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

Definition at line 127 of file audio_backend.h.

Referenced by Initialize(), 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: