summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSolomon Peachy <pizza@shaftnet.org>2020-10-23 09:37:39 -0400
committerSolomon Peachy <pizza@shaftnet.org>2020-10-23 09:41:21 -0400
commit186dbb45275e051a8a93d2cf66c416bf75c0174e (patch)
tree8378688c010de40381e6557936710058811f7e96
parent7c06a9e208c4a7a4ba73203245f8f2779523e528 (diff)
downloadrockbox-186dbb45275e051a8a93d2cf66c416bf75c0174e.tar.gz
rockbox-186dbb45275e051a8a93d2cf66c416bf75c0174e.zip
Convert FFT plugin to using PLA keymapings
Based on an old patch (g#188) by Jean-Louis Biasini Change-Id: I698b8990b7cd57a28353e86cfc35788aa42455d2
-rw-r--r--apps/plugins/fft/fft.c372
1 files changed, 12 insertions, 360 deletions
diff --git a/apps/plugins/fft/fft.c b/apps/plugins/fft/fft.c
index 4719446475..35498227bf 100644
--- a/apps/plugins/fft/fft.c
+++ b/apps/plugins/fft/fft.c
@@ -32,369 +32,21 @@
32#include "lib/mylcd.h" 32#include "lib/mylcd.h"
33#include "lib/osd.h" 33#include "lib/osd.h"
34 34
35
36
37#ifndef HAVE_LCD_COLOR 35#ifndef HAVE_LCD_COLOR
38GREY_INFO_STRUCT 36GREY_INFO_STRUCT
39#endif 37#endif
40 38
41#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ 39#include "lib/pluginlib_actions.h"
42 (CONFIG_KEYPAD == IRIVER_H300_PAD)
43# define FFT_PREV_GRAPH BUTTON_LEFT
44# define FFT_NEXT_GRAPH BUTTON_RIGHT
45# define FFT_ORIENTATION BUTTON_REC
46# define FFT_WINDOW BUTTON_SELECT
47# define FFT_AMP_SCALE BUTTON_UP
48# define FFT_FREQ_SCALE BUTTON_DOWN
49# define FFT_QUIT BUTTON_OFF
50
51#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
52 (CONFIG_KEYPAD == IPOD_3G_PAD) || \
53 (CONFIG_KEYPAD == IPOD_1G2G_PAD)
54# define MINESWP_SCROLLWHEEL
55# define FFT_PREV_GRAPH BUTTON_LEFT
56# define FFT_NEXT_GRAPH BUTTON_RIGHT
57# define FFT_ORIENTATION (BUTTON_SELECT | BUTTON_LEFT)
58# define FFT_WINDOW (BUTTON_SELECT | BUTTON_RIGHT)
59# define FFT_AMP_SCALE BUTTON_MENU
60# define FFT_FREQ_SCALE BUTTON_PLAY
61# define FFT_QUIT (BUTTON_SELECT | BUTTON_MENU)
62
63#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD)
64# define FFT_PREV_GRAPH BUTTON_LEFT
65# define FFT_NEXT_GRAPH BUTTON_RIGHT
66# define FFT_ORIENTATION BUTTON_SELECT
67# define FFT_WINDOW BUTTON_PLAY
68# define FFT_AMP_SCALE BUTTON_UP
69# define FFT_FREQ_SCALE BUTTON_DOWN
70# define FFT_QUIT BUTTON_POWER
71
72#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
73# define FFT_PREV_GRAPH BUTTON_LEFT
74# define FFT_NEXT_GRAPH BUTTON_RIGHT
75# define FFT_AMP_SCALE BUTTON_UP
76# define FFT_FREQ_SCALE BUTTON_DOWN
77# define FFT_ORIENTATION BUTTON_SELECT
78# define FFT_WINDOW BUTTON_A
79# define FFT_QUIT BUTTON_POWER
80
81#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
82# define FFT_PREV_GRAPH BUTTON_LEFT
83# define FFT_NEXT_GRAPH BUTTON_RIGHT
84# define FFT_ORIENTATION BUTTON_SELECT
85# define FFT_WINDOW BUTTON_REC
86# define FFT_AMP_SCALE BUTTON_UP
87# define FFT_FREQ_SCALE BUTTON_DOWN
88# define FFT_QUIT BUTTON_POWER
89
90#elif (CONFIG_KEYPAD == SANSA_FUZE_PAD)
91# define FFT_PREV_GRAPH BUTTON_LEFT
92# define FFT_NEXT_GRAPH BUTTON_RIGHT
93# define FFT_ORIENTATION (BUTTON_SELECT | BUTTON_LEFT)
94# define FFT_WINDOW (BUTTON_SELECT | BUTTON_RIGHT)
95# define FFT_AMP_SCALE BUTTON_UP
96# define FFT_FREQ_SCALE BUTTON_DOWN
97# define FFT_QUIT (BUTTON_HOME|BUTTON_REPEAT)
98
99#elif (CONFIG_KEYPAD == SANSA_C200_PAD)
100# define FFT_PREV_GRAPH BUTTON_LEFT
101# define FFT_NEXT_GRAPH BUTTON_RIGHT
102# define FFT_ORIENTATION BUTTON_UP
103# define FFT_WINDOW BUTTON_REC
104# define FFT_AMP_SCALE BUTTON_SELECT
105# define FFT_QUIT BUTTON_POWER
106/* Need FFT_FREQ_SCALE key */
107#elif (CONFIG_KEYPAD == SANSA_M200_PAD)
108# define FFT_PREV_GRAPH BUTTON_LEFT
109# define FFT_NEXT_GRAPH BUTTON_RIGHT
110# define FFT_ORIENTATION BUTTON_UP
111# define FFT_WINDOW BUTTON_DOWN
112# define FFT_AMP_SCALE BUTTON_SELECT
113# define FFT_QUIT BUTTON_POWER
114/* Need FFT_FREQ_SCALE key */
115#elif (CONFIG_KEYPAD == SANSA_CLIP_PAD)
116# define FFT_PREV_GRAPH BUTTON_LEFT
117# define FFT_NEXT_GRAPH BUTTON_RIGHT
118# define FFT_ORIENTATION BUTTON_UP
119# define FFT_FREQ_SCALE BUTTON_DOWN
120# define FFT_WINDOW BUTTON_HOME
121# define FFT_AMP_SCALE BUTTON_SELECT
122# define FFT_QUIT BUTTON_POWER
123/* Need FFT_FREQ_SCALE key */
124#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
125# define FFT_PREV_GRAPH BUTTON_LEFT
126# define FFT_NEXT_GRAPH BUTTON_RIGHT
127# define FFT_ORIENTATION BUTTON_FF
128# define FFT_WINDOW BUTTON_SCROLL_UP
129# define FFT_AMP_SCALE BUTTON_REW
130# define FFT_FREQ_SCALE BUTTON_PLAY
131# define FFT_QUIT BUTTON_POWER
132
133#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD)
134# define FFT_PREV_GRAPH BUTTON_LEFT
135# define FFT_NEXT_GRAPH BUTTON_RIGHT
136# define FFT_ORIENTATION BUTTON_MENU
137# define FFT_WINDOW BUTTON_PREV
138# define FFT_AMP_SCALE BUTTON_UP
139# define FFT_FREQ_SCALE BUTTON_DOWN
140# define FFT_QUIT BUTTON_BACK
141
142#elif (CONFIG_KEYPAD == MROBE100_PAD)
143# define FFT_PREV_GRAPH BUTTON_LEFT
144# define FFT_NEXT_GRAPH BUTTON_RIGHT
145# define FFT_ORIENTATION BUTTON_PLAY
146# define FFT_WINDOW BUTTON_SELECT
147# define FFT_AMP_SCALE BUTTON_UP
148# define FFT_FREQ_SCALE BUTTON_DOWN
149# define FFT_QUIT BUTTON_POWER
150
151#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
152# define FFT_PREV_GRAPH BUTTON_RC_REW
153# define FFT_NEXT_GRAPH BUTTON_RC_FF
154# define FFT_ORIENTATION BUTTON_RC_MODE
155# define FFT_WINDOW BUTTON_RC_PLAY
156# define FFT_AMP_SCALE BUTTON_RC_VOL_UP
157# define FFT_QUIT BUTTON_RC_REC
158/* Need FFT_FREQ_SCALE key */
159#elif (CONFIG_KEYPAD == COWON_D2_PAD)
160# define FFT_QUIT BUTTON_POWER
161# define FFT_PREV_GRAPH BUTTON_PLUS
162# define FFT_NEXT_GRAPH BUTTON_MINUS
163
164#elif CONFIG_KEYPAD == CREATIVE_ZENXFI3_PAD
165# define FFT_PREV_GRAPH BUTTON_BACK
166# define FFT_NEXT_GRAPH BUTTON_MENU
167# define FFT_ORIENTATION (BUTTON_PLAY | BUTTON_LEFT)
168# define FFT_WINDOW (BUTTON_PLAY | BUTTON_RIGHT)
169# define FFT_AMP_SCALE BUTTON_UP
170# define FFT_FREQ_SCALE BUTTON_DOWN
171# define FFT_QUIT (BUTTON_PLAY|BUTTON_REPEAT)
172
173#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
174# define FFT_PREV_GRAPH BUTTON_LEFT
175# define FFT_NEXT_GRAPH BUTTON_RIGHT
176# define FFT_ORIENTATION BUTTON_MENU
177# define FFT_WINDOW BUTTON_SELECT
178# define FFT_AMP_SCALE BUTTON_UP
179# define FFT_FREQ_SCALE BUTTON_DOWN
180# define FFT_QUIT BUTTON_BACK
181
182#elif CONFIG_KEYPAD == PHILIPS_HDD1630_PAD
183# define FFT_PREV_GRAPH BUTTON_LEFT
184# define FFT_NEXT_GRAPH BUTTON_RIGHT
185# define FFT_ORIENTATION BUTTON_SELECT
186# define FFT_WINDOW BUTTON_MENU
187# define FFT_AMP_SCALE BUTTON_UP
188# define FFT_FREQ_SCALE BUTTON_DOWN
189# define FFT_QUIT BUTTON_POWER
190
191#elif CONFIG_KEYPAD == PHILIPS_HDD6330_PAD
192# define FFT_PREV_GRAPH BUTTON_PREV
193# define FFT_NEXT_GRAPH BUTTON_NEXT
194# define FFT_ORIENTATION BUTTON_PLAY
195# define FFT_WINDOW BUTTON_MENU
196# define FFT_AMP_SCALE BUTTON_UP
197# define FFT_FREQ_SCALE BUTTON_DOWN
198# define FFT_QUIT BUTTON_POWER
199
200#elif CONFIG_KEYPAD == PHILIPS_SA9200_PAD
201# define FFT_PREV_GRAPH BUTTON_PREV
202# define FFT_NEXT_GRAPH BUTTON_NEXT
203# define FFT_ORIENTATION BUTTON_PLAY
204# define FFT_WINDOW BUTTON_MENU
205# define FFT_AMP_SCALE BUTTON_UP
206# define FFT_FREQ_SCALE BUTTON_DOWN
207# define FFT_QUIT BUTTON_POWER
208
209#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \
210 (CONFIG_KEYPAD == SAMSUNG_YH92X_PAD)
211# define FFT_PREV_GRAPH BUTTON_LEFT
212# define FFT_NEXT_GRAPH BUTTON_RIGHT
213# define FFT_ORIENTATION BUTTON_UP
214# define FFT_WINDOW BUTTON_DOWN
215# define FFT_AMP_SCALE BUTTON_FFWD
216# define FFT_QUIT BUTTON_PLAY
217/* Need FFT_FREQ_SCALE key */
218#elif (CONFIG_KEYPAD == MROBE500_PAD)
219# define FFT_QUIT BUTTON_POWER
220
221#elif (CONFIG_KEYPAD == ONDAVX747_PAD)
222# define FFT_QUIT BUTTON_POWER
223
224#elif (CONFIG_KEYPAD == ONDAVX777_PAD)
225# define FFT_QUIT BUTTON_POWER
226
227#elif (CONFIG_KEYPAD == PBELL_VIBE500_PAD)
228# define FFT_PREV_GRAPH BUTTON_PREV
229# define FFT_NEXT_GRAPH BUTTON_NEXT
230# define FFT_ORIENTATION BUTTON_MENU
231# define FFT_WINDOW BUTTON_OK
232# define FFT_AMP_SCALE BUTTON_PLAY
233# define FFT_QUIT BUTTON_REC
234/* Need FFT_FREQ_SCALE key */
235#elif CONFIG_KEYPAD == MPIO_HD200_PAD
236# define FFT_PREV_GRAPH BUTTON_REW
237# define FFT_NEXT_GRAPH BUTTON_FF
238# define FFT_ORIENTATION BUTTON_REC
239# define FFT_WINDOW BUTTON_FUNC
240# define FFT_AMP_SCALE BUTTON_PLAY
241# define FFT_QUIT (BUTTON_REC | BUTTON_PLAY)
242/* Need FFT_FREQ_SCALE key */
243#elif CONFIG_KEYPAD == MPIO_HD300_PAD
244# define FFT_PREV_GRAPH BUTTON_REW
245# define FFT_NEXT_GRAPH BUTTON_FF
246# define FFT_ORIENTATION BUTTON_REC
247# define FFT_WINDOW BUTTON_ENTER
248# define FFT_AMP_SCALE BUTTON_PLAY
249# define FFT_QUIT (BUTTON_REC | BUTTON_REPEAT)
250/* Need FFT_FREQ_SCALE key */
251#elif CONFIG_KEYPAD == SANSA_FUZEPLUS_PAD
252# define FFT_PREV_GRAPH BUTTON_LEFT
253# define FFT_NEXT_GRAPH BUTTON_RIGHT
254# define FFT_ORIENTATION BUTTON_PLAYPAUSE
255# define FFT_WINDOW BUTTON_SELECT
256# define FFT_AMP_SCALE BUTTON_BOTTOMLEFT
257# define FFT_FREQ_SCALE BUTTON_BOTTOMRIGHT
258# define FFT_QUIT BUTTON_POWER
259
260#elif (CONFIG_KEYPAD == SANSA_CONNECT_PAD)
261# define FFT_PREV_GRAPH BUTTON_LEFT
262# define FFT_NEXT_GRAPH BUTTON_RIGHT
263# define FFT_ORIENTATION BUTTON_SELECT
264# define FFT_WINDOW BUTTON_VOL_DOWN
265# define FFT_AMP_SCALE BUTTON_UP
266# define FFT_FREQ_SCALE BUTTON_DOWN
267# define FFT_QUIT BUTTON_POWER
268
269#elif CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
270# define FFT_PREV_GRAPH BUTTON_LEFT
271# define FFT_NEXT_GRAPH BUTTON_RIGHT
272# define FFT_ORIENTATION BUTTON_USER
273# define FFT_WINDOW BUTTON_MENU
274# define FFT_AMP_SCALE BUTTON_SELECT
275# define FFT_FREQ_SCALE BUTTON_DOWN
276# define FFT_QUIT BUTTON_BACK
277
278#elif (CONFIG_KEYPAD == HM60X_PAD)
279# define FFT_PREV_GRAPH BUTTON_LEFT
280# define FFT_NEXT_GRAPH BUTTON_RIGHT
281# define FFT_AMP_SCALE BUTTON_UP
282# define FFT_FREQ_SCALE BUTTON_DOWN
283# define FFT_ORIENTATION BUTTON_SELECT
284# define FFT_WINDOW (BUTTON_POWER|BUTTON_SELECT)
285# define FFT_QUIT BUTTON_POWER
286
287#elif (CONFIG_KEYPAD == HM801_PAD)
288# define FFT_PREV_GRAPH BUTTON_LEFT
289# define FFT_NEXT_GRAPH BUTTON_RIGHT
290# define FFT_AMP_SCALE BUTTON_UP
291# define FFT_FREQ_SCALE BUTTON_DOWN
292# define FFT_ORIENTATION BUTTON_SELECT
293# define FFT_WINDOW BUTTON_PLAY
294# define FFT_QUIT BUTTON_POWER
295
296#elif (CONFIG_KEYPAD == SONY_NWZ_PAD)
297# define FFT_PREV_GRAPH BUTTON_LEFT
298# define FFT_NEXT_GRAPH BUTTON_RIGHT
299# define FFT_AMP_SCALE BUTTON_UP
300# define FFT_FREQ_SCALE BUTTON_DOWN
301# define FFT_QUIT BUTTON_BACK
302# define FFT_ORIENTATION BUTTON_POWER
303# define FFT_WINDOW BUTTON_PLAY
304
305#elif (CONFIG_KEYPAD == CREATIVE_ZEN_PAD)
306# define FFT_PREV_GRAPH BUTTON_LEFT
307# define FFT_NEXT_GRAPH BUTTON_RIGHT
308# define FFT_AMP_SCALE BUTTON_UP
309# define FFT_FREQ_SCALE BUTTON_DOWN
310# define FFT_QUIT BUTTON_BACK
311# define FFT_ORIENTATION BUTTON_SELECT
312# define FFT_WINDOW BUTTON_MENU
313
314#elif (CONFIG_KEYPAD == DX50_PAD)
315# define FFT_QUIT (BUTTON_POWER|BUTTON_REL)
316# define FFT_PREV_GRAPH BUTTON_VOL_UP
317# define FFT_NEXT_GRAPH BUTTON_VOL_DOWN
318
319#elif (CONFIG_KEYPAD == AGPTEK_ROCKER_PAD)
320# define FFT_PREV_GRAPH BUTTON_LEFT
321# define FFT_NEXT_GRAPH BUTTON_RIGHT
322# define FFT_AMP_SCALE BUTTON_UP
323# define FFT_FREQ_SCALE BUTTON_DOWN
324# define FFT_QUIT BUTTON_POWER
325# define FFT_ORIENTATION BUTTON_SELECT
326# define FFT_WINDOW BUTTON_VOLDOWN
327
328#elif (CONFIG_KEYPAD == XDUOO_X3_PAD)
329# define FFT_PREV_GRAPH BUTTON_PREV
330# define FFT_NEXT_GRAPH BUTTON_NEXT
331# define FFT_ORIENTATION BUTTON_HOME
332# define FFT_FREQ_SCALE BUTTON_OPTION
333# define FFT_WINDOW (BUTTON_HOME|BUTTON_PWRALT)
334# define FFT_AMP_SCALE BUTTON_PLAY
335# define FFT_QUIT BUTTON_POWER
336
337#elif (CONFIG_KEYPAD == XDUOO_X3II_PAD) || (CONFIG_KEYPAD == XDUOO_X20_PAD)
338# define FFT_PREV_GRAPH BUTTON_PREV
339# define FFT_NEXT_GRAPH BUTTON_NEXT
340# define FFT_ORIENTATION BUTTON_HOME
341# define FFT_FREQ_SCALE BUTTON_OPTION
342# define FFT_WINDOW (BUTTON_HOME|BUTTON_POWER)
343# define FFT_AMP_SCALE BUTTON_PLAY
344# define FFT_QUIT BUTTON_POWER
345
346#elif (CONFIG_KEYPAD == FIIO_M3K_PAD)
347# define FFT_PREV_GRAPH BUTTON_PREV
348# define FFT_NEXT_GRAPH BUTTON_NEXT
349# define FFT_ORIENTATION BUTTON_HOME
350# define FFT_FREQ_SCALE BUTTON_OPTION
351# define FFT_WINDOW (BUTTON_HOME|BUTTON_POWER)
352# define FFT_AMP_SCALE BUTTON_PLAY
353# define FFT_QUIT BUTTON_POWER
354
355#elif (CONFIG_KEYPAD == IHIFI_770_PAD) || (CONFIG_KEYPAD == IHIFI_800_PAD)
356# define FFT_PREV_GRAPH BUTTON_PREV
357# define FFT_NEXT_GRAPH BUTTON_NEXT
358# define FFT_ORIENTATION BUTTON_HOME
359# define FFT_FREQ_SCALE BUTTON_VOL_UP
360# define FFT_WINDOW BUTTON_VOL_DOWN
361# define FFT_AMP_SCALE BUTTON_PLAY
362# define FFT_QUIT BUTTON_POWER
363
364#elif (CONFIG_KEYPAD == EROSQ_PAD)
365# define FFT_PREV_GRAPH BUTTON_SCROLL_BACK
366# define FFT_NEXT_GRAPH BUTTON_SCROLL_FWD
367# define FFT_ORIENTATION BUTTON_VOL_UP
368# define FFT_FREQ_SCALE BUTTON_VOL_DOWN
369# define FFT_WINDOW BUTTON_BACK
370# define FFT_AMP_SCALE BUTTON_MENU
371# define FFT_QUIT BUTTON_POWER
372
373#elif !defined(HAVE_TOUCHSCREEN)
374#error No keymap defined!
375#endif
376 40
377#ifdef HAVE_TOUCHSCREEN 41/* this set the context to use with PLA */
378#ifndef FFT_PREV_GRAPH 42static const struct button_mapping *plugin_contexts[] = { pla_main_ctx };
379# define FFT_PREV_GRAPH BUTTON_MIDLEFT 43#define FFT_PREV_GRAPH PLA_LEFT
380#endif 44#define FFT_NEXT_GRAPH PLA_RIGHT
381#ifndef FFT_NEXT_GRAPH 45#define FFT_ORIENTATION PLA_CANCEL
382# define FFT_NEXT_GRAPH BUTTON_MIDRIGHT 46#define FFT_WINDOW PLA_SELECT
383#endif 47#define FFT_AMP_SCALE PLA_UP
384#ifndef FFT_ORIENTATION 48#define FFT_FREQ_SCALE PLA_DOWN
385# define FFT_ORIENTATION BUTTON_CENTER 49#define FFT_QUIT PLA_EXIT
386#endif
387#ifndef FFT_WINDOW
388# define FFT_WINDOW BUTTON_TOPLEFT
389#endif
390#ifndef FFT_AMP_SCALE
391# define FFT_AMP_SCALE BUTTON_TOPRIGHT
392#endif
393#ifndef FFT_QUIT
394# define FFT_QUIT BUTTON_BOTTOMLEFT
395#endif
396/* Need FFT_FREQ_SCALE key */
397#endif /* HAVE_TOUCHSCREEN */
398 50
399#ifdef HAVE_LCD_COLOR 51#ifdef HAVE_LCD_COLOR
400#include "pluginbitmaps/fft_colors.h" 52#include "pluginbitmaps/fft_colors.h"
@@ -1609,7 +1261,7 @@ enum plugin_status plugin_start(const void* parameter)
1609 1261
1610 while(run) 1262 while(run)
1611 { 1263 {
1612 long delay = fft_draw(); 1264 long delay = fft_draw();
1613 1265
1614 if(delay <= 0) 1266 if(delay <= 0)
1615 { 1267 {
@@ -1617,7 +1269,7 @@ enum plugin_status plugin_start(const void* parameter)
1617 rb->yield(); /* tmo = 0 won't yield */ 1269 rb->yield(); /* tmo = 0 won't yield */
1618 } 1270 }
1619 1271
1620 int button = rb->button_get_w_tmo(delay); 1272 int button = pluginlib_getaction(TIMEOUT_NOBLOCK, plugin_contexts, ARRAYLEN(plugin_contexts));
1621 1273
1622 switch (button) 1274 switch (button)
1623 { 1275 {