📄 cx88-input.c
字号:
/* * * Device driver for GPIO attached remote control interfaces * on Conexant 2388x based TV/DVB cards. * * Copyright (c) 2003 Pavel Machek * Copyright (c) 2004 Gerd Knorr * Copyright (c) 2004, 2005 Chris Pascoe * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */#include <linux/init.h>#include <linux/delay.h>#include <linux/input.h>#include <linux/pci.h>#include <linux/module.h>#include <linux/moduleparam.h>#include "cx88.h"#include <media/ir-common.h>/* ---------------------------------------------------------------------- *//* DigitalNow DNTV Live DVB-T Remote */static IR_KEYTAB_TYPE ir_codes_dntv_live_dvb_t[IR_KEYTAB_SIZE] = { [0x00] = KEY_ESC, /* 'go up a level?' */ /* Keys 0 to 9 */ [0x0a] = KEY_KP0, [0x01] = KEY_KP1, [0x02] = KEY_KP2, [0x03] = KEY_KP3, [0x04] = KEY_KP4, [0x05] = KEY_KP5, [0x06] = KEY_KP6, [0x07] = KEY_KP7, [0x08] = KEY_KP8, [0x09] = KEY_KP9, [0x0b] = KEY_TUNER, /* tv/fm */ [0x0c] = KEY_SEARCH, /* scan */ [0x0d] = KEY_STOP, [0x0e] = KEY_PAUSE, [0x0f] = KEY_LIST, /* source */ [0x10] = KEY_MUTE, [0x11] = KEY_REWIND, /* backward << */ [0x12] = KEY_POWER, [0x13] = KEY_S, /* snap */ [0x14] = KEY_AUDIO, /* stereo */ [0x15] = KEY_CLEAR, /* reset */ [0x16] = KEY_PLAY, [0x17] = KEY_ENTER, [0x18] = KEY_ZOOM, /* full screen */ [0x19] = KEY_FASTFORWARD, /* forward >> */ [0x1a] = KEY_CHANNELUP, [0x1b] = KEY_VOLUMEUP, [0x1c] = KEY_INFO, /* preview */ [0x1d] = KEY_RECORD, /* record */ [0x1e] = KEY_CHANNELDOWN, [0x1f] = KEY_VOLUMEDOWN,};/* ---------------------------------------------------------------------- *//* IO-DATA BCTV7E Remote */static IR_KEYTAB_TYPE ir_codes_iodata_bctv7e[IR_KEYTAB_SIZE] = { [0x40] = KEY_TV, [0x20] = KEY_RADIO, /* FM */ [0x60] = KEY_EPG, [0x00] = KEY_POWER, /* Keys 0 to 9 */ [0x44] = KEY_KP0, /* 10 */ [0x50] = KEY_KP1, [0x30] = KEY_KP2, [0x70] = KEY_KP3, [0x48] = KEY_KP4, [0x28] = KEY_KP5, [0x68] = KEY_KP6, [0x58] = KEY_KP7, [0x38] = KEY_KP8, [0x78] = KEY_KP9, [0x10] = KEY_L, /* Live */ [0x08] = KEY_T, /* Time Shift */ [0x18] = KEY_PLAYPAUSE, /* Play */ [0x24] = KEY_ENTER, /* 11 */ [0x64] = KEY_ESC, /* 12 */ [0x04] = KEY_M, /* Multi */ [0x54] = KEY_VIDEO, [0x34] = KEY_CHANNELUP, [0x74] = KEY_VOLUMEUP, [0x14] = KEY_MUTE, [0x4c] = KEY_S, /* SVIDEO */ [0x2c] = KEY_CHANNELDOWN, [0x6c] = KEY_VOLUMEDOWN, [0x0c] = KEY_ZOOM, [0x5c] = KEY_PAUSE, [0x3c] = KEY_C, /* || (red) */ [0x7c] = KEY_RECORD, /* recording */ [0x1c] = KEY_STOP, [0x41] = KEY_REWIND, /* backward << */ [0x21] = KEY_PLAY, [0x61] = KEY_FASTFORWARD, /* forward >> */ [0x01] = KEY_NEXT, /* skip >| */};/* ---------------------------------------------------------------------- *//* ADS Tech Instant TV DVB-T PCI Remote */static IR_KEYTAB_TYPE ir_codes_adstech_dvb_t_pci[IR_KEYTAB_SIZE] = { /* Keys 0 to 9 */ [0x4d] = KEY_0, [0x57] = KEY_1, [0x4f] = KEY_2, [0x53] = KEY_3, [0x56] = KEY_4, [0x4e] = KEY_5, [0x5e] = KEY_6, [0x54] = KEY_7, [0x4c] = KEY_8, [0x5c] = KEY_9, [0x5b] = KEY_POWER, [0x5f] = KEY_MUTE, [0x55] = KEY_GOTO, [0x5d] = KEY_SEARCH, [0x17] = KEY_EPG, /* Guide */ [0x1f] = KEY_MENU, [0x0f] = KEY_UP, [0x46] = KEY_DOWN, [0x16] = KEY_LEFT, [0x1e] = KEY_RIGHT, [0x0e] = KEY_SELECT, /* Enter */ [0x5a] = KEY_INFO, [0x52] = KEY_EXIT, [0x59] = KEY_PREVIOUS, [0x51] = KEY_NEXT, [0x58] = KEY_REWIND, [0x50] = KEY_FORWARD, [0x44] = KEY_PLAYPAUSE, [0x07] = KEY_STOP, [0x1b] = KEY_RECORD, [0x13] = KEY_TUNER, /* Live */ [0x0a] = KEY_A, [0x12] = KEY_B, [0x03] = KEY_PROG1, /* 1 */ [0x01] = KEY_PROG2, /* 2 */ [0x00] = KEY_PROG3, /* 3 */ [0x06] = KEY_DVD, [0x48] = KEY_AUX, /* Photo */ [0x40] = KEY_VIDEO, [0x19] = KEY_AUDIO, /* Music */ [0x0b] = KEY_CHANNELUP, [0x08] = KEY_CHANNELDOWN, [0x15] = KEY_VOLUMEUP, [0x1c] = KEY_VOLUMEDOWN,};/* ---------------------------------------------------------------------- *//* MSI TV@nywhere remote */static IR_KEYTAB_TYPE ir_codes_msi_tvanywhere[IR_KEYTAB_SIZE] = { /* Keys 0 to 9 */ [0x00] = KEY_0, [0x01] = KEY_1, [0x02] = KEY_2, [0x03] = KEY_3, [0x04] = KEY_4, [0x05] = KEY_5, [0x06] = KEY_6, [0x07] = KEY_7, [0x08] = KEY_8, [0x09] = KEY_9, [0x0c] = KEY_MUTE, [0x0f] = KEY_SCREEN, /* Full Screen */ [0x10] = KEY_F, /* Funtion */ [0x11] = KEY_T, /* Time shift */ [0x12] = KEY_POWER, [0x13] = KEY_MEDIA, /* MTS */ [0x14] = KEY_SLOW, [0x16] = KEY_REWIND, /* backward << */ [0x17] = KEY_ENTER, /* Return */ [0x18] = KEY_FASTFORWARD, /* forward >> */ [0x1a] = KEY_CHANNELUP, [0x1b] = KEY_VOLUMEUP, [0x1e] = KEY_CHANNELDOWN, [0x1f] = KEY_VOLUMEDOWN,};/* ---------------------------------------------------------------------- *//* Cinergy 1400 DVB-T */static IR_KEYTAB_TYPE ir_codes_cinergy_1400[IR_KEYTAB_SIZE] = { [0x01] = KEY_POWER, [0x02] = KEY_1, [0x03] = KEY_2, [0x04] = KEY_3, [0x05] = KEY_4, [0x06] = KEY_5, [0x07] = KEY_6, [0x08] = KEY_7, [0x09] = KEY_8, [0x0a] = KEY_9, [0x0c] = KEY_0, [0x0b] = KEY_VIDEO, [0x0d] = KEY_REFRESH, [0x0e] = KEY_SELECT, [0x0f] = KEY_EPG, [0x10] = KEY_UP, [0x11] = KEY_LEFT, [0x12] = KEY_OK, [0x13] = KEY_RIGHT, [0x14] = KEY_DOWN, [0x15] = KEY_TEXT, [0x16] = KEY_INFO, [0x17] = KEY_RED, [0x18] = KEY_GREEN, [0x19] = KEY_YELLOW, [0x1a] = KEY_BLUE, [0x1b] = KEY_CHANNELUP, [0x1c] = KEY_VOLUMEUP, [0x1d] = KEY_MUTE, [0x1e] = KEY_VOLUMEDOWN, [0x1f] = KEY_CHANNELDOWN, [0x40] = KEY_PAUSE, [0x4c] = KEY_PLAY, [0x58] = KEY_RECORD, [0x54] = KEY_PREVIOUS, [0x48] = KEY_STOP, [0x5c] = KEY_NEXT,};/* ---------------------------------------------------------------------- *//* AVERTV STUDIO 303 Remote */static IR_KEYTAB_TYPE ir_codes_avertv_303[IR_KEYTAB_SIZE] = { [ 0x2a ] = KEY_KP1, [ 0x32 ] = KEY_KP2, [ 0x3a ] = KEY_KP3, [ 0x4a ] = KEY_KP4, [ 0x52 ] = KEY_KP5, [ 0x5a ] = KEY_KP6, [ 0x6a ] = KEY_KP7, [ 0x72 ] = KEY_KP8, [ 0x7a ] = KEY_KP9, [ 0x0e ] = KEY_KP0, [ 0x02 ] = KEY_POWER, [ 0x22 ] = KEY_VIDEO, [ 0x42 ] = KEY_AUDIO, [ 0x62 ] = KEY_ZOOM, [ 0x0a ] = KEY_TV, [ 0x12 ] = KEY_CD, [ 0x1a ] = KEY_TEXT, [ 0x16 ] = KEY_SUBTITLE, [ 0x1e ] = KEY_REWIND, [ 0x06 ] = KEY_PRINT, [ 0x2e ] = KEY_SEARCH, [ 0x36 ] = KEY_SLEEP, [ 0x3e ] = KEY_SHUFFLE, [ 0x26 ] = KEY_MUTE, [ 0x4e ] = KEY_RECORD, [ 0x56 ] = KEY_PAUSE, [ 0x5e ] = KEY_STOP, [ 0x46 ] = KEY_PLAY, [ 0x6e ] = KEY_RED, [ 0x0b ] = KEY_GREEN, [ 0x66 ] = KEY_YELLOW, [ 0x03 ] = KEY_BLUE, [ 0x76 ] = KEY_LEFT, [ 0x7e ] = KEY_RIGHT, [ 0x13 ] = KEY_DOWN, [ 0x1b ] = KEY_UP,};/* ---------------------------------------------------------------------- *//* DigitalNow DNTV Live! DVB-T Pro Remote */static IR_KEYTAB_TYPE ir_codes_dntv_live_dvbt_pro[IR_KEYTAB_SIZE] = { [ 0x16 ] = KEY_POWER, [ 0x5b ] = KEY_HOME, [ 0x55 ] = KEY_TV, /* live tv */ [ 0x58 ] = KEY_TUNER, /* digital Radio */ [ 0x5a ] = KEY_RADIO, /* FM radio */ [ 0x59 ] = KEY_DVD, /* dvd menu */ [ 0x03 ] = KEY_1, [ 0x01 ] = KEY_2, [ 0x06 ] = KEY_3, [ 0x09 ] = KEY_4, [ 0x1d ] = KEY_5, [ 0x1f ] = KEY_6, [ 0x0d ] = KEY_7, [ 0x19 ] = KEY_8, [ 0x1b ] = KEY_9, [ 0x0c ] = KEY_CANCEL, [ 0x15 ] = KEY_0, [ 0x4a ] = KEY_CLEAR, [ 0x13 ] = KEY_BACK, [ 0x00 ] = KEY_TAB, [ 0x4b ] = KEY_UP, [ 0x4e ] = KEY_LEFT, [ 0x4f ] = KEY_OK, [ 0x52 ] = KEY_RIGHT, [ 0x51 ] = KEY_DOWN, [ 0x1e ] = KEY_VOLUMEUP, [ 0x0a ] = KEY_VOLUMEDOWN, [ 0x02 ] = KEY_CHANNELDOWN, [ 0x05 ] = KEY_CHANNELUP, [ 0x11 ] = KEY_RECORD, [ 0x14 ] = KEY_PLAY, [ 0x4c ] = KEY_PAUSE, [ 0x1a ] = KEY_STOP, [ 0x40 ] = KEY_REWIND, [ 0x12 ] = KEY_FASTFORWARD, [ 0x41 ] = KEY_PREVIOUSSONG, /* replay |< */ [ 0x42 ] = KEY_NEXTSONG, /* skip >| */ [ 0x54 ] = KEY_CAMERA, /* capture */ [ 0x50 ] = KEY_LANGUAGE, /* sap */ [ 0x47 ] = KEY_TV2, /* pip */ [ 0x4d ] = KEY_SCREEN, [ 0x43 ] = KEY_SUBTITLE, [ 0x10 ] = KEY_MUTE, [ 0x49 ] = KEY_AUDIO, /* l/r */ [ 0x07 ] = KEY_SLEEP, [ 0x08 ] = KEY_VIDEO, /* a/v */ [ 0x0e ] = KEY_PREVIOUS, /* recall */ [ 0x45 ] = KEY_ZOOM, /* zoom + */ [ 0x46 ] = KEY_ANGLE, /* zoom - */ [ 0x56 ] = KEY_RED, [ 0x57 ] = KEY_GREEN, [ 0x5c ] = KEY_YELLOW, [ 0x5d ] = KEY_BLUE,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -