diff --git a/apps/eq_menu.c b/apps/eq_menu.c index f6c8dba0df..82639a54da 100644 --- a/apps/eq_menu.c +++ b/apps/eq_menu.c @@ -58,7 +58,8 @@ #define EQ_BTN_CHANGE_MODE BUTTON_SELECT #define EQ_BTN_EXIT BUTTON_OFF -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ + (CONFIG_KEYPAD == IPOD_3G_PAD) #define EQ_BTN_DECREMENT BUTTON_SCROLL_BACK #define EQ_BTN_INCREMENT BUTTON_SCROLL_FWD diff --git a/apps/plugins/battery_bench.c b/apps/plugins/battery_bench.c index f9fd6e809b..1e77c64f71 100644 --- a/apps/plugins/battery_bench.c +++ b/apps/plugins/battery_bench.c @@ -52,7 +52,8 @@ PLUGIN_HEADER #define BATTERY_OFF BUTTON_OFF #define BATTERY_RC_OFF BUTTON_RC_STOP -#elif CONFIG_KEYPAD == IPOD_4G_PAD +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ + (CONFIG_KEYPAD == IPOD_3G_PAD) #define BATTERY_ON BUTTON_PLAY #define BATTERY_OFF BUTTON_MENU diff --git a/apps/plugins/battery_test.c b/apps/plugins/battery_test.c index 6c9988eb53..e94070f137 100644 --- a/apps/plugins/battery_test.c +++ b/apps/plugins/battery_test.c @@ -43,7 +43,8 @@ PLUGIN_HEADER #define BATTERY_TEST_QUIT BUTTON_OFF #elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD #define BATTERY_TEST_QUIT BUTTON_PLAY -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ + (CONFIG_KEYPAD == IPOD_3G_PAD) #define BATTERY_TEST_QUIT BUTTON_MENU #elif (CONFIG_KEYPAD == IAUDIO_X5_PAD) #define BATTERY_TEST_QUIT BUTTON_POWER diff --git a/apps/plugins/bounce.c b/apps/plugins/bounce.c index 6c48e802d4..b69f64ee85 100644 --- a/apps/plugins/bounce.c +++ b/apps/plugins/bounce.c @@ -52,7 +52,8 @@ PLUGIN_HEADER #define BOUNCE_QUIT (BUTTON_OFF | BUTTON_REL) #define BOUNCE_MODE (BUTTON_SELECT | BUTTON_REL) -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ + (CONFIG_KEYPAD == IPOD_3G_PAD) #define BOUNCE_UP BUTTON_SCROLL_BACK #define BOUNCE_DOWN BUTTON_SCROLL_FWD #define BOUNCE_QUIT (BUTTON_MENU | BUTTON_REL) diff --git a/apps/plugins/brickmania.c b/apps/plugins/brickmania.c index 899f022717..a21ba7ae5c 100644 --- a/apps/plugins/brickmania.c +++ b/apps/plugins/brickmania.c @@ -63,7 +63,8 @@ PLUGIN_HEADER #define SCROLL_FWD(x) (0) #define SCROLL_BACK(x) (0) -#elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_3G_PAD) || \ + (CONFIG_KEYPAD == IPOD_4G_PAD) #define QUIT BUTTON_MENU #define LEFT BUTTON_LEFT diff --git a/apps/plugins/calculator.c b/apps/plugins/calculator.c index 6bde1b0a09..0cce1860cb 100644 --- a/apps/plugins/calculator.c +++ b/apps/plugins/calculator.c @@ -134,7 +134,8 @@ PLUGIN_HEADER #define CALCULATOR_OPERATORS BUTTON_MODE #define CALCULATOR_CLEAR BUTTON_REC -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ + (CONFIG_KEYPAD == IPOD_3G_PAD) #define CALCULATOR_UP BUTTON_SCROLL_BACK #define CALCULATOR_DOWN BUTTON_SCROLL_FWD diff --git a/apps/plugins/chessclock.c b/apps/plugins/chessclock.c index edfd421255..d2850211d1 100644 --- a/apps/plugins/chessclock.c +++ b/apps/plugins/chessclock.c @@ -66,7 +66,8 @@ PLUGIN_HEADER #define CHC_SETTINGS_CANCEL BUTTON_OFF #define CHC_SETTINGS_CANCEL2 BUTTON_REC -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ + (CONFIG_KEYPAD == IPOD_3G_PAD) #define CHC_QUIT BUTTON_PLAY #define CHC_STARTSTOP BUTTON_SELECT #define CHC_RESET BUTTON_LEFT diff --git a/apps/plugins/chip8.c b/apps/plugins/chip8.c index 29816bfa13..2a70369523 100644 --- a/apps/plugins/chip8.c +++ b/apps/plugins/chip8.c @@ -976,7 +976,8 @@ STATIC void chip8 (void) #define CHIP8_KEY6 BUTTON_RIGHT #define CHIP8_KEY8 BUTTON_DOWN -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ + (CONFIG_KEYPAD == IPOD_3G_PAD) #define CHIP8_OFF BUTTON_MENU #define CHIP8_KEY2 BUTTON_SCROLL_BACK #define CHIP8_KEY4 BUTTON_LEFT diff --git a/apps/plugins/cube.c b/apps/plugins/cube.c index 71da39885e..cbe32d14d0 100644 --- a/apps/plugins/cube.c +++ b/apps/plugins/cube.c @@ -82,7 +82,8 @@ PLUGIN_HEADER #define CUBE_PAUSE (BUTTON_ON | BUTTON_REL) #define CUBE_HIGHSPEED BUTTON_SELECT -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ + (CONFIG_KEYPAD == IPOD_3G_PAD) #define CUBE_QUIT BUTTON_MENU #define CUBE_X_INC BUTTON_RIGHT #define CUBE_X_DEC BUTTON_LEFT diff --git a/apps/plugins/databox/databox.c b/apps/plugins/databox/databox.c index 0ec14d5d2f..ea35960e41 100644 --- a/apps/plugins/databox/databox.c +++ b/apps/plugins/databox/databox.c @@ -31,7 +31,8 @@ PLUGIN_HEADER #elif CONFIG_KEYPAD == ONDIO_PAD #define DBX_SELECT BUTTON_MENU #define DBX_STOP BUTTON_OFF -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ + (CONFIG_KEYPAD == IPOD_3G_PAD) #define DBX_SELECT BUTTON_SELECT #define DBX_STOP BUTTON_MENU #elif CONFIG_KEYPAD == PLAYER_PAD diff --git a/apps/plugins/demystify.c b/apps/plugins/demystify.c index 36f7b924d3..e86482f837 100644 --- a/apps/plugins/demystify.c +++ b/apps/plugins/demystify.c @@ -26,7 +26,8 @@ PLUGIN_HEADER /* Key assignement */ -#if (CONFIG_KEYPAD == IPOD_4G_PAD) +#if (CONFIG_KEYPAD == IPOD_4G_PAD) || \ + (CONFIG_KEYPAD == IPOD_3G_PAD) #define DEMYSTIFY_QUIT BUTTON_MENU #define DEMYSTIFY_ADD_POLYGON BUTTON_RIGHT #define DEMYSTIFY_REMOVE_POLYGON BUTTON_LEFT diff --git a/apps/plugins/dict.c b/apps/plugins/dict.c index 62bb9a73a4..6d626d403c 100644 --- a/apps/plugins/dict.c +++ b/apps/plugins/dict.c @@ -104,7 +104,8 @@ long reverse (long N) { /* Button definitions */ #if CONFIG_KEYPAD == PLAYER_PAD #define LP_QUIT BUTTON_STOP -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ + (CONFIG_KEYPAD == IPOD_3G_PAD) #define LP_QUIT BUTTON_MENU #elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD #define LP_QUIT BUTTON_PLAY diff --git a/apps/plugins/flipit.c b/apps/plugins/flipit.c index a4c9cea9db..296b2be151 100644 --- a/apps/plugins/flipit.c +++ b/apps/plugins/flipit.c @@ -52,7 +52,8 @@ PLUGIN_HEADER #define FLIPIT_TOGGLE_PRE BUTTON_SELECT #define FLIPIT_TOGGLE (BUTTON_SELECT | BUTTON_REL) -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ + (CONFIG_KEYPAD == IPOD_3G_PAD) #define FLIPIT_UP BUTTON_SCROLL_FWD #define FLIPIT_DOWN BUTTON_SCROLL_BACK diff --git a/apps/plugins/logo.c b/apps/plugins/logo.c index 982460ea8f..89aa753ab1 100644 --- a/apps/plugins/logo.c +++ b/apps/plugins/logo.c @@ -183,7 +183,8 @@ 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) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ + (CONFIG_KEYPAD == IPOD_3G_PAD) #define LP_QUIT BUTTON_MENU #define LP_DEC_X BUTTON_LEFT #define LP_INC_X BUTTON_RIGHT diff --git a/apps/plugins/mandelbrot.c b/apps/plugins/mandelbrot.c index 3017bb4dac..2020d4dc2f 100644 --- a/apps/plugins/mandelbrot.c +++ b/apps/plugins/mandelbrot.c @@ -66,7 +66,8 @@ PLUGIN_HEADER #define MANDELBROT_MAXITER_DEC (BUTTON_ON | BUTTON_LEFT) #define MANDELBROT_RESET BUTTON_REC -#elif CONFIG_KEYPAD == IPOD_4G_PAD +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ + (CONFIG_KEYPAD == IPOD_3G_PAD) #define MANDELBROT_QUIT (BUTTON_SELECT | BUTTON_MENU) #define MANDELBROT_UP BUTTON_MENU #define MANDELBROT_DOWN BUTTON_PLAY diff --git a/apps/plugins/metronome.c b/apps/plugins/metronome.c index ac4a990f61..c7200300f3 100644 --- a/apps/plugins/metronome.c +++ b/apps/plugins/metronome.c @@ -58,7 +58,8 @@ PLUGIN_HEADER #define METRONOME_MSG_START "press play" #define METRONOME_MSG_STOP "press pause" -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ + (CONFIG_KEYPAD == IPOD_3G_PAD) #define METRONOME_QUIT BUTTON_MENU #define METRONOME_PLAYPAUSE BUTTON_PLAY #define METRONOME_VOL_UP BUTTON_SCROLL_FWD diff --git a/apps/plugins/minesweeper.c b/apps/plugins/minesweeper.c index fd4507f4e3..8ca85a4965 100644 --- a/apps/plugins/minesweeper.c +++ b/apps/plugins/minesweeper.c @@ -71,7 +71,8 @@ PLUGIN_HEADER #define MINESWP_DISCOVER BUTTON_ON #define MINESWP_INFO BUTTON_MODE -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ + (CONFIG_KEYPAD == IPOD_3G_PAD) #define MINESWP_UP BUTTON_SCROLL_BACK #define MINESWP_DOWN BUTTON_SCROLL_FWD #define MINESWP_QUIT BUTTON_MENU diff --git a/apps/plugins/mosaique.c b/apps/plugins/mosaique.c index b68667cc24..7f3dc65aad 100644 --- a/apps/plugins/mosaique.c +++ b/apps/plugins/mosaique.c @@ -53,7 +53,8 @@ PLUGIN_HEADER #define MOSAIQUE_SPEED BUTTON_MODE #define MOSAIQUE_RESTART BUTTON_ON -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ + (CONFIG_KEYPAD == IPOD_3G_PAD) #define MOSAIQUE_QUIT BUTTON_MENU #define MOSAIQUE_SPEED BUTTON_SELECT #define MOSAIQUE_RESTART BUTTON_PLAY diff --git a/apps/plugins/mp3_encoder.c b/apps/plugins/mp3_encoder.c index c81a838fb1..f4f6b56f22 100644 --- a/apps/plugins/mp3_encoder.c +++ b/apps/plugins/mp3_encoder.c @@ -1880,7 +1880,8 @@ char *get_mp3_filename(char *wav_name) #define MP3ENC_NEXT BUTTON_DOWN #define MP3ENC_DONE BUTTON_OFF #define MP3ENC_SELECT BUTTON_SELECT -#elif CONFIG_KEYPAD == IPOD_4G_PAD +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ + (CONFIG_KEYPAD == IPOD_3G_PAD) #define MP3ENC_PREV BUTTON_SCROLL_BACK #define MP3ENC_NEXT BUTTON_SCROLL_FWD #define MP3ENC_DONE BUTTON_MENU diff --git a/apps/plugins/plugin.lds b/apps/plugins/plugin.lds index f9c2406893..d4b3a1041e 100644 --- a/apps/plugins/plugin.lds +++ b/apps/plugins/plugin.lds @@ -73,7 +73,7 @@ SECTIONS .text : { *(.text*) -#if (CONFIG_CPU==PP5020) || (CONFIG_CPU==PNX0101) +#if (CONFIG_CPU==PP5020) || (CONFIG_CPU==PNX0101) || (CONFIG_CPU==PP5002) *(.glue_7) *(.glue_7t) #endif diff --git a/apps/plugins/pong.c b/apps/plugins/pong.c index a348ae7545..adba3f5379 100644 --- a/apps/plugins/pong.c +++ b/apps/plugins/pong.c @@ -58,7 +58,8 @@ PLUGIN_HEADER #define PONG_RIGHT_UP BUTTON_ON #define PONG_RIGHT_DOWN BUTTON_MODE -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ + (CONFIG_KEYPAD == IPOD_3G_PAD) #define PONG_QUIT BUTTON_SELECT #define PONG_LEFT_UP BUTTON_MENU #define PONG_LEFT_DOWN BUTTON_LEFT diff --git a/apps/plugins/rockblox.c b/apps/plugins/rockblox.c index 6b26b3bd6a..b4caaf38f2 100644 --- a/apps/plugins/rockblox.c +++ b/apps/plugins/rockblox.c @@ -24,7 +24,8 @@ PLUGIN_HEADER -#if (CONFIG_KEYPAD == IPOD_4G_PAD) +#if (CONFIG_KEYPAD == IPOD_4G_PAD) || \ + (CONFIG_KEYPAD == IPOD_3G_PAD) #define ROCKBLOX_OFF BUTTON_MENU #define ROCKBLOX_UP BUTTON_SCROLL_BACK #define ROCKBLOX_DOWN BUTTON_SCROLL_FWD diff --git a/apps/plugins/sliding_puzzle.c b/apps/plugins/sliding_puzzle.c index c1c2bef362..4bcfc9511d 100644 --- a/apps/plugins/sliding_puzzle.c +++ b/apps/plugins/sliding_puzzle.c @@ -45,7 +45,8 @@ PLUGIN_HEADER #define PUZZLE_SHUFFLE BUTTON_SELECT #define PUZZLE_PICTURE BUTTON_ON -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ + (CONFIG_KEYPAD == IPOD_3G_PAD) #define PUZZLE_QUIT BUTTON_MENU #define PUZZLE_UP BUTTON_SCROLL_BACK #define PUZZLE_DOWN BUTTON_SCROLL_FWD diff --git a/apps/plugins/snake.c b/apps/plugins/snake.c index 272e0017c0..3d12b67cce 100644 --- a/apps/plugins/snake.c +++ b/apps/plugins/snake.c @@ -55,7 +55,8 @@ PLUGIN_HEADER #define SNAKE_DOWN BUTTON_DOWN #define SNAKE_PLAYPAUSE BUTTON_ON -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ + (CONFIG_KEYPAD == IPOD_3G_PAD) #define SNAKE_QUIT (BUTTON_SELECT|BUTTON_MENU) #define SNAKE_UP BUTTON_MENU #define SNAKE_DOWN BUTTON_PLAY diff --git a/apps/plugins/snake2.c b/apps/plugins/snake2.c index 8407654110..da83c00f7d 100644 --- a/apps/plugins/snake2.c +++ b/apps/plugins/snake2.c @@ -93,7 +93,8 @@ PLUGIN_HEADER #define SNAKE2_SELECT_TYPE BUTTON_MODE #define SNAKE2_PLAYPAUSE BUTTON_ON -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ + (CONFIG_KEYPAD == IPOD_3G_PAD) #define SNAKE2_UP BUTTON_MENU #define SNAKE2_DOWN BUTTON_PLAY #define SNAKE2_QUIT (BUTTON_SELECT | BUTTON_MENU) diff --git a/apps/plugins/snow.c b/apps/plugins/snow.c index 9001eabeef..80429326bf 100644 --- a/apps/plugins/snow.c +++ b/apps/plugins/snow.c @@ -36,7 +36,8 @@ PLUGIN_HEADER /* variable button definitions */ #if CONFIG_KEYPAD == PLAYER_PAD #define SNOW_QUIT BUTTON_STOP -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ + (CONFIG_KEYPAD == IPOD_3G_PAD) #define SNOW_QUIT BUTTON_MENU #elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD #define SNOW_QUIT BUTTON_PLAY diff --git a/apps/plugins/sokoban.c b/apps/plugins/sokoban.c index 501253b130..feddeb1778 100644 --- a/apps/plugins/sokoban.c +++ b/apps/plugins/sokoban.c @@ -66,7 +66,8 @@ PLUGIN_HEADER #define SOKOBAN_LEVEL_DOWN BUTTON_REC #define SOKOBAN_LEVEL_REPEAT BUTTON_SELECT -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ + (CONFIG_KEYPAD == IPOD_3G_PAD) #define SOKOBAN_UP BUTTON_MENU #define SOKOBAN_DOWN BUTTON_PLAY #define SOKOBAN_QUIT (BUTTON_SELECT | BUTTON_MENU) diff --git a/apps/plugins/solitaire.c b/apps/plugins/solitaire.c index 26629665d9..f8b7f94717 100644 --- a/apps/plugins/solitaire.c +++ b/apps/plugins/solitaire.c @@ -109,7 +109,8 @@ static struct plugin_api* rb; #define SOL_OPT BUTTON_ON #define SOL_REM BUTTON_REC -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ + (CONFIG_KEYPAD == IPOD_3G_PAD) #define SOL_QUIT (BUTTON_SELECT | BUTTON_MENU) #define SOL_UP BUTTON_MENU #define SOL_DOWN BUTTON_PLAY @@ -183,7 +184,7 @@ 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) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) ||(CONFIG_KEYPAD == IPOD_3G_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." diff --git a/apps/plugins/star.c b/apps/plugins/star.c index 097f62cf9e..5b100707d0 100644 --- a/apps/plugins/star.c +++ b/apps/plugins/star.c @@ -98,7 +98,8 @@ PLUGIN_HEADER #define STAR_LEVEL_REPEAT (BUTTON_MODE | BUTTON_UP) #define STAR_MENU_RUN BUTTON_RIGHT -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ + (CONFIG_KEYPAD == IPOD_3G_PAD) #define STAR_QUIT (BUTTON_SELECT | BUTTON_MENU) #define STAR_UP BUTTON_SCROLL_BACK diff --git a/apps/plugins/starfield.c b/apps/plugins/starfield.c index 7535caf032..032b6acf7c 100644 --- a/apps/plugins/starfield.c +++ b/apps/plugins/starfield.c @@ -26,7 +26,8 @@ PLUGIN_HEADER static struct plugin_api* rb; /* global api struct pointer */ /* Key assignement */ -#if (CONFIG_KEYPAD == IPOD_4G_PAD) +#if (CONFIG_KEYPAD == IPOD_4G_PAD) || \ + (CONFIG_KEYPAD == IPOD_3G_PAD) #define STARFIELD_QUIT BUTTON_MENU #define STARFIELD_INCREASE_ZMOVE BUTTON_SCROLL_FWD #define STARFIELD_DECREASE_ZMOVE BUTTON_SCROLL_BACK diff --git a/apps/plugins/stats.c b/apps/plugins/stats.c index 12c11a9190..1b5eeb2553 100644 --- a/apps/plugins/stats.c +++ b/apps/plugins/stats.c @@ -30,7 +30,8 @@ static int fontwidth, fontheight; #if CONFIG_KEYPAD == PLAYER_PAD #define STATS_STOP BUTTON_STOP -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ + (CONFIG_KEYPAD == IPOD_3G_PAD) #define STATS_STOP BUTTON_MENU #elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD #define STATS_STOP BUTTON_PLAY diff --git a/apps/plugins/stopwatch.c b/apps/plugins/stopwatch.c index 905b9d9e50..0aff7e2843 100644 --- a/apps/plugins/stopwatch.c +++ b/apps/plugins/stopwatch.c @@ -63,7 +63,8 @@ PLUGIN_HEADER #define STOPWATCH_LAP_TIMER BUTTON_ON #define STOPWATCH_SCROLL_UP BUTTON_RIGHT #define STOPWATCH_SCROLL_DOWN BUTTON_LEFT -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ + (CONFIG_KEYPAD == IPOD_3G_PAD) #define STOPWATCH_QUIT BUTTON_MENU #define STOPWATCH_START_STOP BUTTON_SELECT #define STOPWATCH_RESET_TIMER BUTTON_LEFT diff --git a/apps/plugins/sudoku.c b/apps/plugins/sudoku.c index 5cdf686778..4db3fd6950 100644 --- a/apps/plugins/sudoku.c +++ b/apps/plugins/sudoku.c @@ -95,7 +95,8 @@ PLUGIN_HEADER #define SUDOKU_BUTTON_MENU BUTTON_MODE #define SUDOKU_BUTTON_POSSIBLE BUTTON_REC -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ + (CONFIG_KEYPAD == IPOD_3G_PAD) #define SUDOKU_BUTTON_QUIT (BUTTON_SELECT | BUTTON_MENU) #define SUDOKU_BUTTON_UP BUTTON_SCROLL_BACK #define SUDOKU_BUTTON_DOWN BUTTON_SCROLL_FWD diff --git a/apps/plugins/viewer.c b/apps/plugins/viewer.c index 238c4e0fb2..f0f900cf4f 100644 --- a/apps/plugins/viewer.c +++ b/apps/plugins/viewer.c @@ -118,7 +118,8 @@ PLUGIN_HEADER #define VIEWER_COLUMN_RIGHT (BUTTON_ON | BUTTON_RIGHT) /* iPods with the 4G pad */ -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ + (CONFIG_KEYPAD == IPOD_3G_PAD) #define VIEWER_QUIT BUTTON_MENU #define VIEWER_PAGE_UP BUTTON_SCROLL_BACK #define VIEWER_PAGE_DOWN BUTTON_SCROLL_FWD diff --git a/firmware/backlight.c b/firmware/backlight.c index 0049f78607..1a7ea8e7f0 100644 --- a/firmware/backlight.c +++ b/firmware/backlight.c @@ -34,7 +34,7 @@ #include "pcf50606.h" /* iRiver brightness */ #endif -#if CONFIG_BACKLIGHT == BL_IRIVER_H300 +#if (CONFIG_BACKLIGHT == BL_IRIVER_H300) || (CONFIG_BACKLIGHT == BL_IPOD3G) #include "lcd.h" /* for lcd_enable() */ #endif #ifdef HAVE_REMOTE_LCD diff --git a/firmware/drivers/adc.c b/firmware/drivers/adc.c index e565372fac..6e1c57766a 100644 --- a/firmware/drivers/adc.c +++ b/firmware/drivers/adc.c @@ -282,7 +282,7 @@ void adc_init(void) sleep(2); /* Ensure valid readings when adc_init returns */ } -#elif CONFIG_CPU == PP5020 +#elif CONFIG_CPU == PP5020 || (CONFIG_CPU == PP5002) /* TODO: Implement adc.c */ diff --git a/firmware/drivers/button.c b/firmware/drivers/button.c index 9f9ed1243e..d5855506fc 100644 --- a/firmware/drivers/button.c +++ b/firmware/drivers/button.c @@ -241,9 +241,6 @@ void ipod_4g_button_int(void) } #endif #if CONFIG_KEYPAD == IPOD_3G_PAD -/* Variable to use for setting button status in interrupt handler */ -int int_btn = BUTTON_NONE; - /** * * @@ -282,13 +279,14 @@ void handle_scroll_wheel(int new_scroll, int was_hold, int reverse) else { /* 'r' keypress */ wheel_keycode = BUTTON_SCROLL_FWD; + } break; default: /* only happens if we get out of sync */ break; + } } - } if (wheel_keycode != BUTTON_NONE) queue_post(&button_queue, wheel_keycode, NULL); prev_scroll = new_scroll; @@ -306,65 +304,56 @@ int btn = BUTTON_NONE; udelay(250); /* get source of interupts */ - source = inb(0xcf000040); - if (source) { + source = GPIOA_INT_STAT; + /* get current keypad status */ - state = inb(0xcf000030); - outb(~state, 0xcf000060); + state = GPIOA_INPUT_VAL; + GPIOA_INT_LEV = ~state; if (was_hold && source == 0x40 && state == 0xbf) { /* ack any active interrupts */ - outb(source, 0xcf000070); + GPIOA_INT_CLR = source; return BUTTON_NONE; } was_hold = 0; - if ( source & 0x20 ) { + if ((state & 0x20) == 0) { /* 3g hold switch is active low */ btn |= BUTTON_HOLD; was_hold = 1; /* hold switch on 3g causes all outputs to go low */ /* we shouldn't interpret these as key presses */ - goto done; + GPIOA_INT_CLR = source; + return BUTTON_NONE; } - if (source & 0x1) { + if ((state & 0x1) == 0) { btn |= BUTTON_RIGHT; } - if (source & 0x2) { + if ((state & 0x2) == 0) { btn |= BUTTON_SELECT; } - if (source & 0x4) { + if ((state & 0x4) == 0) { btn |= BUTTON_PLAY; } - if (source & 0x8) { + if ((state & 0x8) == 0) { btn |= BUTTON_LEFT; } - if (source & 0x10) { + if ((state & 0x10) == 0) { btn |= BUTTON_MENU; } if (source & 0xc0) { handle_scroll_wheel((state & 0xc0) >> 6, was_hold, 0); } - done: /* ack any active interrupts */ - outb(source, 0xcf000070); - } + GPIOA_INT_CLR = source; + return btn; } -void ipod_3g_button_int(void) -{ - /** - * Theire is other things to do but for now ... - * TODO: implement this function in a better way - **/ - int_btn = ipod_3g_button_read(); - -} #endif static void button_tick(void) { @@ -566,10 +555,9 @@ void button_init(void) CPU_HI_INT_EN = I2C_MASK; #elif CONFIG_KEYPAD == IPOD_3G_PAD - outb(~inb(GPIOA_INPUT_VAL), GPIOA_INT_LEV); - outb(inb(GPIOA_INT_STAT), GPIOA_INT_CLR); - outb(0xff, GPIOA_INT_EN); - + GPIOA_INT_LEV = ~GPIOA_INPUT_VAL; + GPIOA_INT_CLR = GPIOA_INT_STAT; + GPIOA_INT_EN = 0xff; #endif /* CONFIG_KEYPAD */ queue_init(&button_queue); button_read(); @@ -1043,10 +1031,14 @@ static int button_read(void) if (data & 0x01) btn |= BUTTON_ON; -#elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) (void)data; /* The int_btn variable is set in the button interrupt handler */ btn = int_btn; +#elif (CONFIG_KEYPAD == IPOD_3G_PAD) + (void)data; + btn = ipod_3g_button_read(); + #elif (CONFIG_KEYPAD == IAUDIO_X5_PAD) static bool hold_button = false; static bool remote_hold_button = false; @@ -1098,7 +1090,7 @@ static int button_read(void) return retval; } -#if (CONFIG_KEYPAD == IPOD_4G_PAD) +#if (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) bool button_hold(void) { return (GPIOA_INPUT_VAL & 0x20)?false:true; diff --git a/firmware/export/button.h b/firmware/export/button.h index 3ae1d37d52..12eab9ff80 100644 --- a/firmware/export/button.h +++ b/firmware/export/button.h @@ -27,7 +27,8 @@ (CONFIG_KEYPAD == IAUDIO_X5_PAD) #define HAS_BUTTON_HOLD #define HAS_REMOTE_BUTTON_HOLD -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ + (CONFIG_KEYPAD == IPOD_3G_PAD) #define HAS_BUTTON_HOLD #endif extern struct event_queue button_queue; diff --git a/firmware/export/config-ipod3g.h b/firmware/export/config-ipod3g.h index 9d55b6b3f0..e809afa6c9 100644 --- a/firmware/export/config-ipod3g.h +++ b/firmware/export/config-ipod3g.h @@ -82,10 +82,8 @@ /* Offset ( in the firmware file's header ) to the real data */ #define FIRMWARE_OFFSET_FILE_DATA 8 -#define USB_IPODSTYLE +#define USB_NONE -/* define this if the unit can be powered or charged via USB */ -#define HAVE_USB_POWER /* Virtual LED (icon) */ #define CONFIG_LED LED_VIRTUAL diff --git a/firmware/export/pp5002.h b/firmware/export/pp5002.h index 36bb3c9671..3104fde6f8 100644 --- a/firmware/export/pp5002.h +++ b/firmware/export/pp5002.h @@ -21,38 +21,38 @@ /* All info gleaned and/or copied from the iPodLinux project. */ -#define GPIOA_ENABLE (*(volatile unsigned long *)(0xcf000000)) -#define GPIOB_ENABLE (*(volatile unsigned long *)(0xcf000004)) -#define GPIOC_ENABLE (*(volatile unsigned long *)(0xcf000008)) -#define GPIOD_ENABLE (*(volatile unsigned long *)(0xcf00000c)) -#define GPIOA_OUTPUT_EN (*(volatile unsigned long *)(0xcf000010)) -#define GPIOB_OUTPUT_EN (*(volatile unsigned long *)(0xcf000014)) -#define GPIOC_OUTPUT_EN (*(volatile unsigned long *)(0xcf000018)) -#define GPIOD_OUTPUT_EN (*(volatile unsigned long *)(0xcf00001c)) -#define GPIOA_OUTPUT_VAL (*(volatile unsigned long *)(0xcf000020)) -#define GPIOB_OUTPUT_VAL (*(volatile unsigned long *)(0xcf000024)) -#define GPIOC_OUTPUT_VAL (*(volatile unsigned long *)(0xcf000028)) -#define GPIOD_OUTPUT_VAL (*(volatile unsigned long *)(0xcf00002c)) -#define GPIOA_INPUT_VAL (*(volatile unsigned long *)(0xcf000030)) -#define GPIOB_INPUT_VAL (*(volatile unsigned long *)(0xcf000034)) -#define GPIOC_INPUT_VAL (*(volatile unsigned long *)(0xcf000038)) -#define GPIOD_INPUT_VAL (*(volatile unsigned long *)(0xcf00003c)) -#define GPIOA_INT_STAT (*(volatile unsigned long *)(0xcf000040)) -#define GPIOB_INT_STAT (*(volatile unsigned long *)(0xcf000044)) -#define GPIOC_INT_STAT (*(volatile unsigned long *)(0xcf000048)) -#define GPIOD_INT_STAT (*(volatile unsigned long *)(0xcf00004c)) -#define GPIOA_INT_EN (*(volatile unsigned long *)(0xcf000050)) -#define GPIOB_INT_EN (*(volatile unsigned long *)(0xcf000054)) -#define GPIOC_INT_EN (*(volatile unsigned long *)(0xcf000058)) -#define GPIOD_INT_EN (*(volatile unsigned long *)(0xcf00005c)) -#define GPIOA_INT_LEV (*(volatile unsigned long *)(0xcf000060)) -#define GPIOB_INT_LEV (*(volatile unsigned long *)(0xcf000064)) -#define GPIOC_INT_LEV (*(volatile unsigned long *)(0xcf000068)) -#define GPIOD_INT_LEV (*(volatile unsigned long *)(0xcf00006c)) -#define GPIOA_INT_CLR (*(volatile unsigned long *)(0xcf000070)) -#define GPIOB_INT_CLR (*(volatile unsigned long *)(0xcf000074)) -#define GPIOC_INT_CLR (*(volatile unsigned long *)(0xcf000078)) -#define GPIOD_INT_CLR (*(volatile unsigned long *)(0xcf00007c)) +#define GPIOA_ENABLE (*(volatile unsigned char *)(0xcf000000)) +#define GPIOB_ENABLE (*(volatile unsigned char *)(0xcf000004)) +#define GPIOC_ENABLE (*(volatile unsigned char *)(0xcf000008)) +#define GPIOD_ENABLE (*(volatile unsigned char *)(0xcf00000c)) +#define GPIOA_OUTPUT_EN (*(volatile unsigned char *)(0xcf000010)) +#define GPIOB_OUTPUT_EN (*(volatile unsigned char *)(0xcf000014)) +#define GPIOC_OUTPUT_EN (*(volatile unsigned char *)(0xcf000018)) +#define GPIOD_OUTPUT_EN (*(volatile unsigned char *)(0xcf00001c)) +#define GPIOA_OUTPUT_VAL (*(volatile unsigned char *)(0xcf000020)) +#define GPIOB_OUTPUT_VAL (*(volatile unsigned char *)(0xcf000024)) +#define GPIOC_OUTPUT_VAL (*(volatile unsigned char *)(0xcf000028)) +#define GPIOD_OUTPUT_VAL (*(volatile unsigned char *)(0xcf00002c)) +#define GPIOA_INPUT_VAL (*(volatile unsigned char *)(0xcf000030)) +#define GPIOB_INPUT_VAL (*(volatile unsigned char *)(0xcf000034)) +#define GPIOC_INPUT_VAL (*(volatile unsigned char *)(0xcf000038)) +#define GPIOD_INPUT_VAL (*(volatile unsigned char *)(0xcf00003c)) +#define GPIOA_INT_STAT (*(volatile unsigned char *)(0xcf000040)) +#define GPIOB_INT_STAT (*(volatile unsigned char *)(0xcf000044)) +#define GPIOC_INT_STAT (*(volatile unsigned char *)(0xcf000048)) +#define GPIOD_INT_STAT (*(volatile unsigned char *)(0xcf00004c)) +#define GPIOA_INT_EN (*(volatile unsigned char *)(0xcf000050)) +#define GPIOB_INT_EN (*(volatile unsigned char *)(0xcf000054)) +#define GPIOC_INT_EN (*(volatile unsigned char *)(0xcf000058)) +#define GPIOD_INT_EN (*(volatile unsigned char *)(0xcf00005c)) +#define GPIOA_INT_LEV (*(volatile unsigned char *)(0xcf000060)) +#define GPIOB_INT_LEV (*(volatile unsigned char *)(0xcf000064)) +#define GPIOC_INT_LEV (*(volatile unsigned char *)(0xcf000068)) +#define GPIOD_INT_LEV (*(volatile unsigned char *)(0xcf00006c)) +#define GPIOA_INT_CLR (*(volatile unsigned char *)(0xcf000070)) +#define GPIOB_INT_CLR (*(volatile unsigned char *)(0xcf000074)) +#define GPIOC_INT_CLR (*(volatile unsigned char *)(0xcf000078)) +#define GPIOD_INT_CLR (*(volatile unsigned char *)(0xcf00007c)) #define DEV_RS (*(volatile unsigned long *)( 0xcf005030)) #define DEV_EN (*(volatile unsigned long *)( 0xcf005000)) diff --git a/firmware/system.c b/firmware/system.c index df75fbb5a1..b47d983595 100644 --- a/firmware/system.c +++ b/firmware/system.c @@ -1230,14 +1230,16 @@ int system_memory_guard(int newmode) unsigned int ipod_hw_rev; #ifndef BOOTLOADER extern void TIMER1(void); -extern void ipod_3g_button_int(void); void irq(void) { if (CPU_INT_STAT & TIMER1_MASK) TIMER1(); - else if (CPU_INT_STAT & GPIO_MASK) - ipod_3g_button_int(); +} + +void fiq(void) +{ + /** TODO: implement this function **/ } #endif @@ -1259,7 +1261,7 @@ static void ipod_init_cache(void) outl(0x2, 0xcf004024); /* PP5002 has 8KB cache */ - for (i = 0xf0004000; i < 0xf0006000; i += 16) { + for (i = 0xf0004000; i < (int)(0xf0006000); i += 16) { outl(0x0, i); } diff --git a/firmware/usb.c b/firmware/usb.c index f98bfa39b1..4fa032d7a5 100644 --- a/firmware/usb.c +++ b/firmware/usb.c @@ -68,7 +68,7 @@ void screen_dump(void); /* Nasty again. Defined in apps/ too */ #elif CONFIG_KEYPAD == ONDIO_PAD #define USBPOWER_BUTTON BUTTON_MENU #define USBPOWER_BTN_IGNORE BUTTON_OFF -#elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) #define USBPOWER_BUTTON BUTTON_MENU #define USBPOWER_BTN_IGNORE BUTTON_PLAY #elif CONFIG_KEYPAD == IRIVER_H300_PAD @@ -166,7 +166,7 @@ void usb_enable(bool on) #endif } -#elif defined(USB_IPODSTYLE) +#elif defined(USB_IPODSTYLE) /* For the ipod, we can only do one thing with USB mode - reboot into Apple's flash-based disk-mode. This does not return. */ if (on) @@ -181,6 +181,7 @@ void usb_enable(bool on) memcpy(storage_ptr, "diskmode\0\0hotstuff\0\0\1", 21); DEV_RS |= 4; /* Reboot */ } + #elif defined(USB_ISP1582) /* TODO: Implement USB_ISP1582 */ (void) on; @@ -554,6 +555,7 @@ void usb_init(void) tick_add_task(usb_tick); #endif + } void usb_wait_for_disconnect(struct event_queue *q) @@ -642,4 +644,9 @@ bool usb_detect(void) return false; } +void usb_wait_for_disconnect(struct event_queue *q) +{ + (void*)q; +} + #endif /* USB_NONE or SIMULATOR */