LCOV - code coverage report
Current view: top level - drivers/media/rc/keymaps - rc-imon-mce.c (source / functions) Hit Total Coverage
Test: gcov_data_raspi2_qemu_modules_combined.info Lines: 2 5 40.0 %
Date: 2020-09-30 20:25:01 Functions: 1 2 50.0 %
Branches: 0 0 -

           Branch data     Line data    Source code
       1                 :            : // SPDX-License-Identifier: GPL-2.0-or-later
       2                 :            : /* rc5-imon-mce.c - Keytable for Windows Media Center RC-6 remotes for use
       3                 :            :  * with the SoundGraph iMON/Antec Veris hardware IR decoder
       4                 :            :  *
       5                 :            :  * Copyright (c) 2010 by Jarod Wilson <jarod@redhat.com>
       6                 :            :  */
       7                 :            : 
       8                 :            : #include <media/rc-map.h>
       9                 :            : #include <linux/module.h>
      10                 :            : 
      11                 :            : /* mce-mode imon mce remote key table */
      12                 :            : static struct rc_map_table imon_mce[] = {
      13                 :            :         /* keys sorted mostly by frequency of use to optimize lookups */
      14                 :            :         { 0x800ff415, KEY_REWIND },
      15                 :            :         { 0x800ff414, KEY_FASTFORWARD },
      16                 :            :         { 0x800ff41b, KEY_PREVIOUS },
      17                 :            :         { 0x800ff41a, KEY_NEXT },
      18                 :            : 
      19                 :            :         { 0x800ff416, KEY_PLAY },
      20                 :            :         { 0x800ff418, KEY_PAUSE },
      21                 :            :         { 0x800ff419, KEY_STOP },
      22                 :            :         { 0x800ff417, KEY_RECORD },
      23                 :            : 
      24                 :            :         { 0x02000052, KEY_UP },
      25                 :            :         { 0x02000051, KEY_DOWN },
      26                 :            :         { 0x02000050, KEY_LEFT },
      27                 :            :         { 0x0200004f, KEY_RIGHT },
      28                 :            : 
      29                 :            :         { 0x800ff41e, KEY_UP },
      30                 :            :         { 0x800ff41f, KEY_DOWN },
      31                 :            :         { 0x800ff420, KEY_LEFT },
      32                 :            :         { 0x800ff421, KEY_RIGHT },
      33                 :            : 
      34                 :            :         /* 0x800ff40b also KEY_NUMERIC_POUND on some receivers */
      35                 :            :         { 0x800ff40b, KEY_ENTER },
      36                 :            :         { 0x02000028, KEY_ENTER },
      37                 :            : /* the OK and Enter buttons decode to the same value on some remotes
      38                 :            :         { 0x02000028, KEY_OK }, */
      39                 :            :         { 0x800ff422, KEY_OK },
      40                 :            :         { 0x0200002a, KEY_EXIT },
      41                 :            :         { 0x800ff423, KEY_EXIT },
      42                 :            :         { 0x02000029, KEY_DELETE },
      43                 :            :         /* 0x800ff40a also KEY_NUMERIC_STAR on some receivers */
      44                 :            :         { 0x800ff40a, KEY_DELETE },
      45                 :            : 
      46                 :            :         { 0x800ff40e, KEY_MUTE },
      47                 :            :         { 0x800ff410, KEY_VOLUMEUP },
      48                 :            :         { 0x800ff411, KEY_VOLUMEDOWN },
      49                 :            :         { 0x800ff412, KEY_CHANNELUP },
      50                 :            :         { 0x800ff413, KEY_CHANNELDOWN },
      51                 :            : 
      52                 :            :         { 0x0200001e, KEY_NUMERIC_1 },
      53                 :            :         { 0x0200001f, KEY_NUMERIC_2 },
      54                 :            :         { 0x02000020, KEY_NUMERIC_3 },
      55                 :            :         { 0x02000021, KEY_NUMERIC_4 },
      56                 :            :         { 0x02000022, KEY_NUMERIC_5 },
      57                 :            :         { 0x02000023, KEY_NUMERIC_6 },
      58                 :            :         { 0x02000024, KEY_NUMERIC_7 },
      59                 :            :         { 0x02000025, KEY_NUMERIC_8 },
      60                 :            :         { 0x02000026, KEY_NUMERIC_9 },
      61                 :            :         { 0x02000027, KEY_NUMERIC_0 },
      62                 :            : 
      63                 :            :         { 0x800ff401, KEY_NUMERIC_1 },
      64                 :            :         { 0x800ff402, KEY_NUMERIC_2 },
      65                 :            :         { 0x800ff403, KEY_NUMERIC_3 },
      66                 :            :         { 0x800ff404, KEY_NUMERIC_4 },
      67                 :            :         { 0x800ff405, KEY_NUMERIC_5 },
      68                 :            :         { 0x800ff406, KEY_NUMERIC_6 },
      69                 :            :         { 0x800ff407, KEY_NUMERIC_7 },
      70                 :            :         { 0x800ff408, KEY_NUMERIC_8 },
      71                 :            :         { 0x800ff409, KEY_NUMERIC_9 },
      72                 :            :         { 0x800ff400, KEY_NUMERIC_0 },
      73                 :            : 
      74                 :            :         { 0x02200025, KEY_NUMERIC_STAR },
      75                 :            :         { 0x02200020, KEY_NUMERIC_POUND },
      76                 :            :         /* 0x800ff41d also KEY_BLUE on some receivers */
      77                 :            :         { 0x800ff41d, KEY_NUMERIC_STAR },
      78                 :            :         /* 0x800ff41c also KEY_PREVIOUS on some receivers */
      79                 :            :         { 0x800ff41c, KEY_NUMERIC_POUND },
      80                 :            : 
      81                 :            :         { 0x800ff446, KEY_TV },
      82                 :            :         { 0x800ff447, KEY_AUDIO }, /* My Music */
      83                 :            :         { 0x800ff448, KEY_PVR }, /* RecordedTV */
      84                 :            :         { 0x800ff449, KEY_CAMERA },
      85                 :            :         { 0x800ff44a, KEY_VIDEO },
      86                 :            :         /* 0x800ff424 also KEY_MENU on some receivers */
      87                 :            :         { 0x800ff424, KEY_DVD },
      88                 :            :         /* 0x800ff425 also KEY_GREEN on some receivers */
      89                 :            :         { 0x800ff425, KEY_TUNER }, /* LiveTV */
      90                 :            :         { 0x800ff450, KEY_RADIO },
      91                 :            : 
      92                 :            :         { 0x800ff44c, KEY_LANGUAGE },
      93                 :            :         { 0x800ff427, KEY_ZOOM }, /* Aspect */
      94                 :            : 
      95                 :            :         { 0x800ff45b, KEY_RED },
      96                 :            :         { 0x800ff45c, KEY_GREEN },
      97                 :            :         { 0x800ff45d, KEY_YELLOW },
      98                 :            :         { 0x800ff45e, KEY_BLUE },
      99                 :            : 
     100                 :            :         { 0x800ff466, KEY_RED },
     101                 :            :         /* { 0x800ff425, KEY_GREEN }, */
     102                 :            :         { 0x800ff468, KEY_YELLOW },
     103                 :            :         /* { 0x800ff41d, KEY_BLUE }, */
     104                 :            : 
     105                 :            :         { 0x800ff40f, KEY_INFO },
     106                 :            :         { 0x800ff426, KEY_EPG }, /* Guide */
     107                 :            :         { 0x800ff45a, KEY_SUBTITLE }, /* Caption/Teletext */
     108                 :            :         { 0x800ff44d, KEY_TITLE },
     109                 :            : 
     110                 :            :         { 0x800ff40c, KEY_POWER },
     111                 :            :         { 0x800ff40d, KEY_MEDIA }, /* Windows MCE button */
     112                 :            : 
     113                 :            : };
     114                 :            : 
     115                 :            : static struct rc_map_list imon_mce_map = {
     116                 :            :         .map = {
     117                 :            :                 .scan     = imon_mce,
     118                 :            :                 .size     = ARRAY_SIZE(imon_mce),
     119                 :            :                 /* its RC6, but w/a hardware decoder */
     120                 :            :                 .rc_proto = RC_PROTO_RC6_MCE,
     121                 :            :                 .name     = RC_MAP_IMON_MCE,
     122                 :            :         }
     123                 :            : };
     124                 :            : 
     125                 :        404 : static int __init init_rc_map_imon_mce(void)
     126                 :            : {
     127                 :        404 :         return rc_map_register(&imon_mce_map);
     128                 :            : }
     129                 :            : 
     130                 :          0 : static void __exit exit_rc_map_imon_mce(void)
     131                 :            : {
     132                 :          0 :         rc_map_unregister(&imon_mce_map);
     133                 :          0 : }
     134                 :            : 
     135                 :            : module_init(init_rc_map_imon_mce)
     136                 :            : module_exit(exit_rc_map_imon_mce)
     137                 :            : 
     138                 :            : MODULE_LICENSE("GPL");
     139                 :            : MODULE_AUTHOR("Jarod Wilson <jarod@redhat.com>");

Generated by: LCOV version 1.14