summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2014-01-25 10:54:51 +0100
committerKlaus Schmidinger <vdr@tvdr.de>2014-01-25 10:54:51 +0100
commitfdbf796b6b9dbe83c6874002c1e01dbac09f7eae (patch)
tree71abc2eac5e3bfb6674233ed6f4ac574a8a7125c
parent5ac41bf09175b48cf09606c1cd16bf0615ced837 (diff)
downloadvdr-fdbf796b6b9dbe83c6874002c1e01dbac09f7eae.tar.gz
vdr-fdbf796b6b9dbe83c6874002c1e01dbac09f7eae.tar.bz2
The new function cStatus::ChannelChange() can be implemented by plugins to be informed about changes to the parameters of a channel that may require a retune
-rw-r--r--CONTRIBUTORS4
-rw-r--r--HISTORY7
-rw-r--r--status.c8
-rw-r--r--status.h6
-rw-r--r--vdr.c4
5 files changed, 25 insertions, 4 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 4bd4059b..c1099978 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -3250,3 +3250,7 @@ Eike Sauer <EikeSauer@t-online.de>
Christian Paulick <cpaulick@xeatre.tv>
for reporting a problem with frame detection in MPEG-2 streams that have "bottom fields"
or varying GOP structures
+
+Mariusz Bialonczyk <manio@skyboo.net>
+ for reporting a problem with live streaming of encrypted channels, when there are no
+ CA descriptors, yet, on initial tuning
diff --git a/HISTORY b/HISTORY
index 3843d3a9..be5de53f 100644
--- a/HISTORY
+++ b/HISTORY
@@ -8132,7 +8132,7 @@ Video Disk Recorder Revision History
and also to use the correct directory with --edit (the latter reported by Marko
Mäkelä).
-2014-01-22: Version 2.1.4
+2014-01-25: Version 2.1.4
- Updated 'sources.conf' (thanks to Antti Hartikainen).
- cFont::CreateFont() now returns a dummy font in case there are no fonts installed.
@@ -8162,3 +8162,8 @@ Video Disk Recorder Revision History
three variations of "editing" a recording (suggested by Christoph Haubrich).
Maintainers of translations for other languages may want to change their *.po files
accordingly.
+- The new function cStatus::ChannelChange() can be implemented by plugins to be
+ informed about changes to the parameters of a channel that may require a retune.
+ This may, for instance, be useful for plugins that implement live streaming, so that
+ they can react on changes to a channel's PIDs or CA descriptors (problem reported
+ by Mariusz Bialonczyk).
diff --git a/status.c b/status.c
index b0a6aba0..10b8ce8a 100644
--- a/status.c
+++ b/status.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: status.c 2.1 2012/03/07 14:17:24 kls Exp $
+ * $Id: status.c 3.1 2014/01/25 10:47:39 kls Exp $
*/
#include "status.h"
@@ -23,6 +23,12 @@ cStatus::~cStatus()
statusMonitors.Del(this, false);
}
+void cStatus::MsgChannelChange(const cChannel *Channel)
+{
+ for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm))
+ sm->ChannelChange(Channel);
+}
+
void cStatus::MsgTimerChange(const cTimer *Timer, eTimerChange Change)
{
for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm))
diff --git a/status.h b/status.h
index 63191657..222280ac 100644
--- a/status.h
+++ b/status.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: status.h 2.1 2012/03/07 14:16:57 kls Exp $
+ * $Id: status.h 3.1 2014/01/25 10:47:39 kls Exp $
*/
#ifndef __STATUS_H
@@ -24,6 +24,9 @@ private:
static cList<cStatus> statusMonitors;
protected:
// These functions can be implemented by derived classes to receive status information:
+ virtual void ChannelChange(const cChannel *Channel) {}
+ // Indicates a change in the parameters of the given Channel that may
+ // require a retune.
virtual void TimerChange(const cTimer *Timer, eTimerChange Change) {}
// Indicates a change in the timer settings.
// If Change is tcAdd or tcDel, Timer points to the timer that has
@@ -85,6 +88,7 @@ public:
cStatus(void);
virtual ~cStatus();
// These functions are called whenever the related status information changes:
+ static void MsgChannelChange(const cChannel *Channel);
static void MsgTimerChange(const cTimer *Timer, eTimerChange Change);
static void MsgChannelSwitch(const cDevice *Device, int ChannelNumber, bool LiveView);
static void MsgRecording(const cDevice *Device, const char *Name, const char *FileName, bool On);
diff --git a/vdr.c b/vdr.c
index 657bec7a..c03d7776 100644
--- a/vdr.c
+++ b/vdr.c
@@ -22,7 +22,7 @@
*
* The project's page is at http://www.tvdr.de
*
- * $Id: vdr.c 3.8 2014/01/16 11:25:03 kls Exp $
+ * $Id: vdr.c 3.9 2014/01/25 10:47:39 kls Exp $
*/
#include <getopt.h>
@@ -60,6 +60,7 @@
#include "skinsttng.h"
#include "sourceparams.h"
#include "sources.h"
+#include "status.h"
#include "themes.h"
#include "timers.h"
#include "tools.h"
@@ -924,6 +925,7 @@ int main(int argc, char *argv[])
}
}
}
+ cStatus::MsgChannelChange(Channel);
}
}
Channels.Unlock();