plugins: Improve usability of iPod keymaps

- Reduce need to press multiple buttons at
the same time to quit a plugin

- Have "Menu" be default way to quit plugins or
to access plugin menu

- Fall back to (Long) "Select" or Long "Menu"
in cases where Menu button isn't available
(e.g. in ImageViewer and many games)

out of scope:
boomshine, lua_scripts, Rockpaint,
Doom, Duke3D, Pacbox, Quake,
Sgt-Puzzles, Wolf3D, XWorld,
Minesweeper, Pixel Painter, Spacerocks

Change-Id: I6d4dc7174695fe4b8ee9cbaccb21bdbfe6af5c48
This commit is contained in:
Christian Soffke 2022-12-18 21:13:15 +01:00
parent 52f59f637d
commit faa2cb9942
94 changed files with 439 additions and 149 deletions

View file

@ -91,9 +91,16 @@ static const int BACKGROUND_Y = (BASE_Y-MIN_SPACE);
#define KEY_DOWN PLA_DOWN
#define KEY_LEFT PLA_LEFT
#define KEY_RIGHT PLA_RIGHT
#define KEY_EXIT PLA_CANCEL
#define KEY_UNDO PLA_SELECT
#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
|| (CONFIG_KEYPAD == IPOD_3G_PAD) \
|| (CONFIG_KEYPAD == IPOD_4G_PAD)
#define KEY_EXIT PLA_SELECT_REPEAT
#else
#define KEY_EXIT PLA_CANCEL
#endif
/* notice how "color" is spelled :P */
#ifdef HAVE_LCD_COLOR

View file

@ -138,7 +138,13 @@ enum plugin_status plugin_start(const void* parameter)
while(!quit) {
button = get_button();
#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
|| (CONFIG_KEYPAD == IPOD_3G_PAD) \
|| (CONFIG_KEYPAD == IPOD_4G_PAD)
if (button == PLA_EXIT || button == PLA_CANCEL || button == PLA_UP)
#else
if (button == PLA_EXIT || button == PLA_CANCEL)
#endif
quit = true;
FOR_NB_SCREENS(i) {

View file

@ -34,10 +34,6 @@
static const struct button_mapping *plugin_contexts[] = { pla_main_ctx };
/* We set button maping with PLA */
#define BOUNCE_UP PLA_UP
#define BOUNCE_UP_REPEAT PLA_UP_REPEAT
#define BOUNCE_DOWN PLA_DOWN
#define BOUNCE_DOWN_REPEAT PLA_DOWN_REPEAT
#ifdef HAVE_SCROLLWHEEL
#define BOUNCE_LEFT PLA_SCROLL_BACK
@ -52,7 +48,22 @@ static const struct button_mapping *plugin_contexts[] = { pla_main_ctx };
#endif
#define BOUNCE_QUIT PLA_EXIT
#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
|| (CONFIG_KEYPAD == IPOD_3G_PAD) \
|| (CONFIG_KEYPAD == IPOD_4G_PAD)
#define BOUNCE_QUIT2 PLA_UP
#define BOUNCE_DOWN PLA_LEFT
#define BOUNCE_DOWN_REPEAT PLA_LEFT_REPEAT
#define BOUNCE_UP PLA_RIGHT
#define BOUNCE_UP_REPEAT PLA_RIGHT_REPEAT
#else
#define BOUNCE_QUIT2 PLA_CANCEL
#define BOUNCE_DOWN PLA_DOWN
#define BOUNCE_DOWN_REPEAT PLA_DOWN_REPEAT
#define BOUNCE_UP PLA_UP
#define BOUNCE_UP_REPEAT PLA_UP_REPEAT
#endif
#define BOUNCE_MODE PLA_SELECT
#define LETTER_WIDTH 11
@ -471,6 +482,10 @@ enum plugin_status plugin_start(const void* parameter)
#if (CONFIG_KEYPAD == SAMSUNG_YH92X_PAD) || \
(CONFIG_KEYPAD == SAMSUNG_YH820_PAD)
"[Rew] to stop";
#elif (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
|| (CONFIG_KEYPAD == IPOD_3G_PAD) \
|| (CONFIG_KEYPAD == IPOD_4G_PAD)
"[Menu] to stop";
#else
"[Off] to stop";
#endif

View file

@ -79,7 +79,6 @@ enum {
#define ANGLE_STEP_REP 6
#define BUBBLES_QUIT1 PLA_EXIT
#define BUBBLES_QUIT2 PLA_CANCEL
/* these are better off shooting with up */
#if (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) \
@ -92,10 +91,19 @@ enum {
#define BUBBLES_FIRE PLA_UP
#define BUBBLES_FIRE_REPEAT PLA_UP_REPEAT
#define BUBBLES_PAUSE PLA_SELECT
#define BUBBLES_QUIT2 PLA_CANCEL
#elif (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
|| (CONFIG_KEYPAD == IPOD_3G_PAD) \
|| (CONFIG_KEYPAD == IPOD_4G_PAD)
#define BUBBLES_FIRE PLA_SELECT
#define BUBBLES_FIRE_REPEAT PLA_SELECT_REPEAT
#define BUBBLES_PAUSE PLA_DOWN
#define BUBBLES_QUIT2 PLA_UP
#else
#define BUBBLES_FIRE PLA_SELECT
#define BUBBLES_FIRE_REPEAT PLA_SELECT_REPEAT
#define BUBBLES_PAUSE PLA_UP
#define BUBBLES_QUIT2 PLA_CANCEL
#endif
/* external bitmaps */

View file

@ -39,14 +39,12 @@
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
(CONFIG_KEYPAD == IPOD_3G_PAD) || \
(CONFIG_KEYPAD == IPOD_1G2G_PAD)
#define CALENDAR_QUIT (BUTTON_SELECT|BUTTON_MENU)
#define CALENDAR_QUIT (BUTTON_MENU|BUTTON_REL)
#define CALENDAR_SELECT (BUTTON_SELECT|BUTTON_REL)
#define CALENDAR_NEXT_WEEK BUTTON_SCROLL_FWD
#define CALENDAR_PREV_WEEK BUTTON_SCROLL_BACK
#define CALENDAR_NEXT_DAY BUTTON_RIGHT
#define CALENDAR_PREV_DAY BUTTON_LEFT
#define CALENDAR_NEXT_MONTH BUTTON_PLAY
#define CALENDAR_PREV_MONTH (BUTTON_MENU|BUTTON_REL)
#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD)
#define CALENDAR_QUIT BUTTON_POWER
@ -1095,17 +1093,18 @@ enum plugin_status plugin_start(const void* parameter)
case CALENDAR_QUIT:
exit = true;
break;
#ifdef CALENDAR_NEXT_MONTH
case CALENDAR_NEXT_MONTH:
case CALENDAR_NEXT_MONTH | BUTTON_REPEAT:
next_month(&shown, 0);
break;
#endif
#ifdef CALENDAR_PREV_MONTH
case CALENDAR_PREV_MONTH:
case CALENDAR_PREV_MONTH | BUTTON_REPEAT:
prev_month(&shown, 0);
break;
#endif
case CALENDAR_NEXT_WEEK:
case CALENDAR_NEXT_WEEK | BUTTON_REPEAT:
next_day(&shown, 7);

View file

@ -33,7 +33,7 @@
#define CB_PLAY (BUTTON_SELECT | BUTTON_PLAY)
#define CB_LEVEL (BUTTON_SELECT | BUTTON_RIGHT)
#define CB_RESTART (BUTTON_SELECT | BUTTON_LEFT)
#define CB_MENU (BUTTON_SELECT | BUTTON_MENU)
#define CB_MENU (BUTTON_SELECT | BUTTON_REPEAT)
#define CB_SCROLL_UP (BUTTON_SCROLL_FWD|BUTTON_REPEAT)
#define CB_SCROLL_DOWN (BUTTON_SCROLL_BACK|BUTTON_REPEAT)
#define CB_SCROLL_LEFT (BUTTON_LEFT|BUTTON_REPEAT)

View file

@ -66,9 +66,7 @@
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
(CONFIG_KEYPAD == IPOD_3G_PAD) || \
(CONFIG_KEYPAD == IPOD_1G2G_PAD)
#define CLIX_BUTTON_QUIT (BUTTON_SELECT | BUTTON_MENU)
#define CLIX_BUTTON_UP BUTTON_MENU
#define CLIX_BUTTON_DOWN BUTTON_PLAY
#define CLIX_BUTTON_QUIT BUTTON_MENU
#define CLIX_BUTTON_SCROLL_FWD BUTTON_SCROLL_FWD
#define CLIX_BUTTON_SCROLL_BACK BUTTON_SCROLL_BACK
#define CLIX_BUTTON_CLICK BUTTON_SELECT
@ -921,8 +919,10 @@ static int clix_handle_game(struct clix_game_state_t* state)
case CLIX_BUTTON_SCROLL_BACK:
case CLIX_BUTTON_SCROLL_BACK|BUTTON_REPEAT:
#endif
#ifdef CLIX_BUTTON_UP
case CLIX_BUTTON_UP:
case CLIX_BUTTON_UP|BUTTON_REPEAT:
#endif
if( state->y == 0 ||
state->board[ XYPOS( state->x, state->y - 1)] ==
CC_BLACK
@ -938,8 +938,10 @@ static int clix_handle_game(struct clix_game_state_t* state)
case CLIX_BUTTON_SCROLL_FWD:
case CLIX_BUTTON_SCROLL_FWD|BUTTON_REPEAT:
#endif
#ifdef CLIX_BUTTON_DOWN
case CLIX_BUTTON_DOWN:
case CLIX_BUTTON_DOWN|BUTTON_REPEAT:
#endif
if( state->y == (BOARD_HEIGHT - 1))
state->y = 0;
else

View file

@ -44,13 +44,19 @@ const struct button_mapping* plugin_contexts[]={
#define ACTION_COUNTER_TOGGLE PLA_SELECT
#define ACTION_COUNTER_RESET PLA_SELECT_REPEAT
#define ACTION_MENU PLA_CANCEL
#define ACTION_MODE_NEXT PLA_RIGHT
#define ACTION_MODE_NEXT_REPEAT PLA_RIGHT_REPEAT
#define ACTION_MODE_PREV PLA_LEFT
#define ACTION_MODE_PREV_REPEAT PLA_LEFT_REPEAT
#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
|| (CONFIG_KEYPAD == IPOD_3G_PAD) \
|| (CONFIG_KEYPAD == IPOD_4G_PAD)
#define ACTION_MENU PLA_UP
#else
#define ACTION_MENU PLA_CANCEL
#define ACTION_SKIN_NEXT PLA_UP
#define ACTION_SKIN_NEXT_REPEAT PLA_UP_REPEAT
#endif
#define ACTION_SKIN_PREV PLA_DOWN
#define ACTION_SKIN_PREV_REPEAT PLA_DOWN_REPEAT
@ -165,10 +171,12 @@ enum plugin_status plugin_start(const void* parameter){
case ACTION_SKIN_PREV:
clock_settings_skin_next(&clock_settings);
break;
#if defined(ACTION_SKIN_NEXT) && defined(ACTION_SKIN_NEXT_REPEAT)
case ACTION_SKIN_NEXT_REPEAT:
case ACTION_SKIN_NEXT:
clock_settings_skin_previous(&clock_settings);
break;
#endif
case ACTION_MENU:
clock_draw_restore_colors();
exit_clock=main_menu();

View file

@ -438,6 +438,13 @@ enum plugin_status plugin_start(const void* parameter) {
if (button == PLA_SELECT)
break;
#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
|| (CONFIG_KEYPAD == IPOD_3G_PAD) \
|| (CONFIG_KEYPAD == IPOD_4G_PAD)
if (button == PLA_UP) /* Menu button */
button = PLA_CANCEL;
#endif
switch (button) {
/* Exit */

View file

@ -52,12 +52,14 @@
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
(CONFIG_KEYPAD == IPOD_3G_PAD) || \
(CONFIG_KEYPAD == IPOD_1G2G_PAD)
#define CUBE_QUIT (BUTTON_SELECT | BUTTON_MENU)
#define CUBE_QUIT_PRE BUTTON_MENU
#define CUBE_QUIT (BUTTON_MENU | BUTTON_REL)
#define CUBE_NEXT BUTTON_RIGHT
#define CUBE_PREV BUTTON_LEFT
#define CUBE_INC BUTTON_SCROLL_FWD
#define CUBE_DEC BUTTON_SCROLL_BACK
#define CUBE_MODE BUTTON_MENU
#define CUBE_MODE_PRE BUTTON_MENU
#define CUBE_MODE (BUTTON_MENU | BUTTON_REPEAT)
#define CUBE_PAUSE BUTTON_PLAY
#define CUBE_HIGHSPEED_PRE BUTTON_SELECT
#define CUBE_HIGHSPEED (BUTTON_SELECT | BUTTON_REL)
@ -729,6 +731,7 @@ enum plugin_status plugin_start(const void* parameter)
int button;
#if defined(CUBE_MODE_PRE) || \
defined(CUBE_QUIT_PRE) || \
defined(CUBE_PAUSE_PRE) || \
defined(CUBE_HIGHSPEED_PRE)
int lastbutton = BUTTON_NONE;
@ -903,6 +906,10 @@ enum plugin_status plugin_start(const void* parameter)
case CUBE_RC_QUIT:
#endif
case CUBE_QUIT:
#ifdef CUBE_QUIT_PRE
if (lastbutton != CUBE_QUIT_PRE)
break;
#endif
quit = true;
break;
@ -911,6 +918,7 @@ enum plugin_status plugin_start(const void* parameter)
break;
}
#if defined(CUBE_MODE_PRE) || \
defined(CUBE_QUIT_PRE) || \
defined(CUBE_PAUSE_PRE) || \
defined(CUBE_HIGHSPEED_PRE)
if (button != BUTTON_NONE)

View file

@ -37,26 +37,42 @@
#define MIN_POLYGONS 1
/* Key assignement */
#define DEMYSTIFY_QUIT PLA_CANCEL
#ifdef HAVE_SCROLLWHEEL
#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
|| (CONFIG_KEYPAD == IPOD_3G_PAD) \
|| (CONFIG_KEYPAD == IPOD_4G_PAD)
#define DEMYSTIFY_QUIT PLA_UP
#else
#define DEMYSTIFY_QUIT PLA_CANCEL
#endif
#define DEMYSTIFY_INCREASE_SPEED PLA_SCROLL_FWD
#define DEMYSTIFY_DECREASE_SPEED PLA_SCROLL_BACK
#define DEMYSTIFY_INCREASE_SPEED_REPEAT PLA_SCROLL_FWD_REPEAT
#define DEMYSTIFY_DECREASE_SPEED_REPEAT PLA_SCROLL_BACK_REPEAT
#define DEMYSTIFY_ADD_POLYGON PLA_RIGHT
#define DEMYSTIFY_REMOVE_POLYGON PLA_LEFT
#define DEMYSTIFY_ADD_POLYGON_REPEAT PLA_RIGHT_REPEAT
#define DEMYSTIFY_REMOVE_POLYGON_REPEAT PLA_LEFT_REPEAT
#else
#define DEMYSTIFY_QUIT PLA_CANCEL
#define DEMYSTIFY_INCREASE_SPEED PLA_RIGHT
#define DEMYSTIFY_DECREASE_SPEED PLA_LEFT
#define DEMYSTIFY_INCREASE_SPEED_REPEAT PLA_RIGHT_REPEAT
#define DEMYSTIFY_DECREASE_SPEED_REPEAT PLA_LEFT_REPEAT
#endif
#define DEMYSTIFY_ADD_POLYGON PLA_UP
#define DEMYSTIFY_REMOVE_POLYGON PLA_DOWN
#define DEMYSTIFY_ADD_POLYGON_REPEAT PLA_UP_REPEAT
#define DEMYSTIFY_REMOVE_POLYGON_REPEAT PLA_DOWN_REPEAT
#endif
const struct button_mapping *plugin_contexts[]
= {pla_main_ctx,
#if defined(HAVE_REMOTE_LCD)

View file

@ -28,7 +28,14 @@
#define INITIAL_NB_DICES 1
#define INITIAL_NB_SIDES 2 /* corresponds to 6 sides in the array */
#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
|| (CONFIG_KEYPAD == IPOD_3G_PAD) \
|| (CONFIG_KEYPAD == IPOD_4G_PAD)
#define DICE_QUIT PLA_UP
#else
#define DICE_QUIT PLA_CANCEL
#endif
#define DICE_ROLL PLA_SELECT

View file

@ -43,10 +43,19 @@ static const struct button_mapping *plugin_contexts[] = { pla_main_ctx };
#define FFT_PREV_GRAPH PLA_LEFT
#define FFT_NEXT_GRAPH PLA_RIGHT
#define FFT_ORIENTATION PLA_CANCEL
#define FFT_WINDOW PLA_SELECT
#define FFT_AMP_SCALE PLA_UP
#define FFT_WINDOW PLA_SELECT_REL
#define FFT_AMP_SCALE PLA_SELECT_REPEAT
#define FFT_AMP_SCALE_PRE PLA_SELECT
#define FFT_FREQ_SCALE PLA_DOWN
#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
|| (CONFIG_KEYPAD == IPOD_3G_PAD) \
|| (CONFIG_KEYPAD == IPOD_4G_PAD)
#define FFT_QUIT PLA_UP
#else
#define FFT_QUIT PLA_EXIT
#endif
#ifdef HAVE_LCD_COLOR
#include "pluginbitmaps/fft_colors.h"
@ -1257,6 +1266,10 @@ enum plugin_status plugin_start(const void* parameter)
if(!fft_setup())
return PLUGIN_ERROR;
#if defined(FFT_AMP_SCALE_PRE)
int lastbutton = BUTTON_NONE;
#endif
while(run)
{
long delay = fft_draw();
@ -1300,6 +1313,10 @@ enum plugin_status plugin_start(const void* parameter)
break;
case FFT_AMP_SCALE:
#ifdef FFT_AMP_SCALE_PRE
if (lastbutton != FFT_AMP_SCALE_PRE)
break;
#endif
if (++fft.amp_scale >= FFT_MAX_AS)
fft.amp_scale = FFT_MIN_AS;
@ -1328,6 +1345,11 @@ enum plugin_status plugin_start(const void* parameter)
exit_on_usb(button);
break;
}
#if defined(FFT_AMP_SCALE_PRE)
if (button != BUTTON_NONE)
lastbutton = button;
#endif
}
return PLUGIN_OK;

View file

@ -56,10 +56,17 @@ const struct button_mapping* plugin_contexts[]= {
};
#define FIRE_QUIT PLA_CANCEL
#define FIRE_QUIT2 PLA_EXIT
#define FIRE_SWITCH_FLAMES_TYPE PLA_LEFT
#define FIRE_SWITCH_FLAMES_MOVING PLA_RIGHT
#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
|| (CONFIG_KEYPAD == IPOD_3G_PAD) \
|| (CONFIG_KEYPAD == IPOD_4G_PAD)
#define FIRE_QUIT2 PLA_UP
#else
#define FIRE_QUIT2 PLA_EXIT
#endif
#ifdef HAVE_SCROLLWHEEL
#define FIRE_INCREASE_MULT PLA_SCROLL_FWD
#define FIRE_INCREASE_MULT_REP PLA_SCROLL_FWD_REPEAT

View file

@ -35,10 +35,17 @@ static const struct button_mapping *plugin_contexts[] = { pla_main_ctx };
/* We use PLA */
#define BTN_EXIT PLA_EXIT
#define BTN_MENU PLA_CANCEL
#define BTN_FIRE PLA_SELECT
#define BTN_FIRE_REPEAT PLA_SELECT_REPEAT
#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
|| (CONFIG_KEYPAD == IPOD_3G_PAD) \
|| (CONFIG_KEYPAD == IPOD_4G_PAD)
#define BTN_MENU PLA_UP
#else
#define BTN_MENU PLA_CANCEL
#endif
/* The lowdown on source terminology:
* a ROCKET is launched from the LCD bottom.
* FIREWORKs are ejected from the rocket when it explodes. */

View file

@ -49,7 +49,7 @@
#define FLIPIT_DOWN BUTTON_PLAY
#define FLIPIT_NEXT BUTTON_SCROLL_FWD
#define FLIPIT_PREV BUTTON_SCROLL_BACK
#define FLIPIT_QUIT (BUTTON_SELECT | BUTTON_MENU)
#define FLIPIT_QUIT (BUTTON_SELECT | BUTTON_REPEAT)
#define FLIPIT_SHUFFLE (BUTTON_SELECT | BUTTON_LEFT)
#define FLIPIT_SOLVE (BUTTON_SELECT | BUTTON_PLAY)
#define FLIPIT_STEP_BY_STEP (BUTTON_SELECT | BUTTON_RIGHT)
@ -841,7 +841,7 @@ enum plugin_status plugin_start(const void* parameter)
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
(CONFIG_KEYPAD == IPOD_3G_PAD) || \
(CONFIG_KEYPAD == IPOD_1G2G_PAD)
rb->lcd_putsxy(2, 8, "[S-MENU] to stop");
rb->lcd_putsxy(2, 8, "Long [SELECT] to stop");
rb->lcd_putsxy(2, 18, "[SELECT] toggle");
rb->lcd_putsxy(2, 28, "[S-LEFT] shuffle");
rb->lcd_putsxy(2, 38, "[S-PLAY] solution");

View file

@ -40,7 +40,7 @@
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
(CONFIG_KEYPAD == IPOD_3G_PAD) || \
(CONFIG_KEYPAD == IPOD_1G2G_PAD)
#define FRACTAL_QUIT (BUTTON_SELECT | BUTTON_MENU)
#define FRACTAL_QUIT (BUTTON_SELECT | BUTTON_REPEAT)
#define FRACTAL_UP BUTTON_MENU
#define FRACTAL_DOWN BUTTON_PLAY
#define FRACTAL_LEFT BUTTON_LEFT

View file

@ -353,7 +353,7 @@ static int show_menu(void) /* return 1 to quit */
static int ask_and_get_audio_buffer(const char *filename)
{
int button;
#if defined(IMGVIEW_ZOOM_PRE)
#if defined(IMGVIEW_ZOOM_PRE) || defined(IMGVIEW_QUIT_PRE)
int lastbutton = BUTTON_NONE;
#endif
rb->lcd_setfont(FONT_SYSFIXED);
@ -392,6 +392,10 @@ static int ask_and_get_audio_buffer(const char *filename)
#endif
#ifdef IMGVIEW_QUIT
case IMGVIEW_QUIT:
#ifdef IMGVIEW_QUIT_PRE
if (lastbutton != IMGVIEW_QUIT_PRE)
break;
#endif
#endif
case IMGVIEW_MENU:
return PLUGIN_OK;
@ -424,7 +428,7 @@ static int ask_and_get_audio_buffer(const char *filename)
== SYS_USB_CONNECTED)
return PLUGIN_USB_CONNECTED;
}
#if defined(IMGVIEW_ZOOM_PRE)
#if defined(IMGVIEW_ZOOM_PRE) || defined(IMGVIEW_QUIT_PRE)
if (button != BUTTON_NONE)
lastbutton = button;
#endif
@ -572,14 +576,19 @@ static void pan_view_down(struct image_info *info)
}
/* interactively scroll around the image */
static int scroll_bmp(struct image_info *info)
static int scroll_bmp(struct image_info *info, bool initial_frame)
{
static long ss_timeout = 0;
int button;
#if defined(IMGVIEW_ZOOM_PRE) || defined(IMGVIEW_MENU_PRE) \
|| defined(IMGVIEW_SLIDE_SHOW_PRE)
int lastbutton = BUTTON_NONE;
|| defined(IMGVIEW_SLIDE_SHOW_PRE) || defined(IMGVIEW_QUIT_PRE)
static int lastbutton;
if (initial_frame)
lastbutton = BUTTON_NONE;
#else
(void) initial_frame;
#endif
if (!ss_timeout && iv_api.slideshow_enabled)
@ -745,6 +754,10 @@ static int scroll_bmp(struct image_info *info)
#ifdef IMGVIEW_QUIT
case IMGVIEW_QUIT:
#ifdef IMGVIEW_QUIT_PRE
if (lastbutton != IMGVIEW_QUIT_PRE)
break;
#endif
return PLUGIN_OK;
break;
#endif
@ -756,7 +769,8 @@ static int scroll_bmp(struct image_info *info)
break;
} /* switch */
#if defined(IMGVIEW_ZOOM_PRE) || defined(IMGVIEW_MENU_PRE) || defined(IMGVIEW_SLIDE_SHOW_PRE)
#if defined(IMGVIEW_ZOOM_PRE) || defined(IMGVIEW_MENU_PRE) ||\
defined(IMGVIEW_SLIDE_SHOW_PRE) || defined(IMGVIEW_QUIT_PRE)
if (button != BUTTON_NONE)
lastbutton = button;
#endif
@ -922,6 +936,7 @@ static int load_and_show(char* filename, struct image_info *info)
/* used to loop through subimages in animated gifs */
int frame = 0;
bool initial_frame = true;
do /* loop the image prepare and decoding when zoomed */
{
status = imgdec->get_image(info, frame, ds); /* decode or fetch from cache */
@ -954,7 +969,8 @@ static int load_and_show(char* filename, struct image_info *info)
*/
while (1)
{
status = scroll_bmp(info);
status = scroll_bmp(info, initial_frame);
initial_frame = false;
if (status == ZOOM_IN)
{

View file

@ -53,8 +53,10 @@
#define IMGVIEW_RIGHT BUTTON_RIGHT
#define IMGVIEW_NEXT (BUTTON_SELECT | BUTTON_RIGHT)
#define IMGVIEW_PREVIOUS (BUTTON_SELECT | BUTTON_LEFT)
#define IMGVIEW_MENU (BUTTON_SELECT | BUTTON_MENU)
#define IMGVIEW_QUIT (BUTTON_SELECT | BUTTON_PLAY)
#define IMGVIEW_MENU_PRE BUTTON_SELECT
#define IMGVIEW_MENU (BUTTON_SELECT | BUTTON_REPEAT)
#define IMGVIEW_QUIT_PRE BUTTON_SELECT
#define IMGVIEW_QUIT (BUTTON_SELECT | BUTTON_REL)
#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD
#define IMGVIEW_ZOOM_PRE BUTTON_SELECT

View file

@ -25,6 +25,13 @@
#include "lib/pluginlib_exit.h"
#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
|| (CONFIG_KEYPAD == IPOD_3G_PAD) \
|| (CONFIG_KEYPAD == IPOD_4G_PAD)
#define JACKPOT_QUIT PLA_UP
#else
#define JACKPOT_QUIT PLA_CANCEL
#endif
const struct button_mapping* plugin_contexts[]={pla_main_ctx};
#define NB_PICTURES 9
@ -248,7 +255,7 @@ enum plugin_status plugin_start(const void* parameter)
plugin_contexts, ARRAYLEN(plugin_contexts));
switch ( action )
{
case PLA_CANCEL:
case JACKPOT_QUIT:
return PLUGIN_OK;
case PLA_SELECT:
jackpot_play_turn(&game);

View file

@ -49,9 +49,9 @@
#define JEWELS_PREV BUTTON_SCROLL_BACK
#define JEWELS_NEXT BUTTON_SCROLL_FWD
#define JEWELS_SELECT BUTTON_SELECT
#define JEWELS_CANCEL (BUTTON_SELECT | BUTTON_MENU)
#define JEWELS_CANCEL (BUTTON_SELECT | BUTTON_REPEAT)
#define HK_SELECT "SELECT"
#define HK_CANCEL "SEL + MENU"
#define HK_CANCEL "Long SELECT"
#elif (CONFIG_KEYPAD == IPOD_3G_PAD)
#define JEWELS_LEFT BUTTON_LEFT

View file

@ -58,7 +58,14 @@ static const struct button_mapping *plugin_contexts[] = { pla_main_ctx };
#define LAMP_EXIT PLA_EXIT
#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
|| (CONFIG_KEYPAD == IPOD_3G_PAD) \
|| (CONFIG_KEYPAD == IPOD_4G_PAD)
#define LAMP_EXIT2 PLA_UP
#else
#define LAMP_EXIT2 PLA_CANCEL
#endif
#ifdef HAVE_LCD_COLOR

View file

@ -49,15 +49,27 @@ static const struct button_mapping *plugin_contexts[]
/* We use PLA */
#define LP_QUIT PLA_EXIT
#define LP_QUIT2 PLA_CANCEL
#define LP_DEC_X PLA_LEFT
#define LP_DEC_X_REPEAT PLA_LEFT_REPEAT
#define LP_INC_X PLA_RIGHT
#define LP_INC_X_REPEAT PLA_RIGHT_REPEAT
#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
|| (CONFIG_KEYPAD == IPOD_3G_PAD) \
|| (CONFIG_KEYPAD == IPOD_4G_PAD)
#define LP_QUIT2 PLA_UP
#define LP_DEC_Y PLA_SCROLL_BACK
#define LP_DEC_Y_REPEAT PLA_SCROLL_BACK_REPEAT
#define LP_INC_Y PLA_SCROLL_FWD
#define LP_INC_Y_REPEAT PLA_SCROLL_FWD_REPEAT
#else
#define LP_QUIT2 PLA_CANCEL
#define LP_DEC_Y PLA_DOWN
#define LP_DEC_Y_REPEAT PLA_DOWN_REPEAT
#define LP_INC_Y PLA_UP
#define LP_INC_Y_REPEAT PLA_UP_REPEAT
#endif
enum plugin_status plugin_start(const void* parameter) {
int button;

View file

@ -52,6 +52,14 @@
/* this set the context to use with PLA */
static const struct button_mapping *plugin_contexts[] = { pla_main_ctx };
#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
|| (CONFIG_KEYPAD == IPOD_3G_PAD) \
|| (CONFIG_KEYPAD == IPOD_4G_PAD)
#define MATRIX_EXIT2 PLA_UP
#else
#define MATRIX_EXIT2 PLA_CANCEL
#endif
#ifdef HAVE_SCROLLWHEEL
#define MATRIX_SLEEP_MORE PLA_SCROLL_BACK
#define MATRIX_SLEEP_MORE_REPEAT PLA_SCROLL_BACK_REPEAT
@ -65,7 +73,6 @@ static const struct button_mapping *plugin_contexts[] = { pla_main_ctx };
#endif /* HAVE_SCROLLWHEEL */
#define MATRIX_PAUSE PLA_SELECT
#define MATRIX_EXIT PLA_EXIT
#define MATRIX_EXIT2 PLA_CANCEL
#define SLEEP HZ/50

View file

@ -37,11 +37,14 @@
/* key assignments */
#if (CONFIG_KEYPAD == IPOD_3G_PAD)
#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
|| (CONFIG_KEYPAD == IPOD_3G_PAD) \
|| (CONFIG_KEYPAD == IPOD_4G_PAD)
# define MAZE_NEW (BUTTON_SELECT | BUTTON_REPEAT)
# define MAZE_NEW_PRE BUTTON_SELECT
# define MAZE_QUIT BUTTON_MENU
# define MAZE_SOLVE (BUTTON_SELECT | BUTTON_PLAY)
# define MAZE_SOLVE (BUTTON_SELECT | BUTTON_REL)
# define MAZE_SOLVE_PRE BUTTON_SELECT
# define MAZE_RIGHT BUTTON_RIGHT
# define MAZE_RIGHT_REPEAT BUTTON_RIGHT|BUTTON_REPEAT
# define MAZE_LEFT BUTTON_LEFT
@ -491,7 +494,7 @@ static void maze_move_player_left(struct maze* maze)
enum plugin_status plugin_start(const void* parameter)
{
int button;
#ifdef MAZE_NEW_PRE
#if defined(MAZE_NEW_PRE) || defined(MAZE_SOLVE_PRE)
int lastbutton = BUTTON_NONE;
#endif
int quit = 0;
@ -544,6 +547,10 @@ enum plugin_status plugin_start(const void* parameter)
maze_draw(&maze, rb->screens[i]);
break;
case MAZE_SOLVE:
#ifdef MAZE_SOLVE_PRE
if(lastbutton != MAZE_SOLVE_PRE)
break;
#endif
maze_solve(&maze);
FOR_NB_SCREENS(i)
maze_draw(&maze, rb->screens[i]);
@ -583,7 +590,7 @@ enum plugin_status plugin_start(const void* parameter)
}
break;
}
#ifdef MAZE_NEW_PRE
#if defined(MAZE_NEW_PRE) || defined(MAZE_SOLVE_PRE)
if( button != BUTTON_NONE )
lastbutton = button;
#endif

View file

@ -27,7 +27,9 @@
/* Include standard plugin macro */
#if (CONFIG_KEYPAD == IPOD_3G_PAD)
#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
|| (CONFIG_KEYPAD == IPOD_3G_PAD) \
|| (CONFIG_KEYPAD == IPOD_4G_PAD)
# define MAZEZAM_MENU BUTTON_MENU
# define MAZEZAM_RIGHT BUTTON_RIGHT
# define MAZEZAM_LEFT BUTTON_LEFT

View file

@ -82,7 +82,13 @@ enum metronome_errors
#define MET_SYNC
#endif
#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
|| (CONFIG_KEYPAD == IPOD_3G_PAD) \
|| (CONFIG_KEYPAD == IPOD_4G_PAD)
#define METRONOME_QUIT PLA_UP
#else
#define METRONOME_QUIT PLA_EXIT
#endif
#ifdef HAVE_SCROLLWHEEL
#define METRONOME_VOL_UP PLA_SCROLL_FWD

View file

@ -37,10 +37,17 @@
static const struct button_mapping *plugin_contexts[] = { pla_main_ctx };
#define MOSAIQUE_QUIT PLA_EXIT
#define MOSAIQUE_QUIT2 PLA_CANCEL
#define MOSAIQUE_SPEED PLA_UP
#define MOSAIQUE_SPEED PLA_RIGHT
#define MOSAIQUE_RESTART PLA_SELECT
#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
|| (CONFIG_KEYPAD == IPOD_3G_PAD) \
|| (CONFIG_KEYPAD == IPOD_4G_PAD)
#define MOSAIQUE_QUIT2 PLA_UP
#else
#define MOSAIQUE_QUIT2 PLA_CANCEL
#endif
enum plugin_status plugin_start(const void* parameter)
{
int button;

View file

@ -904,6 +904,7 @@ reopen_datfile:
}
break;
case ACTION_STD_CANCEL:
case ACTION_STD_MENU:
{
selection = -2;
exit = true;

View file

@ -47,12 +47,14 @@
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) || \
(CONFIG_KEYPAD == IPOD_1G2G_PAD)
#define OSCILLOSCOPE_QUIT (BUTTON_SELECT | BUTTON_MENU)
#define OSCILLOSCOPE_DRAWMODE (BUTTON_SELECT | BUTTON_PLAY)
#define OSCILLOSCOPE_QUIT BUTTON_MENU
#define OSCILLOSCOPE_GRAPHMODE_PRE BUTTON_SELECT
#define OSCILLOSCOPE_GRAPHMODE (BUTTON_SELECT | BUTTON_REL)
#define OSCILLOSCOPE_DRAWMODE_PRE BUTTON_SELECT
#define OSCILLOSCOPE_DRAWMODE (BUTTON_SELECT | BUTTON_REPEAT)
#define OSCILLOSCOPE_ADVMODE (BUTTON_SELECT | BUTTON_RIGHT)
#define OSCILLOSCOPE_ORIENTATION (BUTTON_SELECT | BUTTON_LEFT)
#define OSCILLOSCOPE_GRAPHMODE BUTTON_MENU
#define OSCILLOSCOPE_PAUSE BUTTON_PLAY
#define OSCILLOSCOPE_PAUSE BUTTON_PLAY | BUTTON_REL
#define OSCILLOSCOPE_SPEED_UP BUTTON_RIGHT
#define OSCILLOSCOPE_SPEED_DOWN BUTTON_LEFT
#define OSCILLOSCOPE_VOL_UP BUTTON_SCROLL_FWD

View file

@ -65,7 +65,7 @@
(CONFIG_KEYPAD == IPOD_3G_PAD) || \
(CONFIG_KEYPAD == IPOD_1G2G_PAD)
#define PEGBOX_SELECT (BUTTON_SELECT|BUTTON_RIGHT)
#define PEGBOX_QUIT (BUTTON_SELECT|BUTTON_PLAY)
#define PEGBOX_QUIT (BUTTON_SELECT|BUTTON_REPEAT)
#define PEGBOX_RESTART (BUTTON_SELECT|BUTTON_LEFT)
#define PEGBOX_LVL_UP (BUTTON_SELECT|BUTTON_MENU)
#define PEGBOX_UP BUTTON_MENU
@ -74,7 +74,7 @@
#define PEGBOX_LEFT BUTTON_LEFT
#define SELECT_TEXT "SELECT+RIGHT"
#define QUIT_TEXT "SELECT+PLAY"
#define QUIT_TEXT "Long SELECT"
#define RESTART_TEXT "SELECT+LEFT"
#define LVL_UP_TEXT "SELECT+MENU"
#define LVL_DOWN_TEXT "-"

View file

@ -619,7 +619,6 @@ enum plugin_status plugin_start(const void* parameter)
switch (button)
{
case PERIODIC_KEY_SELECT:
break;
case PERIODIC_KEY_MENU:
return PLUGIN_OK;
break;

View file

@ -152,7 +152,8 @@ const struct button_mapping pf_context_buttons[] =
#elif (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
|| (CONFIG_KEYPAD == IPOD_3G_PAD) \
|| (CONFIG_KEYPAD == IPOD_4G_PAD)
{PF_QUIT, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU},
{PF_MENU, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU},
{PF_QUIT, BUTTON_MENU|BUTTON_REL, BUTTON_MENU},
{PF_SORTING_NEXT, BUTTON_SELECT|BUTTON_MENU, BUTTON_NONE},
{PF_SORTING_PREV, BUTTON_SELECT|BUTTON_PLAY, BUTTON_NONE},
#elif CONFIG_KEYPAD == MPIO_HD300_PAD

View file

@ -1013,6 +1013,11 @@ static void record_and_get_pitch(void)
break;
case PLA_CANCEL:
#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
|| (CONFIG_KEYPAD == IPOD_3G_PAD) \
|| (CONFIG_KEYPAD == IPOD_4G_PAD)
case PLA_UP:
#endif
rb->pcm_stop_recording();
quit = main_menu();
if(!quit)

View file

@ -268,6 +268,11 @@ int main(void)
switch(action)
{
#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
|| (CONFIG_KEYPAD == IPOD_3G_PAD) \
|| (CONFIG_KEYPAD == IPOD_4G_PAD)
case PLA_UP:
#endif
case PLA_EXIT:
case PLA_CANCEL:
return PLUGIN_OK;
@ -277,7 +282,11 @@ int main(void)
case PLA_SCROLL_FWD:
case PLA_SCROLL_FWD_REPEAT:
#endif
#if (CONFIG_KEYPAD != IPOD_1G2G_PAD) \
&& (CONFIG_KEYPAD != IPOD_3G_PAD) \
&& (CONFIG_KEYPAD != IPOD_4G_PAD)
case PLA_UP:
#endif
case PLA_UP_REPEAT:
++plasma_frequency;
wave_table_generate();

View file

@ -469,7 +469,13 @@ static char* messages[] =
#define RFK_VERSION "v1.4142135.406"
#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
|| (CONFIG_KEYPAD == IPOD_3G_PAD) \
|| (CONFIG_KEYPAD == IPOD_4G_PAD)
# define RFK_QUIT PLA_SELECT_REPEAT
#else
# define RFK_QUIT PLA_CANCEL
#endif
# define RFK_RIGHT PLA_RIGHT
# define RFK_LEFT PLA_LEFT
# define RFK_UP PLA_UP

View file

@ -33,7 +33,7 @@
(CONFIG_KEYPAD == IPOD_3G_PAD) || \
(CONFIG_KEYPAD == IPOD_1G2G_PAD)
#define ROCKBLOX_OFF (BUTTON_MENU | BUTTON_SELECT)
#define ROCKBLOX_OFF (BUTTON_SELECT | BUTTON_REPEAT)
#define ROCKBLOX_ROTATE_CCW BUTTON_SCROLL_BACK
#define ROCKBLOX_ROTATE_CCW2 (BUTTON_MENU | BUTTON_REL)
#define ROCKBLOX_ROTATE_CW BUTTON_SCROLL_FWD
@ -41,6 +41,7 @@
#define ROCKBLOX_RIGHT BUTTON_RIGHT
#define ROCKBLOX_DOWN BUTTON_PLAY
#define ROCKBLOX_RESTART (BUTTON_SELECT | BUTTON_PLAY)
#define ROCKBLOX_DROP_PRE BUTTON_SELECT
#define ROCKBLOX_DROP (BUTTON_SELECT | BUTTON_REL)
#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \

View file

@ -28,7 +28,14 @@ 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
#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
|| (CONFIG_KEYPAD == IPOD_3G_PAD) \
|| (CONFIG_KEYPAD == IPOD_4G_PAD)
#define ONEDROCKBLOX_QUIT2 PLA_UP
#else
#define ONEDROCKBLOX_QUIT2 PLA_CANCEL
#endif
#define mrand(max) (short)(rb->rand()%max)

View file

@ -70,7 +70,13 @@
#define ROCKLIFE_INIT PLA_DOWN
#define ROCKLIFE_NEXT PLA_RIGHT
#define ROCKLIFE_NEXT_REP PLA_RIGHT_REPEAT
#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
|| (CONFIG_KEYPAD == IPOD_3G_PAD) \
|| (CONFIG_KEYPAD == IPOD_4G_PAD)
#define ROCKLIFE_QUIT PLA_UP
#else
#define ROCKLIFE_QUIT PLA_CANCEL
#endif
#define ROCKLIFE_STATUS PLA_LEFT
#define PATTERN_RANDOM 0

View file

@ -36,7 +36,7 @@
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
(CONFIG_KEYPAD == IPOD_3G_PAD) || \
(CONFIG_KEYPAD == IPOD_1G2G_PAD)
#define PUZZLE_QUIT (BUTTON_SELECT | BUTTON_MENU)
#define PUZZLE_QUIT (BUTTON_SELECT | BUTTON_REPEAT)
#define PUZZLE_LEFT BUTTON_LEFT
#define PUZZLE_RIGHT BUTTON_RIGHT
#define PUZZLE_UP BUTTON_MENU
@ -848,7 +848,7 @@ enum plugin_status plugin_start(
#if (CONFIG_KEYPAD == IPOD_4G_PAD) || \
(CONFIG_KEYPAD == IPOD_3G_PAD) || \
(CONFIG_KEYPAD == IPOD_1G2G_PAD)
rb->lcd_putsxy(0, 18, "[S-MENU] to stop");
rb->lcd_putsxy(0, 18, "Long [SELECT] to stop");
rb->lcd_putsxy(0, 28, "[S-LEFT] shuffle");
rb->lcd_putsxy(0, 38, "[S-RIGHT] change pic");
#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \

View file

@ -55,12 +55,12 @@ dir is the current direction of the snake - 0=up, 1=right, 2=down, 3=left;
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
(CONFIG_KEYPAD == IPOD_3G_PAD) || \
(CONFIG_KEYPAD == IPOD_1G2G_PAD)
#define SNAKE_QUIT (BUTTON_SELECT|BUTTON_MENU)
#define SNAKE_QUIT (BUTTON_SELECT|BUTTON_REPEAT)
#define SNAKE_LEFT BUTTON_LEFT
#define SNAKE_RIGHT BUTTON_RIGHT
#define SNAKE_UP BUTTON_MENU
#define SNAKE_DOWN BUTTON_PLAY
#define SNAKE_PLAYPAUSE BUTTON_SELECT
#define SNAKE_PLAYPAUSE (BUTTON_SELECT|BUTTON_REL)
#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD)
#define SNAKE_QUIT BUTTON_POWER

View file

@ -181,8 +181,8 @@ Head and Tail are stored
#define SNAKE2_RIGHT BUTTON_RIGHT
#define SNAKE2_UP BUTTON_MENU
#define SNAKE2_DOWN BUTTON_PLAY
#define SNAKE2_QUIT (BUTTON_SELECT | BUTTON_MENU)
#define SNAKE2_PLAYPAUSE BUTTON_SELECT
#define SNAKE2_QUIT (BUTTON_SELECT | BUTTON_REPEAT)
#define SNAKE2_PLAYPAUSE (BUTTON_SELECT | BUTTON_REL)
#define SNAKE2_PLAYPAUSE_TEXT "Select"
#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD)

View file

@ -30,8 +30,14 @@ static const struct button_mapping *plugin_contexts[] = { pla_main_ctx };
/* PLA definitions */
#define SNOW_QUIT PLA_EXIT
#define SNOW_QUIT2 PLA_CANCEL
#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
|| (CONFIG_KEYPAD == IPOD_3G_PAD) \
|| (CONFIG_KEYPAD == IPOD_4G_PAD)
#define SNOW_QUIT2 PLA_UP
#else
#define SNOW_QUIT2 PLA_CANCEL
#endif
static short particles[NUM_PARTICLES][2];
#if LCD_WIDTH >= 160

View file

@ -125,7 +125,7 @@
#define SOKOBAN_RIGHT BUTTON_RIGHT
#define SOKOBAN_UP BUTTON_MENU
#define SOKOBAN_DOWN BUTTON_PLAY
#define SOKOBAN_MENU (BUTTON_SELECT | BUTTON_MENU)
#define SOKOBAN_MENU (BUTTON_SELECT | BUTTON_REPEAT)
#define SOKOBAN_UNDO_PRE BUTTON_SELECT
#define SOKOBAN_UNDO (BUTTON_SELECT | BUTTON_REL)
#define SOKOBAN_REDO (BUTTON_SELECT | BUTTON_PLAY)

View file

@ -56,7 +56,7 @@
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) || \
(CONFIG_KEYPAD == IPOD_1G2G_PAD)
# define SOL_QUIT (BUTTON_SELECT | BUTTON_MENU)
# define SOL_QUIT (BUTTON_SELECT | BUTTON_REPEAT)
# define SOL_UP BUTTON_SCROLL_BACK
# define SOL_DOWN BUTTON_SCROLL_FWD
# define SOL_LEFT_PRE BUTTON_LEFT

View file

@ -80,7 +80,7 @@
(CONFIG_KEYPAD == IPOD_3G_PAD) || \
(CONFIG_KEYPAD == IPOD_1G2G_PAD)
#define STAR_QUIT (BUTTON_SELECT | BUTTON_MENU)
#define STAR_QUIT (BUTTON_SELECT | BUTTON_REPEAT)
#define STAR_LEFT BUTTON_LEFT
#define STAR_RIGHT BUTTON_RIGHT
#define STAR_UP BUTTON_MENU
@ -91,7 +91,7 @@
#define STAR_LEVEL_DOWN (BUTTON_SELECT | BUTTON_LEFT)
#define STAR_LEVEL_REPEAT (BUTTON_SELECT | BUTTON_PLAY)
#define STAR_TOGGLE_CONTROL_NAME "SELECT"
#define STAR_QUIT_NAME "S + MENU"
#define STAR_QUIT_NAME "Long SELECT"
#define STAR_LEVEL_UP_NAME "S >"
#define STAR_LEVEL_DOWN_NAME "S <"
#define STAR_LEVEL_REPEAT_NAME "S + PLAY"

View file

@ -27,11 +27,21 @@ static const struct button_mapping *plugin_contexts[] = { pla_main_ctx };
/* Key assignement */
#define STARFIELD_QUIT PLA_EXIT
#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
|| (CONFIG_KEYPAD == IPOD_3G_PAD) \
|| (CONFIG_KEYPAD == IPOD_4G_PAD)
#define STARFIELD_QUIT2 PLA_UP
#define STARFIELD_INCREASE_ZMOVE PLA_SCROLL_FWD
#define STARFIELD_INCREASE_ZMOVE_REPEAT PLA_SCROLL_FWD_REPEAT
#define STARFIELD_DECREASE_ZMOVE PLA_SCROLL_BACK
#define STARFIELD_DECREASE_ZMOVE_REPEAT PLA_SCROLL_BACK_REPEAT
#else
#define STARFIELD_QUIT2 PLA_CANCEL
#define STARFIELD_INCREASE_ZMOVE PLA_UP
#define STARFIELD_INCREASE_ZMOVE_REPEAT PLA_UP_REPEAT
#define STARFIELD_DECREASE_ZMOVE PLA_DOWN
#define STARFIELD_DECREASE_ZMOVE_REPEAT PLA_DOWN_REPEAT
#endif
#define STARFIELD_INCREASE_NB_STARS PLA_RIGHT
#define STARFIELD_INCREASE_NB_STARS_REPEAT PLA_RIGHT_REPEAT
#define STARFIELD_DECREASE_NB_STARS PLA_LEFT

View file

@ -29,7 +29,15 @@ static bool cancel;
/* we use PLA */
#define STATS_STOP PLA_EXIT
#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
|| (CONFIG_KEYPAD == IPOD_3G_PAD) \
|| (CONFIG_KEYPAD == IPOD_4G_PAD)
#define STATS_STOP2 PLA_UP
#else
#define STATS_STOP2 PLA_CANCEL
#endif
/* this set the context to use with PLA */
static const struct button_mapping *plugin_contexts[] = { pla_main_ctx };
@ -149,7 +157,7 @@ static void traversedir(char* location, char* name)
lasttick = *rb->current_tick;
button = pluginlib_getaction(TIMEOUT_NOBLOCK, plugin_contexts,
ARRAYLEN(plugin_contexts));
if (button == STATS_STOP) {
if (button == STATS_STOP || button == STATS_STOP2) {
cancel = true;
break;
}

View file

@ -54,7 +54,7 @@ static long max_cycle;
#define BTN_DIR_LEFT BUTTON_LEFT
#define BTN_DIR_RIGHT BUTTON_RIGHT
#define BTN_STARTPAUSE (BUTTON_SELECT|BUTTON_REL)
#define BTN_QUIT (BUTTON_SELECT|BUTTON_MENU)
#define BTN_QUIT (BUTTON_SELECT|BUTTON_REPEAT)
#define BTN_STOPRESET (BUTTON_SELECT|BUTTON_PLAY)
#elif (CONFIG_KEYPAD == IRIVER_H300_PAD) || (CONFIG_KEYPAD == IRIVER_H100_PAD)

View file

@ -42,10 +42,10 @@
(CONFIG_KEYPAD == IPOD_3G_PAD) || \
(CONFIG_KEYPAD == IPOD_1G2G_PAD)
#define QUIT (BUTTON_SELECT | BUTTON_MENU)
#define QUIT (BUTTON_SELECT | BUTTON_REPEAT)
#define LEFT BUTTON_LEFT
#define RIGHT BUTTON_RIGHT
#define PAUSE BUTTON_SELECT
#define PAUSE (BUTTON_SELECT | BUTTON_REL)
#define MENU_UP BUTTON_SCROLL_FWD
#define MENU_DOWN BUTTON_SCROLL_BACK
#define UP BUTTON_MENU

View file

@ -14,7 +14,8 @@ which -- in computer talk -- means a multiple of 1024).}
\opt{HAVEREMOTEKEYMAP}{& \PluginRCUp, \PluginRCDown, \PluginRCLeft, \PluginRCRight}
& Slide tiles\\
\PluginCancel
\nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}
\opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel}
& Go to menu\\
\end{btnmap}

View file

@ -9,7 +9,8 @@ This plugin is an alarm clock, which resumes a paused song at a given time.
& Switch between hours/minutes selection \\
\opt{scrollwheel}{\PluginScrollBack{} / \PluginScrollFwd{} or}
\PluginUp{} / \PluginDown
\nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginUp{} / \PluginDown}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginDown}
\opt{HAVEREMOTEKEYMAP}{& \PluginRCUp{} / \PluginRCDown}
& Increase/Decrease hours/minutes \\
@ -17,7 +18,8 @@ This plugin is an alarm clock, which resumes a paused song at a given time.
\opt{HAVEREMOTEKEYMAP}{& \PluginRCSelect}
& Set the alarm \\
\PluginCancel
\nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
\opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel}
& Exit \\
\end{btnmap}

View file

@ -6,7 +6,8 @@ In \setting{Scroll mode} the bouncing text is replaced by a different one
scrolling from right to left.
\begin{btnmap}
\PluginUp / \PluginDown
\nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginUp{} / \PluginDown}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginLeft{} / \PluginRight}
\opt{HAVEREMOTEKEYMAP}{& }
& Moves to next/previous option\\
\nopt{scrollwheel} {
@ -20,7 +21,8 @@ scrolling from right to left.
\PluginSelect
\opt{HAVEREMOTEKEYMAP}{& }
& Toggles Scroll mode\\
\PluginCancel{} or \PluginExit
\nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel{} or \PluginExit}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginUp}
\opt{HAVEREMOTEKEYMAP}{& }
& Exits bounce demo\\
\end{btnmap}

View file

@ -10,7 +10,8 @@ fired. Points are awarded depending on how quickly the level was completed.
\begin{btnmap}
\opt{IRIVER_H10_PAD,SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{\PluginSelect}
\nopt{IRIVER_H10_PAD,SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{\PluginUp}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonPlay}
\nopt{IRIVER_H10_PAD,SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD,IPOD_4G_PAD,IPOD_3G_PAD}{\PluginUp}
\opt{HAVEREMOTEKEYMAP}{& \PluginRCUp}
& Pause game\\
@ -24,7 +25,8 @@ fired. Points are awarded depending on how quickly the level was completed.
\opt{HAVEREMOTEKEYMAP}{& \PluginRCSelect}
& Fire bubble\\
\PluginCancel{} or \PluginExit
\nopt{IRIVER_H10_PAD,SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD,IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel{} or \PluginExit}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
\opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel}
& Exit to menu\\
\end{btnmap}

View file

@ -37,9 +37,9 @@ You can select what day is first day of week by the setting \setting{First Day o
\opt{MPIO_HD300_PAD}{\ButtonRew / \ButtonFF
& Previous / Next week\\}
%
\nopt{IPOD_4G_PAD,IPOD_3G_PAD}{
\opt{MROBE100_PAD}{\ButtonMenu{} + \ButtonUp{} / \ButtonDown}
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonMode{} / \ButtonRec}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonPlay{} / \ButtonMenu}
\opt{IAUDIO_X5_PAD}{\ButtonRec{} / \ButtonPlay}
\opt{GIGABEAT_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD}{\ButtonVolUp{} / \ButtonVolDown}
\opt{GIGABEAT_S_PAD}{\ButtonNext{} / \ButtonPrev}
@ -52,10 +52,10 @@ You can select what day is first day of week by the setting \setting{First Day o
\opt{MPIO_HD300_PAD}{\ButtonRec{} / \ButtonPlay}
\opt{SANSA_FUZEPLUS_PAD}{\ButtonBack{} / \ButtonPlay}
\opt{HAVEREMOTEKEYMAP}{& }
& Previous / Next month\\
& Previous / Next month\\}
%
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu{} + \ButtonSelect}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
\opt{GIGABEAT_S_PAD}{\ButtonBack}
\opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD,GIGABEAT_PAD,MROBE100_PAD}{\ButtonPower}
\opt{SANSA_FUZE_PAD}{Long \ButtonHome}

View file

@ -74,7 +74,7 @@ the game.
\opt{HAVEREMOTEKEYMAP}{& }
& Force play\\
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonMenu}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}
\opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD,GIGABEAT_PAD,GIGABEAT_S_PAD%
,MROBE100_PAD,SANSA_FUZEPLUS_PAD}{\ButtonPower}
\opt{SANSA_FUZE_PAD}{Long \ButtonHome}

View file

@ -17,7 +17,7 @@ The more blocks you remove per turn, the more points you get.
,SANSA_FUZE_PAD,PBELL_VIBE500_PAD,SANSA_FUZEPLUS_PAD,SAMSUNG_YH92X_PAD%
,SAMSUNG_YH820_PAD}
{\ButtonUp/\ButtonDown}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu/\ButtonPlay}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonScrollFwd{} / \ButtonScrollBack}
\opt{IRIVER_H10_PAD}{\ButtonScrollUp/\ButtonScrollDown}
\opt{HAVEREMOTEKEYMAP}{& }
& Move the cursor around the blocks \\
@ -32,6 +32,7 @@ The more blocks you remove per turn, the more points you get.
}
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}
{\ButtonOff}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
\opt{IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD,GIGABEAT_PAD,MROBE100_PAD%
,IAUDIO_X5_PAD,COWON_D2_PAD,SANSA_FUZEPLUS_PAD}{\ButtonPower}
\opt{SANSA_FUZE_PAD}{\ButtonHome}

View file

@ -10,11 +10,13 @@ This is a fully featured analogue and digital clock plugin.
\opt{HAVEREMOTEKEYMAP}{& \PluginRCLeft{} / \PluginRCRight}
& Cycle through modes \\
\PluginUp{} / \PluginDown
\nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginUp{} / \PluginDown}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginDown}
\opt{HAVEREMOTEKEYMAP}{& \PluginRCUp{} / \PluginRCDown}
& Cycle through skins \\
\PluginCancel
\nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
\opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel}
& Main Menu \\

View file

@ -10,7 +10,8 @@ a correct peg in the correct position, and a white peg signifies a correct
peg in the wrong position.
\begin{btnmap}
\PluginCancel
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
\nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel}
\opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel}
& Show menu \\

View file

@ -4,7 +4,7 @@ This is a rotating cube screen saver in 3D.
\begin{btnmap}
\opt{IAUDIO_X5_PAD,SANSA_E200_PAD,SANSA_FUZE_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD%
,IRIVER_H100_PAD,IRIVER_H300_PAD,GIGABEAT_S_PAD}{\ButtonSelect}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonPlay}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect}
\opt{IRIVER_H10_PAD}{\ButtonFF}
\opt{SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{Long \ButtonFF}
\opt{GIGABEAT_PAD}{\ButtonA}
@ -30,7 +30,7 @@ This is a rotating cube screen saver in 3D.
\opt{GIGABEAT_PAD,GIGABEAT_S_PAD,MROBE100_PAD,PBELL_VIBE500_PAD}
{\ButtonMenu}
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonMode}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonMenu}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonMenu}
\opt{IAUDIO_X5_PAD,SANSA_FUZEPLUS_PAD}{\ButtonSelect}
\opt{IRIVER_H10_PAD}{\ButtonRew}
\opt{SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{\ButtonFF}

View file

@ -9,11 +9,13 @@ Demystify is a screen saver like demo.\\
\opt{HAVEREMOTEKEYMAP}{& \PluginRCLeft{} / \PluginRCRight}
& Increase / decrease speed\\
\PluginUp{} / \PluginDown
\nopt{scrollwheel}{\PluginUp{} / \PluginDown}
\opt{scrollwheel}{\PluginLeft{} / \PluginRight}
\opt{HAVEREMOTEKEYMAP}{& \PluginRCUp{} / \PluginRCDown}
& Add / remove polygon\\
\PluginCancel
\nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginUp}
\opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel}
& Quit\\
\end{btnmap}

View file

@ -8,7 +8,8 @@ numbers as well as the total of the rolled dice.
\opt{HAVEREMOTEKEYMAP}{& \PluginRCSelect}
& Roll dice again\\
\PluginCancel
\nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
\opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel}
& Quit\\
\end{btnmap}

View file

@ -16,7 +16,8 @@ Fire is a demo displaying a fire effect.
\opt{HAVEREMOTEKEYMAP}{& \PluginRCRight}
& Toggle moving flames\\
\PluginCancel
\nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
\opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel}
& Quit\\
\end{btnmap}

View file

@ -76,7 +76,7 @@ a screen containing tokens of only one colour.
\opt{HAVEREMOTEKEYMAP}{& }
& Solve step by step \\
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonMenu}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}
\opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,GIGABEAT_PAD,MROBE100_PAD%
,SANSA_C200_PAD,SANSA_CLIP_PAD,COWON_D2_PAD,SANSA_FUZEPLUS_PAD}{\ButtonPower}
\opt{SANSA_FUZE_PAD}{Long \ButtonHome}

View file

@ -92,7 +92,7 @@ This demonstration draws fractal images from the Mandelbrot set%
& Reset and return to the default image\\
%
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonMenu}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}
\opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD%
,GIGABEAT_PAD,MROBE100_PAD,COWON_D2_PAD,SANSA_FUZEPLUS_PAD,XDUOO_X3_PAD}{\ButtonPower}
\opt{SANSA_FUZE_PAD}{Long \ButtonHome}

View file

@ -113,7 +113,7 @@ view a bigger file you may need to stop playback.}
& Toggle slide show mode\\
}
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonMenu}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}
\opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD}{\ButtonPower}
\opt{SANSA_FUZE_PAD}{Long \ButtonHome}
\opt{GIGABEAT_PAD,GIGABEAT_S_PAD,MROBE100_PAD,PBELL_VIBE500_PAD}{\ButtonMenu}
@ -128,7 +128,7 @@ view a bigger file you may need to stop playback.}
& Show menu / Abort \\
\opt{IPOD_4G_PAD,IPOD_3G_PAD,GIGABEAT_PAD,GIGABEAT_S_PAD,MROBE100_PAD,PBELL_VIBE500_PAD%
,SAMSUNG_YH820_PAD}{
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonPlay}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect}
\opt{GIGABEAT_PAD,MROBE100_PAD}{\ButtonPower}
\opt{GIGABEAT_S_PAD}{\ButtonBack}
\opt{PBELL_VIBE500_PAD}{\ButtonCancel}

View file

@ -9,7 +9,8 @@ have 20\$. Payouts are given when three matching symbols come up.
\opt{HAVEREMOTEKEYMAP}{& \PluginRCSelect}
& Play\\
\PluginCancel
\nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
\opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel}
& Exit the game \\
\end{btnmap}

View file

@ -46,8 +46,8 @@ skillfully swapping pairs of jewels.
,IAUDIO_X5_PAD,COWON_D2_PAD,SANSA_FUZEPLUS_PAD}{\ButtonPower}
\opt{SANSA_FUZE_PAD}{Long \ButtonHome}
\opt{GIGABEAT_S_PAD}{\ButtonBack}
\opt{IPOD_3G_PAD,MPIO_HD300_PAD}{\ButtonMenu}
\opt{IPOD_4G_PAD}{\ButtonSelect+ \ButtonMenu}
\opt{MPIO_HD300_PAD}{\ButtonMenu}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}
\opt{PBELL_VIBE500_PAD}{\ButtonRec}
\opt{SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{\ButtonRew}

View file

@ -28,6 +28,7 @@ You get an empty screen with maximum brightness.
Toggle the button light
\\
}
\PluginCancel{} or \PluginExit
\nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel{} or \PluginExit}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
& Exit to menu\\
\end{btnmap}

View file

@ -9,14 +9,16 @@ Demo showing the Rockbox logo bouncing around the screen.
Increase / decrease speed on the x-axis
\\
\PluginUp{} / \PluginDown
\nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginUp{} / \PluginDown}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonScrollFwd{} / \ButtonScrollBack}
&
\opt{HAVEREMOTEKEYMAP}{
&}
Increase / decrease speed on the y-axis
\\
\PluginCancel{} or \PluginExit
\nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel{} or \PluginExit}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
&
\opt{HAVEREMOTEKEYMAP}{
&}

View file

@ -4,8 +4,8 @@ This is a simple maze generator that creates perfect mazes that have only
one solution.
\begin{btnmap}
\opt{IPOD_3G_PAD}{\ButtonScrollBack/\ButtonScrollFwd/\ButtonLeft/\ButtonRight}
\nopt{IPOD_3G_PAD}{\PluginUp/\PluginDown/\PluginLeft/\PluginRight}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonScrollBack/\ButtonScrollFwd/\ButtonLeft/\ButtonRight}
\nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginUp/\PluginDown/\PluginLeft/\PluginRight}
&
\opt{HAVEREMOTEKEYMAP}{
\PluginRCUp, \PluginRCDown, \PluginRCLeft, \PluginRCRight
@ -13,24 +13,24 @@ one solution.
Navigate maze
\\
\opt{IPOD_3G_PAD}{\ButtonMenu}
\nopt{IPOD_3G_PAD}{\PluginCancel}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
\nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel}
&
\opt{HAVEREMOTEKEYMAP}{\PluginRCCancel
&}
Exit plugin
\\
\opt{IPOD_3G_PAD}{Long \ButtonSelect}
\nopt{IPOD_3G_PAD}{\PluginSelectRepeat}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}
\nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginSelectRepeat}
&
\opt{HAVEREMOTEKEYMAP}{\PluginRCSelectRepeat
&}
New Maze
\\
\opt{IPOD_3G_PAD}{\ButtonSelect}
\nopt{IPOD_3G_PAD}{\PluginSelect}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect}
\nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginSelect}
&
\opt{HAVEREMOTEKEYMAP}{\PluginRCSelect
&}

View file

@ -13,8 +13,8 @@ You start the game with three lives.
Luckily, there are checkpoints at levels four and eight.
\begin{btnmap}
\opt{IPOD_3G_PAD}{\ButtonScrollBack, \ButtonScrollFwd, \ButtonLeft, \ButtonRight}
\nopt{IPOD_3G_PAD}{\PluginUp, \PluginDown, \PluginLeft, \PluginRight}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonScrollBack, \ButtonScrollFwd, \ButtonLeft, \ButtonRight}
\nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginUp, \PluginDown, \PluginLeft, \PluginRight}
&
\opt{HAVEREMOTEKEYMAP}{
\PluginRCUp, \PluginRCDown, \PluginRCLeft, \PluginRCRight
@ -22,8 +22,8 @@ Luckily, there are checkpoints at levels four and eight.
Move Character
\\
\opt{IPOD_3G_PAD}{\ButtonMenu}
\nopt{IPOD_3G_PAD}{\PluginCancel}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
\nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel}
&
\opt{HAVEREMOTEKEYMAP}{\PluginRCCancel
&}

View file

@ -21,7 +21,8 @@ You can adjust the tempo through the interface or by tapping it out
on the appropriate button.
\begin{btnmap}
\PluginExit
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
\nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginExit}
\opt{HAVEREMOTEKEYMAP}{& }
& Exit plugin \\

View file

@ -6,10 +6,11 @@
This simple graphics demo draws a mosaic picture on the screen of the \dap.
\begin{btnmap}
\PluginUp
& Change the gap between the drawing lines.\\
\PluginRight
& Adjust the speed.\\
\PluginSelect
& Restart the drawing process.\\
\PluginCancel{} or \PluginExit
\nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel{} or \PluginExit}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
& Exits Mosaique demo\\
\end{btnmap}

View file

@ -14,7 +14,7 @@ to user input and music may start to skip.
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD,IAUDIO_X5_PAD,SANSA_E200_PAD%
,SANSA_FUZE_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD,GIGABEAT_PAD,MROBE100_PAD%
,SANSA_FUZEPLUS_PAD}{\ButtonSelect}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonPlay}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}
\opt{IRIVER_H10_PAD}{\ButtonRew}
\opt{GIGABEAT_S_PAD}{\ButtonPrev}
\opt{COWON_D2_PAD}{\TouchTopMiddle}
@ -92,7 +92,7 @@ to user input and music may start to skip.
\opt{HAVEREMOTEKEYMAP}{& }
& Increase / decrease speed\\
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonMenu}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
\opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD%
,GIGABEAT_PAD,MROBE100_PAD,COWON_D2_PAD,SANSA_FUZEPLUS_PAD,XDUOO_X3_PAD}
{\ButtonPower}

View file

@ -101,7 +101,7 @@ block and crosses which allow you to choose a replacement block.
}
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect{} + \ButtonPlay}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}
\opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,GIGABEAT_PAD,MROBE100_PAD%
,SANSA_C200_PAD,SANSA_CLIP_PAD,COWON_D2_PAD,SANSA_FUZEPLUS_PAD}{\ButtonPower}
\opt{SANSA_FUZE_PAD}{Long \ButtonHome}

View file

@ -7,7 +7,8 @@ The periodic table plugin allows easy browsing and viewing of details of element
\opt{HAVEREMOTEKEYMAP}{& \PluginRCUp, \PluginRCDown, \PluginRCLeft, \PluginRCRight}
& Move cursor\\
\PluginCancel
\PluginCancel{}
or \PluginSelect
\opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel}
& Quit\\
\end{btnmap}

View file

@ -157,8 +157,10 @@ reduces the time it takes for cover art to be displayed.}}
Enter context menu
\\
\nopt{IAUDIO_M3_PAD,SANSA_FUZEPLUS_PAD,FIIO_M3K_PAD}{\ActionStdMenu}
\nopt{IAUDIO_M3_PAD,SANSA_FUZEPLUS_PAD,FIIO_M3K_PAD%
,IPOD_4G_PAD,IPOD_3G_PAD}{\ActionStdMenu}
\opt{SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{or \ButtonRew}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonMenu}
\opt{SANSA_FUZEPLUS_PAD}{Long \ButtonSelect}
\opt{FIIO_M3K_PAD}{\ButtonPower}
&
@ -173,7 +175,7 @@ reduces the time it takes for cover art to be displayed.}}
\opt{IAUDIO_X5_PAD,GIGABEAT_PAD,GIGABEAT_S_PAD,SANSA_E200_PAD,SANSA_CLIP_PAD%
,MROBE100_PAD,SANSA_FUZEPLUS_PAD}{\ButtonPower}
\opt{SANSA_C200_PAD,IRIVER_H10_PAD}{Long \ButtonPower}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonMenu}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ActionStdMenu}
\opt{SANSA_FUZE_PAD}{Long \ButtonHome}
\opt{PBELL_VIBE500_PAD}{\ButtonRec}
\opt{SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{long \ButtonRew}

View file

@ -4,7 +4,7 @@
Plasma is a demo displaying a 80's style retro plasma effect.
\begin{btnmap}
\PluginUp{} / \PluginDown
\nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginUp{} / \PluginDown}
\opt{scrollwheel}{/ \PluginScrollFwd{} / \PluginScrollBack}
&
\opt{HAVEREMOTEKEYMAP}{\PluginRCUp{} / \PluginRCDown
@ -21,7 +21,8 @@ Plasma is a demo displaying a 80's style retro plasma effect.
\\
}%
\PluginCancel{} / \PluginExit
\nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel{} / \PluginExit}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
&
\opt{HAVEREMOTEKEYMAP}{\PluginRCCancel
\opt{IAUDIO_RC_PAD}{ / \PluginRCExit}

View file

@ -11,7 +11,8 @@ ends when robotfindskitten.
\opt{HAVEREMOTEKEYMAP}{& \PluginRCUp, \PluginRCDown, \PluginRCLeft, \PluginRCRight}
& Move robot\\
\PluginCancel
\nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}
\opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel}
& Quit\\
\end{btnmap}

View file

@ -101,7 +101,7 @@ the blocks fall faster. If the pile of blocks reaches the ceiling, the game is o
& Pause\\
}
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu+\ButtonSelect}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}
\opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD,GIGABEAT_PAD,MROBE100_PAD}{\ButtonPower}
\opt{SANSA_FUZE_PAD}{Long \ButtonHome}
\opt{GIGABEAT_S_PAD}{\ButtonBack}

View file

@ -10,7 +10,8 @@ horizontal moving anymore and no need to rotate the brick!
\opt{HAVEREMOTEKEYMAP}{& }
& Move down faster\\
\PluginCancel{} or \PluginExit
\nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel{} or \PluginExit}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
\opt{HAVEREMOTEKEYMAP}{& }
& Quit\\
\end{btnmap}

View file

@ -30,7 +30,8 @@ ignored.
\opt{HAVEREMOTEKEYMAP}{& \PluginRCLeft}
& Status (only when paused)\\
\PluginCancel
\nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
\opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel}
& Exit\\
\end{btnmap}

View file

@ -59,7 +59,7 @@ launched via Open With), and numbered tiles \\
\opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD,GIGABEAT_PAD%
,MROBE100_PAD,COWON_D2_PAD,SANSA_FUZEPLUS_PAD}{\ButtonPower}
\opt{SANSA_FUZE_PAD}{Long \ButtonHome}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonMenu}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}
\opt{GIGABEAT_S_PAD}{\ButtonBack}
\opt{PBELL_VIBE500_PAD}{\ButtonRec}
\opt{SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{\ButtonRew}

View file

@ -29,6 +29,7 @@ end when the snake touches either the borders of the screen or itself.
& Toggle Play/Pause\\
%
\opt{SANSA_FUZEPLUS_PAD.XDUOO_X3_PAD}{\ButtonPower}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}
\opt{SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{\ButtonRew}
\opt{HAVEREMOTEKEYMAP}{& }
& Go to the plugin's menu\\

View file

@ -31,7 +31,7 @@ into itself.
\opt{HAVEREMOTEKEYMAP}{& }
& Pause and resume the game\\
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonMenu}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}
\opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD,SANSA_M200_PAD,GIGABEAT_PAD%
,MROBE100_PAD,COWON_D2_PAD,SANSA_FUZEPLUS_PAD,XDUOO_X3_PAD}{\ButtonPower}
\opt{SANSA_FUZE_PAD}{Long \ButtonHome}

View file

@ -2,5 +2,8 @@
\screenshot{plugins/images/ss-snow}{Have you ever seen snow falling?}{img:snow}
This demo replicates snow falling on your screen. If you love winter,
you will love this demo. Or maybe not.
Press \PluginCancel{} or \PluginExit{} to quit.
Press
\nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel{} or \PluginExit{}}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
to quit.

View file

@ -33,7 +33,7 @@ information about the level format, see
\opt{HAVEREMOTEKEYMAP}{& }
& Move the ``sokoban'' up, down, left, or right\\
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonMenu}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}
\opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,GIGABEAT_PAD,MROBE100_PAD,SANSA_E200_PAD,SANSA_C200_PAD%
,SANSA_CLIP_PAD,SANSA_FUZEPLUS_PAD}{\ButtonPower}
\opt{SANSA_FUZE_PAD}{Long \ButtonHome}

View file

@ -111,7 +111,7 @@ visit
& Put the card on top of the remains stack on one of the final colour stacks.\\
%
\opt{IRIVER_H300_PAD,IRIVER_H100_PAD}{\ButtonOff}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu{} + \ButtonSelect}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}
\opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD%
,GIGABEAT_PAD,MROBE100_PAD,COWON_D2_PAD,SANSA_FUZEPLUS_PAD}{\ButtonPower}
\opt{SANSA_FUZE_PAD}{Long \ButtonHome}

View file

@ -107,7 +107,7 @@ could not otherwise reach. The block cannot take ``o''s.
\opt{HAVEREMOTEKEYMAP}{& }
& Next level \\
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonMenu}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}
\opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD%
,GIGABEAT_PAD,COWON_D2_PAD,SANSA_FUZEPLUS_PAD,XDUOO_X3_PAD}{\ButtonPower}
\opt{SANSA_FUZE_PAD}{Long \ButtonHome}

View file

@ -8,7 +8,8 @@ Starfield simulation (like the classic screensaver).
\opt{HAVEREMOTEKEYMAP}{& }
& Increase / decrease number of stars\\
\PluginUp{} / \PluginDown
\nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginUp{} / \PluginDown}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonScrollFwd{} / \ButtonScrollBack}
\opt{HAVEREMOTEKEYMAP}{& }
& Increase / decrease speed\\
\opt{lcd_color}{%
@ -16,7 +17,8 @@ Starfield simulation (like the classic screensaver).
\opt{HAVEREMOTEKEYMAP}{& }
& Change colours\\%
}%
\PluginCancel{} or \PluginExit
\nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel{} or \PluginExit}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
\opt{HAVEREMOTEKEYMAP}{& }
& Quit\\
\end{btnmap}

View file

@ -5,6 +5,9 @@ The stats plugin counts the directories and files
(the total number as well as the number
of audio, playlist, image and video files)
on your \dap{}.
Press \PluginCancel{} or \PluginExit{} to abort counting and
Press
\nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel{} or \PluginExit{}}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
to abort counting and
exit the plugin. Press it again to quit after counting has
finished.

View file

@ -152,7 +152,7 @@ There are two ways to stop a running game.
\begin{itemize}
\item If you want to quit Wormlet entirely simply hit
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}%
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu+\ButtonSelect}%
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}%
\opt{IAUDIO_X5_PAD,SANSA_E200_PAD,GIGABEAT_PAD,XDUOO_X3_PAD}{\ButtonPower}%
\opt{SANSA_FUZE_PAD}{Long \ButtonHome}%
\opt{PBELL_VIBE500_PAD}{\ButtonRec}%
@ -188,7 +188,7 @@ This freezes the game. If you hit
button again a new game starts with the same configuration. To return to the
games menu you can hit
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}%
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu+\ButtonSelect}%
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}%
\opt{IAUDIO_X5_PAD,SANSA_E200_PAD,GIGABEAT_PAD,XDUOO_X3_PAD}{\ButtonPower}%
\opt{SANSA_FUZE_PAD}{Long \ButtonHome}
\opt{PBELL_VIBE500_PAD}{\ButtonRec}%

View file

@ -36,7 +36,7 @@ To finish a level you have to section off more than 75\%.
\opt{HAVEREMOTEKEYMAP}{& }
& Pause\\
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect{} + \ButtonMenu}
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}
\opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD%
,GIGABEAT_PAD,MROBE100_PAD,COWON_D2_PAD,SANSA_FUZEPLUS_PAD,XDUOO_X3_PAD}{\ButtonPower}
\opt{SANSA_FUZE_PAD}{Long \ButtonHome}