Convert plasma to use pluginlib actions.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27067 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Thomas Martitz 2010-06-22 22:03:17 +00:00
parent 1396c335ac
commit c5f24828c8
2 changed files with 38 additions and 176 deletions

View file

@ -26,6 +26,7 @@
#include "plugin.h" #include "plugin.h"
#include "lib/helper.h" #include "lib/helper.h"
#include "lib/pluginlib_actions.h"
#ifdef HAVE_LCD_BITMAP #ifdef HAVE_LCD_BITMAP
@ -57,143 +58,12 @@ static int plasma_frequency;
static bool boosted = false; static bool boosted = false;
#endif #endif
/* Key assignement, all bitmapped models */ static const struct button_mapping* plugin_contexts[]= {
#if (CONFIG_KEYPAD == RECORDER_PAD) || (CONFIG_KEYPAD == ONDIO_PAD) pla_main_ctx,
#define PLASMA_QUIT BUTTON_OFF #if defined(HAVE_REMOTE_LCD)
#define PLASMA_INCREASE_FREQUENCY BUTTON_UP pla_remote_ctx,
#define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN
#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD)
#define PLASMA_QUIT BUTTON_OFF
#define PLASMA_INCREASE_FREQUENCY BUTTON_UP
#define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN
#define PLASMA_REGEN_COLORS BUTTON_SELECT
#define PLASMA_RC_QUIT BUTTON_RC_STOP
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) || \
(CONFIG_KEYPAD == IPOD_1G2G_PAD)
#define PLASMA_QUIT BUTTON_MENU
#define PLASMA_INCREASE_FREQUENCY BUTTON_SCROLL_FWD
#define PLASMA_DECREASE_FREQUENCY BUTTON_SCROLL_BACK
#define PLASMA_REGEN_COLORS BUTTON_SELECT
#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
#define PLASMA_QUIT BUTTON_POWER
#define PLASMA_INCREASE_FREQUENCY BUTTON_UP
#define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN
#define PLASMA_REGEN_COLORS BUTTON_SELECT
#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
(CONFIG_KEYPAD == SANSA_C200_PAD) || \
(CONFIG_KEYPAD == SANSA_CLIP_PAD) || \
(CONFIG_KEYPAD == SANSA_M200_PAD)
#define PLASMA_QUIT BUTTON_POWER
#define PLASMA_INCREASE_FREQUENCY BUTTON_UP
#define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN
#define PLASMA_REGEN_COLORS BUTTON_SELECT
#elif (CONFIG_KEYPAD == SANSA_FUZE_PAD)
#define PLASMA_QUIT (BUTTON_HOME|BUTTON_REPEAT)
#define PLASMA_INCREASE_FREQUENCY BUTTON_UP
#define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN
#define PLASMA_REGEN_COLORS BUTTON_SELECT
#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD)
#define PLASMA_QUIT BUTTON_POWER
#define PLASMA_INCREASE_FREQUENCY BUTTON_UP
#define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN
#define PLASMA_REGEN_COLORS BUTTON_PLAY
#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
#define PLASMA_QUIT BUTTON_POWER
#define PLASMA_INCREASE_FREQUENCY BUTTON_SCROLL_UP
#define PLASMA_DECREASE_FREQUENCY BUTTON_SCROLL_DOWN
#define PLASMA_REGEN_COLORS BUTTON_PLAY
#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD)
#define PLASMA_QUIT BUTTON_BACK
#define PLASMA_INCREASE_FREQUENCY BUTTON_UP
#define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN
#define PLASMA_REGEN_COLORS BUTTON_SELECT
#elif (CONFIG_KEYPAD == MROBE100_PAD)
#define PLASMA_QUIT BUTTON_POWER
#define PLASMA_INCREASE_FREQUENCY BUTTON_UP
#define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN
#elif (CONFIG_KEYPAD == IAUDIO_M3_PAD)
#define PLASMA_QUIT BUTTON_RC_REC
#define PLASMA_INCREASE_FREQUENCY BUTTON_RC_VOL_UP
#define PLASMA_DECREASE_FREQUENCY BUTTON_RC_VOL_DOWN
#define PLASMA_RC_QUIT BUTTON_REC
#elif (CONFIG_KEYPAD == COWON_D2_PAD)
#define PLASMA_QUIT BUTTON_POWER
#elif (CONFIG_KEYPAD == IAUDIO67_PAD)
#define PLASMA_QUIT BUTTON_POWER
#define PLASMA_INCREASE_FREQUENCY BUTTON_RIGHT
#define PLASMA_DECREASE_FREQUENCY BUTTON_LEFT
#define PLASMA_REGEN_COLORS BUTTON_PLAY
#define PLASMA_RC_QUIT BUTTON_STOP
#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
#define PLASMA_QUIT BUTTON_BACK
#define PLASMA_INCREASE_FREQUENCY BUTTON_UP
#define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN
#define PLASMA_REGEN_COLORS BUTTON_SELECT
#elif CONFIG_KEYPAD == PHILIPS_HDD1630_PAD
#define PLASMA_QUIT BUTTON_POWER
#define PLASMA_INCREASE_FREQUENCY BUTTON_UP
#define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN
#define PLASMA_REGEN_COLORS BUTTON_SELECT
#elif CONFIG_KEYPAD == PHILIPS_SA9200_PAD
#define PLASMA_QUIT BUTTON_POWER
#define PLASMA_INCREASE_FREQUENCY BUTTON_UP
#define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN
#define PLASMA_REGEN_COLORS BUTTON_PLAY
#elif (CONFIG_KEYPAD == ONDAVX747_PAD) || (CONFIG_KEYPAD == ONDAVX777_PAD)
#define PLASMA_QUIT BUTTON_POWER
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
#define PLASMA_QUIT BUTTON_PLAY
#define PLASMA_INCREASE_FREQUENCY BUTTON_UP
#define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN
#define PLASMA_REGEN_COLORS BUTTON_LEFT
#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
#define PLASMA_QUIT BUTTON_REC
#define PLASMA_INCREASE_FREQUENCY BUTTON_UP
#define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN
#define PLASMA_REGEN_COLORS BUTTON_PLAY
#elif CONFIG_KEYPAD == MPIO_HD200_PAD
#define PLASMA_QUIT (BUTTON_REC|BUTTON_PLAY)
#define PLASMA_INCREASE_FREQUENCY BUTTON_VOL_DOWN
#define PLASMA_DECREASE_FREQUENCY BUTTON_VOL_UP
#define PLASMA_REGEN_COLORS BUTTON_PLAY
#endif #endif
};
#ifdef HAVE_TOUCHSCREEN
#ifndef PLASMA_QUIT
#define PLASMA_QUIT BUTTON_TOPLEFT
#endif
#ifndef PLASMA_INCREASE_FREQUENCY
#define PLASMA_INCREASE_FREQUENCY BUTTON_MIDRIGHT
#endif
#ifndef PLASMA_DECREASE_FREQUENCY
#define PLASMA_DECREASE_FREQUENCY BUTTON_MIDLEFT
#endif
#ifdef HAVE_LCD_COLOR
#ifndef PLASMA_REGEN_COLORS
#define PLASMA_REGEN_COLORS BUTTON_CENTER
#endif
#endif /* HAVE_LCD_COLOR */
#endif /* HAVE_TOUCHSCREEN */
#define WAV_AMP 90 #define WAV_AMP 90
@ -284,7 +154,7 @@ void cleanup(void *parameter)
int main(void) int main(void)
{ {
plasma_frequency = 1; plasma_frequency = 1;
int button, delay, x, y; int action, delay, x, y;
unsigned char p1,p2,p3,p4,t1,t2,t3,t4, z,z0; unsigned char p1,p2,p3,p4,t1,t2,t3,t4, z,z0;
long last_tick = *rb->current_tick; long last_tick = *rb->current_tick;
#ifdef HAVE_ADJUSTABLE_CPU_FREQ #ifdef HAVE_ADJUSTABLE_CPU_FREQ
@ -383,25 +253,34 @@ int main(void)
rb->cpu_boost(boosted = false); rb->cpu_boost(boosted = false);
} }
#endif #endif
button = rb->button_get_w_tmo(MAX(0, delay)); action = pluginlib_getaction(0, plugin_contexts,
ARRAYLEN(plugin_contexts));
last_tick = *rb->current_tick; last_tick = *rb->current_tick;
switch(button) switch(action)
{ {
#ifdef PLASMA_RC_QUIT case PLA_EXIT:
case PLASMA_RC_QUIT: case PLA_CANCEL:
#endif
case(PLASMA_QUIT):
cleanup(NULL); cleanup(NULL);
return PLUGIN_OK; return PLUGIN_OK;
break; break;
case (PLASMA_INCREASE_FREQUENCY): #ifdef HAVE_SCROLLWHEEL
case PLA_SCROLL_FWD:
case PLA_SCROLL_FWD_REPEAT:
#endif
case PLA_UP:
case PLA_UP_REPEAT:
++plasma_frequency; ++plasma_frequency;
wave_table_generate(); wave_table_generate();
break; break;
case (PLASMA_DECREASE_FREQUENCY): #ifdef HAVE_SCROLLWHEEL
case PLA_SCROLL_BACK:
case PLA_SCROLL_BACK_REPEAT:
#endif
case PLA_DOWN:
case PLA_DOWN_REPEAT:
if(plasma_frequency>1) if(plasma_frequency>1)
{ {
--plasma_frequency; --plasma_frequency;
@ -409,7 +288,7 @@ int main(void)
} }
break; break;
#ifdef HAVE_LCD_COLOR #ifdef HAVE_LCD_COLOR
case (PLASMA_REGEN_COLORS): case PLA_SELECT:
redfactor=rb->rand()%4; redfactor=rb->rand()%4;
greenfactor=rb->rand()%4; greenfactor=rb->rand()%4;
bluefactor=rb->rand()%4; bluefactor=rb->rand()%4;
@ -420,7 +299,7 @@ int main(void)
#endif #endif
default: default:
if (rb->default_event_handler_ex(button, cleanup, NULL) if (rb->default_event_handler_ex(action, cleanup, NULL)
== SYS_USB_CONNECTED) == SYS_USB_CONNECTED)
return PLUGIN_USB_CONNECTED; return PLUGIN_USB_CONNECTED;
break; break;

View file

@ -4,33 +4,16 @@
Plasma is a demo displaying a 80's style retro plasma effect. Plasma is a demo displaying a 80's style retro plasma effect.
\begin{btnmap} \begin{btnmap}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonScrollFwd\ / \ButtonScrollBack} \PluginUp{} / \PluginDown
\opt{IRIVER_H10_PAD}{\ButtonScrollUp\ / \ButtonScrollDown} \opt{scrollwheel}{/ \PluginScrollFwd{} / \PluginScrollBack}
\opt{COWON_D2_PAD}{\TouchMidLeft{} / \TouchMidRight} \opt{HAVEREMOTEKEYMAP}{& \PluginRCUp{} / \PluginRCDown}
\nopt{IPOD_4G_PAD,IPOD_3G_PAD,IRIVER_H10_PAD,COWON_D2_PAD} & Increase / decrease Frequency\\
{\ButtonUp\ / \ButtonDown}
\opt{HAVEREMOTEKEYMAP}{& } \opt{lcd_bitmap}{%
& Adjust frequency\\ \PluginSelect
\opt{lcd_color}{ & Change Color\\
\opt{IRIVER_H300_PAD,IPOD_4G_PAD,IPOD_3G_PAD,SANSA_E200_PAD% }%
,SANSA_FUZE_PAD,SANSA_C200_PAD,GIGABEAT_PAD,GIGABEAT_S_PAD%
,MROBE100_PAD} \PluginCancel{} / \PluginExit
{\ButtonSelect} & Exit\\
\opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,PBELL_VIBE500_PAD}{\ButtonPlay}
\opt{COWON_D2_PAD}{\TouchCenter}
\opt{HAVEREMOTEKEYMAP}{& }
& Change colours\\
}
\opt{RECORDER_PAD,ONDIO_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
\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}{Long \ButtonHome}
\opt{GIGABEAT_S_PAD}{\ButtonBack}
\opt{PBELL_VIBE500_PAD}{\ButtonRec}
\opt{HAVEREMOTEKEYMAP}{&
\opt{IRIVER_RC_H100_PAD}{\ButtonRCStop}
}
& Quit\\
\end{btnmap} \end{btnmap}