summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2012-09-02 09:35:31 +0200
committerKlaus Schmidinger <vdr@tvdr.de>2012-09-02 09:35:31 +0200
commit378a05a96d797eb87be04dc9473a1e5562a32d4e (patch)
tree9d8a82bcf00daee9f091a8e76afcb2deeeaf4e7d
parent13edfc13820efc784c08b7b93e73f34a73c1e80e (diff)
downloadvdr-378a05a96d797eb87be04dc9473a1e5562a32d4e.tar.gz
vdr-378a05a96d797eb87be04dc9473a1e5562a32d4e.tar.bz2
Changed the semantics of the cReceiver::Activate() function (it is now called with 'false' *after* the receiver has been detached from the device
-rw-r--r--HISTORY5
-rw-r--r--device.c4
-rw-r--r--receiver.h4
3 files changed, 8 insertions, 5 deletions
diff --git a/HISTORY b/HISTORY
index 1f49b1a1..e1a11ab4 100644
--- a/HISTORY
+++ b/HISTORY
@@ -7191,7 +7191,7 @@ Video Disk Recorder Revision History
turn on adding the source character to channel names whenever they are displayed
(suggested by Ludi Kaleni).
-2012-09-01: Version 1.7.30
+2012-09-02: Version 1.7.30
- Fixed sorting recordings in the top level video directory.
- Fixed handling control characters in SI data in case of UTF-8 encoded strings
@@ -7206,6 +7206,9 @@ Video Disk Recorder Revision History
- Fixed detecting transfer mode on full featured DVB cards (thanks to Stefan Huelswitt
for reporting a problem with updating CA descriptors in such cases).
- Fixed a race condition when zapping in transfer mode (reported by Reinhard Nissl).
+ This involves a slight change in the semantics of the cReceiver::Activate() function,
+ which is now called with 'false' *after* the receiver has been detached from the
+ device.
- The new function cDevice::ReadFilter() can be used by devices to implement their
own way of retrieving section filter data (thanks to Deti Fliegl).
- The new function cDevice::HasInternalCam() can be implemented by devices that
diff --git a/device.c b/device.c
index a5a0ec78..6518e820 100644
--- a/device.c
+++ b/device.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: device.c 2.66 2012/08/31 11:02:24 kls Exp $
+ * $Id: device.c 2.67 2012/09/02 09:26:36 kls Exp $
*/
#include "device.h"
@@ -1676,10 +1676,10 @@ void cDevice::Detach(cReceiver *Receiver)
for (int i = 0; i < MAXRECEIVERS; i++) {
if (receiver[i] == Receiver) {
Lock();
- Receiver->Activate(false);
receiver[i] = NULL;
Receiver->device = NULL;
Unlock();
+ Receiver->Activate(false);
for (int n = 0; n < Receiver->numPids; n++)
DelPid(Receiver->pids[n]);
}
diff --git a/receiver.h b/receiver.h
index eb2f32a7..775dabdf 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.8 2012/06/02 13:20:44 kls Exp $
+ * $Id: receiver.h 2.9 2012/09/02 09:27:20 kls Exp $
*/
#ifndef __RECEIVER_H
@@ -27,7 +27,7 @@ protected:
void Detach(void);
virtual void Activate(bool On) {}
///< This function is called just before the cReceiver gets attached to
- ///< (On == true) or detached from (On == false) a cDevice. It can be used
+ ///< (On == true) and right after it gets detached from (On == false) a cDevice. It can be used
///< to do things like starting/stopping a thread.
///< It is guaranteed that Receive() will not be called before Activate(true).
virtual void Receive(uchar *Data, int Length) = 0;