summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2005-02-13 14:26:37 +0100
committerKlaus Schmidinger <vdr@tvdr.de>2005-02-13 14:26:37 +0100
commit84d57ed54d1d1d42e0ad0ac5ed0efe954fa740cf (patch)
treeff89e791267d7e6f2fdefdaee1eca0e76d4dc2f2
parent28976bf276b27c06abdea22472dd60e48103a6e1 (diff)
downloadvdr-84d57ed54d1d1d42e0ad0ac5ed0efe954fa740cf.tar.gz
vdr-84d57ed54d1d1d42e0ad0ac5ed0efe954fa740cf.tar.bz2
Implemented cDvbDevice::SetTransferModeForDolbyDigital()
-rw-r--r--HISTORY3
-rw-r--r--dvbdevice.c10
-rw-r--r--dvbdevice.h5
3 files changed, 16 insertions, 2 deletions
diff --git a/HISTORY b/HISTORY
index 1e8212b3..0cbaf08e 100644
--- a/HISTORY
+++ b/HISTORY
@@ -3410,3 +3410,6 @@ Video Disk Recorder Revision History
library files from this version of VDR (suggested by Andreas Brachold).
- Added a missing 'resultSkipped = 0' to cRemux::Clear() (thanks to Marco Schlüßler
for reporting this one).
+- The new function cDvbDevice::SetTransferModeForDolbyDigital() can be used by
+ plugins that implement Dolby Digital output and thus want to prevent the cDvbDevice
+ from starting Transfer Mode in order to replay DD over the DVB device.
diff --git a/dvbdevice.c b/dvbdevice.c
index 5659c515..741848a8 100644
--- a/dvbdevice.c
+++ b/dvbdevice.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: dvbdevice.c 1.119 2005/02/08 14:07:16 kls Exp $
+ * $Id: dvbdevice.c 1.120 2005/02/13 14:26:37 kls Exp $
*/
#include "dvbdevice.h"
@@ -346,6 +346,7 @@ void cDvbTuner::Action(void)
// --- cDvbDevice ------------------------------------------------------------
int cDvbDevice::devVideoOffset = -1;
+bool cDvbDevice::setTransferModeForDolbyDigital = true;
cDvbDevice::cDvbDevice(int n)
{
@@ -861,6 +862,11 @@ void cDvbDevice::SetDigitalAudioDevice(bool On)
}
}
+void cDvbDevice::SetTransferModeForDolbyDigital(bool On)
+{
+ setTransferModeForDolbyDigital = On;
+}
+
void cDvbDevice::SetAudioTrackDevice(eTrackType Type)
{
const tTrackId *TrackId = GetTrack(Type);
@@ -872,6 +878,8 @@ void cDvbDevice::SetAudioTrackDevice(eTrackType Type)
}
}
else if (IS_DOLBY_TRACK(Type)) {
+ if (!setTransferModeForDolbyDigital)
+ return;
// Currently this works only in Transfer Mode
cChannel *Channel = Channels.GetByNumber(CurrentChannel());
if (Channel)
diff --git a/dvbdevice.h b/dvbdevice.h
index 233515d8..99456e73 100644
--- a/dvbdevice.h
+++ b/dvbdevice.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: dvbdevice.h 1.32 2005/01/06 13:30:51 kls Exp $
+ * $Id: dvbdevice.h 1.33 2005/02/13 14:14:31 kls Exp $
*/
#ifndef __DVBDEVICE_H
@@ -99,11 +99,14 @@ protected:
private:
bool digitalAudio;
+ static bool setTransferModeForDolbyDigital;
protected:
virtual int GetAudioChannelDevice(void);
virtual void SetAudioChannelDevice(int AudioChannel);
virtual void SetVolumeDevice(int Volume);
virtual void SetDigitalAudioDevice(bool On);
+public:
+ static void SetTransferModeForDolbyDigital(bool On);
// Player facilities