android TV 遙控配製

kernel目錄下

要修改到的文件:
     mstar/mstar/ir/Kconfig
     mstar/mstar/ir/IR_MSTAR_DTV.h
     drivers/media/rc/keymaps/rc-mstar-tv.c
添加一個config:
     .config.bk.thtf
1.Kconfig:
添加一個分支:
==============================加在末尾========
choice
prompt "IR REMOTE"
     default THTF_IR
     config REALTOP_IR
          bool "realtop ir remote"
     config THTF_IR
          bool "thtf ir remote"
     config HAIER_IR
          bool "haier ir remote"
     config VIDEOCON_IR
          bool "videocon ir remote"
endchoice
=======================================
2.IR_MSTAR_DTV.h:
添加客戶頭碼:
======================================
// IR Header code define
#ifdef CONFIG_REALTOP_IR          //realtop
     #define IR_HEADER_CODE0         0x00    // Custom 0
     #define IR_HEADER_CODE1         0xFF    // Custom 1
#elif CONFIG_THTF_IR          //thtf
      #define IR_HEADER_CODE0         0x00    // Custom 0
     #define IR_HEADER_CODE1         0xFF    // Custom 1
#elif CONFIG_HAIER_IR          //haier
     #define IR_HEADER_CODE0         0x00    // Custom 0
     #define IR_HEADER_CODE1         0xFF    // Custom 1
#elif CONFIG_VIDEOCON_IR          //videocon
      #define IR_HEADER_CODE0         0x00    // Custom 0
     #define IR_HEADER_CODE1         0xFF    // Custom 1
#else          //default to MSTAR IR
      #define IR_HEADER_CODE0         0x00    // Custom 0
     #define IR_HEADER_CODE1         0xFF    // Custom 1
#endif
===========================================
3.rc-mstar-tv.c
添加鍵值:static struct rc_map_table mstar_tv[]這個結構體裏:
==================================================
#if CONFIG_THTF_IR          //thtf
     { 0x0046, KEY_POWER },
    { 0x004C, KEY_MUTE },
    { 0x0001, KEY_1 },
    { 0x0002, KEY_2 },
    { 0x0003, KEY_3 },
    { 0x0004, KEY_4 },
    { 0x0005, KEY_5 },
    { 0x0006, KEY_6 },
    { 0x0007, KEY_7 },
    { 0x0008, KEY_8 },
    { 0x0009, KEY_9 },
    { 0x0000, KEY_0 },  
     { 0x0041, KEY_CHANNEL },    // CHANNEL_RETURN
    { 0x004B, KEY_KP1},      // TV_INPUT
    { 0x0048, KEY_UP },    
    { 0x0045, KEY_MENU },
    { 0x004E, KEY_LEFT },
    { 0x004A, KEY_ENTER },
     { 0x0049, KEY_RIGHT },
    { 0x004F, KEY_INFO },   
     { 0x004D, KEY_DOWN },
     { 0x000D, KEY_BACK},
    { 0x000F, KEY_VOLUMEUP },
     { 0x005B, KEY_HOME},    
    { 0x000C, KEY_CHANNELUP },
    { 0x005A, KEY_VOLUMEDOWN },    
    { 0x0047, KEY_FN_F7 },      // 3D_MODE    
    { 0x0019, KEY_CHANNELDOWN },         
    { 0x0057, KEY_PLAYPAUSE },
    { 0x0056, KEY_REWIND },
    { 0x0017, KEY_FORWARD },
     { 0x0043, KEY_SUBTITLE },
    
    { 0x0016, KEY_STOP },   
     { 0x0054, KEY_PREVIOUSSONG },
    { 0x0015, KEY_NEXTSONG },
     { 0x0044, KEY_AUDIO },      // MTS
    
    { 0x0052, KEY_RED },
    { 0x0013, KEY_GREEN },
    { 0x0050, KEY_YELLOW },
    { 0x0011, KEY_BLUE },         

    { 0x0014, KEY_FN_F2 },      // FREEZE         
    { 0x0040, KEY_SLEEP },
     { 0x0018, KEY_EPG },
    
    { 0x0058, KEY_ZOOM },       // ASPECT RATIO
     { 0x0059, KEY_FN_F8},       // add fav
     { 0x001A, KEY_FAVORITES},   // add fav
     { 0x0061, KEY_F2},
#else     //default to MSTAR IR
    { 0x0046, KEY_POWER },
    { 0x0050, KEY_0 },
    { 0x0049, KEY_1 },
    { 0x0055, KEY_2 },
    { 0x0059, KEY_3 },
    { 0x004D, KEY_4 },
    { 0x0051, KEY_5 },
    { 0x005D, KEY_6 },
    { 0x0048, KEY_7 },
    { 0x0054, KEY_8 },
    { 0x0058, KEY_9 },
    { 0x0047, KEY_RED },
    { 0x004B, KEY_GREEN },
    { 0x0057, KEY_YELLOW },
    { 0x005B, KEY_BLUE },
    { 0x0052, KEY_UP },
    { 0x0013, KEY_DOWN },
    { 0x0006, KEY_LEFT },
    { 0x001A, KEY_RIGHT },
    { 0x000F, KEY_ENTER },
    { 0x001F, KEY_CHANNELUP },
    { 0x0019, KEY_CHANNELDOWN },
    { 0x0016, KEY_VOLUMEUP },
    { 0x0015, KEY_VOLUMEDOWN },
    { 0x0003, KEY_PAGEUP },
    { 0x0005, KEY_PAGEDOWN },
    { 0x0017, KEY_HOME},
    { 0x0007, KEY_MENU },
    { 0x001B, KEY_BACK },
    { 0x005A, KEY_MUTE },
    { 0x000D, KEY_RECORD },     // DVR
    { 0x0042, KEY_HELP },       // GUIDE
    { 0x0014, KEY_INFO },
    { 0x0040, KEY_KP0 },        // WINDOW
    { 0x0004, KEY_KP1 },        // TV_INPUT
    { 0x000E, KEY_REWIND },
    { 0x0012, KEY_FORWARD },
    { 0x0002, KEY_PREVIOUSSONG },
    { 0x001E, KEY_NEXTSONG },
    { 0x0001, KEY_PLAY },
    { 0x001D, KEY_PAUSE },
    { 0x0011, KEY_STOP },
    { 0x0044, KEY_AUDIO },      // (C)SOUND_MODE
    { 0x0056, KEY_CAMERA },     // (C)PICTURE_MODE
    { 0x004C, KEY_ZOOM },       // (C)ASPECT_RATIO
    { 0x005C, KEY_CHANNEL },    // (C)CHANNEL_RETURN
    { 0x0045, KEY_SLEEP },      // (C)SLEEP
    { 0x004A, KEY_EPG },        // (C)EPG
    { 0x0010, KEY_LIST },       // (C)LIST
    { 0x0053, KEY_SUBTITLE },   // (C)SUBTITLE
    { 0x0041, KEY_FN_F1 },      // (C)MTS
    { 0x004E, KEY_FN_F2 },      // (C)FREEZE
    { 0x000A, KEY_FN_F3 },      // (C)TTX
    { 0x0009, KEY_FN_F4 },      // (C)CC
    { 0x001C, KEY_FN_F5 },      // (C)TV_SETTING
    { 0x0008, KEY_FN_F6 },      // (C)SCREENSHOT
    { 0x000B, KEY_F1 },         // MSTAR_BALANCE
    { 0x0018, KEY_F2 },         // MSTAR_INDEX
    { 0x0000, KEY_F3 },         // MSTAR_HOLD
    { 0x000C, KEY_F4 },         // MSTAR_UPDATE
    { 0x004F, KEY_F5 },         // MSTAR_REVEAL
    { 0x005E, KEY_F6 },         // MSTAR_SUBCODE
    { 0x0043, KEY_F7 },         // MSTAR_SIZE
    { 0x005F, KEY_F8 },         // MSTAR_CLOCK
    { 0x00FE, KEY_POWER2 },     // FAKE_POWER
    { 0x00FF, KEY_OK },         // KEY_OK

    // 2nd IR controller.
#endif
============================================================

4.添加config
查看編譯腳本,用的是哪個config
複製一份.config.madison.android.emmc.performance,並重命名:.config.bk.thtf


Mstar按鍵配置:
在串口工具輸入getevent:
配好的打印信息:

92,66都是十六進制的數!!!
92:對應的是Linux層的,文件:kernel\3.1.10\drivers\media\rc\keymaps\rc-XXXX-tv.c
66:對應的是android層的,文件:device\mstar\mango\preinstall\keylayout\Vendor_XXXX_Product_XXXX.kl,


在Linux層的映射關係關鍵是:kernel\3.1.10\include\linux\input.h;


沒配好的打印信息:


在android層,kl文件與KeyEvent.KEYCODE的對應關係表:


需要注意的是KeycodeLabels.h文件,在android4.4.4以前的版本里,它的路徑是 frameworks/base/include/ui/keycodeLabels.h

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章