📄 ir-keymaps.c
字号:
/* 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/moduleparam.h>#include <linux/input.h>#include <media/ir-common.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);/* 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);/* 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);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, [ 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,};EXPORT_SYMBOL_GPL(ir_codes_adstech_dvb_t_pci);/* ---------------------------------------------------------------------- *//* MSI TV@nywhere remote */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,};EXPORT_SYMBOL_GPL(ir_codes_msi_tvanywhere);/* ---------------------------------------------------------------------- *//* Cinergy 1400 DVB-T */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,};EXPORT_SYMBOL_GPL(ir_codes_cinergy_1400);/* ---------------------------------------------------------------------- *//* AVERTV STUDIO 303 Remote */IR_KEYTAB_TYPE ir_codes_avertv_303[IR_KEYTAB_SIZE] = { [ 0x2a ] = KEY_1, [ 0x32 ] = KEY_2, [ 0x3a ] = KEY_3, [ 0x4a ] = KEY_4, [ 0x52 ] = KEY_5, [ 0x5a ] = KEY_6, [ 0x6a ] = KEY_7, [ 0x72 ] = KEY_8, [ 0x7a ] = KEY_9, [ 0x0e ] = KEY_0, [ 0x02 ] = KEY_POWER, [ 0x22 ] = KEY_VIDEO, [ 0x42 ] = KEY_AUDIO,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -