www.pegasos.org

Linux, BSD, Unix med flera - Hauppauge PVR 250/350 remote

Trizt - Feb 07, 2005 - 20:20
Post subject: Hauppauge PVR 250/350 remote
Jo, nu behöver man inte längre lirc för att få fjärrkontrollen till din Hauppauge PVR 250/350 att fungera, man behöver följande två moduler: ir-common, ir-kbd-i2c

Tyvärr så är knapparna lite fel mappade för PVR 250/350, så att när man ska muta, så måste man trycka på Menu och en del andra knappar är omappade, så dessa går inte att använda sig av.

Så jag har gjort en liten patch, den mappar alla knappar och Mute knappen kommer att fungera some mute-knapp med en gång.

Code:
--- drivers/media/video/ir-kbd-i2c.c.org        2005-02-06 16:02:52.793914120 +0100
+++ drivers/media/video/ir-kbd-i2c.c    2005-02-06 16:39:16.376959040 +0100
@@ -43,6 +43,51 @@

 #include <media/ir-common.h>

+/*  J.O. Aho <trizt@iname.com> 20050206
+ *  The ir_codes_rc5_tv causes that keys are wrongly
+ *  mapped on for the Hauppauge PVR 250/350 remotes,
+ *  at least those sold in Sweden.
+ *  The ATI-REMOTE keybindings has been used to see
+ *  which XF86 keys each button should be bound to.
+ */
+static IR_KEYTAB_TYPE ir_codes_pvr[IR_KEYTAB_SIZE] = {
+       [ 0x00 ] = KEY_KP0,             // 0
+       [ 0x01 ] = KEY_KP1,             // 1
+       [ 0x02 ] = KEY_KP2,             // 2
+       [ 0x03 ] = KEY_KP3,             // 3
+       [ 0x04 ] = KEY_KP4,             // 4
+       [ 0x05 ] = KEY_KP5,             // 5
+       [ 0x06 ] = KEY_KP6,             // 6
+       [ 0x07 ] = KEY_KP7,             // 7
+       [ 0x08 ] = KEY_KP8,             // 8
+       [ 0x09 ] = KEY_KP9,             // 9
+
+       [ 0x0b ] = KEY_R,               // Red Button
+       [ 0x0c ] = KEY_REFRESH,         // Unmarked button on PVR250
+       [ 0x0f ] = KEY_MUTE,            // mute / demute
+       [ 0x0d ] = KEY_MENU,            // display, PVR Menu
+       [ 0x10 ] = KEY_VOLUMEUP,        // volume +
+       [ 0x11 ] = KEY_VOLUMEDOWN,      // volume -
+       [ 0x1e ] = KEY_NEXTSONG,        // Next >>|
+       [ 0x1f ] = KEY_BACKSPACE,       // PVR Back/Exit
+       [ 0x20 ] = KEY_UP,              // channel / program +
+       [ 0x21 ] = KEY_DOWN,            // channel / program -
+       [ 0x24 ] = KEY_PREVIOUSSONG,    // Previous |<<
+       [ 0x25 ] = KEY_ENTER,           // PVR Ok
+       [ 0x29 ] = KEY_B,               // Blue Button
+       [ 0x2e ] = KEY_G,               // Green Button
+       [ 0x30 ] = KEY_PAUSE,           // pause
+       [ 0x32 ] = KEY_REWIND,          // rewind <<
+       [ 0x34 ] = KEY_FORWARD,         // wind >>
+       [ 0x35 ] = KEY_PLAYPAUSE,       // play
+       [ 0x36 ] = KEY_STOP,            // stop
+       [ 0x37 ] = KEY_RECORD,          // recording
+       [ 0x38 ] = KEY_Y,               // Yellow button
+       [ 0x3b ] = KEY_GOTO,            // Go button
+       [ 0x3c ] = KEY_FRONT,           // full
+       [ 0x3d ] = KEY_POWER,           // power (green, left upper corner)
+};
+
 /* Mark Phalan <phalanm@o2.ie> */
 static IR_KEYTAB_TYPE ir_codes_pv951[IR_KEYTAB_SIZE] = {
        [  0 ] = KEY_KP0,
@@ -362,6 +407,11 @@
                ir_codes    = ir_codes_pv951;
                break;
        case 0x18:
+               name        = "Hauppauge PVR";
+               ir->get_key = get_key_haup;
+               ir_type     = IR_TYPE_RC5;
+               ir_codes    = ir_codes_pvr;
+               break;
        case 0x1a:
                name        = "Hauppauge";
                ir->get_key = get_key_haup;

All times are GMT + 1 Hour
Powered by PNphpBB2 © 2003-2004 The PNphpBB Group
Credits