mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Limited automatic retuning to devices that actually provide the transponder
This commit is contained in:
parent
955d5eb012
commit
0a3f7e7ca2
2
HISTORY
2
HISTORY
@ -2669,3 +2669,5 @@ Video Disk Recorder Revision History
|
|||||||
happen on my system, this has not been explicitly tested.
|
happen on my system, this has not been explicitly tested.
|
||||||
- Adapted the 'sky' plugin to use the actual channel IDs, and to fetch EPG data
|
- Adapted the 'sky' plugin to use the actual channel IDs, and to fetch EPG data
|
||||||
from www.bleb.org.
|
from www.bleb.org.
|
||||||
|
- Limited automatic retuning to devices that actually provide the transponder
|
||||||
|
(necessary for the 'sky' plugin).
|
||||||
|
14
menu.c
14
menu.c
@ -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: menu.c 1.285 2004/02/13 13:23:07 kls Exp $
|
* $Id: menu.c 1.286 2004/02/15 14:29:53 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "menu.h"
|
#include "menu.h"
|
||||||
@ -3241,7 +3241,7 @@ void cRecordControls::Stop(cDevice *Device)
|
|||||||
{
|
{
|
||||||
for (int i = 0; i < MAXRECORDCONTROLS; i++) {
|
for (int i = 0; i < MAXRECORDCONTROLS; i++) {
|
||||||
if (RecordControls[i]) {
|
if (RecordControls[i]) {
|
||||||
if (RecordControls[i]->Uses(Device)) {
|
if (RecordControls[i]->Device() == Device) {
|
||||||
isyslog("stopping recording on DVB device %d due to higher priority", Device->CardIndex() + 1);
|
isyslog("stopping recording on DVB device %d due to higher priority", Device->CardIndex() + 1);
|
||||||
RecordControls[i]->Stop(true);
|
RecordControls[i]->Stop(true);
|
||||||
}
|
}
|
||||||
@ -3320,10 +3320,12 @@ void cRecordControls::ChannelDataModified(cChannel *Channel)
|
|||||||
for (int i = 0; i < MAXRECORDCONTROLS; i++) {
|
for (int i = 0; i < MAXRECORDCONTROLS; i++) {
|
||||||
if (RecordControls[i]) {
|
if (RecordControls[i]) {
|
||||||
if (RecordControls[i]->Timer() && RecordControls[i]->Timer()->Channel() == Channel) {
|
if (RecordControls[i]->Timer() && RecordControls[i]->Timer()->Channel() == Channel) {
|
||||||
isyslog("stopping recording due to modification of channel %d", Channel->Number());
|
if (RecordControls[i]->Device()->ProvidesTransponder(Channel)) { // avoids retune on devices that don't really access the transponder
|
||||||
RecordControls[i]->Stop(true);
|
isyslog("stopping recording due to modification of channel %d", Channel->Number());
|
||||||
// This will restart the recording, maybe even from a different
|
RecordControls[i]->Stop(true);
|
||||||
// device in case conditional access has changed.
|
// This will restart the recording, maybe even from a different
|
||||||
|
// device in case conditional access has changed.
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
4
menu.h
4
menu.h
@ -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: menu.h 1.59 2004/01/04 11:01:13 kls Exp $
|
* $Id: menu.h 1.60 2004/02/15 14:11:28 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __MENU_H
|
#ifndef __MENU_H
|
||||||
@ -123,7 +123,7 @@ public:
|
|||||||
cRecordControl(cDevice *Device, cTimer *Timer = NULL, bool Pause = false);
|
cRecordControl(cDevice *Device, cTimer *Timer = NULL, bool Pause = false);
|
||||||
virtual ~cRecordControl();
|
virtual ~cRecordControl();
|
||||||
bool Process(time_t t);
|
bool Process(time_t t);
|
||||||
bool Uses(cDevice *Device) { return Device == device; }
|
cDevice *Device(void) { return device; }
|
||||||
void Stop(bool KeepInstant = false);
|
void Stop(bool KeepInstant = false);
|
||||||
bool IsInstant(void) { return instantId; }
|
bool IsInstant(void) { return instantId; }
|
||||||
const char *InstantId(void) { return instantId; }
|
const char *InstantId(void) { return instantId; }
|
||||||
|
8
vdr.c
8
vdr.c
@ -22,7 +22,7 @@
|
|||||||
*
|
*
|
||||||
* The project's page is at http://www.cadsoft.de/vdr
|
* The project's page is at http://www.cadsoft.de/vdr
|
||||||
*
|
*
|
||||||
* $Id: vdr.c 1.176 2004/02/13 13:13:13 kls Exp $
|
* $Id: vdr.c 1.177 2004/02/15 14:29:30 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
@ -526,8 +526,10 @@ int main(int argc, char *argv[])
|
|||||||
cRecordControls::ChannelDataModified(Channel);
|
cRecordControls::ChannelDataModified(Channel);
|
||||||
if (Channel->Number() == cDevice::CurrentChannel()) {
|
if (Channel->Number() == cDevice::CurrentChannel()) {
|
||||||
if (!cDevice::PrimaryDevice()->Replaying() || cTransferControl::ReceiverDevice()) {
|
if (!cDevice::PrimaryDevice()->Replaying() || cTransferControl::ReceiverDevice()) {
|
||||||
isyslog("retuning due to modification of channel %d", Channel->Number());
|
if (cDevice::ActualDevice()->ProvidesTransponder(Channel)) { // avoids retune on devices that don't really access the transponder
|
||||||
Channels.SwitchTo(Channel->Number());
|
isyslog("retuning due to modification of channel %d", Channel->Number());
|
||||||
|
Channels.SwitchTo(Channel->Number());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user