Author: pebender
Date: Tue Jun  2 18:12:02 2009
New Revision: 4879

Added:
     
trunk/gar-minimyth/script/system/lirc/files/lirc-0.8.5-lircmd_uinput.patch
Modified:
    trunk/gar-minimyth/html/minimyth/conf/minimyth.conf
    trunk/gar-minimyth/html/minimyth/document-changelog.txt
    trunk/gar-minimyth/html/minimyth/document-configure.html
    trunk/gar-minimyth/html/minimyth/document-minimyth_conf.html
     
trunk/gar-minimyth/script/meta/minimyth/files/source/lists/minimyth-bin-list
     
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf/MM_LIRC.pm
     
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf/MM_X.pm
     
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/lirc.pm
     
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/lib/udev/mm_persistent
    trunk/gar-minimyth/script/minimyth.conf.mk
    trunk/gar-minimyth/script/system/lirc/Makefile
    trunk/gar-minimyth/script/system/lirc/checksums

Log:
- Patched lircmd so that it creates in uinput based event device.
- Added lircmd support.



Modified: trunk/gar-minimyth/html/minimyth/conf/minimyth.conf
==============================================================================
--- trunk/gar-minimyth/html/minimyth/conf/minimyth.conf (original)
+++ trunk/gar-minimyth/html/minimyth/conf/minimyth.conf Tue Jun  2 18:12:02  
2009
@@ -260,6 +260,7 @@
  # MM_LIRC_SLEEP_ENABLED
  # MM_LIRC_WAKEUP_ENABLED
  # MM_LIRC_FETCH_LIRCD_CONF
+# MM_LIRC_FETCH_LIRCMD_CONF
  # MM_LIRC_FETCH_LIRCRC
  # MM_LIRC_FETCH_LIRCRC_MINIMYTH
  # MM_LIRC_FETCH_LIRCRC_MYTHTV

Modified: trunk/gar-minimyth/html/minimyth/document-changelog.txt
==============================================================================
--- trunk/gar-minimyth/html/minimyth/document-changelog.txt     (original)
+++ trunk/gar-minimyth/html/minimyth/document-changelog.txt     Tue Jun  2  
18:12:02 2009
@@ -1,7 +1,7 @@
  MiniMyth Changelog

   
--------------------------------------------------------------------------------
-Changes since 66 (2009-06-01):
+Changes since 66 (2009-06-02):

  Current MythTV versions
      MythTV 0.20-softpad: version 0.20.2.softpad, release-0-20-fixes branch  
svn 16082 and
@@ -92,6 +92,10 @@
  Improved Xine
      - Added the m2ts patch from
        <http://www.minimyth.org/forum/viewtopic.php?f=2&t=2272>.
+
+Improved LIRC
+    - Patched lircmd so that it creates in uinput based event device.
+    - Added lircmd support.

  Modified LCDproc
      - Updated imonlcd patch.

Modified: trunk/gar-minimyth/html/minimyth/document-configure.html
==============================================================================
--- trunk/gar-minimyth/html/minimyth/document-configure.html    (original)
+++ trunk/gar-minimyth/html/minimyth/document-configure.html    Tue Jun  2  
18:12:02 2009
@@ -636,6 +636,15 @@
                  '<a  
href="document-minimyth_conf.html#MM_LIRC_FETCH_LIRCD_CONF">MM_LIRC_FETCH_LIRCD_CONF</a>'.
                </p>
              </dd>
+            <dt id="lircmd_conf">lircmd.conf</dt>
+            <dd>
+              <p>
+                The LIRC mouse daemon ('lircmd') configuration file.
+                MiniMyth will use this file as the '/etc/lircmd.conf' file  
in the MiniMyth file system.
+                Whether or not 'lircmd.conf' is retrieved depends on
+                '<a  
href="document-minimyth_conf.html#MM_LIRC_FETCH_LIRCMD_CONF">MM_LIRC_FETCH_LIRCMD_CONF</a>'.
+              </p>
+            </dd>
              <dt id="lircrc">lircrc</dt>
              <dd>
                <p>
@@ -786,7 +795,7 @@
                alt="Valid CSS!"      height="31" width="88" /></a>
          </div>
          <div class="version">
-          Last Updated on 2009-05-21
+          Last Updated on 2009-06-02
            <br />
             
&lt;&nbsp;mailto&nbsp;:&nbsp;webmaster&nbsp;at&nbsp;minimyth&nbsp;dot&nbsp;org&nbsp;&gt;
          </div>

Modified: trunk/gar-minimyth/html/minimyth/document-minimyth_conf.html
==============================================================================
--- trunk/gar-minimyth/html/minimyth/document-minimyth_conf.html        
(original)
+++ trunk/gar-minimyth/html/minimyth/document-minimyth_conf.html        Tue Jun 
 2  
18:12:02 2009
@@ -2381,6 +2381,7 @@
              <li><a  
href="#MM_LIRC_SLEEP_ENABLED">MM_LIRC_SLEEP_ENABLED</a></li>
              <li><a  
href="#MM_LIRC_WAKEUP_ENABLED">MM_LIRC_WAKEUP_ENABLED</a></li>
              <li><a  
href="#MM_LIRC_FETCH_LIRCD_CONF">MM_LIRC_FETCH_LIRCD_CONF</a></li>
+            <li><a  
href="#MM_LIRC_FETCH_LIRCMD_CONF">MM_LIRC_FETCH_LIRCMD_CONF</a></li>
              <li><a  
href="#MM_LIRC_FETCH_LIRCRC">MM_LIRC_FETCH_LIRCRC</a></li>
              <li><a  
href="#MM_LIRC_FETCH_LIRCRC_MINIMYTH">MM_LIRC_FETCH_LIRCRC_MINIMYTH</a></li>
              <li><a  
href="#MM_LIRC_FETCH_LIRCRC_MYTHTV">MM_LIRC_FETCH_LIRCRC_MYTHTV</a></li>
@@ -2627,6 +2628,24 @@
                  <li>a 'streamzap' receiver with a 'streamzap' remote</li>
                </ul>
              </dd>
+            <dt  
id="MM_LIRC_FETCH_LIRCMD_CONF"><strong>MM_LIRC_FETCH_LIRCMD_CONF</strong></dt>
+            <dd>
+              <p>
+                Indicate whether or not to fetch the
+                '<a  
href="document-configure.html#lircmd_conf">lircmd.conf</a>'
+                file from the MiniMyth system's MiniMyth read-only  
configuration directory.
+                Valid values are 'yes' and 'no', with 'no' the default.
+              </p>
+              <p>
+                If
+                '<a  
href="document-configure.html#lircmd_conf">lircmd.conf</a>'
+                is fetched, then MiniMyth will start the LIRC mouse daemon  
(lircmd) in uinput mode and
+                configure Xorg to use the resulting event device.
+                '<a  
href="document-configure.html#lircmd_conf">lircmd.conf</a>'.
+                Note that the LIRC mouse daemon in uinput mode ignores the  
PROTOCOL option in
+                '<a  
href="document-configure.html#lircmd_conf">lircmd.conf</a>'
+              </p>
+            </dd>
              <dt  
id="MM_LIRC_FETCH_LIRCRC"><strong>MM_LIRC_FETCH_LIRCRC</strong></dt>
              <dd>
                <p>
@@ -3255,7 +3274,7 @@
                alt="Valid CSS!"      height="31" width="88" /></a>
          </div>
          <div class="version">
-          Last Updated on 2009-05-31
+          Last Updated on 2009-06-02
            <br />
             
&lt;&nbsp;mailto&nbsp;:&nbsp;webmaster&nbsp;at&nbsp;minimyth&nbsp;dot&nbsp;org&nbsp;&gt;
          </div>

Modified:  
trunk/gar-minimyth/script/meta/minimyth/files/source/lists/minimyth-bin-list
==============================================================================
---  
trunk/gar-minimyth/script/meta/minimyth/files/source/lists/minimyth-bin-list    
 
(original)
+++  
trunk/gar-minimyth/script/meta/minimyth/files/source/lists/minimyth-bin-list    
 
Tue Jun  2 18:12:02 2009
@@ -38,6 +38,7 @@
  ldconfig
  lighttpd
  lircd
+lircmd
  lsdvd
  lsmod
  lsof

Modified:  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf/MM_LIRC.pm
==============================================================================
---  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf/MM_LIRC.pm
        
(original)
+++  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf/MM_LIRC.pm
        
Tue Jun  2 18:12:02 2009
@@ -172,6 +172,14 @@
      file           => {name_remote => '/lircd.conf',
                         name_local  => '/etc/lircd.conf'}
  };
+$var_list{'MM_LIRC_FETCH_LIRCMD_CONF'} =
+{
+    value_default  => 'no',
+    value_valid    => 'no|yes',
+    value_file     => 'yes',
+    file           => {name_remote => '/lircmd.conf',
+                       name_local  => '/etc/lircmd.conf'}
+};
  $var_list{'MM_LIRC_FETCH_LIRCRC'} =
  {
      value_default  => 'no',
@@ -357,9 +365,28 @@
          return join(' ', @device_list);
      }
  };
+$var_list{'MM_LIRC_LIRCM_DEVICE'} =
+{
+    prerequisite   => ['MM_LIRC_FETCH_LIRCMD_CONF'],
+    value_default  => 'auto',
+    value_valid    => 'auto|.+',
+    value_auto     => sub
+    {
+        my $minimyth = shift;
+        my $name     = shift;
+
+        my $device = '';
+        if ($minimyth->var_get('MM_LIRC_FETCH_LIRCMD_CONF'))
+        {
+            $device = '/dev/persistent/event-lircm';
+        }
+
+        return $device;
+    }
+};
  $var_list{'MM_LIRC_KERNEL_MODULE_LIST'} =
  {
-    prerequisite   =>  
['MM_LIRC_KERNEL_MODULE', 'MM_LIRC_KERNEL_MODULE_OPTIONS'],
+    prerequisite   =>  
['MM_LIRC_KERNEL_MODULE', 'MM_LIRC_KERNEL_MODULE_OPTIONS', 
'MM_LIRC_FETCH_LIRCMD_CONF'],
      value_clean    => sub
      {
          my $minimyth = shift;
@@ -376,7 +403,18 @@
          my $minimyth = shift;
          my $name     = shift;

-        return $minimyth->var_get('MM_LIRC_KERNEL_MODULE');
+        my @kernel_modules = ();
+
+        if ($minimyth->var_get('MM_LIRC_KERNEL_MODULE'))
+        {
+            push(@kernel_modules,  
$minimyth->var_get('MM_LIRC_KERNEL_MODULE'));
+        }
+        if ($minimyth->var_get('MM_LIRC_FETCH_LIRCMD_CONF'))
+        {
+            push(@kernel_modules, 'uinput');
+        }
+
+        return join(' ', @kernel_modules);
      },
      extra          => sub
      {

Modified:  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf/MM_X.pm
==============================================================================
---  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf/MM_X.pm
   
(original)
+++  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/conf/MM_X.pm
   
Tue Jun  2 18:12:02 2009
@@ -30,7 +30,7 @@
  };
  $var_list{'MM_X_EVENT_DEVICE_LIST'} =
  {
-    prerequisite   =>  
['MM_LIRC_DEVICE_LIST', 'MM_WIIMOTE_EVENT_DEVICE_LIST'],
+    prerequisite   =>  
['MM_LIRC_DEVICE_LIST', 'MM_LIRC_LIRCMD_DEVICE', 
'MM_WIIMOTE_EVENT_DEVICE_LIST'],

      value_default  => 'auto',
      value_valid    => 'auto|.+',
@@ -58,6 +58,12 @@
              {
                  push(@device_list, $device);
              }
+        }
+
+        # Add LIRC mouse daemon event device.
+        if ($minimyth->var_get('MM_LIRC_LIRCM_DEVICE'))
+        {
+            push(@device_list, $minimyth->var_get('MM_LIRC_LIRCM_DEVICE'));
          }

          # Remove any duplicates.

Modified:  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/lirc.pm
==============================================================================
---  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/lirc.pm
        
(original)
+++  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/etc/rc.d/init/lirc.pm
        
Tue Jun  2 18:12:02 2009
@@ -391,6 +391,12 @@
          system(qq(/usr/bin/irexec -d /etc/lircrc));
      }

+    # Start the lircmd daemon.
+    if (-e '/etc/lircmd.conf')
+    {
+        system(qq(/usr/sbin/lircmd --uinput /etc/lircmd.conf));
+    }
+
      return 1;
  }

@@ -399,10 +405,13 @@
      my $self     = shift;
      my $minimyth = shift;

-    if (($minimyth->application_running('irexec')) ||  
($minimyth->application_running('lircd')))
+    if ( ($minimyth->application_running('lircmd')) ||
+         ($minimyth->application_running('irexec')) ||
+         ($minimyth->application_running('lircd')) )
      {
          $minimyth->message_output('info', "stopping remote control ...");

+        $minimyth->application_stop('lircmd');
          $minimyth->application_stop('irexec');
          $minimyth->application_stop('lircd');
      }

Modified:  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/lib/udev/mm_persistent
==============================================================================
---  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/lib/udev/mm_persistent
       
(original)
+++  
trunk/gar-minimyth/script/meta/minimyth/files/source/rootfs/lib/udev/mm_persistent
       
Tue Jun  2 18:12:02 2009
@@ -90,6 +90,9 @@
                          gsub(/\//, ":", phys)
                      }
                  }
+                if ( ( driver == "" ) && ( name == "lircmd" ) ) {
+                    mm_persistent=kernel "-lircm"
+                }
                  if ( ( driver == "" ) && ( name == "Nintendo Wiimote" ) &&  
( phys ) ) {
                      mm_persistent=kernel "-wminput:" phys
                  }

Modified: trunk/gar-minimyth/script/minimyth.conf.mk
==============================================================================
--- trunk/gar-minimyth/script/minimyth.conf.mk  (original)
+++ trunk/gar-minimyth/script/minimyth.conf.mk  Tue Jun  2 18:12:02 2009
@@ -18,7 +18,7 @@
                                )

  # Configuration file (minimyth.conf) version.
-mm_CONF_VERSION           ?= 45
+mm_CONF_VERSION           ?= 46

   
#-------------------------------------------------------------------------------
  # Variables that you are likely to be override based on your environment.

Modified: trunk/gar-minimyth/script/system/lirc/Makefile
==============================================================================
--- trunk/gar-minimyth/script/system/lirc/Makefile      (original)
+++ trunk/gar-minimyth/script/system/lirc/Makefile      Tue Jun  2 18:12:02 2009
@@ -8,7 +8,7 @@
  #MASTER_SITES =  
cvs://anonym...@$(GARNAME).cvs.sourceforge.net:/cvsroot/$(GARNAME)/
  DISTFILES = $(DISTNAME).tar.bz2
  #PATCHFILES = $(DISTNAME)-usb_sysfs.patch  
$(DISTNAME)-lirc_i2c_device.patch $(DISTNAME)-no_python.patch  
$(DISTNAME)-imon_module_param.patch $(DISTNAME)-imon_lcd_dynamic.patch  
$(DISTNAME)-remove_smp_unsafe_drivers.patch
-PATCHFILES = $(DISTNAME)-mceusb2_mod_mce_0.2.0.patch  
$(DISTNAME)-no_python.patch $(DISTNAME)-remove_smp_unsafe_drivers.patch
+PATCHFILES = $(DISTNAME)-lircmd_uinput.patch  
$(DISTNAME)-mceusb2_mod_mce_0.2.0.patch $(DISTNAME)-no_python.patch  
$(DISTNAME)-remove_smp_unsafe_drivers.patch
  LICENSE = GPL2

  DESCRIPTION =

Modified: trunk/gar-minimyth/script/system/lirc/checksums
==============================================================================
--- trunk/gar-minimyth/script/system/lirc/checksums     (original)
+++ trunk/gar-minimyth/script/system/lirc/checksums     Tue Jun  2 18:12:02 2009
@@ -8,6 +8,7 @@
  7fef9c434332248022774b90ccc234e1   
download/lirc-0.8.4a-remove_smp_unsafe_drivers.patch

  5a274e4eaff8156b17903c22ea01f506  download/lirc-0.8.5.tar.bz2
+d6256f60bc45a9a5b6da30dd9eac2d24  download/lirc-0.8.5-lircmd_uinput.patch
  0c6e1197f1cced83070509d56d24360c   
download/lirc-0.8.5-mceusb2_mod_mce_0.2.0.patch
  e13b18b563136e8c50f490df4ef9250d  download/lirc-0.8.5-no_python.patch
  e734f494fc683e9e6f3335c212c980af   
download/lirc-0.8.5-remove_smp_unsafe_drivers.patch

Added:  
trunk/gar-minimyth/script/system/lirc/files/lirc-0.8.5-lircmd_uinput.patch
==============================================================================
--- (empty file)
+++  
trunk/gar-minimyth/script/system/lirc/files/lirc-0.8.5-lircmd_uinput.patch      
 
Tue Jun  2 18:12:02 2009
@@ -0,0 +1,223 @@
+diff -Naur lirc-0.8.5-old/daemons/lircmd.c lirc-0.8.5-new/daemons/lircmd.c
+--- lirc-0.8.5-old/daemons/lircmd.c    2006-10-09 00:22:14.000000000 -0700
++++ lirc-0.8.5-new/daemons/lircmd.c    2009-06-02 17:30:53.000000000 -0700
+@@ -32,6 +32,12 @@
+ #include <sys/socket.h>
+ #include <sys/un.h>
+
++#if defined(__linux__)
++#include <linux/input.h>
++#include <linux/uinput.h>
++#include "input_map.h"
++#endif
++
+ #define CLICK_DELAY 50000 /* usecs */
+ #define PACKET_SIZE 256
+ #define WHITE_SPACE " \t"
+@@ -49,6 +55,9 @@
+ #define MAP_BUTTON2 1
+ #define MAP_BUTTON3 2
+
++static int uinputfd = -1;
++static int useuinput = 0;
++
+ inline int map_buttons(int b)
+ {
+       switch(b)
+@@ -165,6 +174,13 @@
+ {
+       /* not safe in a signal handler *//*freetm(tm_first);*/
+       
++      if(uinputfd != -1)
++      {
++              ioctl(uinputfd, UI_DEV_DESTROY);
++              close(uinputfd);
++              uinputfd = -1;
++      }
++
+       shutdown(lircd,2);
+       close(lircd);
+       shutdown(lircm,2);
+@@ -217,6 +233,88 @@
+ }
+ #endif /* DAEMONIZE */
+
++int setup_uinputfd(const char *name)
++{
++#if defined(__linux__)
++      int fd;
++      int key;
++      struct uinput_user_dev dev;
++      
++      fd = open("/dev/input/uinput", O_RDWR);
++      if(fd == -1)
++      {
++              fd = open("/dev/uinput", O_RDWR);
++              if(fd == -1)
++              {
++                      fd = open("/dev/misc/uinput", O_RDWR);
++                      if(fd == -1)
++                      {
++                              fprintf(stderr, "could not open %s\n",
++                                      "uinput");
++                              perror(NULL);
++                              return -1;
++                      }
++              }
++      }
++      memset(&dev, 0, sizeof(dev));
++      strncpy(dev.name, name, sizeof(dev.name));
++      dev.name[sizeof(dev.name)-1] = 0;
++      if(write(fd, &dev, sizeof(dev)) != sizeof(dev))
++      {
++              goto setup_error;
++      }
++
++      if( (ioctl(fd, UI_SET_EVBIT , EV_KEY    ) != 0) ||
++            (ioctl(fd, UI_SET_KEYBIT, BTN_LEFT  ) != 0) ||
++            (ioctl(fd, UI_SET_KEYBIT, BTN_MIDDLE) != 0) ||
++            (ioctl(fd, UI_SET_KEYBIT, BTN_RIGHT ) != 0) )
++        {
++              goto setup_error;
++      }
++
++      if( (ioctl(fd, UI_SET_EVBIT , EV_REL   ) != 0) ||
++            (ioctl(fd, UI_SET_RELBIT, REL_X    ) != 0) ||
++            (ioctl(fd, UI_SET_RELBIT, REL_Y    ) != 0) ||
++            (ioctl(fd, UI_SET_RELBIT, REL_WHEEL) != 0) )
++        {
++              goto setup_error;
++        }
++
++      if(ioctl(fd, UI_DEV_CREATE) != 0)
++      {
++              goto setup_error;
++      }
++      return fd;
++      
++ setup_error:
++      fprintf(stderr, "could not setup %s\n", "uinput");
++      perror(NULL);
++      close(fd);
++#endif
++      return -1;
++}
++
++int usend(__u16 type, __u16 code, __s32 value)
++{
++#ifdef __linux__
++      if(uinputfd != -1)
++      {
++              struct input_event event;
++
++              memset(&event, 0, sizeof(event));
++              event.type = type;
++              event.code = code;
++              event.value = value;
++
++              if(write(uinputfd, &event, sizeof(event)) != sizeof(event))
++              {
++                      fprintf(stderr,"%s: writing to uinput 
failed\n",progname);
++                      perror(progname);
++              }
++      }
++#endif
++}
++
+ void msend(int dx,int dy,int dz,int rep,int buttp,int buttr)
+ {
+       static int buttons=0;
+@@ -290,6 +388,48 @@
+               }
+               break;
+       }
++
++      if((dx != 0) || (dy != 0))
++      {
++              usend(EV_REL, REL_X, dx);
++              usend(EV_REL, REL_Y, dy);
++              usend(EV_SYN, SYN_REPORT, 0);
++      }
++        if(dz != 0)
++      {
++              usend(EV_REL, REL_WHEEL, dz);
++              usend(EV_SYN, SYN_REPORT, 0);
++      }
++      if(buttp == BUTTON1)
++      {
++              usend(EV_KEY, BTN_LEFT, 1 );
++              usend(EV_SYN, SYN_REPORT, 0);
++      }
++      if(buttr == BUTTON1)
++      {
++              usend(EV_KEY, BTN_LEFT, 0 );
++              usend(EV_SYN, SYN_REPORT, 0);
++      }
++      if(buttp == BUTTON2)
++      {
++              usend(EV_KEY, BTN_MIDDLE, 1);
++              usend(EV_SYN, SYN_REPORT, 0);
++      }
++      if(buttr == BUTTON2)
++      {
++              usend(EV_KEY, BTN_MIDDLE, 0);
++              usend(EV_SYN, SYN_REPORT, 0);
++      }
++      if(buttp == BUTTON3)
++      {
++              usend(EV_KEY, BTN_RIGHT, 1);
++              usend(EV_SYN, SYN_REPORT, 0);
++      }
++      if(buttr == BUTTON3)
++      {
++              usend(EV_KEY, BTN_RIGHT, 0);
++              usend(EV_SYN, SYN_REPORT, 0);
++      }
+ }
+
+ void mouse_move(int dx,int dy,int dz,int rep)
+@@ -725,6 +865,9 @@
+                       {"help",no_argument,NULL,'h'},
+                       {"version",no_argument,NULL,'v'},
+                       {"nodaemon",no_argument,NULL,'n'},
++#                       if defined(__linux__)
++                      {"uinput",no_argument,NULL,'u'},
++#                       endif
+                       {0, 0, 0, 0}
+               };
+               c = getopt_long(argc,argv,"hvn",long_options,NULL);
+@@ -737,6 +880,9 @@
+                       printf("\t -h --help\t\tdisplay this message\n");
+                       printf("\t -v --version\t\tdisplay version\n");
+                       printf("\t -n --nodaemon\t\tdon't fork to 
background\n");
++#                       if defined(__linux__)
++                      printf("\t -u --uinput\t\tgenerate Linux input 
events\n");
++#                       endif
+                       return(EXIT_SUCCESS);
+               case 'v':
+                       printf("%s %s\n",progname,VERSION);
+@@ -744,6 +890,11 @@
+               case 'n':
+                       nodaemon=1;
+                       break;
++#               if defined(__linux__)
++              case 'u':
++                      useuinput=1;
++                      break;
++#               endif
+               default:
+                       printf("Usage: %s [options] [config-file]\n",progname);
+                       return(EXIT_FAILURE);
+@@ -817,6 +968,12 @@
+       {
+               ms=new_ms;
+       }
++
++      if(useuinput)
++      {
++              uinputfd = setup_uinputfd(progname);
++      }
++
+ #ifdef DAEMONIZE
+       if(!nodaemon) daemonize();
+ #endif

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"minimyth-commits" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/minimyth-commits?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to