From 63420f67b52ff1536afcb3c817ccbdba19b263c4 Mon Sep 17 00:00:00 2001 From: Christian Gmeiner Date: Mon, 7 Dec 2009 18:45:54 +0100 Subject: add basic SetDigitalAudioDevice stub method As analog audio is working with vdr-1.7 I will spend some time in fixing the digital audio part (digital pcm and ac3). I will fully review the digital audio code paths and I hope I can improve them. --- dxr3audio.c | 5 +++++ dxr3audio.h | 6 +++++- dxr3device.c | 5 +++++ dxr3device.h | 1 + 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/dxr3audio.c b/dxr3audio.c index e7e7cca..7cfbc50 100644 --- a/dxr3audio.c +++ b/dxr3audio.c @@ -29,6 +29,11 @@ const static int AUDIO_STEREO = 0; const static int AUDIO_MONO_LEFT = 1; const static int AUDIO_MONO_RIGHT = 2; +iAudio::iAudio() : open(false), vol(0), audioChannel(0), digitalAudio(false) +{ + memset(&curContext, 0, sizeof(SampleContext)); +} + void iAudio::changeVolume(int16_t* pcmbuf, size_t size) { if (vol == 0) { diff --git a/dxr3audio.h b/dxr3audio.h index dc087cd..e6039d9 100644 --- a/dxr3audio.h +++ b/dxr3audio.h @@ -37,7 +37,7 @@ public: Ac3, }; - iAudio() : open(false), vol(0), audioChannel(0) { memset(&curContext, 0, sizeof(SampleContext)); } + iAudio(); virtual ~iAudio() {} virtual void openDevice() = 0; @@ -52,6 +52,9 @@ public: void setAudioChannel(int channel) { audioChannel = channel; } int getAudioChannel() { return audioChannel; } + virtual void setDigitalAudio(bool on) { digitalAudio = on; } + bool isDigitalAudio() { return digitalAudio; } + virtual void setAudioMode(AudioMode m) = 0; AudioMode getAudioMode() { return mode; } @@ -62,6 +65,7 @@ protected: bool open; int vol; int audioChannel; + bool digitalAudio; SampleContext curContext; AudioMode mode; }; diff --git a/dxr3device.c b/dxr3device.c index 24a2c25..81936b8 100644 --- a/dxr3device.c +++ b/dxr3device.c @@ -258,6 +258,11 @@ int cDxr3Device::GetAudioChannelDevice() return audioOut->getAudioChannel(); } +void cDxr3Device::SetDigitalAudioDevice(bool on) +{ + audioOut->setDigitalAudio(on); +} + // ================================== // get spudecoder cSpuDecoder *cDxr3Device::GetSpuDecoder() diff --git a/dxr3device.h b/dxr3device.h index b382910..6a775ad 100644 --- a/dxr3device.h +++ b/dxr3device.h @@ -68,6 +68,7 @@ public: virtual void SetVolumeDevice(int Volume); virtual void SetAudioChannelDevice(int AudioChannel); virtual int GetAudioChannelDevice(); + virtual void SetDigitalAudioDevice(bool on); // osd virtual cSpuDecoder *GetSpuDecoder(); -- cgit v1.2.3