V4L/DVB (7058): IR corrections for the Pinnacle 800i
authorSteven Toth <stoth@hauppauge.com>
Tue, 22 Jan 2008 04:00:33 +0000 (01:00 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Fri, 25 Jan 2008 21:05:11 +0000 (19:05 -0200)
IR corrections for the Pinnacle 800i

Signed-off-by: Steven Toth <stoth@hauppauge.com>
Signed-off-by: Chaogui Zhang <czhang1974@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/common/ir-keymaps.c
drivers/media/video/cx88/cx88-input.c
include/media/ir-common.h

index ee2c69e..a4a937c 100644 (file)
@@ -1849,6 +1849,41 @@ IR_KEYTAB_TYPE ir_codes_fusionhdtv_mce[IR_KEYTAB_SIZE] = {
 
 EXPORT_SYMBOL_GPL(ir_codes_fusionhdtv_mce);
 
+/* Pinnacle PCTV HD 800i mini remote */
+IR_KEYTAB_TYPE ir_codes_pinnacle_pctv_hd[IR_KEYTAB_SIZE] = {
+
+       [0x0f] = KEY_1,
+       [0x15] = KEY_2,
+       [0x10] = KEY_3,
+       [0x18] = KEY_4,
+       [0x1b] = KEY_5,
+       [0x1e] = KEY_6,
+       [0x11] = KEY_7,
+       [0x21] = KEY_8,
+       [0x12] = KEY_9,
+       [0x27] = KEY_0,
+
+       [0x24] = KEY_ZOOM,
+       [0x2a] = KEY_SUBTITLE,
+
+       [0x00] = KEY_MUTE,
+       [0x01] = KEY_ENTER,     /* Pinnacle Logo */
+       [0x39] = KEY_POWER,
+
+       [0x03] = KEY_VOLUMEUP,
+       [0x09] = KEY_VOLUMEDOWN,
+       [0x06] = KEY_CHANNELUP,
+       [0x0c] = KEY_CHANNELDOWN,
+
+       [0x2d] = KEY_REWIND,
+       [0x30] = KEY_PLAYPAUSE,
+       [0x33] = KEY_FASTFORWARD,
+       [0x3c] = KEY_STOP,
+       [0x36] = KEY_RECORD,
+       [0x3f] = KEY_EPG,       /* Labeled "?" */
+};
+EXPORT_SYMBOL_GPL(ir_codes_pinnacle_pctv_hd);
+
 /*
  * Igor Kuznetsov <igk72@ya.ru>
  * Andrey J. Melnikov <temnota@kmv.ru>
index f79a1c7..bb0911b 100644 (file)
@@ -224,7 +224,6 @@ int cx88_ir_init(struct cx88_core *core, struct pci_dev *pci)
        case CX88_BOARD_HAUPPAUGE_NOVASPLUS_S1:
        case CX88_BOARD_HAUPPAUGE_HVR1100:
        case CX88_BOARD_HAUPPAUGE_HVR3000:
-       case CX88_BOARD_PINNACLE_PCTV_HD_800i:
                ir_codes = ir_codes_hauppauge_new;
                ir_type = IR_TYPE_RC5;
                ir->sampling = 1;
@@ -306,6 +305,11 @@ int cx88_ir_init(struct cx88_core *core, struct pci_dev *pci)
                ir->mask_keycode = 0xfa;
                ir->polling = 50; /* ms */
                break;
+       case CX88_BOARD_PINNACLE_PCTV_HD_800i:
+               ir_codes = ir_codes_pinnacle_pctv_hd;
+               ir_type = IR_TYPE_RC5;
+               ir->sampling = 1;
+               break;
        }
 
        if (NULL == ir_codes) {
index 9c2fc09..831547d 100644 (file)
@@ -141,6 +141,7 @@ extern IR_KEYTAB_TYPE ir_codes_encore_enltv[IR_KEYTAB_SIZE];
 extern IR_KEYTAB_TYPE ir_codes_tt_1500[IR_KEYTAB_SIZE];
 extern IR_KEYTAB_TYPE ir_codes_fusionhdtv_mce[IR_KEYTAB_SIZE];
 extern IR_KEYTAB_TYPE ir_codes_behold[IR_KEYTAB_SIZE];
+extern IR_KEYTAB_TYPE ir_codes_pinnacle_pctv_hd[IR_KEYTAB_SIZE];
 
 #endif