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 + -
显示快捷键?