AudioOutputPulseAudio Class Reference

#include <audiooutputpulse.h>

Inheritance diagram for AudioOutputPulseAudio:
AudioOutputBase AudioOutput MThread VolumeBase OutputListeners MythObservable

List of all members.

Public Member Functions

 AudioOutputPulseAudio (const AudioSettings &settings)
 ~AudioOutputPulseAudio ()
int GetVolumeChannel (int channel) const
void SetVolumeChannel (int channel, int volume)
void Drain (void)
 Block until all available frames have been written to the device.

Protected Member Functions

AudioOutputSettingsGetOutputSettings (bool digital)
bool OpenDevice (void)
void CloseDevice (void)
void WriteAudio (unsigned char *aubuf, int size)
int GetBufferedOnSoundcard (void) const
 Return the size in bytes of frames currently in the audio buffer adjusted with the audio playback latency.

Private Member Functions

char * ChooseHost (void)
bool MapChannels (void)
bool ContextConnect (void)
bool ConnectPlaybackStream (void)
void FlushStream (const char *caller)

Static Private Member Functions

static void ContextStateCallback (pa_context *c, void *arg)
static void StreamStateCallback (pa_stream *s, void *arg)
static void OpCompletionCallback (pa_context *c, int ok, void *arg)
static void WriteCallback (pa_stream *s, size_t size, void *arg)
static void BufferFlowCallback (pa_stream *s, void *tag)
static void ServerInfoCallback (pa_context *context, const pa_server_info *inf, void *arg)
static void SinkInfoCallback (pa_context *c, const pa_sink_info *info, int eol, void *arg)

Private Attributes

pa_context * pcontext
pa_stream * pstream
pa_threaded_mainloop * mainloop
pa_sample_spec sample_spec
pa_channel_map channel_map
pa_cvolume volume_control
pa_buffer_attr buffer_settings
AudioOutputSettingsm_aosettings

Detailed Description

Definition at line 27 of file audiooutputpulse.h.


Constructor & Destructor Documentation

AudioOutputPulseAudio::AudioOutputPulseAudio ( const AudioSettings settings  ) 

Definition at line 28 of file audiooutputpulse.cpp.

AudioOutputPulseAudio::~AudioOutputPulseAudio (  ) 

Definition at line 42 of file audiooutputpulse.cpp.


Member Function Documentation

int AudioOutputPulseAudio::GetVolumeChannel ( int  channel  )  const [virtual]

Implements VolumeBase.

Definition at line 318 of file audiooutputpulse.cpp.

void AudioOutputPulseAudio::SetVolumeChannel ( int  channel,
int  volume 
) [virtual]

Implements VolumeBase.

Definition at line 324 of file audiooutputpulse.cpp.

void AudioOutputPulseAudio::Drain ( void   )  [virtual]

Block until all available frames have been written to the device.

Reimplemented from AudioOutputBase.

Definition at line 379 of file audiooutputpulse.cpp.

AudioOutputSettings * AudioOutputPulseAudio::GetOutputSettings ( bool  digital  )  [protected, virtual]

Reimplemented from AudioOutputBase.

Definition at line 52 of file audiooutputpulse.cpp.

bool AudioOutputPulseAudio::OpenDevice ( void   )  [protected, virtual]

Implements AudioOutputBase.

Definition at line 119 of file audiooutputpulse.cpp.

void AudioOutputPulseAudio::CloseDevice ( void   )  [protected, virtual]

Implements AudioOutputBase.

Definition at line 198 of file audiooutputpulse.cpp.

void AudioOutputPulseAudio::WriteAudio ( unsigned char *  aubuf,
int  size 
) [protected]
int AudioOutputPulseAudio::GetBufferedOnSoundcard ( void   )  const [protected, virtual]

Return the size in bytes of frames currently in the audio buffer adjusted with the audio playback latency.

Implements AudioOutputBase.

Definition at line 285 of file audiooutputpulse.cpp.

char * AudioOutputPulseAudio::ChooseHost ( void   )  [private]

Definition at line 469 of file audiooutputpulse.cpp.

Referenced by ContextConnect().

bool AudioOutputPulseAudio::MapChannels ( void   )  [private]
bool AudioOutputPulseAudio::ContextConnect ( void   )  [private]

Definition at line 392 of file audiooutputpulse.cpp.

Referenced by GetOutputSettings(), and OpenDevice().

bool AudioOutputPulseAudio::ConnectPlaybackStream ( void   )  [private]

Definition at line 517 of file audiooutputpulse.cpp.

Referenced by OpenDevice().

void AudioOutputPulseAudio::FlushStream ( const char *  caller  )  [private]

Definition at line 608 of file audiooutputpulse.cpp.

Referenced by CloseDevice().

void AudioOutputPulseAudio::ContextStateCallback ( pa_context *  c,
void *  arg 
) [static, private]

Definition at line 620 of file audiooutputpulse.cpp.

Referenced by ContextConnect().

void AudioOutputPulseAudio::StreamStateCallback ( pa_stream *  s,
void *  arg 
) [static, private]

Definition at line 641 of file audiooutputpulse.cpp.

Referenced by ConnectPlaybackStream().

void AudioOutputPulseAudio::OpCompletionCallback ( pa_context *  c,
int  ok,
void *  arg 
) [static, private]

Definition at line 669 of file audiooutputpulse.cpp.

Referenced by SetVolumeChannel().

void AudioOutputPulseAudio::WriteCallback ( pa_stream *  s,
size_t  size,
void *  arg 
) [static, private]

Definition at line 658 of file audiooutputpulse.cpp.

Referenced by ConnectPlaybackStream().

void AudioOutputPulseAudio::BufferFlowCallback ( pa_stream *  s,
void *  tag 
) [static, private]

Definition at line 664 of file audiooutputpulse.cpp.

Referenced by ConnectPlaybackStream().

void AudioOutputPulseAudio::ServerInfoCallback ( pa_context *  context,
const pa_server_info *  inf,
void *  arg 
) [static, private]

Definition at line 682 of file audiooutputpulse.cpp.

Referenced by ContextConnect().

void AudioOutputPulseAudio::SinkInfoCallback ( pa_context *  c,
const pa_sink_info *  info,
int  eol,
void *  arg 
) [static, private]

Definition at line 694 of file audiooutputpulse.cpp.

Referenced by GetOutputSettings().


Member Data Documentation

pa_context* AudioOutputPulseAudio::pcontext [private]
pa_stream* AudioOutputPulseAudio::pstream [private]
pa_threaded_mainloop* AudioOutputPulseAudio::mainloop [private]
pa_sample_spec AudioOutputPulseAudio::sample_spec [private]

Definition at line 64 of file audiooutputpulse.h.

Referenced by ConnectPlaybackStream(), and OpenDevice().

pa_channel_map AudioOutputPulseAudio::channel_map [private]

Definition at line 65 of file audiooutputpulse.h.

Referenced by ConnectPlaybackStream(), and OpenDevice().

pa_buffer_attr AudioOutputPulseAudio::buffer_settings [private]

Definition at line 67 of file audiooutputpulse.h.

Referenced by ConnectPlaybackStream().

Definition at line 68 of file audiooutputpulse.h.

Referenced by GetOutputSettings(), and SinkInfoCallback().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends
Generated on Mon May 28 06:41:52 2012 for MythTV by  doxygen 1.6.3