summaryrefslogtreecommitdiff
path: root/vdr.c
diff options
context:
space:
mode:
authorKlaus Schmidinger <kls (at) cadsoft (dot) de>2003-04-21 18:00:00 +0200
committerKlaus Schmidinger <kls (at) cadsoft (dot) de>2003-04-21 18:00:00 +0200
commit21a52ccb6d43cce35f7a381f55ea291195416f33 (patch)
treebc7d86214e695434ca7170bff799bcc4aaca5401 /vdr.c
parent9f919801465f49be6b2118f54bd54df846e2f865 (diff)
downloadvdr-patch-lnbsharing-21a52ccb6d43cce35f7a381f55ea291195416f33.tar.gz
vdr-patch-lnbsharing-21a52ccb6d43cce35f7a381f55ea291195416f33.tar.bz2
Version 1.1.28vdr-1.1.28
- Using masks in EIT filtering to reduce the number of filters (thanks to Andreas Schultz). - Fixed handling Ca descriptors (thanks to Stefan Huelswitt). - Now only those Ca descriptors are sent to a CAM that are actually understood by that CAM. - Re-enabled CAM communication during replay and on non-Ca channels. This requires a DVB driver with firmware version 2613 or later. - It is now possible to do simultaneous recording and replay with a single DVB card, even with encrypted channels. This requires the use of the Link Layer firmware, version 2613 or higher; the -icam firmware is still limited to live encrypted channels only. Finally we have time shift for encrypted channels on single card systems! - Enhanced detection of pending user I/O from CAMs to avoid sluggish reaction to remote control keypresses. - Implemented "pause live video". You can now press "Menu/Yellow" or "Pause" on your remote control while watching live video to start an instant recording of the current programme and immediately start replaying that recording.
Diffstat (limited to 'vdr.c')
-rw-r--r--vdr.c35
1 files changed, 27 insertions, 8 deletions
diff --git a/vdr.c b/vdr.c
index 3f0a7f0..a160e4c 100644
--- a/vdr.c
+++ b/vdr.c
@@ -22,7 +22,7 @@
*
* The project's page is at http://www.cadsoft.de/people/kls/vdr
*
- * $Id: vdr.c 1.149 2003/04/12 13:57:45 kls Exp $
+ * $Id: vdr.c 1.150 2003/04/21 14:41:41 kls Exp $
*/
#include <getopt.h>
@@ -553,6 +553,26 @@ int main(int argc, char *argv[])
cDisplayVolume::Process(key);
key = kNone; // nobody else needs to see these keys
break;
+ // Pausing live video:
+ case kPause:
+ if (!cControl::Control()) {
+ DELETENULL(Menu);
+ Temp = NULL;
+ if (!cRecordControls::PauseLiveVideo())
+ Interface->Error(tr("No free DVB device to record!"));
+ key = kNone; // nobody else needs to see this key
+ }
+ break;
+ // Instant recording:
+ case kRecord:
+ if (!cControl::Control()) {
+ if (cRecordControls::Start())
+ ;//XXX Interface->Info(tr("Recording"));
+ else
+ Interface->Error(tr("No free DVB device to record!"));
+ key = kNone; // nobody else needs to see this key
+ }
+ break;
// Power off:
case kPower: isyslog("Power button pressed");
DELETENULL(Menu);
@@ -577,6 +597,12 @@ int main(int argc, char *argv[])
if (state == osUnknown && ISMODELESSKEY(key) && cControl::Control() && Interact != cControl::Control())
state = cControl::Control()->ProcessKey(key);
switch (state) {
+ case osPause: DELETENULL(Menu);
+ cControl::Shutdown(); // just in case
+ Temp = NULL;
+ if (!cRecordControls::PauseLiveVideo())
+ Interface->Error(tr("No free DVB device to record!"));
+ break;
case osRecord: DELETENULL(Menu);
Temp = NULL;
if (cRecordControls::Start())
@@ -652,13 +678,6 @@ int main(int argc, char *argv[])
break;
// Viewing Control:
case kOk: LastChannel = -1; break; // forces channel display
- // Instant recording:
- case kRecord:
- if (cRecordControls::Start())
- ;//XXX Interface->Info(tr("Recording"));
- else
- Interface->Error(tr("No free DVB device to record!"));
- break;
// Key macros:
case kRed:
case kGreen: