mirror of
				https://github.com/vdr-projects/vdr.git
				synced 2025-03-01 10:50:46 +00:00 
			
		
		
		
	Version 1.2.2
- Fixed a bug in channel switching after Left/Right has been pressed (thanks to Michael Walle for reporting this one). - Improved channel switching in case of numerical input by switching as soon as the channel is unique (suggested by Jaakko Hyvätti). - Fixed creating a new channel in the "Channels" menu in case the 'channels.conf' contains ':@nnn' lines with no text (thanks to Guy Roussin for reporting this one). - Changed the behaviour of the '0' key in normal viewing mode so that a channel only qualifies as "previous" if it has been selected for at least 3 seconds (suggested by Thomas Keil). - Now clearing the channel info display when entering numeric keys to switch channels (suggested by Guy Roussin). - Added missing I18N entry for "Ppid" (thanks to Rolf Ahrenberg). - Fixed handling the color buttons in the "Edit channel" menu (thanks to Thomas Keil for reporting this one). - Fixed an occasional "Broken pipe" error in SVDRP connections (thanks to Gerhard Steiner for reporting this one). - Fixed checking CA capabilities with the dvb-kernel driver (thanks to Kenneth Aafløy). - Fixed selecting the device, because sometimes an FTA recording terminated a CA recording (thanks to Emil Naepflein). - Fixed a possible crash in case a VFAT file system is used without compiling VDR with VFAT=1 (thanks to Ernst Fürst for reporting this one). - Now the program uses the values of VIDEODIR and PLUGINDIR defined in Makefile or Make.config as defaults (thanks to Steffen Barszus). - Added the usual menu timeout to the CAM menus.
This commit is contained in:
		
							
								
								
									
										25
									
								
								CONTRIBUTORS
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								CONTRIBUTORS
									
									
									
									
									
								
							@@ -518,6 +518,7 @@ Gerhard Steiner <steiner@mail.austria.com>
 | 
			
		||||
 for fixing resume file handling in case the resume.vdr file can't be written
 | 
			
		||||
 for reporting a problem with newly created timers in case they are not confirmed
 | 
			
		||||
 with "Ok"
 | 
			
		||||
 for reporting an occasional "Broken pipe" error in SVDRP connections
 | 
			
		||||
 | 
			
		||||
Jaakko Hyv<79>tti <jaakko@hyvatti.iki.fi>
 | 
			
		||||
 for translating OSD texts to the Finnish language
 | 
			
		||||
@@ -525,12 +526,16 @@ Jaakko Hyv
 | 
			
		||||
 for fixing recording overlapping timers on the same channel in case
 | 
			
		||||
 DO_REC_AND_PLAY_ON_PRIMARY_DEVICE and/or DO_MULTIPLE_RECORDINGS is not defined
 | 
			
		||||
 for fixing the minimum lifespan of deleted recordings
 | 
			
		||||
 for suggesting to improve channel switching in case of numerical input by switching
 | 
			
		||||
 as soon as the channel is unique
 | 
			
		||||
 | 
			
		||||
Dennis Noordsij <dennis.noordsij@wiral.com>
 | 
			
		||||
 for reporting a small glitch when switching channels
 | 
			
		||||
 | 
			
		||||
Steffen Barszus <st_barszus@gmx.de>
 | 
			
		||||
 for reporting a bug in switching audio tracks in 'Transfer Mode' on the primary DVB device
 | 
			
		||||
 for making the program use the values of VIDEODIR and PLUGINDIR defined in Makefile
 | 
			
		||||
 or Makefile.config as defaults
 | 
			
		||||
 | 
			
		||||
Peter Seyringer <e9425234@student.tuwien.ac.at>
 | 
			
		||||
 for reporting a bug in saving the polarization parameter of channels that have a
 | 
			
		||||
@@ -550,6 +555,8 @@ Guy Roussin <guy.roussin@teledetection.fr>
 | 
			
		||||
 for suggesting not to display channel group delimiters without text
 | 
			
		||||
 for reporting a bug in handling channels in the "Channels" menu in case there are
 | 
			
		||||
 ':@nnn' group separators without names
 | 
			
		||||
 for suggesting to clear the channel info display when entering numeric keys to
 | 
			
		||||
 switch channels
 | 
			
		||||
 | 
			
		||||
Georg Hitsch <georg@hitsch.at>
 | 
			
		||||
 for his help in keeping 'channels.conf' up to date
 | 
			
		||||
@@ -561,6 +568,8 @@ Clemens Kirchgatterer <clemens@thf.ath.cx>
 | 
			
		||||
Emil Naepflein <Emil.Naepflein@philosys.de>
 | 
			
		||||
 for suggesting to take an active SVDRP connection into account when doing shutdown or
 | 
			
		||||
 housekeeping
 | 
			
		||||
 for fixing selecting the device, because sometimes an FTA recording terminated a
 | 
			
		||||
 CA recording
 | 
			
		||||
 | 
			
		||||
Gerald Berwolf <genka@genka.de>
 | 
			
		||||
 for suggesting to deactivate some templates in tools.h in case some plugin needs to
 | 
			
		||||
@@ -719,3 +728,19 @@ Jon Burgess <mplayer@jburgess.uklinux.net>
 | 
			
		||||
 | 
			
		||||
Thomas Schmidt <thomas.schmidt@in.stud.tu-ilmenau.de>
 | 
			
		||||
 for reporting a crash when cancelling a newly created timer
 | 
			
		||||
 | 
			
		||||
Michael Walle <michael.walle@web.de>
 | 
			
		||||
 for reporting a bug in channel switching after Left/Right has been pressed
 | 
			
		||||
 | 
			
		||||
Thomas Keil <tk@commedia-group.com>
 | 
			
		||||
 for suggesting to change the behaviour of the '0' key in normal viewing mode so
 | 
			
		||||
 that a channel only qualifies as "previous" if it has been selected for at least
 | 
			
		||||
 3 seconds
 | 
			
		||||
 for reporting a bug in handling the color buttons in the "Edit channel" menu
 | 
			
		||||
 | 
			
		||||
Kenneth Aafl<66>y <ke-aa@frisurf.no>
 | 
			
		||||
 for fixing checking CA capabilities with the dvb-kernel driver
 | 
			
		||||
 | 
			
		||||
Ernst F<>rst <ernstfuerst@swissonline.ch>
 | 
			
		||||
 for reporting a crash in case a VFAT file system is used without compiling VDR
 | 
			
		||||
 with VFAT=1
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										29
									
								
								HISTORY
									
									
									
									
									
								
							
							
						
						
									
										29
									
								
								HISTORY
									
									
									
									
									
								
							@@ -2253,3 +2253,32 @@ Video Disk Recorder Revision History
 | 
			
		||||
  channel (thanks to Malcolm Caldwell for reporting this one).
 | 
			
		||||
- Some corrections to the Finnish OSD texts (thanks to Niko Tarnanen and Rolf
 | 
			
		||||
  Ahrenberg).
 | 
			
		||||
 | 
			
		||||
2003-08-03: Version 1.2.2
 | 
			
		||||
 | 
			
		||||
- Fixed a bug in channel switching after Left/Right has been pressed (thanks to
 | 
			
		||||
  Michael Walle for reporting this one).
 | 
			
		||||
- Improved channel switching in case of numerical input by switching as soon as
 | 
			
		||||
  the channel is unique (suggested by Jaakko Hyv<79>tti).
 | 
			
		||||
- Fixed creating a new channel in the "Channels" menu in case the 'channels.conf'
 | 
			
		||||
  contains ':@nnn' lines with no text (thanks to Guy Roussin for reporting this
 | 
			
		||||
  one).
 | 
			
		||||
- Changed the behaviour of the '0' key in normal viewing mode so that a channel
 | 
			
		||||
  only qualifies as "previous" if it has been selected for at least 3 seconds
 | 
			
		||||
  (suggested by Thomas Keil).
 | 
			
		||||
- Now clearing the channel info display when entering numeric keys to switch
 | 
			
		||||
  channels (suggested by Guy Roussin).
 | 
			
		||||
- Added missing I18N entry for "Ppid" (thanks to Rolf Ahrenberg).
 | 
			
		||||
- Fixed handling the color buttons in the "Edit channel" menu (thanks to Thomas
 | 
			
		||||
  Keil for reporting this one).
 | 
			
		||||
- Fixed an occasional "Broken pipe" error in SVDRP connections (thanks to Gerhard
 | 
			
		||||
  Steiner for reporting this one).
 | 
			
		||||
- Fixed checking CA capabilities with the dvb-kernel driver (thanks to Kenneth
 | 
			
		||||
  Aafl<66>y).
 | 
			
		||||
- Fixed selecting the device, because sometimes an FTA recording terminated a
 | 
			
		||||
  CA recording (thanks to Emil Naepflein).
 | 
			
		||||
- Fixed a possible crash in case a VFAT file system is used without compiling VDR
 | 
			
		||||
  with VFAT=1 (thanks to Ernst F<>rst for reporting this one).
 | 
			
		||||
- Now the program uses the values of VIDEODIR and PLUGINDIR defined in Makefile
 | 
			
		||||
  or Makefile.config as defaults (thanks to Steffen Barszus).
 | 
			
		||||
- Added the usual menu timeout to the CAM menus.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										3
									
								
								MANUAL
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								MANUAL
									
									
									
									
									
								
							@@ -154,7 +154,8 @@ Version 1.2
 | 
			
		||||
     menu) by pressing the "Blue" button.
 | 
			
		||||
 | 
			
		||||
  Pressing the '0' key in normal viewing mode toggles between the current and
 | 
			
		||||
  the previous channel.
 | 
			
		||||
  the previous channel. A channel is considered "previous" if it has been
 | 
			
		||||
  selected for at least 3 seconds.
 | 
			
		||||
 | 
			
		||||
  After switching to a different channel the channel number and name, as well
 | 
			
		||||
  as the current time are displayed at the top of the screen. If available, the
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,7 @@
 | 
			
		||||
# See the main source file 'vdr.c' for copyright information and
 | 
			
		||||
# how to reach the author.
 | 
			
		||||
#
 | 
			
		||||
# $Id: Make.config.template 1.1 2002/11/01 14:05:36 kls Exp $
 | 
			
		||||
# $Id: Make.config.template 1.2 2003/08/02 14:25:53 kls Exp $
 | 
			
		||||
 | 
			
		||||
### The C compiler and options:
 | 
			
		||||
 | 
			
		||||
@@ -22,4 +22,5 @@ DVBDIR   = ../DVB
 | 
			
		||||
MANDIR   = /usr/local/man
 | 
			
		||||
BINDIR   = /usr/local/bin
 | 
			
		||||
 | 
			
		||||
PLUGINDIR= ./PLUGINS
 | 
			
		||||
VIDEODIR = /video
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								Makefile
									
									
									
									
									
								
							@@ -4,7 +4,7 @@
 | 
			
		||||
# See the main source file 'vdr.c' for copyright information and
 | 
			
		||||
# how to reach the author.
 | 
			
		||||
#
 | 
			
		||||
# $Id: Makefile 1.56 2003/01/06 12:28:09 kls Exp $
 | 
			
		||||
# $Id: Makefile 1.57 2003/08/02 14:27:21 kls Exp $
 | 
			
		||||
 | 
			
		||||
.DELETE_ON_ERROR:
 | 
			
		||||
 | 
			
		||||
@@ -49,6 +49,9 @@ DEFINES += -DREMOTE_$(REMOTE)
 | 
			
		||||
 | 
			
		||||
DEFINES += -D_GNU_SOURCE
 | 
			
		||||
 | 
			
		||||
DEFINES += -DVIDEODIR=\"$(VIDEODIR)\"
 | 
			
		||||
DEFINES += -DPLUGINDIR=\"$(PLUGINDIR)/lib\"
 | 
			
		||||
 | 
			
		||||
ifdef DEBUG_OSD
 | 
			
		||||
DEFINES += -DDEBUG_OSD
 | 
			
		||||
NCURSESLIB = -lncurses
 | 
			
		||||
 
 | 
			
		||||
@@ -85,9 +85,9 @@ Premiere Direkt 3D:12070:h:S19.2E:27500:511:512:0:101:212:0:0:0
 | 
			
		||||
:PW Erotic
 | 
			
		||||
Beate-Uhse.TV:12071:h:S19.2E:27500:1023:1024:0:101:21:0:0:0
 | 
			
		||||
Premiere Erotik 1:12031:h:S19.2E:27500:1279:1280:2:101:513:0:0:0
 | 
			
		||||
Premiere Erotik 2:12070:h:0:27500:1535:1536:0:101:778:0:0:0
 | 
			
		||||
Premiere Erotik 3:12070:h:0:27500:1791:1792:0:101:779:0:0:0
 | 
			
		||||
Premiere Erotik 4:12070:h:0:27500:3583:3584:0:101:780:0:0:0
 | 
			
		||||
Premiere Erotik 2:12070:h:S19.2E:27500:1535:1536:0:101:778:0:0:0
 | 
			
		||||
Premiere Erotik 3:12070:h:S19.2E:27500:1791:1792:0:101:779:0:0:0
 | 
			
		||||
Premiere Erotik 4:12070:h:S19.2E:27500:3583:3584:0:101:780:0:0:0
 | 
			
		||||
:Sportsworld
 | 
			
		||||
Premiere Sport 1:11720:h:S19.2E:27500:255:256,257:0:101:17:0:0:0
 | 
			
		||||
Premiere Sport 2:12031:h:S19.2E:27500:3839:3840:0:101:27:0:0:0
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								ci.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								ci.c
									
									
									
									
									
								
							@@ -4,7 +4,7 @@
 | 
			
		||||
 * See the main source file 'vdr.c' for copyright information and
 | 
			
		||||
 * how to reach the author.
 | 
			
		||||
 *
 | 
			
		||||
 * $Id: ci.c 1.15 2003/05/25 11:45:11 kls Exp $
 | 
			
		||||
 * $Id: ci.c 1.16 2003/08/02 10:00:01 kls Exp $
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/* XXX TODO
 | 
			
		||||
@@ -1314,7 +1314,7 @@ cCiHandler *cCiHandler::CreateCiHandler(const char *FileName)
 | 
			
		||||
        int NumSlots = Caps.slot_num;
 | 
			
		||||
        if (NumSlots > 0) {
 | 
			
		||||
           //XXX dsyslog("CAM: found %d CAM slots", NumSlots); // TODO let's do this only once we can be sure that there _really_ is a CAM adapter!
 | 
			
		||||
           if (Caps.slot_type == CA_CI_LINK)
 | 
			
		||||
           if ((Caps.slot_type & CA_CI_LINK) != 0)
 | 
			
		||||
              return new cCiHandler(fd_ca, NumSlots);
 | 
			
		||||
           else
 | 
			
		||||
              isyslog("CAM doesn't support link layer interface");
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								config.h
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								config.h
									
									
									
									
									
								
							@@ -4,7 +4,7 @@
 | 
			
		||||
 * See the main source file 'vdr.c' for copyright information and
 | 
			
		||||
 * how to reach the author.
 | 
			
		||||
 *
 | 
			
		||||
 * $Id: config.h 1.164 2003/06/06 12:28:20 kls Exp $
 | 
			
		||||
 * $Id: config.h 1.165 2003/06/12 20:37:14 kls Exp $
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef __CONFIG_H
 | 
			
		||||
@@ -19,8 +19,8 @@
 | 
			
		||||
#include "device.h"
 | 
			
		||||
#include "tools.h"
 | 
			
		||||
 | 
			
		||||
#define VDRVERSION  "1.2.1"
 | 
			
		||||
#define VDRVERSNUM   10201  // Version * 10000 + Major * 100 + Minor
 | 
			
		||||
#define VDRVERSION  "1.2.2"
 | 
			
		||||
#define VDRVERSNUM   10202  // Version * 10000 + Major * 100 + Minor
 | 
			
		||||
 | 
			
		||||
#define MAXPRIORITY 99
 | 
			
		||||
#define MAXLIFETIME 99
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										39
									
								
								device.c
									
									
									
									
									
								
							
							
						
						
									
										39
									
								
								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 1.45 2003/06/08 09:19:59 kls Exp $
 | 
			
		||||
 * $Id: device.c 1.46 2003/08/02 11:44:28 kls Exp $
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "device.h"
 | 
			
		||||
@@ -142,23 +142,34 @@ cDevice *cDevice::GetDevice(int Index)
 | 
			
		||||
cDevice *cDevice::GetDevice(const cChannel *Channel, int Priority, bool *NeedsDetachReceivers)
 | 
			
		||||
{
 | 
			
		||||
  cDevice *d = NULL;
 | 
			
		||||
  int select = 7, pri;
 | 
			
		||||
 | 
			
		||||
  for (int i = 0; i < numDevices; i++) {
 | 
			
		||||
      bool ndr;
 | 
			
		||||
      if (device[i]->ProvidesChannel(Channel, Priority, &ndr) // this device is basicly able to do the job
 | 
			
		||||
         && (!d // we don't have a device yet, or...
 | 
			
		||||
            || (device[i]->Receiving() && !ndr) // ...this one is already receiving and allows additional receivers, or...
 | 
			
		||||
            || !d->Receiving() // ...the one we have is not receiving...
 | 
			
		||||
               && (device[i]->Priority() < d->Priority() // ...this one has an even lower Priority, or...
 | 
			
		||||
                  || device[i]->Priority() == d->Priority() // ...same Priority...
 | 
			
		||||
                     && device[i]->ProvidesCa(Channel->Ca()) < d->ProvidesCa(Channel->Ca()) // ...but this one provides fewer Ca values
 | 
			
		||||
                  )
 | 
			
		||||
            )
 | 
			
		||||
         ) {
 | 
			
		||||
         d = device[i];
 | 
			
		||||
         if (NeedsDetachReceivers)
 | 
			
		||||
            *NeedsDetachReceivers = ndr;
 | 
			
		||||
      if (device[i]->ProvidesChannel(Channel, Priority, &ndr)) { // this device is basicly able to do the job
 | 
			
		||||
         if (device[i]->Receiving() && !ndr)
 | 
			
		||||
            pri = 0; // receiving and allows additional receivers
 | 
			
		||||
         else if (d && !device[i]->Receiving() && device[i]->ProvidesCa(Channel->Ca()) < d->ProvidesCa(Channel->Ca()))
 | 
			
		||||
            pri = 1; // free and fewer Ca's
 | 
			
		||||
         else if (!device[i]->Receiving() && !device[i]->IsPrimaryDevice())
 | 
			
		||||
            pri = 2; // free and not the primary device
 | 
			
		||||
         else if (!device[i]->Receiving())
 | 
			
		||||
            pri = 3; // free
 | 
			
		||||
         else if (d && device[i]->Priority() < d->Priority())
 | 
			
		||||
            pri = 4; // receiving but priority is lower
 | 
			
		||||
         else if (d && device[i]->Priority() == d->Priority() && device[i]->ProvidesCa(Channel->Ca()) < d->ProvidesCa(Channel->Ca()))
 | 
			
		||||
            pri = 5; // receiving with same priority but fewer Ca's
 | 
			
		||||
         else
 | 
			
		||||
            pri = 6; // all others
 | 
			
		||||
         if (pri < select) {
 | 
			
		||||
            select = pri;
 | 
			
		||||
            d = device[i];
 | 
			
		||||
            if (NeedsDetachReceivers)
 | 
			
		||||
               *NeedsDetachReceivers = ndr;
 | 
			
		||||
            }
 | 
			
		||||
         }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
  /*XXX+ too complex with multiple recordings per device
 | 
			
		||||
  if (!d && Ca > MAXDEVICES) {
 | 
			
		||||
     // We didn't find one the easy way, so now we have to try harder:
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										19
									
								
								i18n.c
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								i18n.c
									
									
									
									
									
								
							@@ -4,7 +4,7 @@
 | 
			
		||||
 * See the main source file 'vdr.c' for copyright information and
 | 
			
		||||
 * how to reach the author.
 | 
			
		||||
 *
 | 
			
		||||
 * $Id: i18n.c 1.128 2003/06/09 09:49:29 kls Exp $
 | 
			
		||||
 * $Id: i18n.c 1.129 2003/07/13 15:03:07 kls Exp $
 | 
			
		||||
 *
 | 
			
		||||
 * Translations provided by:
 | 
			
		||||
 *
 | 
			
		||||
@@ -1044,6 +1044,23 @@ const tI18nPhrase Phrases[] = {
 | 
			
		||||
    "Vpid",
 | 
			
		||||
    "PID V<>deo",
 | 
			
		||||
  },
 | 
			
		||||
  { "Ppid",
 | 
			
		||||
    "Ppid",
 | 
			
		||||
    "Ppid",
 | 
			
		||||
    "Ppid",
 | 
			
		||||
    "Ppid",
 | 
			
		||||
    "Ppid",
 | 
			
		||||
    "Ppid",
 | 
			
		||||
    "Ppid",
 | 
			
		||||
    "Aikatieto PID",
 | 
			
		||||
    "Ppid",
 | 
			
		||||
    "Ppid",
 | 
			
		||||
    "Ppid",
 | 
			
		||||
    "Ppid",
 | 
			
		||||
    "Ppid",
 | 
			
		||||
    "Ppid",
 | 
			
		||||
    "Ppid",
 | 
			
		||||
  },
 | 
			
		||||
  { "Apid1",
 | 
			
		||||
    "Apid1",
 | 
			
		||||
    "Apid1",
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										64
									
								
								menu.c
									
									
									
									
									
								
							
							
						
						
									
										64
									
								
								menu.c
									
									
									
									
									
								
							@@ -4,7 +4,7 @@
 | 
			
		||||
 * See the main source file 'vdr.c' for copyright information and
 | 
			
		||||
 * how to reach the author.
 | 
			
		||||
 *
 | 
			
		||||
 * $Id: menu.c 1.256 2003/06/07 12:31:57 kls Exp $
 | 
			
		||||
 * $Id: menu.c 1.264 2003/08/03 09:38:37 kls Exp $
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "menu.h"
 | 
			
		||||
@@ -713,6 +713,8 @@ void cMenuChannels::Propagate(void)
 | 
			
		||||
 | 
			
		||||
eOSState cMenuChannels::Switch(void)
 | 
			
		||||
{
 | 
			
		||||
  if (HasSubMenu())
 | 
			
		||||
     return osContinue;
 | 
			
		||||
  cChannel *ch = GetChannel(Current());
 | 
			
		||||
  if (ch)
 | 
			
		||||
     cDevice::PrimaryDevice()->SwitchChannel(ch, true);
 | 
			
		||||
@@ -733,12 +735,12 @@ eOSState cMenuChannels::New(void)
 | 
			
		||||
{
 | 
			
		||||
  if (HasSubMenu())
 | 
			
		||||
     return osContinue;
 | 
			
		||||
  return AddSubMenu(new cMenuEditChannel(Channels.Get(Current()), true));
 | 
			
		||||
  return AddSubMenu(new cMenuEditChannel(GetChannel(Current()), true));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
eOSState cMenuChannels::Delete(void)
 | 
			
		||||
{
 | 
			
		||||
  if (Count() > 0) {
 | 
			
		||||
  if (!HasSubMenu() && Count() > 0) {
 | 
			
		||||
     int Index = Current();
 | 
			
		||||
     cChannel *channel = GetChannel(Current());
 | 
			
		||||
     int DeletedChannel = channel->Number();
 | 
			
		||||
@@ -793,7 +795,9 @@ eOSState cMenuChannels::ProcessKey(eKeys Key)
 | 
			
		||||
              case kRed:    return Edit();
 | 
			
		||||
              case kGreen:  return New();
 | 
			
		||||
              case kYellow: return Delete();
 | 
			
		||||
              case kBlue:   Mark(); break;
 | 
			
		||||
              case kBlue:   if (!HasSubMenu())
 | 
			
		||||
                               Mark();
 | 
			
		||||
                            break;
 | 
			
		||||
              default: break;
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
@@ -1558,6 +1562,7 @@ cMenuCam::cMenuCam(cCiMenu *CiMenu)
 | 
			
		||||
  Add(new cOsdItem(ciMenu->BottomText()));
 | 
			
		||||
  Display();
 | 
			
		||||
  dsyslog("CAM: Menu - %s", ciMenu->TitleText());
 | 
			
		||||
  lastActivity = time(NULL);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
cMenuCam::~cMenuCam()
 | 
			
		||||
@@ -1586,6 +1591,10 @@ eOSState cMenuCam::ProcessKey(eKeys Key)
 | 
			
		||||
       default: break;
 | 
			
		||||
       }
 | 
			
		||||
     }
 | 
			
		||||
  if (Key != kNone)
 | 
			
		||||
     lastActivity = time(NULL);
 | 
			
		||||
  else if (time(NULL) - lastActivity > MENUTIMEOUT)
 | 
			
		||||
     state = osEnd;
 | 
			
		||||
  return state;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -1603,6 +1612,7 @@ cMenuCamEnquiry::cMenuCamEnquiry(cCiEnquiry *CiEnquiry)
 | 
			
		||||
  SetTitle(ciEnquiry->Text() ? ciEnquiry->Text() : "CAM");
 | 
			
		||||
  Add(new cMenuEditNumItem("Input", input, Length, ciEnquiry->Blind()));
 | 
			
		||||
  Display();
 | 
			
		||||
  lastActivity = time(NULL);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
cMenuCamEnquiry::~cMenuCamEnquiry()
 | 
			
		||||
@@ -1631,6 +1641,10 @@ eOSState cMenuCamEnquiry::ProcessKey(eKeys Key)
 | 
			
		||||
       default: break;
 | 
			
		||||
       }
 | 
			
		||||
     }
 | 
			
		||||
  if (Key != kNone)
 | 
			
		||||
     lastActivity = time(NULL);
 | 
			
		||||
  else if (time(NULL) - lastActivity > MENUTIMEOUT)
 | 
			
		||||
     state = osEnd;
 | 
			
		||||
  return state;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -2740,8 +2754,28 @@ eOSState cDisplayChannel::ProcessKey(eKeys Key)
 | 
			
		||||
            number = number * 10 + Key - k0;
 | 
			
		||||
            if (number > 0) {
 | 
			
		||||
               cChannel *channel = Channels.GetByNumber(number);
 | 
			
		||||
               Interface->Clear();
 | 
			
		||||
               withInfo = false;
 | 
			
		||||
               DisplayChannel(channel);
 | 
			
		||||
               lastTime = time_ms();
 | 
			
		||||
               // Lets see if there can be any useful further input:
 | 
			
		||||
               int n = channel ? number * 10 : 0;
 | 
			
		||||
               while (channel && (channel = Channels.Next(channel)) != NULL) {
 | 
			
		||||
                     if (!channel->GroupSep()) {
 | 
			
		||||
                        if (n <= channel->Number() && channel->Number() <= n + 9) {
 | 
			
		||||
                           n = 0;
 | 
			
		||||
                           break;
 | 
			
		||||
                           }
 | 
			
		||||
                        if (channel->Number() > n)
 | 
			
		||||
                           n *= 10;
 | 
			
		||||
                        }
 | 
			
		||||
                     }
 | 
			
		||||
               if (n > 0) {
 | 
			
		||||
                  // This channel is the only one that fits the input, so let's take it right away:
 | 
			
		||||
                  Interface->Flush(); // makes sure the user sees his last input
 | 
			
		||||
                  Channels.SwitchTo(number);
 | 
			
		||||
                  return osEnd;
 | 
			
		||||
                  }
 | 
			
		||||
               }
 | 
			
		||||
            }
 | 
			
		||||
         break;
 | 
			
		||||
@@ -2783,6 +2817,7 @@ eOSState cDisplayChannel::ProcessKey(eKeys Key)
 | 
			
		||||
    case kChanUp:
 | 
			
		||||
    case kChanDn|k_Repeat:
 | 
			
		||||
    case kChanDn:
 | 
			
		||||
         group = -1;
 | 
			
		||||
         Refresh();
 | 
			
		||||
         break;
 | 
			
		||||
    case kNone:
 | 
			
		||||
@@ -2968,16 +3003,19 @@ cRecordControl::cRecordControl(cDevice *Device, cTimer *Timer, bool Pause)
 | 
			
		||||
     }
 | 
			
		||||
 | 
			
		||||
  cRecordingUserCommand::InvokeCommand(RUC_BEFORERECORDING, fileName);
 | 
			
		||||
  const cChannel *ch = timer->Channel();
 | 
			
		||||
  recorder = new cRecorder(fileName, ch->Ca(), timer->Priority(), ch->Vpid(), ch->Apid1(), ch->Apid2(), ch->Dpid1(), ch->Dpid2());
 | 
			
		||||
  if (device->AttachReceiver(recorder)) {
 | 
			
		||||
     Recording.WriteSummary();
 | 
			
		||||
     cStatus::MsgRecording(device, Recording.Name());
 | 
			
		||||
     if (!Timer && !cReplayControl::LastReplayed()) // an instant recording, maybe from cRecordControls::PauseLiveVideo()
 | 
			
		||||
        cReplayControl::SetRecording(fileName, Recording.Name());
 | 
			
		||||
  isyslog("record %s", fileName);
 | 
			
		||||
  if (MakeDirs(fileName, true)) {
 | 
			
		||||
     const cChannel *ch = timer->Channel();
 | 
			
		||||
     recorder = new cRecorder(fileName, ch->Ca(), timer->Priority(), ch->Vpid(), ch->Apid1(), ch->Apid2(), ch->Dpid1(), ch->Dpid2());
 | 
			
		||||
     if (device->AttachReceiver(recorder)) {
 | 
			
		||||
        Recording.WriteSummary();
 | 
			
		||||
        cStatus::MsgRecording(device, Recording.Name());
 | 
			
		||||
        if (!Timer && !cReplayControl::LastReplayed()) // an instant recording, maybe from cRecordControls::PauseLiveVideo()
 | 
			
		||||
           cReplayControl::SetRecording(fileName, Recording.Name());
 | 
			
		||||
        }
 | 
			
		||||
     else
 | 
			
		||||
        DELETENULL(recorder);
 | 
			
		||||
     }
 | 
			
		||||
  else
 | 
			
		||||
     DELETENULL(recorder);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
cRecordControl::~cRecordControl()
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								menu.h
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								menu.h
									
									
									
									
									
								
							@@ -4,7 +4,7 @@
 | 
			
		||||
 * See the main source file 'vdr.c' for copyright information and
 | 
			
		||||
 * how to reach the author.
 | 
			
		||||
 *
 | 
			
		||||
 * $Id: menu.h 1.56 2003/05/24 16:35:52 kls Exp $
 | 
			
		||||
 * $Id: menu.h 1.57 2003/08/03 09:37:18 kls Exp $
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef __MENU_H
 | 
			
		||||
@@ -62,6 +62,7 @@ public:
 | 
			
		||||
class cMenuCam : public cOsdMenu {
 | 
			
		||||
private:
 | 
			
		||||
  cCiMenu *ciMenu;
 | 
			
		||||
  time_t lastActivity;
 | 
			
		||||
  bool selected;
 | 
			
		||||
  eOSState Select(void);
 | 
			
		||||
public:
 | 
			
		||||
@@ -73,6 +74,7 @@ public:
 | 
			
		||||
class cMenuCamEnquiry : public cOsdMenu {
 | 
			
		||||
private:
 | 
			
		||||
  cCiEnquiry *ciEnquiry;
 | 
			
		||||
  time_t lastActivity;
 | 
			
		||||
  char *input;
 | 
			
		||||
  bool replied;
 | 
			
		||||
  eOSState Reply(void);
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@
 | 
			
		||||
 * See the main source file 'vdr.c' for copyright information and
 | 
			
		||||
 * how to reach the author.
 | 
			
		||||
 *
 | 
			
		||||
 * $Id: recorder.c 1.6 2003/05/16 13:33:04 kls Exp $
 | 
			
		||||
 * $Id: recorder.c 1.7 2003/08/02 13:01:19 kls Exp $
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <stdarg.h>
 | 
			
		||||
@@ -34,12 +34,6 @@ cRecorder::cRecorder(const char *FileName, int Ca, int Priority, int VPid, int A
 | 
			
		||||
  fileSize = 0;
 | 
			
		||||
  active = false;
 | 
			
		||||
  lastDiskSpaceCheck = time(NULL);
 | 
			
		||||
  isyslog("record %s", FileName);
 | 
			
		||||
 | 
			
		||||
  // Create directories if necessary:
 | 
			
		||||
 | 
			
		||||
  if (!MakeDirs(FileName, true))
 | 
			
		||||
     return;
 | 
			
		||||
 | 
			
		||||
  // Make sure the disk is up and running:
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								svdrp.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								svdrp.c
									
									
									
									
									
								
							@@ -10,7 +10,7 @@
 | 
			
		||||
 * and interact with the Video Disk Recorder - or write a full featured
 | 
			
		||||
 * graphical interface that sits on top of an SVDRP connection.
 | 
			
		||||
 *
 | 
			
		||||
 * $Id: svdrp.c 1.52 2003/06/06 13:30:52 kls Exp $
 | 
			
		||||
 * $Id: svdrp.c 1.53 2003/07/26 10:57:33 kls Exp $
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "svdrp.h"
 | 
			
		||||
@@ -1100,7 +1100,7 @@ bool cSVDRP::Process(void)
 | 
			
		||||
                 }
 | 
			
		||||
              lastActivity = time(NULL);
 | 
			
		||||
              }
 | 
			
		||||
           else if (r <= 0) {
 | 
			
		||||
           else if (r < 0) {
 | 
			
		||||
              isyslog("lost connection to SVDRP client");
 | 
			
		||||
              Close();
 | 
			
		||||
              }
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										14
									
								
								vdr.c
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								vdr.c
									
									
									
									
									
								
							@@ -22,7 +22,7 @@
 | 
			
		||||
 *
 | 
			
		||||
 * The project's page is at http://www.cadsoft.de/vdr
 | 
			
		||||
 *
 | 
			
		||||
 * $Id: vdr.c 1.160 2003/05/29 12:27:26 kls Exp $
 | 
			
		||||
 * $Id: vdr.c 1.162 2003/08/02 14:01:32 kls Exp $
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <getopt.h>
 | 
			
		||||
@@ -57,6 +57,7 @@
 | 
			
		||||
#define ACTIVITYTIMEOUT 60 // seconds before starting housekeeping
 | 
			
		||||
#define SHUTDOWNWAIT   300 // seconds to wait in user prompt before automatic shutdown
 | 
			
		||||
#define MANUALSTART    600 // seconds the next timer must be in the future to assume manual start
 | 
			
		||||
#define ZAPTIMEOUT       3 // seconds until a channel counts as "previous" for switching with '0'
 | 
			
		||||
 | 
			
		||||
static int Interrupted = 0;
 | 
			
		||||
 | 
			
		||||
@@ -92,7 +93,7 @@ int main(int argc, char *argv[])
 | 
			
		||||
 | 
			
		||||
#define DEFAULTSVDRPPORT 2001
 | 
			
		||||
#define DEFAULTWATCHDOG     0 // seconds
 | 
			
		||||
#define DEFAULTPLUGINDIR "./PLUGINS/lib"
 | 
			
		||||
#define DEFAULTPLUGINDIR PLUGINDIR
 | 
			
		||||
 | 
			
		||||
  int SVDRPport = DEFAULTSVDRPPORT;
 | 
			
		||||
  const char *AudioCommand = NULL;
 | 
			
		||||
@@ -455,6 +456,8 @@ int main(int argc, char *argv[])
 | 
			
		||||
  int LastChannel = -1;
 | 
			
		||||
  int LastTimerChannel = -1;
 | 
			
		||||
  int PreviousChannel = cDevice::CurrentChannel();
 | 
			
		||||
  int LastLastChannel = PreviousChannel;
 | 
			
		||||
  time_t LastChannelChanged = time(NULL);
 | 
			
		||||
  time_t LastActivity = 0;
 | 
			
		||||
  int MaxLatencyTime = 0;
 | 
			
		||||
  bool ForceShutdown = false;
 | 
			
		||||
@@ -492,9 +495,12 @@ int main(int argc, char *argv[])
 | 
			
		||||
        if (!EITScanner.Active() && cDevice::CurrentChannel() != LastChannel) {
 | 
			
		||||
           if (!Menu)
 | 
			
		||||
              Menu = Temp = new cDisplayChannel(cDevice::CurrentChannel(), LastChannel > 0);
 | 
			
		||||
           if (LastChannel > 0)
 | 
			
		||||
              PreviousChannel = LastChannel;
 | 
			
		||||
           LastChannel = cDevice::CurrentChannel();
 | 
			
		||||
           LastChannelChanged = time(NULL);
 | 
			
		||||
           }
 | 
			
		||||
        if (LastLastChannel != LastChannel && time(NULL) - LastChannelChanged >= ZAPTIMEOUT) {
 | 
			
		||||
           PreviousChannel = LastLastChannel;
 | 
			
		||||
           LastLastChannel = LastChannel;
 | 
			
		||||
           }
 | 
			
		||||
        // Timers and Recordings:
 | 
			
		||||
        if (!Timers.BeingEdited()) {
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@
 | 
			
		||||
 * See the main source file 'vdr.c' for copyright information and
 | 
			
		||||
 * how to reach the author.
 | 
			
		||||
 *
 | 
			
		||||
 * $Id: videodir.c 1.9 2002/08/11 13:31:02 kls Exp $
 | 
			
		||||
 * $Id: videodir.c 1.10 2003/08/02 13:43:28 kls Exp $
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "videodir.h"
 | 
			
		||||
@@ -18,7 +18,7 @@
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
#include "tools.h"
 | 
			
		||||
 | 
			
		||||
const char *VideoDirectory = "/video";
 | 
			
		||||
const char *VideoDirectory = VIDEODIR;
 | 
			
		||||
 | 
			
		||||
class cVideoDirectory {
 | 
			
		||||
private:
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user