diff --git a/apps/plugins/rockblox1d.c b/apps/plugins/rockblox1d.c index 7a50030596..6a2b013c44 100644 --- a/apps/plugins/rockblox1d.c +++ b/apps/plugins/rockblox1d.c @@ -21,123 +21,14 @@ ****************************************************************************/ #include "plugin.h" +#include "lib/pluginlib_actions.h" -#if CONFIG_KEYPAD == RECORDER_PAD -#define ONEDROCKBLOX_DOWN BUTTON_PLAY -#define ONEDROCKBLOX_QUIT BUTTON_OFF - -#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD -#define ONEDROCKBLOX_DOWN BUTTON_SELECT -#define ONEDROCKBLOX_QUIT BUTTON_OFF - -#elif CONFIG_KEYPAD == ONDIO_PAD -#define ONEDROCKBLOX_DOWN BUTTON_RIGHT -#define ONEDROCKBLOX_QUIT BUTTON_OFF - -#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) -#define ONEDROCKBLOX_DOWN BUTTON_SELECT -#define ONEDROCKBLOX_QUIT BUTTON_POWER - -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ - (CONFIG_KEYPAD == IPOD_3G_PAD) || \ - (CONFIG_KEYPAD == IPOD_1G2G_PAD) -#define ONEDROCKBLOX_DOWN BUTTON_SELECT -#define ONEDROCKBLOX_QUIT (BUTTON_SELECT | BUTTON_MENU) - -#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ - (CONFIG_KEYPAD == IRIVER_H300_PAD) -#define ONEDROCKBLOX_DOWN BUTTON_SELECT -#define ONEDROCKBLOX_QUIT BUTTON_OFF - -#elif (CONFIG_KEYPAD == GIGABEAT_PAD) -#define ONEDROCKBLOX_DOWN BUTTON_SELECT -#define ONEDROCKBLOX_QUIT BUTTON_POWER - -#elif CONFIG_KEYPAD == SANSA_E200_PAD || \ - CONFIG_KEYPAD == SANSA_C200_PAD || \ - CONFIG_KEYPAD == SANSA_CLIP_PAD || \ - CONFIG_KEYPAD == SANSA_M200_PAD || \ - CONFIG_KEYPAD == SANSA_CONNECT_PAD -#define ONEDROCKBLOX_DOWN BUTTON_SELECT -#define ONEDROCKBLOX_QUIT BUTTON_POWER - -#elif CONFIG_KEYPAD == SANSA_FUZE_PAD -#define ONEDROCKBLOX_DOWN BUTTON_SELECT -#define ONEDROCKBLOX_QUIT BUTTON_HOME - -#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) -#define ONEDROCKBLOX_DOWN BUTTON_PLAY -#define ONEDROCKBLOX_QUIT BUTTON_POWER - -#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) || \ - (CONFIG_KEYPAD == SAMSUNG_YPR0_PAD) -#define ONEDROCKBLOX_DOWN BUTTON_SELECT -#define ONEDROCKBLOX_QUIT BUTTON_BACK - -#elif (CONFIG_KEYPAD == MROBE100_PAD) -#define ONEDROCKBLOX_DOWN BUTTON_SELECT -#define ONEDROCKBLOX_QUIT BUTTON_POWER - -#elif CONFIG_KEYPAD == IAUDIO_M3_PAD -#define ONEDROCKBLOX_DOWN BUTTON_RC_PLAY -#define ONEDROCKBLOX_QUIT BUTTON_RC_REC - -#elif (CONFIG_KEYPAD == COWON_D2_PAD) -#define ONEDROCKBLOX_DOWN BUTTON_MENU -#define ONEDROCKBLOX_QUIT BUTTON_POWER - -#elif CONFIG_KEYPAD == IAUDIO67_PAD -#define ONEDROCKBLOX_DOWN BUTTON_MENU -#define ONEDROCKBLOX_QUIT BUTTON_POWER - -#elif CONFIG_KEYPAD == CREATIVEZVM_PAD -#define ONEDROCKBLOX_DOWN BUTTON_SELECT -#define ONEDROCKBLOX_QUIT BUTTON_BACK - -#elif CONFIG_KEYPAD == PHILIPS_HDD1630_PAD -#define ONEDROCKBLOX_DOWN BUTTON_SELECT -#define ONEDROCKBLOX_QUIT BUTTON_POWER - -#elif CONFIG_KEYPAD == PHILIPS_HDD6330_PAD -#define ONEDROCKBLOX_DOWN BUTTON_PLAY -#define ONEDROCKBLOX_QUIT BUTTON_POWER - -#elif CONFIG_KEYPAD == PHILIPS_SA9200_PAD -#define ONEDROCKBLOX_DOWN BUTTON_PLAY -#define ONEDROCKBLOX_QUIT BUTTON_POWER - -#elif (CONFIG_KEYPAD == ONDAVX747_PAD) -#define ONEDROCKBLOX_DOWN BUTTON_MENU -#define ONEDROCKBLOX_QUIT BUTTON_POWER - -#elif (CONFIG_KEYPAD == SAMSUNG_YH_PAD) -#define ONEDROCKBLOX_DOWN BUTTON_DOWN -#define ONEDROCKBLOX_QUIT BUTTON_PLAY - -#elif (CONFIG_KEYPAD == PBELL_VIBE500_PAD) -#define ONEDROCKBLOX_DOWN BUTTON_DOWN -#define ONEDROCKBLOX_QUIT BUTTON_REC - -#elif (CONFIG_KEYPAD == MPIO_HD200_PAD) -#define ONEDROCKBLOX_DOWN BUTTON_FUNC -#define ONEDROCKBLOX_QUIT (BUTTON_REC | BUTTON_PLAY) - -#elif (CONFIG_KEYPAD == MPIO_HD300_PAD) -#define ONEDROCKBLOX_DOWN BUTTON_ENTER -#define ONEDROCKBLOX_QUIT BUTTON_MENU - -#elif (CONFIG_KEYPAD == SANSA_FUZEPLUS_PAD) -#define ONEDROCKBLOX_DOWN BUTTON_DOWN -#define ONEDROCKBLOX_QUIT BUTTON_POWER - -#elif defined(HAVE_TOUCHSCREEN) - -#define ONEDROCKBLOX_DOWN BUTTON_BOTTOMMIDDLE -#define ONEDROCKBLOX_QUIT BUTTON_POWER - -#else -#error No keymap defined! -#endif +/* this set the context to use with PLA */ +static const struct button_mapping *plugin_contexts[] = { pla_main_ctx }; +#define ONEDROCKBLOX_DOWN PLA_DOWN +#define ONEDROCKBLOX_DOWN_REPEAT PLA_DOWN_REPEAT +#define ONEDROCKBLOX_QUIT PLA_EXIT +#define ONEDROCKBLOX_QUIT2 PLA_CANCEL #define mrand(max) (short)(rb->rand()%max) @@ -295,14 +186,17 @@ enum plugin_status plugin_start(const void* parameter) rb->lcd_update(); - button = rb->button_status(); + /*We get button from PLA this way */ + button = pluginlib_getaction(TIMEOUT_NOBLOCK, plugin_contexts, + ARRAYLEN(plugin_contexts)); switch(button) { case ONEDROCKBLOX_DOWN: - case (ONEDROCKBLOX_DOWN|BUTTON_REPEAT): + case ONEDROCKBLOX_DOWN_REPEAT: cycletime = 100; break; case ONEDROCKBLOX_QUIT: + case ONEDROCKBLOX_QUIT2: quit = true; break; default: diff --git a/manual/plugins/rockblox1d.tex b/manual/plugins/rockblox1d.tex index 4fc7d348a9..a8d27411b7 100644 --- a/manual/plugins/rockblox1d.tex +++ b/manual/plugins/rockblox1d.tex @@ -6,26 +6,11 @@ second dimension is missing so the user only has to move the bricks down. No horizontal moving anymore and no need to rotate the brick! \begin{btnmap} - \opt{ONDIO_PAD}{\ButtonRight} - \opt{IRIVER_H100_PAD,IRIVER_H300_PAD,IAUDIO_X5_PAD,IPOD_4G_PAD,IPOD_3G_PAD% - ,GIGABEAT_PAD,GIGABEAT_S_PAD,MROBE100_PAD,SANSA_E200_PAD% - ,SANSA_FUZE_PAD,SANSA_C200_PAD} - {\ButtonSelect} - \opt{RECORDER_PAD,IRIVER_H10_PAD}{\ButtonPlay} - \opt{COWON_D2_PAD}{\ButtonMenu} - \opt{PBELL_VIBE500_PAD}{\ButtonDown} - \opt{MPIO_HD300_PAD}{\ButtonEnter} + \PluginDown \opt{HAVEREMOTEKEYMAP}{& } & Move down faster\\ - \opt{RECORDER_PAD,ONDIO_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff} - \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu+\ButtonSelect} - \opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD% - ,GIGABEAT_PAD,MROBE100_PAD,COWON_D2_PAD}{\ButtonPower} - \opt{SANSA_FUZE_PAD}{\ButtonHome} - \opt{GIGABEAT_S_PAD}{\ButtonBack} - \opt{PBELL_VIBE500_PAD}{\ButtonRec} - \opt{MPIO_HD300_PAD}{\ButtonMenu} + \PluginCancel{} or \PluginExit \opt{HAVEREMOTEKEYMAP}{& } & Quit\\ \end{btnmap}