LCOV - code coverage report
Current view: top level - drivers/media/rc/keymaps - rc-imon-pad.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-pad.c - Keytable for SoundGraph iMON PAD and Antec Veris
       3                 :            :  * RM-200 Remote Control
       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                 :            : /*
      12                 :            :  * standard imon remote key table, which isn't really entirely
      13                 :            :  * "standard", as different receivers decode the same key on the
      14                 :            :  * same remote to different hex codes, and the silkscreened names
      15                 :            :  * vary a bit between the SoundGraph and Antec remotes... ugh.
      16                 :            :  */
      17                 :            : static struct rc_map_table imon_pad[] = {
      18                 :            :         /* keys sorted mostly by frequency of use to optimize lookups */
      19                 :            :         { 0x2a8195b7, KEY_REWIND },
      20                 :            :         { 0x298315b7, KEY_REWIND },
      21                 :            :         { 0x2b8115b7, KEY_FASTFORWARD },
      22                 :            :         { 0x2b8315b7, KEY_FASTFORWARD },
      23                 :            :         { 0x2b9115b7, KEY_PREVIOUS },
      24                 :            :         { 0x298195b7, KEY_NEXT },
      25                 :            : 
      26                 :            :         { 0x2a8115b7, KEY_PLAY },
      27                 :            :         { 0x2a8315b7, KEY_PLAY },
      28                 :            :         { 0x2a9115b7, KEY_PAUSE },
      29                 :            :         { 0x2b9715b7, KEY_STOP },
      30                 :            :         { 0x298115b7, KEY_RECORD },
      31                 :            : 
      32                 :            :         { 0x01008000, KEY_UP },
      33                 :            :         { 0x01007f00, KEY_DOWN },
      34                 :            :         { 0x01000080, KEY_LEFT },
      35                 :            :         { 0x0100007f, KEY_RIGHT },
      36                 :            : 
      37                 :            :         { 0x2aa515b7, KEY_UP },
      38                 :            :         { 0x289515b7, KEY_DOWN },
      39                 :            :         { 0x29a515b7, KEY_LEFT },
      40                 :            :         { 0x2ba515b7, KEY_RIGHT },
      41                 :            : 
      42                 :            :         { 0x0200002c, KEY_SPACE }, /* Select/Space */
      43                 :            :         { 0x2a9315b7, KEY_SPACE }, /* Select/Space */
      44                 :            :         { 0x02000028, KEY_ENTER },
      45                 :            :         { 0x28a195b7, KEY_ENTER },
      46                 :            :         { 0x288195b7, KEY_EXIT },
      47                 :            :         { 0x02000029, KEY_ESC },
      48                 :            :         { 0x2bb715b7, KEY_ESC },
      49                 :            :         { 0x0200002a, KEY_BACKSPACE },
      50                 :            :         { 0x28a115b7, KEY_BACKSPACE },
      51                 :            : 
      52                 :            :         { 0x2b9595b7, KEY_MUTE },
      53                 :            :         { 0x28a395b7, KEY_VOLUMEUP },
      54                 :            :         { 0x28a595b7, KEY_VOLUMEDOWN },
      55                 :            :         { 0x289395b7, KEY_CHANNELUP },
      56                 :            :         { 0x288795b7, KEY_CHANNELDOWN },
      57                 :            : 
      58                 :            :         { 0x0200001e, KEY_NUMERIC_1 },
      59                 :            :         { 0x0200001f, KEY_NUMERIC_2 },
      60                 :            :         { 0x02000020, KEY_NUMERIC_3 },
      61                 :            :         { 0x02000021, KEY_NUMERIC_4 },
      62                 :            :         { 0x02000022, KEY_NUMERIC_5 },
      63                 :            :         { 0x02000023, KEY_NUMERIC_6 },
      64                 :            :         { 0x02000024, KEY_NUMERIC_7 },
      65                 :            :         { 0x02000025, KEY_NUMERIC_8 },
      66                 :            :         { 0x02000026, KEY_NUMERIC_9 },
      67                 :            :         { 0x02000027, KEY_NUMERIC_0 },
      68                 :            : 
      69                 :            :         { 0x28b595b7, KEY_NUMERIC_1 },
      70                 :            :         { 0x2bb195b7, KEY_NUMERIC_2 },
      71                 :            :         { 0x28b195b7, KEY_NUMERIC_3 },
      72                 :            :         { 0x2a8595b7, KEY_NUMERIC_4 },
      73                 :            :         { 0x299595b7, KEY_NUMERIC_5 },
      74                 :            :         { 0x2aa595b7, KEY_NUMERIC_6 },
      75                 :            :         { 0x2b9395b7, KEY_NUMERIC_7 },
      76                 :            :         { 0x2a8515b7, KEY_NUMERIC_8 },
      77                 :            :         { 0x2aa115b7, KEY_NUMERIC_9 },
      78                 :            :         { 0x2ba595b7, KEY_NUMERIC_0 },
      79                 :            : 
      80                 :            :         { 0x02200025, KEY_NUMERIC_STAR },
      81                 :            :         { 0x28b515b7, KEY_NUMERIC_STAR },
      82                 :            :         { 0x02200020, KEY_NUMERIC_POUND },
      83                 :            :         { 0x29a115b7, KEY_NUMERIC_POUND },
      84                 :            : 
      85                 :            :         { 0x2b8515b7, KEY_VIDEO },
      86                 :            :         { 0x299195b7, KEY_AUDIO },
      87                 :            :         { 0x2ba115b7, KEY_IMAGES },
      88                 :            :         { 0x28a515b7, KEY_TV },
      89                 :            :         { 0x29a395b7, KEY_DVD },
      90                 :            :         { 0x29a295b7, KEY_DVD },
      91                 :            : 
      92                 :            :         /* the Menu key between DVD and Subtitle on the RM-200... */
      93                 :            :         { 0x2ba385b7, KEY_MENU },
      94                 :            :         { 0x2ba395b7, KEY_MENU },
      95                 :            : 
      96                 :            :         { 0x288515b7, KEY_BOOKMARKS },
      97                 :            :         { 0x2ab715b7, KEY_CAMERA }, /* Thumbnail */
      98                 :            :         { 0x298595b7, KEY_SUBTITLE },
      99                 :            :         { 0x2b8595b7, KEY_LANGUAGE },
     100                 :            : 
     101                 :            :         { 0x29a595b7, KEY_ZOOM },
     102                 :            :         { 0x2aa395b7, KEY_SCREEN }, /* FullScreen */
     103                 :            : 
     104                 :            :         { 0x299115b7, KEY_KEYBOARD },
     105                 :            :         { 0x299135b7, KEY_KEYBOARD },
     106                 :            : 
     107                 :            :         { 0x01010000, BTN_LEFT },
     108                 :            :         { 0x01020000, BTN_RIGHT },
     109                 :            :         { 0x01010080, BTN_LEFT },
     110                 :            :         { 0x01020080, BTN_RIGHT },
     111                 :            :         { 0x688301b7, BTN_LEFT },
     112                 :            :         { 0x688481b7, BTN_RIGHT },
     113                 :            : 
     114                 :            :         { 0x2a9395b7, KEY_CYCLEWINDOWS }, /* TaskSwitcher */
     115                 :            :         { 0x2b8395b7, KEY_TIME }, /* Timer */
     116                 :            : 
     117                 :            :         { 0x289115b7, KEY_POWER },
     118                 :            :         { 0x29b195b7, KEY_EJECTCD }, /* the one next to play */
     119                 :            :         { 0x299395b7, KEY_EJECTCLOSECD }, /* eject (by TaskSw) */
     120                 :            : 
     121                 :            :         { 0x02800000, KEY_CONTEXT_MENU }, /* Left Menu */
     122                 :            :         { 0x2b8195b7, KEY_CONTEXT_MENU }, /* Left Menu*/
     123                 :            :         { 0x02000065, KEY_COMPOSE }, /* RightMenu */
     124                 :            :         { 0x28b715b7, KEY_COMPOSE }, /* RightMenu */
     125                 :            :         { 0x2ab195b7, KEY_MEDIA }, /* Go or MultiMon */
     126                 :            :         { 0x29b715b7, KEY_DASHBOARD }, /* AppLauncher */
     127                 :            : };
     128                 :            : 
     129                 :            : static struct rc_map_list imon_pad_map = {
     130                 :            :         .map = {
     131                 :            :                 .scan     = imon_pad,
     132                 :            :                 .size     = ARRAY_SIZE(imon_pad),
     133                 :            :                 .rc_proto = RC_PROTO_IMON,
     134                 :            :                 .name     = RC_MAP_IMON_PAD,
     135                 :            :         }
     136                 :            : };
     137                 :            : 
     138                 :        404 : static int __init init_rc_map_imon_pad(void)
     139                 :            : {
     140                 :        404 :         return rc_map_register(&imon_pad_map);
     141                 :            : }
     142                 :            : 
     143                 :          0 : static void __exit exit_rc_map_imon_pad(void)
     144                 :            : {
     145                 :          0 :         rc_map_unregister(&imon_pad_map);
     146                 :          0 : }
     147                 :            : 
     148                 :            : module_init(init_rc_map_imon_pad)
     149                 :            : module_exit(exit_rc_map_imon_pad)
     150                 :            : 
     151                 :            : MODULE_LICENSE("GPL");
     152                 :            : MODULE_AUTHOR("Jarod Wilson <jarod@redhat.com>");

Generated by: LCOV version 1.14