diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/action.c | 3 | ||||
-rw-r--r-- | apps/action.h | 2 | ||||
-rwxr-xr-x | apps/plugins/bubbles.c | 145 | ||||
-rw-r--r-- | apps/plugins/lib/SOURCES | 1 | ||||
-rw-r--r-- | apps/plugins/lib/pluginlib_actions.c | 46 | ||||
-rw-r--r-- | apps/plugins/lib/pluginlib_actions.h | 181 | ||||
-rw-r--r-- | apps/plugins/metronome.c | 180 |
7 files changed, 306 insertions, 252 deletions
diff --git a/apps/action.c b/apps/action.c index 0f332a29f5..07d3cb25a2 100644 --- a/apps/action.c +++ b/apps/action.c | |||
@@ -161,7 +161,8 @@ int get_action_worker(int context, int timeout, | |||
161 | 161 | ||
162 | ret = do_button_check(items,button,last_button,&i); | 162 | ret = do_button_check(items,button,last_button,&i); |
163 | 163 | ||
164 | if (context ==(int)CONTEXT_STOPSEARCHING) | 164 | if ((context ==(int)CONTEXT_STOPSEARCHING) || |
165 | items == NULL ) | ||
165 | break; | 166 | break; |
166 | 167 | ||
167 | if (ret == ACTION_UNKNOWN ) | 168 | if (ret == ACTION_UNKNOWN ) |
diff --git a/apps/action.h b/apps/action.h index d3da152e35..b0725ddb41 100644 --- a/apps/action.h +++ b/apps/action.h | |||
@@ -210,6 +210,8 @@ enum { | |||
210 | ACTION_KBD_MORSE_INPUT, | 210 | ACTION_KBD_MORSE_INPUT, |
211 | ACTION_KBD_MORSE_SELECT, | 211 | ACTION_KBD_MORSE_SELECT, |
212 | 212 | ||
213 | |||
214 | LAST_ACTION_PLACEHOLDER, /* custom actions should be this + something */ | ||
213 | }; | 215 | }; |
214 | 216 | ||
215 | struct button_mapping { | 217 | struct button_mapping { |
diff --git a/apps/plugins/bubbles.c b/apps/plugins/bubbles.c index 9ce6ee80c5..e5a094e053 100755 --- a/apps/plugins/bubbles.c +++ b/apps/plugins/bubbles.c | |||
@@ -21,6 +21,7 @@ | |||
21 | 21 | ||
22 | #include "plugin.h" | 22 | #include "plugin.h" |
23 | #include "xlcd.h" | 23 | #include "xlcd.h" |
24 | #include "pluginlib_actions.h" | ||
24 | 25 | ||
25 | #ifdef HAVE_LCD_BITMAP | 26 | #ifdef HAVE_LCD_BITMAP |
26 | 27 | ||
@@ -53,93 +54,6 @@ PLUGIN_HEADER | |||
53 | #define NUM_COMPRESS 9 | 54 | #define NUM_COMPRESS 9 |
54 | #define MAX_SHOTTIME 1000 | 55 | #define MAX_SHOTTIME 1000 |
55 | 56 | ||
56 | /* button definitions */ | ||
57 | #if (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD) | ||
58 | #define BUBBLES_LEFT BUTTON_LEFT | ||
59 | #define BUBBLES_RIGHT BUTTON_RIGHT | ||
60 | #define BUBBLES_UP BUTTON_UP | ||
61 | #define BUBBLES_DOWN BUTTON_DOWN | ||
62 | #define BUBBLES_QUIT BUTTON_OFF | ||
63 | #define BUBBLES_START BUTTON_ON | ||
64 | #define BUBBLES_SELECT BUTTON_SELECT | ||
65 | #define BUBBLES_RESUME BUTTON_MODE | ||
66 | |||
67 | #define BUBBLES_RC_QUIT BUTTON_RC_STOP | ||
68 | |||
69 | #elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD) | ||
70 | #define BUBBLES_LEFT BUTTON_SCROLL_BACK | ||
71 | #define BUBBLES_RIGHT BUTTON_SCROLL_FWD | ||
72 | #define BUBBLES_UP BUTTON_SCROLL_FWD | ||
73 | #define BUBBLES_DOWN BUTTON_SCROLL_BACK | ||
74 | #define BUBBLES_QUIT BUTTON_MENU|BUTTON_REL | ||
75 | #define BUBBLES_START BUTTON_PLAY|BUTTON_REL | ||
76 | #define BUBBLES_SELECT BUTTON_SELECT | ||
77 | #define BUBBLES_RESUME BUTTON_RIGHT|BUTTON_LEFT | ||
78 | |||
79 | #elif CONFIG_KEYPAD == IAUDIO_X5_PAD | ||
80 | #define BUBBLES_LEFT BUTTON_LEFT | ||
81 | #define BUBBLES_RIGHT BUTTON_RIGHT | ||
82 | #define BUBBLES_UP BUTTON_UP | ||
83 | #define BUBBLES_DOWN BUTTON_DOWN | ||
84 | #define BUBBLES_QUIT BUTTON_POWER | ||
85 | #define BUBBLES_START BUTTON_PLAY | ||
86 | #define BUBBLES_SELECT BUTTON_SELECT | ||
87 | #define BUBBLES_RESUME BUTTON_REC | ||
88 | |||
89 | #elif CONFIG_KEYPAD == GIGABEAT_PAD | ||
90 | #define BUBBLES_LEFT BUTTON_LEFT | ||
91 | #define BUBBLES_RIGHT BUTTON_RIGHT | ||
92 | #define BUBBLES_UP BUTTON_UP | ||
93 | #define BUBBLES_DOWN BUTTON_DOWN | ||
94 | #define BUBBLES_QUIT BUTTON_A | ||
95 | #define BUBBLES_START BUTTON_POWER | ||
96 | #define BUBBLES_SELECT BUTTON_SELECT | ||
97 | #define BUBBLES_RESUME BUTTON_MENU | ||
98 | |||
99 | #elif CONFIG_KEYPAD == RECORDER_PAD | ||
100 | #define BUBBLES_LEFT BUTTON_LEFT | ||
101 | #define BUBBLES_RIGHT BUTTON_RIGHT | ||
102 | #define BUBBLES_UP BUTTON_UP | ||
103 | #define BUBBLES_DOWN BUTTON_DOWN | ||
104 | #define BUBBLES_QUIT BUTTON_OFF | ||
105 | #define BUBBLES_START BUTTON_ON | ||
106 | #define BUBBLES_SELECT BUTTON_PLAY | ||
107 | #define BUBBLES_RESUME BUTTON_F1 | ||
108 | |||
109 | #elif CONFIG_KEYPAD == ONDIO_PAD | ||
110 | #define BUBBLES_LEFT BUTTON_LEFT | ||
111 | #define BUBBLES_RIGHT BUTTON_RIGHT | ||
112 | #define BUBBLES_UP BUTTON_RIGHT | ||
113 | #define BUBBLES_DOWN BUTTON_LEFT | ||
114 | #define BUBBLES_QUIT BUTTON_OFF | ||
115 | #define BUBBLES_START BUTTON_MENU | ||
116 | #define BUBBLES_SELECT BUTTON_UP | ||
117 | #define BUBBLES_RESUME BUTTON_DOWN | ||
118 | |||
119 | #elif CONFIG_KEYPAD == SANSA_E200_PAD | ||
120 | #define BUBBLES_LEFT BUTTON_LEFT | ||
121 | #define BUBBLES_RIGHT BUTTON_RIGHT | ||
122 | #define BUBBLES_UP BUTTON_SCROLL_UP | ||
123 | #define BUBBLES_DOWN BUTTON_SCROLL_DOWN | ||
124 | #define BUBBLES_QUIT BUTTON_POWER | ||
125 | #define BUBBLES_START BUTTON_PLAY | ||
126 | #define BUBBLES_SELECT BUTTON_SELECT | ||
127 | #define BUBBLES_RESUME BUTTON_DOWN | ||
128 | |||
129 | #elif CONFIG_KEYPAD == IRIVER_H10_PAD | ||
130 | #define BUBBLES_LEFT BUTTON_LEFT | ||
131 | #define BUBBLES_RIGHT BUTTON_RIGHT | ||
132 | #define BUBBLES_UP BUTTON_SCROLL_UP | ||
133 | #define BUBBLES_DOWN BUTTON_SCROLL_DOWN | ||
134 | #define BUBBLES_QUIT BUTTON_POWER | ||
135 | #define BUBBLES_START BUTTON_PLAY | ||
136 | #define BUBBLES_SELECT BUTTON_REW | ||
137 | #define BUBBLES_RESUME BUTTON_FF | ||
138 | |||
139 | #else | ||
140 | #error BUBBLES: Unsupported keypad | ||
141 | #endif | ||
142 | |||
143 | /* bubbles will consume height of 10*ROW_HEIGHT+2*(BUBBLE_HEIGHT-1)+BUBBLE_HEIGHT/2 */ | 57 | /* bubbles will consume height of 10*ROW_HEIGHT+2*(BUBBLE_HEIGHT-1)+BUBBLE_HEIGHT/2 */ |
144 | /* 24x24 bubbles (iPod Video) */ | 58 | /* 24x24 bubbles (iPod Video) */ |
145 | #if (LCD_HEIGHT == 240) && (LCD_WIDTH == 320) | 59 | #if (LCD_HEIGHT == 240) && (LCD_WIDTH == 320) |
@@ -2395,31 +2309,29 @@ static int bubbles_handlebuttons(struct game_context* bb, bool animblock, | |||
2395 | int button; | 2309 | int button; |
2396 | int buttonres; | 2310 | int buttonres; |
2397 | long start; | 2311 | long start; |
2398 | 2312 | const struct button_mapping *plugin_contexts[] | |
2399 | button = rb->button_get_w_tmo(timeout); | 2313 | = {generic_directions,generic_actions}; |
2314 | button = pluginlib_getaction(rb,timeout,plugin_contexts,2); | ||
2400 | 2315 | ||
2401 | #ifdef HAS_BUTTON_HOLD | 2316 | #ifdef HAS_BUTTON_HOLD |
2402 | if (rb->button_hold()) | 2317 | if (rb->button_hold()) |
2403 | button = BUBBLES_START; | 2318 | button = PLA_START; |
2404 | #endif | 2319 | #endif |
2405 | 2320 | ||
2406 | switch(button){ | 2321 | switch(button){ |
2407 | case (BUBBLES_LEFT|BUTTON_REPEAT): | 2322 | case PLA_LEFT_REPEAT: |
2408 | if(bb->angle > MIN_ANGLE) bb->angle -= 4; | 2323 | if(bb->angle > MIN_ANGLE) bb->angle -= 4; |
2409 | case BUBBLES_LEFT: /* change angle to the left */ | 2324 | case PLA_LEFT: /* change angle to the left */ |
2410 | if(bb->angle > MIN_ANGLE) bb->angle -= 2; | 2325 | if(bb->angle > MIN_ANGLE) bb->angle -= 2; |
2411 | break; | 2326 | break; |
2412 | 2327 | ||
2413 | case (BUBBLES_RIGHT|BUTTON_REPEAT): | 2328 | case PLA_RIGHT_REPEAT: |
2414 | if(bb->angle < MAX_ANGLE) bb->angle += 4; | 2329 | if(bb->angle < MAX_ANGLE) bb->angle += 4; |
2415 | case BUBBLES_RIGHT: /* change angle to the right */ | 2330 | case PLA_RIGHT: /* change angle to the right */ |
2416 | if(bb->angle < MAX_ANGLE) bb->angle += 2; | 2331 | if(bb->angle < MAX_ANGLE) bb->angle += 2; |
2417 | break; | 2332 | break; |
2418 | 2333 | ||
2419 | case BUBBLES_SELECT: /* fire the shot */ | 2334 | case PLA_FIRE: /* fire the shot */ |
2420 | #if CONFIG_KEYPAD == IRIVER_H10_PAD | ||
2421 | case BUBBLES_UP: /* easier to press on H10 */ | ||
2422 | #endif | ||
2423 | if(!animblock) { | 2335 | if(!animblock) { |
2424 | bb->elapsedlvl += bb->elapsedshot; | 2336 | bb->elapsedlvl += bb->elapsedshot; |
2425 | bb->elapsedshot = 0; | 2337 | bb->elapsedshot = 0; |
@@ -2431,29 +2343,27 @@ static int bubbles_handlebuttons(struct game_context* bb, bool animblock, | |||
2431 | } | 2343 | } |
2432 | break; | 2344 | break; |
2433 | 2345 | ||
2434 | case BUBBLES_START: /* pause the game */ | 2346 | case PLA_START: /* pause the game */ |
2435 | start = *rb->current_tick; | 2347 | start = *rb->current_tick; |
2436 | rb->splash(1, true, "Paused"); | 2348 | rb->splash(1, true, "Paused"); |
2437 | while(rb->button_get(true) != (BUBBLES_START)); | 2349 | while(pluginlib_getaction(rb,TIMEOUT_BLOCK,plugin_contexts,2) |
2350 | != (PLA_START)); | ||
2438 | bb->startedshot += *rb->current_tick-start; | 2351 | bb->startedshot += *rb->current_tick-start; |
2439 | bubbles_drawboard(bb); | 2352 | bubbles_drawboard(bb); |
2440 | rb->lcd_update(); | 2353 | rb->lcd_update(); |
2441 | break; | 2354 | break; |
2442 | 2355 | ||
2443 | case BUBBLES_RESUME: /* save and end the game */ | 2356 | case PLA_MENU: /* save and end the game */ |
2444 | if(!animblock) { | 2357 | if(!animblock) { |
2445 | rb->splash(HZ/2, true, "Saving game..."); | 2358 | rb->splash(HZ/2, true, "Saving game..."); |
2446 | bubbles_savegame(bb); | 2359 | bubbles_savegame(bb); |
2447 | return BB_END; | 2360 | return BB_END; |
2448 | } | 2361 | } |
2449 | break; | 2362 | break; |
2450 | #ifdef BUBBLES_RC_QUIT | 2363 | case PLA_QUIT: /* end the game */ |
2451 | case BUBBLES_RC_QUIT: | ||
2452 | #endif | ||
2453 | case BUBBLES_QUIT: /* end the game */ | ||
2454 | return BB_END; | 2364 | return BB_END; |
2455 | 2365 | ||
2456 | case BUTTON_NONE: /* no button pressed */ | 2366 | case ACTION_UNKNOWN: /* no button pressed */ |
2457 | break; | 2367 | break; |
2458 | 2368 | ||
2459 | default: | 2369 | default: |
@@ -2479,6 +2389,8 @@ static int bubbles(struct game_context* bb) { | |||
2479 | bool startgame = false; | 2389 | bool startgame = false; |
2480 | bool showscores = false; | 2390 | bool showscores = false; |
2481 | long timeout; | 2391 | long timeout; |
2392 | const struct button_mapping *plugin_contexts[] | ||
2393 | = {generic_directions,generic_actions}; | ||
2482 | 2394 | ||
2483 | bubbles_setcolors(); | 2395 | bubbles_setcolors(); |
2484 | 2396 | ||
@@ -2578,23 +2490,20 @@ static int bubbles(struct game_context* bb) { | |||
2578 | rb->lcd_update(); | 2490 | rb->lcd_update(); |
2579 | 2491 | ||
2580 | /* handle menu button presses */ | 2492 | /* handle menu button presses */ |
2581 | button = rb->button_get(true); | 2493 | button = pluginlib_getaction(rb,timeout,plugin_contexts,2); |
2582 | switch(button){ | 2494 | switch(button){ |
2583 | case BUBBLES_START: /* start playing */ | 2495 | case PLA_START: /* start playing */ |
2584 | bb->level = startlevel; | 2496 | bb->level = startlevel; |
2585 | startgame = true; | 2497 | startgame = true; |
2586 | break; | 2498 | break; |
2587 | #ifdef BUBBLES_RC_QUIT | 2499 | case PLA_QUIT: /* quit program */ |
2588 | case BUBBLES_RC_QUIT: | ||
2589 | #endif | ||
2590 | case BUBBLES_QUIT: /* quit program */ | ||
2591 | if(showscores) { | 2500 | if(showscores) { |
2592 | showscores = false; | 2501 | showscores = false; |
2593 | break; | 2502 | break; |
2594 | } | 2503 | } |
2595 | return BB_QUIT; | 2504 | return BB_QUIT; |
2596 | 2505 | ||
2597 | case BUBBLES_RESUME: /* resume game */ | 2506 | case PLA_MENU: /* resume game */ |
2598 | if(!bubbles_loadgame(bb)) { | 2507 | if(!bubbles_loadgame(bb)) { |
2599 | rb->splash(HZ*2, true, "Nothing to resume"); | 2508 | rb->splash(HZ*2, true, "Nothing to resume"); |
2600 | } else { | 2509 | } else { |
@@ -2602,12 +2511,12 @@ static int bubbles(struct game_context* bb) { | |||
2602 | } | 2511 | } |
2603 | break; | 2512 | break; |
2604 | 2513 | ||
2605 | case BUBBLES_SELECT: /* toggle high scores */ | 2514 | case PLA_FIRE: /* toggle high scores */ |
2606 | showscores = !showscores; | 2515 | showscores = !showscores; |
2607 | break; | 2516 | break; |
2608 | 2517 | ||
2609 | case (BUBBLES_UP|BUTTON_REPEAT): | 2518 | case PLA_UP: /* increase starting level */ |
2610 | case BUBBLES_UP: /* increase starting level */ | 2519 | case PLA_UP_REPEAT: |
2611 | if(startlevel >= bb->highlevel) { | 2520 | if(startlevel >= bb->highlevel) { |
2612 | startlevel = 0; | 2521 | startlevel = 0; |
2613 | } else { | 2522 | } else { |
@@ -2615,8 +2524,8 @@ static int bubbles(struct game_context* bb) { | |||
2615 | } | 2524 | } |
2616 | break; | 2525 | break; |
2617 | 2526 | ||
2618 | case (BUBBLES_DOWN|BUTTON_REPEAT): | 2527 | case PLA_DOWN: /* decrease starting level */ |
2619 | case BUBBLES_DOWN: /* decrease starting level */ | 2528 | case PLA_DOWN_REPEAT: |
2620 | if(startlevel <= 0) { | 2529 | if(startlevel <= 0) { |
2621 | startlevel = bb->highlevel; | 2530 | startlevel = bb->highlevel; |
2622 | } else { | 2531 | } else { |
diff --git a/apps/plugins/lib/SOURCES b/apps/plugins/lib/SOURCES index 6002934ac0..d57db3bbc8 100644 --- a/apps/plugins/lib/SOURCES +++ b/apps/plugins/lib/SOURCES | |||
@@ -25,3 +25,4 @@ xlcd_scroll.c | |||
25 | bmp.c | 25 | bmp.c |
26 | #endif | 26 | #endif |
27 | #endif | 27 | #endif |
28 | pluginlib_actions.c | ||
diff --git a/apps/plugins/lib/pluginlib_actions.c b/apps/plugins/lib/pluginlib_actions.c new file mode 100644 index 0000000000..312eb61ea6 --- /dev/null +++ b/apps/plugins/lib/pluginlib_actions.c | |||
@@ -0,0 +1,46 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright (C) 2006 Jonathan Gordon | ||
11 | * | ||
12 | * | ||
13 | * All files in this archive are subject to the GNU General Public License. | ||
14 | * See the file COPYING in the source tree root for full license agreement. | ||
15 | * | ||
16 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
17 | * KIND, either express or implied. | ||
18 | * | ||
19 | ****************************************************************************/ | ||
20 | |||
21 | #include "plugin.h" | ||
22 | #include "action.h" | ||
23 | #include "pluginlib_actions.h" | ||
24 | |||
25 | static struct button_mapping **plugin_context_order; | ||
26 | static int plugin_context_count = 0; | ||
27 | static int last_context = 0; /* index into plugin_context_order | ||
28 | of the last context returned */ | ||
29 | |||
30 | const struct button_mapping* get_context_map(int context) | ||
31 | { | ||
32 | (void)context; | ||
33 | if (last_context<plugin_context_count) | ||
34 | return plugin_context_order[last_context++]; | ||
35 | else return NULL; | ||
36 | } | ||
37 | |||
38 | int pluginlib_getaction(struct plugin_api *api,int timeout, | ||
39 | const struct button_mapping *plugin_contexts[], | ||
40 | int count) | ||
41 | { | ||
42 | plugin_context_order = (struct button_mapping **)plugin_contexts; | ||
43 | plugin_context_count = count; | ||
44 | last_context = 0; | ||
45 | return api->get_custom_action(CONTEXT_CUSTOM,timeout,get_context_map); | ||
46 | } | ||
diff --git a/apps/plugins/lib/pluginlib_actions.h b/apps/plugins/lib/pluginlib_actions.h new file mode 100644 index 0000000000..8dcd2b653d --- /dev/null +++ b/apps/plugins/lib/pluginlib_actions.h | |||
@@ -0,0 +1,181 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright (C) 2006 Jonathan Gordon | ||
11 | * | ||
12 | * | ||
13 | * All files in this archive are subject to the GNU General Public License. | ||
14 | * See the file COPYING in the source tree root for full license agreement. | ||
15 | * | ||
16 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
17 | * KIND, either express or implied. | ||
18 | * | ||
19 | ****************************************************************************/ | ||
20 | |||
21 | #ifndef __PLUGINLIB_ACTIONS_H__ | ||
22 | #define __PLUGINLIB_ACTIONS_H__ | ||
23 | |||
24 | #include "config.h" | ||
25 | #include "plugin.h" | ||
26 | #include "action.h" | ||
27 | |||
28 | /* PLA stands for Plugin Lib Action :P */ | ||
29 | enum { | ||
30 | PLA_UP = LAST_ACTION_PLACEHOLDER+1, | ||
31 | PLA_DOWN, | ||
32 | PLA_LEFT, | ||
33 | PLA_RIGHT, | ||
34 | PLA_UP_REPEAT, | ||
35 | PLA_DOWN_REPEAT, | ||
36 | PLA_LEFT_REPEAT, | ||
37 | PLA_RIGHT_REPEAT, | ||
38 | |||
39 | PLA_QUIT, | ||
40 | PLA_START, | ||
41 | PLA_MENU, | ||
42 | PLA_FIRE, | ||
43 | PLA_FIRE_REPEAT, | ||
44 | |||
45 | LAST_PLUGINLIB_ACTION | ||
46 | }; | ||
47 | |||
48 | static const struct button_mapping generic_directions[] = | ||
49 | { | ||
50 | #if (CONFIG_KEYPAD == IRIVER_H100_PAD) \ | ||
51 | || (CONFIG_KEYPAD == IRIVER_H300_PAD) \ | ||
52 | || (CONFIG_KEYPAD == IAUDIO_X5_PAD) \ | ||
53 | || (CONFIG_KEYPAD == GIGABEAT_PAD) \ | ||
54 | || (CONFIG_KEYPAD == RECORDER_PAD) \ | ||
55 | || (CONFIG_KEYPAD == IRIVER_IFP7XX_PAD) | ||
56 | { PLA_UP, BUTTON_UP, BUTTON_NONE}, | ||
57 | { PLA_DOWN, BUTTON_DOWN, BUTTON_NONE}, | ||
58 | { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE}, | ||
59 | { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE}, | ||
60 | { PLA_UP_REPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE}, | ||
61 | { PLA_DOWN_REPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE}, | ||
62 | { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE}, | ||
63 | { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE}, | ||
64 | #elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD) | ||
65 | { PLA_UP, BUTTON_SCROLL_FWD, BUTTON_NONE}, | ||
66 | { PLA_DOWN, BUTTON_SCROLL_BACK, BUTTON_NONE}, | ||
67 | { PLA_LEFT, BUTTON_SCROLL_BACK, BUTTON_NONE}, | ||
68 | { PLA_RIGHT, BUTTON_SCROLL_FWD, BUTTON_NONE}, | ||
69 | { PLA_UP_REPEAT, BUTTON_SCROLL_FWD, BUTTON_NONE}, | ||
70 | { PLA_DOWN_REPEAT, BUTTON_SCROLL_BACK, BUTTON_NONE}, | ||
71 | { PLA_LEFT_REPEAT, BUTTON_SCROLL_BACK, BUTTON_NONE}, | ||
72 | { PLA_RIGHT_REPEAT, BUTTON_SCROLL_FWD, BUTTON_NONE}, | ||
73 | #elif CONFIG_KEYPAD == ONDIO_PAD | ||
74 | { PLA_UP, BUTTON_RIGHT, BUTTON_NONE}, | ||
75 | { PLA_DOWN, BUTTON_LEFT, BUTTON_NONE}, | ||
76 | { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE}, | ||
77 | { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE}, | ||
78 | { PLA_UP_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE}, | ||
79 | { PLA_DOWN_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE}, | ||
80 | { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE}, | ||
81 | { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE}, | ||
82 | #elif CONFIG_KEYPAD == PLAYER_PAD | ||
83 | {PLA_UP, BUTTON_STOP, BUTTON_NONE}, | ||
84 | {PLA_DOWN, BUTTON_PLAY, BUTTON_NONE}, | ||
85 | {PLA_LEFT, BUTTON_LEFT, BUTTON_NONE}, | ||
86 | {PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE}, | ||
87 | {PLA_UP_REPEAT, BUTTON_STOP|BUTTON_REPEAT, BUTTON_NONE}, | ||
88 | {PLA_DOWN_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE}, | ||
89 | {PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE}, | ||
90 | {PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE}, | ||
91 | #elif (CONFIG_KEYPAD == SANSA_E200_PAD) \ | ||
92 | || (CONFIG_KEYPAD == IRIVER_H10_PAD) | ||
93 | { PLA_UP, BUTTON_SCROLL_UP, BUTTON_NONE}, | ||
94 | { PLA_DOWN, BUTTON_SCROLL_DOWN, BUTTON_NONE}, | ||
95 | { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE}, | ||
96 | { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE}, | ||
97 | { PLA_UP_REPEAT, BUTTON_SCROLL_UP|BUTTON_REPEAT, BUTTON_NONE}, | ||
98 | { PLA_DOWN_REPEAT, BUTTON_SCROLL_DOWN|BUTTON_REPEAT, BUTTON_NONE}, | ||
99 | { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE}, | ||
100 | { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE}, | ||
101 | #else | ||
102 | #error pluginlib_actions: Unsupported keypad | ||
103 | #endif | ||
104 | {CONTEXT_CUSTOM,BUTTON_NONE,BUTTON_NONE} | ||
105 | }; | ||
106 | |||
107 | /* these were taken from the bubbles plugin, so may need tweaking */ | ||
108 | static const struct button_mapping generic_actions[] = | ||
109 | { | ||
110 | #if (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD) | ||
111 | {PLA_QUIT, BUTTON_OFF, BUTTON_NONE}, | ||
112 | {PLA_QUIT, BUTTON_RC_STOP, BUTTON_NONE}, | ||
113 | {PLA_START, BUTTON_ON, BUTTON_NONE}, | ||
114 | {PLA_MENU, BUTTON_MODE, BUTTON_NONE}, | ||
115 | {PLA_FIRE, BUTTON_SELECT, BUTTON_NONE}, | ||
116 | {PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE}, | ||
117 | #elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD) | ||
118 | {PLA_QUIT, BUTTON_MENU|BUTTON_SELECT, BUTTON_NONE}, | ||
119 | {PLA_START, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY}, | ||
120 | {PLA_MENU, BUTTON_MENU, BUTTON_NONE}, | ||
121 | {PLA_FIRE, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT}, | ||
122 | {PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE}, | ||
123 | #elif CONFIG_KEYPAD == IAUDIO_X5_PAD | ||
124 | {PLA_QUIT, BUTTON_POWER, BUTTON_NONE}, | ||
125 | {PLA_START, BUTTON_PLAY, BUTTON_NONE}, | ||
126 | {PLA_MENU, BUTTON_REC, BUTTON_NONE}, | ||
127 | {PLA_FIRE, BUTTON_SELECT, BUTTON_NONE}, | ||
128 | {PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE}, | ||
129 | #elif CONFIG_KEYPAD == GIGABEAT_PAD | ||
130 | {PLA_QUIT, BUTTON_A, BUTTON_NONE}, | ||
131 | {PLA_START, BUTTON_POWER, BUTTON_NONE}, | ||
132 | {PLA_MENU, BUTTON_MENU, BUTTON_NONE}, | ||
133 | {PLA_FIRE, BUTTON_SELECT, BUTTON_NONE}, | ||
134 | {PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE}, | ||
135 | #elif CONFIG_KEYPAD == RECORDER_PAD | ||
136 | {PLA_QUIT, BUTTON_OFF, BUTTON_NONE}, | ||
137 | {PLA_START, BUTTON_ON, BUTTON_NONE}, | ||
138 | {PLA_MENU, BUTTON_F1, BUTTON_NONE}, | ||
139 | {PLA_FIRE, BUTTON_PLAY, BUTTON_NONE}, | ||
140 | {PLA_FIRE_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE}, | ||
141 | #elif CONFIG_KEYPAD == ONDIO_PAD | ||
142 | {PLA_QUIT, BUTTON_OFF, BUTTON_NONE}, | ||
143 | {PLA_START, BUTTON_MENU, BUTTON_NONE}, | ||
144 | {PLA_MENU, BUTTON_DOWN, BUTTON_NONE}, | ||
145 | {PLA_FIRE, BUTTON_UP, BUTTON_NONE}, | ||
146 | {PLA_FIRE_REPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE}, | ||
147 | #elif CONFIG_KEYPAD == PLAYER_PAD | ||
148 | {PLA_QUIT, BUTTON_STOP|BUTTON_REPEAT, BUTTON_NONE}, | ||
149 | {PLA_START, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE}, | ||
150 | {PLA_MENU, BUTTON_MENU, BUTTON_NONE}, | ||
151 | {PLA_FIRE, BUTTON_ON, BUTTON_NONE}, | ||
152 | {PLA_FIRE_REPEAT, BUTTON_ON|BUTTON_REPEAT, BUTTON_NONE}, | ||
153 | #elif CONFIG_KEYPAD == SANSA_E200_PAD | ||
154 | {PLA_QUIT, BUTTON_POWER, BUTTON_NONE}, | ||
155 | {PLA_START, BUTTON_PLAY, BUTTON_NONE}, | ||
156 | {PLA_MENU, BUTTON_DOWN, BUTTON_NONE}, | ||
157 | {PLA_FIRE, BUTTON_SELECT, BUTTON_NONE}, | ||
158 | {PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE}, | ||
159 | #elif CONFIG_KEYPAD == IRIVER_H10_PAD | ||
160 | {PLA_QUIT, BUTTON_POWER, BUTTON_NONE}, | ||
161 | {PLA_START, BUTTON_PLAY, BUTTON_NONE}, | ||
162 | {PLA_MENU, BUTTON_FF, BUTTON_NONE}, | ||
163 | {PLA_FIRE, BUTTON_REW, BUTTON_NONE}, | ||
164 | {PLA_FIRE_REPEAT, BUTTON_REW|BUTTON_REPEAT, BUTTON_NONE}, | ||
165 | #elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD | ||
166 | {PLA_QUIT, BUTTON_EQ, BUTTON_NONE}, | ||
167 | {PLA_START, BUTTON_PLAY, BUTTON_NONE}, | ||
168 | {PLA_MENU, BUTTON_MODE, BUTTON_NONE}, | ||
169 | {PLA_FIRE, BUTTON_SELECT, BUTTON_NONE}, | ||
170 | {PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE}, | ||
171 | #else | ||
172 | #error pluginlib_actions: Unsupported keypad | ||
173 | #endif | ||
174 | {CONTEXT_CUSTOM,BUTTON_NONE,BUTTON_NONE} | ||
175 | }; | ||
176 | |||
177 | int pluginlib_getaction(struct plugin_api *api,int timeout, | ||
178 | const struct button_mapping *plugin_contexts[], | ||
179 | int count); | ||
180 | |||
181 | #endif /* __PLUGINLIB_ACTIONS_H__ */ | ||
diff --git a/apps/plugins/metronome.c b/apps/plugins/metronome.c index 7a975f434d..45a870b65b 100644 --- a/apps/plugins/metronome.c +++ b/apps/plugins/metronome.c | |||
@@ -17,100 +17,44 @@ | |||
17 | * | 17 | * |
18 | ****************************************************************************/ | 18 | ****************************************************************************/ |
19 | #include "plugin.h" | 19 | #include "plugin.h" |
20 | #include "pluginlib_actions.h" | ||
20 | 21 | ||
21 | PLUGIN_HEADER | 22 | PLUGIN_HEADER |
22 | 23 | ||
23 | /* variable button definitions */ | 24 | #define METRONOME_QUIT PLA_QUIT |
24 | #if CONFIG_KEYPAD == RECORDER_PAD | 25 | #define METRONOME_VOL_UP PLA_UP |
25 | #define METRONOME_QUIT BUTTON_OFF | 26 | #define METRONOME_VOL_DOWN PLA_DOWN |
26 | #define METRONOME_PLAYPAUSE BUTTON_PLAY | 27 | #define METRONOME_VOL_UP_REP PLA_UP_REPEAT |
27 | #define METRONOME_VOL_UP BUTTON_UP | 28 | #define METRONOME_VOL_DOWN_REP PLA_DOWN_REPEAT |
28 | #define METRONOME_VOL_DOWN BUTTON_DOWN | 29 | #define METRONOME_TAP PLA_START |
29 | #define METRONOME_TAP BUTTON_ON | 30 | enum { |
30 | #define METRONOME_MSG_START "press play" | 31 | METRONOME_PLAY_TAP = LAST_PLUGINLIB_ACTION+1, |
31 | #define METRONOME_MSG_STOP "press pause" | 32 | METRONOME_PAUSE, |
33 | METRONOME_SYNC | ||
34 | }; | ||
32 | 35 | ||
33 | #elif CONFIG_KEYPAD == ONDIO_PAD | 36 | |
34 | #define METRONOME_QUIT BUTTON_OFF | 37 | #if CONFIG_KEYPAD == ONDIO_PAD |
35 | #define METRONOME_PLAY_TAP BUTTON_MENU | ||
36 | #define METRONOME_PAUSE (BUTTON_MENU | BUTTON_REPEAT) | ||
37 | #define METRONOME_VOL_UP BUTTON_UP | ||
38 | #define METRONOME_VOL_DOWN BUTTON_DOWN | ||
39 | #define METRONOME_MSG_START "start: mode" | 38 | #define METRONOME_MSG_START "start: mode" |
40 | #define METRONOME_MSG_STOP "pause: hold mode" | 39 | #define METRONOME_MSG_STOP "pause: hold mode" |
41 | 40 | static const struct button_mapping ondio_action[] = | |
42 | #elif CONFIG_KEYPAD == PLAYER_PAD | 41 | { |
43 | #define METRONOME_QUIT BUTTON_STOP | 42 | {METRONOME_PLAY_TAP, BUTTON_MENU|BUTTON_REL, BUTTON_NONE }, |
44 | #define METRONOME_PLAYPAUSE BUTTON_PLAY | 43 | {METRONOME_PAUSE, BUTTON_MENU|BUTTON_REPEAT, BUTTON_NONE } |
45 | #define METRONOME_VOL_UP (BUTTON_ON | BUTTON_RIGHT) | 44 | }; |
46 | #define METRONOME_VOL_DOWN (BUTTON_ON | BUTTON_LEFT) | 45 | #else |
47 | #define METRONOME_TAP BUTTON_ON | 46 | #define METRONOME_PLAYPAUSE PLA_FIRE |
48 | |||
49 | #elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD) | ||
50 | #define METRONOME_QUIT BUTTON_OFF | ||
51 | #define METRONOME_PLAYPAUSE BUTTON_ON | ||
52 | #define METRONOME_VOL_UP BUTTON_UP | ||
53 | #define METRONOME_VOL_DOWN BUTTON_DOWN | ||
54 | #define METRONOME_TAP BUTTON_SELECT | ||
55 | #define METRONOME_SYNC BUTTON_REC | ||
56 | #define METRONOME_MSG_START "press play" | ||
57 | #define METRONOME_MSG_STOP "press pause" | ||
58 | |||
59 | #elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ | ||
60 | (CONFIG_KEYPAD == IPOD_3G_PAD) | ||
61 | #define METRONOME_QUIT BUTTON_MENU | ||
62 | #define METRONOME_PLAYPAUSE BUTTON_PLAY | ||
63 | #define METRONOME_VOL_UP BUTTON_SCROLL_FWD | ||
64 | #define METRONOME_VOL_DOWN BUTTON_SCROLL_BACK | ||
65 | #define METRONOME_TAP BUTTON_SELECT | ||
66 | #define METRONOME_MSG_START "press play" | ||
67 | #define METRONOME_MSG_STOP "press pause" | ||
68 | |||
69 | #elif (CONFIG_KEYPAD == IAUDIO_X5_PAD) | ||
70 | #define METRONOME_QUIT BUTTON_POWER | ||
71 | #define METRONOME_PLAYPAUSE BUTTON_PLAY | ||
72 | #define METRONOME_VOL_UP BUTTON_UP | ||
73 | #define METRONOME_VOL_DOWN BUTTON_DOWN | ||
74 | #define METRONOME_TAP BUTTON_REC | ||
75 | #define METRONOME_MSG_START "press play" | 47 | #define METRONOME_MSG_START "press play" |
76 | #define METRONOME_MSG_STOP "press pause" | 48 | #define METRONOME_MSG_STOP "press pause" |
77 | 49 | ||
78 | #elif (CONFIG_KEYPAD == IRIVER_IFP7XX_PAD) | 50 | #if (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD) |
79 | #define METRONOME_QUIT BUTTON_MODE | 51 | static const struct button_mapping iriver_syncaction[] = |
80 | #define METRONOME_PLAYPAUSE BUTTON_PLAY | 52 | { |
81 | #define METRONOME_VOL_UP BUTTON_UP | 53 | {METRONOME_SYNC, BUTTON_REC, BUTTON_NONE }, |
82 | #define METRONOME_VOL_DOWN BUTTON_DOWN | 54 | }; |
83 | #define METRONOME_TAP BUTTON_EQ | ||
84 | #define METRONOME_MSG_START "press play" | ||
85 | #define METRONOME_MSG_STOP "press pause" | ||
86 | #endif | 55 | #endif |
56 | #endif /* #if CONFIG_KEYPAD == ONDIO_PAD */ | ||
87 | 57 | ||
88 | #if CONFIG_REMOTE_KEYPAD == H100_REMOTE | ||
89 | #define METRONOME_R_QUIT BUTTON_RC_STOP | ||
90 | #define METRONOME_R_PLAYPAUSE BUTTON_RC_ON | ||
91 | #define METRONOME_R_VOL_UP BUTTON_RC_VOL_UP | ||
92 | #define METRONOME_R_VOL_DOWN BUTTON_RC_VOL_DOWN | ||
93 | #define METRONOME_R_TAP BUTTON_RC_BITRATE | ||
94 | |||
95 | #elif CONFIG_KEYPAD == SANSA_E200_PAD | ||
96 | #define METRONOME_QUIT BUTTON_POWER | ||
97 | #define METRONOME_PLAYPAUSE BUTTON_UP | ||
98 | #define METRONOME_VOL_UP BUTTON_SCROLL_UP | ||
99 | #define METRONOME_VOL_DOWN BUTTON_SCROLL_DOWN | ||
100 | #define METRONOME_TAP BUTTON_SELECT | ||
101 | #define METRONOME_MSG_START "press play" | ||
102 | #define METRONOME_MSG_STOP "press pause" | ||
103 | |||
104 | #elif CONFIG_KEYPAD == IRIVER_H10_PAD | ||
105 | #define METRONOME_QUIT BUTTON_POWER | ||
106 | #define METRONOME_PLAYPAUSE BUTTON_PLAY | ||
107 | #define METRONOME_VOL_UP BUTTON_SCROLL_UP | ||
108 | #define METRONOME_VOL_DOWN BUTTON_SCROLL_DOWN | ||
109 | #define METRONOME_TAP BUTTON_FF | ||
110 | #define METRONOME_MSG_START "press play" | ||
111 | #define METRONOME_MSG_STOP "press pause" | ||
112 | |||
113 | #endif | ||
114 | 58 | ||
115 | static struct plugin_api* rb; | 59 | static struct plugin_api* rb; |
116 | 60 | ||
@@ -925,6 +869,21 @@ void tap(void) | |||
925 | 869 | ||
926 | enum plugin_status plugin_start(struct plugin_api* api, void* parameter){ | 870 | enum plugin_status plugin_start(struct plugin_api* api, void* parameter){ |
927 | int button; | 871 | int button; |
872 | const struct button_mapping *plugin_contexts[] | ||
873 | = {generic_directions, | ||
874 | #if CONFIG_KEYPAD == ONDIO_PAD | ||
875 | ondio_action, | ||
876 | #elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD) | ||
877 | iriver_syncaction, | ||
878 | #endif | ||
879 | generic_actions}; | ||
880 | #if (CONFIG_KEYPAD == ONDIO_PAD) \ | ||
881 | || (CONFIG_KEYPAD == IRIVER_H100_PAD) \ | ||
882 | || (CONFIG_KEYPAD == IRIVER_H300_PAD) | ||
883 | #define PLA_ARRAY_COUNT 3 | ||
884 | #else | ||
885 | #define PLA_ARRAY_COUNT 2 | ||
886 | #endif | ||
928 | 887 | ||
929 | (void)parameter; | 888 | (void)parameter; |
930 | rb = api; | 889 | rb = api; |
@@ -947,53 +906,8 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter){ | |||
947 | while (true){ | 906 | while (true){ |
948 | reset_tap = true; | 907 | reset_tap = true; |
949 | 908 | ||
950 | button = rb->button_get(true); | 909 | button = pluginlib_getaction(rb,TIMEOUT_BLOCK, |
951 | 910 | plugin_contexts,PLA_ARRAY_COUNT); | |
952 | #if CONFIG_REMOTE_KEYPAD == H100_REMOTE | ||
953 | if(button && BUTTON_REMOTE) { | ||
954 | switch(button) { | ||
955 | case BUTTON_RC_STOP: | ||
956 | button = METRONOME_QUIT; | ||
957 | break; | ||
958 | case BUTTON_RC_ON: | ||
959 | button = METRONOME_PLAYPAUSE; | ||
960 | break; | ||
961 | case BUTTON_RC_VOL_UP: | ||
962 | button = METRONOME_VOL_UP; | ||
963 | break; | ||
964 | case BUTTON_RC_VOL_UP | BUTTON_REPEAT: | ||
965 | button = METRONOME_VOL_UP | BUTTON_REPEAT; | ||
966 | break; | ||
967 | case BUTTON_RC_VOL_DOWN: | ||
968 | button = METRONOME_VOL_DOWN; | ||
969 | break; | ||
970 | case BUTTON_RC_VOL_DOWN | BUTTON_REPEAT: | ||
971 | button = METRONOME_VOL_DOWN | BUTTON_REPEAT; | ||
972 | break; | ||
973 | case BUTTON_RC_FF: | ||
974 | button = BUTTON_RIGHT; | ||
975 | break; | ||
976 | case BUTTON_RC_FF | BUTTON_REPEAT: | ||
977 | button = BUTTON_RIGHT | BUTTON_REPEAT; | ||
978 | break; | ||
979 | case BUTTON_RC_REW: | ||
980 | button = BUTTON_LEFT; | ||
981 | break; | ||
982 | case BUTTON_RC_REW | BUTTON_REPEAT: | ||
983 | button = BUTTON_LEFT | BUTTON_REPEAT; | ||
984 | break; | ||
985 | case BUTTON_RC_MODE: | ||
986 | button = METRONOME_SYNC; | ||
987 | break; | ||
988 | case BUTTON_RC_REC: | ||
989 | case BUTTON_RC_SOURCE: | ||
990 | case BUTTON_RC_MENU: | ||
991 | case BUTTON_RC_BITRATE: | ||
992 | button = METRONOME_TAP; | ||
993 | break; | ||
994 | } | ||
995 | } | ||
996 | #endif | ||
997 | 911 | ||
998 | switch (button) { | 912 | switch (button) { |
999 | 913 | ||
@@ -1031,13 +945,13 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter){ | |||
1031 | #endif | 945 | #endif |
1032 | 946 | ||
1033 | case METRONOME_VOL_UP: | 947 | case METRONOME_VOL_UP: |
1034 | case METRONOME_VOL_UP | BUTTON_REPEAT: | 948 | case METRONOME_VOL_UP_REP: |
1035 | change_volume(1); | 949 | change_volume(1); |
1036 | calc_period(); | 950 | calc_period(); |
1037 | break; | 951 | break; |
1038 | 952 | ||
1039 | case METRONOME_VOL_DOWN: | 953 | case METRONOME_VOL_DOWN: |
1040 | case METRONOME_VOL_DOWN | BUTTON_REPEAT: | 954 | case METRONOME_VOL_DOWN_REP: |
1041 | change_volume(-1); | 955 | change_volume(-1); |
1042 | calc_period(); | 956 | calc_period(); |
1043 | break; | 957 | break; |
@@ -1060,7 +974,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter){ | |||
1060 | break; | 974 | break; |
1061 | #endif | 975 | #endif |
1062 | 976 | ||
1063 | #ifdef METRONOME_SYNC | 977 | #if (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD) |
1064 | case METRONOME_SYNC: | 978 | case METRONOME_SYNC: |
1065 | minitick = period; | 979 | minitick = period; |
1066 | break; | 980 | break; |