AudioOutputALSA Class Reference

#include <audiooutputalsa.h>

Inheritance diagram for AudioOutputALSA:
AudioOutputBase AudioOutput MThread VolumeBase OutputListeners MythObservable

List of all members.

Public Member Functions

 AudioOutputALSA (const AudioSettings &settings)
virtual ~AudioOutputALSA ()
virtual int GetVolumeChannel (int channel) const
virtual void SetVolumeChannel (int channel, int volume)

Static Public Member Functions

static QMap< QString, QString > * GetDevices (const char *type)

Protected Member Functions

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

Private Member Functions

int TryOpenDevice (int open_mode, int try_ac3)
int GetPCMInfo (int &card, int &device, int &subdevice)
bool SetPreallocBufferSize (int size)
bool IncPreallocBufferSize (int requested, int buffer_time)
int SetParameters (snd_pcm_t *handle, snd_pcm_format_t format, uint channels, uint rate, uint buffer_time, uint period_time)
 Set the various ALSA audio parameters.
bool OpenMixer (void)

Private Attributes

snd_pcm_tpcm_handle
int pbufsize
int m_card
int m_device
int m_subdevice
QMutex killAudioLock
QString m_lastdevice
struct {
   QString   device
   QString   control
   snd_mixer_t *   handle
   snd_mixer_elem_t *   elem
   long   volmin
   long   volmax
   long   volrange
m_mixer

Detailed Description

Definition at line 14 of file audiooutputalsa.h.


Constructor & Destructor Documentation

AudioOutputALSA::AudioOutputALSA ( const AudioSettings settings  ) 

Definition at line 31 of file audiooutputalsa.cpp.

AudioOutputALSA::~AudioOutputALSA (  )  [virtual]

Definition at line 107 of file audiooutputalsa.cpp.


Member Function Documentation

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

Implements VolumeBase.

Definition at line 759 of file audiooutputalsa.cpp.

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

Implements VolumeBase.

Definition at line 794 of file audiooutputalsa.cpp.

Referenced by OpenMixer().

QMap< QString, QString > * AudioOutputALSA::GetDevices ( const char *  type  )  [static]
bool AudioOutputALSA::OpenDevice ( void   )  [protected, virtual]

Implements AudioOutputBase.

Definition at line 403 of file audiooutputalsa.cpp.

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

Implements AudioOutputBase.

Definition at line 463 of file audiooutputalsa.cpp.

Referenced by OpenDevice(), and SetPreallocBufferSize().

void AudioOutputALSA::WriteAudio ( uchar *  aubuf,
int  size 
) [protected, virtual]

Implements AudioOutputBase.

Definition at line 506 of file audiooutputalsa.cpp.

int AudioOutputALSA::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 589 of file audiooutputalsa.cpp.

AudioOutputSettings * AudioOutputALSA::GetOutputSettings ( bool  passthrough  )  [protected, virtual]

Reimplemented from AudioOutputBase.

Definition at line 290 of file audiooutputalsa.cpp.

int AudioOutputALSA::TryOpenDevice ( int  open_mode,
int  try_ac3 
) [private]

Definition at line 112 of file audiooutputalsa.cpp.

Referenced by GetOutputSettings(), and OpenDevice().

int AudioOutputALSA::GetPCMInfo ( int &  card,
int &  device,
int &  subdevice 
) [private]

Definition at line 148 of file audiooutputalsa.cpp.

Referenced by IncPreallocBufferSize(), and SetPreallocBufferSize().

bool AudioOutputALSA::SetPreallocBufferSize ( int  size  )  [private]

Definition at line 190 of file audiooutputalsa.cpp.

Referenced by IncPreallocBufferSize().

bool AudioOutputALSA::IncPreallocBufferSize ( int  requested,
int  buffer_time 
) [private]

Definition at line 230 of file audiooutputalsa.cpp.

Referenced by OpenDevice().

int AudioOutputALSA::SetParameters ( snd_pcm_t handle,
snd_pcm_format_t  format,
uint  channels,
uint  rate,
uint  buffer_time,
uint  period_time 
) [inline, private]

Set the various ALSA audio parameters.

Returns: < 0 : an error occurred 0 : Succeeded > 0 : Buffer timelength returned by ALSA which is less than what we asked for

Definition at line 625 of file audiooutputalsa.cpp.

Referenced by OpenDevice().

bool AudioOutputALSA::OpenMixer ( void   )  [private]

Definition at line 811 of file audiooutputalsa.cpp.

Referenced by OpenDevice().


Member Data Documentation

Definition at line 46 of file audiooutputalsa.h.

Referenced by IncPreallocBufferSize(), OpenDevice(), and SetParameters().

int AudioOutputALSA::m_card [private]

Definition at line 47 of file audiooutputalsa.h.

Referenced by GetPCMInfo().

Definition at line 47 of file audiooutputalsa.h.

Referenced by GetPCMInfo().

Definition at line 47 of file audiooutputalsa.h.

Referenced by GetPCMInfo().

Reimplemented from AudioOutputBase.

Definition at line 48 of file audiooutputalsa.h.

QString AudioOutputALSA::m_lastdevice [private]

Definition at line 49 of file audiooutputalsa.h.

Referenced by GetOutputSettings(), OpenDevice(), and TryOpenDevice().

Definition at line 52 of file audiooutputalsa.h.

Referenced by IncPreallocBufferSize(), and SetPreallocBufferSize().

Definition at line 53 of file audiooutputalsa.h.

Definition at line 54 of file audiooutputalsa.h.

snd_mixer_elem_t* AudioOutputALSA::elem

Definition at line 55 of file audiooutputalsa.h.

Definition at line 56 of file audiooutputalsa.h.

Definition at line 57 of file audiooutputalsa.h.

Definition at line 58 of file audiooutputalsa.h.

struct { ... } AudioOutputALSA::m_mixer [private]

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