ir-keymaps.c

来自「trident tm5600的linux驱动」· C语言 代码 · 共 2,444 行 · 第 1/5 页

C
2,444
字号
/*    Keytables for supported remote controls. This file is part of    video4linux.    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., 675 Mass Ave, Cambridge, MA 02139, USA. */#include <linux/module.h>#include <linux/input.h>#include <media/ir-common.h>#include "compat.h"/* empty keytable, can be used as placeholder for not-yet created keytables */IR_KEYTAB_TYPE ir_codes_empty[IR_KEYTAB_SIZE] = {	[ 0x2a ] = KEY_COFFEE,};EXPORT_SYMBOL_GPL(ir_codes_empty);/* Michal Majchrowicz <mmajchrowicz@gmail.com> */IR_KEYTAB_TYPE ir_codes_proteus_2309[IR_KEYTAB_SIZE] = {	/* numeric */	[ 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,	[ 0x5c ] = KEY_POWER,     /* power       */	[ 0x20 ] = KEY_F,         /* full screen */	[ 0x0f ] = KEY_BACKSPACE, /* recall      */	[ 0x1b ] = KEY_ENTER,     /* mute        */	[ 0x41 ] = KEY_RECORD,    /* record      */	[ 0x43 ] = KEY_STOP,      /* stop        */	[ 0x16 ] = KEY_S,	[ 0x1a ] = KEY_Q,         /* off         */	[ 0x2e ] = KEY_RED,	[ 0x1f ] = KEY_DOWN,      /* channel -   */	[ 0x1c ] = KEY_UP,        /* channel +   */	[ 0x10 ] = KEY_LEFT,      /* volume -    */	[ 0x1e ] = KEY_RIGHT,     /* volume +    */	[ 0x14 ] = KEY_F1,};EXPORT_SYMBOL_GPL(ir_codes_proteus_2309);/* Matt Jesson <dvb@jesson.eclipse.co.uk */IR_KEYTAB_TYPE ir_codes_avermedia_dvbt[IR_KEYTAB_SIZE] = {	[ 0x28 ] = KEY_0,         //'0' / 'enter'	[ 0x22 ] = KEY_1,         //'1'	[ 0x12 ] = KEY_2,         //'2' / 'up arrow'	[ 0x32 ] = KEY_3,         //'3'	[ 0x24 ] = KEY_4,         //'4' / 'left arrow'	[ 0x14 ] = KEY_5,         //'5'	[ 0x34 ] = KEY_6,         //'6' / 'right arrow'	[ 0x26 ] = KEY_7,         //'7'	[ 0x16 ] = KEY_8,         //'8' / 'down arrow'	[ 0x36 ] = KEY_9,         //'9'	[ 0x20 ] = KEY_LIST,        // 'source'	[ 0x10 ] = KEY_TEXT,        // 'teletext'	[ 0x00 ] = KEY_POWER,       // 'power'	[ 0x04 ] = KEY_AUDIO,       // 'audio'	[ 0x06 ] = KEY_ZOOM,        // 'full screen'	[ 0x18 ] = KEY_VIDEO,       // 'display'	[ 0x38 ] = KEY_SEARCH,      // 'loop'	[ 0x08 ] = KEY_INFO,        // 'preview'	[ 0x2a ] = KEY_REWIND,      // 'backward <<'	[ 0x1a ] = KEY_FASTFORWARD, // 'forward >>'	[ 0x3a ] = KEY_RECORD,      // 'capture'	[ 0x0a ] = KEY_MUTE,        // 'mute'	[ 0x2c ] = KEY_RECORD,      // 'record'	[ 0x1c ] = KEY_PAUSE,       // 'pause'	[ 0x3c ] = KEY_STOP,        // 'stop'	[ 0x0c ] = KEY_PLAY,        // 'play'	[ 0x2e ] = KEY_RED,         // 'red'	[ 0x01 ] = KEY_BLUE,        // 'blue' / 'cancel'	[ 0x0e ] = KEY_YELLOW,      // 'yellow' / 'ok'	[ 0x21 ] = KEY_GREEN,       // 'green'	[ 0x11 ] = KEY_CHANNELDOWN, // 'channel -'	[ 0x31 ] = KEY_CHANNELUP,   // 'channel +'	[ 0x1e ] = KEY_VOLUMEDOWN,  // 'volume -'	[ 0x3e ] = KEY_VOLUMEUP,    // 'volume +'};EXPORT_SYMBOL_GPL(ir_codes_avermedia_dvbt);/* Mauro Carvalho Chehab <mchehab@infradead.org> */IR_KEYTAB_TYPE ir_codes_avermedia_m135a[IR_KEYTAB_SIZE] = {	[0x00] = KEY_POWER2,	[0x2e] = KEY_DOT,		/* '.' */	[0x01] = KEY_MODE,		/* TV/FM */	[0x05] = KEY_1,	[0x06] = KEY_2,	[0x07] = KEY_3,	[0x09] = KEY_4,	[0x0a] = KEY_5,	[0x0b] = KEY_6,	[0x0d] = KEY_7,	[0x0e] = KEY_8,	[0x0f] = KEY_9,	[0x11] = KEY_0,	[0x13] = KEY_RIGHT,		/* -> */	[0x12] = KEY_LEFT,		/* <- */	[0x17] = KEY_SLEEP,		/* Capturar Imagem */	[0x10] = KEY_SHUFFLE,		/* Amostra */	/* FIXME: The keys bellow aren't ok */	[0x43] = KEY_CHANNELUP,	[0x42] = KEY_CHANNELDOWN,	[0x1f] = KEY_VOLUMEUP,	[0x1e] = KEY_VOLUMEDOWN,	[0x0c] = KEY_ENTER,	[0x14] = KEY_MUTE,	[0x08] = KEY_AUDIO,	[0x03] = KEY_TEXT,	[0x04] = KEY_EPG,	[0x2b] = KEY_TV2,		/* TV2 */	[0x1d] = KEY_RED,	[0x1c] = KEY_YELLOW,	[0x41] = KEY_GREEN,	[0x40] = KEY_BLUE,	[0x1a] = KEY_PLAYPAUSE,	[0x19] = KEY_RECORD,	[0x18] = KEY_PLAY,	[0x1b] = KEY_STOP,};EXPORT_SYMBOL_GPL(ir_codes_avermedia_m135a);/* Attila Kondoros <attila.kondoros@chello.hu> */IR_KEYTAB_TYPE ir_codes_apac_viewcomp[IR_KEYTAB_SIZE] = {	[ 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,	[ 0x00 ] = KEY_0,	[ 0x17 ] = KEY_LAST,        // +100	[ 0x0a ] = KEY_LIST,        // recall	[ 0x1c ] = KEY_TUNER,       // TV/FM	[ 0x15 ] = KEY_SEARCH,      // scan	[ 0x12 ] = KEY_POWER,       // power	[ 0x1f ] = KEY_VOLUMEDOWN,  // vol up	[ 0x1b ] = KEY_VOLUMEUP,    // vol down	[ 0x1e ] = KEY_CHANNELDOWN, // chn up	[ 0x1a ] = KEY_CHANNELUP,   // chn down	[ 0x11 ] = KEY_VIDEO,       // video	[ 0x0f ] = KEY_ZOOM,        // full screen	[ 0x13 ] = KEY_MUTE,        // mute/unmute	[ 0x10 ] = KEY_TEXT,        // min	[ 0x0d ] = KEY_STOP,        // freeze	[ 0x0e ] = KEY_RECORD,      // record	[ 0x1d ] = KEY_PLAYPAUSE,   // stop	[ 0x19 ] = KEY_PLAY,        // play	[ 0x16 ] = KEY_GOTO,        // osd	[ 0x14 ] = KEY_REFRESH,     // default	[ 0x0c ] = KEY_KPPLUS,      // fine tune >>>>	[ 0x18 ] = KEY_KPMINUS      // fine tune <<<<};EXPORT_SYMBOL_GPL(ir_codes_apac_viewcomp);/* ---------------------------------------------------------------------- */IR_KEYTAB_TYPE ir_codes_pixelview[IR_KEYTAB_SIZE] = {	[ 0x1e ] = KEY_POWER,       // power	[ 0x07 ] = KEY_MEDIA,       // source	[ 0x1c ] = KEY_SEARCH,      // scan/* FIXME: duplicate keycodes? * * These four keys seem to share the same GPIO as CH+, CH-, <<< and >>> * The GPIO values are * 6397fb for both "Scan <" and "CH -", * 639ffb for "Scan >" and "CH+", * 6384fb for "Tune <" and "<<<", * 638cfb for "Tune >" and ">>>", regardless of the mask. * *	[ 0x17 ] = KEY_BACK,        // fm scan << *	[ 0x1f ] = KEY_FORWARD,     // fm scan >> * *	[ 0x04 ] = KEY_LEFT,        // fm tuning < *	[ 0x0c ] = KEY_RIGHT,       // fm tuning > * * For now, these four keys are disabled. Pressing them will generate * the CH+/CH-/<<</>>> events */	[ 0x03 ] = KEY_TUNER,       // TV/FM	[ 0x00 ] = KEY_RECORD,	[ 0x08 ] = KEY_STOP,	[ 0x11 ] = KEY_PLAY,	[ 0x1a ] = KEY_PLAYPAUSE,   // freeze	[ 0x19 ] = KEY_ZOOM,        // zoom	[ 0x0f ] = KEY_TEXT,        // min	[ 0x01 ] = KEY_1,	[ 0x0b ] = KEY_2,	[ 0x1b ] = KEY_3,	[ 0x05 ] = KEY_4,	[ 0x09 ] = KEY_5,	[ 0x15 ] = KEY_6,	[ 0x06 ] = KEY_7,	[ 0x0a ] = KEY_8,	[ 0x12 ] = KEY_9,	[ 0x02 ] = KEY_0,	[ 0x10 ] = KEY_LAST,        // +100	[ 0x13 ] = KEY_LIST,        // recall	[ 0x1f ] = KEY_CHANNELUP,   // chn down	[ 0x17 ] = KEY_CHANNELDOWN, // chn up	[ 0x16 ] = KEY_VOLUMEUP,    // vol down	[ 0x14 ] = KEY_VOLUMEDOWN,  // vol up	[ 0x04 ] = KEY_KPMINUS,     // <<<	[ 0x0e ] = KEY_SETUP,       // function	[ 0x0c ] = KEY_KPPLUS,      // >>>	[ 0x0d ] = KEY_GOTO,        // mts	[ 0x1d ] = KEY_REFRESH,     // reset	[ 0x18 ] = KEY_MUTE         // mute/unmute};EXPORT_SYMBOL_GPL(ir_codes_pixelview);/*   Mauro Carvalho Chehab <mchehab@infradead.org>   present on PV MPEG 8000GT */IR_KEYTAB_TYPE ir_codes_pixelview_new[IR_KEYTAB_SIZE] = {	[0x3c] = KEY_PAUSE,		/* Timeshift */	[0x12] = KEY_POWER,	[0x3d] = KEY_1,	[0x38] = KEY_2,	[0x18] = KEY_3,	[0x35] = KEY_4,	[0x39] = KEY_5,	[0x15] = KEY_6,	[0x36] = KEY_7,	[0x3a] = KEY_8,	[0x1e] = KEY_9,	[0x3e] = KEY_0,	[0x1c] = KEY_AGAIN,		/* LOOP	*/	[0x3f] = KEY_MEDIA,		/* Source */	[0x1f] = KEY_LAST,		/* +100 */	[0x1b] = KEY_MUTE,	[0x17] = KEY_CHANNELDOWN,	[0x16] = KEY_CHANNELUP,	[0x10] = KEY_VOLUMEUP,	[0x14] = KEY_VOLUMEDOWN,	[0x13] = KEY_ZOOM,	[0x19] = KEY_SHUFFLE,		/* SNAPSHOT */	[0x1a] = KEY_SEARCH,		/* scan */	[0x37] = KEY_REWIND,		/* << */	[0x32] = KEY_RECORD,		/* o (red) */	[0x33] = KEY_FORWARD,		/* >> */	[0x11] = KEY_STOP,		/* square */	[0x3b] = KEY_PLAY,		/* > */	[0x30] = KEY_PLAYPAUSE,		/* || */	[0x31] = KEY_TV,	[0x34] = KEY_RADIO,};EXPORT_SYMBOL_GPL(ir_codes_pixelview_new);IR_KEYTAB_TYPE ir_codes_nebula[IR_KEYTAB_SIZE] = {	[ 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,	[ 0x0a ] = KEY_TV,	[ 0x0b ] = KEY_AUX,	[ 0x0c ] = KEY_DVD,	[ 0x0d ] = KEY_POWER,	[ 0x0e ] = KEY_MHP,	/* labelled 'Picture' */	[ 0x0f ] = KEY_AUDIO,	[ 0x10 ] = KEY_INFO,	[ 0x11 ] = KEY_F13,	/* 16:9 */	[ 0x12 ] = KEY_F14,	/* 14:9 */	[ 0x13 ] = KEY_EPG,	[ 0x14 ] = KEY_EXIT,	[ 0x15 ] = KEY_MENU,	[ 0x16 ] = KEY_UP,	[ 0x17 ] = KEY_DOWN,	[ 0x18 ] = KEY_LEFT,	[ 0x19 ] = KEY_RIGHT,	[ 0x1a ] = KEY_ENTER,	[ 0x1b ] = KEY_CHANNELUP,	[ 0x1c ] = KEY_CHANNELDOWN,	[ 0x1d ] = KEY_VOLUMEUP,	[ 0x1e ] = KEY_VOLUMEDOWN,	[ 0x1f ] = KEY_RED,	[ 0x20 ] = KEY_GREEN,	[ 0x21 ] = KEY_YELLOW,	[ 0x22 ] = KEY_BLUE,	[ 0x23 ] = KEY_SUBTITLE,	[ 0x24 ] = KEY_F15,	/* AD */	[ 0x25 ] = KEY_TEXT,	[ 0x26 ] = KEY_MUTE,	[ 0x27 ] = KEY_REWIND,	[ 0x28 ] = KEY_STOP,	[ 0x29 ] = KEY_PLAY,	[ 0x2a ] = KEY_FASTFORWARD,	[ 0x2b ] = KEY_F16,	/* chapter */	[ 0x2c ] = KEY_PAUSE,	[ 0x2d ] = KEY_PLAY,	[ 0x2e ] = KEY_RECORD,	[ 0x2f ] = KEY_F17,	/* picture in picture */	[ 0x30 ] = KEY_KPPLUS,	/* zoom in */	[ 0x31 ] = KEY_KPMINUS,	/* zoom out */	[ 0x32 ] = KEY_F18,	/* capture */	[ 0x33 ] = KEY_F19,	/* web */	[ 0x34 ] = KEY_EMAIL,	[ 0x35 ] = KEY_PHONE,	[ 0x36 ] = KEY_PC};EXPORT_SYMBOL_GPL(ir_codes_nebula);/* DigitalNow DNTV Live DVB-T Remote */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_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,	[ 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,};EXPORT_SYMBOL_GPL(ir_codes_dntv_live_dvb_t);/* ---------------------------------------------------------------------- *//* IO-DATA BCTV7E Remote */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_0,		/* 10 */	[ 0x50 ] = KEY_1,	[ 0x30 ] = KEY_2,	[ 0x70 ] = KEY_3,	[ 0x48 ] = KEY_4,	[ 0x28 ] = KEY_5,	[ 0x68 ] = KEY_6,	[ 0x58 ] = KEY_7,	[ 0x38 ] = KEY_8,	[ 0x78 ] = KEY_9,	[ 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 >| */};EXPORT_SYMBOL_GPL(ir_codes_iodata_bctv7e);/* ---------------------------------------------------------------------- *//* ADS Tech Instant TV DVB-T PCI Remote */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,

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?