summaryrefslogtreecommitdiff
path: root/apps/plugins/lib
diff options
context:
space:
mode:
authorThomas Martitz <kugel@rockbox.org>2010-05-20 17:41:28 +0000
committerThomas Martitz <kugel@rockbox.org>2010-05-20 17:41:28 +0000
commit20e9d56ba5507021bdde898f4b0a0eb14f2af861 (patch)
tree20a1ff36d0cc0f530bc7c7648b1bca2f9127a5c8 /apps/plugins/lib
parent97365803d390e44155fc41657bd03a7b121956aa (diff)
downloadrockbox-20e9d56ba5507021bdde898f4b0a0eb14f2af861.tar.gz
rockbox-20e9d56ba5507021bdde898f4b0a0eb14f2af861.zip
S#10387 - Rework pluginlib actions
It changes pluginlib actions to contain only a single and simple context (and other one for remote directional buttons), consisting of 7(9) buttons: up/down/left/right, select OR short select and long select, exit and cancel (plus 2 for scrollwheel targets). This ensures contexts don't clash with other contexts and simplifies them, at the expense of reduced versatility. However, the versatility made it largely unusable due to the great number of targets. This should allow for using pluginlib actions safely for the most simple plugins (e.g. almost all demos). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26202 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/lib')
-rw-r--r--apps/plugins/lib/pluginlib_actions.c749
-rw-r--r--apps/plugins/lib/pluginlib_actions.h27
2 files changed, 240 insertions, 536 deletions
diff --git a/apps/plugins/lib/pluginlib_actions.c b/apps/plugins/lib/pluginlib_actions.c
index 29c9430f64..b68c390aae 100644
--- a/apps/plugins/lib/pluginlib_actions.c
+++ b/apps/plugins/lib/pluginlib_actions.c
@@ -25,7 +25,8 @@
25#include "pluginlib_actions.h" 25#include "pluginlib_actions.h"
26 26
27#if defined(HAVE_REMOTE_LCD) 27#if defined(HAVE_REMOTE_LCD)
28const struct button_mapping remote_directions[] = 28/* remote directions */
29const struct button_mapping pla_remote_ctx[] =
29{ 30{
30#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ 31#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
31 (CONFIG_KEYPAD == IRIVER_H300_PAD) 32 (CONFIG_KEYPAD == IRIVER_H300_PAD)
@@ -68,35 +69,34 @@ const struct button_mapping remote_directions[] =
68 { PLA_DOWN_REPEAT, BUTTON_RC_DOWN|BUTTON_REPEAT, BUTTON_NONE}, 69 { PLA_DOWN_REPEAT, BUTTON_RC_DOWN|BUTTON_REPEAT, BUTTON_NONE},
69 { PLA_LEFT_REPEAT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE}, 70 { PLA_LEFT_REPEAT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE},
70 { PLA_RIGHT_REPEAT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE}, 71 { PLA_RIGHT_REPEAT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE},
71#elif (CONFIG_KEYPAD == SAMSUNG_YH_PAD)
72 { PLA_UP, BUTTON_UP, BUTTON_NONE},
73 { PLA_DOWN, BUTTON_DOWN, BUTTON_NONE},
74 { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE},
75 { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE},
76 { PLA_UP_REPEAT, BUTTON_UP|BUTTON_REW, BUTTON_NONE},
77 { PLA_DOWN_REPEAT, BUTTON_DOWN|BUTTON_REW, BUTTON_NONE},
78 { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REW, BUTTON_NONE},
79 { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REW, BUTTON_NONE},
80#else 72#else
81 #error pluginlib_actions: Unsupported remote keypad 73 #error pluginlib_actions: No remote directions
82#endif 74#endif
83 {CONTEXT_PLUGIN,BUTTON_NONE,BUTTON_NONE} 75 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_PLUGIN),
84}; 76};
85#endif /* HAVE_REMOTE_LCD */ 77#endif /* HAVE_REMOTE_LCD */
86 78
87const struct button_mapping generic_directions[] = 79/* these were taken from the bubbles plugin, so may need tweaking */
80const struct button_mapping pla_main_ctx[] =
88{ 81{
82 /* Touchscreens */
89#ifdef HAVE_TOUCHSCREEN 83#ifdef HAVE_TOUCHSCREEN
90 { PLA_UP, BUTTON_TOPMIDDLE, BUTTON_NONE}, 84 { PLA_CANCEL, BUTTON_BOTTOMRIGHT, BUTTON_NONE},
91 { PLA_DOWN, BUTTON_BOTTOMMIDDLE, BUTTON_NONE}, 85 { PLA_SELECT, BUTTON_CENTER, BUTTON_NONE},
92 { PLA_LEFT, BUTTON_MIDLEFT, BUTTON_NONE}, 86 { PLA_SELECT_REL, BUTTON_CENTER|BUTTON_REL, BUTTON_NONE},
93 { PLA_RIGHT, BUTTON_MIDRIGHT, BUTTON_NONE}, 87 { PLA_SELECT_REPEAT, BUTTON_CENTER|BUTTON_REPEAT, BUTTON_NONE},
94 { PLA_UP_REPEAT, BUTTON_TOPMIDDLE|BUTTON_REPEAT, BUTTON_NONE}, 88 { PLA_UP, BUTTON_TOPMIDDLE, BUTTON_NONE},
95 { PLA_DOWN_REPEAT, BUTTON_BOTTOMMIDDLE|BUTTON_REPEAT, BUTTON_NONE}, 89 { PLA_DOWN, BUTTON_BOTTOMMIDDLE, BUTTON_NONE},
96 { PLA_LEFT_REPEAT, BUTTON_MIDLEFT|BUTTON_REPEAT, BUTTON_NONE}, 90 { PLA_LEFT, BUTTON_MIDLEFT, BUTTON_NONE},
97 { PLA_RIGHT_REPEAT, BUTTON_MIDRIGHT|BUTTON_REPEAT, BUTTON_NONE}, 91 { PLA_RIGHT, BUTTON_MIDRIGHT, BUTTON_NONE},
92 { PLA_UP_REPEAT, BUTTON_TOPMIDDLE|BUTTON_REPEAT, BUTTON_NONE},
93 { PLA_DOWN_REPEAT, BUTTON_BOTTOMMIDDLE|BUTTON_REPEAT, BUTTON_NONE},
94 { PLA_LEFT_REPEAT, BUTTON_MIDLEFT|BUTTON_REPEAT, BUTTON_NONE},
95 { PLA_RIGHT_REPEAT, BUTTON_MIDRIGHT|BUTTON_REPEAT, BUTTON_NONE},
98#endif 96#endif
99#if (CONFIG_KEYPAD == IRIVER_H100_PAD) \ 97
98 /* Directions */
99#if ((CONFIG_KEYPAD == IRIVER_H100_PAD) \
100 || (CONFIG_KEYPAD == IRIVER_H300_PAD) \ 100 || (CONFIG_KEYPAD == IRIVER_H300_PAD) \
101 || (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) \ 101 || (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) \
102 || (CONFIG_KEYPAD == GIGABEAT_PAD) \ 102 || (CONFIG_KEYPAD == GIGABEAT_PAD) \
@@ -110,86 +110,67 @@ const struct button_mapping generic_directions[] =
110 || (CONFIG_KEYPAD == PHILIPS_HDD1630_PAD) \ 110 || (CONFIG_KEYPAD == PHILIPS_HDD1630_PAD) \
111 || (CONFIG_KEYPAD == SANSA_CLIP_PAD) \ 111 || (CONFIG_KEYPAD == SANSA_CLIP_PAD) \
112 || (CONFIG_KEYPAD == CREATIVEZVM_PAD) \ 112 || (CONFIG_KEYPAD == CREATIVEZVM_PAD) \
113 || (CONFIG_KEYPAD == SANSA_M200_PAD) 113 || (CONFIG_KEYPAD == SANSA_M200_PAD)\
114 { PLA_UP, BUTTON_UP, BUTTON_NONE}, 114 || (CONFIG_KEYPAD == SANSA_E200_PAD) \
115 { PLA_DOWN, BUTTON_DOWN, BUTTON_NONE}, 115 || (CONFIG_KEYPAD == SANSA_FUZE_PAD) \
116 { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE}, 116 || (CONFIG_KEYPAD == SAMSUNG_YH_PAD))
117 { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE}, 117 { PLA_UP, BUTTON_UP, BUTTON_NONE },
118 { PLA_UP_REPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE}, 118 { PLA_DOWN, BUTTON_DOWN, BUTTON_NONE },
119 { PLA_DOWN_REPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE}, 119 { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE },
120 { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE}, 120 { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
121 { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE}, 121 { PLA_UP_REPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
122 { PLA_DOWN_REPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
123 { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
124 { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
125 /* now the bad ones that don't have standard names for the directional
126 * buttons */
122#elif (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ 127#elif (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
123 || (CONFIG_KEYPAD == IPOD_3G_PAD) \ 128 || (CONFIG_KEYPAD == IPOD_3G_PAD) \
124 || (CONFIG_KEYPAD == IPOD_4G_PAD) \ 129 || (CONFIG_KEYPAD == IPOD_4G_PAD)
125 || (CONFIG_KEYPAD == SANSA_E200_PAD) \ 130 { PLA_UP, BUTTON_MENU, BUTTON_NONE },
126 || (CONFIG_KEYPAD == SANSA_FUZE_PAD) 131 ( PLA_DOWN, BUTTON_PLAY, BUTTON_NONE },
127 { PLA_UP, BUTTON_SCROLL_BACK, BUTTON_NONE}, 132 { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE },
128 { PLA_DOWN, BUTTON_SCROLL_FWD, BUTTON_NONE}, 133 { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
129 { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE}, 134 { PLA_UP_REPEAT, BUTTON_MENU|BUTTON_REPEAT, BUTTON_NONE },
130 { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE}, 135 { PLA_DOWN_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE },
131 { PLA_UP_REPEAT, BUTTON_SCROLL_BACK|BUTTON_REPEAT, BUTTON_NONE}, 136 { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
132 { PLA_DOWN_REPEAT, BUTTON_SCROLL_FWD|BUTTON_REPEAT, BUTTON_NONE}, 137 { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
133 { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE}, 138#elif (CONFIG_KEYPAD == PLAYER_PAD)
134 { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE}, 139 { PLA_UP, BUTTON_PLAY, BUTTON_NONE },
135#elif CONFIG_KEYPAD == PLAYER_PAD 140 { PLA_DOWN, BUTTON_STOP, BUTTON_NONE },
136 {PLA_UP, BUTTON_STOP, BUTTON_NONE}, 141 { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE },
137 {PLA_DOWN, BUTTON_PLAY, BUTTON_NONE}, 142 { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
138 {PLA_LEFT, BUTTON_LEFT, BUTTON_NONE}, 143 { PLA_UP_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE },
139 {PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE}, 144 { PLA_DOWN_REPEAT, BUTTON_STOP|BUTTON_REPEAT, BUTTON_NONE },
140 {PLA_UP_REPEAT, BUTTON_STOP|BUTTON_REPEAT, BUTTON_NONE}, 145 { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
141 {PLA_DOWN_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE}, 146 { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
142 {PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE},
143 {PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
144#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 147#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
145 { PLA_UP, BUTTON_SCROLL_UP, BUTTON_NONE}, 148 { PLA_UP, BUTTON_SCROLL_UP, BUTTON_NONE },
146 { PLA_DOWN, BUTTON_SCROLL_DOWN, BUTTON_NONE}, 149 { PLA_DOWN, BUTTON_SCROLL_DOWN, BUTTON_NONE },
147 { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE}, 150 { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE },
148 { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE}, 151 { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
149 { PLA_UP_REPEAT, BUTTON_SCROLL_UP|BUTTON_REPEAT, BUTTON_NONE}, 152 { PLA_UP_REPEAT, BUTTON_SCROLL_UP|BUTTON_REPEAT, BUTTON_NONE },
150 { PLA_DOWN_REPEAT, BUTTON_SCROLL_DOWN|BUTTON_REPEAT, BUTTON_NONE}, 153 { PLA_DOWN_REPEAT, BUTTON_SCROLL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
151 { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE}, 154 { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
152 { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE}, 155 { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
153#elif (CONFIG_KEYPAD == MROBE500_PAD)
154#elif (CONFIG_KEYPAD == COWON_D2_PAD)
155#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
156 { PLA_UP, BUTTON_RC_VOL_UP, BUTTON_NONE},
157 { PLA_DOWN, BUTTON_RC_VOL_DOWN, BUTTON_NONE},
158 { PLA_LEFT, BUTTON_RC_REW, BUTTON_NONE},
159 { PLA_RIGHT, BUTTON_RC_FF, BUTTON_NONE},
160 { PLA_UP_REPEAT, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE},
161 { PLA_DOWN_REPEAT, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE},
162 { PLA_LEFT_REPEAT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE},
163 { PLA_RIGHT_REPEAT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE},
164#elif (CONFIG_KEYPAD == IAUDIO67_PAD)
165 { PLA_UP, BUTTON_STOP, BUTTON_NONE},
166 { PLA_DOWN, BUTTON_PLAY, BUTTON_NONE},
167 { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE},
168 { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE},
169 { PLA_UP_REPEAT, BUTTON_STOP|BUTTON_REPEAT, BUTTON_NONE},
170 { PLA_DOWN_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE},
171 { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE},
172 { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
173#elif (CONFIG_KEYPAD == PHILIPS_SA9200_PAD) 156#elif (CONFIG_KEYPAD == PHILIPS_SA9200_PAD)
174 { PLA_UP, BUTTON_UP, BUTTON_NONE}, 157 { PLA_UP, BUTTON_UP, BUTTON_NONE },
175 { PLA_DOWN, BUTTON_DOWN, BUTTON_NONE}, 158 { PLA_DOWN, BUTTON_DOWN, BUTTON_NONE },
176 { PLA_LEFT, BUTTON_PREV, BUTTON_NONE}, 159 { PLA_LEFT, BUTTON_PREV, BUTTON_NONE },
177 { PLA_RIGHT, BUTTON_NEXT, BUTTON_NONE}, 160 { PLA_RIGHT, BUTTON_NEXT, BUTTON_NONE },
178 { PLA_UP_REPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE}, 161 { PLA_UP_REPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
179 { PLA_DOWN_REPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE}, 162 { PLA_DOWN_REPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
180 { PLA_LEFT_REPEAT, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE}, 163 { PLA_LEFT_REPEAT, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE },
181 { PLA_RIGHT_REPEAT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE}, 164 { PLA_RIGHT_REPEAT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE },
182#elif (CONFIG_KEYPAD == ONDAVX747_PAD) /* Touchscreen target */ 165#elif (CONFIG_KEYPAD == IAUDIO67_PAD)
183#elif (CONFIG_KEYPAD == ONDAVX777_PAD) /* Touchscreen target */ 166 { PLA_UP, BUTTON_STOP, BUTTON_NONE },
184#elif (CONFIG_KEYPAD == SAMSUNG_YH_PAD) 167 { PLA_DOWN, BUTTON_PLAY, BUTTON_NONE },
185 { PLA_UP, BUTTON_UP, BUTTON_NONE}, 168 { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE },
186 { PLA_DOWN, BUTTON_DOWN, BUTTON_NONE}, 169 { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
187 { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE}, 170 { PLA_UP_REPEAT, BUTTON_STOP|BUTTON_REPEAT, BUTTON_NONE },
188 { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE}, 171 { PLA_DOWN_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE },
189 { PLA_UP_REPEAT, BUTTON_UP|BUTTON_REW, BUTTON_NONE}, 172 { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
190 { PLA_DOWN_REPEAT, BUTTON_DOWN|BUTTON_REW, BUTTON_NONE}, 173 { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
191 { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REW, BUTTON_NONE},
192 { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REW, BUTTON_NONE},
193#elif (CONFIG_KEYPAD == PBELL_VIBE500_PAD) 174#elif (CONFIG_KEYPAD == PBELL_VIBE500_PAD)
194 { PLA_UP, BUTTON_UP, BUTTON_NONE}, 175 { PLA_UP, BUTTON_UP, BUTTON_NONE},
195 { PLA_DOWN, BUTTON_DOWN, BUTTON_NONE}, 176 { PLA_DOWN, BUTTON_DOWN, BUTTON_NONE},
@@ -210,448 +191,172 @@ const struct button_mapping generic_directions[] =
210 { PLA_RIGHT_REPEAT, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE}, 191 { PLA_RIGHT_REPEAT, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE},
211 192
212#else 193#else
213 #error pluginlib_actions: Unsupported keypad 194#ifndef HAVE_TOUCHSCREEN
195 #error pluginlib_actions: No directions defined
214#endif 196#endif
215 {CONTEXT_PLUGIN,BUTTON_NONE,BUTTON_NONE}
216};
217
218const struct button_mapping generic_left_right_fire[] =
219{
220#ifdef HAVE_TOUCHSCREEN
221 { PLA_LEFT, BUTTON_MIDLEFT, BUTTON_NONE},
222 { PLA_LEFT_REPEAT, BUTTON_MIDLEFT|BUTTON_REPEAT, BUTTON_NONE},
223 { PLA_RIGHT, BUTTON_MIDRIGHT, BUTTON_NONE},
224 { PLA_RIGHT_REPEAT, BUTTON_MIDRIGHT|BUTTON_REPEAT, BUTTON_NONE},
225 { PLA_FIRE, BUTTON_CENTER, BUTTON_NONE},
226 { PLA_FIRE_REPEAT, BUTTON_CENTER|BUTTON_REPEAT, BUTTON_NONE},
227#endif 197#endif
228#if (CONFIG_KEYPAD == IRIVER_H100_PAD) \
229 || (CONFIG_KEYPAD == IRIVER_H300_PAD) \
230 || (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) \
231 || (CONFIG_KEYPAD == GIGABEAT_PAD) \
232 || (CONFIG_KEYPAD == IRIVER_IFP7XX_PAD) \
233 || (CONFIG_KEYPAD == GIGABEAT_S_PAD) \
234 || (CONFIG_KEYPAD == MROBE100_PAD) \
235 || (CONFIG_KEYPAD == PHILIPS_HDD1630_PAD) \
236 || (CONFIG_KEYPAD == SANSA_CLIP_PAD) \
237 || (CONFIG_KEYPAD == SANSA_M200_PAD)
238 { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE},
239 { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE},
240 { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE},
241 { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
242 { PLA_FIRE, BUTTON_SELECT, BUTTON_NONE},
243 { PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT,BUTTON_NONE},
244#elif (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
245 || (CONFIG_KEYPAD == IPOD_3G_PAD) \
246 || (CONFIG_KEYPAD == IPOD_4G_PAD)
247 { PLA_LEFT, BUTTON_SCROLL_BACK, BUTTON_NONE},
248 { PLA_RIGHT, BUTTON_SCROLL_FWD, BUTTON_NONE},
249 { PLA_LEFT_REPEAT, BUTTON_SCROLL_BACK|BUTTON_REPEAT, BUTTON_NONE},
250 { PLA_RIGHT_REPEAT, BUTTON_SCROLL_FWD|BUTTON_REPEAT, BUTTON_NONE},
251 { PLA_FIRE, BUTTON_SELECT, BUTTON_NONE},
252 { PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT,BUTTON_NONE},
253#elif CONFIG_KEYPAD == ONDIO_PAD
254 { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE},
255 { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE},
256 { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE},
257 { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
258 { PLA_FIRE, BUTTON_UP, BUTTON_NONE},
259 { PLA_FIRE_REPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE},
260#elif CONFIG_KEYPAD == PLAYER_PAD
261 { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE},
262 { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE},
263 { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE},
264 { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
265 { PLA_FIRE, BUTTON_ON, BUTTON_NONE},
266 { PLA_FIRE_REPEAT, BUTTON_ON|BUTTON_REPEAT, BUTTON_NONE},
267#elif CONFIG_KEYPAD == RECORDER_PAD
268 { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE},
269 { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE},
270 { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE},
271 { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
272 { PLA_FIRE, BUTTON_PLAY, BUTTON_NONE},
273 { PLA_FIRE_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE},
274#elif (CONFIG_KEYPAD == SANSA_C200_PAD) \
275 || (CONFIG_KEYPAD == ARCHOS_AV300_PAD)
276 { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE},
277 { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE},
278 { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE},
279 { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
280 { PLA_FIRE, BUTTON_SELECT, BUTTON_NONE},
281 { PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT,BUTTON_NONE},
282#elif (CONFIG_KEYPAD == SANSA_E200_PAD) \
283 || (CONFIG_KEYPAD == SANSA_FUZE_PAD)
284 { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE},
285 { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE},
286 { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE},
287 { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
288 { PLA_FIRE, BUTTON_SELECT, BUTTON_NONE},
289 { PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT,BUTTON_NONE},
290#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
291 { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE},
292 { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE},
293 { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE},
294 { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
295 { PLA_FIRE, BUTTON_REW, BUTTON_NONE},
296 { PLA_FIRE_REPEAT, BUTTON_REW|BUTTON_REPEAT, BUTTON_NONE},
297#elif (CONFIG_KEYPAD == MROBE500_PAD)
298 { PLA_LEFT, BUTTON_RC_REW, BUTTON_NONE},
299 { PLA_RIGHT, BUTTON_RC_FF, BUTTON_NONE},
300 { PLA_LEFT_REPEAT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE},
301 { PLA_RIGHT_REPEAT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE},
302 { PLA_FIRE, BUTTON_RC_HEART, BUTTON_NONE},
303 { PLA_FIRE_REPEAT, BUTTON_RC_HEART|BUTTON_REPEAT, BUTTON_NONE},
304#elif (CONFIG_KEYPAD == COWON_D2_PAD)
305 { PLA_LEFT, BUTTON_MINUS, BUTTON_NONE},
306 { PLA_LEFT_REPEAT, BUTTON_MINUS|BUTTON_REPEAT, BUTTON_NONE},
307 { PLA_RIGHT, BUTTON_PLUS, BUTTON_NONE},
308 { PLA_RIGHT_REPEAT, BUTTON_PLUS|BUTTON_REPEAT, BUTTON_NONE},
309 { PLA_FIRE, BUTTON_MENU, BUTTON_NONE},
310 { PLA_FIRE_REPEAT, BUTTON_MENU|BUTTON_REPEAT, BUTTON_NONE},
311#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
312 { PLA_LEFT, BUTTON_RC_REW, BUTTON_NONE},
313 { PLA_RIGHT, BUTTON_RC_FF, BUTTON_NONE},
314 { PLA_LEFT_REPEAT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE},
315 { PLA_RIGHT_REPEAT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE},
316 { PLA_FIRE, BUTTON_RC_MODE, BUTTON_NONE},
317 { PLA_FIRE_REPEAT, BUTTON_RC_MODE|BUTTON_REPEAT, BUTTON_NONE},
318#elif (CONFIG_KEYPAD == IAUDIO67_PAD)
319 { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE},
320 { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE},
321 { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE},
322 { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
323 { PLA_FIRE, BUTTON_MENU, BUTTON_NONE},
324 { PLA_FIRE_REPEAT, BUTTON_MENU|BUTTON_REPEAT, BUTTON_NONE},
325#elif (CONFIG_KEYPAD == CREATIVEZVM_PAD)
326 { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE},
327 { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE},
328 { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE},
329 { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
330 { PLA_FIRE, BUTTON_SELECT, BUTTON_NONE},
331 { PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE},
332#elif (CONFIG_KEYPAD == PHILIPS_SA9200_PAD)
333 { PLA_LEFT, BUTTON_PREV, BUTTON_NONE},
334 { PLA_RIGHT, BUTTON_NEXT, BUTTON_NONE},
335 { PLA_LEFT_REPEAT, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE},
336 { PLA_RIGHT_REPEAT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE},
337 { PLA_FIRE, BUTTON_PLAY, BUTTON_NONE},
338 { PLA_FIRE_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE},
339#elif (CONFIG_KEYPAD == ONDAVX747_PAD) /* Touchscreen target */
340#elif (CONFIG_KEYPAD == ONDAVX777_PAD) /* Touchscreen target */
341#elif (CONFIG_KEYPAD == SAMSUNG_YH_PAD)
342 { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE},
343 { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE},
344 { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REW, BUTTON_NONE},
345 { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REW, BUTTON_NONE},
346 { PLA_FIRE, BUTTON_UP, BUTTON_NONE},
347 { PLA_FIRE_REPEAT, BUTTON_UP|BUTTON_REW, BUTTON_NONE},
348#elif (CONFIG_KEYPAD == PBELL_VIBE500_PAD)
349 { PLA_LEFT, BUTTON_PREV, BUTTON_NONE},
350 { PLA_RIGHT, BUTTON_NEXT, BUTTON_NONE},
351 { PLA_LEFT_REPEAT, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE},
352 { PLA_RIGHT_REPEAT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE},
353 { PLA_FIRE, BUTTON_OK, BUTTON_NONE},
354 { PLA_FIRE_REPEAT, BUTTON_OK|BUTTON_REPEAT, BUTTON_NONE},
355#elif (CONFIG_KEYPAD == MPIO_HD200_PAD)
356 { PLA_LEFT, BUTTON_VOL_DOWN, BUTTON_NONE},
357 { PLA_RIGHT, BUTTON_VOL_UP, BUTTON_NONE},
358 { PLA_LEFT_REPEAT, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE},
359 { PLA_RIGHT_REPEAT, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE},
360 { PLA_FIRE, BUTTON_SELECT, BUTTON_NONE},
361 { PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE},
362 198
363 199 /* Scrollwheels */
364#else 200#ifdef HAVE_SCROLLWHEEL
365 #error pluginlib_actions: Unsupported keypad 201 { PLA_SCROLL_BACK, BUTTON_SCROLL_BACK, BUTTON_NONE },
202 { PLA_SCROLL_FWD, BUTTON_SCROLL_FWD, BUTTON_NONE },
203 { PLA_SCROLL_BACK_REPEAT,BUTTON_SCROLL_BACK|BUTTON_REPEAT, BUTTON_NONE },
204 { PLA_SCROLL_FWD_REPEAT, BUTTON_SCROLL_FWD|BUTTON_REPEAT, BUTTON_NONE },
366#endif 205#endif
367 {CONTEXT_PLUGIN,BUTTON_NONE,BUTTON_NONE}
368};
369 206
370/* these were taken from the bubbles plugin, so may need tweaking */ 207 /* Actions */
371const struct button_mapping generic_actions[] =
372{
373#ifdef HAVE_TOUCHSCREEN
374 {PLA_QUIT, BUTTON_BOTTOMRIGHT, BUTTON_NONE},
375 {PLA_START, BUTTON_CENTER, BUTTON_NONE},
376 {PLA_MENU, BUTTON_TOPLEFT, BUTTON_NONE},
377 {PLA_FIRE, BUTTON_BOTTOMMIDDLE, BUTTON_NONE},
378 {PLA_FIRE_REPEAT, BUTTON_BOTTOMMIDDLE|BUTTON_REPEAT, BUTTON_NONE},
379#endif
380#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD) 208#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD)
381 {PLA_QUIT, BUTTON_OFF, BUTTON_NONE}, 209 {PLA_CANCEL, BUTTON_OFF, BUTTON_NONE },
382 {PLA_QUIT, BUTTON_RC_STOP, BUTTON_NONE}, 210 {PLA_CANCEL, BUTTON_RC_STOP, BUTTON_NONE },
383 {PLA_START, BUTTON_ON, BUTTON_NONE}, 211 {PLA_EXIT, BUTTON_ON, BUTTON_NONE },
384 {PLA_START, BUTTON_RC_ON, BUTTON_NONE}, 212 {PLA_SELECT, BUTTON_SELECT, BUTTON_NONE },
385 {PLA_MENU, BUTTON_MODE, BUTTON_NONE}, 213 {PLA_SELECT, BUTTON_RC_ON, BUTTON_NONE },
386 {PLA_FIRE, BUTTON_SELECT, BUTTON_NONE}, 214 {PLA_SELECT_REL, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT },
387 {PLA_FIRE, BUTTON_RC_MENU, BUTTON_NONE}, 215 {PLA_SELECT_REL, BUTTON_RC_ON|BUTTON_REL, BUTTON_RC_ON },
388 {PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE}, 216 {PLA_SELECT_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE },
389 {PLA_FIRE_REPEAT, BUTTON_RC_MENU|BUTTON_REPEAT, BUTTON_NONE}, 217 {PLA_SELECT_REPEAT, BUTTON_RC_ON|BUTTON_REPEAT, BUTTON_NONE },
390#elif (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ 218#elif (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
391 || (CONFIG_KEYPAD == IPOD_3G_PAD) \ 219 || (CONFIG_KEYPAD == IPOD_3G_PAD) \
392 || (CONFIG_KEYPAD == IPOD_4G_PAD) 220 || (CONFIG_KEYPAD == IPOD_4G_PAD)
393 {PLA_QUIT, BUTTON_MENU|BUTTON_SELECT, BUTTON_NONE}, 221 {PLA_CANCEL, BUTTON_MENU|BUTTON_SELECT, BUTTON_NONE },
394 {PLA_START, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY}, 222 {PLA_EXIT, BUTTON_PLAY|BUTTON_SELECT, BUTTON_NONE },
395 {PLA_MENU, BUTTON_MENU|BUTTON_REL, BUTTON_NONE}, 223 {PLA_SELECT, BUTTON_SELECT, BUTTON_NONE },
396 {PLA_FIRE, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT}, 224 {PLA_SELECT_REL, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT },
397 {PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE}, 225 {PLA_SELECT_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE },
398#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD 226#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD)
399 {PLA_QUIT, BUTTON_POWER, BUTTON_NONE}, 227 {PLA_CANCEL, BUTTON_POWER, BUTTON_NONE },
400 {PLA_START, BUTTON_PLAY, BUTTON_NONE}, 228 {PLA_EXIT, BUTTON_PLAY|BUTTON_SELECT, BUTTON_NONE },
401 {PLA_START, BUTTON_RC_PLAY, BUTTON_NONE}, 229 {PLA_SELECT, BUTTON_SELECT, BUTTON_NONE },
402 {PLA_MENU, BUTTON_REC, BUTTON_NONE}, 230 {PLA_SELECT, BUTTON_RC_MODE, BUTTON_NONE },
403 {PLA_MENU, BUTTON_RC_MENU, BUTTON_NONE}, 231 {PLA_SELECT_REL, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT },
404 {PLA_FIRE, BUTTON_SELECT, BUTTON_NONE}, 232 {PLA_SELECT_REL, BUTTON_RC_MODE|BUTTON_REL, BUTTON_RC_MODE },
405 {PLA_FIRE, BUTTON_RC_MODE, BUTTON_NONE}, 233 {PLA_SELECT_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE },
406 {PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE}, 234 {PLA_SELECT_REPEAT, BUTTON_RC_MODE|BUTTON_REPEAT, BUTTON_NONE },
407 {PLA_FIRE_REPEAT, BUTTON_RC_MODE|BUTTON_REPEAT, BUTTON_NONE}, 235#elif (CONFIG_KEYPAD == GIGABEAT_PAD \
408#elif CONFIG_KEYPAD == GIGABEAT_PAD 236 || CONFIG_KEYPAD == SANSA_E200_PAD \
409 {PLA_QUIT, BUTTON_POWER, BUTTON_NONE}, 237 || CONFIG_KEYPAD == SANSA_C200_PAD \
410 {PLA_START, BUTTON_A, BUTTON_NONE}, 238 || CONFIG_KEYPAD == SANSA_CLIP_PAD \
411 {PLA_MENU, BUTTON_MENU, BUTTON_NONE}, 239 || CONFIG_KEYPAD == SANSA_M200_PAD \
412 {PLA_FIRE, BUTTON_SELECT, BUTTON_NONE}, 240 || CONFIG_KEYPAD == MROBE100_PAD \
413 {PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE}, 241 || CONFIG_KEYPAD == PHILIPS_SA9200_PAD \
414#elif CONFIG_KEYPAD == GIGABEAT_S_PAD 242 || CONFIG_KEYPAD == PHILIPS_HDD1630_PAD)
415 {PLA_QUIT, BUTTON_BACK, BUTTON_NONE}, 243 {PLA_CANCEL, BUTTON_POWER|BUTTON_REL, BUTTON_POWER},
416 {PLA_START, BUTTON_PLAY, BUTTON_NONE}, 244 {PLA_EXIT, BUTTON_POWER|BUTTON_REPEAT, BUTTON_NONE},
417 {PLA_MENU, BUTTON_MENU, BUTTON_NONE}, 245 {PLA_SELECT, BUTTON_SELECT, BUTTON_NONE},
418 {PLA_FIRE, BUTTON_SELECT, BUTTON_NONE}, 246 {PLA_SELECT_REL, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT},
419 {PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE}, 247 {PLA_SELECT_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE},
420#elif CONFIG_KEYPAD == RECORDER_PAD 248#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD)
421 {PLA_QUIT, BUTTON_OFF, BUTTON_NONE}, 249 {PLA_CANCEL, BUTTON_BACK, BUTTON_NONE},
422 {PLA_START, BUTTON_ON, BUTTON_NONE}, 250 {PLA_EXIT, BUTTON_MENU, BUTTON_NONE},
423 {PLA_MENU, BUTTON_F1, BUTTON_NONE}, 251 {PLA_SELECT, BUTTON_SELECT, BUTTON_NONE},
424 {PLA_FIRE, BUTTON_PLAY, BUTTON_NONE}, 252 {PLA_SELECT_REL, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT},
425 {PLA_FIRE_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE}, 253 {PLA_SELECT_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE},
426#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD 254#elif (CONFIG_KEYPAD == RECORDER_PAD)
427 {PLA_QUIT, BUTTON_OFF, BUTTON_NONE}, 255 {PLA_CANCEL, BUTTON_ON, BUTTON_NONE},
428 {PLA_START, BUTTON_ON, BUTTON_NONE}, 256 {PLA_EXIT, BUTTON_OFF, BUTTON_NONE},
429 {PLA_MENU, BUTTON_F1, BUTTON_NONE}, 257 {PLA_SELECT, BUTTON_PLAY, BUTTON_NONE},
430 {PLA_FIRE, BUTTON_SELECT, BUTTON_NONE}, 258 {PLA_SELECT_REL, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY},
431 {PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE}, 259 {PLA_SELECT_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE},
432#elif CONFIG_KEYPAD == ONDIO_PAD 260#elif (CONFIG_KEYPAD == ARCHOS_AV300_PAD)
433 {PLA_QUIT, BUTTON_OFF, BUTTON_NONE}, 261 {PLA_CANCEL, BUTTON_OFF|BUTTON_REL, BUTTON_OFF},
434 {PLA_START, BUTTON_MENU, BUTTON_NONE}, 262 {PLA_EXIT, BUTTON_OFF|BUTTON_REPEAT, BUTTON_NONE},
435 {PLA_MENU, BUTTON_DOWN, BUTTON_NONE}, 263 {PLA_SELECT, BUTTON_SELECT, BUTTON_NONE},
436 {PLA_FIRE, BUTTON_UP, BUTTON_NONE}, 264 {PLA_SELECT_REL, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT},
437 {PLA_FIRE_REPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE}, 265 {PLA_SELECT_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE},
438#elif CONFIG_KEYPAD == PLAYER_PAD 266#elif (CONFIG_KEYPAD == ONDIO_PAD)
439 {PLA_QUIT, BUTTON_STOP|BUTTON_REPEAT, BUTTON_NONE}, 267 {PLA_CANCEL, BUTTON_OFF|BUTTON_REL, BUTTON_OFF},
440 {PLA_START, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE}, 268 {PLA_EXIT, BUTTON_OFF|BUTTON_REPEAT, BUTTON_NONE},
441 {PLA_MENU, BUTTON_MENU, BUTTON_NONE}, 269 {PLA_SELECT, BUTTON_MENU, BUTTON_NONE},
442 {PLA_FIRE, BUTTON_ON, BUTTON_NONE}, 270 {PLA_SELECT_REL, BUTTON_MENU|BUTTON_REL, BUTTON_MENU},
443 {PLA_FIRE_REPEAT, BUTTON_ON|BUTTON_REPEAT, BUTTON_NONE}, 271 {PLA_SELECT_REPEAT, BUTTON_MENU|BUTTON_REPEAT, BUTTON_NONE},
444#elif CONFIG_KEYPAD == SANSA_E200_PAD || \ 272#elif (CONFIG_KEYPAD == PLAYER_PAD)
445 CONFIG_KEYPAD == SANSA_C200_PAD || \ 273 {PLA_CANCEL, BUTTON_MENU|BUTTON_REL, BUTTON_MENU},
446 CONFIG_KEYPAD == SANSA_CLIP_PAD || \ 274 {PLA_EXIT, BUTTON_MENU|BUTTON_REPEAT, BUTTON_NONE},
447 CONFIG_KEYPAD == SANSA_M200_PAD 275 {PLA_SELECT, BUTTON_ON, BUTTON_NONE},
448 {PLA_QUIT, BUTTON_POWER, BUTTON_NONE}, 276 {PLA_SELECT_REL, BUTTON_ON|BUTTON_REL, BUTTON_ON},
449 {PLA_START, BUTTON_UP, BUTTON_NONE}, 277 {PLA_SELECT_REPEAT, BUTTON_ON|BUTTON_REPEAT, BUTTON_NONE},
450 {PLA_MENU, BUTTON_DOWN, BUTTON_NONE}, 278#elif (CONFIG_KEYPAD == SANSA_FUZE_PAD)
451 {PLA_FIRE, BUTTON_SELECT, BUTTON_NONE}, 279 {PLA_CANCEL, BUTTON_HOME|BUTTON_REL, BUTTON_HOME},
452 {PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE}, 280 {PLA_EXIT, BUTTON_HOME|BUTTON_REPEAT, BUTTON_NONE},
453#elif CONFIG_KEYPAD == SANSA_FUZE_PAD 281 {PLA_SELECT, BUTTON_SELECT, BUTTON_NONE},
454 {PLA_QUIT, (BUTTON_HOME|BUTTON_REPEAT), BUTTON_NONE}, 282 {PLA_SELECT_REL, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT},
455 {PLA_START, BUTTON_UP, BUTTON_NONE}, 283 {PLA_SELECT_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE},
456 {PLA_MENU, BUTTON_DOWN, BUTTON_NONE}, 284#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
457 {PLA_FIRE, BUTTON_SELECT, BUTTON_NONE}, 285 {PLA_CANCEL, BUTTON_PREV, BUTTON_NONE},
458 {PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE}, 286 {PLA_EXIT, BUTTON_POWER, BUTTON_NONE},
459#elif CONFIG_KEYPAD == IRIVER_H10_PAD 287 {PLA_SELECT, BUTTON_PLAY, BUTTON_NONE},
460 {PLA_QUIT, BUTTON_POWER, BUTTON_NONE}, 288 {PLA_SELECT_REL, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY},
461 {PLA_START, BUTTON_PLAY, BUTTON_NONE}, 289 {PLA_SELECT_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE},
462 {PLA_MENU, BUTTON_FF, BUTTON_NONE}, 290#elif (CONFIG_KEYPAD == IRIVER_IFP7XX_PAD)
463 {PLA_FIRE, BUTTON_REW, BUTTON_NONE}, 291 {PLA_CANCEL, BUTTON_EQ|BUTOTN_REL, BUTTON_EQ},
464 {PLA_FIRE_REPEAT, BUTTON_REW|BUTTON_REPEAT, BUTTON_NONE}, 292 {PLA_EXIT, BUTTON_EQ|BUTTON_REPEAT, BUTTON_NONE},
465#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD 293 {PLA_SELECT, BUTTON_SELECT, BUTTON_NONE},
466 {PLA_QUIT, BUTTON_EQ, BUTTON_NONE}, 294 {PLA_SELECT_REL, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT},
467 {PLA_START, BUTTON_PLAY, BUTTON_NONE}, 295 {PLA_SELECT_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE},
468 {PLA_MENU, BUTTON_MODE, BUTTON_NONE},
469 {PLA_FIRE, BUTTON_SELECT, BUTTON_NONE},
470 {PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE},
471#elif (CONFIG_KEYPAD == MROBE500_PAD) 296#elif (CONFIG_KEYPAD == MROBE500_PAD)
472 {PLA_QUIT, BUTTON_POWER, BUTTON_NONE}, 297 {PLA_CANCEL, BUTTON_POWER|BUTTON_REL, BUTTON_POWER},
473 {PLA_START, BUTTON_RC_PLAY, BUTTON_NONE}, 298 {PLA_EXIT, BUTTON_POWER|BUTTON_REPEAT, BUTTON_NONE},
474 {PLA_MENU, BUTTON_RC_MODE, BUTTON_NONE}, 299 {PLA_SELECT, BUTTON_RC_HEART, BUTTON_NONE},
475 {PLA_FIRE, BUTTON_RC_HEART, BUTTON_NONE}, 300 {PLA_SELECT_REL, BUTTON_RC_HEART|BUTTON_REL, BUTTON_RC_HEART},
476 {PLA_FIRE_REPEAT, BUTTON_RC_HEART|BUTTON_REPEAT, BUTTON_NONE}, 301 {PLA_SELECT_REPEAT, BUTTON_RC_HEART|BUTTON_REPEAT, BUTTON_NONE},
477#elif CONFIG_KEYPAD == MROBE100_PAD
478 {PLA_QUIT, BUTTON_POWER, BUTTON_NONE},
479 {PLA_START, BUTTON_PLAY, BUTTON_NONE},
480 {PLA_MENU, BUTTON_MENU, BUTTON_NONE},
481 {PLA_FIRE, BUTTON_SELECT, BUTTON_NONE},
482 {PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE},
483#elif (CONFIG_KEYPAD == COWON_D2_PAD) 302#elif (CONFIG_KEYPAD == COWON_D2_PAD)
484 {PLA_QUIT, BUTTON_POWER, BUTTON_NONE}, 303 {PLA_CANCEL, BUTTON_POWER|BUTTON_REL, BUTTON_POWER},
485 {PLA_START, BUTTON_MINUS, BUTTON_NONE}, 304 {PLA_EXIT, BUTTON_POWER|BUTTON_REPEAT, BUTTON_NONE},
486 {PLA_MENU, BUTTON_MENU, BUTTON_NONE}, 305 {PLA_SELECT, BUTTON_MINUS, BUTTON_NONE},
487 {PLA_FIRE, BUTTON_PLUS, BUTTON_NONE}, 306 {PLA_SELECT_REL, BUTTON_MINUS|BUTTON_REL, BUTTON_MINUS},
488 {PLA_FIRE_REPEAT, BUTTON_PLUS|BUTTON_REPEAT, BUTTON_NONE}, 307 {PLA_SELECT_REPEAT, BUTTON_MINUS|BUTTON_MINUS, BUTTON_NONE},
489#elif CONFIG_KEYPAD == IAUDIO_M3_PAD 308#elif (CONFIG_KEYPAD == IAUDIO_M3_PAD)
490 {PLA_QUIT, BUTTON_RC_REC, BUTTON_NONE}, 309 {PLA_CANCEL, BUTTON_RC_REC|BUTTON_REL, BUTTON_RC_REC},
491 {PLA_START, BUTTON_RC_PLAY, BUTTON_NONE}, 310 {PLA_EXIT, BUTTON_RC_REC|BUTTON_REPEAT, BUTTON_NONE},
492 {PLA_MENU, BUTTON_RC_MENU, BUTTON_NONE}, 311 {PLA_SELECT, BUTTON_RC_MODE, BUTTON_NONE},
493 {PLA_FIRE, BUTTON_RC_MODE, BUTTON_NONE}, 312 {PLA_SELECT_REL, BUTTON_RC_MODE|BUTTON_REL, BUTTON_RC_MODE},
494 {PLA_FIRE_REPEAT, BUTTON_RC_MODE|BUTTON_REPEAT, BUTTON_NONE}, 313 {PLA_SELECT_REPEAT, BUTTON_RC_MODE|BUTTON_REPEAT, BUTTON_NONE},
495#elif CONFIG_KEYPAD == PHILIPS_SA9200_PAD 314#elif CONFIG_KEYPAD == PHILIPS_SA9200_PAD
496 {PLA_QUIT, BUTTON_POWER, BUTTON_NONE}, 315 {PLA_EXIT, BUTTON_POWER, BUTTON_NONE},
497 {PLA_START, BUTTON_RIGHT, BUTTON_NONE}, 316 {PLA_CANCE BUTTON_MENU, BUTTON_NONE},
498 {PLA_MENU, BUTTON_MENU, BUTTON_NONE}, 317 {PLA_SELECT, BUTTON_PLAY, BUTTON_NONE},
499 {PLA_FIRE, BUTTON_PLAY, BUTTON_NONE}, 318 {PLA_SELECT_REL, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY},
500 {PLA_FIRE_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE}, 319 {PLA_SELECT_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE},
501#elif (CONFIG_KEYPAD == IAUDIO67_PAD) 320#elif (CONFIG_KEYPAD == IAUDIO67_PAD)
502 {PLA_QUIT, BUTTON_POWER, BUTTON_NONE}, 321 {PLA_CANCEL, BUTTON_POWER|BUTTON_REL, BUTTON_POWER},
503 {PLA_START, BUTTON_PLAY, BUTTON_NONE}, 322 {PLA_EXIT, BUTTON_POWER|BUTTON_REPEAT, BUTTON_NONE},
504 {PLA_MENU, BUTTON_MENU, BUTTON_NONE}, 323 {PLA_SELECT, BUTTON_PLAY, BUTTON_NONE},
505 {PLA_FIRE, BUTTON_VOLUP, BUTTON_NONE}, 324 {PLA_SELECT_REL, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY},
506 {PLA_FIRE_REPEAT, BUTTON_VOLUP|BUTTON_REPEAT, BUTTON_NONE}, 325 {PLA_SELECT_REPEAT, BUTTON_PLAY|BUTTON_REPEAT BUTTON_NONE},
507#elif (CONFIG_KEYPAD == CREATIVEZVM_PAD) 326#elif (CONFIG_KEYPAD == CREATIVEZVM_PAD)
508 {PLA_QUIT, BUTTON_BACK, BUTTON_NONE}, 327 {PLA_CANCEL, BUTTON_BACK|BUTTON_REL, BUTTON_BACK},
509 {PLA_START, BUTTON_PLAY, BUTTON_NONE}, 328 {PLA_EXIT, BUTTON_BACK|BUTTON_REPEAT, BUTTON_NONE},
510 {PLA_MENU, BUTTON_MENU, BUTTON_NONE}, 329 {PLA_SELECT, BUTTON_SELECT, BUTTON_NONE},
511 {PLA_FIRE, BUTTON_SELECT, BUTTON_NONE}, 330 {PLA_SELECT_REL, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT},
512 {PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE}, 331 {PLA_SELECT_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE},
513#elif CONFIG_KEYPAD == PHILIPS_HDD1630_PAD
514 {PLA_QUIT, BUTTON_POWER, BUTTON_NONE},
515 {PLA_START, BUTTON_VIEW, BUTTON_NONE},
516 {PLA_MENU, BUTTON_MENU, BUTTON_NONE},
517 {PLA_FIRE, BUTTON_SELECT, BUTTON_NONE},
518 {PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE},
519#elif (CONFIG_KEYPAD == ONDAVX747_PAD) 332#elif (CONFIG_KEYPAD == ONDAVX747_PAD)
520 {PLA_QUIT, BUTTON_POWER, BUTTON_NONE}, 333 {PLA_CANCEL, BUTTON_POWER|BUTTON_REL, BUTTON_POWER},
521 {PLA_START, BUTTON_VOL_DOWN, BUTTON_NONE}, 334 {PLA_EXIT, BUTTON_POWER|BUTTON_REPEAT, BUTTON_NONE},
522 {PLA_MENU, BUTTON_MENU, BUTTON_NONE}, 335 {PLA_SELECT, BUTTON_VOL_UP, BUTTON_NONE},
523 {PLA_FIRE, BUTTON_VOL_UP, BUTTON_NONE}, 336 {PLA_SELECT_REL, BUTTON_VOL_UP|BUTTON_REL, BUTTON_VOL_UP},
524 {PLA_FIRE_REPEAT, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE}, 337 {PLA_SELECT_REPEAT, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE},
525#elif (CONFIG_KEYPAD == ONDAVX777_PAD)
526 {PLA_QUIT, BUTTON_POWER, BUTTON_NONE},
527 {PLA_START, BUTTON_VOL_DOWN, BUTTON_NONE},
528 {PLA_MENU, BUTTON_MENU, BUTTON_NONE},
529 {PLA_FIRE, BUTTON_VOL_UP, BUTTON_NONE},
530 {PLA_FIRE_REPEAT, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE},
531#elif (CONFIG_KEYPAD == SAMSUNG_YH_PAD) 338#elif (CONFIG_KEYPAD == SAMSUNG_YH_PAD)
532 {PLA_QUIT, BUTTON_REW, BUTTON_NONE}, 339 {PLA_CANCEL, BUTTON_REW, BUTTON_NONE},
533 {PLA_START, BUTTON_FFWD, BUTTON_NONE}, 340 {PLA_EXIT, BUTTON_FFWD, BUTTON_NONE},
534 {PLA_MENU, BUTTON_PLAY, BUTTON_NONE}, 341 {PLA_SELECT, BUTTON_PLAY, BUTTON_NONE},
535 {PLA_FIRE, BUTTON_UP, BUTTON_NONE}, 342 {PLA_SELECT_REL, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY},
536 {PLA_FIRE_REPEAT, BUTTON_UP|BUTTON_REW, BUTTON_NONE}, 343 {PLA_SELECT_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE},
537#elif (CONFIG_KEYPAD == PBELL_VIBE500_PAD) 344#elif (CONFIG_KEYPAD == PBELL_VIBE500_PAD)
538 {PLA_QUIT, BUTTON_REC, BUTTON_NONE}, 345 {PLA_CANCEL, BUTTON_MENU, BUTTON_NONE},
539 {PLA_START, BUTTON_PLAY, BUTTON_NONE}, 346 {PLA_EXIT, BUTTON_REC, BUTTON_NONE},
540 {PLA_MENU, BUTTON_MENU, BUTTON_NONE}, 347 {PLA_SELECT, BUTTON_OK, BUTTON_NONE},
541 {PLA_FIRE, BUTTON_OK, BUTTON_NONE}, 348 {PLA_SELECT_REL, BUTTON_OK|BUTTON_REL, BUTTON_OK },
542 {PLA_FIRE_REPEAT, BUTTON_OK|BUTTON_REPEAT, BUTTON_NONE}, 349 {PLA_SELECT_REPEAT, BUTTON_OK|BUTTON_REPEAT, BUTTON_NONE},
543#elif (CONFIG_KEYPAD == MPIO_HD200_PAD) 350#elif (CONFIG_KEYPAD == MPIO_HD200_PAD)
544 {PLA_QUIT, (BUTTON_REC|BUTTON_PLAY), BUTTON_NONE}, 351 {PLA_CANCEL, BUTTON_REC, BUTTON_NONE},
545 {PLA_START, BUTTON_PLAY, BUTTON_NONE}, 352 {PLA_EXIT, (BUTTON_REC|BUTTON_PLAY), BUTTON_NONE},
546 {PLA_MENU, BUTTON_REC, BUTTON_NONE}, 353 {PLA_SELECT, BUTTON_SELECT, BUTTON_NONE},
547 {PLA_FIRE, BUTTON_SELECT, BUTTON_NONE}, 354 {PLA_SELECT_REL, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT},
548 {PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE}, 355 {PLA_SELECT_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE},
549
550#else
551 #error pluginlib_actions: Unsupported keypad
552#endif
553 {CONTEXT_PLUGIN,BUTTON_NONE,BUTTON_NONE}
554};
555
556const struct button_mapping generic_increase_decrease[] =
557{
558#ifdef HAVE_TOUCHSCREEN
559 {PLA_INC, BUTTON_TOPMIDDLE, BUTTON_NONE},
560 {PLA_DEC, BUTTON_BOTTOMMIDDLE, BUTTON_NONE},
561 {PLA_INC_REPEAT, BUTTON_TOPMIDDLE|BUTTON_REPEAT, BUTTON_NONE},
562 {PLA_DEC_REPEAT, BUTTON_BOTTOMMIDDLE|BUTTON_REPEAT, BUTTON_NONE},
563#endif
564#if (CONFIG_KEYPAD == IRIVER_H100_PAD) \
565 || (CONFIG_KEYPAD == IRIVER_H300_PAD) \
566 || (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) \
567 || (CONFIG_KEYPAD == GIGABEAT_PAD) \
568 || (CONFIG_KEYPAD == RECORDER_PAD) \
569 || (CONFIG_KEYPAD == ARCHOS_AV300_PAD) \
570 || (CONFIG_KEYPAD == IRIVER_IFP7XX_PAD) \
571 || (CONFIG_KEYPAD == ONDIO_PAD) \
572 || (CONFIG_KEYPAD == GIGABEAT_S_PAD) \
573 || (CONFIG_KEYPAD == MROBE100_PAD) \
574 || (CONFIG_KEYPAD == PHILIPS_SA9200_PAD) \
575 || (CONFIG_KEYPAD == PHILIPS_HDD1630_PAD) \
576 || (CONFIG_KEYPAD == SANSA_CLIP_PAD) \
577 || (CONFIG_KEYPAD == CREATIVEZVM_PAD) \
578 || (CONFIG_KEYPAD == SANSA_M200_PAD)
579 {PLA_INC, BUTTON_UP, BUTTON_NONE},
580 {PLA_DEC, BUTTON_DOWN, BUTTON_NONE},
581 {PLA_INC_REPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE},
582 {PLA_DEC_REPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE},
583#elif (CONFIG_KEYPAD == SANSA_C200_PAD)
584 {PLA_INC, BUTTON_VOL_UP, BUTTON_NONE},
585 {PLA_DEC, BUTTON_VOL_DOWN, BUTTON_NONE},
586 {PLA_INC_REPEAT, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE},
587 {PLA_DEC_REPEAT, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE},
588#elif (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
589 || (CONFIG_KEYPAD == IPOD_3G_PAD) \
590 || (CONFIG_KEYPAD == IPOD_4G_PAD) \
591 || (CONFIG_KEYPAD == SANSA_E200_PAD) \
592 || (CONFIG_KEYPAD == SANSA_FUZE_PAD)
593 {PLA_INC, BUTTON_SCROLL_FWD, BUTTON_NONE},
594 {PLA_DEC, BUTTON_SCROLL_BACK, BUTTON_NONE},
595 {PLA_INC_REPEAT, BUTTON_SCROLL_FWD|BUTTON_REPEAT, BUTTON_NONE},
596 {PLA_DEC_REPEAT, BUTTON_SCROLL_BACK|BUTTON_REPEAT, BUTTON_NONE},
597#elif CONFIG_KEYPAD == PLAYER_PAD
598 {PLA_INC, BUTTON_STOP, BUTTON_NONE},
599 {PLA_DEC, BUTTON_PLAY, BUTTON_NONE},
600#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
601 {PLA_INC, BUTTON_SCROLL_UP, BUTTON_NONE},
602 {PLA_DEC, BUTTON_SCROLL_DOWN, BUTTON_NONE},
603 {PLA_INC_REPEAT, BUTTON_SCROLL_UP|BUTTON_REPEAT, BUTTON_NONE},
604 {PLA_DEC_REPEAT, BUTTON_SCROLL_DOWN|BUTTON_REPEAT, BUTTON_NONE},
605#elif (CONFIG_KEYPAD == MROBE500_PAD)
606 {PLA_INC, BUTTON_RC_PLAY, BUTTON_NONE},
607 {PLA_DEC, BUTTON_RC_DOWN, BUTTON_NONE},
608 {PLA_INC_REPEAT, BUTTON_RC_PLAY|BUTTON_REPEAT, BUTTON_NONE},
609 {PLA_DEC_REPEAT, BUTTON_RC_DOWN|BUTTON_REPEAT, BUTTON_NONE},
610#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
611 {PLA_INC, BUTTON_RC_VOL_UP, BUTTON_NONE},
612 {PLA_DEC, BUTTON_RC_VOL_DOWN, BUTTON_NONE},
613 {PLA_INC_REPEAT, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE},
614 {PLA_DEC_REPEAT, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE},
615#elif CONFIG_KEYPAD == COWON_D2_PAD
616 {PLA_INC, BUTTON_PLUS, BUTTON_NONE},
617 {PLA_DEC, BUTTON_MINUS, BUTTON_NONE},
618 {PLA_INC_REPEAT, BUTTON_PLUS|BUTTON_REPEAT, BUTTON_NONE},
619 {PLA_DEC_REPEAT, BUTTON_MINUS|BUTTON_REPEAT, BUTTON_NONE},
620#elif CONFIG_KEYPAD == IAUDIO67_PAD
621 {PLA_INC, BUTTON_VOLUP, BUTTON_NONE},
622 {PLA_DEC, BUTTON_VOLDOWN, BUTTON_NONE},
623 {PLA_INC_REPEAT, BUTTON_VOLUP|BUTTON_REPEAT, BUTTON_NONE},
624 {PLA_DEC_REPEAT, BUTTON_VOLDOWN|BUTTON_REPEAT, BUTTON_NONE},
625#elif CONFIG_KEYPAD == ONDAVX747_PAD
626 {PLA_INC, BUTTON_VOL_UP, BUTTON_NONE},
627 {PLA_DEC, BUTTON_VOL_DOWN, BUTTON_NONE},
628 {PLA_INC_REPEAT, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE},
629 {PLA_DEC_REPEAT, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE},
630#elif CONFIG_KEYPAD == ONDAVX777_PAD
631 {PLA_INC, BUTTON_VOL_UP, BUTTON_NONE},
632 {PLA_DEC, BUTTON_VOL_DOWN, BUTTON_NONE},
633 {PLA_INC_REPEAT, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE},
634 {PLA_DEC_REPEAT, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE},
635#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
636 {PLA_INC, BUTTON_UP, BUTTON_NONE},
637 {PLA_DEC, BUTTON_DOWN, BUTTON_NONE},
638 {PLA_INC_REPEAT, BUTTON_UP|BUTTON_REW, BUTTON_NONE},
639 {PLA_DEC_REPEAT, BUTTON_DOWN|BUTTON_REW, BUTTON_NONE},
640#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
641 {PLA_INC, BUTTON_UP, BUTTON_NONE},
642 {PLA_DEC, BUTTON_DOWN, BUTTON_NONE},
643 {PLA_INC_REPEAT, BUTTON_UP, BUTTON_NONE},
644 {PLA_DEC_REPEAT, BUTTON_DOWN, BUTTON_NONE},
645#elif CONFIG_KEYPAD == MPIO_HD200_PAD
646 {PLA_INC, BUTTON_VOL_UP, BUTTON_NONE},
647 {PLA_DEC, BUTTON_VOL_DOWN, BUTTON_NONE},
648 {PLA_INC_REPEAT, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE},
649 {PLA_DEC_REPEAT, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE},
650
651#else 356#else
652 #error pluginlib_actions: Unsupported keypad 357#error pluginlib_actions: No actions defined
653#endif 358#endif
654 {CONTEXT_PLUGIN,BUTTON_NONE,BUTTON_NONE} 359 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_PLUGIN),
655}; 360};
656 361
657static struct button_mapping **plugin_context_order; 362static struct button_mapping **plugin_context_order;
diff --git a/apps/plugins/lib/pluginlib_actions.h b/apps/plugins/lib/pluginlib_actions.h
index cc5f8b4eb8..51a0f4a84a 100644
--- a/apps/plugins/lib/pluginlib_actions.h
+++ b/apps/plugins/lib/pluginlib_actions.h
@@ -38,27 +38,26 @@ enum {
38 PLA_LEFT_REPEAT, 38 PLA_LEFT_REPEAT,
39 PLA_RIGHT_REPEAT, 39 PLA_RIGHT_REPEAT,
40 40
41 PLA_INC, 41 PLA_CANCEL,
42 PLA_DEC, 42 PLA_EXIT,
43 PLA_INC_REPEAT, 43 PLA_SELECT,
44 PLA_DEC_REPEAT, 44 PLA_SELECT_REL,
45 PLA_SELECT_REPEAT,
45 46
46 PLA_QUIT, 47#ifdef HAVE_SCROLLWHEEL
47 PLA_START, 48 PLA_SCROLL_FWD,
48 PLA_MENU, 49 PLA_SCROLL_FWD_REPEAT,
49 PLA_FIRE, 50 PLA_SCROLL_BACK,
50 PLA_FIRE_REPEAT, 51 PLA_SCROLL_BACK_REPEAT,
52#endif
51 53
52 LAST_PLUGINLIB_ACTION 54 LAST_PLUGINLIB_ACTION
53}; 55};
54 56
55#if defined(HAVE_REMOTE_LCD) 57#if defined(HAVE_REMOTE_LCD)
56extern const struct button_mapping remote_directions[]; 58extern const struct button_mapping pla_remote_ctx[];
57#endif 59#endif
58extern const struct button_mapping generic_directions[]; 60extern const struct button_mapping pla_main_ctx[];
59extern const struct button_mapping generic_left_right_fire[];
60extern const struct button_mapping generic_actions[];
61extern const struct button_mapping generic_increase_decrease[];
62 61
63int pluginlib_getaction(int timeout, 62int pluginlib_getaction(int timeout,
64 const struct button_mapping *plugin_contexts[], 63 const struct button_mapping *plugin_contexts[],