diff options
author | Klaus Schmidinger <Klaus (dot) Schmidinger (at) tvdr (dot) de> | 2011-12-04 16:53:00 +0100 |
---|---|---|
committer | Dieter Hametner <dh (plus) vdr (at) gekrumbel (dot) de> | 2011-12-05 20:36:02 +0100 |
commit | 5a28d999363f8ace192489d4f6b13dfeb6cfc20b (patch) | |
tree | 4aa9a419b3e1d45656c66ead7b8a4997665951e2 /dvbdevice.h | |
parent | 0c96d6b62650790dc83ce6621eb664e51f39719b (diff) | |
download | vdr-patches-5a28d999363f8ace192489d4f6b13dfeb6cfc20b.tar.gz vdr-patches-5a28d999363f8ace192489d4f6b13dfeb6cfc20b.tar.bz2 |
Version 1.7.22
Original announce message:
VDR developer version 1.7.22 is now available at
ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.22.tar.bz2
A 'diff' against the previous version is available at
ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.21-1.7.22.diff
MD5 checksums:
b9c0fe1aac8e653c0d0234bc72c2bb2c vdr-1.7.22.tar.bz2
868bb332342c9a78beda17cc85e0bb93 vdr-1.7.21-1.7.22.diff
WARNING:
========
This is a developer version. Even though I use it in my productive
environment. I strongly recommend that you only use it under controlled
conditions and for testing and debugging.
From the HISTORY file:
- Fixed scaling subtitles in case the primary device's GetVideoSize() function doesn't
return actual values (thanks to Luca Olivetti).
- The DiSEqC codes are now copied in the call to cDiseqc::Execute().
- VDR now supports "Satellite Channel Routing" (SCR) according to EN50494 (based on
the "unicable" patch from Lars Hanisch).
Since "Unicable" is a registered trademark and stands for only one of many
implementations of SCR, the following changes have been made compared to the patch,
which need to be taken into account by people who have set up their system using
the patch:
- The 'U' parameter in the diseqc.conf file has been changed to 'S' ("Scr").
- The configuration file name has been changed from "unicable.conf" to "scr.conf".
- Updated sources.conf (thanks to Arthur Konovalov).
- The SVDRP command LSTC now also accepts channel IDs (thanks to Dominic Evans).
- Fixed handling DVB subtitles and implemented decoding textual DVB subtitles (thanks
to Rolf Ahrenberg).
- Added cap_net_raw to the capabilities that are not dropped (thanks to Dominic Evans).
- Fixed setting the start time of an edited recording (thanks to Christoph Haubrich).
- Temporarily switching free devices to transponders in order to have their running
status updated is now done by marking the devices as "occupied" for a certain
amount of time.
- The new setup options "LNB/Device n connected to sat cable" can be used to define
which DVB-S devices are connected to the same sat cable and are therefore "bonded".
This obsoletes the LNBSHARE patch. Users of the LNBSHARE patch will need to newly
set up their sat devices with the above options.
- Fixed a crash when deleting a recording while cutting it (thanks to Ville Skyttä).
- Fixed several spelling errors (thanks to Ville Skyttä).
- The new SVDRP command UPDR can be used to trigger an update of the list of
recordings (thanks to Lars Hanisch).
- Added generating a pkg-config file to the Makefile (thanks to Ville Skyttä).
- Removed the '.pl' suffix from all scripts (thanks to Ville Skyttä).
- Changed the default location for the LIRC socket to /var/run/lirc/lircd (thanks
to Ville Skyttä).
- Added file name and line number to LOG_ERROR_STR() (thanks to Rolf Ahrenberg).
- Replaced all calls to sleep() with cCondWait::SleepMs() (thanks to Rolf Ahrenberg).
- Fixed a crash with malformed SI data (patch from vdr-portal).
Diffstat (limited to 'dvbdevice.h')
-rw-r--r-- | dvbdevice.h | 38 |
1 files changed, 35 insertions, 3 deletions
diff --git a/dvbdevice.h b/dvbdevice.h index e1842b7..2072ab2 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 2.16 2011/08/26 12:55:45 kls Exp $ + * $Id: dvbdevice.h 2.18 2011/12/04 13:38:17 kls Exp $ */ #ifndef __DVBDEVICE_H @@ -122,10 +122,40 @@ private: int numProvidedSystems; fe_delivery_system frontendType; int fd_dvr, fd_ca; + static cMutex bondMutex; + cDvbDevice *bondedDevice; + mutable bool needsDetachBondedReceivers; public: cDvbDevice(int Adapter, int Frontend); virtual ~cDvbDevice(); virtual bool Ready(void); + static bool BondDevices(const char *Bondings); + ///< Bonds the devices as defined in the given Bondings string. + ///< A bonding is a sequence of device numbers (starting at 1), + ///< separated by '+' characters. Several bondings are separated by + ///< commas, as in "1+2,3+4+5". + ///< Returns false if an error occurred. + static void UnBondDevices(void); + ///< Unbonds all devices. + bool Bond(cDvbDevice *Device); + ///< Bonds this device with the given Device, making both of them use + ///< the same satellite cable and LNB. Only DVB-S(2) devices can be + ///< bonded. When this function is called, the calling device must + ///< not be bonded to any other device. The given Device, however, + ///< may already be bonded to an other device. That way several devices + ///< can be bonded together. + ///< Returns true if the bonding was successful. + void UnBond(void); + ///< Removes this device from any bonding it might have with other + ///< devices. If this device is not bonded with any other device, + ///< nothing happens. + bool BondingOk(const cChannel *Channel, bool ConsiderOccupied = false) const; + ///< Returns true if this device is either not bonded to any other + ///< device, or the given Channel is on the same satellite, polarization + ///< and band as those the bonded devices are tuned to (if any). + ///< If ConsiderOccupied is true, any bonded devices that are currently + ///< occupied but not otherwise receiving will cause this function to + ///< return false. // Common Interface facilities: @@ -145,7 +175,8 @@ public: virtual int SignalStrength(void) const; virtual int SignalQuality(void) const; virtual const cChannel *GetCurrentlyTunedTransponder(void) const; - virtual bool IsTunedToTransponder(const cChannel *Channel); + virtual bool IsTunedToTransponder(const cChannel *Channel) const; + virtual bool MaySwitchTransponder(const cChannel *Channel) const; protected: virtual bool SetChannelDevice(const cChannel *Channel, bool LiveView); public: @@ -172,7 +203,7 @@ public: protected: static int setTransferModeForDolbyDigital; public: - static void SetTransferModeForDolbyDigital(int Mode); // needs to be here for backwards compatibilty + static void SetTransferModeForDolbyDigital(int Mode); // needs to be here for backwards compatibility ///< Controls how the DVB device handles Transfer Mode when replaying ///< Dolby Digital audio. ///< 0 = don't set "audio bypass" in driver/firmware, don't force Transfer Mode @@ -187,6 +218,7 @@ protected: virtual bool OpenDvr(void); virtual void CloseDvr(void); virtual bool GetTSPacket(uchar *&Data); + virtual void DetachAllReceivers(void); }; // A plugin that implements a DVB device derived from cDvbDevice needs to create |