public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] gentoo-x86 commit in app-misc/lirc/files: lircd-0.8.3 lirc-0.8.3-imon-pad2keys.patch
@ 2008-05-05  9:53 Matthias Schwarzott (zzam)
  0 siblings, 0 replies; only message in thread
From: Matthias Schwarzott (zzam) @ 2008-05-05  9:53 UTC (permalink / raw
  To: gentoo-commits

zzam        08/05/05 09:53:19

  Added:                lircd-0.8.3 lirc-0.8.3-imon-pad2keys.patch
  Log:
  Version bumped. Init-script changes: Now provide lirc, Bug #190669. Use pidfile to allow starting more than one lircd, Bug #212551. This may also fix the Kernel Oops of Bug #218612. Fixed keys in imon-pad2keys config, Bug #219101. Do install all avail remote config files to /usr/share/lirc/remotes and skip the auto-preserving of the old conf-file, Bug #219097.
  (Portage version: 2.1.5_rc6)

Revision  Changes    Path
1.1                  app-misc/lirc/files/lircd-0.8.3

file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/app-misc/lirc/files/lircd-0.8.3?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/app-misc/lirc/files/lircd-0.8.3?rev=1.1&content-type=text/plain

Index: lircd-0.8.3
===================================================================
#!/sbin/runscript
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-misc/lirc/files/lircd-0.8.3,v 1.1 2008/05/05 09:53:19 zzam Exp $

PIDFILE=/var/run/${SVCNAME}.pid

depend() {
	provide lirc
}

start() {
	ebegin "Starting lircd"
	start-stop-daemon --start --quiet --pidfile "${PIDFILE}" --exec /usr/sbin/lircd -- \
		-P "${PIDFILE}" ${LIRCD_OPTS}
	eend $?
}

stop() {
	ebegin "Stopping lircd"
	start-stop-daemon --stop --quiet --pidfile "${PIDFILE}" --exec /usr/sbin/lircd
	eend $?
}



1.1                  app-misc/lirc/files/lirc-0.8.3-imon-pad2keys.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/app-misc/lirc/files/lirc-0.8.3-imon-pad2keys.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/app-misc/lirc/files/lirc-0.8.3-imon-pad2keys.patch?rev=1.1&content-type=text/plain

Index: lirc-0.8.3-imon-pad2keys.patch
===================================================================
diff -ruN lirc-0.8.3pre3-orig/drivers/lirc_imon/lirc_imon.c lirc-0.8.3pre3/drivers/lirc_imon/lirc_imon.c
--- lirc-0.8.3pre3-orig/drivers/lirc_imon/lirc_imon.c	2008-04-28 22:15:54.281654857 +0200
+++ lirc-0.8.3pre3/drivers/lirc_imon/lirc_imon.c	2008-04-28 22:16:51.381649620 +0200
@@ -73,9 +73,9 @@
 
 
 #define MOD_AUTHOR	"Venky Raju <dev@venky.ws>"
-#define MOD_DESC	"Driver for Soundgraph iMON MultiMedia IR/VFD"
+#define MOD_DESC	"Driver for Soundgraph iMON MultiMedia IR/VFD w/imon pad2keys patch"
 #define MOD_NAME	"lirc_imon"
-#define MOD_VERSION	"0.3"
+#define MOD_VERSION	"0.3p2k"
 
 #define VFD_MINOR_BASE	144	/* Same as LCD */
 #define DEVFS_MODE	(S_IFCHR | S_IRUSR | S_IWUSR | \
@@ -91,6 +91,7 @@
 #define	TRUE		1
 #define FALSE		0
 
+#define CURSOR_LIMIT    16
 
 /* ------------------------------------------------------------
  *		     P R O T O T Y P E S
@@ -177,6 +178,10 @@
 		atomic_t busy;			/* write in progress */
 		int status;			/* status of tx completion */
 	} tx;
+        
+        int key_x;
+        int key_y;
+        int last_count;                      /* number of times pressed   */
 };
 
 #define LOCK_CONTEXT	down(&context->sem)
@@ -248,6 +253,9 @@
 static int is_lcd; /* If LIRC_IMON_LCD not defined, default to non-LCD */
 #endif
 
+/* pad2keys module parameter. pad2keys patch active? */
+static int pad2keys_active = 0;
+
 #if !defined(KERNEL_2_5)
 
 #define MAX_DEVICES	4	/* In case there's more than one iMON device */
@@ -271,6 +279,7 @@
 
 MODULE_AUTHOR(MOD_AUTHOR);
 MODULE_DESCRIPTION(MOD_DESC);
+MODULE_VERSION(MOD_VERSION);    /* MBr: was missing */
 MODULE_LICENSE("GPL");
 MODULE_DEVICE_TABLE(usb, imon_usb_id_table);
 
@@ -287,6 +296,9 @@
 		 "1=yes (default:no)");
 #endif
 
+module_param (pad2keys_active, int, 0);
+MODULE_PARM_DESC (pad2keys_active, "pad2keys patch active: 0=no, 1=yes (default: no)");
+ 
 static inline void delete_context(struct imon_context *context)
 {
 	if (context->vfd_supported)
@@ -766,6 +778,11 @@
 	context->rx.initial_space = 1;
 	context->rx.prev_bit = 0;
 
+        /* init pad context for pad2keys */
+        context ->key_x = 0;
+        context ->key_y = 0;
+        context ->last_count = 0;
+ 
 	usb_fill_int_urb(context->rx_urb, context->dev,
 		usb_rcvintpipe(context->dev,
 				context->rx_endpoint->bEndpointAddress),
@@ -915,6 +932,94 @@
 
 	if (context->ir_onboard_decode) {
 		/* The signals have been decoded onboard the iMON controller */
+                
+                if (pad2keys_active)
+                {
+                   /* imon pad2keys patch
+                    *
+                    * make PAD and mouse buttons available for use with VDR,
+                    * based on pad-mouse-emu patch from venky's forum
+                    *
+                    * last change: M.Brakemeier 2007-10-14
+                    *
+                    * generated PAD key codes:
+                    * Mouse_N                  0x690281B7
+                    * Mouse_S                  0x688291B7
+                    * Mouse_W                  0x6A8281B7
+                    * Mouse_E                  0x688A81B7
+                    *
+                    * mouse buttons (non-synthetic):
+                    * MouseRightClick          0x688481B7
+                    * MouseLeftClick           0x688301B7
+                    */
+                    if((buf[0] & 0x40) &&
+                        !(buf[1] & 0x01 || buf[1] >> 2 & 0x01))
+                    {
+                        int rel_x = (buf[1] & 0x08) | (buf[1] & 0x10) >> 2 | (buf[1] & 0x20) >> 4 | (buf[1] & 0x40) >> 6;
+                        int rel_y = (buf[2] & 0x08) | (buf[2] & 0x10) >> 2 | (buf[2] & 0x20) >> 4 | (buf[2] & 0x40) >> 6;
+        
+                        if(buf[0] & 0x02)
+                            rel_x |= ~0x10+1;
+                        if(buf[0] & 0x01)
+                            rel_y |= ~0x10+1;
+        
+                        /* keyboard direction key emulation */
+                        if( context->last_count > 32 )
+                        {  /* Hopefully eliminate drift*/
+                            context->last_count=0;
+                            context->key_y=0;
+                            context->key_x=0;
+                        }
+                        context->last_count++;
+        
+                        /* limit decoded events */
+                        if(abs(context->key_x) > CURSOR_LIMIT || abs(context->key_y) > CURSOR_LIMIT )
+                        {
+                            if(abs(context->key_y ) > abs(context->key_x))
+                            { /* mouse s/n */
+                                if(context->key_y > 0 && rel_y > 0)
+                                { /* mouse s */
+                                    buf[0] = 0x68;
+                                    buf[1] = 0x82;
+                                    buf[2] = 0x91;
+                                }
+                                else if(context->key_y < 0 && rel_y < 0)
+                                { /* mouse n */
+                                    buf[0] = 0x69;
+                                    buf[1] = 0x02;
+                                    buf[2] = 0x81;
+                                }
+                            }
+                            else
+                            { /* mouse e/w*/
+                                if(context->key_x > 0 && rel_x > 0 )
+                                { /* mouse e */
+                                    buf[0] = 0x68;
+                                    buf[1] = 0x8A;
+                                    buf[2] = 0x81;
+                                }
+                                else if(context->key_x < 0 && rel_x < 0  )
+                                { /* mouse w */
+                                    buf[0] = 0x6A;
+                                    buf[1] = 0x82;
+                                    buf[2] = 0x81;
+                                }
+                            }
+                        }
+                        else
+                        {
+                            context->key_x += rel_x;
+                            context->key_y += rel_y;
+        
+                            return; /* discard those key codes */
+                        }
+                    }
+                    /* a key was pressed, reset count */
+                    context->key_x = 0;
+                    context->key_y = 0;
+                    context->last_count = 0;
+                }
+                
 		lirc_buffer_write_1(context->plugin->rbuf, buf);
 		wake_up(&context->plugin->rbuf->wait_poll);
 		return;
diff -ruN lirc-0.8.3pre3-orig/drivers/lirc_imon/lirc_imon.c.rej lirc-0.8.3pre3/drivers/lirc_imon/lirc_imon.c.rej
--- lirc-0.8.3pre3-orig/drivers/lirc_imon/lirc_imon.c.rej	1970-01-01 01:00:00.000000000 +0100
+++ lirc-0.8.3pre3/drivers/lirc_imon/lirc_imon.c.rej	2008-04-28 22:16:02.941653915 +0200
@@ -0,0 +1,26 @@
+***************
+*** 271,280 ****
+  
+  MODULE_AUTHOR(MOD_AUTHOR);
+  MODULE_DESCRIPTION(MOD_DESC);
+  MODULE_LICENSE("GPL");
+  MODULE_DEVICE_TABLE(usb, imon_usb_id_table);
+  module_param(debug, int, 0);
+  MODULE_PARM_DESC(debug, "Debug messages: 0=no, 1=yes(default: no)");
+  
+  static inline void delete_context(struct imon_context *context)
+  {
+--- 279,291 ----
+  
+  MODULE_AUTHOR(MOD_AUTHOR);
+  MODULE_DESCRIPTION(MOD_DESC);
++ MODULE_VERSION(MOD_VERSION);    /* MBr: was missing */
+  MODULE_LICENSE("GPL");
+  MODULE_DEVICE_TABLE(usb, imon_usb_id_table);
+  module_param(debug, int, 0);
+  MODULE_PARM_DESC(debug, "Debug messages: 0=no, 1=yes(default: no)");
++ module_param (pad2keys_active, int, 0);
++ MODULE_PARM_DESC (pad2keys_active, "pad2keys patch active: 0=no, 1=yes (default: no)");
+  
+  static inline void delete_context(struct imon_context *context)
+  {
diff -ruN lirc-0.8.3pre3-orig/remotes/imon/lircd.conf.imon-pad2keys lirc-0.8.3pre3/remotes/imon/lircd.conf.imon-pad2keys
--- lirc-0.8.3pre3-orig/remotes/imon/lircd.conf.imon-pad2keys	1970-01-01 01:00:00.000000000 +0100
+++ lirc-0.8.3pre3/remotes/imon/lircd.conf.imon-pad2keys	2008-04-28 22:16:02.941653915 +0200
@@ -0,0 +1,88 @@
+# Please make this file available to others
+# by sending it to <lirc@bartelmus.de>
+#
+# this config file was generated
+# using lirc-0.8.3pre1 (imon w/pad2keys patch)
+#
+# contributed by M.Brakemeier
+#
+# brand:                       SoundGraph
+# model no. of remote control: iMON-PAD
+# devices being controlled by this remote:
+#
+
+begin remote
+
+  name     iMON-PAD
+  bits           32
+  eps            30
+  aeps          100
+
+  one             0     0
+  zero            0     0
+  gap          235965
+  min_repeat      1
+  toggle_bit      0
+
+    begin codes
+        AppExit                  0x288195B7
+        Power                    0x289115B7
+        Record                   0x298115B7
+        Play                     0x2A8115B7
+        Open                     0x29B1D5B7
+        Rewind                   0x2A8195B7
+        Pause                    0x2A9115B7
+        FastForward              0x2B8115B7
+        PrevChapter              0x2B9115B7
+        Stop                     0x2B9715B7
+        NextChapter              0x298195B7
+        Esc                      0x2BB715B7
+        Eject                    0x299395B7
+        AppLauncher              0x29B715B7
+        MultiMon                 0x2AB195B7
+        TaskSwitcher             0x2A9395B7
+        Mute                     0x2B9595B7
+        Vol+                     0x28A395B7
+        Vol-                     0x28A595B7
+        Ch+                      0x289395B7
+        Ch-                      0x288795B7
+        Timer                    0x2B8395B7
+        1                        0x28B595B7
+        2                        0x2BB195B7
+        3                        0x28B195B7
+        4                        0x2A8595B7
+        5                        0x299595B7
+        6                        0x2AA595B7
+        7                        0x2B9395B7
+        8                        0x2A8515B7
+        9                        0x2AA115B7
+        0                        0x2BA595B7
+        ShiftTab                 0x28B515B7
+        Tab                      0x29A115B7
+        Red                      0x2B8515B7 # MyMovie
+        Green                    0x299195B7 # MyMusic
+        Blue                     0x2BA115B7 # MyPhoto
+        Yellow                   0x28A515B7 # MyTV
+        Bookmark                 0x288515B7
+        Thumbnail                0x2AB715B7
+        AspectRatio              0x29A595B7
+        FullScreen               0x2AA395B7
+        Purple                   0x29A395B7 # MyDVD
+        Menu                     0x2BA395B7
+        Caption                  0x298595B7
+        Language                 0x2B8595B7
+        MouseKeyboard            0x299115B7
+        SelectSpace              0x2A9315B7
+        MouseMenu                0x28B715B7
+        MouseRightClick          0x688481B7
+        Enter                    0x28A195B7
+        MouseLeftClick           0x688301B7
+        WindowsKey               0x2B8195B7
+        Backspace                0x28A115B7
+        Mouse_N                  0x690281B7
+        Mouse_S                  0x688291B7
+        Mouse_W                  0x6A8281B7
+        Mouse_E                  0x688A81B7
+    end codes
+
+end remote 



-- 
gentoo-commits@lists.gentoo.org mailing list



^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2008-05-05  9:53 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-05-05  9:53 [gentoo-commits] gentoo-x86 commit in app-misc/lirc/files: lircd-0.8.3 lirc-0.8.3-imon-pad2keys.patch Matthias Schwarzott (zzam)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox