Perl LIRC Client, plircc
, is a replacement of
irexec
and irxevent
found in the
standard LIRC
distribution. Matty Airas decided to write
it since he found it difficult to create clean and nice
configuration files for
irexec
/irxevent
. He also did not like
the idea of having two separate clients doing the same logical
thing. Since the source code of
irexec
/irxevent
was completely
uncommented, He felt it would be easier to do a complete rewrite
than trying to figure out the C code.
Unfortunatly, Matty didn't advertise much on its great app and actually seams to have stopped development. I've (Pierre Tardy) added some nice functionnalities for my own uses and hope this may help someone.
plircc
implements a modified stack automaton to
keep track of the remote control state.
plircc
was developed using Hauppauge LIRC drivers
and pinnacle PCTV drivers,
but it should work on any LIRC-compliant remote. That is one of
the things I would like feedback on, though.
plircc has now osd support, you can display many thing on the screen for instant user feedback.
plircc also tries and monitor the processes to automatically jump to good state when the user launch an application supported by the configuration file.
The installation process is quite manual, but hopefully straightforward.
X11::Protocol
perl
module. Then change to the directory and say:
perl Makefile.PL
make
make install
~/.plircc
.
plircc
to a place of
your liking, eg. /usr/local/bin
or
~/bin
.
killall irexec
irxevent
.
plircc
(note that the configuration
file very probably will not conform to your environment, so
you have to edit it). The program supports arguments -D for
debugging output and -c for defining configuration file on
command-line.
plircc
basically implements a modified state
automaton, and the configuration file defines the automaton
states that the software will use. plircc does not use liblirc for
its configuration so the file ~/.lircrc
becomes
obsolete if you use plircc. For the format of the
configuration file, see dot-plircc
. Each new state
begins with the name of the state in the beginning of a new
line, suffixed by a colon. The state transitions are written
on adjacent lines, with newlines separating different
transitions. The transition keywords are as follows:
key
lirc
. The key
may be appended with an optional repeat rate field (1 equals
to fastest possible repeat, any number greater than that slows
the repeat by respective amount).act
exec
(execute a command) or key
(send a keypress to a window). If the command is launched by
the user manually, then a process event will match and plircc will
perform the transition. This is usefull to automatically jump to
a given state when some specific app is launched, ie if the user
opens mplayer by clicking on a video, and there is a transition
that would have launched mplayer and go to the MPLAYER state,
plircc will automatically sump to MPLAYER state push
_STATE_
, the name of the current state is
pushed.pop
_POP_
, any item is popped (and the item may be
used in the corresponding go
statement).assert
go
_POP_
, the name of the new state is taken from
the stack with a corresponding pop
statement.display
title
display_vol
display_sum
Two special states exists: START
and
GLOBAL
. START is the state in which the automaton
begins and to which it (hopefully) falls back in state of an
error. The transitions of the GLOBAL state are parsed always
after the current state, so it is useful for creating default
transitions.
If you make changes to the configuration file, you may ask the
running process to re-read the configuration by saying
killall -HUP plircc
(note that this is very erratic
at the moment).
Oh, yes please!
Thanks to:
X11::Protocol
This program is licensed under the General Public License (GPL)
version 2. See the file LICENSE
in the distribution
for details.
If the GPL is problematic for your purposes, I may be willing to change the license for you.
plircc
is (C) Matti Airas and Pierre Tardy, 1999-2004. All rights reserved.
Last modified: Sun Oct 31 23:23:23 EEST 2004