1
0
mirror of https://github.com/VDR4Arch/vdr.git synced 2023-10-10 13:36:52 +02:00

Changed the semantics of the cReceiver::Activate() function (it is now called with 'false' *after* the receiver has been detached from the device

This commit is contained in:
Klaus Schmidinger 2012-09-02 09:35:31 +02:00
parent 13edfc1382
commit 378a05a96d
3 changed files with 8 additions and 5 deletions

View File

@ -7191,7 +7191,7 @@ Video Disk Recorder Revision History
turn on adding the source character to channel names whenever they are displayed turn on adding the source character to channel names whenever they are displayed
(suggested by Ludi Kaleni). (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 sorting recordings in the top level video directory.
- Fixed handling control characters in SI data in case of UTF-8 encoded strings - 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 - Fixed detecting transfer mode on full featured DVB cards (thanks to Stefan Huelswitt
for reporting a problem with updating CA descriptors in such cases). for reporting a problem with updating CA descriptors in such cases).
- Fixed a race condition when zapping in transfer mode (reported by Reinhard Nissl). - 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 - The new function cDevice::ReadFilter() can be used by devices to implement their
own way of retrieving section filter data (thanks to Deti Fliegl). own way of retrieving section filter data (thanks to Deti Fliegl).
- The new function cDevice::HasInternalCam() can be implemented by devices that - The new function cDevice::HasInternalCam() can be implemented by devices that

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * 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" #include "device.h"
@ -1676,10 +1676,10 @@ void cDevice::Detach(cReceiver *Receiver)
for (int i = 0; i < MAXRECEIVERS; i++) { for (int i = 0; i < MAXRECEIVERS; i++) {
if (receiver[i] == Receiver) { if (receiver[i] == Receiver) {
Lock(); Lock();
Receiver->Activate(false);
receiver[i] = NULL; receiver[i] = NULL;
Receiver->device = NULL; Receiver->device = NULL;
Unlock(); Unlock();
Receiver->Activate(false);
for (int n = 0; n < Receiver->numPids; n++) for (int n = 0; n < Receiver->numPids; n++)
DelPid(Receiver->pids[n]); DelPid(Receiver->pids[n]);
} }

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * 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 #ifndef __RECEIVER_H
@ -27,7 +27,7 @@ protected:
void Detach(void); void Detach(void);
virtual void Activate(bool On) {} virtual void Activate(bool On) {}
///< This function is called just before the cReceiver gets attached to ///< 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. ///< to do things like starting/stopping a thread.
///< It is guaranteed that Receive() will not be called before Activate(true). ///< It is guaranteed that Receive() will not be called before Activate(true).
virtual void Receive(uchar *Data, int Length) = 0; virtual void Receive(uchar *Data, int Length) = 0;