relocate packages on recipes-base/recipes-enigma2/recipes-wlan.
[vuplus_openvuplus] / meta-openvuplus / recipes-vuplus / tuxtxt / tuxbox-tuxtxt-32bpp / add_advanced_rc.diff
diff --git a/meta-openvuplus/recipes-vuplus/tuxtxt/tuxbox-tuxtxt-32bpp/add_advanced_rc.diff b/meta-openvuplus/recipes-vuplus/tuxtxt/tuxbox-tuxtxt-32bpp/add_advanced_rc.diff
new file mode 100644 (file)
index 0000000..1ebef99
--- /dev/null
@@ -0,0 +1,161 @@
+diff -u tuxtxt_orig/tuxtxt.c tuxtxt/tuxtxt.c
+--- tuxtxt_orig/tuxtxt.c       2009-01-29 21:38:42.000000000 +0100
++++ tuxtxt/tuxtxt.c    2009-01-29 21:44:29.000000000 +0100
+@@ -173,6 +173,7 @@
+       char cvs_revision[] = "$Revision: 1.108 $";
+       int cnt=0;
++      int rc_num = 0;
+ #if !TUXTXT_CFG_STANDALONE
+       int initialized = tuxtxt_init();
+       if ( initialized )
+@@ -186,7 +187,7 @@
+       tuxtxt_SetRenderingDefaults(&renderinfo);
+       /* get params */
+-      tuxtxt_cache.vtxtpid = renderinfo.fb = lcd = rc = renderinfo.sx = renderinfo.ex = renderinfo.sy = renderinfo.ey = -1;
++      tuxtxt_cache.vtxtpid = renderinfo.fb = lcd = renderinfo.sx = renderinfo.ex = renderinfo.sy = renderinfo.ey = -1;
+       if (argc==1)
+       {
+               printf("\nUSAGE: tuxtxt vtpid\n");
+@@ -204,8 +205,8 @@
+               perror("TuxTxt <open /dev/fb/0>");
+               return 0;
+       }
+-      rc=-1;
+-      while(1)
++      rc[0] = rc[1] =-1;
++      while(rc_num < 2)
+       {
+               struct stat s;
+               char tmp[128];
+@@ -213,23 +214,26 @@
+               if (stat(tmp, &s))
+                       break;
+               /* open Remote Control */
+-              if ((rc=open(tmp, O_RDONLY)) == -1)
++              if ((rc[rc_num]=open(tmp, O_RDONLY)) == -1)
+               {
+                       perror("TuxTxt <open remote control>");
+                       return 0;
+               }
+-              if (ioctl(rc, EVIOCGNAME(128), tmp) < 0)
++              if (ioctl(rc[rc_num], EVIOCGNAME(128), tmp) < 0)
+                       perror("EVIOCGNAME failed");
+-              if (strstr(tmp, "remote control"))
+-                      break;
+-              close(rc);
+-              rc=-1;
++              if (!strstr(tmp, "remote control"))
++              {
++                      close(rc[rc_num]);
++                      rc[rc_num] = -1;
++              }
++              else
++                      ++rc_num;
+               ++cnt;
+       }
+-      if (rc == -1)
++      if (rc[0] == -1)
+       {
+-              printf("couldnt find correct input device!!!\n");
++              printf("couldnt find usable input device!!!\n");
+               return -1;
+       }
+@@ -247,7 +251,7 @@
+       renderinfo.sy = 30;
+       renderinfo.ey = 555;
+-      if (tuxtxt_cache.vtxtpid == -1 || renderinfo.fb == -1 || rc == -1 || renderinfo.sx == -1 || renderinfo.ex == -1 || renderinfo.sy == -1 || renderinfo.ey == -1)
++      if (tuxtxt_cache.vtxtpid == -1 || renderinfo.fb == -1 || renderinfo.sx == -1 || renderinfo.ex == -1 || renderinfo.sy == -1 || renderinfo.ey == -1)
+       {
+               printf("TuxTxt <Invalid Param(s)>\n");
+               return;
+@@ -623,7 +627,8 @@
+       writeproc("/proc/stb/avs/0/sb", fncmodes[renderinfo.screen_mode1]);
+       /* setup rc */
+-      ioctl(rc, RC_IOCTL_BCODES, 1);
++      if (rc[0] >= 0) ioctl(rc[0], RC_IOCTL_BCODES, 1);
++      if (rc[1] >= 0) ioctl(rc[1], RC_IOCTL_BCODES, 1);
+@@ -682,9 +687,12 @@
+       close(lcd);
+       
+       /* close rc */
+-      close(rc);
++      if (rc[0] >= 0)
++              close(rc[0]);
++      if (rc[1] >= 0)
++              close(rc[1]);
+-      lcd = rc = -1;
++      lcd = rc[0] = rc[1] = -1;
+  
+       if (hotlistchanged)
+               savehotlist();
+@@ -2819,20 +2827,28 @@
+       timeout.tv_sec = 0;
+       timeout.tv_usec = 100000;
+       /* get code */
+-      if (rc >= 0)
++      if (rc[0] >= 0)
++      {
++              FD_SET(rc[0], &rset);
++              if (rc[0] > maxfd)
++              {
++                      maxfd = rc[0];
++              }
++      }
++      if (rc[1] >= 0)
+       {
+-              FD_SET(rc, &rset);
+-              if (rc > maxfd)
++              FD_SET(rc[1], &rset);
++              if (rc[1] > maxfd)
+               {
+-                      maxfd = rc;
++                      maxfd = rc[1];
+               }
+       }
+       if (select(maxfd + 1, &rset, NULL, NULL, &timeout) > 0)
+       {
+-              if (rc >= 0 && FD_ISSET(rc, &rset))
++              if (rc[0] >= 0 && FD_ISSET(rc[0], &rset))
+               {
+ #if HAVE_DVB_API_VERSION < 3
+-                      read(rc, &RCCode, 2);
++                      read(rc[0], &RCCode, 2);
+               }
+               if (RCCode != LastKey)
+               {
+@@ -2842,7 +2858,11 @@
+                       {
+                               switch (RCCode)
+ #else
+-                      read(rc, &ev, sizeof(ev));
++                      read(rc[0], &ev, sizeof(ev));
++              }
++              else if (rc[1] >= 0 && FD_ISSET(rc[1], &rset))
++              {
++                      read(rc[1], &ev, sizeof(ev));
+               }
+               if (ev.value)
+               {
+Only in tuxtxt_orig/: tuxtxt.c.orig
+diff -u tuxtxt_orig/tuxtxt.h tuxtxt/tuxtxt.h
+--- tuxtxt_orig/tuxtxt.h       2009-01-29 21:38:18.000000000 +0100
++++ tuxtxt/tuxtxt.h    2009-01-29 21:44:29.000000000 +0100
+@@ -209,7 +209,7 @@
+ int hotlist[10];
+ int maxhotlist;
+-int rc, lcd;
++int rc[2], lcd;
+ int lastpage;
+ int savedscreenmode;
+ char dumpl25;