mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Added the command line options '--lirc', '--rcu' and '--no-kbd'
This commit is contained in:
parent
44a4d12117
commit
d6b8a28329
@ -1292,6 +1292,8 @@ Olaf Titz <olaf@bigred.inka.de>
|
||||
Darren Salt <linux@youmustbejoking.demon.co.uk>
|
||||
for pointing out that the '-' and 'ö' characters need to be escaped in the man
|
||||
pages
|
||||
for a patch that was used to add the command line options '--lirc', '--rcu' and
|
||||
'--no-kbd'
|
||||
|
||||
Sean Carlos <seanc@libero.it>
|
||||
for translating OSD texts to the Italian language
|
||||
|
4
HISTORY
4
HISTORY
@ -3634,7 +3634,7 @@ Video Disk Recorder Revision History
|
||||
replaced with the new one instead of adding the new entries (thanks to Andreas
|
||||
Regel).
|
||||
|
||||
2005-07-30: Version 1.3.28
|
||||
2005-07-31: Version 1.3.28
|
||||
|
||||
- Added a sleep in cDvbPlayer::Action() in case there is no data to send to the
|
||||
device, which avoids a busy loop on very fast machines (thanks to Martin Wache).
|
||||
@ -3648,3 +3648,5 @@ Video Disk Recorder Revision History
|
||||
VPS timers to stop recording prematurely.
|
||||
- Avoiding duplicate components in EPG events when reading epg.data or in the
|
||||
PUTE SVDRP command (thanks to Olaf Titz for reporting this one).
|
||||
- Added the command line options '--lirc', '--rcu' and '--no-kbd' to allow setting
|
||||
the remote control at runtime (based on a patch by Darren Salt).
|
||||
|
16
INSTALL
16
INSTALL
@ -45,17 +45,23 @@ installed.
|
||||
IMPORTANT: See "Configuration files" below for information on how
|
||||
========= to set up the configuration files at the proper location!
|
||||
|
||||
By default the 'vdr' program can be controlled via the PC keyboard. If you have
|
||||
an infrared remote control unit you can define the REMOTE macro to one of the
|
||||
following values in the 'make' call to activate the respective control mode:
|
||||
By default the 'vdr' program can be controlled via the PC keyboard.
|
||||
If you want to disable control via the keyboard, you can add NO_KBD=1
|
||||
to the 'make' call, or use the '--no-kbd' option at runtime.
|
||||
|
||||
If you have an infrared remote control unit you can define the REMOTE macro
|
||||
to one of the following values in the 'make' call to make the respective control
|
||||
the default:
|
||||
|
||||
REMOTE=RCU control via the "Remote Control Unit" receiver
|
||||
(see http://www.cadsoft.de/vdr/remote.htm)
|
||||
REMOTE=LIRC control via the "Linux Infrared Remote Control"
|
||||
(see http://www.lirc.org)
|
||||
|
||||
If you want to disable control via the PC keyboard, you can add NO_KBD=1
|
||||
to the 'make' call.
|
||||
Alternatively you can use the '--rcu' or '--lirc' options at runtime.
|
||||
These options accept an optional path to the remote control device,
|
||||
which's defaults can be set via the RCU_DEVICE and LIRC_DEVICE macros,
|
||||
respectively.
|
||||
|
||||
If your video directory will be on a VFAT partition, add the compile
|
||||
time switch
|
||||
|
@ -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.4 2005/05/14 10:32:33 kls Exp $
|
||||
# $Id: Make.config.template 1.5 2005/07/31 11:35:28 kls Exp $
|
||||
|
||||
### The C compiler and options:
|
||||
|
||||
@ -25,3 +25,8 @@ BINDIR = /usr/local/bin
|
||||
PLUGINDIR= ./PLUGINS
|
||||
PLUGINLIBDIR= $(PLUGINDIR)/lib
|
||||
VIDEODIR = /video
|
||||
|
||||
### The remote control:
|
||||
|
||||
LIRC_DEVICE = /dev/lircd
|
||||
RCU_DEVICE = /dev/ttyS1
|
||||
|
10
Makefile
10
Makefile
@ -4,7 +4,7 @@
|
||||
# See the main source file 'vdr.c' for copyright information and
|
||||
# how to reach the author.
|
||||
#
|
||||
# $Id: Makefile 1.75 2005/05/14 10:32:13 kls Exp $
|
||||
# $Id: Makefile 1.76 2005/07/31 11:20:20 kls Exp $
|
||||
|
||||
.DELETE_ON_ERROR:
|
||||
|
||||
@ -65,8 +65,14 @@ SMLFONT_ISO8859_15 = -adobe-helvetica-medium-r-normal--18-*-100-100-p-*-iso8859-
|
||||
ifndef NO_KBD
|
||||
DEFINES += -DREMOTE_KBD
|
||||
endif
|
||||
|
||||
ifdef REMOTE
|
||||
DEFINES += -DREMOTE_$(REMOTE)
|
||||
endif
|
||||
|
||||
LIRC_DEVICE ?= /dev/lircd
|
||||
RCU_DEVICE ?= /dev/ttyS1
|
||||
|
||||
DEFINES += -DLIRC_DEVICE=\"$(LIRC_DEVICE)\" -DRCU_DEVICE=\"$(RCU_DEVICE)\"
|
||||
|
||||
DEFINES += -D_GNU_SOURCE
|
||||
|
||||
|
4
lirc.c
4
lirc.c
@ -6,7 +6,7 @@
|
||||
*
|
||||
* LIRC support added by Carsten Koch <Carsten.Koch@icem.de> 2000-06-16.
|
||||
*
|
||||
* $Id: lirc.c 1.10 2005/01/14 14:18:42 kls Exp $
|
||||
* $Id: lirc.c 1.11 2005/07/31 10:18:09 kls Exp $
|
||||
*/
|
||||
|
||||
#include "lirc.h"
|
||||
@ -18,7 +18,7 @@
|
||||
#define REPEATDELAY 350 // ms
|
||||
#define KEYPRESSDELAY 150 // ms
|
||||
|
||||
cLircRemote::cLircRemote(char *DeviceName)
|
||||
cLircRemote::cLircRemote(const char *DeviceName)
|
||||
:cRemote("LIRC")
|
||||
,cThread("LIRC remote control")
|
||||
{
|
||||
|
4
lirc.h
4
lirc.h
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: lirc.h 1.2 2003/04/12 14:15:20 kls Exp $
|
||||
* $Id: lirc.h 1.3 2005/07/31 10:18:15 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __LIRC_H
|
||||
@ -19,7 +19,7 @@ private:
|
||||
int f;
|
||||
virtual void Action(void);
|
||||
public:
|
||||
cLircRemote(char *DeviceName);
|
||||
cLircRemote(const char *DeviceName);
|
||||
virtual ~cLircRemote();
|
||||
virtual bool Ready(void);
|
||||
};
|
||||
|
4
rcu.c
4
rcu.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: rcu.c 1.8 2004/12/19 18:06:00 kls Exp $
|
||||
* $Id: rcu.c 1.9 2005/07/31 10:17:45 kls Exp $
|
||||
*/
|
||||
|
||||
#include "rcu.h"
|
||||
@ -16,7 +16,7 @@
|
||||
#define REPEATLIMIT 20 // ms
|
||||
#define REPEATDELAY 350 // ms
|
||||
|
||||
cRcuRemote::cRcuRemote(char *DeviceName)
|
||||
cRcuRemote::cRcuRemote(const char *DeviceName)
|
||||
:cRemote("RCU")
|
||||
,cThread("RCU remote control")
|
||||
{
|
||||
|
4
rcu.h
4
rcu.h
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: rcu.h 1.3 2003/04/12 14:36:09 kls Exp $
|
||||
* $Id: rcu.h 1.4 2005/07/31 10:18:00 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __RCU_H
|
||||
@ -37,7 +37,7 @@ private:
|
||||
virtual void ChannelSwitch(const cDevice *Device, int ChannelNumber);
|
||||
virtual void Recording(const cDevice *Device, const char *Name);
|
||||
public:
|
||||
cRcuRemote(char *DeviceName);
|
||||
cRcuRemote(const char *DeviceName);
|
||||
virtual ~cRcuRemote();
|
||||
virtual bool Ready(void);
|
||||
virtual bool Initialize(void);
|
||||
|
15
vdr.1
15
vdr.1
@ -8,7 +8,7 @@
|
||||
.\" License as specified in the file COPYING that comes with the
|
||||
.\" vdr distribution.
|
||||
.\"
|
||||
.\" $Id: vdr.1 1.13 2004/12/19 09:36:25 kls Exp $
|
||||
.\" $Id: vdr.1 1.14 2005/07/31 10:49:35 kls Exp $
|
||||
.\"
|
||||
.TH vdr 1 "19 Dec 2004" "1.3.18" "Video Disk Recorder"
|
||||
.SH NAME
|
||||
@ -46,7 +46,7 @@ Read config files from directory \fIdir\fR
|
||||
(default is to read them from the video directory).
|
||||
.TP
|
||||
.B \-d, \-\-daemon
|
||||
Run in daemon mode.
|
||||
Run in daemon mode (implies \-\-no\-kbd).
|
||||
.TP
|
||||
.BI \-D\ num ,\ \-\-device= num
|
||||
Use only the given DVB device (\fInum\fR = 0, 1, 2...).
|
||||
@ -75,9 +75,16 @@ Search for plugins in directory \fIdir\fR (default is ./PLUGINS/lib).
|
||||
There can be several \fB\-L\fR options with different \fIdir\fR values.
|
||||
Each of them will apply to the \fB\-P\fR options following it.
|
||||
.TP
|
||||
.BI \-\-lirc[= path ]
|
||||
Use a LIRC remote control device.
|
||||
If \fIpath\fR is omitted, vdr uses \fI/dev/lircd\fR.
|
||||
.TP
|
||||
.B \-m, \-\-mute
|
||||
Mute audio of the primary DVB device at startup.
|
||||
.TP
|
||||
.B \-\-no\-kbd
|
||||
Don't use the keyboard as an input device.
|
||||
.TP
|
||||
.BI \-p\ port ,\ \-\-port= port
|
||||
Use \fIport\fR for SVDRP. A value of \fB0\fR turns off SVDRP.
|
||||
The default SVDRP port is \fB2001\fR.
|
||||
@ -101,6 +108,10 @@ particular options) you can use
|
||||
|
||||
(note the quotes around the asterisk to prevent wildcard expansion).
|
||||
.TP
|
||||
.BI \-\-rcu[= path ]
|
||||
Use a serial port remote control device.
|
||||
If \fIpath\fR is omitted, vdr uses \fI/dev/ttyS1\fR.
|
||||
.TP
|
||||
.BI \-r\ cmd ,\ \-\-record= cmd
|
||||
Call \fIcmd\fR before and after a recording.
|
||||
.TP
|
||||
|
47
vdr.c
47
vdr.c
@ -22,7 +22,7 @@
|
||||
*
|
||||
* The project's page is at http://www.cadsoft.de/vdr
|
||||
*
|
||||
* $Id: vdr.c 1.208 2005/06/18 11:19:07 kls Exp $
|
||||
* $Id: vdr.c 1.209 2005/07/31 11:25:16 kls Exp $
|
||||
*/
|
||||
|
||||
#include <getopt.h>
|
||||
@ -115,6 +115,19 @@ int main(int argc, char *argv[])
|
||||
int WatchdogTimeout = DEFAULTWATCHDOG;
|
||||
const char *Terminal = NULL;
|
||||
const char *Shutdown = NULL;
|
||||
|
||||
bool UseKbd = true;
|
||||
const char *LircDevice = NULL;
|
||||
const char *RcuDevice = NULL;
|
||||
#if !defined(REMOTE_KBD)
|
||||
UseKbd = false;
|
||||
#endif
|
||||
#if defined(REMOTE_LIRC)
|
||||
LircDevice = LIRC_DEVICE;
|
||||
#elif defined(REMOTE_RCU)
|
||||
RcuDevice = RCU_DEVICE;
|
||||
#endif
|
||||
|
||||
cPluginManager PluginManager(DEFAULTPLUGINDIR);
|
||||
int ExitCode = 0;
|
||||
|
||||
@ -126,10 +139,13 @@ int main(int argc, char *argv[])
|
||||
{ "epgfile", required_argument, NULL, 'E' },
|
||||
{ "help", no_argument, NULL, 'h' },
|
||||
{ "lib", required_argument, NULL, 'L' },
|
||||
{ "lirc", optional_argument, NULL, 'l' | 0x100 },
|
||||
{ "log", required_argument, NULL, 'l' },
|
||||
{ "mute", no_argument, NULL, 'm' },
|
||||
{ "no-kbd", no_argument, NULL, 'n' | 0x100 },
|
||||
{ "plugin", required_argument, NULL, 'P' },
|
||||
{ "port", required_argument, NULL, 'p' },
|
||||
{ "rcu", optional_argument, NULL, 'r' | 0x100 },
|
||||
{ "record", required_argument, NULL, 'r' },
|
||||
{ "shutdown", required_argument, NULL, 's' },
|
||||
{ "terminal", required_argument, NULL, 't' },
|
||||
@ -194,8 +210,14 @@ int main(int argc, char *argv[])
|
||||
return 2;
|
||||
}
|
||||
break;
|
||||
case 'l' | 0x100:
|
||||
LircDevice = optarg ? : LIRC_DEVICE;
|
||||
break;
|
||||
case 'm': MuteAudio = true;
|
||||
break;
|
||||
case 'n' | 0x100:
|
||||
UseKbd = false;
|
||||
break;
|
||||
case 'p': if (isnumber(optarg))
|
||||
SVDRPport = atoi(optarg);
|
||||
else {
|
||||
@ -205,6 +227,9 @@ int main(int argc, char *argv[])
|
||||
break;
|
||||
case 'P': PluginManager.AddPlugin(optarg);
|
||||
break;
|
||||
case 'r' | 0x100:
|
||||
RcuDevice = optarg ? : RCU_DEVICE;
|
||||
break;
|
||||
case 'r': cRecordingUserCommand::SetCommand(optarg);
|
||||
break;
|
||||
case 's': Shutdown = optarg;
|
||||
@ -261,10 +286,15 @@ int main(int argc, char *argv[])
|
||||
" if logging should be done to LOG_LOCALn instead of\n"
|
||||
" LOG_USER, add '.n' to LEVEL, as in 3.7 (n=0..7)\n"
|
||||
" -L DIR, --lib=DIR search for plugins in DIR (default is %s)\n"
|
||||
" --lirc[=PATH] use a LIRC remote control device, attached to PATH\n"
|
||||
" (default: %s)\n"
|
||||
" -m, --mute mute audio of the primary DVB device at startup\n"
|
||||
" --no-kbd don't use the keyboard as an input device\n"
|
||||
" -p PORT, --port=PORT use PORT for SVDRP (default: %d)\n"
|
||||
" 0 turns off SVDRP\n"
|
||||
" -P OPT, --plugin=OPT load a plugin defined by the given options\n"
|
||||
" --rcu[=PATH] use a remote control device, attached to PATH\n"
|
||||
" (default: %s)\n"
|
||||
" -r CMD, --record=CMD call CMD before and after a recording\n"
|
||||
" -s CMD, --shutdown=CMD call CMD to shutdown the computer\n"
|
||||
" -t TTY, --terminal=TTY controlling tty\n"
|
||||
@ -275,7 +305,9 @@ int main(int argc, char *argv[])
|
||||
"\n",
|
||||
DEFAULTEPGDATAFILENAME,
|
||||
DEFAULTPLUGINDIR,
|
||||
LIRC_DEVICE,
|
||||
DEFAULTSVDRPPORT,
|
||||
RCU_DEVICE,
|
||||
VideoDirectory,
|
||||
DEFAULTWATCHDOG
|
||||
);
|
||||
@ -470,15 +502,12 @@ int main(int argc, char *argv[])
|
||||
cThemes::Load(Skins.Current()->Name(), Setup.OSDTheme, Skins.Current()->Theme());
|
||||
|
||||
// Remote Controls:
|
||||
#if defined(REMOTE_RCU)
|
||||
new cRcuRemote("/dev/ttyS1");
|
||||
#elif defined(REMOTE_LIRC)
|
||||
new cLircRemote("/dev/lircd");
|
||||
#endif
|
||||
#if defined(REMOTE_KBD)
|
||||
if (!DaemonMode && HasStdin)
|
||||
if (RcuDevice)
|
||||
new cRcuRemote(RcuDevice);
|
||||
if (LircDevice)
|
||||
new cLircRemote(LircDevice);
|
||||
if (!DaemonMode && HasStdin && UseKbd)
|
||||
new cKbdRemote;
|
||||
#endif
|
||||
Interface->LearnKeys();
|
||||
|
||||
// External audio:
|
||||
|
Loading…
Reference in New Issue
Block a user