MythTV  master
audiooutputoss.h
Go to the documentation of this file.
1 #ifndef AUDIOOUTPUTOSS
2 #define AUDIOOUTPUTOSS
3 
4 #if __has_include(<sys/soundcard.h>)
5 # include <sys/soundcard.h>
6 #elif __has_include(<soundcard.h>)
7 # include <soundcard.h>
8 #else
9 # error attemping to compile OSS support without soundcard.h
10 #endif
11 
12 #include "audiooutputbase.h"
13 
15 {
16  public:
17  explicit AudioOutputOSS(const AudioSettings &settings);
18  ~AudioOutputOSS() override;
19 
20  // Volume control
21  int GetVolumeChannel(int channel) const override; // VolumeBase
22  void SetVolumeChannel(int channel, int volume) override; // VolumeBase
23 
24  protected:
25  // You need to implement the following functions
26  bool OpenDevice(void) override; // AudioOutputBase
27  void CloseDevice(void) override; // AudioOutputBase
28  void WriteAudio(unsigned char *aubuf, int size) override; // AudioOutputBase
29  int GetBufferedOnSoundcard(void) const override; // AudioOutputBase
30  AudioOutputSettings* GetOutputSettings(bool digital) override; // AudioOutputBase
31 
32  private:
33  void VolumeInit(void);
34  void VolumeCleanup(void);
35 
36  void SetFragSize(void);
37 
38  int m_audioFd {-1};
39  mutable int m_numBadIoctls {0};
40 
41  // Volume related
42  int m_mixerFd {-1};
43  int m_control {SOUND_MIXER_VOLUME};
44 };
45 
46 #endif
47 
AudioOutputOSS::WriteAudio
void WriteAudio(unsigned char *aubuf, int size) override
Definition: audiooutputoss.cpp:240
AudioOutputOSS::VolumeCleanup
void VolumeCleanup(void)
Definition: audiooutputoss.cpp:317
AudioOutputOSS::~AudioOutputOSS
~AudioOutputOSS() override
Definition: audiooutputoss.cpp:32
AudioOutputOSS::m_numBadIoctls
int m_numBadIoctls
Definition: audiooutputoss.h:39
AudioOutputOSS::SetVolumeChannel
void SetVolumeChannel(int channel, int volume) override
Definition: audiooutputoss.cpp:351
AudioOutputOSS::VolumeInit
void VolumeInit(void)
Definition: audiooutputoss.cpp:277
AudioOutputOSS::m_mixerFd
int m_mixerFd
Definition: audiooutputoss.h:42
AudioSettings
Definition: audiosettings.h:28
AudioOutputOSS::AudioOutputOSS
AudioOutputOSS(const AudioSettings &settings)
Definition: audiooutputoss.cpp:23
AudioOutputBase
Definition: audiooutputbase.h:40
AudioOutputOSS::GetVolumeChannel
int GetVolumeChannel(int channel) const override
Definition: audiooutputoss.cpp:326
AudioOutputOSS::m_audioFd
int m_audioFd
Definition: audiooutputoss.h:38
AudioOutputOSS::CloseDevice
void CloseDevice(void) override
Definition: audiooutputoss.cpp:229
AudioOutputOSS
Definition: audiooutputoss.h:14
AudioOutputOSS::GetBufferedOnSoundcard
int GetBufferedOnSoundcard(void) const override
Return the size in bytes of frames currently in the audio buffer adjusted with the audio playback lat...
Definition: audiooutputoss.cpp:266
audiooutputbase.h
AudioOutputSettings
Definition: audiooutputsettings.h:48
AudioOutputOSS::GetOutputSettings
AudioOutputSettings * GetOutputSettings(bool digital) override
Definition: audiooutputoss.cpp:37
AudioOutputOSS::m_control
int m_control
Definition: audiooutputoss.h:43
AudioOutputOSS::OpenDevice
bool OpenDevice(void) override
Definition: audiooutputoss.cpp:104
AudioOutputOSS::SetFragSize
void SetFragSize(void)