diff options
-rw-r--r-- | HISTORY | 5 | ||||
-rw-r--r-- | PLUGINS.html | 4 | ||||
-rw-r--r-- | PLUGINS/src/rcu/HISTORY | 4 | ||||
-rw-r--r-- | PLUGINS/src/rcu/rcu.c | 10 | ||||
-rw-r--r-- | device.c | 6 | ||||
-rw-r--r-- | eitscan.c | 5 | ||||
-rw-r--r-- | eitscan.h | 4 | ||||
-rw-r--r-- | status.c | 6 | ||||
-rw-r--r-- | status.h | 7 |
9 files changed, 28 insertions, 23 deletions
@@ -6984,3 +6984,8 @@ Video Disk Recorder Revision History - Removed the calls to EITScanner.UsesDevice(this) from dvb[hs]ddevice.c, because the code following these calls is only executed if LiveView is true, which is never the case when the EITScanner switches to a channel. +- Removed the obsolete function cEITScanner::UsesDevice(). If a plugin has used this + function to find out whether a call to its cStatus::ChannelSwitch() function was + due to a live channel switch, it can use that function's new parameter LiveView. + Any plugins that implement cStatus::ChannelSwitch() need to add the parameter + 'bool LiveView' to that function. diff --git a/PLUGINS.html b/PLUGINS.html index 804d0550..5f936e56 100644 --- a/PLUGINS.html +++ b/PLUGINS.html @@ -1221,10 +1221,10 @@ If a plugin wants to get informed on various events in VDR, it can derive a clas class cMyStatusMonitor : public cStatus { protected: - virtual void ChannelSwitch(const cDevice *Device, int ChannelNumber); + virtual void ChannelSwitch(const cDevice *Device, int ChannelNumber<div class="modified">, bool LiveView</div>); }; -void cMyStatusMonitor::ChannelSwitch(const cDevice *Device, int ChannelNumber) +void cMyStatusMonitor::ChannelSwitch(const cDevice *Device, int ChannelNumber<div class="modified">, bool LiveView</div>) { if (ChannelNumber) dsyslog("channel switched to %d on DVB %d", ChannelNumber, Device->CardIndex()); diff --git a/PLUGINS/src/rcu/HISTORY b/PLUGINS/src/rcu/HISTORY index 692f6208..87b9413e 100644 --- a/PLUGINS/src/rcu/HISTORY +++ b/PLUGINS/src/rcu/HISTORY @@ -4,3 +4,7 @@ VDR Plugin 'rcu' Revision History 2012-02-27: Version 0.0.1 - Initial revision. + +2012-03-07: Version 0.0.2 + +- Added new parameter LiveView to ChannelSwitch(). diff --git a/PLUGINS/src/rcu/rcu.c b/PLUGINS/src/rcu/rcu.c index f0abedde..79f46122 100644 --- a/PLUGINS/src/rcu/rcu.c +++ b/PLUGINS/src/rcu/rcu.c @@ -3,7 +3,7 @@ * * See the README file for copyright information and how to reach the author. * - * $Id: rcu.c 1.1 2012/02/27 11:49:51 kls Exp $ + * $Id: rcu.c 1.2 2012/03/07 14:22:44 kls Exp $ */ #include <getopt.h> @@ -16,7 +16,7 @@ #include <vdr/thread.h> #include <vdr/tools.h> -static const char *VERSION = "0.0.1"; +static const char *VERSION = "0.0.2"; static const char *DESCRIPTION = "Remote Control Unit"; #define REPEATLIMIT 150 // ms @@ -44,7 +44,7 @@ private: void SetString(const char *s); bool DetectCode(unsigned char *Code); virtual void Action(void); - virtual void ChannelSwitch(const cDevice *Device, int ChannelNumber); + virtual void ChannelSwitch(const cDevice *Device, int ChannelNumber, bool LiveView); virtual void Recording(const cDevice *Device, const char *Name, const char *FileName, bool On); public: cRcuRemote(const char *DeviceName); @@ -353,9 +353,9 @@ bool cRcuRemote::DetectCode(unsigned char *Code) return false; } -void cRcuRemote::ChannelSwitch(const cDevice *Device, int ChannelNumber) +void cRcuRemote::ChannelSwitch(const cDevice *Device, int ChannelNumber, bool LiveView) { - if (ChannelNumber && Device->IsPrimaryDevice()) + if (ChannelNumber && LiveView) SetNumber(cDevice::CurrentChannel()); } @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: device.c 2.56 2012/03/06 12:32:38 kls Exp $ + * $Id: device.c 2.57 2012/03/07 14:17:49 kls Exp $ */ #include "device.h" @@ -723,7 +723,7 @@ bool cDevice::SwitchChannel(int Direction) eSetChannelResult cDevice::SetChannel(const cChannel *Channel, bool LiveView) { - cStatus::MsgChannelSwitch(this, 0); + cStatus::MsgChannelSwitch(this, 0, LiveView); if (LiveView) { StopReplay(); @@ -793,7 +793,7 @@ eSetChannelResult cDevice::SetChannel(const cChannel *Channel, bool LiveView) EnsureAudioTrack(true); EnsureSubtitleTrack(); } - cStatus::MsgChannelSwitch(this, Channel->Number()); // only report status if channel switch successfull + cStatus::MsgChannelSwitch(this, Channel->Number(), LiveView); // only report status if channel switch successfull } return Result; @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: eitscan.c 2.5 2011/10/16 14:10:00 kls Exp $ + * $Id: eitscan.c 2.6 2012/03/07 14:16:57 kls Exp $ */ #include "eitscan.h" @@ -92,7 +92,6 @@ cEITScanner EITScanner; cEITScanner::cEITScanner(void) { lastScan = lastActivity = time(NULL); - currentDevice = NULL; currentChannel = 0; scanList = NULL; transponderList = NULL; @@ -159,10 +158,8 @@ void cEITScanner::Process(void) Skins.Message(mtInfo, tr("Starting EPG scan")); } } - currentDevice = Device;//XXX see also dvbdevice.c!!! //dsyslog("EIT scan: device %d source %-8s tp %5d", Device->DeviceNumber() + 1, *cSource::ToString(Channel->Source()), Channel->Transponder()); Device->SwitchChannel(Channel, false); - currentDevice = NULL; scanList->Del(ScanData); AnyDeviceSwitched = true; break; @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: eitscan.h 1.9 2005/09/04 10:51:35 kls Exp $ + * $Id: eitscan.h 2.1 2012/03/07 14:16:57 kls Exp $ */ #ifndef __EITSCAN_H @@ -24,7 +24,6 @@ private: ScanTimeout = 20 }; time_t lastScan, lastActivity; - cDevice *currentDevice; int currentChannel; cScanList *scanList; cTransponderList *transponderList; @@ -32,7 +31,6 @@ public: cEITScanner(void); ~cEITScanner(); bool Active(void) { return currentChannel || lastActivity == 0; } - bool UsesDevice(const cDevice *Device) { return currentDevice == Device; } void AddTransponder(cChannel *Channel); void ForceScan(void); void Activity(void); @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: status.c 1.10 2008/02/16 14:46:31 kls Exp $ + * $Id: status.c 2.1 2012/03/07 14:17:24 kls Exp $ */ #include "status.h" @@ -29,10 +29,10 @@ void cStatus::MsgTimerChange(const cTimer *Timer, eTimerChange Change) sm->TimerChange(Timer, Change); } -void cStatus::MsgChannelSwitch(const cDevice *Device, int ChannelNumber) +void cStatus::MsgChannelSwitch(const cDevice *Device, int ChannelNumber, bool LiveView) { for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm)) - sm->ChannelSwitch(Device, ChannelNumber); + sm->ChannelSwitch(Device, ChannelNumber, LiveView); } void cStatus::MsgRecording(const cDevice *Device, const char *Name, const char *FileName, bool On) @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: status.h 1.12 2008/02/16 15:00:33 kls Exp $ + * $Id: status.h 2.1 2012/03/07 14:16:57 kls Exp $ */ #ifndef __STATUS_H @@ -30,10 +30,11 @@ protected: // been added or will be deleted, respectively. In case of tcMod, // Timer is NULL; this indicates that some timer has been changed. // Note that tcAdd and tcDel are always also followed by a tcMod. - virtual void ChannelSwitch(const cDevice *Device, int ChannelNumber) {} + virtual void ChannelSwitch(const cDevice *Device, int ChannelNumber, bool LiveView) {} // Indicates a channel switch on the given DVB device. // If ChannelNumber is 0, this is before the channel is being switched, // otherwise ChannelNumber is the number of the channel that has been switched to. + // LiveView tells whether this channel switch is for live viewing. virtual void Recording(const cDevice *Device, const char *Name, const char *FileName, bool On) {} // The given DVB device has started (On = true) or stopped (On = false) recording Name. // Name is the name of the recording, without any directory path. The full file name @@ -85,7 +86,7 @@ public: virtual ~cStatus(); // These functions are called whenever the related status information changes: static void MsgTimerChange(const cTimer *Timer, eTimerChange Change); - static void MsgChannelSwitch(const cDevice *Device, int ChannelNumber); + static void MsgChannelSwitch(const cDevice *Device, int ChannelNumber, bool LiveView); static void MsgRecording(const cDevice *Device, const char *Name, const char *FileName, bool On); static void MsgReplaying(const cControl *Control, const char *Name, const char *FileName, bool On); static void MsgSetVolume(int Volume, bool Absolute); |