iPod: Initial attempt at button mappings for plugins. All plugins now compile, but more work is needed with the more complex ones to make them iPod friendly

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8233 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Dave Chapman 2005-12-14 01:31:37 +00:00
parent c75425511e
commit 54d44c893f
28 changed files with 361 additions and 65 deletions

View File

@ -1,6 +1,3 @@
/* Temporarily disable the plugins for the iPod until we fix the
button assignments and other problems */
#if (CONFIG_KEYPAD!=IPOD_4G_PAD) && (CONFIG_KEYPAD!=IPOD_NANO_PAD)
/* plugins common to all models */
battery_test.c
chessclock.c
@ -89,4 +86,3 @@ midi2wav.c
splitedit.c
metronome.c
#endif
#endif /* PP5020 */

View File

@ -39,6 +39,8 @@
#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
(CONFIG_KEYPAD == IRIVER_H300_PAD)
#define BATTERY_TEST_QUIT BUTTON_OFF
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_NANO_PAD)
#define BATTERY_TEST_QUIT BUTTON_MENU
#endif
static struct plugin_api* rb;

View File

@ -32,17 +32,30 @@
/* variable button definitions */
#if CONFIG_KEYPAD == RECORDER_PAD
#define BOUNCE_UP BUTTON_UP
#define BOUNCE_DOWN BUTTON_DOWN
#define BOUNCE_QUIT (BUTTON_OFF | BUTTON_REL)
#define BOUNCE_MODE (BUTTON_ON | BUTTON_REL)
#elif CONFIG_KEYPAD == ONDIO_PAD
#define BOUNCE_UP BUTTON_UP
#define BOUNCE_DOWN BUTTON_DOWN
#define BOUNCE_QUIT (BUTTON_OFF | BUTTON_REL)
#define BOUNCE_MODE (BUTTON_MENU | BUTTON_REL)
#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
(CONFIG_KEYPAD == IRIVER_H300_PAD)
#define BOUNCE_UP BUTTON_UP
#define BOUNCE_DOWN BUTTON_DOWN
#define BOUNCE_QUIT (BUTTON_OFF | BUTTON_REL)
#define BOUNCE_MODE (BUTTON_SELECT | BUTTON_REL)
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_NANO_PAD)
#define BOUNCE_UP BUTTON_SCROLL_BACK
#define BOUNCE_DOWN BUTTON_SCROLL_FWD
#define BOUNCE_QUIT (BUTTON_MENU | BUTTON_REL)
#define BOUNCE_MODE (BUTTON_SELECT | BUTTON_REL)
#endif
static struct plugin_api* rb;
@ -396,11 +409,11 @@ static int loopit(void)
case BUTTON_RIGHT:
values[show].num++;
break;
case BUTTON_UP:
case BOUNCE_UP:
if(++show == NUM_LAST)
show=0;
break;
case BUTTON_DOWN:
case BOUNCE_DOWN:
if(--show < 0)
show=NUM_LAST-1;
break;

View File

@ -106,6 +106,8 @@ F3: equal to "="
/* variable button definitions */
#if CONFIG_KEYPAD == RECORDER_PAD
#define CALCULATOR_UP BUTTON_UP
#define CALCULATOR_DOWN BUTTON_DOWN
#define CALCULATOR_QUIT BUTTON_OFF
#define CALCULATOR_INPUT BUTTON_PLAY
#define CALCULATOR_CALC BUTTON_F3
@ -113,6 +115,8 @@ F3: equal to "="
#define CALCULATOR_CLEAR BUTTON_F1
#elif CONFIG_KEYPAD == ONDIO_PAD
#define CALCULATOR_UP BUTTON_UP
#define CALCULATOR_DOWN BUTTON_DOWN
#define CALCULATOR_QUIT BUTTON_OFF
#define CALCULATOR_INPUT_CALC_PRE BUTTON_MENU
#define CALCULATOR_INPUT (BUTTON_MENU | BUTTON_REL)
@ -120,12 +124,23 @@ F3: equal to "="
#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
(CONFIG_KEYPAD == IRIVER_H300_PAD)
#define CALCULATOR_UP BUTTON_UP
#define CALCULATOR_DOWN BUTTON_DOWN
#define CALCULATOR_QUIT BUTTON_OFF
#define CALCULATOR_INPUT BUTTON_SELECT
#define CALCULATOR_CALC BUTTON_ON
#define CALCULATOR_OPERATORS BUTTON_MODE
#define CALCULATOR_CLEAR BUTTON_REC
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_NANO_PAD)
#define CALCULATOR_UP BUTTON_SCROLL_BACK
#define CALCULATOR_DOWN BUTTON_SCROLL_FWD
#define CALCULATOR_QUIT BUTTON_MENU
#define CALCULATOR_INPUT_CALC_PRE BUTTON_SELECT
#define CALCULATOR_INPUT (BUTTON_SELECT | BUTTON_REL)
#define CALCULATOR_CALC (BUTTON_PLAY | BUTTON_REPEAT)
#endif
static struct plugin_api* rb;
@ -675,16 +690,16 @@ void moveButton(void){
n++;
break;
case BUTTON_UP:
case BUTTON_UP | BUTTON_REPEAT:
case CALCULATOR_UP:
case CALCULATOR_UP | BUTTON_REPEAT:
if (m == 0)
m = 4;
else
m--;
break;
case BUTTON_DOWN:
case BUTTON_DOWN | BUTTON_REPEAT:
case CALCULATOR_DOWN:
case CALCULATOR_DOWN | BUTTON_REPEAT:
if (m == 4)
m = 0;
else
@ -1359,10 +1374,10 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
case BUTTON_LEFT | BUTTON_REPEAT:
case BUTTON_RIGHT:
case BUTTON_RIGHT | BUTTON_REPEAT:
case BUTTON_UP:
case BUTTON_UP | BUTTON_REPEAT:
case BUTTON_DOWN:
case BUTTON_DOWN | BUTTON_REPEAT:
case CALCULATOR_UP:
case CALCULATOR_UP | BUTTON_REPEAT:
case CALCULATOR_DOWN:
case CALCULATOR_DOWN | BUTTON_REPEAT:
moveButton();
break;
case CALCULATOR_QUIT:

View File

@ -64,6 +64,16 @@
#define CHC_SETTINGS_CANCEL BUTTON_OFF
#define CHC_SETTINGS_CANCEL2 BUTTON_REC
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_NANO_PAD)
#define CHC_QUIT BUTTON_PLAY
#define CHC_STARTSTOP BUTTON_SELECT
#define CHC_RESET BUTTON_LEFT
#define CHC_MENU BUTTON_MENU
#define CHC_SETTINGS_INC BUTTON_SCROLL_FWD
#define CHC_SETTINGS_DEC BUTTON_SCROLL_BACK
#define CHC_SETTINGS_OK BUTTON_SELECT
#define CHC_SETTINGS_CANCEL BUTTON_MENU
#endif

View File

@ -946,6 +946,7 @@ STATIC void chip8 (void)
/* variable button definitions */
#if CONFIG_KEYPAD == RECORDER_PAD /* only 9 out of 16 chip8 buttons */
#define CHIP8_OFF BUTTON_OFF
#define CHIP8_KEY1 BUTTON_F1
#define CHIP8_KEY2 BUTTON_UP
#define CHIP8_KEY3 BUTTON_F3
@ -957,6 +958,7 @@ STATIC void chip8 (void)
#define CHIP8_KEY9 BUTTON_ON
#elif CONFIG_KEYPAD == ONDIO_PAD /* even more limited */
#define CHIP8_OFF BUTTON_OFF
#define CHIP8_KEY2 BUTTON_UP
#define CHIP8_KEY4 BUTTON_LEFT
#define CHIP8_KEY5 BUTTON_MENU
@ -965,12 +967,21 @@ STATIC void chip8 (void)
#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
(CONFIG_KEYPAD == IRIVER_H300_PAD)
#define CHIP8_OFF BUTTON_OFF
#define CHIP8_KEY2 BUTTON_UP
#define CHIP8_KEY4 BUTTON_LEFT
#define CHIP8_KEY5 BUTTON_SELECT
#define CHIP8_KEY6 BUTTON_RIGHT
#define CHIP8_KEY8 BUTTON_DOWN
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_NANO_PAD)
#define CHIP8_OFF BUTTON_MENU
#define CHIP8_KEY2 BUTTON_SCROLL_BACK
#define CHIP8_KEY4 BUTTON_LEFT
#define CHIP8_KEY5 BUTTON_PLAY
#define CHIP8_KEY6 BUTTON_RIGHT
#define CHIP8_KEY8 BUTTON_SCROLL_FWD
#endif
static byte chip8_virtual_keys[16];
@ -1076,7 +1087,7 @@ static void chip8_keyboard(void)
int button = rb->button_get(false);
switch (button)
{
case BUTTON_OFF: /* Abort Emulator */
case CHIP8_OFF: /* Abort Emulator */
chip8_running = 0;
break;

View File

@ -79,6 +79,19 @@
#define CUBE_PAUSE (BUTTON_ON | BUTTON_REL)
#define CUBE_HIGHSPEED BUTTON_SELECT
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_NANO_PAD)
#define CUBE_QUIT BUTTON_MENU
#define CUBE_X_INC BUTTON_LEFT
#define CUBE_X_DEC BUTTON_RIGHT
#define CUBE_Y_INC BUTTON_SCROLL_FWD
#define CUBE_Y_DEC BUTTON_SCROLL_BACK
#define CUBE_Z_INC (BUTTON_SELECT | BUTTON_LEFT)
#define CUBE_Z_DEC (BUTTON_SELECT | BUTTON_RIGHT)
#define CUBE_MODE (BUTTON_SELECT | BUTTON_MENU)
#define CUBE_PAUSE_PRE BUTTON_PLAY
#define CUBE_PAUSE (BUTTON_PLAY | BUTTON_REL)
#define CUBE_HIGHSPEED (BUTTON_SELECT | BUTTON_PLAY)
#endif
#ifdef HAVE_LCD_BITMAP

View File

@ -24,12 +24,19 @@
#ifdef HAVE_LCD_BITMAP
/* Key assignement */
#if (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_NANO_PAD)
#define DEMYSTIFY_QUIT BUTTON_MENU
#define DEMYSTIFY_ADD_POLYGON BUTTON_RIGHT
#define DEMYSTIFY_REMOVE_POLYGON BUTTON_LEFT
#define DEMYSTIFY_INCREASE_SPEED BUTTON_SCROLL_FWD
#define DEMYSTIFY_DECREASE_SPEED BUTTON_SCROLL_BACK
#else
#define DEMYSTIFY_QUIT BUTTON_OFF
#define DEMYSTIFY_ADD_POLYGON BUTTON_UP
#define DEMYSTIFY_REMOVE_POLYGON BUTTON_DOWN
#define DEMYSTIFY_INCREASE_SPEED BUTTON_RIGHT
#define DEMYSTIFY_DECREASE_SPEED BUTTON_LEFT
#endif
#define DEFAULT_WAIT_TIME 3
#define DEFAULT_NB_POLYGONS 7

View File

@ -102,6 +102,8 @@ long reverse (long N) {
/* Button definitions */
#if CONFIG_KEYPAD == PLAYER_PAD
#define LP_QUIT BUTTON_STOP
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_NANO_PAD)
#define LP_QUIT BUTTON_MENU
#else
#define LP_QUIT BUTTON_OFF
#endif

View File

@ -21,6 +21,8 @@
/* variable button definitions */
#if CONFIG_KEYPAD == RECORDER_PAD
#define FLIPIT_UP BUTTON_UP
#define FLIPIT_DOWN BUTTON_DOWN
#define FLIPIT_QUIT BUTTON_OFF
#define FLIPIT_SHUFFLE BUTTON_F1
#define FLIPIT_SOLVE BUTTON_F2
@ -28,6 +30,8 @@
#define FLIPIT_TOGGLE BUTTON_PLAY
#elif CONFIG_KEYPAD == ONDIO_PAD
#define FLIPIT_UP BUTTON_UP
#define FLIPIT_DOWN BUTTON_DOWN
#define FLIPIT_QUIT BUTTON_OFF
#define FLIPIT_SHUFFLE (BUTTON_MENU | BUTTON_LEFT)
#define FLIPIT_SOLVE (BUTTON_MENU | BUTTON_UP)
@ -37,6 +41,8 @@
#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
(CONFIG_KEYPAD == IRIVER_H300_PAD)
#define FLIPIT_UP BUTTON_UP
#define FLIPIT_DOWN BUTTON_DOWN
#define FLIPIT_QUIT BUTTON_OFF
#define FLIPIT_SHUFFLE BUTTON_MODE
#define FLIPIT_SOLVE BUTTON_ON
@ -44,6 +50,17 @@
#define FLIPIT_TOGGLE_PRE BUTTON_SELECT
#define FLIPIT_TOGGLE (BUTTON_SELECT | BUTTON_REL)
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_NANO_PAD)
#define FLIPIT_UP BUTTON_SCROLL_FWD
#define FLIPIT_DOWN BUTTON_SCROLL_BACK
#define FLIPIT_QUIT BUTTON_MENU
#define FLIPIT_SHUFFLE (BUTTON_SELECT | BUTTON_LEFT)
#define FLIPIT_SOLVE (BUTTON_SELECT | BUTTON_PLAY)
#define FLIPIT_STEP_BY_STEP (BUTTON_SELECT | BUTTON_MENU)
#define FLIPIT_TOGGLE_PRE BUTTON_SELECT
#define FLIPIT_TOGGLE (BUTTON_SELECT | BUTTON_REL)
#endif
static struct plugin_api* rb;
@ -252,12 +269,12 @@ static bool flipit_loop(void) {
move_cursor(1, 0);
break;
case BUTTON_UP:
case FLIPIT_UP:
if ((cursor_pos/5)>0)
move_cursor(0, -1);
break;
case BUTTON_DOWN:
case FLIPIT_DOWN:
if ((cursor_pos/5)<3)
move_cursor(0, 1);
break;

View File

@ -50,12 +50,16 @@ static unsigned jewel_color[8]={COLOR_BLACK, COLOR_RED, COLOR_ORANGE,
/* button definitions */
#if CONFIG_KEYPAD == RECORDER_PAD
#define BEJEWELED_UP BUTTON_UP
#define BEJEWELED_DOWN BUTTON_DOWN
#define BEJEWELED_QUIT BUTTON_OFF
#define BEJEWELED_START BUTTON_ON
#define BEJEWELED_SELECT BUTTON_PLAY
#define BEJEWELED_RESUME BUTTON_F1
#elif CONFIG_KEYPAD == ONDIO_PAD
#define BEJEWELED_UP BUTTON_UP
#define BEJEWELED_DOWN BUTTON_DOWN
#define BEJEWELED_QUIT BUTTON_OFF
#define BEJEWELED_START BUTTON_RIGHT
#define BEJEWELED_SELECT (BUTTON_MENU|BUTTON_REL)
@ -63,11 +67,21 @@ static unsigned jewel_color[8]={COLOR_BLACK, COLOR_RED, COLOR_ORANGE,
#define BEJEWELED_RESUME (BUTTON_MENU|BUTTON_OFF)
#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD)
#define BEJEWELED_UP BUTTON_UP
#define BEJEWELED_DOWN BUTTON_DOWN
#define BEJEWELED_QUIT BUTTON_OFF
#define BEJEWELED_START BUTTON_ON
#define BEJEWELED_SELECT BUTTON_SELECT
#define BEJEWELED_RESUME BUTTON_MODE
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_NANO_PAD)
#define BEJEWELED_UP BUTTON_SCROLL_BACK
#define BEJEWELED_DOWN BUTTON_SCROLL_FWD
#define BEJEWELED_QUIT BUTTON_MENU
#define BEJEWELED_START BUTTON_PLAY
#define BEJEWELED_SELECT BUTTON_SELECT
#define BEJEWELED_RESUME (BUTTON_SELECT | BUTTON_PLAY)
#else
#error BEJEWELED: Unsupported keypad
#endif
@ -1081,8 +1095,8 @@ static int bejeweled(struct game_context* bj) {
}
break;
case BUTTON_DOWN: /* move cursor down */
case (BUTTON_DOWN|BUTTON_REPEAT):
case BEJEWELED_DOWN: /* move cursor down */
case (BEJEWELED_DOWN|BUTTON_REPEAT):
if(selected) {
bj->score += bejeweled_swapjewels(bj, x, y, SWAP_DOWN);
selected = false;
@ -1092,8 +1106,8 @@ static int bejeweled(struct game_context* bj) {
}
break;
case BUTTON_UP: /* move cursor up */
case (BUTTON_UP|BUTTON_REPEAT):
case BEJEWELED_UP: /* move cursor up */
case (BEJEWELED_UP|BUTTON_REPEAT):
if(selected) {
bj->score += bejeweled_swapjewels(bj, x, y, SWAP_UP);
selected = false;

View File

@ -181,6 +181,12 @@ const unsigned char rockbox16x7[] = {
#define LP_INC_X BUTTON_RIGHT
#define LP_DEC_Y (BUTTON_ON | BUTTON_LEFT)
#define LP_INC_Y (BUTTON_ON | BUTTON_RIGHT)
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_NANO_PAD)
#define LP_QUIT BUTTON_MENU
#define LP_DEC_X BUTTON_LEFT
#define LP_INC_X BUTTON_RIGHT
#define LP_DEC_Y BUTTON_SCROLL_BACK
#define LP_INC_Y BUTTON_SCROLL_FWD
#else
#define LP_QUIT BUTTON_OFF
#define LP_DEC_X BUTTON_LEFT

View File

@ -41,6 +41,8 @@ use F3 to see how many mines are left (supposing all your flags are correct)
/* variable button definitions */
#if CONFIG_KEYPAD == RECORDER_PAD
#define MINESWP_UP BUTTON_UP
#define MINESWP_DOWN BUTTON_DOWN
#define MINESWP_QUIT BUTTON_OFF
#define MINESWP_START BUTTON_ON
#define MINESWP_TOGGLE BUTTON_PLAY
@ -50,6 +52,8 @@ use F3 to see how many mines are left (supposing all your flags are correct)
#define MINESWP_INFO BUTTON_F3
#elif CONFIG_KEYPAD == ONDIO_PAD
#define MINESWP_UP BUTTON_UP
#define MINESWP_DOWN BUTTON_DOWN
#define MINESWP_QUIT BUTTON_OFF
#define MINESWP_START BUTTON_MENU
#define MINESWP_TOGGLE_PRE BUTTON_MENU
@ -59,12 +63,23 @@ use F3 to see how many mines are left (supposing all your flags are correct)
#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
(CONFIG_KEYPAD == IRIVER_H300_PAD)
#define MINESWP_UP BUTTON_UP
#define MINESWP_DOWN BUTTON_DOWN
#define MINESWP_QUIT BUTTON_OFF
#define MINESWP_START BUTTON_SELECT
#define MINESWP_TOGGLE BUTTON_SELECT
#define MINESWP_DISCOVER BUTTON_ON
#define MINESWP_INFO BUTTON_MODE
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_NANO_PAD)
#define MINESWP_UP BUTTON_SCROLL_BACK
#define MINESWP_DOWN BUTTON_SCROLL_FWD
#define MINESWP_QUIT BUTTON_MENU
#define MINESWP_START BUTTON_SELECT
#define MINESWP_TOGGLE BUTTON_PLAY
#define MINESWP_DISCOVER (BUTTON_SELECT | BUTTON_PLAY)
#define MINESWP_INFO (BUTTON_SELECT | BUTTON_MENU)
#endif
/* here is a global api struct pointer. while not strictly necessary,
@ -323,11 +338,11 @@ int minesweeper(void)
button = rb->button_get(true);
switch(button){
case BUTTON_DOWN:
case MINESWP_DOWN:
p = (p + 98)%100;
break;
case BUTTON_UP:
case MINESWP_UP:
p = (p + 2)%100;
break;
@ -431,14 +446,14 @@ int minesweeper(void)
break;
/* move cursor down */
case BUTTON_DOWN:
case (BUTTON_DOWN | BUTTON_REPEAT):
case MINESWP_DOWN:
case (MINESWP_DOWN | BUTTON_REPEAT):
y = (y + 1)%height;
break;
/* move cursor up */
case BUTTON_UP:
case (BUTTON_UP | BUTTON_REPEAT):
case MINESWP_UP:
case (MINESWP_UP | BUTTON_REPEAT):
y = (y + height - 1)%height;
break;

View File

@ -50,6 +50,11 @@
#define MOSAIQUE_QUIT BUTTON_OFF
#define MOSAIQUE_SPEED BUTTON_MODE
#define MOSAIQUE_RESTART BUTTON_ON
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_NANO_PAD)
#define MOSAIQUE_QUIT BUTTON_MENU
#define MOSAIQUE_SPEED BUTTON_SELECT
#define MOSAIQUE_RESTART BUTTON_PLAY
#endif
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)

View File

@ -56,6 +56,13 @@
#define PONG_RIGHT_UP BUTTON_ON
#define PONG_RIGHT_DOWN BUTTON_MODE
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_NANO_PAD)
#define PONG_QUIT BUTTON_SELECT
#define PONG_LEFT_UP BUTTON_MENU
#define PONG_LEFT_DOWN BUTTON_LEFT
#define PONG_RIGHT_UP BUTTON_RIGHT
#define PONG_RIGHT_DOWN BUTTON_PLAY
#endif
static struct plugin_api* rb;

View File

@ -22,6 +22,20 @@
#ifdef HAVE_LCD_BITMAP
#if (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_NANO_PAD)
#define ROCKBLOX_OFF BUTTON_MENU
#define ROCKBLOX_UP BUTTON_SCROLL_BACK
#define ROCKBLOX_DOWN BUTTON_SCROLL_FWD
#define ROCKBLOX_LEFT BUTTON_LEFT
#define ROCKBLOX_RIGHT BUTTON_RIGHT
#else
#define ROCKBLOX_OFF BUTTON_OFF
#define ROCKBLOX_UP BUTTON_UP
#define ROCKBLOX_DOWN BUTTON_DOWN
#define ROCKBLOX_LEFT BUTTON_LEFT
#define ROCKBLOX_RIGHT BUTTON_RIGHT
#endif
static const int start_x = 5;
static const int start_y = 5;
static const int max_x = 4 * 17;
@ -338,26 +352,26 @@ static int game_loop(void)
button = rb->button_get_w_tmo(HZ/10);
switch(button)
{
case BUTTON_OFF:
case ROCKBLOX_OFF:
return PLUGIN_OK;
case BUTTON_UP:
case BUTTON_UP | BUTTON_REPEAT:
case ROCKBLOX_UP:
case ROCKBLOX_UP | BUTTON_REPEAT:
move_block(0,-3,0);
break;
case BUTTON_DOWN:
case BUTTON_DOWN | BUTTON_REPEAT:
case ROCKBLOX_DOWN:
case ROCKBLOX_DOWN | BUTTON_REPEAT:
move_block(0,3,0);
break;
case BUTTON_RIGHT:
case BUTTON_RIGHT | BUTTON_REPEAT:
case ROCKBLOX_RIGHT:
case ROCKBLOX_RIGHT | BUTTON_REPEAT:
move_block(0,0,1);
break;
case BUTTON_LEFT:
case BUTTON_LEFT | BUTTON_REPEAT:
case ROCKBLOX_LEFT:
case ROCKBLOX_LEFT | BUTTON_REPEAT:
move_down();
break;

View File

@ -22,11 +22,15 @@
/* variable button definitions */
#if CONFIG_KEYPAD == RECORDER_PAD
#define PUZZLE_QUIT BUTTON_OFF
#define PUZZLE_UP BUTTON_UP
#define PUZZLE_DOWN BUTTON_DOWN
#define PUZZLE_SHUFFLE BUTTON_F1
#define PUZZLE_PICTURE BUTTON_F2
#elif CONFIG_KEYPAD == ONDIO_PAD
#define PUZZLE_QUIT BUTTON_OFF
#define PUZZLE_UP BUTTON_UP
#define PUZZLE_DOWN BUTTON_DOWN
#define PUZZLE_SHUFFLE_PICTURE_PRE BUTTON_MENU
#define PUZZLE_SHUFFLE (BUTTON_MENU | BUTTON_REPEAT)
#define PUZZLE_PICTURE (BUTTON_MENU | BUTTON_REL)
@ -34,8 +38,18 @@
#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
(CONFIG_KEYPAD == IRIVER_H300_PAD)
#define PUZZLE_QUIT BUTTON_OFF
#define PUZZLE_UP BUTTON_UP
#define PUZZLE_DOWN BUTTON_DOWN
#define PUZZLE_SHUFFLE BUTTON_SELECT
#define PUZZLE_PICTURE BUTTON_ON
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_NANO_PAD)
#define PUZZLE_QUIT BUTTON_MENU
#define PUZZLE_UP BUTTON_SCROLL_BACK
#define PUZZLE_DOWN BUTTON_SCROLL_FWD
#define PUZZLE_SHUFFLE BUTTON_SELECT
#define PUZZLE_PICTURE BUTTON_PLAY
#endif
static struct plugin_api* rb;
@ -295,12 +309,12 @@ static int puzzle_loop(void)
move_spot(1, 0);
break;
case BUTTON_UP:
case PUZZLE_UP:
if ((hole/5)<3 && !puzzle_finished())
move_spot(0, -1);
break;
case BUTTON_DOWN:
case PUZZLE_DOWN:
if ((hole/5)>0 && !puzzle_finished())
move_spot(0, 1);
break;

View File

@ -36,17 +36,30 @@ dir is the current direction of the snake - 0=up, 1=right, 2=down, 3=left;
/* variable button definitions */
#if CONFIG_KEYPAD == RECORDER_PAD
#define SNAKE_QUIT BUTTON_OFF
#define SNAKE_UP BUTTON_UP
#define SNAKE_DOWN BUTTON_DOWN
#define SNAKE_PLAYPAUSE BUTTON_PLAY
#elif CONFIG_KEYPAD == ONDIO_PAD
#define SNAKE_QUIT BUTTON_OFF
#define SNAKE_UP BUTTON_UP
#define SNAKE_DOWN BUTTON_DOWN
#define SNAKE_PLAYPAUSE BUTTON_MENU
#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
(CONFIG_KEYPAD == IRIVER_H300_PAD)
#define SNAKE_QUIT BUTTON_OFF
#define SNAKE_UP BUTTON_UP
#define SNAKE_DOWN BUTTON_DOWN
#define SNAKE_PLAYPAUSE BUTTON_ON
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_NANO_PAD)
#define SNAKE_QUIT (BUTTON_SELECT|BUTTON_MENU)
#define SNAKE_UP BUTTON_MENU
#define SNAKE_DOWN BUTTON_PLAY
#define SNAKE_PLAYPAUSE BUTTON_SELECT
#else
#error "lacks keymapping"
#endif
@ -236,13 +249,13 @@ void game (void) {
button=rb->button_get(false);
switch (button) {
case BUTTON_UP:
case SNAKE_UP:
if (dir!=2) dir=0;
break;
case BUTTON_RIGHT:
if (dir!=3) dir=1;
break;
case BUTTON_DOWN:
case SNAKE_DOWN:
if (dir!=0) dir=2;
break;
case BUTTON_LEFT:
@ -300,12 +313,12 @@ void game_init(void) {
button=rb->button_get(true);
switch (button) {
case BUTTON_RIGHT:
case BUTTON_UP:
case SNAKE_UP:
if (level<9)
level++;
break;
case BUTTON_LEFT:
case BUTTON_DOWN:
case SNAKE_DOWN:
if (level>1)
level--;
break;

View File

@ -57,6 +57,8 @@ Head and Tail are stored
/* variable button definitions */
#if CONFIG_KEYPAD == RECORDER_PAD
#define SNAKE2_UP BUTTON_UP
#define SNAKE2_DOWN BUTTON_DOWN
#define SNAKE2_QUIT BUTTON_OFF
#define SNAKE2_LEVEL_UP BUTTON_UP
#define SNAKE2_LEVEL_UP2 BUTTON_RIGHT
@ -67,6 +69,8 @@ Head and Tail are stored
#define SNAKE2_PLAYPAUSE BUTTON_PLAY
#elif CONFIG_KEYPAD == ONDIO_PAD
#define SNAKE2_UP BUTTON_UP
#define SNAKE2_DOWN BUTTON_DOWN
#define SNAKE2_QUIT BUTTON_OFF
#define SNAKE2_LEVEL_UP BUTTON_UP
#define SNAKE2_LEVEL_DOWN BUTTON_DOWN
@ -76,6 +80,8 @@ Head and Tail are stored
#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
(CONFIG_KEYPAD == IRIVER_H300_PAD)
#define SNAKE2_UP BUTTON_UP
#define SNAKE2_DOWN BUTTON_DOWN
#define SNAKE2_QUIT BUTTON_OFF
#define SNAKE2_LEVEL_UP BUTTON_UP
#define SNAKE2_LEVEL_UP2 BUTTON_RIGHT
@ -84,6 +90,18 @@ Head and Tail are stored
#define SNAKE2_SELECT_MAZE BUTTON_REC
#define SNAKE2_SELECT_TYPE BUTTON_MODE
#define SNAKE2_PLAYPAUSE BUTTON_ON
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_NANO_PAD)
#define SNAKE2_UP BUTTON_MENU
#define SNAKE2_DOWN BUTTON_PLAY
#define SNAKE2_QUIT (BUTTON_SELECT | BUTTON_MENU)
#define SNAKE2_LEVEL_UP BUTTON_SCROLL_FWD
#define SNAKE2_LEVEL_DOWN BUTTON_SCROLL_BACK
#define SNAKE2_SELECT_MAZE BUTTON_LEFT
#define SNAKE2_SELECT_TYPE BUTTON_RIGHT
#define SNAKE2_PLAYPAUSE BUTTON_SELECT
#else
#error "lacks keymapping"
#endif
@ -1247,8 +1265,8 @@ void game (void)
button = rb->button_get(false);
switch (button)
{
case BUTTON_UP:
case BUTTON_UP | BUTTON_REPEAT:
case SNAKE2_UP:
case SNAKE2_UP | BUTTON_REPEAT:
if (dir != SOUTH) set_direction(NORTH);
break;
@ -1257,8 +1275,8 @@ void game (void)
if (dir != WEST) set_direction(EAST);
break;
case BUTTON_DOWN:
case BUTTON_DOWN | BUTTON_REPEAT:
case SNAKE2_DOWN:
case SNAKE2_DOWN | BUTTON_REPEAT:
if (dir != NORTH) set_direction(SOUTH);
break;

View File

@ -34,6 +34,8 @@
/* variable button definitions */
#if CONFIG_KEYPAD == PLAYER_PAD
#define SNOW_QUIT BUTTON_STOP
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_NANO_PAD)
#define SNOW_QUIT BUTTON_MENU
#else
#define SNOW_QUIT BUTTON_OFF
#endif

View File

@ -35,6 +35,8 @@
/* variable button definitions */
#if CONFIG_KEYPAD == RECORDER_PAD
#define SOKOBAN_UP BUTTON_UP
#define SOKOBAN_DOWN BUTTON_DOWN
#define SOKOBAN_QUIT BUTTON_OFF
#define SOKOBAN_UNDO BUTTON_ON
#define SOKOBAN_LEVEL_UP BUTTON_F3
@ -42,6 +44,8 @@
#define SOKOBAN_LEVEL_REPEAT BUTTON_F2
#elif CONFIG_KEYPAD == ONDIO_PAD
#define SOKOBAN_UP BUTTON_UP
#define SOKOBAN_DOWN BUTTON_DOWN
#define SOKOBAN_QUIT BUTTON_OFF
#define SOKOBAN_UNDO_PRE BUTTON_MENU
#define SOKOBAN_UNDO (BUTTON_MENU | BUTTON_REL)
@ -51,11 +55,24 @@
#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
(CONFIG_KEYPAD == IRIVER_H300_PAD)
#define SOKOBAN_UP BUTTON_UP
#define SOKOBAN_DOWN BUTTON_DOWN
#define SOKOBAN_QUIT BUTTON_OFF
#define SOKOBAN_UNDO BUTTON_ON
#define SOKOBAN_LEVEL_UP BUTTON_MODE
#define SOKOBAN_LEVEL_DOWN BUTTON_REC
#define SOKOBAN_LEVEL_REPEAT BUTTON_SELECT
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_NANO_PAD)
#define SOKOBAN_UP BUTTON_MENU
#define SOKOBAN_DOWN BUTTON_PLAY
#define SOKOBAN_QUIT (BUTTON_SELECT | BUTTON_MENU)
#define SOKOBAN_UNDO_PRE BUTTON_SELECT
#define SOKOBAN_UNDO (BUTTON_SELECT | BUTTON_REL)
#define SOKOBAN_LEVEL_UP (BUTTON_SELECT | BUTTON_RIGHT)
#define SOKOBAN_LEVEL_DOWN (BUTTON_SELECT | BUTTON_LEFT)
#define SOKOBAN_LEVEL_REPEAT (BUTTON_SELECT | BUTTON_PLAY)
#endif
#if LCD_DEPTH > 1
@ -180,7 +197,7 @@ static void add_undo(int button)
bool storable;
if ((button != BUTTON_LEFT) && (button != BUTTON_RIGHT) &&
(button != BUTTON_UP) && (button != BUTTON_DOWN))
(button != SOKOBAN_UP) && (button != SOKOBAN_DOWN))
return;
if (undo_info.count != 0) {
@ -223,13 +240,13 @@ static void add_undo(int button)
storable = false;
break;
case BUTTON_UP:
case SOKOBAN_UP:
row--;
if (row < 0)
storable = false;
break;
case BUTTON_DOWN:
case SOKOBAN_DOWN:
row++;
if (row >= ROWS)
storable = false;
@ -514,7 +531,7 @@ static bool sokoban_loop(void)
switch(button)
{
case BUTTON_OFF:
case SOKOBAN_QUIT:
/* get out of here */
return PLUGIN_OK;
@ -691,7 +708,7 @@ static bool sokoban_loop(void)
current_info.player.col++;
break;
case BUTTON_UP:
case SOKOBAN_UP:
switch(current_info.board[r-1][c]) {
case ' ': /* if it is a blank spot */
case '.': /* if it is a home spot */
@ -756,7 +773,7 @@ static bool sokoban_loop(void)
current_info.player.row--;
break;
case BUTTON_DOWN:
case SOKOBAN_DOWN:
switch(current_info.board[r+1][c]) {
case ' ': /* if it is a blank spot */
case '.': /* if it is a home spot */

View File

@ -101,6 +101,22 @@ static struct plugin_api* rb;
#define SOL_MENU_RUN2 BUTTON_RIGHT
#define SOL_MENU_INFO BUTTON_MODE
#define SOL_MENU_INFO2 BUTTON_REC
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_NANO_PAD)
#define SOL_QUIT (BUTTON_SELECT | BUTTON_MENU)
#define SOL_UP BUTTON_MENU
#define SOL_DOWN BUTTON_PLAY
#define SOL_LEFT BUTTON_LEFT
#define SOL_RIGHT BUTTON_RIGHT
#define SOL_MOVE BUTTON_SELECT
#define SOL_DRAW (BUTTON_SELECT | BUTTON_PLAY)
#define SOL_REM2CUR (BUTTON_SELECT | BUTTON_LEFT)
#define SOL_CUR2STACK (BUTTON_SELECT | BUTTON_RIGHT)
#define SOL_REM2STACK (BUTTON_LEFT | BUTTON_RIGHT)
#define SOL_MENU_RUN BUTTON_SELECT
#define SOL_MENU_INFO (BUTTON_PLAY | BUTTON_MENU)
#endif
/* common help definitions */
@ -132,6 +148,13 @@ static struct plugin_api* rb;
#define HELP_SOL_CUR2STACK "SELECT..: Put the card under the cursor on one of the 4 final stacks."
#define HELP_SOL_REM2STACK "PLAY+RIGHT: Put the card on top of the remains' stack on one of the 4 final stacks."
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_NANO_PAD)
#define HELP_SOL_MOVE "SELECT: Select cards, Move cards, reveal hidden cards ..."
#define HELP_SOL_DRAW "SELECT+PLAY: Un-select a card if it was selected. Else, draw 3 new cards out of the remains' stack."
#define HELP_SOL_REM2CUR "SELECT+LEFT: Put the card on top of the remains' stack on top of the cursor."
#define HELP_SOL_CUR2STACK "SELECT+RIGHT..: Put the card under the cursor on one of the 4 final stacks."
#define HELP_SOL_REM2STACK "LEFT+RIGHT: Put the card on top of the remains' stack on one of the 4 final stacks."
#endif
#if LCD_DEPTH>1
@ -540,11 +563,11 @@ int solitaire_menu(unsigned char when)
button = rb->button_get(true);
switch(button){
case BUTTON_UP:
case SOL_UP:
cursor = (cursor + MENU_LENGTH - 1)%MENU_LENGTH;
break;
case BUTTON_DOWN:
case SOL_DOWN:
cursor = (cursor + 1)%MENU_LENGTH;
break;
@ -576,7 +599,7 @@ int solitaire_menu(unsigned char when)
rb->splash(HZ, true, "Solitaire for Rockbox by dionoea");
break;
case BUTTON_OFF:
case SOL_QUIT:
return MENU_QUIT;
default:

View File

@ -62,6 +62,8 @@
/* variable button definitions */
#if CONFIG_KEYPAD == RECORDER_PAD
#define STAR_QUIT BUTTON_OFF
#define STAR_UP BUTTON_UP
#define STAR_DOWN BUTTON_DOWN
#define STAR_TOGGLE_CONTROL BUTTON_ON
#define STAR_TOGGLE_CONTROL2 BUTTON_PLAY
#define STAR_LEVEL_UP BUTTON_F3
@ -73,6 +75,8 @@
#elif CONFIG_KEYPAD == ONDIO_PAD
#define STAR_QUIT BUTTON_OFF
#define STAR_UP BUTTON_UP
#define STAR_DOWN BUTTON_DOWN
#define STAR_TOGGLE_CONTROL_PRE BUTTON_MENU
#define STAR_TOGGLE_CONTROL (BUTTON_MENU | BUTTON_REL)
#define STAR_LEVEL_UP (BUTTON_MENU | BUTTON_RIGHT)
@ -83,12 +87,27 @@
#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
(CONFIG_KEYPAD == IRIVER_H300_PAD)
#define STAR_QUIT BUTTON_OFF
#define STAR_UP BUTTON_UP
#define STAR_DOWN BUTTON_DOWN
#define STAR_TOGGLE_CONTROL_PRE BUTTON_MODE
#define STAR_TOGGLE_CONTROL (BUTTON_MODE | BUTTON_REL)
#define STAR_LEVEL_UP (BUTTON_MODE | BUTTON_RIGHT)
#define STAR_LEVEL_DOWN (BUTTON_MODE | BUTTON_LEFT)
#define STAR_LEVEL_REPEAT (BUTTON_MODE | BUTTON_UP)
#define STAR_MENU_RUN BUTTON_RIGHT
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_NANO_PAD)
#define STAR_QUIT (BUTTON_SELECT | BUTTON_MENU)
#define STAR_UP BUTTON_SCROLL_BACK
#define STAR_DOWN BUTTON_SCROLL_FWD
#define STAR_TOGGLE_CONTROL_PRE BUTTON_MENU
#define STAR_TOGGLE_CONTROL (BUTTON_MENU | BUTTON_REL)
#define STAR_LEVEL_UP (BUTTON_SELECT | BUTTON_RIGHT)
#define STAR_LEVEL_DOWN (BUTTON_SELECT | BUTTON_LEFT)
#define STAR_LEVEL_REPEAT (BUTTON_SELECT | BUTTON_PLAY)
#define STAR_MENU_RUN BUTTON_RIGHT
#endif
/* function returns because of USB? */
@ -427,7 +446,7 @@ static void star_display_text(char *str, bool waitkey)
switch (key)
{
case STAR_MENU_RUN:
case BUTTON_DOWN:
case STAR_DOWN:
go_on = true;
break;
@ -601,11 +620,11 @@ static int star_run_game(void)
move_x = 1;
break;
case BUTTON_UP:
case STAR_UP:
move_y = -1;
break;
case BUTTON_DOWN:
case STAR_DOWN:
move_y = 1;
break;
@ -777,11 +796,11 @@ static int star_menu(void)
{
case STAR_QUIT:
return PLUGIN_OK;
case BUTTON_UP:
case STAR_UP:
if (menu_y > 0)
move_y = -1;
break;
case BUTTON_DOWN:
case STAR_DOWN:
if (menu_y < 3)
move_y = 1;
break;

View File

@ -24,11 +24,19 @@
static struct plugin_api* rb; /* global api struct pointer */
/* Key assignement */
#if (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_NANO_PAD)
#define STARFIELD_QUIT BUTTON_MENU
#define STARFIELD_INCREASE_ZMOVE BUTTON_SCROLL_FWD
#define STARFIELD_DECREASE_ZMOVE BUTTON_SCROLL_BACK
#define STARFIELD_INCREASE_NB_STARS BUTTON_RIGHT
#define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT
#else
#define STARFIELD_QUIT BUTTON_OFF
#define STARFIELD_INCREASE_ZMOVE BUTTON_UP
#define STARFIELD_DECREASE_ZMOVE BUTTON_DOWN
#define STARFIELD_INCREASE_NB_STARS BUTTON_RIGHT
#define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT
#endif
#define LCD_CENTER_X (LCD_WIDTH/2)
#define LCD_CENTER_Y (LCD_HEIGHT/2)

View File

@ -28,6 +28,8 @@ static int fontwidth, fontheight;
#if CONFIG_KEYPAD == PLAYER_PAD
#define STATS_STOP BUTTON_STOP
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_NANO_PAD)
#define STATS_STOP BUTTON_MENU
#else
#define STATS_STOP BUTTON_OFF
#endif

View File

@ -61,6 +61,13 @@
#define STOPWATCH_LAP_TIMER BUTTON_ON
#define STOPWATCH_SCROLL_UP BUTTON_RIGHT
#define STOPWATCH_SCROLL_DOWN BUTTON_LEFT
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_NANO_PAD)
#define STOPWATCH_QUIT BUTTON_MENU
#define STOPWATCH_START_STOP BUTTON_SELECT
#define STOPWATCH_RESET_TIMER BUTTON_LEFT
#define STOPWATCH_LAP_TIMER BUTTON_RIGHT
#define STOPWATCH_SCROLL_UP BUTTON_SCROLL_FWD
#define STOPWATCH_SCROLL_DOWN BUTTON_SCROLL_BACK
#endif
static struct plugin_api* rb;

View File

@ -68,12 +68,16 @@ Example ".ss" file, and one with a saved state:
/* variable button definitions */
#if CONFIG_KEYPAD == RECORDER_PAD
#define SUDOKU_BUTTON_QUIT BUTTON_OFF
#define SUDOKU_BUTTON_UP BUTTON_UP
#define SUDOKU_BUTTON_DOWN BUTTON_DOWN
#define SUDOKU_BUTTON_TOGGLE BUTTON_PLAY
#define SUDOKU_BUTTON_MENU BUTTON_F1
#define SUDOKU_BUTTON_POSSIBLE BUTTON_F2
#elif CONFIG_KEYPAD == ONDIO_PAD
#define SUDOKU_BUTTON_QUIT BUTTON_OFF
#define SUDOKU_BUTTON_UP BUTTON_UP
#define SUDOKU_BUTTON_DOWN BUTTON_DOWN
#define SUDOKU_BUTTON_ALTTOGGLE (BUTTON_MENU | BUTTON_DOWN)
#define SUDOKU_BUTTON_TOGGLE_PRE BUTTON_MENU
#define SUDOKU_BUTTON_TOGGLE (BUTTON_MENU | BUTTON_REL)
@ -84,11 +88,23 @@ Example ".ss" file, and one with a saved state:
#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
(CONFIG_KEYPAD == IRIVER_H300_PAD)
#define SUDOKU_BUTTON_QUIT BUTTON_OFF
#define SUDOKU_BUTTON_UP BUTTON_UP
#define SUDOKU_BUTTON_DOWN BUTTON_DOWN
#define SUDOKU_BUTTON_ALTTOGGLE BUTTON_ON
#define SUDOKU_BUTTON_TOGGLE BUTTON_SELECT
#define SUDOKU_BUTTON_MENU BUTTON_MODE
#define SUDOKU_BUTTON_POSSIBLE BUTTON_REC
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_NANO_PAD)
#define SUDOKU_BUTTON_QUIT (BUTTON_SELECT | BUTTON_MENU)
#define SUDOKU_BUTTON_UP BUTTON_SCROLL_BACK
#define SUDOKU_BUTTON_DOWN BUTTON_SCROLL_FWD
#define SUDOKU_BUTTON_TOGGLE BUTTON_SELECT
#define SUDOKU_BUTTON_MENU BUTTON_MENU
#define SUDOKU_BUTTON_POSSIBLE (BUTTON_SELECT | BUTTON_LEFT)
#elif
#error SUDOKU: Unsupported keypad
#endif
@ -2195,8 +2211,8 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
break;
/* move cursor up */
case BUTTON_UP:
case (BUTTON_UP | BUTTON_REPEAT):
case SUDOKU_BUTTON_UP:
case (SUDOKU_BUTTON_UP | BUTTON_REPEAT):
if (state.y==0) {
move_cursor(&state,state.x,8);
} else {
@ -2205,8 +2221,8 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
break;
/* move cursor down */
case BUTTON_DOWN:
case (BUTTON_DOWN | BUTTON_REPEAT):
case SUDOKU_BUTTON_DOWN:
case (SUDOKU_BUTTON_DOWN | BUTTON_REPEAT):
if (state.y==8) {
move_cursor(&state,state.x,0);
} else {

View File

@ -119,6 +119,16 @@
#define VIEWER_COLUMN_LEFT (BUTTON_ON | BUTTON_LEFT)
#define VIEWER_COLUMN_RIGHT (BUTTON_ON | BUTTON_RIGHT)
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_NANO_PAD)
#define VIEWER_QUIT BUTTON_MENU
#define VIEWER_PAGE_UP BUTTON_SCROLL_FWD
#define VIEWER_PAGE_DOWN BUTTON_SCROLL_BACK
#define VIEWER_SCREEN_LEFT BUTTON_LEFT
#define VIEWER_SCREEN_RIGHT BUTTON_RIGHT
#define VIEWER_MODE_WRAP (BUTTON_SELECT | BUTTON_LEFT)
#define VIEWER_MODE_LINE (BUTTON_SELECT | BUTTON_PLAY)
#define VIEWER_MODE_WIDTH (BUTTON_SELECT | BUTTON_RIGHT)
#endif
enum {