Index: apps/plugins/bubbles.c =================================================================== --- apps/plugins/bubbles.c (revision 20888) +++ apps/plugins/bubbles.c (working copy) @@ -26,7 +26,6 @@ #ifdef HAVE_LCD_BITMAP #include "lib/xlcd.h" -#include "lib/pluginlib_actions.h" #include "lib/fixedpoint.h" #include "lib/playback_control.h" @@ -61,43 +60,157 @@ /* keyboard layouts */ -#if (CONFIG_KEYPAD != SANSA_E200_PAD) && \ +/* part 1: directional keys */ + +#if (CONFIG_KEYPAD == IRIVER_H100_PAD) \ + || (CONFIG_KEYPAD == IRIVER_H300_PAD) \ + || (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) \ + || (CONFIG_KEYPAD == GIGABEAT_PAD) \ + || (CONFIG_KEYPAD == GIGABEAT_S_PAD) \ + || (CONFIG_KEYPAD == IRIVER_IFP7XX_PAD) \ + || (CONFIG_KEYPAD == MROBE100_PAD) \ + || (CONFIG_KEYPAD == PHILIPS_SA9200_PAD) \ + || (CONFIG_KEYPAD == PHILIPS_HDD1630_PAD) \ + || (CONFIG_KEYPAD == SANSA_CLIP_PAD) \ + || (CONFIG_KEYPAD == SANSA_M200_PAD) \ + || (CONFIG_KEYPAD == ONDIO_PAD) \ + || (CONFIG_KEYPAD == RECORDER_PAD) \ + || (CONFIG_KEYPAD == SANSA_C200_PAD) \ + || (CONFIG_KEYPAD == ARCHOS_AV300_PAD) \ + || (CONFIG_KEYPAD == IRIVER_H10_PAD) \ + || (CONFIG_KEYPAD == IAUDIO67_PAD) \ + || (CONFIG_KEYPAD == CREATIVEZVM_PAD) +# define BUBBLES_LEFT BUTTON_LEFT +# define BUBBLES_LEFT_REP (BUTTON_LEFT | BUTTON_REPEAT) +# define BUBBLES_RIGHT BUTTON_RIGHT +# define BUBBLES_RIGHT_REP (BUTTON_RIGHT | BUTTON_REPEAT) +#elif (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ + || (CONFIG_KEYPAD == IPOD_3G_PAD) \ + || (CONFIG_KEYPAD == IPOD_4G_PAD) \ + || (CONFIG_KEYPAD == SANSA_E200_PAD) \ + || (CONFIG_KEYPAD == SANSA_FUZE_PAD) +# define BUBBLES_LEFT BUTTON_SCROLL_BACK +# define BUBBLES_LEFT_REP (BUTTON_SCROLL_BACK | BUTTON_REPEAT) +# define BUBBLES_RIGHT BUTTON_SCROLL_FWD +# define BUBBLES_RIGHT_REP (BUTTON_SCROLL_FWD | BUTTON_REPEAT) +#elif (CONFIG_KEYPAD == MROBE500_PAD) \ + || (CONFIG_KEYPAD == IAUDIO_M3_PAD) +# define BUBBLES_LEFT BUTTON_RC_REW +# define BUBBLES_LEFT_REP (BUTTON_RC_REW | BUTTON_REPEAT) +# define BUBBLES_RIGHT BUTTON_RC_FF +# define BUBBLES_RIGHT_REP (BUTTON_RC_FF | BUTTON_REPEAT) +#endif + +/* part 2: angular steps */ + +#if (CONFIG_KEYPAD != SANSA_E200_PAD) && \ (CONFIG_KEYPAD != SANSA_FUZE_PAD) -/* sansas use the wheel instead of left/right if available */ -#define BUBBLES_LEFT PLA_LEFT -#define BUBBLES_LEFT_REP PLA_LEFT_REPEAT -#define BUBBLES_RIGHT PLA_RIGHT -#define BUBBLES_RIGHT_REP PLA_RIGHT_REPEAT -#define ANGLE_STEP 4 -#define ANGLE_STEP_REP 4 +# define ANGLE_STEP 4 +# define ANGLE_STEP_REP 4 #else -#define BUBBLES_LEFT PLA_UP -#define BUBBLES_LEFT_REP PLA_UP_REPEAT -#define BUBBLES_RIGHT PLA_DOWN -#define BUBBLES_RIGHT_REP PLA_DOWN_REPEAT -#define ANGLE_STEP 2 -#define ANGLE_STEP_REP 4 +# define ANGLE_STEP 2 +# define ANGLE_STEP_REP 4 #endif -#define BUBBLES_QUIT PLA_QUIT -#define BUBBLES_START PLA_START -#define BUBBLES_SELECT PLA_FIRE -#define BUBBLES_RESUME PLA_MENU +/* part 3: game keys */ -#if CONFIG_KEYPAD != ONDIO_PAD - -#define BUBBLES_LVLINC PLA_UP -#define BUBBLES_LVLINC_REP PLA_UP_REPEAT -#define BUBBLES_LVLDEC PLA_DOWN -#define BUBBLES_LVLDEC_REP PLA_DOWN_REPEAT - -#else /* ondio keys */ - -#define BUBBLES_LVLINC PLA_RIGHT -#define BUBBLES_LVLINC_REP PLA_RIGHT_REPEAT -#define BUBBLES_LVLDEC PLA_LEFT -#define BUBBLES_LVLDEC_REP PLA_LEFT_REPEAT - +#if (CONFIG_KEYPAD == IRIVER_H100_PAD) \ + || (CONFIG_KEYPAD == IRIVER_H300_PAD) +# define BUBBLES_QUIT BUTTON_OFF +# define BUBBLES_START BUTTON_ON +# define BUBBLES_SELECT BUTTON_SELECT +# define BUBBLES_RESUME BUTTON_MODE +#elif (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ + || (CONFIG_KEYPAD == IPOD_3G_PAD) \ + || (CONFIG_KEYPAD == IPOD_4G_PAD) +# define BUBBLES_QUIT (BUTTON_MENU | BUTTON_SELECT) +# define BUBBLES_START (BUTTON_PLAY | BUTTON_REL) +# define BUBBLES_SELECT (BUTTON_SELECT | BUTTON_REL) +# define BUBBLES_RESUME (BUTTON_MENU | BUTTON_REL) +#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD +# define BUBBLES_QUIT BUTTON_POWER +# define BUBBLES_START BUTTON_PLAY +# define BUBBLES_SELECT BUTTON_SELECT +# define BUBBLES_RESUME BUTTON_REC +#elif CONFIG_KEYPAD == GIGABEAT_PAD +# define BUBBLES_QUIT BUTTON_POWER +# define BUBBLES_START BUTTON_A +# define BUBBLES_SELECT BUTTON_SELECT +# define BUBBLES_RESUME BUTTON_MENU +#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) \ + || (CONFIG_KEYPAD == CREATIVEZVM_PAD) +# define BUBBLES_QUIT BUTTON_BACK +# define BUBBLES_START BUTTON_PLAY +# define BUBBLES_SELECT BUTTON_SELECT +# define BUBBLES_RESUME BUTTON_MENU +#elif CONFIG_KEYPAD == RECORDER_PAD +# define BUBBLES_QUIT BUTTON_OFF +# define BUBBLES_START BUTTON_ON +# define BUBBLES_SELECT BUTTON_PLAY +# define BUBBLES_RESUME BUTTON_F1 +#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD +# define BUBBLES_QUIT BUTTON_OFF +# define BUBBLES_START BUTTON_ON +# define BUBBLES_SELECT BUTTON_SELECT +# define BUBBLES_RESUME BUTTON_F1 +#elif CONFIG_KEYPAD == ONDIO_PAD +# define BUBBLES_QUIT BUTTON_OFF +# define BUBBLES_START BUTTON_MENU +# define BUBBLES_SELECT BUTTON_UP +# define BUBBLES_RESUME BUTTON_DOWN +#elif (CONFIG_KEYPAD == SANSA_E200_PAD) \ + || (CONFIG_KEYPAD == SANSA_C200_PAD) \ + || (CONFIG_KEYPAD == SANSA_CLIP_PAD) \ + || (CONFIG_KEYPAD == SANSA_M200_PAD) +# define BUBBLES_QUIT BUTTON_POWER +# define BUBBLES_START BUTTON_UP +# define BUBBLES_SELECT BUTTON_SELECT +# define BUBBLES_RESUME BUTTON_DOWN +#elif CONFIG_KEYPAD == SANSA_FUZE_PAD +# define BUBBLES_QUIT (BUTTON_HOME | BUTTON_REPEAT) +# define BUBBLES_START BUTTON_UP +# define BUBBLES_SELECT BUTTON_SELECT +# define BUBBLES_RESUME BUTTON_DOWN +#elif CONFIG_KEYPAD == IRIVER_H10_PAD +# define BUBBLES_QUIT BUTTON_POWER +# define BUBBLES_START BUTTON_PLAY +# define BUBBLES_SELECT BUTTON_REW +# define BUBBLES_RESUME BUTTON_FF +#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD +# define BUBBLES_QUIT BUTTON_EQ +# define BUBBLES_START BUTTON_PLAY +# define BUBBLES_SELECT BUTTON_SELECT +# define BUBBLES_RESUME BUTTON_MODE +#elif CONFIG_KEYPAD == MROBE500_PAD +# define BUBBLES_QUIT BUTTON_POWER +# define BUBBLES_START BUTTON_RC_PLAY +# define BUBBLES_SELECT BUTTON_RC_HEART +# define BUBBLES_RESUME BUTTON_RC_MODE +#elif CONFIG_KEYPAD == MROBE100_PAD +# define BUBBLES_QUIT BUTTON_POWER +# define BUBBLES_START BUTTON_PLAY +# define BUBBLES_SELECT BUTTON_SELECT +# define BUBBLES_RESUME BUTTON_MENU +#elif CONFIG_KEYPAD == IAUDIO_M3_PAD +# define BUBBLES_QUIT BUTTON_RC_REC +# define BUBBLES_START BUTTON_RC_PLAY +# define BUBBLES_SELECT BUTTON_RC_MODE +# define BUBBLES_RESUME BUTTON_RC_MENU +#elif CONFIG_KEYPAD == PHILIPS_SA9200_PAD +# define BUBBLES_QUIT BUTTON_POWER +# define BUBBLES_START BUTTON_RIGHT +# define BUBBLES_SELECT BUTTON_SELECT +# define BUBBLES_RESUME BUTTON_MENU +#elif CONFIG_KEYPAD == IAUDIO67_PAD +# define BUBBLES_QUIT BUTTON_POWER +# define BUBBLES_START BUTTON_PLAY +# define BUBBLES_SELECT BUTTON_VOLUP +# define BUBBLES_RESUME BUTTON_MENU +#elif CONFIG_KEYPAD == PHILIPS_HDD1630_PAD +# define BUBBLES_QUIT BUTTON_POWER +# define BUBBLES_START BUTTON_VIEW +# define BUBBLES_SELECT BUTTON_SELECT +# define BUBBLES_RESUME BUTTON_MENU #endif /* external bitmaps */ @@ -197,14 +310,14 @@ #define TEXT_LINES (LCD_HEIGHT/8) /* shot position */ -#define SHOTX XOFS+ROW_INDENT+BUBBLE_WIDTH*3 -#define SHOTY ROW_HEIGHT*(BB_HEIGHT-1)+BUBBLE_HEIGHT/2 +#define SHOTX (XOFS+ROW_INDENT+BUBBLE_WIDTH*3) +#define SHOTY (ROW_HEIGHT*(BB_HEIGHT-1)+BUBBLE_HEIGHT/2) /* collision distance squared */ #define MIN_DISTANCE ((BUBBLE_WIDTH*8)/10)*((BUBBLE_HEIGHT*8)/10) /* levels */ -char level[NUM_LEVELS][BB_LEVEL_HEIGHT][BB_WIDTH] = { +static char level[NUM_LEVELS][BB_LEVEL_HEIGHT][BB_WIDTH] = { {{ 6, 6, 4, 4, 2, 2, 3, 3}, { 6, 6, 4, 4, 2, 2, 3, -1}, { 2, 2, 3, 3, 6, 6, 4, 4}, @@ -2305,17 +2418,10 @@ int button; int buttonres; long start; - const struct button_mapping *plugin_contexts[] -#if (CONFIG_KEYPAD != SANSA_E200_PAD) && \ - (CONFIG_KEYPAD != SANSA_FUZE_PAD) - = {generic_left_right_fire,generic_actions}; -#else - = {generic_directions,generic_actions}; -#endif if (timeout < 0) timeout = 0; - button = pluginlib_getaction(timeout,plugin_contexts,2); + button = rb->button_get_w_tmo(timeout); #if defined(HAS_BUTTON_HOLD) && !defined(HAVE_REMOTE_LCD_AS_MAIN) /* FIXME: Should probably check remote hold here */ if (rb->button_hold()) @@ -2350,8 +2456,7 @@ case BUBBLES_START: /* pause the game */ start = *rb->current_tick; rb->splash(0, "Paused"); - while(pluginlib_getaction(TIMEOUT_BLOCK,plugin_contexts,2) - != (BUBBLES_START)); + while(rb->button_get(true) != (BUBBLES_START)); bb->startedshot += *rb->current_tick-start; bubbles_drawboard(bb); rb->lcd_update();