summaryrefslogtreecommitdiff
path: root/receiver.h
diff options
context:
space:
mode:
authorKlaus Schmidinger <Klaus (dot) Schmidinger (at) tvdr (dot) de>2010-01-31 15:42:00 +0100
committerKlaus Schmidinger <Klaus (dot) Schmidinger (at) tvdr (dot) de>2010-01-31 15:42:00 +0100
commit09a17d56e2a3f975a0467e8da4ca26c946b6ccf7 (patch)
tree4ca95499f117bf8bf0a51149bb85493d93ee111e /receiver.h
parent939081e274d0a9868e5ba9a7951666ad508afb96 (diff)
downloadvdr-patch-lnbsharing-09a17d56e2a3f975a0467e8da4ca26c946b6ccf7.tar.gz
vdr-patch-lnbsharing-09a17d56e2a3f975a0467e8da4ca26c946b6ccf7.tar.bz2
Version 1.7.12vdr-1.7.12
- Changed the EVCONTENTMASK_* macros to enums and changed "mask" to "group". - Updated the Estonian OSD texts (thanks to Arthur Konovalov). - The "Edit timer" menu can now set the folder for the recording from a list of folders stored in "folders.conf". - Updated the Italian OSD texts (thanks to Diego Pierotto). - If svdrphosts.conf contains only the address of the local host, the SVDRP port is opened only for the local host (thanks to Manuel Reimer). - Renamed 'runvdr' to 'runvdr.template' and no longer copying it to the BINDIR in 'make install' (thanks to Martin Dauskardt). - Added plain text error messages to log entries from cOsd::SetAreas() (suggested by Rolf Ahrenberg). - cPalette::ClosestColor() now treats fully transparent colors as "equal"; improved cDvbSpuBitmap::getMinBpp() (thanks to Matthieu Castet and Johann Friedrichs). - The new setup option "Miscellaneous/Channels wrap" controls whether the current channel wraps around the beginning or end of the channel list when zapping (thanks to Matti Lehtimäki). - Fixed determining the frame duration on channels where the PTS deltas jitter by +/-1 around 1800. - The PCR pid in generated PMTs is now set to the channel's PCR pid again. - Fixed determining the frame duration on channels where the PTS deltas jitter by +/-1 around 3600. - The PCR pid is now recorded for channels where this is different from the video PID. To facilitate this, the interfaces of cTransfer, cTransferControl, cRecorder and cReceiver have been modified, so that the PIDs are no longer given in separate parameters, but rather the whole channel is handed down for processing. The old constructor of cReceiver is still available, but it is recommended to plugin authors that they switch to the new interface as soon as possible. When replaying such a recording, the PCR packets are sent to PlayTsVideo() - The files "commands.conf" and "reccmd.conf" can now contain nested lists of commands. See vdr.5 for information about the new file format.
Diffstat (limited to 'receiver.h')
-rw-r--r--receiver.h37
1 files changed, 27 insertions, 10 deletions
diff --git a/receiver.h b/receiver.h
index 35930d2..bd98a42 100644
--- a/receiver.h
+++ b/receiver.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: receiver.h 2.0 2007/01/05 11:00:36 kls Exp $
+ * $Id: receiver.h 2.1 2010/01/30 10:25:19 kls Exp $
*/
#ifndef __RECEIVER_H
@@ -14,6 +14,8 @@
#define MAXRECEIVEPIDS 64 // the maximum number of PIDs per receiver
+#define LEGACY_CRECEIVER // Code enclosed with this macro is deprecated and may be removed in a future version
+
class cReceiver {
friend class cDevice;
private:
@@ -38,20 +40,35 @@ protected:
///< will be delivered only ONCE, so the cReceiver must make sure that
///< it will be able to buffer the data if necessary.
public:
+#ifdef LEGACY_CRECEIVER
cReceiver(tChannelID ChannelID, int Priority, int Pid, const int *Pids1 = NULL, const int *Pids2 = NULL, const int *Pids3 = NULL);
- ///< Creates a new receiver for the channel with the given ChannelID with
- ///< the given Priority. Pid is a single PID (typically the video PID), while
- ///< Pids1...Pids3 are pointers to zero terminated lists of PIDs.
- ///< If any of these PIDs are 0, they will be silently ignored.
- ///< The total number of non-zero PIDs must not exceed MAXRECEIVEPIDS.
+#endif
+ cReceiver(const cChannel *Channel = NULL, int Priority = -1);
+ ///< Creates a new receiver for the given Channel with the given Priority.
+ ///< If Channel is not NULL, its pids set by a call to SetPids().
+ ///< Otherwise pids can be added to the receiver by separate calls to the AddPid[s]
+ ///< functions.
+ ///< The total number of PIDs added to a receiver must not exceed MAXRECEIVEPIDS.
///< Priority may be any value in the range -99..99. Negative values indicate
///< that this cReceiver may be detached at any time (without blocking the
///< cDevice it is attached to).
- ///< The ChannelID is necessary to allow the device that will be used for this
- ///< receiver to detect and store whether the channel can be decrypted in case
- ///< this is an encrypted channel. If the channel is not encrypted or this
- ///< detection is not wanted, an invalid tChannelID may be given.
virtual ~cReceiver();
+ bool AddPid(int Pid);
+ ///< Adds the given Pid to the list of PIDs of this receiver.
+ bool AddPids(const int *Pids);
+ ///< Adds the given izero terminated list of Pids to the list of PIDs of this
+ ///< receiver.
+ bool AddPids(int Pid1, int Pid2, int Pid3 = 0, int Pid4 = 0, int Pid5 = 0, int Pid6 = 0, int Pid7 = 0, int Pid8 = 0, int Pid9 = 0);
+ ///< Adds the given Pids to the list of PIDs of this receiver.
+ bool SetPids(const cChannel *Channel);
+ ///< Sets the PIDs of this receiver to those of the given Channel,
+ ///< replacing and previously stored PIDs. If Channel is NULL, all
+ ///< PIDs will be cleared. Parameters in the Setup may control whether
+ ///< certain types of PIDs (like Dolby Digital, for instance) are
+ ///< actually set. The Channel's ID is stored and can later be retrieved
+ ///< through ChannelID(). The ChannelID is necessary to allow the device
+ ///< that will be used for this receiver to detect and store whether the
+ ///< channel can be decrypted in case this is an encrypted channel.
tChannelID ChannelID(void) { return channelID; }
bool IsAttached(void) { return device != NULL; }
///< Returns true if this receiver is (still) attached to a device.