Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
drivers
media
rc
keymaps
rc-imon-pad.c
Go to the documentation of this file.
1
/* rc5-imon-pad.c - Keytable for SoundGraph iMON PAD and Antec Veris
2
* RM-200 Remote Control
3
*
4
* Copyright (c) 2010 by Jarod Wilson <
[email protected]
>
5
*
6
* This program is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; either version 2 of the License, or
9
* (at your option) any later version.
10
*/
11
12
#include <
media/rc-map.h
>
13
#include <linux/module.h>
14
15
/*
16
* standard imon remote key table, which isn't really entirely
17
* "standard", as different receivers decode the same key on the
18
* same remote to different hex codes, and the silkscreened names
19
* vary a bit between the SoundGraph and Antec remotes... ugh.
20
*/
21
static
struct
rc_map_table
imon_pad[] = {
22
/* keys sorted mostly by frequency of use to optimize lookups */
23
{ 0x2a8195b7,
KEY_REWIND
},
24
{ 0x298315b7,
KEY_REWIND
},
25
{ 0x2b8115b7,
KEY_FASTFORWARD
},
26
{ 0x2b8315b7,
KEY_FASTFORWARD
},
27
{ 0x2b9115b7,
KEY_PREVIOUS
},
28
{ 0x298195b7,
KEY_NEXT
},
29
30
{ 0x2a8115b7,
KEY_PLAY
},
31
{ 0x2a8315b7,
KEY_PLAY
},
32
{ 0x2a9115b7,
KEY_PAUSE
},
33
{ 0x2b9715b7,
KEY_STOP
},
34
{ 0x298115b7,
KEY_RECORD
},
35
36
{ 0x01008000,
KEY_UP
},
37
{ 0x01007f00,
KEY_DOWN
},
38
{ 0x01000080,
KEY_LEFT
},
39
{ 0x0100007f,
KEY_RIGHT
},
40
41
{ 0x2aa515b7,
KEY_UP
},
42
{ 0x289515b7,
KEY_DOWN
},
43
{ 0x29a515b7,
KEY_LEFT
},
44
{ 0x2ba515b7,
KEY_RIGHT
},
45
46
{ 0x0200002c,
KEY_SPACE
},
/* Select/Space */
47
{ 0x2a9315b7,
KEY_SPACE
},
/* Select/Space */
48
{ 0x02000028,
KEY_ENTER
},
49
{ 0x28a195b7,
KEY_ENTER
},
50
{ 0x288195b7,
KEY_EXIT
},
51
{ 0x02000029,
KEY_ESC
},
52
{ 0x2bb715b7,
KEY_ESC
},
53
{ 0x0200002a,
KEY_BACKSPACE
},
54
{ 0x28a115b7,
KEY_BACKSPACE
},
55
56
{ 0x2b9595b7,
KEY_MUTE
},
57
{ 0x28a395b7,
KEY_VOLUMEUP
},
58
{ 0x28a595b7,
KEY_VOLUMEDOWN
},
59
{ 0x289395b7,
KEY_CHANNELUP
},
60
{ 0x288795b7,
KEY_CHANNELDOWN
},
61
62
{ 0x0200001e,
KEY_NUMERIC_1
},
63
{ 0x0200001f,
KEY_NUMERIC_2
},
64
{ 0x02000020,
KEY_NUMERIC_3
},
65
{ 0x02000021,
KEY_NUMERIC_4
},
66
{ 0x02000022,
KEY_NUMERIC_5
},
67
{ 0x02000023,
KEY_NUMERIC_6
},
68
{ 0x02000024,
KEY_NUMERIC_7
},
69
{ 0x02000025,
KEY_NUMERIC_8
},
70
{ 0x02000026,
KEY_NUMERIC_9
},
71
{ 0x02000027,
KEY_NUMERIC_0
},
72
73
{ 0x28b595b7,
KEY_NUMERIC_1
},
74
{ 0x2bb195b7,
KEY_NUMERIC_2
},
75
{ 0x28b195b7,
KEY_NUMERIC_3
},
76
{ 0x2a8595b7,
KEY_NUMERIC_4
},
77
{ 0x299595b7,
KEY_NUMERIC_5
},
78
{ 0x2aa595b7,
KEY_NUMERIC_6
},
79
{ 0x2b9395b7,
KEY_NUMERIC_7
},
80
{ 0x2a8515b7,
KEY_NUMERIC_8
},
81
{ 0x2aa115b7,
KEY_NUMERIC_9
},
82
{ 0x2ba595b7,
KEY_NUMERIC_0
},
83
84
{ 0x02200025,
KEY_NUMERIC_STAR
},
85
{ 0x28b515b7,
KEY_NUMERIC_STAR
},
86
{ 0x02200020,
KEY_NUMERIC_POUND
},
87
{ 0x29a115b7,
KEY_NUMERIC_POUND
},
88
89
{ 0x2b8515b7,
KEY_VIDEO
},
90
{ 0x299195b7,
KEY_AUDIO
},
91
{ 0x2ba115b7,
KEY_IMAGES
},
92
{ 0x28a515b7,
KEY_TV
},
93
{ 0x29a395b7,
KEY_DVD
},
94
{ 0x29a295b7,
KEY_DVD
},
95
96
/* the Menu key between DVD and Subtitle on the RM-200... */
97
{ 0x2ba385b7,
KEY_MENU
},
98
{ 0x2ba395b7,
KEY_MENU
},
99
100
{ 0x288515b7,
KEY_BOOKMARKS
},
101
{ 0x2ab715b7,
KEY_CAMERA
},
/* Thumbnail */
102
{ 0x298595b7,
KEY_SUBTITLE
},
103
{ 0x2b8595b7,
KEY_LANGUAGE
},
104
105
{ 0x29a595b7,
KEY_ZOOM
},
106
{ 0x2aa395b7,
KEY_SCREEN
},
/* FullScreen */
107
108
{ 0x299115b7,
KEY_KEYBOARD
},
109
{ 0x299135b7,
KEY_KEYBOARD
},
110
111
{ 0x01010000,
BTN_LEFT
},
112
{ 0x01020000,
BTN_RIGHT
},
113
{ 0x01010080,
BTN_LEFT
},
114
{ 0x01020080,
BTN_RIGHT
},
115
{ 0x688301b7,
BTN_LEFT
},
116
{ 0x688481b7,
BTN_RIGHT
},
117
118
{ 0x2a9395b7,
KEY_CYCLEWINDOWS
},
/* TaskSwitcher */
119
{ 0x2b8395b7,
KEY_TIME
},
/* Timer */
120
121
{ 0x289115b7,
KEY_POWER
},
122
{ 0x29b195b7,
KEY_EJECTCD
},
/* the one next to play */
123
{ 0x299395b7,
KEY_EJECTCLOSECD
},
/* eject (by TaskSw) */
124
125
{ 0x02800000,
KEY_CONTEXT_MENU
},
/* Left Menu */
126
{ 0x2b8195b7,
KEY_CONTEXT_MENU
},
/* Left Menu*/
127
{ 0x02000065,
KEY_COMPOSE
},
/* RightMenu */
128
{ 0x28b715b7,
KEY_COMPOSE
},
/* RightMenu */
129
{ 0x2ab195b7,
KEY_MEDIA
},
/* Go or MultiMon */
130
{ 0x29b715b7,
KEY_DASHBOARD
},
/* AppLauncher */
131
};
132
133
static
struct
rc_map_list
imon_pad_map = {
134
.map = {
135
.scan = imon_pad,
136
.size =
ARRAY_SIZE
(imon_pad),
137
/* actual protocol details unknown, hardware decoder */
138
.rc_type =
RC_TYPE_OTHER
,
139
.name =
RC_MAP_IMON_PAD
,
140
}
141
};
142
143
static
int
__init
init_rc_map_imon_pad(
void
)
144
{
145
return
rc_map_register
(&imon_pad_map);
146
}
147
148
static
void
__exit
exit_rc_map_imon_pad(
void
)
149
{
150
rc_map_unregister
(&imon_pad_map);
151
}
152
153
module_init
(init_rc_map_imon_pad)
154
module_exit
(exit_rc_map_imon_pad)
155
156
MODULE_LICENSE
("GPL");
157
MODULE_AUTHOR
("Jarod Wilson <
[email protected]
>");
Generated on Thu Jan 10 2013 13:50:26 for Linux Kernel by
1.8.2