summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ButtonObserver.c33
-rw-r--r--ButtonObserver.h37
-rw-r--r--COPYING340
-rw-r--r--HISTORY30
-rw-r--r--Makefile117
-rw-r--r--MouseMate.c546
-rw-r--r--MouseMate.h86
-rw-r--r--MouseMateMonitor.c157
-rw-r--r--MouseMateMonitor.h41
-rw-r--r--README200
-rw-r--r--mousemate.c137
-rw-r--r--po/ca_ES.po192
-rw-r--r--po/cs_CZ.po190
-rw-r--r--po/da_DK.po190
-rw-r--r--po/de_DE.po192
-rw-r--r--po/de_DE.po~192
-rw-r--r--po/el_GR.po190
-rw-r--r--po/es_ES.po190
-rw-r--r--po/et_EE.po190
-rw-r--r--po/fi_FI.po193
-rw-r--r--po/fr_FR.po193
-rw-r--r--po/hr_HR.po191
-rw-r--r--po/hu_HU.po191
-rw-r--r--po/it_IT.po192
-rw-r--r--po/nl_NL.po192
-rw-r--r--po/nn_NO.po191
-rw-r--r--po/pl_PL.po190
-rw-r--r--po/pt_PT.po190
-rw-r--r--po/ro_RO.po191
-rw-r--r--po/ru_RU.po190
-rw-r--r--po/sl_SI.po191
-rw-r--r--po/sv_SE.po191
-rw-r--r--po/tr_TR.po190
-rw-r--r--setup.c476
-rw-r--r--setup.h138
35 files changed, 6540 insertions, 0 deletions
diff --git a/ButtonObserver.c b/ButtonObserver.c
new file mode 100644
index 0000000..db21896
--- /dev/null
+++ b/ButtonObserver.c
@@ -0,0 +1,33 @@
+/*
+ * mousemate plugin for VDR
+ *
+ * ButtonObserver.c - MouseMate button observer class
+ *
+ *
+ * This code is distributed under the terms and conditions of the
+ * GNU GENERAL PUBLIC LICENSE. See the file COPYING for details.
+ */
+
+#include "ButtonObserver.h"
+
+cButtonObserver::cButtonObserver()
+{
+ pushed = false;
+ lastPush = 0;
+ click = false;
+ buttonCode = 0;
+ clickEvent = 0;
+ doubleClickEvent = 0;
+ pushedTurnLeftEvent=0;
+ pushedTurnRightEvent=0;
+}
+
+
+void cButtonObserver::Init(unsigned int buCo, int clEv, int dbClEv, int puTuRiEv, int puTuLeEv)
+{
+ buttonCode = buCo;
+ clickEvent = clEv;
+ doubleClickEvent = dbClEv;
+ pushedTurnLeftEvent=puTuLeEv;
+ pushedTurnRightEvent=puTuRiEv;
+}
diff --git a/ButtonObserver.h b/ButtonObserver.h
new file mode 100644
index 0000000..2e84d45
--- /dev/null
+++ b/ButtonObserver.h
@@ -0,0 +1,37 @@
+/*
+ * mousemate plugin for VDR
+ *
+ * ButtonObserver.h - MouseMate button observer class
+ *
+ *
+ * This code is distributed under the terms and conditions of the
+ * GNU GENERAL PUBLIC LICENSE. See the file COPYING for details.
+ */
+
+#ifndef __BUTTON_OBSERVER_H
+#define __BUTTON_OBSERVER_H
+
+#include <vdr/keys.h>
+#include <vdr/thread.h>
+#include <vdr/tools.h>
+#include <vdr/remote.h>
+
+class cButtonObserver
+{
+ public:
+ bool pushed;
+ uint64_t lastPush;
+ bool click;
+
+ int clickEvent;
+ int doubleClickEvent;
+ int pushedTurnLeftEvent;
+ int pushedTurnRightEvent;
+
+ unsigned int buttonCode;
+
+ cButtonObserver();
+
+ void Init(unsigned int buCo, int clEv, int dbClEv, int puTuRiEv, int puTuLeEv);
+};
+#endif
diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000..f90922e
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,340 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/HISTORY b/HISTORY
new file mode 100644
index 0000000..aeb69b9
--- /dev/null
+++ b/HISTORY
@@ -0,0 +1,30 @@
+VDR Plugin 'mousemate' Revision History
+---------------------------------------
+2008-05-01: Version 0.1.6
+- only vdr > 1.5.7 is supported
+- added one4all in setup menu
+
+2007-06-19: Version 0.1.4pre1 (Joachim Welker)
+- added extra pushed turn (wheel) events for every used button
+- added extra x,y axis turn events
+- alternative key binding can now be switched off
+- plugins sensitive replay context can now be switched off
+
+2006-12-30: Version 0.1.3 (Joachim Welker)
+- added support for up to 8 mouse-buttons (SIDE, EXTRA, FORWARD, BACK, TASK) with autodetection
+- added plugin sensitive contexts for dvd, mp3, cdda, image (only replay)
+- added Info key to key list
+- improved DEBUG output
+- fixed problems with gcc 4.1
+- changed uint64 to uint64_t to avoid problems on 64-bit machines.
+
+2006-10-27: Version 0.1.2 (Peter Pinnau)
+- added support for 3 mouse-buttons (LEFT, MIDDLE, RIGHT)
+
+2006-10-09: Version 0.1.1
+- toggle click added for alternative key binding.
+- introduced MouseMateMonitor class for better handling of monitored contexts
+
+2006-09-01: Version 0.1.0
+
+- Initial revision.
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..d9c87e7
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,117 @@
+#
+# Makefile for a Video Disk Recorder plugin
+#
+# MouseMate
+
+# The official name of this plugin.
+# This name will be used in the '-P...' option of VDR to load the plugin.
+# By default the main source file also carries this name.
+#
+PLUGIN = mousemate
+
+### The version number of this plugin (taken from the main source file):
+
+VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g')
+
+### The C++ compiler and options:
+
+CXX ?= g++
+CXXFLAGS ?= -fPIC -g -O2 -Wall -Woverloaded-virtual
+
+### The directory environment:
+
+VDRDIR = ../../..
+LIBDIR = ../../lib
+TMPDIR = /tmp
+
+### Allow user defined options to overwrite defaults:
+
+-include $(VDRDIR)/Make.config
+
+### The version number of VDR's plugin API (taken from VDR's "config.h"):
+
+APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h)
+
+### The name of the distribution archive:
+
+ARCHIVE = $(PLUGIN)-$(VERSION)
+PACKAGE = vdr-$(ARCHIVE)
+
+### Includes and Defines (add further entries here):
+
+INCLUDES += -I$(VDRDIR)/include
+
+DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
+
+### The object files (add further files here):
+
+OBJS = mousemate.o MouseMateMonitor.o MouseMate.o setup.o ButtonObserver.o
+
+ifdef MOUSEMATE_DEBUG
+DEFINES += -DDEBUG
+endif
+
+ifdef MOUSEMATE_EVENTCODE_SNIFFER
+DEFINES += -DEVENTCODE_SNIFFER
+endif
+
+
+### Implicit rules:
+
+%.o: %.c
+ $(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $<
+
+# Dependencies:
+
+MAKEDEP = g++ -MM -MG
+DEPFILE = .dependencies
+$(DEPFILE): Makefile
+ @$(MAKEDEP) $(DEFINES) $(INCLUDES) $(OBJS:%.o=%.c) > $@
+
+-include $(DEPFILE)
+
+
+### Internationalization (I18N):
+
+PODIR = po
+LOCALEDIR = $(VDRDIR)/locale
+I18Npo = $(wildcard $(PODIR)/*.po)
+I18Nmsgs = $(addprefix $(LOCALEDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file))))))
+I18Npot = $(PODIR)/$(PLUGIN).pot
+
+%.mo: %.po
+ msgfmt -c -o $@ $<
+
+$(I18Npot): $(wildcard *.c)
+ xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --msgid-bugs-address='<jollyjoe80@yahoo.de>' -o $@ $^
+
+%.po: $(I18Npot)
+ msgmerge -U --no-wrap --no-location --backup=none -q $@ $<
+ @touch $@
+
+$(I18Nmsgs): $(LOCALEDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo
+ @mkdir -p $(dir $@)
+ cp $< $@
+
+.PHONY: i18n
+i18n: $(I18Nmsgs)
+
+### Targets:
+
+all: libvdr-$(PLUGIN).so i18n
+
+libvdr-$(PLUGIN).so: $(OBJS)
+ $(CXX) $(CXXFLAGS) -shared $(OBJS) -o $@
+ @cp $@ $(LIBDIR)/$@.$(APIVERSION)
+
+dist: clean
+ @-rm -rf $(TMPDIR)/$(ARCHIVE)
+ @mkdir $(TMPDIR)/$(ARCHIVE)
+ @cp -a * $(TMPDIR)/$(ARCHIVE)
+ @tar czf $(PACKAGE).tgz -C $(TMPDIR) $(ARCHIVE)
+ @-rm -rf $(TMPDIR)/$(ARCHIVE)
+ @echo Distribution package created as $(PACKAGE).tgz
+
+clean:
+ @-rm -f $(PODIR)/*.mo $(PODIR)/*.pot
+ @-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~
diff --git a/MouseMate.c b/MouseMate.c
new file mode 100644
index 0000000..b835b83
--- /dev/null
+++ b/MouseMate.c
@@ -0,0 +1,546 @@
+/*
+ * mousemate plugin for VDR
+ *
+ * MouseMate.c - MouseMate control class
+ *
+ *
+ * This code is distributed under the terms and conditions of the
+ * GNU GENERAL PUBLIC LICENSE. See the file COPYING for details.
+ */
+
+#include <linux/input.h>
+#include <string.h>
+#include <errno.h>
+#include <iostream>
+
+#include "MouseMate.h"
+#include "ButtonObserver.h"
+
+// buffer size for reading events
+const int BUFFER_SIZE=32;
+
+#ifdef DEBUG
+const char * strContextsDebug[kContexts] =
+{
+ "Normal",
+ "Menu",
+ "Replay",
+ "Replay DVD",
+ "Replay MP3",
+ "Replay CDDA",
+ "Replay IMAGE",
+ "Normal alternative",
+ "Menu alternative",
+ "Replay alternative",
+ "Replay DVD alternative",
+ "Replay MP3 alternative",
+ "Replay CDDA alternative",
+ "Replay IMAGE alternative"
+};
+
+const char * strEventsDebug[kEvents] =
+{
+ "TurnWheelLeft",
+ "TurnWheelRight",
+ "TurnXLeft",
+ "TurnXRight",
+ "TurnYLeft",
+ "TurnYRight",
+ "LeftClick",
+ "LeftDoubleClick",
+ "LeftPushedTurnLeft",
+ "LeftPushedTurnRight",
+ "MiddleClick",
+ "MiddleDoubleClick",
+ "MiddlePushedTurnLeft",
+ "MiddlePushedTurnRight",
+ "RightClick",
+ "RightDoubleClick",
+ "RightPushedTurnLeft",
+ "RightPushedTurnRight",
+ "SidePushedTurnLeft",
+ "SidePushedTurnRight",
+ "SideClick",
+ "SideDoubleClick",
+ "ExtraClick",
+ "ExtraDoubleClick",
+ "ExtraPushedTurnLeft",
+ "ExtraPushedTurnRight",
+ "ForwardClick",
+ "ForwardDoubleClick",
+ "ForwardPushedTurnLeft",
+ "ForwardPushedTurnRight",
+ "BackClick",
+ "BackDoubleClick",
+ "BackPushedTurnLeft",
+ "BackPushedTurnRight",
+ "TaskClick",
+ "TaskDoubleClick"
+ "TaskPushedTurnLeft",
+ "TaskPushedTurnRight"
+};
+#endif
+
+cMouseMate * MouseMate;
+
+cMouseMate::cMouseMate()
+:pushed(false),
+lastPush(0),
+offset(0),
+offsetX(0),
+offsetY(0),
+click(false),
+turn(false),
+toggle(false),
+toggletime(0),
+btnCount(0),
+active(false)
+{
+ fd = open(MouseMateSetup.device, O_RDONLY);
+ if (fd < 0)
+ {
+ esyslog("mousemate: unable to open %s: %s\n", MouseMateSetup.device, strerror(errno));
+ fd = -1;
+ return;
+ }
+
+ // Check if same EV_VERSION is used, because of hardcoded values below
+ if (EV_VERSION!=0x010000)
+ {
+ esyslog("mousemate: Warning this Plugin is written for another EV_VERSION!"
+ "mousemate: This may cause incompatibility!");
+ }
+
+ uint8_t evtype_bitmask[KEY_MAX/8+1];
+ int yalv;
+ memset(evtype_bitmask, 0, sizeof(evtype_bitmask));
+
+ if (ioctl(fd, EVIOCGBIT(EV_KEY, KEY_MAX), evtype_bitmask) < 0)
+ {
+ esyslog("mousemate: %s: EVIOCGBIT failed: %s\n", MouseMateSetup.device, strerror(errno));
+ return;
+ }
+
+ for (yalv = BTN_MOUSE; yalv < BTN_MOUSE+9; yalv++)
+ {
+ if (test_bit(yalv, evtype_bitmask))
+ {
+ /* this means that the bit is set in the event types list */
+ switch (yalv)
+ {
+ case BTN_LEFT :
+ #ifdef DEBUG
+ dsyslog("mousemate: button found BTN_LEFT\n");
+ #endif
+ buttonObservers[0].Init(BTN_LEFT, kEventLeftClick, kEventLeftDoubleClick, kEventLeftPushedTurnLeft, kEventLeftPushedTurnRight);
+ btnCount++;
+ break;
+ case BTN_RIGHT :
+ #ifdef DEBUG
+ dsyslog("mousemate: button found BTN_RIGHT\n");
+ #endif
+ buttonObservers[1].Init(BTN_RIGHT, kEventRightClick, kEventRightDoubleClick,kEventRightPushedTurnLeft, kEventRightPushedTurnRight);
+ btnCount++;
+ break;
+ case BTN_MIDDLE :
+ #ifdef DEBUG
+ dsyslog("mousemate: button found BTN_MIDDLE\n");
+ #endif
+ buttonObservers[2].Init(BTN_MIDDLE, kEventMiddleClick, kEventMiddleDoubleClick, kEventMiddlePushedTurnLeft, kEventMiddlePushedTurnRight);
+ btnCount++;
+ break;
+ case BTN_SIDE :
+ #ifdef DEBUG
+ dsyslog("mousemate: button found TN_SIDE\n");
+ #endif
+ buttonObservers[3].Init(BTN_SIDE, kEventSideClick, kEventSideDoubleClick, kEventSidePushedTurnLeft, kEventSidePushedTurnRight);
+ btnCount++;
+ break;
+ case BTN_EXTRA :
+ #ifdef DEBUG
+ dsyslog("mousemate: button found BTN_EXTRA\n");
+ #endif
+ buttonObservers[4].Init(BTN_EXTRA, kEventExtraClick, kEventExtraDoubleClick, kEventExtraPushedTurnLeft, kEventExtraPushedTurnRight);
+ btnCount++;
+ break;
+ case BTN_FORWARD :
+ #ifdef DEBUG
+ dsyslog("mousemate: button found BTN_FORWARD\n");
+ #endif
+ buttonObservers[5].Init(BTN_FORWARD, kEventForwardClick, kEventForwardDoubleClick, kEventForwardPushedTurnLeft, kEventForwardPushedTurnRight);
+ btnCount++;
+ break;
+ case BTN_BACK :
+ #ifdef DEBUG
+ dsyslog("mousemate: button found BTN_BACK\n");
+ #endif
+ buttonObservers[6].Init(BTN_BACK, kEventBackClick, kEventBackDoubleClick,kEventBackPushedTurnLeft, kEventBackPushedTurnRight);
+ btnCount++;
+ break;
+ case BTN_TASK :
+ #ifdef DEBUG
+ dsyslog("mousemate: button found BTN_TASK\n");
+ #endif
+ buttonObservers[7].Init(BTN_TASK, kEventTaskClick, kEventTaskDoubleClick, kEventTaskPushedTurnLeft, kEventTaskPushedTurnRight);
+ btnCount++;
+ break;
+ }
+ }
+ }
+
+ #ifdef DEBUG
+ dsyslog("mousemate: number of found buttons btnCount = %i\n",btnCount);
+ #endif
+
+ if (btnCount<3)
+ {
+ esyslog("mousemate: number of buttons < 3 \n"
+ "mousemate: ******** plugin not started ******** \n" );
+ return;
+ }
+
+ Monitor=new cMouseMateMonitor;
+ Start();
+}
+
+
+cMouseMate::~cMouseMate()
+{
+ delete Monitor;
+ active = false;
+ close(fd);
+ Cancel(3);
+}
+
+
+bool cMouseMate::IsButtonUsed(unsigned int buCo)
+{
+ return !buttonObservers[buCo-BTN_MOUSE].buttonCode ? false : true;
+}
+
+
+short int cMouseMate::Get_btnCount()
+{
+ return btnCount;
+}
+
+
+void cMouseMate::Action()
+{
+ active = true;
+ dsyslog("MouseMate thread started (pid=%d)", getpid());
+
+ struct input_event events[BUFFER_SIZE];
+ int r;
+ int num;
+ int i;
+
+ while (fd >= 0 && active)
+ {
+ LOCK_THREAD;
+ if (cFile::FileReady(fd, 100))
+ {
+ r = safe_read(fd, events, sizeof(struct input_event) * BUFFER_SIZE);
+ if (r > 0)
+ {
+ num = r / sizeof(struct input_event);
+ for (i = 0; i < num; i++)
+ {
+ ProcessInputEvent(&events[i]);
+ }
+ }
+ else
+ {
+ LOG_ERROR;
+ }
+ }
+
+ // controll more than one button with buttonObserver & for loop
+ for (i=0; i < btnCount; i++)
+ {
+ if (buttonObservers[i].click && !buttonObservers[i].pushed)
+ {
+ uint64_t current = TimeMs();
+ if (current - buttonObservers[i].lastPush > (uint64_t) MouseMateSetup.doubleClickTime)
+ {
+ #ifdef DEBUG
+ dsyslog("mousemate: click (main loop)\n");
+ #endif
+ ProcessEvent(buttonObservers[i].clickEvent);
+ buttonObservers[i].click = false;
+ }
+ }
+
+ // toggle?
+ if (buttonObservers[i].pushed && !turn && MouseMateSetup.alternative)
+ {
+ uint64_t current = TimeMs();
+ if (current - buttonObservers[i].lastPush > (uint64_t) MouseMateSetup.toggleClickTime)
+ {
+ Toggle();
+ // clear events
+ struct input_event dummyevents[BUFFER_SIZE];
+ r = safe_read(fd, dummyevents, sizeof(struct input_event) * BUFFER_SIZE);
+ }
+ }
+ }
+
+ // handle automatic toggle off after "toggleOffTime" since last event
+ if(toggle && MouseMateSetup.autotoggleoff && MouseMateSetup.alternative)
+ {
+ uint64_t current = TimeMs();
+ if (current - toggletime > (uint64_t) MouseMateSetup.toggleOffTime )
+ {
+ Toggle();
+ #ifdef DEBUG
+ dsyslog("mousemate: toggle inactive automatically after %i ms \n", MouseMateSetup.toggleOffTime);
+ #endif
+ // clear events
+ struct input_event dummyevents[BUFFER_SIZE];
+ r = safe_read(fd, dummyevents, sizeof(struct input_event) * BUFFER_SIZE);
+ }
+ }
+ }
+ dsyslog("MouseMate thread ended (pid=%d)", getpid());
+}
+
+
+void cMouseMate::Toggle()
+{
+ if (toggle)
+ {
+ toggle= false;
+ #ifdef DEBUG
+ dsyslog("mousemate: toggle inactive \n");
+ #endif
+ }
+ else
+ {
+ toggle=true;
+ toggletime=TimeMs();
+ #ifdef DEBUG
+ dsyslog("mousemate: toggle active after %i ms pushed button\n", MouseMateSetup.toggleClickTime);
+ #endif
+ }
+
+ // controll more than one button with buttonObservers & for loop
+ int i;
+ for (i=0; i<btnCount; i++)
+ {
+ buttonObservers[i].pushed=false;
+ buttonObservers[i].click=false;
+ }
+
+ // set scroll lock led if led = true
+ if (MouseMateSetup.led)
+ {
+ int fc;
+ fc = open(MouseMateSetup.cdevice, O_RDWR);
+ // can console device be opened?
+ if (fc)
+ {
+ struct input_event ev;
+ ev.type = EV_LED;
+ ev.code = LED_SCROLLL;
+ ev.value = toggle;
+ write(fc, &ev, sizeof(struct input_event));
+ close(fc);
+ }
+ else
+ {
+ esyslog("mousemate: unable to open console device %s: %s\n", MouseMateSetup.cdevice, strerror(errno));
+ fc = -1;
+ return;
+ }
+ }
+}
+
+
+void cMouseMate::ProcessInputEvent(struct input_event * ev)
+{
+ bool pushed=false;
+ int button=2;
+
+ switch (ev->type)
+ {
+ case EV_REL:
+ if (ev->code == Wheel)
+ {
+ turn = true;
+ offset += (int) ev->value;
+ for (int i=0; i < btnCount; i++)
+ {
+ if (buttonObservers[i].pushed)
+ {
+ pushed=true;
+ button=i;
+ }
+ }
+ if (pushed)
+ {
+ if ((int) ev->value < 0)
+ {
+ while (offset <= -MouseMateSetup.sensitivity)
+ {
+ ProcessEvent(buttonObservers[button].pushedTurnLeftEvent);
+ offset += MouseMateSetup.sensitivity;
+ }
+ }
+ if ((int) ev->value > 0)
+ {
+ while (offset >= MouseMateSetup.sensitivity)
+ {
+ ProcessEvent(buttonObservers[button].pushedTurnRightEvent);
+ offset -= MouseMateSetup.sensitivity;
+ }
+ }
+ }
+ else
+ {
+ for (int i=0; i < btnCount; i++)
+ {
+ if (buttonObservers[i].click)
+ {
+ #ifdef DEBUG
+ dsyslog("mousemate: click (ProcessInputEvent)\n");
+ #endif
+ ProcessEvent(buttonObservers[i].clickEvent);
+ buttonObservers[i].click = false;
+ }
+ }
+ if ((int) ev->value < 0)
+ {
+ while (offset <= -MouseMateSetup.sensitivity)
+ {
+ ProcessEvent(kEventTurnWheelLeft);
+ offset += MouseMateSetup.sensitivity;
+ }
+ }
+ if ((int) ev->value > 0)
+ {
+ while (offset >= MouseMateSetup.sensitivity)
+ {
+ ProcessEvent(kEventTurnWheelRight);
+ offset -= MouseMateSetup.sensitivity;
+ }
+ }
+ }
+ }
+
+ if(MouseMateSetup.extraturns)
+ {
+ if (ev->code == REL_X)
+ {
+ offsetX += (int) ev->value;
+ if ((int) ev->value < 0)
+ {
+ while (offsetX <= -MouseMateSetup.sensitivityX)
+ {
+ ProcessEvent(kEventTurnXLeft);
+ offsetX += MouseMateSetup.sensitivityX;
+ }
+ }
+ if ((int) ev->value > 0)
+ {
+ while (offsetX >= MouseMateSetup.sensitivityX)
+ {
+ ProcessEvent(kEventTurnXRight);
+ offsetX -= MouseMateSetup.sensitivityX;
+ }
+ }
+ }
+ if (ev->code == REL_Y)
+ {
+ offsetY += (int) ev->value;
+ if ((int) ev->value < 0)
+ {
+ while (offsetY <= -MouseMateSetup.sensitivityY)
+ {
+ ProcessEvent(kEventTurnYLeft);
+ offsetY += MouseMateSetup.sensitivityY;
+ }
+ }
+ if ((int) ev->value > 0)
+ {
+ while (offsetY >= MouseMateSetup.sensitivityY)
+ {
+ ProcessEvent(kEventTurnYRight);
+ offsetY -= MouseMateSetup.sensitivityY;
+ }
+ }
+ }
+ }
+ break;
+ case EV_KEY:
+
+ for (int i=0; i<btnCount; i++)
+ {
+ if (ev->code == buttonObservers[i].buttonCode)
+ {
+ if (ev->value)
+ {
+ buttonObservers[i].pushed = true;
+ turn = false;
+ offset = 0;
+ buttonObservers[i].lastPush = TimeMs();
+ }
+ else
+ {
+ if (buttonObservers[i].click)
+ {
+ #ifdef DEBUG
+ dsyslog("mousemate: double click\n");
+ #endif
+ ProcessEvent(buttonObservers[i].doubleClickEvent);
+ buttonObservers[i].click = false;
+ }
+ else
+ {
+ if (!turn)
+ buttonObservers[i].click = true;
+ }
+ buttonObservers[i].pushed = false;
+ turn = false;
+ offset = 0;
+ }
+ }
+ }
+ break;
+ }
+ #ifdef EVENTCODE_SNIFFER
+ printf("mousemate: ev->type = 0x%04x\n", ev->type);
+ printf("mousemate: ev->code = 0x%04x\n", ev->code);
+ printf("mousemate: ev->value = %i\n", int(ev->value));
+ printf("-----------------------------\n");
+ #endif
+}
+
+
+void cMouseMate::ProcessEvent(int event)
+{
+ int context= Monitor->GetContext(toggle);
+
+ if (!toggle)
+ {
+ SendKey(MouseMateSetup.keys[context][event]);
+ }
+ else
+ {
+ toggletime=TimeMs(); // updating toggletime for key is pressed in toggle mode
+ SendKey(MouseMateSetup.keys[context][event]);
+ }
+
+ #ifdef DEBUG
+ dsyslog("mousemate: toggle=%i, event=%s, context=%s\n",toggle,
+ strEventsDebug[event],strContextsDebug[context]);
+ eKeys keyNr=MouseMateSetup.keys[context][event];
+ dsyslog("mousemate: sent key= nr %i, %s\n",keyNr, cKey::ToString(keyNr));
+ #endif
+}
+
+
+void cMouseMate::SendKey(eKeys key)
+{
+ if (key != kNone)
+ cRemote::Put(key);
+}
diff --git a/MouseMate.h b/MouseMate.h
new file mode 100644
index 0000000..32e592d
--- /dev/null
+++ b/MouseMate.h
@@ -0,0 +1,86 @@
+/*
+ * mousemate plugin for VDR
+ *
+ * MouseMate.h - MouseMate control class
+ *
+ *
+ * This code is distributed under the terms and conditions of the
+ * GNU GENERAL PUBLIC LICENSE. See the file COPYING for details.
+ */
+
+#ifndef _MOUSEMATE_H_
+#define _MOUSEMATE_H_
+
+#include <vdr/keys.h>
+#include <vdr/thread.h>
+#include <vdr/tools.h>
+#include <vdr/remote.h>
+
+#include "MouseMateMonitor.h"
+#include "ButtonObserver.h"
+#include "setup.h"
+
+/*
+ You may try other relative movement events
+*/
+#define Wheel REL_WHEEL
+
+/*
+ Number of observed mouse-buttons
+*/
+#define MAX_BTN_COUNT 8
+
+/*
+ You may define EVENTCODE_SNIFFER in order to get event code, type and value of
+ your device.
+*/
+// #define EVENTCODE_SNIFFER
+
+/*
+ You may define DEBUG in order to get information about context, event, etc.
+*/
+// #define DEBUG
+
+/*
+ ******************* no user defines after this line *************************
+ */
+#define TimeMs cTimeMs::Now
+
+#define test_bit(bit, array) (array[bit/8] & (1<<(bit%8)))
+
+class cMouseMate : public cThread
+{
+ private:
+
+ int fd; // file id for mouse device
+ bool pushed;
+ uint64_t lastPush;
+ int offset;
+ int offsetX;
+ int offsetY;
+ bool click;
+ bool turn;
+ bool toggle; // toggle key binding
+ uint64_t toggletime; // time for auto off toggle
+
+ // controll more than one button with buttonObservers & for loop
+ cButtonObserver buttonObservers[MAX_BTN_COUNT];
+ short int btnCount; // number of used buttons:
+
+ bool active;
+ cMouseMateMonitor *Monitor;
+
+ virtual void Action();
+ void Toggle();
+ void ProcessInputEvent(struct input_event * ev);
+ void ProcessEvent(int event);
+ void SendKey(eKeys key);
+ public:
+ cMouseMate();
+ virtual ~cMouseMate();
+ bool IsButtonUsed(unsigned int buttoncode);
+ short int Get_btnCount();
+};
+
+extern cMouseMate * MouseMate;
+#endif
diff --git a/MouseMateMonitor.c b/MouseMateMonitor.c
new file mode 100644
index 0000000..2793230
--- /dev/null
+++ b/MouseMateMonitor.c
@@ -0,0 +1,157 @@
+/*
+ * mousemate plugin for VDR
+ *
+ * MouseMate.c - MouseMate context monitor class
+ *
+ *
+ * This code is distributed under the terms and conditions of the
+ * GNU GENERAL PUBLIC LICENSE. See the file COPYING for details.
+ */
+
+#include "MouseMateMonitor.h"
+#include "MouseMate.h"
+
+cMouseMateMonitor:: cMouseMateMonitor(void)
+:menu(false),
+replay(false),
+DVD(false),
+MP3(false),
+CDDA(false),
+IMAGE(false)
+{
+}
+
+
+cMouseMateMonitor:: ~cMouseMateMonitor()
+{
+}
+
+
+int cMouseMateMonitor::GetContext(const bool toggle)
+{
+ if (!toggle)
+ {
+ if (menu)
+ {
+ #ifdef DEBUG
+ dsyslog("mousemate: Context=Menu DVD=%i MP3=%i CDDA=%i IMAGE=%i\n",DVD,MP3,CDDA,IMAGE);
+ #endif
+ return kContextMenu;
+ }
+ if (replay)
+ {
+ #ifdef DEBUG
+ dsyslog("mousemate: Context=Replay DVD=%i MP3=%i CDDA=%i IMAGE=%i\n",DVD,MP3,CDDA,IMAGE);
+ #endif
+ if (DVD && MouseMateSetup.dvdsensitive)
+ return kContextReplayDVD;
+ if (MP3&& MouseMateSetup.mp3sensitive)
+ return kContextReplayMP3;
+ if (CDDA&& MouseMateSetup.cddasensitive)
+ return kContextReplayCDDA;
+ if (IMAGE&& MouseMateSetup.imagesensitive)
+ return kContextReplayIMAGE;
+
+ return kContextReplay;
+ }
+ #ifdef DEBUG
+ dsyslog("mousemate: Context=Normal DVD=%i MP3=%i CDDA=%i IMAGE=%i\n",DVD, MP3,CDDA, IMAGE);
+ #endif
+ return kContextNormal;
+ }
+ else
+ {
+ if (menu)
+ {
+ #ifdef DEBUG
+ dsyslog("mousemate: Context=MenuAlt DVD=%i MP3=%i CDDA=%i IMAGE=%i\n",DVD,MP3,CDDA,IMAGE);
+ #endif
+ return kContextMenuAlt;
+ }
+ if (replay)
+ {
+ #ifdef DEBUG
+ dsyslog("mousemate: Context=ReplayAlt DVD=%i MP3=%i CDDA=%i IMAGE=%i\n", DVD,MP3,CDDA,IMAGE);
+ #endif
+ if (DVD && MouseMateSetup.dvdsensitive)
+ return kContextReplayDVDAlt;
+ if (MP3&& MouseMateSetup.mp3sensitive)
+ return kContextReplayMP3Alt;
+ if (CDDA&& MouseMateSetup.cddasensitive)
+ return kContextReplayCDDAAlt;
+ if (IMAGE&& MouseMateSetup.imagesensitive)
+ return kContextReplayIMAGEAlt;
+ return kContextReplayAlt;
+ }
+ #ifdef DEBUG
+ dsyslog("mousemate: Context=NormalAlt DVD=%i MP3=%i CDDA=%i IMAGE=%i\n",DVD, MP3,CDDA, IMAGE);
+ #endif
+ return kContextNormalAlt;
+ }
+
+}
+
+
+void cMouseMateMonitor::Replaying(const cControl *Control, const char *Name, const char *FileName, bool On)
+{
+ if (On)
+ {
+ replay=true;
+ if (!strcmp(Name,"DVD"))
+ DVD=true;
+ if (!strcmp(Name,"MP3"))
+ MP3=true;
+ if (!strcmp(Name,"cdda"))
+ CDDA=true;
+ if (!strcmp(Name,"image"))
+ IMAGE=true;
+ }
+ else
+ {
+ DVD=false;
+ MP3=false;
+ CDDA=false;
+ IMAGE=false;
+ replay=false;
+ }
+ #ifdef DEBUG
+ dsyslog("mousemate: %s is %i\n", Name, On);
+ dsyslog("mousemate: Replaying DVD %i MP3: %i CDDA: %i IMAGE: %i\n",DVD, MP3,CDDA, IMAGE);
+ #endif
+}
+
+
+void cMouseMateMonitor::OsdClear(void)
+{
+ menu =false;
+}
+
+
+void cMouseMateMonitor::OsdTitle(const char *Title)
+{
+ menu = true;
+}
+
+
+void cMouseMateMonitor::OsdHelpKeys(const char *Red, const char *Green, const char *Yellow, const char *Blue)
+{
+ menu = true;
+}
+
+
+void cMouseMateMonitor::OsdItem(const char *Text, int Index)
+{
+ menu = true;
+}
+
+
+void cMouseMateMonitor::OsdCurrentItem(const char *Text)
+{
+ menu = true;
+}
+
+
+void cMouseMateMonitor::OsdTextItem(const char *Text, bool Scroll)
+{
+ menu = true;
+}
diff --git a/MouseMateMonitor.h b/MouseMateMonitor.h
new file mode 100644
index 0000000..7928a8f
--- /dev/null
+++ b/MouseMateMonitor.h
@@ -0,0 +1,41 @@
+/*
+ * mousemate plugin for VDR
+ *
+ * MouseMateMonitor.h - MouseMate context monitor class
+ *
+ *
+ * This code is distributed under the terms and conditions of the
+ * GNU GENERAL PUBLIC LICENSE. See the file COPYING for details.
+ */
+
+#ifndef _MOUSEMATEMONITOR_H_
+#define _MOUSEMATEMONITOR_H_
+
+#include "setup.h"
+#include <vdr/status.h>
+#include <vdr/tools.h>
+
+class cMouseMateMonitor : public cStatus
+{
+ private:
+ bool menu;
+ bool replay;
+ bool DVD;
+ bool MP3;
+ bool CDDA;
+ bool IMAGE;
+
+ public:
+ cMouseMateMonitor(void);
+ virtual ~cMouseMateMonitor();
+ int GetContext(const bool toggle);
+
+ virtual void Replaying(const cControl *Control, const char *Name, const char *FileName, bool On);
+ virtual void OsdClear(void);
+ virtual void OsdTitle(const char *Title);
+ virtual void OsdHelpKeys(const char *Red, const char *Green, const char *Yellow, const char *Blue);
+ virtual void OsdItem(const char *Text, int Index);
+ virtual void OsdCurrentItem(const char *Text);
+ virtual void OsdTextItem(const char *Text, bool Scroll);
+};
+#endif
diff --git a/README b/README
new file mode 100644
index 0000000..047af5d
--- /dev/null
+++ b/README
@@ -0,0 +1,200 @@
+mousemate is a "plugin" for the Video Disk Recorder (VDR).
+
+Written by: Joachim Welker <j.welker@gmx.net>
+ Peter Pinnau <vdr@unterbrecher.de>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+See the file COPYING for more information.
+
+Description
+-----------
+
+This plugin allows using a mouse to control almost each of VDR's functions
+by mapping remote control keys to mouse actions. Observed are
+relative wheel, x axis and y axis movement and up to eight buttons.
+
+You can specify different key bindings for several contexts of VDR (Normal,
+Menu and Replay). The Replay context is even sensitive for the used plugin
+(dvd, mp3, cdda, image).
+
+A long push of the button toggles to an alternative key binding. The
+alternative key binding can be active temporary or until next long
+button push (or switched off at all). The alternative key binding can be
+indicated by switching on the Scroll Lock led of the a given console device.
+
+Install
+-------
+- The mousemate plugin only supports vdr versions after 1.5.6 !
+
+- Extract and copy the plugin in /your vdr src/PLUGINS/src/mousemate-0.?.?
+ (when you read this, I think you already done it).
+
+- Make a link in /your vdr src/PLUGINS/src:
+ ln -s mousemate-0.?.? mousemate
+
+- Go to /your vdr src/ and compile the plugin (and all other):
+ make plugins
+ You may use
+ make plugins MOUSEMATE_DEBUG=1
+ or
+ make plugins MOUSEMATE_EVENTCODE_SNIFFER=1
+ in order to get debug information or event codes, types and values of
+ your device.
+
+- Install plugins:
+ make install-plugins
+
+- Run your vdr with the option:
+ -P"mousemate -d /dev/input/event?"
+ You have to replace ? with the right event number (see below).
+ The vdr user must have root access to the uses devices.
+
+- Command line parameters:
+ -d DEV, --device=DEV use DEV as mouse device (default /dev/input/event1)
+ -c DEV, --cdevice=DEV use DEV as console device (default /dev/input/event0)
+
+
+
+How to find the right device
+----------------------------
+
+You can find the right device with following line:
+ cat /proc/bus/input/devices
+This should produce something like:
+
+ I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
+ N: Name="AT Translated Set 2 keyboard"
+ P: Phys=isa0060/serio0/input0
+ S: Sysfs=/class/input/input0
+ H: Handlers=kbd event0
+ B: EV=120013
+ B: KEY=4 2000000 3802078 f840d001 f2ffffdf ffefffff ffffffff fffffffe
+ B: MSC=10
+ B: LED=7
+
+ I: Bus=0011 Vendor=0002 Product=0004 Version=0000
+ N: Name="GenPS/2 Genius <NULL>"
+ P: Phys=isa0060/serio1/input0
+ S: Sysfs=/class/input/input2
+ H: Handlers=mouse0 event2 ts0
+ B: EV=7
+ B: KEY=1f0000 0 0 0 0 0 0 0 0
+ B: REL=103
+
+In this case the fist device is a keyboard and the second one is a mouse. In
+line "H: Handler=" you can read the right event (here event2). The line
+"N: Name=" can give you a hint to choose the right mouse, if you have more than
+one installed.
+
+
+Setup menu parameters
+---------------------
+
+- Sensitivity wheel:
+ Sets the sensitivity of mouse wheel's turning actions (1-10).
+
+- Double click time:
+ Sets the time in milliseconds between two button clicks to be recognized
+ as a double click.
+
+- Alternative key binding
+ Switches the alternative key bindig on or off.
+
+ - Toggle click time:
+ Sets the time in milliseconds the button had to be pushed to toggle the
+ key binding.
+
+ - Show toggle with scroll lock led:
+ Should the scroll lock led be used for indicating active toggle?
+
+ - Toggle automatic off:
+ Should toggle mode be turn off automatically?
+
+ - Toggle off time (ms):
+ Sets the time in milliseconds after toggle is turned inactive.
+
+- Extra pushed turn events:
+ Enable pushed turn events for:
+ * Left pushed,
+ * Right pushed,
+ * Side pushed,
+ * Extra pushed,
+ * Forward pushed,
+ * Back pushed,
+ * Task pushed
+
+ Not all events may be available with your mouse.
+
+- Extra x,y turn events:
+ Enable x- and y axis for turn events.
+
+ - Sensitivity x :
+ Sets the sensitivity of mouse x axis' turning actions (1-1000).
+
+ - Sensitivity y :
+ Sets the sensitivity of mouse y axis' turning actions (1-1000).
+
+- DVD sensitive replay context
+ MP3 sensitive replay context
+ CDDA sensitive replay context
+ IMAGE sensitive replay context:
+ Enable specific plugin-senisitive contexts. If one context is disabled,
+ the normal replay context is used for this plugin.
+
+- Context:
+ With this item you choose the current context to specify its key bindings.
+
+- Turn wheel left,
+ Turn wheel right,
+ Turn x axis left,
+ Turn x axis right,
+ Turn y axis left,
+ Turn y axis right,
+ Left click,
+ Left double-click,
+ Middle click,
+ Middle double-click,
+ Middle pushed turn left,
+ Middle pushed turn right,
+ Right click,
+ Right double-click,
+ Side click,
+ Side double-click,
+ Extra click,
+ Extra double-click,
+ Forward click,
+ Forward double-click,
+ Back click,
+ Back double-click,
+ Task click,
+ Task double-click
+ Left pushed turn left
+ Left pushed turn right
+ Right pushed turn left
+ Right pushed turn right
+ ...
+
+ The keys that should be triggered at the different events in the
+ choosen context. Not all events may be available with your mouse.
+
+ If the red button is pushed one4all is executed. That means the current
+ key binding is set for all contexts. This can really save time, if you have
+ a mouse with eight buttons ;).
+
+
+TODO
+-----
+- save key bindings in extra setup file for easier handling
+- Plugin sensitve context for menu
+- Sometimes key is sent while toggling
+- Immediately after automatic toggle it's not possible to toggle again
+- Improve setup menu (partly done ;))
+
+
+
+
+
+
diff --git a/mousemate.c b/mousemate.c
new file mode 100644
index 0000000..daad1da
--- /dev/null
+++ b/mousemate.c
@@ -0,0 +1,137 @@
+/*
+ * mousemate plugin for VDR
+ *
+ * mousemate.c - main plugin class
+ *
+ *
+ * This code is distributed under the terms and conditions of the
+ * GNU GENERAL PUBLIC LICENSE. See the file COPYING for details.
+ */
+
+#include <getopt.h>
+#include <vdr/plugin.h>
+
+#include "MouseMate.h"
+#include "setup.h"
+
+
+static const char *VERSION = "0.1.6";
+static const char *DESCRIPTION = trNOOP("Controls VDR via a mouse");
+static const char *MAINMENUENTRY = NULL;
+
+class cPluginMousemate : public cPlugin
+{
+ private:
+ // Add any member variables or functions you may need here.
+ public:
+ cPluginMousemate(void);
+ virtual ~cPluginMousemate();
+ virtual const char *Version(void) { return VERSION; }
+ virtual const char *Description(void) { return tr(DESCRIPTION); }
+ virtual const char *CommandLineHelp(void);
+ virtual bool ProcessArgs(int argc, char *argv[]);
+ virtual bool Initialize(void);
+ virtual bool Start(void);
+ virtual void Housekeeping(void);
+ virtual const char *MainMenuEntry(void) { return MAINMENUENTRY; }
+ virtual cOsdObject *MainMenuAction(void);
+ virtual cMenuSetupPage *SetupMenu(void);
+ virtual bool SetupParse(const char *Name, const char *Value);
+};
+
+cPluginMousemate::cPluginMousemate(void)
+{
+ // Initialize any member variables here.
+ // DON'T DO ANYTHING ELSE THAT MAY HAVE SIDE EFFECTS, REQUIRE GLOBAL
+ // VDR OBJECTS TO EXIST OR PRODUCE ANY OUTPUT!
+}
+
+
+cPluginMousemate::~cPluginMousemate()
+{
+ // Clean up after yourself!
+ delete MouseMate;
+}
+
+
+const char *cPluginMousemate::CommandLineHelp(void)
+{
+ // Return a string that describes all known command line options.
+ return " -d DEV, --device=DEV use DEV as mouse device (default /dev/input/event1)\n"
+ " -c DEV, --cdevice=DEV use DEV as console device (default /dev/input/event0)\n";
+}
+
+
+bool cPluginMousemate::ProcessArgs(int argc, char *argv[])
+{
+ // Implement command line argument processing here if applicable.
+ static struct option long_options[] =
+ {
+ { "device", required_argument, NULL, 'd' },
+ { "cdevice", required_argument, NULL, 'c' },
+ { NULL }
+ };
+ int c;
+
+ strcpy(MouseMateSetup.device, "/dev/input/event1");
+ strcpy(MouseMateSetup.cdevice, "/dev/input/event0");
+ while ((c = getopt_long(argc, argv, "d:c:", long_options, NULL)) != -1)
+ {
+ switch (c)
+ {
+ case 'd':
+ strcpy(MouseMateSetup.device, optarg);
+ break;
+ case 'c':
+ strcpy(MouseMateSetup.cdevice, optarg);
+ break;
+ default:
+ return false;
+ }
+ }
+ return true;
+}
+
+
+bool cPluginMousemate::Initialize(void)
+{
+ // Initialize any background activities the plugin shall perform.
+ return true;
+}
+
+
+bool cPluginMousemate::Start(void)
+{
+ // Start any background activities the plugin shall perform.
+ MouseMate = new cMouseMate();
+ return true;
+}
+
+
+void cPluginMousemate::Housekeeping(void)
+{
+ // Perform any cleanup or other regular tasks.
+}
+
+
+cOsdObject *cPluginMousemate::MainMenuAction(void)
+{
+ // Perform the action when selected from the main VDR menu.
+ return NULL;
+}
+
+
+cMenuSetupPage *cPluginMousemate::SetupMenu(void)
+{
+ // Return a setup menu in case the plugin supports one.
+ return new cMouseMateSetupPage();
+}
+
+
+bool cPluginMousemate::SetupParse(const char *Name, const char *Value)
+{
+ return MouseMateSetup.Parse(Name, Value);
+}
+
+
+VDRPLUGINCREATOR(cPluginMousemate); // Don't touch this!
diff --git a/po/ca_ES.po b/po/ca_ES.po
new file mode 100644
index 0000000..cf5ef5d
--- /dev/null
+++ b/po/ca_ES.po
@@ -0,0 +1,192 @@
+# VDR plugin language source file.
+# Copyright (C) 2007 Klaus Schmidinger <kls@cadsoft.de>
+# This file is distributed under the same license as the VDR package.
+# Marc Rovira Vall <tm05462@salleURL.edu>, 2003
+# Ramon Roca <ramon.roca@xcombo.com>, 2003
+# Jordi Vilà <jvila@tinet.org>, 2003
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: VDR 1.5.7\n"
+"Report-Msgid-Bugs-To: <jollyjoe80@yahoo.de>\n"
+"POT-Creation-Date: 2008-05-01 18:59+0200\n"
+"PO-Revision-Date: 2008-02-10 18:28+0100\n"
+"Last-Translator: Jordi Vilà <jvila@tinet.org>\n"
+"Language-Team: <vdr@linuxtv.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Controls VDR via a mouse"
+msgstr ""
+
+msgid "Sensitivity wheel"
+msgstr ""
+
+msgid "Double click time (ms)"
+msgstr ""
+
+msgid "Alternative key binding"
+msgstr ""
+
+msgid "no"
+msgstr ""
+
+msgid "yes"
+msgstr ""
+
+msgid "Toggle click time (ms)"
+msgstr ""
+
+msgid "Show toggle with scroll lock led"
+msgstr ""
+
+msgid "Toggle automatic off"
+msgstr ""
+
+msgid "Toggle off time (ms)"
+msgstr ""
+
+msgid "Extra pushed turn events"
+msgstr ""
+
+msgid "Extra x,y turn events"
+msgstr ""
+
+msgid "Sensitivity x"
+msgstr ""
+
+msgid "Sensitivity y"
+msgstr ""
+
+msgid "DVD sensitive replay context"
+msgstr ""
+
+msgid "MP3 sensitive replay context"
+msgstr ""
+
+msgid "CDDA sensitive replay context"
+msgstr ""
+
+msgid "IMAGE sensitive replay context"
+msgstr ""
+
+msgid "Set keys for context"
+msgstr ""
+
+msgid "Turn wheel left"
+msgstr ""
+
+msgid "Turn wheel right"
+msgstr ""
+
+msgid "Turn x axis left"
+msgstr ""
+
+msgid "Turn x axis right"
+msgstr ""
+
+msgid "Turn y axis left"
+msgstr ""
+
+msgid "Turn y axis right"
+msgstr ""
+
+msgid "Left click"
+msgstr ""
+
+msgid "Left double-click"
+msgstr ""
+
+msgid "Middle click"
+msgstr ""
+
+msgid "Middle double-click"
+msgstr ""
+
+msgid "Middle pushed turn left"
+msgstr ""
+
+msgid "Middle pushed turn right"
+msgstr ""
+
+msgid "Right click"
+msgstr ""
+
+msgid "Right double-click"
+msgstr ""
+
+msgid "Side click"
+msgstr ""
+
+msgid "Side double-click"
+msgstr ""
+
+msgid "Extra click"
+msgstr ""
+
+msgid "Extra double-click"
+msgstr ""
+
+msgid "Forward click"
+msgstr ""
+
+msgid "Forward double-click"
+msgstr ""
+
+msgid "Back click"
+msgstr ""
+
+msgid "Back double-click"
+msgstr ""
+
+msgid "Task click"
+msgstr ""
+
+msgid "Task double-click"
+msgstr ""
+
+msgid "Left pushed turn left"
+msgstr ""
+
+msgid "Left pushed turn right"
+msgstr ""
+
+msgid "Right pushed turn left"
+msgstr ""
+
+msgid "Right pushed turn right"
+msgstr ""
+
+msgid "Side pushed turn left"
+msgstr ""
+
+msgid "Side pushed turn right"
+msgstr ""
+
+msgid "Extra pushed turn left"
+msgstr ""
+
+msgid "Extra pushed turn right"
+msgstr ""
+
+msgid "Forward pushed turn left"
+msgstr ""
+
+msgid "Forward pushed turn right"
+msgstr ""
+
+msgid "Back pushed turn left"
+msgstr ""
+
+msgid "Back pushed turn right"
+msgstr ""
+
+msgid "Task pushed turn left"
+msgstr ""
+
+msgid "Task pushed turn right"
+msgstr ""
+
+msgid "Set current key binding for all contexts?"
+msgstr ""
diff --git a/po/cs_CZ.po b/po/cs_CZ.po
new file mode 100644
index 0000000..aa2e22e
--- /dev/null
+++ b/po/cs_CZ.po
@@ -0,0 +1,190 @@
+# VDR plugin language source file.
+# Copyright (C) 2007 Klaus Schmidinger <kls@cadsoft.de>
+# This file is distributed under the same license as the VDR package.
+# Vladimír Bárta <vladimir.barta@k2atmitec.cz>, 2006
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: VDR 1.5.7\n"
+"Report-Msgid-Bugs-To: <jollyjoe80@yahoo.de>\n"
+"POT-Creation-Date: 2008-05-01 18:59+0200\n"
+"PO-Revision-Date: 2008-02-10 18:28+0100\n"
+"Last-Translator: Vladimír Bárta <vladimir.barta@k2atmitec.cz>\n"
+"Language-Team: <vdr@linuxtv.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Controls VDR via a mouse"
+msgstr ""
+
+msgid "Sensitivity wheel"
+msgstr ""
+
+msgid "Double click time (ms)"
+msgstr ""
+
+msgid "Alternative key binding"
+msgstr ""
+
+msgid "no"
+msgstr ""
+
+msgid "yes"
+msgstr ""
+
+msgid "Toggle click time (ms)"
+msgstr ""
+
+msgid "Show toggle with scroll lock led"
+msgstr ""
+
+msgid "Toggle automatic off"
+msgstr ""
+
+msgid "Toggle off time (ms)"
+msgstr ""
+
+msgid "Extra pushed turn events"
+msgstr ""
+
+msgid "Extra x,y turn events"
+msgstr ""
+
+msgid "Sensitivity x"
+msgstr ""
+
+msgid "Sensitivity y"
+msgstr ""
+
+msgid "DVD sensitive replay context"
+msgstr ""
+
+msgid "MP3 sensitive replay context"
+msgstr ""
+
+msgid "CDDA sensitive replay context"
+msgstr ""
+
+msgid "IMAGE sensitive replay context"
+msgstr ""
+
+msgid "Set keys for context"
+msgstr ""
+
+msgid "Turn wheel left"
+msgstr ""
+
+msgid "Turn wheel right"
+msgstr ""
+
+msgid "Turn x axis left"
+msgstr ""
+
+msgid "Turn x axis right"
+msgstr ""
+
+msgid "Turn y axis left"
+msgstr ""
+
+msgid "Turn y axis right"
+msgstr ""
+
+msgid "Left click"
+msgstr ""
+
+msgid "Left double-click"
+msgstr ""
+
+msgid "Middle click"
+msgstr ""
+
+msgid "Middle double-click"
+msgstr ""
+
+msgid "Middle pushed turn left"
+msgstr ""
+
+msgid "Middle pushed turn right"
+msgstr ""
+
+msgid "Right click"
+msgstr ""
+
+msgid "Right double-click"
+msgstr ""
+
+msgid "Side click"
+msgstr ""
+
+msgid "Side double-click"
+msgstr ""
+
+msgid "Extra click"
+msgstr ""
+
+msgid "Extra double-click"
+msgstr ""
+
+msgid "Forward click"
+msgstr ""
+
+msgid "Forward double-click"
+msgstr ""
+
+msgid "Back click"
+msgstr ""
+
+msgid "Back double-click"
+msgstr ""
+
+msgid "Task click"
+msgstr ""
+
+msgid "Task double-click"
+msgstr ""
+
+msgid "Left pushed turn left"
+msgstr ""
+
+msgid "Left pushed turn right"
+msgstr ""
+
+msgid "Right pushed turn left"
+msgstr ""
+
+msgid "Right pushed turn right"
+msgstr ""
+
+msgid "Side pushed turn left"
+msgstr ""
+
+msgid "Side pushed turn right"
+msgstr ""
+
+msgid "Extra pushed turn left"
+msgstr ""
+
+msgid "Extra pushed turn right"
+msgstr ""
+
+msgid "Forward pushed turn left"
+msgstr ""
+
+msgid "Forward pushed turn right"
+msgstr ""
+
+msgid "Back pushed turn left"
+msgstr ""
+
+msgid "Back pushed turn right"
+msgstr ""
+
+msgid "Task pushed turn left"
+msgstr ""
+
+msgid "Task pushed turn right"
+msgstr ""
+
+msgid "Set current key binding for all contexts?"
+msgstr ""
diff --git a/po/da_DK.po b/po/da_DK.po
new file mode 100644
index 0000000..6c3be82
--- /dev/null
+++ b/po/da_DK.po
@@ -0,0 +1,190 @@
+# VDR plugin language source file.
+# Copyright (C) 2007 Klaus Schmidinger <kls@cadsoft.de>
+# This file is distributed under the same license as the VDR package.
+# Mogens Elneff <mogens@elneff.dk>, 2004
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: VDR 1.5.7\n"
+"Report-Msgid-Bugs-To: <jollyjoe80@yahoo.de>\n"
+"POT-Creation-Date: 2008-05-01 18:59+0200\n"
+"PO-Revision-Date: 2008-02-10 18:28+0100\n"
+"Last-Translator: Mogens Elneff <mogens@elneff.dk>\n"
+"Language-Team: <vdr@linuxtv.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-15\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Controls VDR via a mouse"
+msgstr ""
+
+msgid "Sensitivity wheel"
+msgstr ""
+
+msgid "Double click time (ms)"
+msgstr ""
+
+msgid "Alternative key binding"
+msgstr ""
+
+msgid "no"
+msgstr ""
+
+msgid "yes"
+msgstr ""
+
+msgid "Toggle click time (ms)"
+msgstr ""
+
+msgid "Show toggle with scroll lock led"
+msgstr ""
+
+msgid "Toggle automatic off"
+msgstr ""
+
+msgid "Toggle off time (ms)"
+msgstr ""
+
+msgid "Extra pushed turn events"
+msgstr ""
+
+msgid "Extra x,y turn events"
+msgstr ""
+
+msgid "Sensitivity x"
+msgstr ""
+
+msgid "Sensitivity y"
+msgstr ""
+
+msgid "DVD sensitive replay context"
+msgstr ""
+
+msgid "MP3 sensitive replay context"
+msgstr ""
+
+msgid "CDDA sensitive replay context"
+msgstr ""
+
+msgid "IMAGE sensitive replay context"
+msgstr ""
+
+msgid "Set keys for context"
+msgstr ""
+
+msgid "Turn wheel left"
+msgstr ""
+
+msgid "Turn wheel right"
+msgstr ""
+
+msgid "Turn x axis left"
+msgstr ""
+
+msgid "Turn x axis right"
+msgstr ""
+
+msgid "Turn y axis left"
+msgstr ""
+
+msgid "Turn y axis right"
+msgstr ""
+
+msgid "Left click"
+msgstr ""
+
+msgid "Left double-click"
+msgstr ""
+
+msgid "Middle click"
+msgstr ""
+
+msgid "Middle double-click"
+msgstr ""
+
+msgid "Middle pushed turn left"
+msgstr ""
+
+msgid "Middle pushed turn right"
+msgstr ""
+
+msgid "Right click"
+msgstr ""
+
+msgid "Right double-click"
+msgstr ""
+
+msgid "Side click"
+msgstr ""
+
+msgid "Side double-click"
+msgstr ""
+
+msgid "Extra click"
+msgstr ""
+
+msgid "Extra double-click"
+msgstr ""
+
+msgid "Forward click"
+msgstr ""
+
+msgid "Forward double-click"
+msgstr ""
+
+msgid "Back click"
+msgstr ""
+
+msgid "Back double-click"
+msgstr ""
+
+msgid "Task click"
+msgstr ""
+
+msgid "Task double-click"
+msgstr ""
+
+msgid "Left pushed turn left"
+msgstr ""
+
+msgid "Left pushed turn right"
+msgstr ""
+
+msgid "Right pushed turn left"
+msgstr ""
+
+msgid "Right pushed turn right"
+msgstr ""
+
+msgid "Side pushed turn left"
+msgstr ""
+
+msgid "Side pushed turn right"
+msgstr ""
+
+msgid "Extra pushed turn left"
+msgstr ""
+
+msgid "Extra pushed turn right"
+msgstr ""
+
+msgid "Forward pushed turn left"
+msgstr ""
+
+msgid "Forward pushed turn right"
+msgstr ""
+
+msgid "Back pushed turn left"
+msgstr ""
+
+msgid "Back pushed turn right"
+msgstr ""
+
+msgid "Task pushed turn left"
+msgstr ""
+
+msgid "Task pushed turn right"
+msgstr ""
+
+msgid "Set current key binding for all contexts?"
+msgstr ""
diff --git a/po/de_DE.po b/po/de_DE.po
new file mode 100644
index 0000000..12a6c56
--- /dev/null
+++ b/po/de_DE.po
@@ -0,0 +1,192 @@
+# VDR plugin language source file.
+# Copyright (C) 2007 Klaus Schmidinger <kls@cadsoft.de>
+# This file is distributed under the same license as the VDR package.
+# Klaus Schmidinger <kls@cadsoft.de>, 2000
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: VDR 1.5.7\n"
+"Report-Msgid-Bugs-To: <jollyjoe80@yahoo.de>\n"
+"POT-Creation-Date: 2008-05-01 18:22+0200\n"
+"PO-Revision-Date: 2008-02-10 18:28+0100\n"
+"Last-Translator: Klaus Schmidinger <kls@cadsoft.de>\n"
+"Language-Team: <vdr@linuxtv.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-15\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Controls VDR via a mouse"
+msgstr "Bedient VDR mit einer Maus"
+
+msgid "Sensitivity wheel"
+msgstr "Sensitivität Rad"
+
+msgid "Double click time (ms)"
+msgstr "Doppelklick Zeit (ms)"
+
+msgid "Alternative key binding"
+msgstr "Alternative Tastenzuordnung"
+
+msgid "no"
+msgstr "nein"
+
+msgid "yes"
+msgstr "ja"
+
+msgid "Toggle click time (ms)"
+msgstr "Umschaltklick Zeit (ms)"
+
+msgid "Show toggle with scroll lock led"
+msgstr "Umschalten mit Scroll-Lock LED zeigen"
+
+msgid "Toggle automatic off"
+msgstr "Umschalten automatisch aus"
+
+msgid "Toggle off time (ms)"
+msgstr "Umschalten aus nach Zeit (ms)"
+
+msgid "Extra pushed turn events"
+msgstr "Extra gedrückte Dreh-Events"
+
+msgid "Extra x,y turn events"
+msgstr "Extra x,y Dreh-Events"
+
+msgid "Sensitivity x"
+msgstr "Sensitivität x"
+
+msgid "Sensitivity y"
+msgstr "Sensitivität y"
+
+msgid "DVD sensitive replay context"
+msgstr "DVD sensitiver Replay Kontext"
+
+msgid "MP3 sensitive replay context"
+msgstr "MP3 sensitiver Replay Kontext"
+
+msgid "CDDA sensitive replay context"
+msgstr "CDDA sensitiver Replay Kontext"
+
+msgid "IMAGE sensitive replay context"
+msgstr "IMAGE sensitiver Replay Kontext"
+
+msgid "Set keys for context"
+msgstr "Setze Tasten für Kontext"
+
+msgid "Turn wheel left"
+msgstr "Rad links drehen"
+
+msgid "Turn wheel right"
+msgstr "Rad rechts drehen"
+
+msgid "Turn x axis left"
+msgstr "X Achse links drehen"
+
+msgid "Turn x axis right"
+msgstr "X Achse rechts drehen"
+
+msgid "Turn y axis left"
+msgstr "Y Achse links drehen"
+
+msgid "Turn y axis right"
+msgstr "Y Achse rechts drehen"
+
+msgid "Left click"
+msgstr "Klick links"
+
+msgid "Left double-click"
+msgstr "Doppelklick links"
+
+msgid "Middle click"
+msgstr "Klick mitte"
+
+msgid "Middle double-click"
+msgstr "Doppelklick mitte"
+
+msgid "Middle pushed turn left"
+msgstr "Mitte gedrückt links drehen"
+
+msgid "Middle pushed turn right"
+msgstr "Mitte gedrückt rechts drehen"
+
+msgid "Right click"
+msgstr "Klick rechts"
+
+msgid "Right double-click"
+msgstr "Doppelklick rechts"
+
+msgid "Side click"
+msgstr "Klick seite"
+
+msgid "Side double-click"
+msgstr "Doppelklick seite"
+
+msgid "Extra click"
+msgstr "Klick extra"
+
+msgid "Extra double-click"
+msgstr "Doppelklick extra"
+
+msgid "Forward click"
+msgstr "Klick vorwärts"
+
+msgid "Forward double-click"
+msgstr "Doppelklick vorwärts"
+
+msgid "Back click"
+msgstr "Klick zurück"
+
+msgid "Back double-click"
+msgstr "Doppelklick zurück"
+
+msgid "Task click"
+msgstr "Klick task"
+
+msgid "Task double-click"
+msgstr "Doppelklick Task"
+
+msgid "Left pushed turn left"
+msgstr "Links gedrückt links drehen"
+
+msgid "Left pushed turn right"
+msgstr "Links gedrückt rechts drehen"
+
+msgid "Right pushed turn left"
+msgstr "Rechts gedrückt links drehen"
+
+msgid "Right pushed turn right"
+msgstr "Rechts gedrückt rechts drehen"
+
+msgid "Side pushed turn left"
+msgstr "Seite gedrückt links drehen"
+
+msgid "Side pushed turn right"
+msgstr "Seite gedrückt rechts drehen"
+
+msgid "Extra pushed turn left"
+msgstr "Extra gedrückt links drehen"
+
+msgid "Extra pushed turn right"
+msgstr "Extra gedrückt rechts drehen"
+
+msgid "Forward pushed turn left"
+msgstr "Vorwärts gedrückt links drehen"
+
+msgid "Forward pushed turn right"
+msgstr "Vorwärts gedrückt rechts drehen"
+
+msgid "Back pushed turn left"
+msgstr "Zurück gedrückt links drehen"
+
+msgid "Back pushed turn right"
+msgstr "Zurück gedrückt rechts drehen"
+
+msgid "Task pushed turn left"
+msgstr "Task gedrückt links drehen"
+
+msgid "Task pushed turn right"
+msgstr "Task gedrückt rechts drehen"
+
+msgid "Set current key binding for all contexts?"
+msgstr "Aktuelle Tastenzuordnung für alle Kontexte setzen?"
+
+
diff --git a/po/de_DE.po~ b/po/de_DE.po~
new file mode 100644
index 0000000..12a6c56
--- /dev/null
+++ b/po/de_DE.po~
@@ -0,0 +1,192 @@
+# VDR plugin language source file.
+# Copyright (C) 2007 Klaus Schmidinger <kls@cadsoft.de>
+# This file is distributed under the same license as the VDR package.
+# Klaus Schmidinger <kls@cadsoft.de>, 2000
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: VDR 1.5.7\n"
+"Report-Msgid-Bugs-To: <jollyjoe80@yahoo.de>\n"
+"POT-Creation-Date: 2008-05-01 18:22+0200\n"
+"PO-Revision-Date: 2008-02-10 18:28+0100\n"
+"Last-Translator: Klaus Schmidinger <kls@cadsoft.de>\n"
+"Language-Team: <vdr@linuxtv.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-15\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Controls VDR via a mouse"
+msgstr "Bedient VDR mit einer Maus"
+
+msgid "Sensitivity wheel"
+msgstr "Sensitivität Rad"
+
+msgid "Double click time (ms)"
+msgstr "Doppelklick Zeit (ms)"
+
+msgid "Alternative key binding"
+msgstr "Alternative Tastenzuordnung"
+
+msgid "no"
+msgstr "nein"
+
+msgid "yes"
+msgstr "ja"
+
+msgid "Toggle click time (ms)"
+msgstr "Umschaltklick Zeit (ms)"
+
+msgid "Show toggle with scroll lock led"
+msgstr "Umschalten mit Scroll-Lock LED zeigen"
+
+msgid "Toggle automatic off"
+msgstr "Umschalten automatisch aus"
+
+msgid "Toggle off time (ms)"
+msgstr "Umschalten aus nach Zeit (ms)"
+
+msgid "Extra pushed turn events"
+msgstr "Extra gedrückte Dreh-Events"
+
+msgid "Extra x,y turn events"
+msgstr "Extra x,y Dreh-Events"
+
+msgid "Sensitivity x"
+msgstr "Sensitivität x"
+
+msgid "Sensitivity y"
+msgstr "Sensitivität y"
+
+msgid "DVD sensitive replay context"
+msgstr "DVD sensitiver Replay Kontext"
+
+msgid "MP3 sensitive replay context"
+msgstr "MP3 sensitiver Replay Kontext"
+
+msgid "CDDA sensitive replay context"
+msgstr "CDDA sensitiver Replay Kontext"
+
+msgid "IMAGE sensitive replay context"
+msgstr "IMAGE sensitiver Replay Kontext"
+
+msgid "Set keys for context"
+msgstr "Setze Tasten für Kontext"
+
+msgid "Turn wheel left"
+msgstr "Rad links drehen"
+
+msgid "Turn wheel right"
+msgstr "Rad rechts drehen"
+
+msgid "Turn x axis left"
+msgstr "X Achse links drehen"
+
+msgid "Turn x axis right"
+msgstr "X Achse rechts drehen"
+
+msgid "Turn y axis left"
+msgstr "Y Achse links drehen"
+
+msgid "Turn y axis right"
+msgstr "Y Achse rechts drehen"
+
+msgid "Left click"
+msgstr "Klick links"
+
+msgid "Left double-click"
+msgstr "Doppelklick links"
+
+msgid "Middle click"
+msgstr "Klick mitte"
+
+msgid "Middle double-click"
+msgstr "Doppelklick mitte"
+
+msgid "Middle pushed turn left"
+msgstr "Mitte gedrückt links drehen"
+
+msgid "Middle pushed turn right"
+msgstr "Mitte gedrückt rechts drehen"
+
+msgid "Right click"
+msgstr "Klick rechts"
+
+msgid "Right double-click"
+msgstr "Doppelklick rechts"
+
+msgid "Side click"
+msgstr "Klick seite"
+
+msgid "Side double-click"
+msgstr "Doppelklick seite"
+
+msgid "Extra click"
+msgstr "Klick extra"
+
+msgid "Extra double-click"
+msgstr "Doppelklick extra"
+
+msgid "Forward click"
+msgstr "Klick vorwärts"
+
+msgid "Forward double-click"
+msgstr "Doppelklick vorwärts"
+
+msgid "Back click"
+msgstr "Klick zurück"
+
+msgid "Back double-click"
+msgstr "Doppelklick zurück"
+
+msgid "Task click"
+msgstr "Klick task"
+
+msgid "Task double-click"
+msgstr "Doppelklick Task"
+
+msgid "Left pushed turn left"
+msgstr "Links gedrückt links drehen"
+
+msgid "Left pushed turn right"
+msgstr "Links gedrückt rechts drehen"
+
+msgid "Right pushed turn left"
+msgstr "Rechts gedrückt links drehen"
+
+msgid "Right pushed turn right"
+msgstr "Rechts gedrückt rechts drehen"
+
+msgid "Side pushed turn left"
+msgstr "Seite gedrückt links drehen"
+
+msgid "Side pushed turn right"
+msgstr "Seite gedrückt rechts drehen"
+
+msgid "Extra pushed turn left"
+msgstr "Extra gedrückt links drehen"
+
+msgid "Extra pushed turn right"
+msgstr "Extra gedrückt rechts drehen"
+
+msgid "Forward pushed turn left"
+msgstr "Vorwärts gedrückt links drehen"
+
+msgid "Forward pushed turn right"
+msgstr "Vorwärts gedrückt rechts drehen"
+
+msgid "Back pushed turn left"
+msgstr "Zurück gedrückt links drehen"
+
+msgid "Back pushed turn right"
+msgstr "Zurück gedrückt rechts drehen"
+
+msgid "Task pushed turn left"
+msgstr "Task gedrückt links drehen"
+
+msgid "Task pushed turn right"
+msgstr "Task gedrückt rechts drehen"
+
+msgid "Set current key binding for all contexts?"
+msgstr "Aktuelle Tastenzuordnung für alle Kontexte setzen?"
+
+
diff --git a/po/el_GR.po b/po/el_GR.po
new file mode 100644
index 0000000..cddce3a
--- /dev/null
+++ b/po/el_GR.po
@@ -0,0 +1,190 @@
+# VDR plugin language source file.
+# Copyright (C) 2007 Klaus Schmidinger <kls@cadsoft.de>
+# This file is distributed under the same license as the VDR package.
+# Dimitrios Dimitrakos <mail@dimitrios.de>, 2002
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: VDR 1.5.7\n"
+"Report-Msgid-Bugs-To: <jollyjoe80@yahoo.de>\n"
+"POT-Creation-Date: 2008-05-01 18:59+0200\n"
+"PO-Revision-Date: 2008-02-10 18:28+0100\n"
+"Last-Translator: Dimitrios Dimitrakos <mail@dimitrios.de>\n"
+"Language-Team: <vdr@linuxtv.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-7\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Controls VDR via a mouse"
+msgstr ""
+
+msgid "Sensitivity wheel"
+msgstr ""
+
+msgid "Double click time (ms)"
+msgstr ""
+
+msgid "Alternative key binding"
+msgstr ""
+
+msgid "no"
+msgstr ""
+
+msgid "yes"
+msgstr ""
+
+msgid "Toggle click time (ms)"
+msgstr ""
+
+msgid "Show toggle with scroll lock led"
+msgstr ""
+
+msgid "Toggle automatic off"
+msgstr ""
+
+msgid "Toggle off time (ms)"
+msgstr ""
+
+msgid "Extra pushed turn events"
+msgstr ""
+
+msgid "Extra x,y turn events"
+msgstr ""
+
+msgid "Sensitivity x"
+msgstr ""
+
+msgid "Sensitivity y"
+msgstr ""
+
+msgid "DVD sensitive replay context"
+msgstr ""
+
+msgid "MP3 sensitive replay context"
+msgstr ""
+
+msgid "CDDA sensitive replay context"
+msgstr ""
+
+msgid "IMAGE sensitive replay context"
+msgstr ""
+
+msgid "Set keys for context"
+msgstr ""
+
+msgid "Turn wheel left"
+msgstr ""
+
+msgid "Turn wheel right"
+msgstr ""
+
+msgid "Turn x axis left"
+msgstr ""
+
+msgid "Turn x axis right"
+msgstr ""
+
+msgid "Turn y axis left"
+msgstr ""
+
+msgid "Turn y axis right"
+msgstr ""
+
+msgid "Left click"
+msgstr ""
+
+msgid "Left double-click"
+msgstr ""
+
+msgid "Middle click"
+msgstr ""
+
+msgid "Middle double-click"
+msgstr ""
+
+msgid "Middle pushed turn left"
+msgstr ""
+
+msgid "Middle pushed turn right"
+msgstr ""
+
+msgid "Right click"
+msgstr ""
+
+msgid "Right double-click"
+msgstr ""
+
+msgid "Side click"
+msgstr ""
+
+msgid "Side double-click"
+msgstr ""
+
+msgid "Extra click"
+msgstr ""
+
+msgid "Extra double-click"
+msgstr ""
+
+msgid "Forward click"
+msgstr ""
+
+msgid "Forward double-click"
+msgstr ""
+
+msgid "Back click"
+msgstr ""
+
+msgid "Back double-click"
+msgstr ""
+
+msgid "Task click"
+msgstr ""
+
+msgid "Task double-click"
+msgstr ""
+
+msgid "Left pushed turn left"
+msgstr ""
+
+msgid "Left pushed turn right"
+msgstr ""
+
+msgid "Right pushed turn left"
+msgstr ""
+
+msgid "Right pushed turn right"
+msgstr ""
+
+msgid "Side pushed turn left"
+msgstr ""
+
+msgid "Side pushed turn right"
+msgstr ""
+
+msgid "Extra pushed turn left"
+msgstr ""
+
+msgid "Extra pushed turn right"
+msgstr ""
+
+msgid "Forward pushed turn left"
+msgstr ""
+
+msgid "Forward pushed turn right"
+msgstr ""
+
+msgid "Back pushed turn left"
+msgstr ""
+
+msgid "Back pushed turn right"
+msgstr ""
+
+msgid "Task pushed turn left"
+msgstr ""
+
+msgid "Task pushed turn right"
+msgstr ""
+
+msgid "Set current key binding for all contexts?"
+msgstr ""
diff --git a/po/es_ES.po b/po/es_ES.po
new file mode 100644
index 0000000..4a0e1ad
--- /dev/null
+++ b/po/es_ES.po
@@ -0,0 +1,190 @@
+# VDR plugin language source file.
+# Copyright (C) 2007 Klaus Schmidinger <kls@cadsoft.de>
+# This file is distributed under the same license as the VDR package.
+# Ruben Nunez Francisco <ruben.nunez@tang-it.com>, 2002
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: VDR 1.5.7\n"
+"Report-Msgid-Bugs-To: <jollyjoe80@yahoo.de>\n"
+"POT-Creation-Date: 2008-05-01 18:59+0200\n"
+"PO-Revision-Date: 2008-02-10 18:28+0100\n"
+"Last-Translator: Ruben Nunez Francisco <ruben.nunez@tang-it.com>\n"
+"Language-Team: <vdr@linuxtv.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-15\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Controls VDR via a mouse"
+msgstr ""
+
+msgid "Sensitivity wheel"
+msgstr ""
+
+msgid "Double click time (ms)"
+msgstr ""
+
+msgid "Alternative key binding"
+msgstr ""
+
+msgid "no"
+msgstr ""
+
+msgid "yes"
+msgstr ""
+
+msgid "Toggle click time (ms)"
+msgstr ""
+
+msgid "Show toggle with scroll lock led"
+msgstr ""
+
+msgid "Toggle automatic off"
+msgstr ""
+
+msgid "Toggle off time (ms)"
+msgstr ""
+
+msgid "Extra pushed turn events"
+msgstr ""
+
+msgid "Extra x,y turn events"
+msgstr ""
+
+msgid "Sensitivity x"
+msgstr ""
+
+msgid "Sensitivity y"
+msgstr ""
+
+msgid "DVD sensitive replay context"
+msgstr ""
+
+msgid "MP3 sensitive replay context"
+msgstr ""
+
+msgid "CDDA sensitive replay context"
+msgstr ""
+
+msgid "IMAGE sensitive replay context"
+msgstr ""
+
+msgid "Set keys for context"
+msgstr ""
+
+msgid "Turn wheel left"
+msgstr ""
+
+msgid "Turn wheel right"
+msgstr ""
+
+msgid "Turn x axis left"
+msgstr ""
+
+msgid "Turn x axis right"
+msgstr ""
+
+msgid "Turn y axis left"
+msgstr ""
+
+msgid "Turn y axis right"
+msgstr ""
+
+msgid "Left click"
+msgstr ""
+
+msgid "Left double-click"
+msgstr ""
+
+msgid "Middle click"
+msgstr ""
+
+msgid "Middle double-click"
+msgstr ""
+
+msgid "Middle pushed turn left"
+msgstr ""
+
+msgid "Middle pushed turn right"
+msgstr ""
+
+msgid "Right click"
+msgstr ""
+
+msgid "Right double-click"
+msgstr ""
+
+msgid "Side click"
+msgstr ""
+
+msgid "Side double-click"
+msgstr ""
+
+msgid "Extra click"
+msgstr ""
+
+msgid "Extra double-click"
+msgstr ""
+
+msgid "Forward click"
+msgstr ""
+
+msgid "Forward double-click"
+msgstr ""
+
+msgid "Back click"
+msgstr ""
+
+msgid "Back double-click"
+msgstr ""
+
+msgid "Task click"
+msgstr ""
+
+msgid "Task double-click"
+msgstr ""
+
+msgid "Left pushed turn left"
+msgstr ""
+
+msgid "Left pushed turn right"
+msgstr ""
+
+msgid "Right pushed turn left"
+msgstr ""
+
+msgid "Right pushed turn right"
+msgstr ""
+
+msgid "Side pushed turn left"
+msgstr ""
+
+msgid "Side pushed turn right"
+msgstr ""
+
+msgid "Extra pushed turn left"
+msgstr ""
+
+msgid "Extra pushed turn right"
+msgstr ""
+
+msgid "Forward pushed turn left"
+msgstr ""
+
+msgid "Forward pushed turn right"
+msgstr ""
+
+msgid "Back pushed turn left"
+msgstr ""
+
+msgid "Back pushed turn right"
+msgstr ""
+
+msgid "Task pushed turn left"
+msgstr ""
+
+msgid "Task pushed turn right"
+msgstr ""
+
+msgid "Set current key binding for all contexts?"
+msgstr ""
diff --git a/po/et_EE.po b/po/et_EE.po
new file mode 100644
index 0000000..24a2614
--- /dev/null
+++ b/po/et_EE.po
@@ -0,0 +1,190 @@
+# VDR plugin language source file.
+# Copyright (C) 2007 Klaus Schmidinger <kls@cadsoft.de>
+# This file is distributed under the same license as the VDR package.
+# Arthur Konovalov <kasjas@hot.ee>, 2004
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: VDR 1.5.7\n"
+"Report-Msgid-Bugs-To: <jollyjoe80@yahoo.de>\n"
+"POT-Creation-Date: 2008-05-01 18:59+0200\n"
+"PO-Revision-Date: 2008-02-10 18:28+0100\n"
+"Last-Translator: Arthur Konovalov <kasjas@hot.ee>\n"
+"Language-Team: <vdr@linuxtv.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-13\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Controls VDR via a mouse"
+msgstr ""
+
+msgid "Sensitivity wheel"
+msgstr ""
+
+msgid "Double click time (ms)"
+msgstr ""
+
+msgid "Alternative key binding"
+msgstr ""
+
+msgid "no"
+msgstr ""
+
+msgid "yes"
+msgstr ""
+
+msgid "Toggle click time (ms)"
+msgstr ""
+
+msgid "Show toggle with scroll lock led"
+msgstr ""
+
+msgid "Toggle automatic off"
+msgstr ""
+
+msgid "Toggle off time (ms)"
+msgstr ""
+
+msgid "Extra pushed turn events"
+msgstr ""
+
+msgid "Extra x,y turn events"
+msgstr ""
+
+msgid "Sensitivity x"
+msgstr ""
+
+msgid "Sensitivity y"
+msgstr ""
+
+msgid "DVD sensitive replay context"
+msgstr ""
+
+msgid "MP3 sensitive replay context"
+msgstr ""
+
+msgid "CDDA sensitive replay context"
+msgstr ""
+
+msgid "IMAGE sensitive replay context"
+msgstr ""
+
+msgid "Set keys for context"
+msgstr ""
+
+msgid "Turn wheel left"
+msgstr ""
+
+msgid "Turn wheel right"
+msgstr ""
+
+msgid "Turn x axis left"
+msgstr ""
+
+msgid "Turn x axis right"
+msgstr ""
+
+msgid "Turn y axis left"
+msgstr ""
+
+msgid "Turn y axis right"
+msgstr ""
+
+msgid "Left click"
+msgstr ""
+
+msgid "Left double-click"
+msgstr ""
+
+msgid "Middle click"
+msgstr ""
+
+msgid "Middle double-click"
+msgstr ""
+
+msgid "Middle pushed turn left"
+msgstr ""
+
+msgid "Middle pushed turn right"
+msgstr ""
+
+msgid "Right click"
+msgstr ""
+
+msgid "Right double-click"
+msgstr ""
+
+msgid "Side click"
+msgstr ""
+
+msgid "Side double-click"
+msgstr ""
+
+msgid "Extra click"
+msgstr ""
+
+msgid "Extra double-click"
+msgstr ""
+
+msgid "Forward click"
+msgstr ""
+
+msgid "Forward double-click"
+msgstr ""
+
+msgid "Back click"
+msgstr ""
+
+msgid "Back double-click"
+msgstr ""
+
+msgid "Task click"
+msgstr ""
+
+msgid "Task double-click"
+msgstr ""
+
+msgid "Left pushed turn left"
+msgstr ""
+
+msgid "Left pushed turn right"
+msgstr ""
+
+msgid "Right pushed turn left"
+msgstr ""
+
+msgid "Right pushed turn right"
+msgstr ""
+
+msgid "Side pushed turn left"
+msgstr ""
+
+msgid "Side pushed turn right"
+msgstr ""
+
+msgid "Extra pushed turn left"
+msgstr ""
+
+msgid "Extra pushed turn right"
+msgstr ""
+
+msgid "Forward pushed turn left"
+msgstr ""
+
+msgid "Forward pushed turn right"
+msgstr ""
+
+msgid "Back pushed turn left"
+msgstr ""
+
+msgid "Back pushed turn right"
+msgstr ""
+
+msgid "Task pushed turn left"
+msgstr ""
+
+msgid "Task pushed turn right"
+msgstr ""
+
+msgid "Set current key binding for all contexts?"
+msgstr ""
diff --git a/po/fi_FI.po b/po/fi_FI.po
new file mode 100644
index 0000000..c0be026
--- /dev/null
+++ b/po/fi_FI.po
@@ -0,0 +1,193 @@
+# VDR plugin language source file.
+# Copyright (C) 2007 Klaus Schmidinger <kls@cadsoft.de>
+# This file is distributed under the same license as the VDR package.
+# Hannu Savolainen <hannu@opensound.com>, 2002
+# Jaakko Hyvätti <jaakko@hyvatti.iki.fi>, 2002
+# Niko Tarnanen <niko.tarnanen@hut.fi>, 2003
+# Rolf Ahrenberg <rahrenbe@cc.hut.fi>, 2003
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: VDR 1.5.7\n"
+"Report-Msgid-Bugs-To: <jollyjoe80@yahoo.de>\n"
+"POT-Creation-Date: 2008-05-01 18:59+0200\n"
+"PO-Revision-Date: 2008-02-10 18:28+0100\n"
+"Last-Translator: Rolf Ahrenberg <rahrenbe@cc.hut.fi>\n"
+"Language-Team: <vdr@linuxtv.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-15\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Controls VDR via a mouse"
+msgstr ""
+
+msgid "Sensitivity wheel"
+msgstr ""
+
+msgid "Double click time (ms)"
+msgstr ""
+
+msgid "Alternative key binding"
+msgstr ""
+
+msgid "no"
+msgstr ""
+
+msgid "yes"
+msgstr ""
+
+msgid "Toggle click time (ms)"
+msgstr ""
+
+msgid "Show toggle with scroll lock led"
+msgstr ""
+
+msgid "Toggle automatic off"
+msgstr ""
+
+msgid "Toggle off time (ms)"
+msgstr ""
+
+msgid "Extra pushed turn events"
+msgstr ""
+
+msgid "Extra x,y turn events"
+msgstr ""
+
+msgid "Sensitivity x"
+msgstr ""
+
+msgid "Sensitivity y"
+msgstr ""
+
+msgid "DVD sensitive replay context"
+msgstr ""
+
+msgid "MP3 sensitive replay context"
+msgstr ""
+
+msgid "CDDA sensitive replay context"
+msgstr ""
+
+msgid "IMAGE sensitive replay context"
+msgstr ""
+
+msgid "Set keys for context"
+msgstr ""
+
+msgid "Turn wheel left"
+msgstr ""
+
+msgid "Turn wheel right"
+msgstr ""
+
+msgid "Turn x axis left"
+msgstr ""
+
+msgid "Turn x axis right"
+msgstr ""
+
+msgid "Turn y axis left"
+msgstr ""
+
+msgid "Turn y axis right"
+msgstr ""
+
+msgid "Left click"
+msgstr ""
+
+msgid "Left double-click"
+msgstr ""
+
+msgid "Middle click"
+msgstr ""
+
+msgid "Middle double-click"
+msgstr ""
+
+msgid "Middle pushed turn left"
+msgstr ""
+
+msgid "Middle pushed turn right"
+msgstr ""
+
+msgid "Right click"
+msgstr ""
+
+msgid "Right double-click"
+msgstr ""
+
+msgid "Side click"
+msgstr ""
+
+msgid "Side double-click"
+msgstr ""
+
+msgid "Extra click"
+msgstr ""
+
+msgid "Extra double-click"
+msgstr ""
+
+msgid "Forward click"
+msgstr ""
+
+msgid "Forward double-click"
+msgstr ""
+
+msgid "Back click"
+msgstr ""
+
+msgid "Back double-click"
+msgstr ""
+
+msgid "Task click"
+msgstr ""
+
+msgid "Task double-click"
+msgstr ""
+
+msgid "Left pushed turn left"
+msgstr ""
+
+msgid "Left pushed turn right"
+msgstr ""
+
+msgid "Right pushed turn left"
+msgstr ""
+
+msgid "Right pushed turn right"
+msgstr ""
+
+msgid "Side pushed turn left"
+msgstr ""
+
+msgid "Side pushed turn right"
+msgstr ""
+
+msgid "Extra pushed turn left"
+msgstr ""
+
+msgid "Extra pushed turn right"
+msgstr ""
+
+msgid "Forward pushed turn left"
+msgstr ""
+
+msgid "Forward pushed turn right"
+msgstr ""
+
+msgid "Back pushed turn left"
+msgstr ""
+
+msgid "Back pushed turn right"
+msgstr ""
+
+msgid "Task pushed turn left"
+msgstr ""
+
+msgid "Task pushed turn right"
+msgstr ""
+
+msgid "Set current key binding for all contexts?"
+msgstr ""
diff --git a/po/fr_FR.po b/po/fr_FR.po
new file mode 100644
index 0000000..aec1665
--- /dev/null
+++ b/po/fr_FR.po
@@ -0,0 +1,193 @@
+# VDR plugin language source file.
+# Copyright (C) 2007 Klaus Schmidinger <kls@cadsoft.de>
+# This file is distributed under the same license as the VDR package.
+# Jean-Claude Repetto <jc@repetto.org>, 2001
+# Olivier Jacques <jacquesolivier@hotmail.com>, 2003
+# Gregoire Favre <greg@magma.unil.ch>, 2003
+# Nicolas Huillard <nhuillard@e-dition.fr>, 2005
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: VDR 1.5.7\n"
+"Report-Msgid-Bugs-To: <jollyjoe80@yahoo.de>\n"
+"POT-Creation-Date: 2008-05-01 18:59+0200\n"
+"PO-Revision-Date: 2008-02-10 18:28+0100\n"
+"Last-Translator: Nicolas Huillard <nhuillard@e-dition.fr>\n"
+"Language-Team: <vdr@linuxtv.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Controls VDR via a mouse"
+msgstr ""
+
+msgid "Sensitivity wheel"
+msgstr ""
+
+msgid "Double click time (ms)"
+msgstr ""
+
+msgid "Alternative key binding"
+msgstr ""
+
+msgid "no"
+msgstr ""
+
+msgid "yes"
+msgstr ""
+
+msgid "Toggle click time (ms)"
+msgstr ""
+
+msgid "Show toggle with scroll lock led"
+msgstr ""
+
+msgid "Toggle automatic off"
+msgstr ""
+
+msgid "Toggle off time (ms)"
+msgstr ""
+
+msgid "Extra pushed turn events"
+msgstr ""
+
+msgid "Extra x,y turn events"
+msgstr ""
+
+msgid "Sensitivity x"
+msgstr ""
+
+msgid "Sensitivity y"
+msgstr ""
+
+msgid "DVD sensitive replay context"
+msgstr ""
+
+msgid "MP3 sensitive replay context"
+msgstr ""
+
+msgid "CDDA sensitive replay context"
+msgstr ""
+
+msgid "IMAGE sensitive replay context"
+msgstr ""
+
+msgid "Set keys for context"
+msgstr ""
+
+msgid "Turn wheel left"
+msgstr ""
+
+msgid "Turn wheel right"
+msgstr ""
+
+msgid "Turn x axis left"
+msgstr ""
+
+msgid "Turn x axis right"
+msgstr ""
+
+msgid "Turn y axis left"
+msgstr ""
+
+msgid "Turn y axis right"
+msgstr ""
+
+msgid "Left click"
+msgstr ""
+
+msgid "Left double-click"
+msgstr ""
+
+msgid "Middle click"
+msgstr ""
+
+msgid "Middle double-click"
+msgstr ""
+
+msgid "Middle pushed turn left"
+msgstr ""
+
+msgid "Middle pushed turn right"
+msgstr ""
+
+msgid "Right click"
+msgstr ""
+
+msgid "Right double-click"
+msgstr ""
+
+msgid "Side click"
+msgstr ""
+
+msgid "Side double-click"
+msgstr ""
+
+msgid "Extra click"
+msgstr ""
+
+msgid "Extra double-click"
+msgstr ""
+
+msgid "Forward click"
+msgstr ""
+
+msgid "Forward double-click"
+msgstr ""
+
+msgid "Back click"
+msgstr ""
+
+msgid "Back double-click"
+msgstr ""
+
+msgid "Task click"
+msgstr ""
+
+msgid "Task double-click"
+msgstr ""
+
+msgid "Left pushed turn left"
+msgstr ""
+
+msgid "Left pushed turn right"
+msgstr ""
+
+msgid "Right pushed turn left"
+msgstr ""
+
+msgid "Right pushed turn right"
+msgstr ""
+
+msgid "Side pushed turn left"
+msgstr ""
+
+msgid "Side pushed turn right"
+msgstr ""
+
+msgid "Extra pushed turn left"
+msgstr ""
+
+msgid "Extra pushed turn right"
+msgstr ""
+
+msgid "Forward pushed turn left"
+msgstr ""
+
+msgid "Forward pushed turn right"
+msgstr ""
+
+msgid "Back pushed turn left"
+msgstr ""
+
+msgid "Back pushed turn right"
+msgstr ""
+
+msgid "Task pushed turn left"
+msgstr ""
+
+msgid "Task pushed turn right"
+msgstr ""
+
+msgid "Set current key binding for all contexts?"
+msgstr ""
diff --git a/po/hr_HR.po b/po/hr_HR.po
new file mode 100644
index 0000000..2535c59
--- /dev/null
+++ b/po/hr_HR.po
@@ -0,0 +1,191 @@
+# VDR plugin language source file.
+# Copyright (C) 2007 Klaus Schmidinger <kls@cadsoft.de>
+# This file is distributed under the same license as the VDR package.
+# Drazen Dupor <drazen.dupor@dupor.com>, 2004
+# Dino Ravnic <dino.ravnic@fer.hr>, 2004
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: VDR 1.5.7\n"
+"Report-Msgid-Bugs-To: <jollyjoe80@yahoo.de>\n"
+"POT-Creation-Date: 2008-05-01 18:59+0200\n"
+"PO-Revision-Date: 2008-02-10 18:28+0100\n"
+"Last-Translator: Drazen Dupor <drazen.dupor@dupor.com>\n"
+"Language-Team: <vdr@linuxtv.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Controls VDR via a mouse"
+msgstr ""
+
+msgid "Sensitivity wheel"
+msgstr ""
+
+msgid "Double click time (ms)"
+msgstr ""
+
+msgid "Alternative key binding"
+msgstr ""
+
+msgid "no"
+msgstr ""
+
+msgid "yes"
+msgstr ""
+
+msgid "Toggle click time (ms)"
+msgstr ""
+
+msgid "Show toggle with scroll lock led"
+msgstr ""
+
+msgid "Toggle automatic off"
+msgstr ""
+
+msgid "Toggle off time (ms)"
+msgstr ""
+
+msgid "Extra pushed turn events"
+msgstr ""
+
+msgid "Extra x,y turn events"
+msgstr ""
+
+msgid "Sensitivity x"
+msgstr ""
+
+msgid "Sensitivity y"
+msgstr ""
+
+msgid "DVD sensitive replay context"
+msgstr ""
+
+msgid "MP3 sensitive replay context"
+msgstr ""
+
+msgid "CDDA sensitive replay context"
+msgstr ""
+
+msgid "IMAGE sensitive replay context"
+msgstr ""
+
+msgid "Set keys for context"
+msgstr ""
+
+msgid "Turn wheel left"
+msgstr ""
+
+msgid "Turn wheel right"
+msgstr ""
+
+msgid "Turn x axis left"
+msgstr ""
+
+msgid "Turn x axis right"
+msgstr ""
+
+msgid "Turn y axis left"
+msgstr ""
+
+msgid "Turn y axis right"
+msgstr ""
+
+msgid "Left click"
+msgstr ""
+
+msgid "Left double-click"
+msgstr ""
+
+msgid "Middle click"
+msgstr ""
+
+msgid "Middle double-click"
+msgstr ""
+
+msgid "Middle pushed turn left"
+msgstr ""
+
+msgid "Middle pushed turn right"
+msgstr ""
+
+msgid "Right click"
+msgstr ""
+
+msgid "Right double-click"
+msgstr ""
+
+msgid "Side click"
+msgstr ""
+
+msgid "Side double-click"
+msgstr ""
+
+msgid "Extra click"
+msgstr ""
+
+msgid "Extra double-click"
+msgstr ""
+
+msgid "Forward click"
+msgstr ""
+
+msgid "Forward double-click"
+msgstr ""
+
+msgid "Back click"
+msgstr ""
+
+msgid "Back double-click"
+msgstr ""
+
+msgid "Task click"
+msgstr ""
+
+msgid "Task double-click"
+msgstr ""
+
+msgid "Left pushed turn left"
+msgstr ""
+
+msgid "Left pushed turn right"
+msgstr ""
+
+msgid "Right pushed turn left"
+msgstr ""
+
+msgid "Right pushed turn right"
+msgstr ""
+
+msgid "Side pushed turn left"
+msgstr ""
+
+msgid "Side pushed turn right"
+msgstr ""
+
+msgid "Extra pushed turn left"
+msgstr ""
+
+msgid "Extra pushed turn right"
+msgstr ""
+
+msgid "Forward pushed turn left"
+msgstr ""
+
+msgid "Forward pushed turn right"
+msgstr ""
+
+msgid "Back pushed turn left"
+msgstr ""
+
+msgid "Back pushed turn right"
+msgstr ""
+
+msgid "Task pushed turn left"
+msgstr ""
+
+msgid "Task pushed turn right"
+msgstr ""
+
+msgid "Set current key binding for all contexts?"
+msgstr ""
diff --git a/po/hu_HU.po b/po/hu_HU.po
new file mode 100644
index 0000000..929813f
--- /dev/null
+++ b/po/hu_HU.po
@@ -0,0 +1,191 @@
+# VDR plugin language source file.
+# Copyright (C) 2007 Klaus Schmidinger <kls@cadsoft.de>
+# This file is distributed under the same license as the VDR package.
+# Istvan Koenigsberger <istvnko@hotmail.com>, 2002
+# Guido Josten <guido.josten@t-online.de>, 2002
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: VDR 1.5.7\n"
+"Report-Msgid-Bugs-To: <jollyjoe80@yahoo.de>\n"
+"POT-Creation-Date: 2008-05-01 18:59+0200\n"
+"PO-Revision-Date: 2008-02-10 18:28+0100\n"
+"Last-Translator: Istvan Koenigsberger <istvnko@hotmail.com>, Guido Josten <guido.josten@t-online.de>\n"
+"Language-Team: <vdr@linuxtv.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Controls VDR via a mouse"
+msgstr ""
+
+msgid "Sensitivity wheel"
+msgstr ""
+
+msgid "Double click time (ms)"
+msgstr ""
+
+msgid "Alternative key binding"
+msgstr ""
+
+msgid "no"
+msgstr ""
+
+msgid "yes"
+msgstr ""
+
+msgid "Toggle click time (ms)"
+msgstr ""
+
+msgid "Show toggle with scroll lock led"
+msgstr ""
+
+msgid "Toggle automatic off"
+msgstr ""
+
+msgid "Toggle off time (ms)"
+msgstr ""
+
+msgid "Extra pushed turn events"
+msgstr ""
+
+msgid "Extra x,y turn events"
+msgstr ""
+
+msgid "Sensitivity x"
+msgstr ""
+
+msgid "Sensitivity y"
+msgstr ""
+
+msgid "DVD sensitive replay context"
+msgstr ""
+
+msgid "MP3 sensitive replay context"
+msgstr ""
+
+msgid "CDDA sensitive replay context"
+msgstr ""
+
+msgid "IMAGE sensitive replay context"
+msgstr ""
+
+msgid "Set keys for context"
+msgstr ""
+
+msgid "Turn wheel left"
+msgstr ""
+
+msgid "Turn wheel right"
+msgstr ""
+
+msgid "Turn x axis left"
+msgstr ""
+
+msgid "Turn x axis right"
+msgstr ""
+
+msgid "Turn y axis left"
+msgstr ""
+
+msgid "Turn y axis right"
+msgstr ""
+
+msgid "Left click"
+msgstr ""
+
+msgid "Left double-click"
+msgstr ""
+
+msgid "Middle click"
+msgstr ""
+
+msgid "Middle double-click"
+msgstr ""
+
+msgid "Middle pushed turn left"
+msgstr ""
+
+msgid "Middle pushed turn right"
+msgstr ""
+
+msgid "Right click"
+msgstr ""
+
+msgid "Right double-click"
+msgstr ""
+
+msgid "Side click"
+msgstr ""
+
+msgid "Side double-click"
+msgstr ""
+
+msgid "Extra click"
+msgstr ""
+
+msgid "Extra double-click"
+msgstr ""
+
+msgid "Forward click"
+msgstr ""
+
+msgid "Forward double-click"
+msgstr ""
+
+msgid "Back click"
+msgstr ""
+
+msgid "Back double-click"
+msgstr ""
+
+msgid "Task click"
+msgstr ""
+
+msgid "Task double-click"
+msgstr ""
+
+msgid "Left pushed turn left"
+msgstr ""
+
+msgid "Left pushed turn right"
+msgstr ""
+
+msgid "Right pushed turn left"
+msgstr ""
+
+msgid "Right pushed turn right"
+msgstr ""
+
+msgid "Side pushed turn left"
+msgstr ""
+
+msgid "Side pushed turn right"
+msgstr ""
+
+msgid "Extra pushed turn left"
+msgstr ""
+
+msgid "Extra pushed turn right"
+msgstr ""
+
+msgid "Forward pushed turn left"
+msgstr ""
+
+msgid "Forward pushed turn right"
+msgstr ""
+
+msgid "Back pushed turn left"
+msgstr ""
+
+msgid "Back pushed turn right"
+msgstr ""
+
+msgid "Task pushed turn left"
+msgstr ""
+
+msgid "Task pushed turn right"
+msgstr ""
+
+msgid "Set current key binding for all contexts?"
+msgstr ""
diff --git a/po/it_IT.po b/po/it_IT.po
new file mode 100644
index 0000000..cad5818
--- /dev/null
+++ b/po/it_IT.po
@@ -0,0 +1,192 @@
+# VDR plugin language source file.
+# Copyright (C) 2007 Klaus Schmidinger <kls@cadsoft.de>
+# This file is distributed under the same license as the VDR package.
+# Alberto Carraro <bertocar@tin.it>, 2001
+# Antonio Ospite <ospite@studenti.unina.it>, 2003
+# Sean Carlos <seanc@libero.it>, 2005
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: VDR 1.5.7\n"
+"Report-Msgid-Bugs-To: <jollyjoe80@yahoo.de>\n"
+"POT-Creation-Date: 2008-05-01 18:59+0200\n"
+"PO-Revision-Date: 2008-02-10 18:28+0100\n"
+"Last-Translator: Sean Carlos <seanc@libero.it>\n"
+"Language-Team: <vdr@linuxtv.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-15\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Controls VDR via a mouse"
+msgstr ""
+
+msgid "Sensitivity wheel"
+msgstr ""
+
+msgid "Double click time (ms)"
+msgstr ""
+
+msgid "Alternative key binding"
+msgstr ""
+
+msgid "no"
+msgstr ""
+
+msgid "yes"
+msgstr ""
+
+msgid "Toggle click time (ms)"
+msgstr ""
+
+msgid "Show toggle with scroll lock led"
+msgstr ""
+
+msgid "Toggle automatic off"
+msgstr ""
+
+msgid "Toggle off time (ms)"
+msgstr ""
+
+msgid "Extra pushed turn events"
+msgstr ""
+
+msgid "Extra x,y turn events"
+msgstr ""
+
+msgid "Sensitivity x"
+msgstr ""
+
+msgid "Sensitivity y"
+msgstr ""
+
+msgid "DVD sensitive replay context"
+msgstr ""
+
+msgid "MP3 sensitive replay context"
+msgstr ""
+
+msgid "CDDA sensitive replay context"
+msgstr ""
+
+msgid "IMAGE sensitive replay context"
+msgstr ""
+
+msgid "Set keys for context"
+msgstr ""
+
+msgid "Turn wheel left"
+msgstr ""
+
+msgid "Turn wheel right"
+msgstr ""
+
+msgid "Turn x axis left"
+msgstr ""
+
+msgid "Turn x axis right"
+msgstr ""
+
+msgid "Turn y axis left"
+msgstr ""
+
+msgid "Turn y axis right"
+msgstr ""
+
+msgid "Left click"
+msgstr ""
+
+msgid "Left double-click"
+msgstr ""
+
+msgid "Middle click"
+msgstr ""
+
+msgid "Middle double-click"
+msgstr ""
+
+msgid "Middle pushed turn left"
+msgstr ""
+
+msgid "Middle pushed turn right"
+msgstr ""
+
+msgid "Right click"
+msgstr ""
+
+msgid "Right double-click"
+msgstr ""
+
+msgid "Side click"
+msgstr ""
+
+msgid "Side double-click"
+msgstr ""
+
+msgid "Extra click"
+msgstr ""
+
+msgid "Extra double-click"
+msgstr ""
+
+msgid "Forward click"
+msgstr ""
+
+msgid "Forward double-click"
+msgstr ""
+
+msgid "Back click"
+msgstr ""
+
+msgid "Back double-click"
+msgstr ""
+
+msgid "Task click"
+msgstr ""
+
+msgid "Task double-click"
+msgstr ""
+
+msgid "Left pushed turn left"
+msgstr ""
+
+msgid "Left pushed turn right"
+msgstr ""
+
+msgid "Right pushed turn left"
+msgstr ""
+
+msgid "Right pushed turn right"
+msgstr ""
+
+msgid "Side pushed turn left"
+msgstr ""
+
+msgid "Side pushed turn right"
+msgstr ""
+
+msgid "Extra pushed turn left"
+msgstr ""
+
+msgid "Extra pushed turn right"
+msgstr ""
+
+msgid "Forward pushed turn left"
+msgstr ""
+
+msgid "Forward pushed turn right"
+msgstr ""
+
+msgid "Back pushed turn left"
+msgstr ""
+
+msgid "Back pushed turn right"
+msgstr ""
+
+msgid "Task pushed turn left"
+msgstr ""
+
+msgid "Task pushed turn right"
+msgstr ""
+
+msgid "Set current key binding for all contexts?"
+msgstr ""
diff --git a/po/nl_NL.po b/po/nl_NL.po
new file mode 100644
index 0000000..50b6e2a
--- /dev/null
+++ b/po/nl_NL.po
@@ -0,0 +1,192 @@
+# VDR plugin language source file.
+# Copyright (C) 2007 Klaus Schmidinger <kls@cadsoft.de>
+# This file is distributed under the same license as the VDR package.
+# Arnold Niessen <niessen@iae.nl> <arnold.niessen@philips.com>, 2001
+# Hans Dingemans <hans.dingemans@tacticalops.nl>, 2003
+# Maarten Wisse <Maarten.Wisse@urz.uni-hd.de>, 2005
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: VDR 1.5.7\n"
+"Report-Msgid-Bugs-To: <jollyjoe80@yahoo.de>\n"
+"POT-Creation-Date: 2008-05-01 18:59+0200\n"
+"PO-Revision-Date: 2008-02-10 18:28+0100\n"
+"Last-Translator: Maarten Wisse <Maarten.Wisse@urz.uni-hd.de>\n"
+"Language-Team: <vdr@linuxtv.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-15\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Controls VDR via a mouse"
+msgstr ""
+
+msgid "Sensitivity wheel"
+msgstr ""
+
+msgid "Double click time (ms)"
+msgstr ""
+
+msgid "Alternative key binding"
+msgstr ""
+
+msgid "no"
+msgstr ""
+
+msgid "yes"
+msgstr ""
+
+msgid "Toggle click time (ms)"
+msgstr ""
+
+msgid "Show toggle with scroll lock led"
+msgstr ""
+
+msgid "Toggle automatic off"
+msgstr ""
+
+msgid "Toggle off time (ms)"
+msgstr ""
+
+msgid "Extra pushed turn events"
+msgstr ""
+
+msgid "Extra x,y turn events"
+msgstr ""
+
+msgid "Sensitivity x"
+msgstr ""
+
+msgid "Sensitivity y"
+msgstr ""
+
+msgid "DVD sensitive replay context"
+msgstr ""
+
+msgid "MP3 sensitive replay context"
+msgstr ""
+
+msgid "CDDA sensitive replay context"
+msgstr ""
+
+msgid "IMAGE sensitive replay context"
+msgstr ""
+
+msgid "Set keys for context"
+msgstr ""
+
+msgid "Turn wheel left"
+msgstr ""
+
+msgid "Turn wheel right"
+msgstr ""
+
+msgid "Turn x axis left"
+msgstr ""
+
+msgid "Turn x axis right"
+msgstr ""
+
+msgid "Turn y axis left"
+msgstr ""
+
+msgid "Turn y axis right"
+msgstr ""
+
+msgid "Left click"
+msgstr ""
+
+msgid "Left double-click"
+msgstr ""
+
+msgid "Middle click"
+msgstr ""
+
+msgid "Middle double-click"
+msgstr ""
+
+msgid "Middle pushed turn left"
+msgstr ""
+
+msgid "Middle pushed turn right"
+msgstr ""
+
+msgid "Right click"
+msgstr ""
+
+msgid "Right double-click"
+msgstr ""
+
+msgid "Side click"
+msgstr ""
+
+msgid "Side double-click"
+msgstr ""
+
+msgid "Extra click"
+msgstr ""
+
+msgid "Extra double-click"
+msgstr ""
+
+msgid "Forward click"
+msgstr ""
+
+msgid "Forward double-click"
+msgstr ""
+
+msgid "Back click"
+msgstr ""
+
+msgid "Back double-click"
+msgstr ""
+
+msgid "Task click"
+msgstr ""
+
+msgid "Task double-click"
+msgstr ""
+
+msgid "Left pushed turn left"
+msgstr ""
+
+msgid "Left pushed turn right"
+msgstr ""
+
+msgid "Right pushed turn left"
+msgstr ""
+
+msgid "Right pushed turn right"
+msgstr ""
+
+msgid "Side pushed turn left"
+msgstr ""
+
+msgid "Side pushed turn right"
+msgstr ""
+
+msgid "Extra pushed turn left"
+msgstr ""
+
+msgid "Extra pushed turn right"
+msgstr ""
+
+msgid "Forward pushed turn left"
+msgstr ""
+
+msgid "Forward pushed turn right"
+msgstr ""
+
+msgid "Back pushed turn left"
+msgstr ""
+
+msgid "Back pushed turn right"
+msgstr ""
+
+msgid "Task pushed turn left"
+msgstr ""
+
+msgid "Task pushed turn right"
+msgstr ""
+
+msgid "Set current key binding for all contexts?"
+msgstr ""
diff --git a/po/nn_NO.po b/po/nn_NO.po
new file mode 100644
index 0000000..3f4fb4e
--- /dev/null
+++ b/po/nn_NO.po
@@ -0,0 +1,191 @@
+# VDR plugin language source file.
+# Copyright (C) 2007 Klaus Schmidinger <kls@cadsoft.de>
+# This file is distributed under the same license as the VDR package.
+# Jĝrgen Tvedt <pjtvedt@online.no>, 2001
+# Truls Slevigen <truls@slevigen.no>, 2002
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: VDR 1.5.7\n"
+"Report-Msgid-Bugs-To: <jollyjoe80@yahoo.de>\n"
+"POT-Creation-Date: 2008-05-01 18:59+0200\n"
+"PO-Revision-Date: 2008-02-10 18:28+0100\n"
+"Last-Translator: Truls Slevigen <truls@slevigen.no>\n"
+"Language-Team: <vdr@linuxtv.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Controls VDR via a mouse"
+msgstr ""
+
+msgid "Sensitivity wheel"
+msgstr ""
+
+msgid "Double click time (ms)"
+msgstr ""
+
+msgid "Alternative key binding"
+msgstr ""
+
+msgid "no"
+msgstr ""
+
+msgid "yes"
+msgstr ""
+
+msgid "Toggle click time (ms)"
+msgstr ""
+
+msgid "Show toggle with scroll lock led"
+msgstr ""
+
+msgid "Toggle automatic off"
+msgstr ""
+
+msgid "Toggle off time (ms)"
+msgstr ""
+
+msgid "Extra pushed turn events"
+msgstr ""
+
+msgid "Extra x,y turn events"
+msgstr ""
+
+msgid "Sensitivity x"
+msgstr ""
+
+msgid "Sensitivity y"
+msgstr ""
+
+msgid "DVD sensitive replay context"
+msgstr ""
+
+msgid "MP3 sensitive replay context"
+msgstr ""
+
+msgid "CDDA sensitive replay context"
+msgstr ""
+
+msgid "IMAGE sensitive replay context"
+msgstr ""
+
+msgid "Set keys for context"
+msgstr ""
+
+msgid "Turn wheel left"
+msgstr ""
+
+msgid "Turn wheel right"
+msgstr ""
+
+msgid "Turn x axis left"
+msgstr ""
+
+msgid "Turn x axis right"
+msgstr ""
+
+msgid "Turn y axis left"
+msgstr ""
+
+msgid "Turn y axis right"
+msgstr ""
+
+msgid "Left click"
+msgstr ""
+
+msgid "Left double-click"
+msgstr ""
+
+msgid "Middle click"
+msgstr ""
+
+msgid "Middle double-click"
+msgstr ""
+
+msgid "Middle pushed turn left"
+msgstr ""
+
+msgid "Middle pushed turn right"
+msgstr ""
+
+msgid "Right click"
+msgstr ""
+
+msgid "Right double-click"
+msgstr ""
+
+msgid "Side click"
+msgstr ""
+
+msgid "Side double-click"
+msgstr ""
+
+msgid "Extra click"
+msgstr ""
+
+msgid "Extra double-click"
+msgstr ""
+
+msgid "Forward click"
+msgstr ""
+
+msgid "Forward double-click"
+msgstr ""
+
+msgid "Back click"
+msgstr ""
+
+msgid "Back double-click"
+msgstr ""
+
+msgid "Task click"
+msgstr ""
+
+msgid "Task double-click"
+msgstr ""
+
+msgid "Left pushed turn left"
+msgstr ""
+
+msgid "Left pushed turn right"
+msgstr ""
+
+msgid "Right pushed turn left"
+msgstr ""
+
+msgid "Right pushed turn right"
+msgstr ""
+
+msgid "Side pushed turn left"
+msgstr ""
+
+msgid "Side pushed turn right"
+msgstr ""
+
+msgid "Extra pushed turn left"
+msgstr ""
+
+msgid "Extra pushed turn right"
+msgstr ""
+
+msgid "Forward pushed turn left"
+msgstr ""
+
+msgid "Forward pushed turn right"
+msgstr ""
+
+msgid "Back pushed turn left"
+msgstr ""
+
+msgid "Back pushed turn right"
+msgstr ""
+
+msgid "Task pushed turn left"
+msgstr ""
+
+msgid "Task pushed turn right"
+msgstr ""
+
+msgid "Set current key binding for all contexts?"
+msgstr ""
diff --git a/po/pl_PL.po b/po/pl_PL.po
new file mode 100644
index 0000000..00bb666
--- /dev/null
+++ b/po/pl_PL.po
@@ -0,0 +1,190 @@
+# VDR plugin language source file.
+# Copyright (C) 2007 Klaus Schmidinger <kls@cadsoft.de>
+# This file is distributed under the same license as the VDR package.
+# Michael Rakowski <mrak@gmx.de>, 2002
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: VDR 1.5.7\n"
+"Report-Msgid-Bugs-To: <jollyjoe80@yahoo.de>\n"
+"POT-Creation-Date: 2008-05-01 18:59+0200\n"
+"PO-Revision-Date: 2008-02-10 18:28+0100\n"
+"Last-Translator: Michael Rakowski <mrak@gmx.de>\n"
+"Language-Team: <vdr@linuxtv.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Controls VDR via a mouse"
+msgstr ""
+
+msgid "Sensitivity wheel"
+msgstr ""
+
+msgid "Double click time (ms)"
+msgstr ""
+
+msgid "Alternative key binding"
+msgstr ""
+
+msgid "no"
+msgstr ""
+
+msgid "yes"
+msgstr ""
+
+msgid "Toggle click time (ms)"
+msgstr ""
+
+msgid "Show toggle with scroll lock led"
+msgstr ""
+
+msgid "Toggle automatic off"
+msgstr ""
+
+msgid "Toggle off time (ms)"
+msgstr ""
+
+msgid "Extra pushed turn events"
+msgstr ""
+
+msgid "Extra x,y turn events"
+msgstr ""
+
+msgid "Sensitivity x"
+msgstr ""
+
+msgid "Sensitivity y"
+msgstr ""
+
+msgid "DVD sensitive replay context"
+msgstr ""
+
+msgid "MP3 sensitive replay context"
+msgstr ""
+
+msgid "CDDA sensitive replay context"
+msgstr ""
+
+msgid "IMAGE sensitive replay context"
+msgstr ""
+
+msgid "Set keys for context"
+msgstr ""
+
+msgid "Turn wheel left"
+msgstr ""
+
+msgid "Turn wheel right"
+msgstr ""
+
+msgid "Turn x axis left"
+msgstr ""
+
+msgid "Turn x axis right"
+msgstr ""
+
+msgid "Turn y axis left"
+msgstr ""
+
+msgid "Turn y axis right"
+msgstr ""
+
+msgid "Left click"
+msgstr ""
+
+msgid "Left double-click"
+msgstr ""
+
+msgid "Middle click"
+msgstr ""
+
+msgid "Middle double-click"
+msgstr ""
+
+msgid "Middle pushed turn left"
+msgstr ""
+
+msgid "Middle pushed turn right"
+msgstr ""
+
+msgid "Right click"
+msgstr ""
+
+msgid "Right double-click"
+msgstr ""
+
+msgid "Side click"
+msgstr ""
+
+msgid "Side double-click"
+msgstr ""
+
+msgid "Extra click"
+msgstr ""
+
+msgid "Extra double-click"
+msgstr ""
+
+msgid "Forward click"
+msgstr ""
+
+msgid "Forward double-click"
+msgstr ""
+
+msgid "Back click"
+msgstr ""
+
+msgid "Back double-click"
+msgstr ""
+
+msgid "Task click"
+msgstr ""
+
+msgid "Task double-click"
+msgstr ""
+
+msgid "Left pushed turn left"
+msgstr ""
+
+msgid "Left pushed turn right"
+msgstr ""
+
+msgid "Right pushed turn left"
+msgstr ""
+
+msgid "Right pushed turn right"
+msgstr ""
+
+msgid "Side pushed turn left"
+msgstr ""
+
+msgid "Side pushed turn right"
+msgstr ""
+
+msgid "Extra pushed turn left"
+msgstr ""
+
+msgid "Extra pushed turn right"
+msgstr ""
+
+msgid "Forward pushed turn left"
+msgstr ""
+
+msgid "Forward pushed turn right"
+msgstr ""
+
+msgid "Back pushed turn left"
+msgstr ""
+
+msgid "Back pushed turn right"
+msgstr ""
+
+msgid "Task pushed turn left"
+msgstr ""
+
+msgid "Task pushed turn right"
+msgstr ""
+
+msgid "Set current key binding for all contexts?"
+msgstr ""
diff --git a/po/pt_PT.po b/po/pt_PT.po
new file mode 100644
index 0000000..7ddfd1b
--- /dev/null
+++ b/po/pt_PT.po
@@ -0,0 +1,190 @@
+# VDR plugin language source file.
+# Copyright (C) 2007 Klaus Schmidinger <kls@cadsoft.de>
+# This file is distributed under the same license as the VDR package.
+# Paulo Lopes <pmml@netvita.pt>, 2001
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: VDR 1.5.7\n"
+"Report-Msgid-Bugs-To: <jollyjoe80@yahoo.de>\n"
+"POT-Creation-Date: 2008-05-01 18:59+0200\n"
+"PO-Revision-Date: 2008-02-10 18:28+0100\n"
+"Last-Translator: Paulo Lopes <pmml@netvita.pt>\n"
+"Language-Team: <vdr@linuxtv.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Controls VDR via a mouse"
+msgstr ""
+
+msgid "Sensitivity wheel"
+msgstr ""
+
+msgid "Double click time (ms)"
+msgstr ""
+
+msgid "Alternative key binding"
+msgstr ""
+
+msgid "no"
+msgstr ""
+
+msgid "yes"
+msgstr ""
+
+msgid "Toggle click time (ms)"
+msgstr ""
+
+msgid "Show toggle with scroll lock led"
+msgstr ""
+
+msgid "Toggle automatic off"
+msgstr ""
+
+msgid "Toggle off time (ms)"
+msgstr ""
+
+msgid "Extra pushed turn events"
+msgstr ""
+
+msgid "Extra x,y turn events"
+msgstr ""
+
+msgid "Sensitivity x"
+msgstr ""
+
+msgid "Sensitivity y"
+msgstr ""
+
+msgid "DVD sensitive replay context"
+msgstr ""
+
+msgid "MP3 sensitive replay context"
+msgstr ""
+
+msgid "CDDA sensitive replay context"
+msgstr ""
+
+msgid "IMAGE sensitive replay context"
+msgstr ""
+
+msgid "Set keys for context"
+msgstr ""
+
+msgid "Turn wheel left"
+msgstr ""
+
+msgid "Turn wheel right"
+msgstr ""
+
+msgid "Turn x axis left"
+msgstr ""
+
+msgid "Turn x axis right"
+msgstr ""
+
+msgid "Turn y axis left"
+msgstr ""
+
+msgid "Turn y axis right"
+msgstr ""
+
+msgid "Left click"
+msgstr ""
+
+msgid "Left double-click"
+msgstr ""
+
+msgid "Middle click"
+msgstr ""
+
+msgid "Middle double-click"
+msgstr ""
+
+msgid "Middle pushed turn left"
+msgstr ""
+
+msgid "Middle pushed turn right"
+msgstr ""
+
+msgid "Right click"
+msgstr ""
+
+msgid "Right double-click"
+msgstr ""
+
+msgid "Side click"
+msgstr ""
+
+msgid "Side double-click"
+msgstr ""
+
+msgid "Extra click"
+msgstr ""
+
+msgid "Extra double-click"
+msgstr ""
+
+msgid "Forward click"
+msgstr ""
+
+msgid "Forward double-click"
+msgstr ""
+
+msgid "Back click"
+msgstr ""
+
+msgid "Back double-click"
+msgstr ""
+
+msgid "Task click"
+msgstr ""
+
+msgid "Task double-click"
+msgstr ""
+
+msgid "Left pushed turn left"
+msgstr ""
+
+msgid "Left pushed turn right"
+msgstr ""
+
+msgid "Right pushed turn left"
+msgstr ""
+
+msgid "Right pushed turn right"
+msgstr ""
+
+msgid "Side pushed turn left"
+msgstr ""
+
+msgid "Side pushed turn right"
+msgstr ""
+
+msgid "Extra pushed turn left"
+msgstr ""
+
+msgid "Extra pushed turn right"
+msgstr ""
+
+msgid "Forward pushed turn left"
+msgstr ""
+
+msgid "Forward pushed turn right"
+msgstr ""
+
+msgid "Back pushed turn left"
+msgstr ""
+
+msgid "Back pushed turn right"
+msgstr ""
+
+msgid "Task pushed turn left"
+msgstr ""
+
+msgid "Task pushed turn right"
+msgstr ""
+
+msgid "Set current key binding for all contexts?"
+msgstr ""
diff --git a/po/ro_RO.po b/po/ro_RO.po
new file mode 100644
index 0000000..616b818
--- /dev/null
+++ b/po/ro_RO.po
@@ -0,0 +1,191 @@
+# VDR plugin language source file.
+# Copyright (C) 2007 Klaus Schmidinger <kls@cadsoft.de>
+# This file is distributed under the same license as the VDR package.
+# Paul Lacatus <paul@campina.iiruc.ro>, 2002
+# Lucian Muresan <lucianm@users.sourceforge.net>, 2004
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: VDR 1.5.7\n"
+"Report-Msgid-Bugs-To: <jollyjoe80@yahoo.de>\n"
+"POT-Creation-Date: 2008-05-01 18:59+0200\n"
+"PO-Revision-Date: 2008-02-10 18:28+0100\n"
+"Last-Translator: Lucian Muresan <lucianm@users.sourceforge.net>\n"
+"Language-Team: <vdr@linuxtv.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Controls VDR via a mouse"
+msgstr ""
+
+msgid "Sensitivity wheel"
+msgstr ""
+
+msgid "Double click time (ms)"
+msgstr ""
+
+msgid "Alternative key binding"
+msgstr ""
+
+msgid "no"
+msgstr ""
+
+msgid "yes"
+msgstr ""
+
+msgid "Toggle click time (ms)"
+msgstr ""
+
+msgid "Show toggle with scroll lock led"
+msgstr ""
+
+msgid "Toggle automatic off"
+msgstr ""
+
+msgid "Toggle off time (ms)"
+msgstr ""
+
+msgid "Extra pushed turn events"
+msgstr ""
+
+msgid "Extra x,y turn events"
+msgstr ""
+
+msgid "Sensitivity x"
+msgstr ""
+
+msgid "Sensitivity y"
+msgstr ""
+
+msgid "DVD sensitive replay context"
+msgstr ""
+
+msgid "MP3 sensitive replay context"
+msgstr ""
+
+msgid "CDDA sensitive replay context"
+msgstr ""
+
+msgid "IMAGE sensitive replay context"
+msgstr ""
+
+msgid "Set keys for context"
+msgstr ""
+
+msgid "Turn wheel left"
+msgstr ""
+
+msgid "Turn wheel right"
+msgstr ""
+
+msgid "Turn x axis left"
+msgstr ""
+
+msgid "Turn x axis right"
+msgstr ""
+
+msgid "Turn y axis left"
+msgstr ""
+
+msgid "Turn y axis right"
+msgstr ""
+
+msgid "Left click"
+msgstr ""
+
+msgid "Left double-click"
+msgstr ""
+
+msgid "Middle click"
+msgstr ""
+
+msgid "Middle double-click"
+msgstr ""
+
+msgid "Middle pushed turn left"
+msgstr ""
+
+msgid "Middle pushed turn right"
+msgstr ""
+
+msgid "Right click"
+msgstr ""
+
+msgid "Right double-click"
+msgstr ""
+
+msgid "Side click"
+msgstr ""
+
+msgid "Side double-click"
+msgstr ""
+
+msgid "Extra click"
+msgstr ""
+
+msgid "Extra double-click"
+msgstr ""
+
+msgid "Forward click"
+msgstr ""
+
+msgid "Forward double-click"
+msgstr ""
+
+msgid "Back click"
+msgstr ""
+
+msgid "Back double-click"
+msgstr ""
+
+msgid "Task click"
+msgstr ""
+
+msgid "Task double-click"
+msgstr ""
+
+msgid "Left pushed turn left"
+msgstr ""
+
+msgid "Left pushed turn right"
+msgstr ""
+
+msgid "Right pushed turn left"
+msgstr ""
+
+msgid "Right pushed turn right"
+msgstr ""
+
+msgid "Side pushed turn left"
+msgstr ""
+
+msgid "Side pushed turn right"
+msgstr ""
+
+msgid "Extra pushed turn left"
+msgstr ""
+
+msgid "Extra pushed turn right"
+msgstr ""
+
+msgid "Forward pushed turn left"
+msgstr ""
+
+msgid "Forward pushed turn right"
+msgstr ""
+
+msgid "Back pushed turn left"
+msgstr ""
+
+msgid "Back pushed turn right"
+msgstr ""
+
+msgid "Task pushed turn left"
+msgstr ""
+
+msgid "Task pushed turn right"
+msgstr ""
+
+msgid "Set current key binding for all contexts?"
+msgstr ""
diff --git a/po/ru_RU.po b/po/ru_RU.po
new file mode 100644
index 0000000..ff4bba5
--- /dev/null
+++ b/po/ru_RU.po
@@ -0,0 +1,190 @@
+# VDR plugin language source file.
+# Copyright (C) 2007 Klaus Schmidinger <kls@cadsoft.de>
+# This file is distributed under the same license as the VDR package.
+# Vyacheslav Dikonov <sdiconov@mail.ru>, 2004
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: VDR 1.5.7\n"
+"Report-Msgid-Bugs-To: <jollyjoe80@yahoo.de>\n"
+"POT-Creation-Date: 2008-05-01 18:59+0200\n"
+"PO-Revision-Date: 2008-02-10 18:28+0100\n"
+"Last-Translator: Vyacheslav Dikonov <sdiconov@mail.ru>\n"
+"Language-Team: <vdr@linuxtv.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-5\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Controls VDR via a mouse"
+msgstr ""
+
+msgid "Sensitivity wheel"
+msgstr ""
+
+msgid "Double click time (ms)"
+msgstr ""
+
+msgid "Alternative key binding"
+msgstr ""
+
+msgid "no"
+msgstr ""
+
+msgid "yes"
+msgstr ""
+
+msgid "Toggle click time (ms)"
+msgstr ""
+
+msgid "Show toggle with scroll lock led"
+msgstr ""
+
+msgid "Toggle automatic off"
+msgstr ""
+
+msgid "Toggle off time (ms)"
+msgstr ""
+
+msgid "Extra pushed turn events"
+msgstr ""
+
+msgid "Extra x,y turn events"
+msgstr ""
+
+msgid "Sensitivity x"
+msgstr ""
+
+msgid "Sensitivity y"
+msgstr ""
+
+msgid "DVD sensitive replay context"
+msgstr ""
+
+msgid "MP3 sensitive replay context"
+msgstr ""
+
+msgid "CDDA sensitive replay context"
+msgstr ""
+
+msgid "IMAGE sensitive replay context"
+msgstr ""
+
+msgid "Set keys for context"
+msgstr ""
+
+msgid "Turn wheel left"
+msgstr ""
+
+msgid "Turn wheel right"
+msgstr ""
+
+msgid "Turn x axis left"
+msgstr ""
+
+msgid "Turn x axis right"
+msgstr ""
+
+msgid "Turn y axis left"
+msgstr ""
+
+msgid "Turn y axis right"
+msgstr ""
+
+msgid "Left click"
+msgstr ""
+
+msgid "Left double-click"
+msgstr ""
+
+msgid "Middle click"
+msgstr ""
+
+msgid "Middle double-click"
+msgstr ""
+
+msgid "Middle pushed turn left"
+msgstr ""
+
+msgid "Middle pushed turn right"
+msgstr ""
+
+msgid "Right click"
+msgstr ""
+
+msgid "Right double-click"
+msgstr ""
+
+msgid "Side click"
+msgstr ""
+
+msgid "Side double-click"
+msgstr ""
+
+msgid "Extra click"
+msgstr ""
+
+msgid "Extra double-click"
+msgstr ""
+
+msgid "Forward click"
+msgstr ""
+
+msgid "Forward double-click"
+msgstr ""
+
+msgid "Back click"
+msgstr ""
+
+msgid "Back double-click"
+msgstr ""
+
+msgid "Task click"
+msgstr ""
+
+msgid "Task double-click"
+msgstr ""
+
+msgid "Left pushed turn left"
+msgstr ""
+
+msgid "Left pushed turn right"
+msgstr ""
+
+msgid "Right pushed turn left"
+msgstr ""
+
+msgid "Right pushed turn right"
+msgstr ""
+
+msgid "Side pushed turn left"
+msgstr ""
+
+msgid "Side pushed turn right"
+msgstr ""
+
+msgid "Extra pushed turn left"
+msgstr ""
+
+msgid "Extra pushed turn right"
+msgstr ""
+
+msgid "Forward pushed turn left"
+msgstr ""
+
+msgid "Forward pushed turn right"
+msgstr ""
+
+msgid "Back pushed turn left"
+msgstr ""
+
+msgid "Back pushed turn right"
+msgstr ""
+
+msgid "Task pushed turn left"
+msgstr ""
+
+msgid "Task pushed turn right"
+msgstr ""
+
+msgid "Set current key binding for all contexts?"
+msgstr ""
diff --git a/po/sl_SI.po b/po/sl_SI.po
new file mode 100644
index 0000000..7831abc
--- /dev/null
+++ b/po/sl_SI.po
@@ -0,0 +1,191 @@
+# VDR plugin language source file.
+# Copyright (C) 2007 Klaus Schmidinger <kls@cadsoft.de>
+# This file is distributed under the same license as the VDR package.
+# Miha Setina <mihasetina@softhome.net>, 2000
+# Matjaz Thaler <matjaz.thaler@guest.arnes.si>, 2003
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: VDR 1.5.7\n"
+"Report-Msgid-Bugs-To: <jollyjoe80@yahoo.de>\n"
+"POT-Creation-Date: 2008-05-01 18:59+0200\n"
+"PO-Revision-Date: 2008-02-10 18:28+0100\n"
+"Last-Translator: Matjaz Thaler <matjaz.thaler@guest.arnes.si>\n"
+"Language-Team: <vdr@linuxtv.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Controls VDR via a mouse"
+msgstr ""
+
+msgid "Sensitivity wheel"
+msgstr ""
+
+msgid "Double click time (ms)"
+msgstr ""
+
+msgid "Alternative key binding"
+msgstr ""
+
+msgid "no"
+msgstr ""
+
+msgid "yes"
+msgstr ""
+
+msgid "Toggle click time (ms)"
+msgstr ""
+
+msgid "Show toggle with scroll lock led"
+msgstr ""
+
+msgid "Toggle automatic off"
+msgstr ""
+
+msgid "Toggle off time (ms)"
+msgstr ""
+
+msgid "Extra pushed turn events"
+msgstr ""
+
+msgid "Extra x,y turn events"
+msgstr ""
+
+msgid "Sensitivity x"
+msgstr ""
+
+msgid "Sensitivity y"
+msgstr ""
+
+msgid "DVD sensitive replay context"
+msgstr ""
+
+msgid "MP3 sensitive replay context"
+msgstr ""
+
+msgid "CDDA sensitive replay context"
+msgstr ""
+
+msgid "IMAGE sensitive replay context"
+msgstr ""
+
+msgid "Set keys for context"
+msgstr ""
+
+msgid "Turn wheel left"
+msgstr ""
+
+msgid "Turn wheel right"
+msgstr ""
+
+msgid "Turn x axis left"
+msgstr ""
+
+msgid "Turn x axis right"
+msgstr ""
+
+msgid "Turn y axis left"
+msgstr ""
+
+msgid "Turn y axis right"
+msgstr ""
+
+msgid "Left click"
+msgstr ""
+
+msgid "Left double-click"
+msgstr ""
+
+msgid "Middle click"
+msgstr ""
+
+msgid "Middle double-click"
+msgstr ""
+
+msgid "Middle pushed turn left"
+msgstr ""
+
+msgid "Middle pushed turn right"
+msgstr ""
+
+msgid "Right click"
+msgstr ""
+
+msgid "Right double-click"
+msgstr ""
+
+msgid "Side click"
+msgstr ""
+
+msgid "Side double-click"
+msgstr ""
+
+msgid "Extra click"
+msgstr ""
+
+msgid "Extra double-click"
+msgstr ""
+
+msgid "Forward click"
+msgstr ""
+
+msgid "Forward double-click"
+msgstr ""
+
+msgid "Back click"
+msgstr ""
+
+msgid "Back double-click"
+msgstr ""
+
+msgid "Task click"
+msgstr ""
+
+msgid "Task double-click"
+msgstr ""
+
+msgid "Left pushed turn left"
+msgstr ""
+
+msgid "Left pushed turn right"
+msgstr ""
+
+msgid "Right pushed turn left"
+msgstr ""
+
+msgid "Right pushed turn right"
+msgstr ""
+
+msgid "Side pushed turn left"
+msgstr ""
+
+msgid "Side pushed turn right"
+msgstr ""
+
+msgid "Extra pushed turn left"
+msgstr ""
+
+msgid "Extra pushed turn right"
+msgstr ""
+
+msgid "Forward pushed turn left"
+msgstr ""
+
+msgid "Forward pushed turn right"
+msgstr ""
+
+msgid "Back pushed turn left"
+msgstr ""
+
+msgid "Back pushed turn right"
+msgstr ""
+
+msgid "Task pushed turn left"
+msgstr ""
+
+msgid "Task pushed turn right"
+msgstr ""
+
+msgid "Set current key binding for all contexts?"
+msgstr ""
diff --git a/po/sv_SE.po b/po/sv_SE.po
new file mode 100644
index 0000000..7444cf9
--- /dev/null
+++ b/po/sv_SE.po
@@ -0,0 +1,191 @@
+# VDR plugin language source file.
+# Copyright (C) 2007 Klaus Schmidinger <kls@cadsoft.de>
+# This file is distributed under the same license as the VDR package.
+# Tomas Prybil <tomas@prybil.se>, 2002
+# Jan Ekholm <chakie@infa.abo.fi>, 2003
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: VDR 1.5.7\n"
+"Report-Msgid-Bugs-To: <jollyjoe80@yahoo.de>\n"
+"POT-Creation-Date: 2008-05-01 18:59+0200\n"
+"PO-Revision-Date: 2008-02-10 18:28+0100\n"
+"Last-Translator: Tomas Prybil <tomas@prybil.se>\n"
+"Language-Team: <vdr@linuxtv.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Controls VDR via a mouse"
+msgstr ""
+
+msgid "Sensitivity wheel"
+msgstr ""
+
+msgid "Double click time (ms)"
+msgstr ""
+
+msgid "Alternative key binding"
+msgstr ""
+
+msgid "no"
+msgstr ""
+
+msgid "yes"
+msgstr ""
+
+msgid "Toggle click time (ms)"
+msgstr ""
+
+msgid "Show toggle with scroll lock led"
+msgstr ""
+
+msgid "Toggle automatic off"
+msgstr ""
+
+msgid "Toggle off time (ms)"
+msgstr ""
+
+msgid "Extra pushed turn events"
+msgstr ""
+
+msgid "Extra x,y turn events"
+msgstr ""
+
+msgid "Sensitivity x"
+msgstr ""
+
+msgid "Sensitivity y"
+msgstr ""
+
+msgid "DVD sensitive replay context"
+msgstr ""
+
+msgid "MP3 sensitive replay context"
+msgstr ""
+
+msgid "CDDA sensitive replay context"
+msgstr ""
+
+msgid "IMAGE sensitive replay context"
+msgstr ""
+
+msgid "Set keys for context"
+msgstr ""
+
+msgid "Turn wheel left"
+msgstr ""
+
+msgid "Turn wheel right"
+msgstr ""
+
+msgid "Turn x axis left"
+msgstr ""
+
+msgid "Turn x axis right"
+msgstr ""
+
+msgid "Turn y axis left"
+msgstr ""
+
+msgid "Turn y axis right"
+msgstr ""
+
+msgid "Left click"
+msgstr ""
+
+msgid "Left double-click"
+msgstr ""
+
+msgid "Middle click"
+msgstr ""
+
+msgid "Middle double-click"
+msgstr ""
+
+msgid "Middle pushed turn left"
+msgstr ""
+
+msgid "Middle pushed turn right"
+msgstr ""
+
+msgid "Right click"
+msgstr ""
+
+msgid "Right double-click"
+msgstr ""
+
+msgid "Side click"
+msgstr ""
+
+msgid "Side double-click"
+msgstr ""
+
+msgid "Extra click"
+msgstr ""
+
+msgid "Extra double-click"
+msgstr ""
+
+msgid "Forward click"
+msgstr ""
+
+msgid "Forward double-click"
+msgstr ""
+
+msgid "Back click"
+msgstr ""
+
+msgid "Back double-click"
+msgstr ""
+
+msgid "Task click"
+msgstr ""
+
+msgid "Task double-click"
+msgstr ""
+
+msgid "Left pushed turn left"
+msgstr ""
+
+msgid "Left pushed turn right"
+msgstr ""
+
+msgid "Right pushed turn left"
+msgstr ""
+
+msgid "Right pushed turn right"
+msgstr ""
+
+msgid "Side pushed turn left"
+msgstr ""
+
+msgid "Side pushed turn right"
+msgstr ""
+
+msgid "Extra pushed turn left"
+msgstr ""
+
+msgid "Extra pushed turn right"
+msgstr ""
+
+msgid "Forward pushed turn left"
+msgstr ""
+
+msgid "Forward pushed turn right"
+msgstr ""
+
+msgid "Back pushed turn left"
+msgstr ""
+
+msgid "Back pushed turn right"
+msgstr ""
+
+msgid "Task pushed turn left"
+msgstr ""
+
+msgid "Task pushed turn right"
+msgstr ""
+
+msgid "Set current key binding for all contexts?"
+msgstr ""
diff --git a/po/tr_TR.po b/po/tr_TR.po
new file mode 100644
index 0000000..c07e74d
--- /dev/null
+++ b/po/tr_TR.po
@@ -0,0 +1,190 @@
+# VDR plugin language source file.
+# Copyright (C) 2007 Klaus Schmidinger <kls@cadsoft.de>
+# This file is distributed under the same license as the VDR package.
+# Oktay Yolgeçen <oktay_73@yahoo.de>, 2007
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: VDR 1.5.7\n"
+"Report-Msgid-Bugs-To: <jollyjoe80@yahoo.de>\n"
+"POT-Creation-Date: 2008-05-01 18:59+0200\n"
+"PO-Revision-Date: 2008-02-10 18:28+0100\n"
+"Last-Translator: Oktay Yolgeçen <oktay_73@yahoo.de>\n"
+"Language-Team: <vdr@linuxtv.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-9\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Controls VDR via a mouse"
+msgstr ""
+
+msgid "Sensitivity wheel"
+msgstr ""
+
+msgid "Double click time (ms)"
+msgstr ""
+
+msgid "Alternative key binding"
+msgstr ""
+
+msgid "no"
+msgstr ""
+
+msgid "yes"
+msgstr ""
+
+msgid "Toggle click time (ms)"
+msgstr ""
+
+msgid "Show toggle with scroll lock led"
+msgstr ""
+
+msgid "Toggle automatic off"
+msgstr ""
+
+msgid "Toggle off time (ms)"
+msgstr ""
+
+msgid "Extra pushed turn events"
+msgstr ""
+
+msgid "Extra x,y turn events"
+msgstr ""
+
+msgid "Sensitivity x"
+msgstr ""
+
+msgid "Sensitivity y"
+msgstr ""
+
+msgid "DVD sensitive replay context"
+msgstr ""
+
+msgid "MP3 sensitive replay context"
+msgstr ""
+
+msgid "CDDA sensitive replay context"
+msgstr ""
+
+msgid "IMAGE sensitive replay context"
+msgstr ""
+
+msgid "Set keys for context"
+msgstr ""
+
+msgid "Turn wheel left"
+msgstr ""
+
+msgid "Turn wheel right"
+msgstr ""
+
+msgid "Turn x axis left"
+msgstr ""
+
+msgid "Turn x axis right"
+msgstr ""
+
+msgid "Turn y axis left"
+msgstr ""
+
+msgid "Turn y axis right"
+msgstr ""
+
+msgid "Left click"
+msgstr ""
+
+msgid "Left double-click"
+msgstr ""
+
+msgid "Middle click"
+msgstr ""
+
+msgid "Middle double-click"
+msgstr ""
+
+msgid "Middle pushed turn left"
+msgstr ""
+
+msgid "Middle pushed turn right"
+msgstr ""
+
+msgid "Right click"
+msgstr ""
+
+msgid "Right double-click"
+msgstr ""
+
+msgid "Side click"
+msgstr ""
+
+msgid "Side double-click"
+msgstr ""
+
+msgid "Extra click"
+msgstr ""
+
+msgid "Extra double-click"
+msgstr ""
+
+msgid "Forward click"
+msgstr ""
+
+msgid "Forward double-click"
+msgstr ""
+
+msgid "Back click"
+msgstr ""
+
+msgid "Back double-click"
+msgstr ""
+
+msgid "Task click"
+msgstr ""
+
+msgid "Task double-click"
+msgstr ""
+
+msgid "Left pushed turn left"
+msgstr ""
+
+msgid "Left pushed turn right"
+msgstr ""
+
+msgid "Right pushed turn left"
+msgstr ""
+
+msgid "Right pushed turn right"
+msgstr ""
+
+msgid "Side pushed turn left"
+msgstr ""
+
+msgid "Side pushed turn right"
+msgstr ""
+
+msgid "Extra pushed turn left"
+msgstr ""
+
+msgid "Extra pushed turn right"
+msgstr ""
+
+msgid "Forward pushed turn left"
+msgstr ""
+
+msgid "Forward pushed turn right"
+msgstr ""
+
+msgid "Back pushed turn left"
+msgstr ""
+
+msgid "Back pushed turn right"
+msgstr ""
+
+msgid "Task pushed turn left"
+msgstr ""
+
+msgid "Task pushed turn right"
+msgstr ""
+
+msgid "Set current key binding for all contexts?"
+msgstr ""
diff --git a/setup.c b/setup.c
new file mode 100644
index 0000000..d67d658
--- /dev/null
+++ b/setup.c
@@ -0,0 +1,476 @@
+/*
+ * mousemate plugin for VDR
+ *
+ * setup.c - settings and setup menu
+ *
+ *
+ * This code is distributed under the terms and conditions of the
+ * GNU GENERAL PUBLIC LICENSE. See the file COPYING for details.
+ */
+
+#include <linux/input.h>
+#include <vdr/plugin.h>
+#include <vdr/keys.h>
+#include <vdr/interface.h>
+
+
+#include "setup.h"
+#include "MouseMate.h"
+
+cMouseMateSetup MouseMateSetup;
+
+const char * strContexts[kContexts] =
+{
+ "Normal",
+ "Menu",
+ "Replay",
+ "Replay DVD",
+ "Replay MP3",
+ "Replay CDDA",
+ "Replay IMAGE",
+ "Normal alternative",
+ "Menu alternative",
+ "Replay alternative",
+ "Replay DVD alternative",
+ "Replay MP3 alternative",
+ "Replay CDDA alternative",
+ "Replay IMAGE alternative"
+};
+
+const char * strEvents[kEvents] =
+{
+ "TurnWheelLeft",
+ "TurnWheelRight",
+ "TurnXLeft",
+ "TurnXRight",
+ "TurnYLeft",
+ "TurnYRight",
+ "LeftClick",
+ "LeftDoubleClick",
+ "LeftPushedTurnLeft",
+ "LeftPushedTurnRight",
+ "MiddleClick",
+ "MiddleDoubleClick",
+ "MiddlePushedTurnLeft",
+ "MiddlePushedTurnRight",
+ "RightClick",
+ "RightDoubleClick",
+ "RightPushedTurnLeft",
+ "RightPushedTurnRight",
+ "SidePushedTurnLeft",
+ "SidePushedTurnRight",
+ "SideClick",
+ "SideDoubleClick",
+ "ExtraClick",
+ "ExtraDoubleClick",
+ "ExtraPushedTurnLeft",
+ "ExtraPushedTurnRight",
+ "ForwardClick",
+ "ForwardDoubleClick",
+ "ForwardPushedTurnLeft",
+ "ForwardPushedTurnRight",
+ "BackClick",
+ "BackDoubleClick",
+ "BackPushedTurnLeft",
+ "BackPushedTurnRight",
+ "TaskClick",
+ "TaskDoubleClick"
+ "TaskPushedTurnLeft",
+ "TaskPushedTurnRight"
+};
+
+cMouseMateSetup::cMouseMateSetup()
+:sensitivity(1),
+doubleClickTime(300),
+toggleClickTime(1000),
+led(0),
+autotoggleoff(0),
+extrapushedturn(0),
+alternative(0),
+dvdsensitive(0),
+mp3sensitive(0),
+cddasensitive(0),
+imagesensitive(0),
+extraturns(0),
+toggleOffTime(3000)
+{
+ for (int c = 0; c < kContexts; c++)
+ for (int e = 0; e < kEvents; e++)
+ keys[c][e] = kNone;
+}
+
+
+bool cMouseMateSetup::Parse(const char *Name, const char *Value)
+{
+ // Parse your own setup parameters and store their values.
+
+ if (!strcasecmp(Name, "Sensitivity")) sensitivity = atoi(Value);
+ else if (!strcasecmp(Name, "SensitivityX")) sensitivityX = atoi(Value);
+ else if (!strcasecmp(Name, "SensitivityY")) sensitivityY = atoi(Value);
+ else if (!strcasecmp(Name, "DoubleClickTime")) doubleClickTime = atoi(Value);
+ else if (!strcasecmp(Name, "ToggleClickTime")) toggleClickTime = atoi(Value);
+ else if (!strcasecmp(Name, "LED")) led = atoi(Value);
+ else if (!strcasecmp(Name, "AutoToggleOff")) autotoggleoff = atoi(Value);
+ else if (!strcasecmp(Name, "ExtraPushedTurn")) extrapushedturn = atoi(Value);
+ else if (!strcasecmp(Name, "ExtraTurns")) extraturns = atoi(Value);
+ else if (!strcasecmp(Name, "DvdSensitive")) dvdsensitive = atoi(Value);
+ else if (!strcasecmp(Name, "Mp3Sensitive")) mp3sensitive = atoi(Value);
+ else if (!strcasecmp(Name, "CddaSensitive")) cddasensitive = atoi(Value);
+ else if (!strcasecmp(Name, "ImageSensitive")) imagesensitive = atoi(Value);
+ else if (!strcasecmp(Name, "Alternative")) alternative= atoi(Value);
+ else if (!strcasecmp(Name, "ToggleOffTime")) toggleOffTime = atoi(Value);
+ else if (strstr(Name, "Key") == Name)
+ {
+ for (int c = 0; c < kContexts; c++)
+ {
+ for (int e = 0; e < kEvents; e++)
+ {
+ char str[256];
+ sprintf(str, "Key%s%s", strContexts[c], strEvents[e]);
+ if (!strcasecmp(Name, str))
+ {
+ keys[c][e] = eKeys(atoi(Value));
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+ else
+ return false;
+
+ return true;
+}
+
+
+static tKey keyTable[] =
+{
+ { kNone, "None" },
+ { kUp, "Up" },
+ { kDown, "Down" },
+ { kMenu, "Menu" },
+ { kOk, "Ok" },
+ { kBack, "Back" },
+ { kLeft, "Left" },
+ { kRight, "Right" },
+ { kRed, "Red" },
+ { kGreen, "Green" },
+ { kYellow, "Yellow" },
+ { kBlue, "Blue" },
+ { k0, "0" },
+ { k1, "1" },
+ { k2, "2" },
+ { k3, "3" },
+ { k4, "4" },
+ { k5, "5" },
+ { k6, "6" },
+ { k7, "7" },
+ { k8, "8" },
+ { k9, "9" },
+ { kInfo, "Info" },
+ { kPlay, "Play" },
+ { kPause, "Pause" },
+ { kStop, "Stop" },
+ { kRecord, "Record" },
+ { kFastFwd, "FastFwd" },
+ { kFastRew, "FastRew" },
+ { kNext, "Next" },
+ { kPrev, "Prev" },
+ { kPower, "Power" },
+ { kChanUp, "Channel+" },
+ { kChanDn, "Channel-" },
+ { kChanPrev, "PrevChannel"},
+ { kVolUp, "Volume+" },
+ { kVolDn, "Volume-" },
+ { kMute, "Mute" },
+ { kAudio, "Audio" },
+ { kSubtitles, "Subtitles" },
+ { kSchedule, "Schedule" },
+ { kChannels, "Channels" },
+ { kTimers, "Timers" },
+ { kRecordings, "Recordings" },
+ { kSetup, "Setup" },
+ { kCommands, "Commands" },
+ { kUser1, "User1" },
+ { kUser2, "User2" },
+ { kUser3, "User3" },
+ { kUser4, "User4" },
+ { kUser5, "User5" },
+ { kUser6, "User6" },
+ { kUser7, "User7" },
+ { kUser8, "User8" },
+ { kUser9, "User9" },
+ { kNone, NULL },
+};
+
+cMouseMateSetupPage::cMouseMateSetupPage()
+{
+ context = kContextNormal;
+ contextOld = kContextNormal;
+ sensitivity = MouseMateSetup.sensitivity;
+ sensitivityX = MouseMateSetup.sensitivityX;
+ sensitivityY = MouseMateSetup.sensitivityY;
+ doubleClickTime = MouseMateSetup.doubleClickTime;
+ toggleClickTime = MouseMateSetup.toggleClickTime;
+ led=MouseMateSetup.led;
+ autotoggleoff=MouseMateSetup.autotoggleoff;
+ extrapushedturn=MouseMateSetup.extrapushedturn;
+ extraturns=MouseMateSetup.extraturns;
+ dvdsensitive=MouseMateSetup.dvdsensitive;
+ mp3sensitive=MouseMateSetup.mp3sensitive;
+ cddasensitive=MouseMateSetup.cddasensitive;
+ imagesensitive=MouseMateSetup.imagesensitive;
+ alternative=MouseMateSetup.alternative;
+ toggleOffTime = MouseMateSetup.toggleOffTime;
+
+ for (numKeys = 0; keyTable[numKeys].name; numKeys++)
+ {
+ for (int c = 0; c < kContexts; c++)
+ for (int e = 0; e < kEvents; e++)
+ if (keyTable[numKeys].type == MouseMateSetup.keys[c][e])
+ keys[c][e] = numKeys;
+ strKeys[numKeys] = new char[strlen(keyTable[numKeys].name) + 1];
+ strcpy(strKeys[numKeys], keyTable[numKeys].name);
+ }
+ for (int e = 0; e < kEvents; e++)
+ setKeys[e] = keys[context][e];
+ Setup();
+}
+
+
+void cMouseMateSetupPage::Setup()
+{
+ int current = Current();
+ Clear();
+ SetHelp("One4all",NULL,NULL,NULL);
+
+ Add(new cMenuEditIntItem(tr("Sensitivity wheel"), &sensitivity, 1, 10));
+ Add(new cMenuEditIntItem(tr("Double click time (ms)"), &doubleClickTime, 100, 1000));
+
+ Add(new cMenuEditBoolItem(tr("Alternative key binding"), &alternative,tr("no"), tr("yes")));
+ int nContexts;
+ if (alternative)
+ {
+ nContexts=kContexts;
+ Add(new cMenuEditIntItem(tr("Toggle click time (ms)"), &toggleClickTime, 100, 5000));
+ Add(new cMenuEditBoolItem(tr("Show toggle with scroll lock led"), &led,tr("no"), tr("yes")));
+ Add(new cMenuEditBoolItem(tr("Toggle automatic off"), &autotoggleoff,tr("no"), tr("yes")));
+ if (autotoggleoff)
+ {
+ Add(new cMenuEditIntItem(tr("Toggle off time (ms)"), &toggleOffTime, 1000, 30000));
+ }
+ }
+ else
+ {
+ nContexts=kContexts/2;
+ if (context>nContexts) context=nContexts;
+ }
+
+ Add(new cMenuEditBoolItem(tr("Extra pushed turn events"), &extrapushedturn,tr("no"), tr("yes")));
+ Add(new cMenuEditBoolItem(tr("Extra x,y turn events"), &extraturns, tr("no"), tr("yes")));
+
+ if (extraturns)
+ {
+ Add(new cMenuEditIntItem(tr("Sensitivity x"), &sensitivityX, 1, 1000));
+ Add(new cMenuEditIntItem(tr("Sensitivity y"), &sensitivityY, 1, 1000));
+ }
+
+ Add(new cMenuEditBoolItem(tr("DVD sensitive replay context"), &dvdsensitive,tr("no"), tr("yes")));
+ Add(new cMenuEditBoolItem(tr("MP3 sensitive replay context"), &mp3sensitive,tr("no"), tr("yes")));
+ Add(new cMenuEditBoolItem(tr("CDDA sensitive replay context"), &cddasensitive,tr("no"), tr("yes")));
+ Add(new cMenuEditBoolItem(tr("IMAGE sensitive replay context"), &imagesensitive,tr("no"), tr("yes")));
+
+ Add(itemContext = new cMenuEditStraItem(tr("Set keys for context"), &context, nContexts, strContexts));
+ Add(new cMenuEditStraItem(tr("Turn wheel left"), &setKeys[kEventTurnWheelLeft], numKeys, strKeys));
+ Add(new cMenuEditStraItem(tr("Turn wheel right"), &setKeys[kEventTurnWheelRight], numKeys, strKeys));
+
+ if (extraturns)
+ {
+ Add(new cMenuEditStraItem(tr("Turn x axis left"), &setKeys[kEventTurnXLeft], numKeys, strKeys));
+ Add(new cMenuEditStraItem(tr("Turn x axis right"), &setKeys[kEventTurnXRight], numKeys, strKeys));
+ Add(new cMenuEditStraItem(tr("Turn y axis left"), &setKeys[kEventTurnYLeft], numKeys, strKeys));
+ Add(new cMenuEditStraItem(tr("Turn y axis right"), &setKeys[kEventTurnYRight], numKeys, strKeys));
+ }
+
+ Add(new cMenuEditStraItem(tr("Left click"), &setKeys[kEventLeftClick], numKeys, strKeys));
+ Add(new cMenuEditStraItem(tr("Left double-click"), &setKeys[kEventLeftDoubleClick], numKeys, strKeys));
+
+ Add(new cMenuEditStraItem(tr("Middle click"), &setKeys[kEventMiddleClick], numKeys, strKeys));
+ Add(new cMenuEditStraItem(tr("Middle double-click"), &setKeys[kEventMiddleDoubleClick], numKeys, strKeys));
+ Add(new cMenuEditStraItem(tr("Middle pushed turn left"), &setKeys[kEventMiddlePushedTurnLeft], numKeys, strKeys));
+ Add(new cMenuEditStraItem(tr("Middle pushed turn right"), &setKeys[kEventMiddlePushedTurnRight], numKeys, strKeys));
+
+ Add(new cMenuEditStraItem(tr("Right click"), &setKeys[kEventRightClick], numKeys, strKeys));
+ Add(new cMenuEditStraItem(tr("Right double-click"), &setKeys[kEventRightDoubleClick], numKeys, strKeys));
+
+ if (MouseMate->IsButtonUsed(BTN_SIDE))
+ {
+ Add(new cMenuEditStraItem(tr("Side click"), &setKeys[kEventSideClick], numKeys, strKeys));
+ Add(new cMenuEditStraItem(tr("Side double-click"), &setKeys[kEventSideDoubleClick], numKeys, strKeys));
+
+ }
+ if (MouseMate->IsButtonUsed(BTN_EXTRA))
+ {
+ Add(new cMenuEditStraItem(tr("Extra click"), &setKeys[kEventExtraClick], numKeys, strKeys));
+ Add(new cMenuEditStraItem(tr("Extra double-click"), &setKeys[kEventExtraDoubleClick], numKeys, strKeys));
+
+ }
+ if (MouseMate->IsButtonUsed(BTN_FORWARD))
+ {
+ Add(new cMenuEditStraItem(tr("Forward click"), &setKeys[kEventForwardClick], numKeys, strKeys));
+ Add(new cMenuEditStraItem(tr("Forward double-click"), &setKeys[kEventForwardDoubleClick], numKeys, strKeys));
+ }
+ if (MouseMate->IsButtonUsed(BTN_BACK))
+ {
+ Add(new cMenuEditStraItem(tr("Back click"), &setKeys[kEventBackClick], numKeys, strKeys));
+ Add(new cMenuEditStraItem(tr("Back double-click"), &setKeys[kEventBackDoubleClick], numKeys, strKeys));
+ }
+ if (MouseMate->IsButtonUsed(BTN_TASK))
+ {
+ Add(new cMenuEditStraItem(tr("Task click"), &setKeys[kEventTaskClick], numKeys, strKeys));
+ Add(new cMenuEditStraItem(tr("Task double-click"), &setKeys[kEventTaskDoubleClick], numKeys, strKeys));
+ }
+
+ if (extrapushedturn)
+ {
+ Add(new cMenuEditStraItem(tr("Left pushed turn left"), &setKeys[kEventLeftPushedTurnLeft], numKeys, strKeys));
+ Add(new cMenuEditStraItem(tr("Left pushed turn right"), &setKeys[kEventLeftPushedTurnRight], numKeys, strKeys));
+ Add(new cMenuEditStraItem(tr("Right pushed turn left"), &setKeys[kEventRightPushedTurnLeft], numKeys, strKeys));
+ Add(new cMenuEditStraItem(tr("Right pushed turn right"), &setKeys[kEventRightPushedTurnRight], numKeys, strKeys));
+ if (MouseMate->IsButtonUsed(BTN_SIDE))
+ {
+ Add(new cMenuEditStraItem(tr("Side pushed turn left"), &setKeys[kEventSidePushedTurnLeft], numKeys, strKeys));
+ Add(new cMenuEditStraItem(tr("Side pushed turn right"), &setKeys[kEventSidePushedTurnRight], numKeys, strKeys));
+ }
+ if (MouseMate->IsButtonUsed(BTN_EXTRA))
+ {
+ Add(new cMenuEditStraItem(tr("Extra pushed turn left"), &setKeys[kEventExtraPushedTurnLeft], numKeys, strKeys));
+ Add(new cMenuEditStraItem(tr("Extra pushed turn right"), &setKeys[kEventExtraPushedTurnRight], numKeys, strKeys));
+ }
+ if (MouseMate->IsButtonUsed(BTN_FORWARD))
+ {
+ Add(new cMenuEditStraItem(tr("Forward pushed turn left"), &setKeys[kEventForwardPushedTurnLeft], numKeys, strKeys));
+ Add(new cMenuEditStraItem(tr("Forward pushed turn right"), &setKeys[kEventForwardPushedTurnRight], numKeys, strKeys));
+ }
+
+ if (MouseMate->IsButtonUsed(BTN_BACK))
+ {
+ Add(new cMenuEditStraItem(tr("Back pushed turn left"), &setKeys[kEventBackPushedTurnLeft], numKeys, strKeys));
+ Add(new cMenuEditStraItem(tr("Back pushed turn right"), &setKeys[kEventBackPushedTurnRight], numKeys, strKeys));
+ }
+ if (MouseMate->IsButtonUsed(BTN_TASK))
+ {
+ Add(new cMenuEditStraItem(tr("Task pushed turn left"), &setKeys[kEventTaskPushedTurnLeft], numKeys, strKeys));
+ Add(new cMenuEditStraItem(tr("Task pushed turn right"), &setKeys[kEventTaskPushedTurnRight], numKeys, strKeys));
+ }
+ }
+
+ SetCurrent(Get(current));
+ Display();
+}
+
+
+cMouseMateSetupPage::~cMouseMateSetupPage()
+{
+ for (int i = 0; i < numKeys; i++)
+ {
+ delete[] strKeys[i];
+ }
+}
+
+
+void cMouseMateSetupPage::Store()
+{
+ SetupStore("Sensitivity", MouseMateSetup.sensitivity = sensitivity);
+ SetupStore("SensitivityX", MouseMateSetup.sensitivityX = sensitivityX);
+ SetupStore("SensitivityY", MouseMateSetup.sensitivityY = sensitivityY);
+ SetupStore("DoubleClickTime", MouseMateSetup.doubleClickTime = doubleClickTime);
+ SetupStore("ToggleClickTime", MouseMateSetup.toggleClickTime = toggleClickTime);
+ SetupStore("LED", MouseMateSetup.led = led);
+ SetupStore("AutoToggleOff", MouseMateSetup.autotoggleoff = autotoggleoff);
+ SetupStore("ExtraPushedTurn", MouseMateSetup.extrapushedturn = extrapushedturn);
+ SetupStore("ExtraTurns", MouseMateSetup.extraturns = extraturns);
+ SetupStore("DvdSensitive", MouseMateSetup.dvdsensitive = dvdsensitive);
+ SetupStore("Mp3Sensitive", MouseMateSetup.mp3sensitive = mp3sensitive);
+ SetupStore("CddaSensitive", MouseMateSetup.cddasensitive = cddasensitive);
+ SetupStore("ImageSensitive", MouseMateSetup.imagesensitive = imagesensitive);
+ SetupStore("Alternative", MouseMateSetup.alternative = alternative);
+ SetupStore("ToggleOffTime", MouseMateSetup.toggleOffTime = toggleOffTime);
+ for (int e = 0; e < kEvents; e++)
+ keys[contextOld][e] = setKeys[e];
+ for (int c = 0; c < kContexts; c++)
+ {
+ for (int e = 0; e < kEvents; e++)
+ {
+ char str[256];
+ MouseMateSetup.keys[c][e] = keyTable[keys[c][e]].type;
+ sprintf(str, "Key%s%s", strContexts[c], strEvents[e]);
+ SetupStore(str, MouseMateSetup.keys[c][e]);
+ }
+ }
+
+}
+
+
+eOSState cMouseMateSetupPage::ProcessKey(eKeys key)
+{
+ int oldautotoggleoff = autotoggleoff;
+ int oldextrapushedturn = extrapushedturn;
+ int oldalternative = alternative;
+ int oldextraturns = extraturns;
+
+ eOSState state = cMenuSetupPage::ProcessKey(key);
+
+ //calculating number of used events
+ // 4 = turn left, turn right, middle pushed turv left, middle pushed turn right
+ // extraturns*4 = turn x left, turn x right, turn y left, turn y right
+ // Get_btnCount() * 2 = click & doubleclick for each used button
+ // extrapushedturn *2* (MouseMate->Get_btnCount()-1) = extra pushed turns (0,1) left & right (2)
+ // for each used button except middle (-1)
+ short int eventCount=4 + extraturns * 4
+ + MouseMate->Get_btnCount() * 2
+ + extrapushedturn *2* (MouseMate->Get_btnCount()-1);
+
+ if (state == osContinue)
+ {
+ if (key == kLeft || key == kRight)
+ {
+ cOsdItem * item = Get(Current());
+ if (item == itemContext)
+ {
+ for (int e = 0; e < kEvents; e++)
+ {
+ keys[contextOld][e] = setKeys[e];
+ setKeys[e] = keys[context][e];
+ }
+ for (int e = 0; e < eventCount; e++)
+ {
+ item = Get(Current() + e + 1);
+ item->Set();
+ }
+
+ contextOld = context;
+ Display();
+ }
+ }
+ }
+
+ // One4All
+ if (key == kRed)
+ if (!Interface->Confirm(tr("Set current key binding for all contexts?"), 5, true))
+ {
+ for (int i=0 ;i < kContexts;i++)
+ for (int e = 0; e < kEvents; e++)
+ keys[i][e]=setKeys[e];
+ }
+
+ if (key != kNone && ( (autotoggleoff != oldautotoggleoff)
+ | (oldextrapushedturn != extrapushedturn)
+ | (oldalternative != alternative)
+ | (oldextraturns != extraturns) ))
+ {
+ Setup();
+ }
+
+ return state;
+}
diff --git a/setup.h b/setup.h
new file mode 100644
index 0000000..ba50873
--- /dev/null
+++ b/setup.h
@@ -0,0 +1,138 @@
+/*
+ * mousemate plugin for VDR
+ *
+ * setup.h - settings and setup menu
+ *
+ *
+ * This code is distributed under the terms and conditions of the
+ * GNU GENERAL PUBLIC LICENSE. See the file COPYING for details.
+ */
+
+#ifndef _SETUP_H_
+#define _SETUP_H_
+
+#include <vdr/plugin.h>
+
+const int kEvents = 38;
+const int kEventTurnWheelLeft = 0;
+const int kEventTurnWheelRight = 1;
+const int kEventTurnXLeft = 2;
+const int kEventTurnXRight = 3;
+const int kEventTurnYLeft = 4;
+const int kEventTurnYRight = 5;
+const int kEventLeftClick = 6;
+const int kEventLeftDoubleClick = 7;
+const int kEventLeftPushedTurnLeft = 8;
+const int kEventLeftPushedTurnRight = 9;
+const int kEventMiddleClick = 10;
+const int kEventMiddleDoubleClick = 11;
+const int kEventMiddlePushedTurnLeft = 12;
+const int kEventMiddlePushedTurnRight = 13;
+const int kEventRightClick = 14;
+const int kEventRightDoubleClick = 15;
+const int kEventRightPushedTurnLeft = 16;
+const int kEventRightPushedTurnRight = 17;
+const int kEventSideClick = 18;
+const int kEventSideDoubleClick = 19;
+const int kEventSidePushedTurnLeft = 20;
+const int kEventSidePushedTurnRight = 21;
+const int kEventExtraClick = 22;
+const int kEventExtraDoubleClick = 23;
+const int kEventExtraPushedTurnLeft = 24;
+const int kEventExtraPushedTurnRight = 25;
+const int kEventForwardClick = 26;
+const int kEventForwardDoubleClick = 27;
+const int kEventForwardPushedTurnLeft = 28;
+const int kEventForwardPushedTurnRight = 29;
+const int kEventBackClick = 30;
+const int kEventBackDoubleClick = 31;
+const int kEventBackPushedTurnLeft = 32;
+const int kEventBackPushedTurnRight = 33;
+const int kEventTaskClick = 34;
+const int kEventTaskDoubleClick = 35;
+const int kEventTaskPushedTurnLeft = 36;
+const int kEventTaskPushedTurnRight = 37;
+
+const int kContexts = 14;
+const int kContextNormal = 0;
+const int kContextMenu = 1;
+const int kContextReplay = 2;
+const int kContextReplayDVD = 3;
+const int kContextReplayMP3 = 4;
+const int kContextReplayCDDA = 5;
+const int kContextReplayIMAGE = 6;
+const int kContextNormalAlt = 7;
+const int kContextMenuAlt = 8;
+const int kContextReplayAlt = 9;
+const int kContextReplayDVDAlt = 10;
+const int kContextReplayMP3Alt = 11;
+const int kContextReplayCDDAAlt = 12;
+const int kContextReplayIMAGEAlt = 13;
+
+class cMouseMateSetup
+{
+ private:
+ // nothing yet
+ public:
+ char device[256]; // device for mouse
+ char cdevice[256]; // device for console
+ int sensitivity;
+ int sensitivityX;
+ int sensitivityY;
+ int doubleClickTime;
+ int toggleClickTime;
+ int led; // for scroll-lock led
+ int autotoggleoff; // auto toggle off after toggletime yes no
+ int extrapushedturn;
+ int alternative;
+ int dvdsensitive;
+ int mp3sensitive;
+ int cddasensitive;
+ int imagesensitive;
+ int extraturns;
+ int toggleOffTime;
+ eKeys keys[kContexts][kEvents];
+
+ cMouseMateSetup();
+ bool Parse(const char *Name, const char *Value);
+
+};
+
+class cMouseMateSetupPage : public cMenuSetupPage
+{
+ private:
+ char * strKeys[100];
+ int numKeys;
+ int sensitivity;
+ int sensitivityX;
+ int sensitivityY;
+ int doubleClickTime;
+ int toggleClickTime;
+ int led;
+ int autotoggleoff; // auto toggle off after toggletime yes no
+ int extrapushedturn;
+ int alternative;
+ int dvdsensitive;
+ int mp3sensitive;
+ int cddasensitive;
+ int imagesensitive;
+ int extraturns;
+ int toggleOffTime; // timer after toggle is switched off automatically
+ int keys[kContexts][kEvents];
+ int setKeys[kEvents];
+ int context;
+ int contextOld;
+
+ cOsdItem * itemContext;
+ cOsdItem * itemToggle;
+ protected:
+ virtual void Store();
+ virtual eOSState ProcessKey(eKeys key);
+ void Setup();
+ public:
+ cMouseMateSetupPage();
+ virtual ~cMouseMateSetupPage();
+};
+
+extern cMouseMateSetup MouseMateSetup;
+#endif