Go to the documentation of this file.
20 #ifndef AUDIOOUTPUTPULSE
21 #define AUDIOOUTPUTPULSE
23 #include <pulse/pulseaudio.h>
35 void Drain(
void)
override;
41 void WriteAudio(
unsigned char *aubuf,
int size)
override;
54 static void WriteCallback(pa_stream *s,
size_t size,
void *arg);
57 const pa_server_info *inf,
void *arg);
AudioOutputPulseAudio(const AudioSettings &settings)
static void SinkInfoCallback(pa_context *c, const pa_sink_info *info, int eol, void *arg)
pa_cvolume m_volumeControl
pa_channel_map m_channelMap
static void BufferFlowCallback(pa_stream *s, void *tag)
static void WriteCallback(pa_stream *s, size_t size, void *arg)
pa_sample_spec m_sampleSpec
int GetVolumeChannel(int channel) const override
void FlushStream(const char *caller)
AudioOutputSettings * GetOutputSettings(bool digital) override
static void StreamStateCallback(pa_stream *s, void *arg)
static void OpCompletionCallback(pa_context *c, int ok, void *arg)
void SetVolumeChannel(int channel, int volume) override
AudioOutputSettings * m_aoSettings
bool ConnectPlaybackStream(void)
static void ServerInfoCallback(pa_context *context, const pa_server_info *inf, void *arg)
pa_buffer_attr m_bufferSettings
bool OpenDevice(void) override
bool ContextConnect(void)
int GetBufferedOnSoundcard(void) const override
Return the size in bytes of frames currently in the audio buffer adjusted with the audio playback lat...
void WriteAudio(unsigned char *aubuf, int size) override
void CloseDevice(void) override
static void ContextStateCallback(pa_context *c, void *arg)
~AudioOutputPulseAudio() override
void Drain(void) override
Block until all available frames have been written to the device.
pa_threaded_mainloop * m_mainloop