summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/plugins/fireworks.c131
1 files changed, 13 insertions, 118 deletions
diff --git a/apps/plugins/fireworks.c b/apps/plugins/fireworks.c
index 52b11b7079..c49c4fd6bb 100644
--- a/apps/plugins/fireworks.c
+++ b/apps/plugins/fireworks.c
@@ -21,8 +21,10 @@
21#include "plugin.h" 21#include "plugin.h"
22#include "lib/helper.h" 22#include "lib/helper.h"
23#include "lib/playback_control.h" 23#include "lib/playback_control.h"
24#include "lib/pluginlib_actions.h"
24 25
25 26/* this set the context to use with PLA */
27static const struct button_mapping *plugin_contexts[] = { pla_main_ctx };
26 28
27/*** 29/***
28 * FIREWORKS.C by ZAKK ROBERTS 30 * FIREWORKS.C by ZAKK ROBERTS
@@ -31,121 +33,11 @@
31 * Currently disabled for Archos Recorder - runs too slow. 33 * Currently disabled for Archos Recorder - runs too slow.
32 ***/ 34 ***/
33 35
34/* All sorts of keymappings.. */ 36/* We use PLA */
35#if (CONFIG_KEYPAD == IRIVER_H300_PAD) || (CONFIG_KEYPAD == IRIVER_H100_PAD) 37#define BTN_MENU PLA_EXIT
36#define BTN_MENU BUTTON_OFF 38#define BTN_MENU2 PLA_CANCEL
37#define BTN_FIRE BUTTON_SELECT 39#define BTN_FIRE PLA_SELECT
38 40#define BTN_FIRE_REPEAT PLA_SELECT_REPEAT
39#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) || \
40 (CONFIG_KEYPAD == IPOD_1G2G_PAD)
41#define BTN_MENU BUTTON_MENU
42#define BTN_FIRE BUTTON_SELECT
43
44#elif (CONFIG_KEYPAD == RECORDER_PAD)
45#define BTN_MENU BUTTON_OFF
46#define BTN_FIRE BUTTON_PLAY
47
48#elif (CONFIG_KEYPAD == ARCHOS_AV300_PAD)
49#define BTN_MENU BUTTON_OFF
50#define BTN_FIRE BUTTON_SELECT
51
52#elif (CONFIG_KEYPAD == ONDIO_PAD)
53#define BTN_MENU BUTTON_MENU
54#define BTN_FIRE BUTTON_UP
55
56#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD)
57#define BTN_MENU BUTTON_POWER
58#define BTN_FIRE BUTTON_SELECT
59
60#elif (CONFIG_KEYPAD == IRIVER_IFP7XX_PAD)
61#define BTN_MENU BUTTON_MODE
62#define BTN_FIRE BUTTON_SELECT
63
64#elif (CONFIG_KEYPAD == GIGABEAT_PAD) || \
65 (CONFIG_KEYPAD == GIGABEAT_S_PAD) || \
66 (CONFIG_KEYPAD == MROBE100_PAD) || \
67 (CONFIG_KEYPAD == SAMSUNG_YPR0_PAD)
68#define BTN_MENU BUTTON_MENU
69#define BTN_FIRE BUTTON_SELECT
70
71#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
72 (CONFIG_KEYPAD == SANSA_C200_PAD) || \
73 (CONFIG_KEYPAD == SANSA_CONNECT_PAD)
74#define BTN_MENU BUTTON_POWER
75#define BTN_FIRE BUTTON_SELECT
76
77#elif (CONFIG_KEYPAD == SANSA_FUZE_PAD)
78#define BTN_MENU (BUTTON_HOME|BUTTON_REPEAT)
79#define BTN_FIRE BUTTON_SELECT
80
81#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
82#define BTN_MENU BUTTON_POWER
83#define BTN_FIRE BUTTON_PLAY
84
85#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
86#define BTN_MENU BUTTON_RC_REC
87#define BTN_FIRE BUTTON_RC_PLAY
88
89#elif (CONFIG_KEYPAD == COWON_D2_PAD)
90#define BTN_MENU (BUTTON_MENU|BUTTON_REL)
91
92#elif CONFIG_KEYPAD == IAUDIO67_PAD
93#define BTN_MENU BUTTON_MENU
94#define BTN_FIRE BUTTON_PLAY
95
96#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
97#define BTN_MENU BUTTON_MENU
98#define BTN_FIRE BUTTON_SELECT
99
100#elif CONFIG_KEYPAD == PHILIPS_HDD1630_PAD
101#define BTN_MENU BUTTON_MENU
102#define BTN_FIRE BUTTON_SELECT
103
104#elif CONFIG_KEYPAD == PHILIPS_HDD6330_PAD
105#define BTN_MENU BUTTON_MENU
106#define BTN_FIRE BUTTON_PLAY
107
108#elif CONFIG_KEYPAD == PHILIPS_SA9200_PAD
109#define BTN_MENU BUTTON_MENU
110#define BTN_FIRE BUTTON_PLAY
111
112#elif (CONFIG_KEYPAD == ONDAVX747_PAD)
113#define BTN_MENU (BUTTON_MENU|BUTTON_REL)
114
115#elif (CONFIG_KEYPAD == SAMSUNG_YH_PAD)
116#define BTN_MENU BUTTON_LEFT
117#define BTN_FIRE BUTTON_PLAY
118
119#elif (CONFIG_KEYPAD == PBELL_VIBE500_PAD)
120#define BTN_MENU BUTTON_MENU
121#define BTN_FIRE BUTTON_OK
122
123#elif (CONFIG_KEYPAD == MPIO_HD200_PAD)
124#define BTN_MENU BUTTON_REC
125#define BTN_FIRE BUTTON_PLAY
126
127#elif (CONFIG_KEYPAD == MPIO_HD300_PAD)
128#define BTN_MENU BUTTON_MENU
129#define BTN_FIRE BUTTON_PLAY
130
131#elif (CONFIG_KEYPAD == SANSA_FUZEPLUS_PAD)
132#define BTN_MENU BUTTON_SELECT
133#define BTN_FIRE BUTTON_PLAYPAUSE
134
135#elif defined(HAVE_TOUCHSCREEN)
136 /* This is a touchscreen target */
137#else
138#error No keymap defined!
139#endif
140
141#ifdef HAVE_TOUCHSCREEN
142#ifndef BTN_MENU
143#define BTN_MENU (BUTTON_TOPLEFT|BUTTON_REL)
144#endif
145#ifndef BTN_FIRE
146#define BTN_FIRE BUTTON_CENTER
147#endif
148#endif
149 41
150/* The lowdown on source terminology: 42/* The lowdown on source terminology:
151 * a ROCKET is launched from the LCD bottom. 43 * a ROCKET is launched from the LCD bottom.
@@ -609,15 +501,18 @@ enum plugin_status plugin_start(const void* parameter)
609 501
610 rb->lcd_update(); 502 rb->lcd_update();
611 503
612 button = rb->button_get_w_tmo(HZ/fps_values[frames_per_second]); 504 button = pluginlib_getaction(HZ/fps_values[frames_per_second], plugin_contexts,
505 ARRAYLEN(plugin_contexts));
506
613 switch(button) 507 switch(button)
614 { 508 {
615 case BTN_MENU: /* back to config menu */ 509 case BTN_MENU: /* back to config menu */
510 case BTN_MENU2:
616 fireworks_menu(); 511 fireworks_menu();
617 break; 512 break;
618 513
619 case BTN_FIRE: /* fire off rockets manually */ 514 case BTN_FIRE: /* fire off rockets manually */
620 case BTN_FIRE|BUTTON_REPEAT: 515 case BTN_FIRE_REPEAT:
621 init_rocket(thisrocket); 516 init_rocket(thisrocket);
622 if(++thisrocket == MAX_ROCKETS) 517 if(++thisrocket == MAX_ROCKETS)
623 thisrocket=0; 518 thisrocket=0;