MythTV master
audiooutputca.h
Go to the documentation of this file.
1#ifndef AUDIOOUTPUTCA
2#define AUDIOOUTPUTCA
3
4#include "audiooutputbase.h"
5
6#undef AUDBUFSIZE
7#define AUDBUFSIZE 512000
8
9// We hide Core Audio-specific items, to avoid
10// pulling in Mac-specific header files.
11class CoreAudioData;
12
14{
15public:
16 explicit AudioOutputCA(const AudioSettings &settings);
17 virtual ~AudioOutputCA();
18
19 AudioOutputSettings* GetOutputSettings(bool digital) override; // AudioOutputBase
20 static QMap<QString, QString> *GetDevices(const char *type = nullptr);
21
22 std::chrono::milliseconds GetAudiotime(void) override; // AudioOutputBase
23
24 // callback for delivering audio to output device
25 bool RenderAudio(unsigned char *aubuf, int size,
26 unsigned long long timestamp);
27
28 // Volume control
29 int GetVolumeChannel(int channel) const override; // VolumeBase
30 void SetVolumeChannel(int channel, int volume) override; // VolumeBase
31
32protected:
33
34 // You need to implement the following functions
35 bool OpenDevice(void) override; // AudioOutputBase
36 void CloseDevice(void) override; // AudioOutputBase
37 void WriteAudio(unsigned char *aubuf, int size) override; // AudioOutputBase
38 int GetBufferedOnSoundcard(void) const override; // AudioOutputBase
39
40 bool StartOutputThread(void) override { return true; } // AudioOutputBase
41 void StopOutputThread(void) override {} // AudioOutputBase
42
43private:
44
45 CoreAudioData * d {nullptr};
46 friend class CoreAudioData;
47
49};
50
51#endif
52
Implements Core Audio (Mac OS X Hardware Abstraction Layer) output.
Definition: audiooutputca.h:14
std::chrono::milliseconds GetAudiotime(void) override
Reimplement the base class's version of GetAudiotime() so that we don't use gettimeofday or Qt mutexe...
int GetVolumeChannel(int channel) const override
void CloseDevice(void) override
virtual ~AudioOutputCA()
void SetVolumeChannel(int channel, int volume) override
void StopOutputThread(void) override
Definition: audiooutputca.h:41
void WriteAudio(unsigned char *aubuf, int size) override
int GetBufferedOnSoundcard(void) const override
Return the size in bytes of frames currently in the audio buffer adjusted with the audio playback lat...
AudioOutputSettings * GetOutputSettings(bool digital) override
static QMap< QString, QString > * GetDevices(const char *type=nullptr)
bool StartOutputThread(void) override
Definition: audiooutputca.h:40
CoreAudioData * d
Definition: audiooutputca.h:45
AudioOutputCA(const AudioSettings &settings)
bool OpenDevice(void) override
bool RenderAudio(unsigned char *aubuf, int size, unsigned long long timestamp)
Object-oriented part of callback.
This holds Core Audio member variables and low-level audio IO methods The name is now a misnomer,...