14 #ifndef pianod2_libsdloutput_h
15 #define pianod2_libsdloutput_h
18 #include <condition_variable>
20 #pragma GCC diagnostic push
21 #pragma GCC diagnostic ignored "-Wdocumentation"
23 #include <SDL/SDL_version.h>
24 #include <SDL/SDL_audio.h>
25 #pragma GCC diagnostic pop
34 SDL_AudioDeviceID device_id;
53 void fetch (Uint8 *buffer,
int length);
54 virtual bool play (
void *buffer,
unsigned numberOfBytes)
override;
Class to abstract away details of audio output system is in use.
Audio output class utilizing SDL for output.
Definition: libsdloutput.h:31
std::condition_variable notifier
Definition: libsdloutput.h:38
const BufferIndex block_count
Definition: libsdloutput.h:44
const BufferIndex cirque_size
Definition: libsdloutput.h:46
LibsdlOutput(const AudioSettings &settings, const AudioFormat &format)
Open audio output using libAO.
Definition: libsdloutput.cpp:37
uint32_t BufferIndex
Definition: libsdloutput.h:40
const BufferIndex block_samples
Definition: libsdloutput.h:43
volatile BufferIndex cirque_read
Definition: libsdloutput.h:48
virtual ~LibsdlOutput() override
Definition: libsdloutput.cpp:161
volatile BufferIndex cirque_write
Definition: libsdloutput.h:47
static std::mutex sdl_mutex
Mutex to restrict concurrent calls into libsdl API.
Definition: libsdloutput.h:36
virtual bool play(void *buffer, unsigned numberOfBytes) override
Play output.
Definition: libsdloutput.cpp:121
void fetch(Uint8 *buffer, int length)
Fetch output as requested.
Definition: libsdloutput.cpp:92
std::mutex data_mutex
Definition: libsdloutput.h:37
const BufferIndex cirque_samples
Definition: libsdloutput.h:45
uint8_t * audio_cirque
Definition: libsdloutput.h:42
Base audio output class (abstract).
Definition: audiooutput.h:65
Classes dealing with audio output drivers and decoding/playing audio files.
Definition: audiooutput.cpp:48
Audio output device & driver parameters.
Definition: fundamentals.h:52