aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2010-04-01 11:24:38 +0200
committerGerd Hoffmann <kraxel@redhat.com>2010-04-01 11:24:38 +0200
commitdb5d03c91f0bd7ab6274d3d4f27eda0cfd0a0fe6 (patch)
treeda452868adbe5f8d23c93a13138aab66c1fd8236
parent4e106fb2760a11001f50ca5773b51ebc1a39ec23 (diff)
v3.71
-rw-r--r--Changes10
-rw-r--r--README.lirc37
-rw-r--r--debian/changelog7
-rw-r--r--debian/control10
-rw-r--r--man/xawtv-remote.13
-rw-r--r--src/commands.c6
-rw-r--r--src/commands.h3
-rw-r--r--src/lirc.c35
-rw-r--r--src/xt.c1
-rw-r--r--tools/record.c2
-rw-r--r--xawtv.spec2
11 files changed, 98 insertions, 18 deletions
diff --git a/Changes b/Changes
index 983781f..7c31f4c 100644
--- a/Changes
+++ b/Changes
@@ -1,4 +1,14 @@
+3.70 => 3.71
+============
+
+ * The idea to drop ~/.lircrc altogether wasn't that great, doesn't
+ work well with multiple apps receiving lirc events... xawtv
+ reads it again if present, but you don't need one. Check
+ README.lirc for the details.
+ * Fixed buffer overflow in "xawtv-remote vtx aaaaaa..."
+
+
3.69 => 3.70
============
diff --git a/README.lirc b/README.lirc
index 5970492..0e5f0f2 100644
--- a/README.lirc
+++ b/README.lirc
@@ -1,11 +1,36 @@
-Starting with version 3.70 xawtv + friends do _not_ read $HOME/.lircrc
-any more.
+Starting with version 3.71 xawtv + friends do not need a ~/.lircrc
+config file any more. There is a new config mechanism to map input
+events (lirc, joystick, keyboard) into xawtv commands which is called
+"eventmap". Check the xawtvrc manpage ([eventmap] section) for
+details. There also is an default configuration now, so lirc support
+should simply work out-of-the-box.
-Check the xawtvrc manpage ([eventmap] section) for hints on
-configuring lirc support. There is a default configuration througth,
-so lirc should work out-of-the-box. You have to touch the
-$HOME/.xawtv config file only if you don't like my defaults.
+If there is no ~/.lircrc config file present, xawtv will generate
+lirc-key-* events for every key pressed on the IR remote.
+
+If ~/.lircrc is present, xawtv will still use it. As strings for
+"config" are the usual xawtv commands (the traditional way to
+configure lirc support, see "man xawtv-remote") and the keyword
+"eventmap" allowed. Specifying "eventmap" will make xawtv simply
+generate lirc-key-* events.
+
+The main difference between using no config file at all and one with
+"config = eventmap" is that the later allows you to filter the
+keypresses depending on the current mode. The simpliest way to make
+xawtv use the default eventmap configuration, but respond to key
+presses in tv mode only looks like this:
+
+begin tv
+ begin
+ prog = xawtv
+ config = eventmap
+ end
+end tv
+
+You probably need this if you are going to control multiple
+applications with your IR remote, check out the lirc documentation for
+details.
Have fun,
diff --git a/debian/changelog b/debian/changelog
index 14d5811..057cf52 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+xawtv (3.71) unstable; urgency=low
+
+ * new release (closes: #133120).
+ * fixed dependences (closes: #132619,#132987).
+
+ -- Gerd Knorr <kraxel@debian.org> Mon, 11 Feb 2002 13:21:05 +0100
+
xawtv (3.70) unstable; urgency=low
* new release.
diff --git a/debian/control b/debian/control
index e3101e7..47a4dde 100644
--- a/debian/control
+++ b/debian/control
@@ -18,7 +18,7 @@ Description: X11 TV application
Package: fbtv
Architecture: any
-Depends: ${shlibs:Depends}, v4l-conf, xawtv-plugins
+Depends: ${shlibs:Depends}, v4l-conf, xawtv-plugins (=${Source-Version})
Suggests: xawtv
Description: linux console (fbcon) TV application
TV application for the linux console, requires a
@@ -27,7 +27,7 @@ Description: linux console (fbcon) TV application
Package: ttv
Architecture: any
-Depends: ${shlibs:Depends}, xawtv-plugins
+Depends: ${shlibs:Depends}, xawtv-plugins (=${Source-Version})
Suggests: xawtv
Description: tty TV application
TV application for terminals, based on aalib.
@@ -35,7 +35,7 @@ Description: tty TV application
Package: scantv
Architecture: any
-Depends: ${shlibs:Depends}, xawtv-plugins
+Depends: ${shlibs:Depends}, xawtv-plugins (=${Source-Version})
Replaces: xawtv (<< 3.53)
Description: scan TV channels for stations
This utility can scan a channel set for TV stations
@@ -45,7 +45,7 @@ Description: scan TV channels for stations
Package: streamer
Architecture: any
-Depends: ${shlibs:Depends}, xawtv-plugins
+Depends: ${shlibs:Depends}, xawtv-plugins (=${Source-Version})
Suggests: xawtv
Description: capture tool (images / movies)
A tool to capture single/multiple images or
@@ -93,7 +93,7 @@ Description: plugins for xawtv and motv
Package: webcam
Section: net
Architecture: any
-Depends: ${shlibs:Depends}, ftp, xawtv-plugins
+Depends: ${shlibs:Depends}, ftp, xawtv-plugins (=${Source-Version})
Description: capture and upload images
webcam captures images from a video4linux device like
bttv, annotates them and and uploads them to a webserver
diff --git a/man/xawtv-remote.1 b/man/xawtv-remote.1
index f3b038c..c198827 100644
--- a/man/xawtv-remote.1
+++ b/man/xawtv-remote.1
@@ -124,6 +124,9 @@ control xawtv's movie recorder.
.B fullscreen
Toggle fullscreen mode.
.TP
+.B showtime
+Display time (same what the 'D' key does in xawtv).
+.TP
.B msg text
Display text on the on-screen display (window title / upper left corner in
fullscreen mode).
diff --git a/src/commands.c b/src/commands.c
index 64fe9dc..d1c184b 100644
--- a/src/commands.c
+++ b/src/commands.c
@@ -1208,6 +1208,12 @@ parse_vtx(int lines, char **text)
} else {
tt[t].str[tt[t].len++] = text[i][n];
n++;
+ if (tt[t].len >= VTX_LEN-1) {
+ t++;
+ if (VTX_COUNT == t)
+ return tt;
+ tt[t].line = i;
+ }
}
}
if (tt[t].len) {
diff --git a/src/commands.h b/src/commands.h
index 6432b5a..20b4229 100644
--- a/src/commands.h
+++ b/src/commands.h
@@ -1,8 +1,9 @@
#define VTX_COUNT 256
+#define VTX_LEN 64
struct TEXTELEM {
- char str[42];
+ char str[VTX_LEN];
char *fg;
char *bg;
int len;
diff --git a/src/lirc.c b/src/lirc.c
index ef9d1b4..a39f5ab 100644
--- a/src/lirc.c
+++ b/src/lirc.c
@@ -1,5 +1,6 @@
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <fcntl.h>
@@ -20,6 +21,8 @@
extern int debug;
#ifdef HAVE_LIBLIRC_CLIENT
+static struct lirc_config *config = NULL;
+
static struct event_entry lirc_events[] = {
{
event: "lirc-key-ch+",
@@ -91,6 +94,12 @@ int lirc_tv_init()
fprintf(stderr,"lirc: no infrared remote support available\n");
return -1;
}
+ if (0 != lirc_readconfig(NULL,&config,NULL)) {
+ config = NULL;
+ }
+ if (debug)
+ fprintf(stderr, "lirc: ~/.lircrc file %sfound\n", config?"":"not ");
+
fcntl(fd,F_SETFL,O_NONBLOCK);
fcntl(fd,F_SETFD,FD_CLOEXEC);
event_register_list(lirc_events);
@@ -106,18 +115,36 @@ int lirc_tv_init()
int lirc_tv_havedata()
{
#ifdef HAVE_LIBLIRC_CLIENT
- char *code,event[32];
- int dummy1,dummy2;
+ char *code,event[32],*cmd,**argv;
+ int dummy,repeat,argc;
int ret=-1;
strcpy(event,"lirc-key-");
while (lirc_nextcode(&code)==0 && code!=NULL) {
ret = 0;
- if (3 != sscanf(code,"%x %x %20s",&dummy1,&dummy2,event+9)) {
+ if (3 != sscanf(code,"%x %x %20s",&dummy,&repeat,event+9)) {
fprintf(stderr,"lirc: oops, parse error: %s",code);
continue;
}
- event_dispatch(event);
+ if (debug)
+ fprintf(stderr,"lirc: key=%s repeat=%d\n", event+9, repeat);
+ if (config) {
+ /* use ~/.lircrc */
+ while (lirc_code2char(config,code,&cmd)==0 && cmd != NULL) {
+ if (debug)
+ fprintf(stderr,"lirc: cmd \"%s\"\n", cmd);
+ if (0 == strcasecmp(cmd,"eventmap")) {
+ event_dispatch(event);
+ } else {
+ argv = split_cmdline(cmd,&argc);
+ do_command(argc,argv);
+ }
+ }
+ } else {
+ /* standalone mode */
+ if (!repeat)
+ event_dispatch(event);
+ }
free(code);
}
return ret;
diff --git a/src/xt.c b/src/xt.c
index ab976f4..eb01903 100644
--- a/src/xt.c
+++ b/src/xt.c
@@ -13,6 +13,7 @@
#include <string.h>
#include <fcntl.h>
#include <errno.h>
+#include <signal.h>
#include <sys/socket.h>
#include <sys/wait.h>
#include <sys/types.h>
diff --git a/tools/record.c b/tools/record.c
index afe8228..c5a686b 100644
--- a/tools/record.c
+++ b/tools/record.c
@@ -210,7 +210,7 @@ mixer_open(char *filename, char *device)
}
}
if (-1 == dev) {
- fprintf(stderr,"mixer: hav'nt found device '%s'\nmixer: available: ",device);
+ fprintf(stderr,"mixer: havn't found device '%s'\nmixer: available: ",device);
for (i = 0; i < SOUND_MIXER_NRDEVICES; i++)
if ((1<<i) & devmask)
fprintf(stderr," '%s'",names[i]);
diff --git a/xawtv.spec b/xawtv.spec
index 9c264df..3df8530 100644
--- a/xawtv.spec
+++ b/xawtv.spec
@@ -2,7 +2,7 @@ Name: xawtv
Group: Applications/Multimedia
Requires: v4l-conf, tv-common
Autoreqprov: on
-Version: 3.70
+Version: 3.71
Release: 0
License: GPL
Summary: Video4Linux TV application (Athena)

Privacy Policy