summaryrefslogtreecommitdiff
path: root/apps/plugins/starfield.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/starfield.c')
-rw-r--r--apps/plugins/starfield.c248
1 files changed, 23 insertions, 225 deletions
diff --git a/apps/plugins/starfield.c b/apps/plugins/starfield.c
index b410c4134a..811e9c61ae 100644
--- a/apps/plugins/starfield.c
+++ b/apps/plugins/starfield.c
@@ -20,231 +20,28 @@
20#include "plugin.h" 20#include "plugin.h"
21#include "lib/helper.h" 21#include "lib/helper.h"
22#include "lib/pluginlib_exit.h" 22#include "lib/pluginlib_exit.h"
23 23#include "lib/pluginlib_actions.h"
24/******************************* Globals ***********************************/ 24/******************************* Globals ***********************************/
25/* this set the context to use with PLA */
26static const struct button_mapping *plugin_contexts[] = { pla_main_ctx };
25 27
26/* Key assignement */ 28/* Key assignement */
27#if (CONFIG_KEYPAD == IPOD_4G_PAD) || \ 29#define STARFIELD_QUIT PLA_EXIT
28 (CONFIG_KEYPAD == IPOD_3G_PAD) || \ 30#define STARFIELD_QUIT2 PLA_CANCEL
29 (CONFIG_KEYPAD == IPOD_1G2G_PAD) 31#define STARFIELD_INCREASE_ZMOVE PLA_UP
30#define STARFIELD_QUIT BUTTON_MENU 32#define STARFIELD_INCREASE_ZMOVE_REPEAT PLA_UP_REPEAT
31#define STARFIELD_INCREASE_ZMOVE BUTTON_SCROLL_FWD 33#define STARFIELD_DECREASE_ZMOVE PLA_DOWN
32#define STARFIELD_DECREASE_ZMOVE BUTTON_SCROLL_BACK 34#define STARFIELD_DECREASE_ZMOVE_REPEAT PLA_DOWN_REPEAT
33#define STARFIELD_INCREASE_NB_STARS BUTTON_RIGHT 35#define STARFIELD_INCREASE_NB_STARS PLA_RIGHT
34#define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT 36#define STARFIELD_INCREASE_NB_STARS_REPEAT PLA_RIGHT_REPEAT
35#define STARFIELD_TOGGLE_COLOR BUTTON_PLAY 37#define STARFIELD_DECREASE_NB_STARS PLA_LEFT
36 38#define STARFIELD_DECREASE_NB_STARS_REPEAT PLA_LEFT_REPEAT
37#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) 39#define STARFIELD_TOGGLE_COLOR PLA_SELECT
38#define STARFIELD_QUIT BUTTON_POWER
39#define STARFIELD_INCREASE_ZMOVE BUTTON_UP
40#define STARFIELD_DECREASE_ZMOVE BUTTON_DOWN
41#define STARFIELD_INCREASE_NB_STARS BUTTON_RIGHT
42#define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT
43#define STARFIELD_TOGGLE_COLOR BUTTON_PLAY
44
45#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
46#define STARFIELD_QUIT BUTTON_POWER
47#define STARFIELD_INCREASE_ZMOVE BUTTON_SCROLL_UP
48#define STARFIELD_DECREASE_ZMOVE BUTTON_SCROLL_DOWN
49#define STARFIELD_INCREASE_NB_STARS BUTTON_RIGHT
50#define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT
51#define STARFIELD_TOGGLE_COLOR BUTTON_PLAY
52
53#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
54#define STARFIELD_QUIT BUTTON_POWER
55#define STARFIELD_INCREASE_ZMOVE BUTTON_UP
56#define STARFIELD_DECREASE_ZMOVE BUTTON_DOWN
57#define STARFIELD_INCREASE_NB_STARS BUTTON_RIGHT
58#define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT
59#define STARFIELD_TOGGLE_COLOR BUTTON_SELECT
60
61#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
62 (CONFIG_KEYPAD == SANSA_C200_PAD) || \
63 (CONFIG_KEYPAD == SANSA_CLIP_PAD) || \
64 (CONFIG_KEYPAD == SANSA_M200_PAD) || \
65 (CONFIG_KEYPAD == SANSA_CONNECT_PAD)
66#define STARFIELD_QUIT BUTTON_POWER
67#define STARFIELD_INCREASE_ZMOVE BUTTON_UP
68#define STARFIELD_DECREASE_ZMOVE BUTTON_DOWN
69#define STARFIELD_INCREASE_NB_STARS BUTTON_RIGHT
70#define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT
71#define STARFIELD_TOGGLE_COLOR BUTTON_SELECT
72
73#elif (CONFIG_KEYPAD == SANSA_FUZE_PAD)
74#define STARFIELD_QUIT (BUTTON_HOME|BUTTON_REPEAT)
75#define STARFIELD_INCREASE_ZMOVE BUTTON_UP
76#define STARFIELD_DECREASE_ZMOVE BUTTON_DOWN
77#define STARFIELD_INCREASE_NB_STARS BUTTON_RIGHT
78#define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT
79#define STARFIELD_TOGGLE_COLOR BUTTON_SELECT
80
81#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) || \
82 (CONFIG_KEYPAD == SAMSUNG_YPR0_PAD)
83#define STARFIELD_QUIT BUTTON_BACK
84#define STARFIELD_INCREASE_ZMOVE BUTTON_UP
85#define STARFIELD_DECREASE_ZMOVE BUTTON_DOWN
86#define STARFIELD_INCREASE_NB_STARS BUTTON_RIGHT
87#define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT
88#define STARFIELD_TOGGLE_COLOR BUTTON_SELECT
89
90#elif (CONFIG_KEYPAD == MROBE100_PAD)
91#define STARFIELD_QUIT BUTTON_POWER
92#define STARFIELD_INCREASE_ZMOVE BUTTON_UP
93#define STARFIELD_DECREASE_ZMOVE BUTTON_DOWN
94#define STARFIELD_INCREASE_NB_STARS BUTTON_RIGHT
95#define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT
96#define STARFIELD_TOGGLE_COLOR BUTTON_SELECT
97
98#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
99#define STARFIELD_QUIT BUTTON_RC_REC
100#define STARFIELD_INCREASE_ZMOVE BUTTON_RC_VOL_UP
101#define STARFIELD_DECREASE_ZMOVE BUTTON_RC_VOL_DOWN
102#define STARFIELD_INCREASE_NB_STARS BUTTON_RC_FF
103#define STARFIELD_DECREASE_NB_STARS BUTTON_RC_REW
104#define STARFIELD_TOGGLE_COLOR BUTTON_RC_MODE
105
106#elif CONFIG_KEYPAD == IAUDIO67_PAD
107#define STARFIELD_QUIT BUTTON_POWER
108#define STARFIELD_INCREASE_ZMOVE BUTTON_STOP
109#define STARFIELD_DECREASE_ZMOVE BUTTON_PLAY
110#define STARFIELD_INCREASE_NB_STARS BUTTON_LEFT
111#define STARFIELD_DECREASE_NB_STARS BUTTON_RIGHT
112#define STARFIELD_TOGGLE_COLOR BUTTON_MENU
113
114#elif (CONFIG_KEYPAD == COWON_D2_PAD)
115#define STARFIELD_QUIT BUTTON_POWER
116
117#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
118#define STARFIELD_QUIT BUTTON_BACK
119#define STARFIELD_INCREASE_ZMOVE BUTTON_UP
120#define STARFIELD_DECREASE_ZMOVE BUTTON_DOWN
121#define STARFIELD_INCREASE_NB_STARS BUTTON_RIGHT
122#define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT
123#define STARFIELD_TOGGLE_COLOR BUTTON_SELECT
124
125#elif CONFIG_KEYPAD == PHILIPS_HDD1630_PAD
126#define STARFIELD_QUIT BUTTON_POWER
127#define STARFIELD_INCREASE_ZMOVE BUTTON_UP
128#define STARFIELD_DECREASE_ZMOVE BUTTON_DOWN
129#define STARFIELD_INCREASE_NB_STARS BUTTON_RIGHT
130#define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT
131#define STARFIELD_TOGGLE_COLOR BUTTON_SELECT
132
133#elif CONFIG_KEYPAD == PHILIPS_HDD6330_PAD
134#define STARFIELD_QUIT BUTTON_POWER
135#define STARFIELD_INCREASE_ZMOVE BUTTON_UP
136#define STARFIELD_DECREASE_ZMOVE BUTTON_DOWN
137#define STARFIELD_INCREASE_NB_STARS BUTTON_RIGHT
138#define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT
139#define STARFIELD_TOGGLE_COLOR BUTTON_PLAY
140
141#elif CONFIG_KEYPAD == PHILIPS_SA9200_PAD
142#define STARFIELD_QUIT BUTTON_POWER
143#define STARFIELD_INCREASE_ZMOVE BUTTON_UP
144#define STARFIELD_DECREASE_ZMOVE BUTTON_DOWN
145#define STARFIELD_INCREASE_NB_STARS BUTTON_NEXT
146#define STARFIELD_DECREASE_NB_STARS BUTTON_PREV
147#define STARFIELD_TOGGLE_COLOR BUTTON_PLAY
148
149#elif (CONFIG_KEYPAD == ONDAVX747_PAD) || (CONFIG_KEYPAD == ONDAVX777_PAD) || (CONFIG_KEYPAD == MROBE500_PAD)
150#define STARFIELD_QUIT BUTTON_POWER
151
152#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
153#define STARFIELD_QUIT BUTTON_FFWD
154#define STARFIELD_INCREASE_ZMOVE BUTTON_UP
155#define STARFIELD_DECREASE_ZMOVE BUTTON_DOWN
156#define STARFIELD_INCREASE_NB_STARS BUTTON_RIGHT
157#define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT
158#define STARFIELD_TOGGLE_COLOR BUTTON_PLAY
159
160#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
161#define STARFIELD_QUIT BUTTON_REC
162#define STARFIELD_INCREASE_ZMOVE BUTTON_UP
163#define STARFIELD_DECREASE_ZMOVE BUTTON_DOWN
164#define STARFIELD_INCREASE_NB_STARS BUTTON_NEXT
165#define STARFIELD_DECREASE_NB_STARS BUTTON_PREV
166#define STARFIELD_TOGGLE_COLOR BUTTON_PLAY
167
168#elif CONFIG_KEYPAD == MPIO_HD200_PAD
169#define STARFIELD_QUIT (BUTTON_REC|BUTTON_PLAY)
170#define STARFIELD_INCREASE_ZMOVE BUTTON_VOL_UP
171#define STARFIELD_DECREASE_ZMOVE BUTTON_VOL_DOWN
172#define STARFIELD_INCREASE_NB_STARS BUTTON_FF
173#define STARFIELD_DECREASE_NB_STARS BUTTON_REW
174#define STARFIELD_TOGGLE_COLOR BUTTON_PLAY
175
176#elif CONFIG_KEYPAD == MPIO_HD300_PAD
177#define STARFIELD_QUIT (BUTTON_MENU|BUTTON_REPEAT)
178#define STARFIELD_INCREASE_ZMOVE BUTTON_UP
179#define STARFIELD_DECREASE_ZMOVE BUTTON_DOWN
180#define STARFIELD_INCREASE_NB_STARS BUTTON_FF
181#define STARFIELD_DECREASE_NB_STARS BUTTON_REW
182#define STARFIELD_TOGGLE_COLOR BUTTON_PLAY
183
184#elif CONFIG_KEYPAD == SANSA_FUZEPLUS_PAD
185#define STARFIELD_QUIT BUTTON_POWER
186#define STARFIELD_INCREASE_ZMOVE BUTTON_UP
187#define STARFIELD_DECREASE_ZMOVE BUTTON_DOWN
188#define STARFIELD_INCREASE_NB_STARS BUTTON_LEFT
189#define STARFIELD_DECREASE_NB_STARS BUTTON_RIGHT
190#define STARFIELD_TOGGLE_COLOR BUTTON_PLAYPAUSE
191
192#endif
193
194#ifdef HAVE_TOUCHSCREEN
195#ifndef STARFIELD_QUIT
196#define STARFIELD_QUIT BUTTON_TOPLEFT
197#endif
198#ifndef STARFIELD_INCREASE_ZMOVE
199#define STARFIELD_INCREASE_ZMOVE BUTTON_TOPMIDDLE
200#endif
201#ifndef STARFIELD_DECREASE_ZMOVE
202#define STARFIELD_DECREASE_ZMOVE BUTTON_BOTTOMMIDDLE
203#endif
204#ifndef STARFIELD_INCREASE_NB_STARS
205#define STARFIELD_INCREASE_NB_STARS BUTTON_MIDRIGHT
206#endif
207#ifndef STARFIELD_DECREASE_NB_STARS
208#define STARFIELD_DECREASE_NB_STARS BUTTON_MIDLEFT
209#endif
210#ifndef STARFIELD_TOGGLE_COLOR
211#define STARFIELD_TOGGLE_COLOR BUTTON_CENTER
212#endif
213#endif
214
215#ifndef STARFIELD_QUIT
216#define STARFIELD_QUIT BUTTON_OFF
217#endif
218#ifndef STARFIELD_INCREASE_ZMOVE
219#define STARFIELD_INCREASE_ZMOVE BUTTON_UP
220#endif
221#ifndef STARFIELD_DECREASE_ZMOVE
222#define STARFIELD_DECREASE_ZMOVE BUTTON_DOWN
223#endif
224#ifndef STARFIELD_INCREASE_NB_STARS
225#define STARFIELD_INCREASE_NB_STARS BUTTON_RIGHT
226#endif
227#ifndef STARFIELD_DECREASE_NB_STARS
228#define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT
229#endif
230
231#ifndef STARFIELD_TOGGLE_COLOR
232#ifdef BUTTON_SELECT
233#define STARFIELD_TOGGLE_COLOR BUTTON_SELECT
234#else
235#define STARFIELD_TOGGLE_COLOR BUTTON_PLAY
236#endif
237#endif
238#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD)
239#define STARFIELD_RC_QUIT BUTTON_RC_STOP
240#endif
241
242 40
243#define LCD_CENTER_X (LCD_WIDTH/2) 41#define LCD_CENTER_X (LCD_WIDTH/2)
244#define LCD_CENTER_Y (LCD_HEIGHT/2) 42#define LCD_CENTER_Y (LCD_HEIGHT/2)
245#define Z_MAX_DIST 100 43#define Z_MAX_DIST 100
246 44
247
248#define MAX_STARS (LCD_WIDTH*LCD_HEIGHT*20)/100 45#define MAX_STARS (LCD_WIDTH*LCD_HEIGHT*20)/100
249#define INIT_STARS 200 46#define INIT_STARS 200
250#define STARFIELD_INCREASE_STEP 50 47#define STARFIELD_INCREASE_STEP 50
@@ -483,28 +280,31 @@ static int plugin_main(void)
483 } 280 }
484 rb->lcd_update(); 281 rb->lcd_update();
485 282
486 button = rb->button_get(false); 283 /*We get button from PLA this way */
284 button = pluginlib_getaction(TIMEOUT_NOBLOCK, plugin_contexts,
285 ARRAYLEN(plugin_contexts));
286
487 switch(button) 287 switch(button)
488 { 288 {
489 case (STARFIELD_INCREASE_ZMOVE): 289 case (STARFIELD_INCREASE_ZMOVE):
490 case (STARFIELD_INCREASE_ZMOVE | BUTTON_REPEAT): 290 case (STARFIELD_INCREASE_ZMOVE_REPEAT):
491 ++(starfield.z_move); 291 ++(starfield.z_move);
492 pulse=false; 292 pulse=false;
493 t_disp=MSG_DISP_TIME; 293 t_disp=MSG_DISP_TIME;
494 break; 294 break;
495 case (STARFIELD_DECREASE_ZMOVE): 295 case (STARFIELD_DECREASE_ZMOVE):
496 case (STARFIELD_DECREASE_ZMOVE | BUTTON_REPEAT): 296 case (STARFIELD_DECREASE_ZMOVE_REPEAT):
497 --(starfield.z_move); 297 --(starfield.z_move);
498 pulse=false; 298 pulse=false;
499 t_disp=MSG_DISP_TIME; 299 t_disp=MSG_DISP_TIME;
500 break; 300 break;
501 case(STARFIELD_INCREASE_NB_STARS): 301 case(STARFIELD_INCREASE_NB_STARS):
502 case(STARFIELD_INCREASE_NB_STARS | BUTTON_REPEAT): 302 case(STARFIELD_INCREASE_NB_STARS_REPEAT):
503 starfield_add_stars(&starfield, STARFIELD_INCREASE_STEP); 303 starfield_add_stars(&starfield, STARFIELD_INCREASE_STEP);
504 t_disp=MSG_DISP_TIME; 304 t_disp=MSG_DISP_TIME;
505 break; 305 break;
506 case(STARFIELD_DECREASE_NB_STARS): 306 case(STARFIELD_DECREASE_NB_STARS):
507 case(STARFIELD_DECREASE_NB_STARS | BUTTON_REPEAT): 307 case(STARFIELD_DECREASE_NB_STARS_REPEAT):
508 starfield_del_stars(&starfield, STARFIELD_INCREASE_STEP); 308 starfield_del_stars(&starfield, STARFIELD_INCREASE_STEP);
509 t_disp=MSG_DISP_TIME; 309 t_disp=MSG_DISP_TIME;
510 break; 310 break;
@@ -513,10 +313,8 @@ static int plugin_main(void)
513 starfield.color=!starfield.color; 313 starfield.color=!starfield.color;
514 break; 314 break;
515#endif 315#endif
516#ifdef STARFIELD_RC_QUIT
517 case STARFIELD_RC_QUIT:
518#endif
519 case(STARFIELD_QUIT): 316 case(STARFIELD_QUIT):
317 case(STARFIELD_QUIT2):
520 return PLUGIN_OK; 318 return PLUGIN_OK;
521 break; 319 break;
522 default: 320 default: