diff --git a/apps/screens.c b/apps/screens.c index 81366141bb..6849384cda 100644 --- a/apps/screens.c +++ b/apps/screens.c @@ -513,7 +513,9 @@ int pitch_screen(void) else return 0; } +#endif +#if (CONFIG_KEYPAD == RECORDER_PAD) || (CONFIG_KEYPAD == IRIVER_H100_PAD) bool quick_screen(int context, int button) { bool exit = false; @@ -535,7 +537,12 @@ bool quick_screen(int context, int button) switch(button) { - case BUTTON_F2: +#if CONFIG_KEYPAD == RECORDER_PAD + case SCREENS_QUICK: +#endif +#if CONFIG_KEYPAD == IRIVER_H100_PAD + case SCREENS_QUICK | BUTTON_REPEAT: +#endif /* Shuffle mode */ lcd_putsxy(0, LCD_HEIGHT/2 - h*2, str(LANG_SHUFFLE)); lcd_putsxy(0, LCD_HEIGHT/2 - h, str(LANG_F2_MODE)); @@ -596,6 +603,7 @@ bool quick_screen(int context, int button) lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2 - h, str(LANG_F2_MODE)); lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2, ptr); break; +#ifdef BUTTON_F3 case BUTTON_F3: /* Scrollbar */ lcd_putsxy(0, LCD_HEIGHT/2 - h*2, str(LANG_F3_SCROLL)); @@ -620,6 +628,7 @@ bool quick_screen(int context, int button) lcd_getstringsize(ptr,&w,&h); lcd_putsxy((LCD_WIDTH-w)/2, LCD_HEIGHT - h, ptr); break; +#endif } lcd_bitmap(bitmap_icons_7x8[Icon_FastBackward], @@ -641,8 +650,8 @@ bool quick_screen(int context, int button) key = button | key; switch (key) { - case BUTTON_F2 | BUTTON_LEFT: - case BUTTON_F2 | BUTTON_LEFT | BUTTON_REPEAT: + case SCREENS_QUICK | BUTTON_LEFT: + case SCREENS_QUICK | BUTTON_LEFT | BUTTON_REPEAT: global_settings.playlist_shuffle = !global_settings.playlist_shuffle; @@ -656,22 +665,23 @@ bool quick_screen(int context, int button) used = true; break; - case BUTTON_F2 | BUTTON_DOWN: - case BUTTON_F2 | BUTTON_DOWN | BUTTON_REPEAT: + case SCREENS_QUICK | BUTTON_DOWN: + case SCREENS_QUICK | BUTTON_DOWN | BUTTON_REPEAT: global_settings.dirfilter++; if ( global_settings.dirfilter >= NUM_FILTER_MODES ) global_settings.dirfilter = 0; used = true; break; - case BUTTON_F2 | BUTTON_RIGHT: - case BUTTON_F2 | BUTTON_RIGHT | BUTTON_REPEAT: + case SCREENS_QUICK | BUTTON_RIGHT: + case SCREENS_QUICK | BUTTON_RIGHT | BUTTON_REPEAT: global_settings.repeat_mode++; if ( global_settings.repeat_mode >= NUM_REPEAT_MODES ) global_settings.repeat_mode = 0; used = true; break; +#ifdef BUTTON_F3 case BUTTON_F3 | BUTTON_LEFT: case BUTTON_F3 | BUTTON_LEFT | BUTTON_REPEAT: global_settings.scrollbar = !global_settings.scrollbar; @@ -679,15 +689,15 @@ bool quick_screen(int context, int button) break; case BUTTON_F3 | BUTTON_RIGHT: - case BUTTON_F3 | BUTTON_RIGHT | BUTTON_REPEAT: +// case BUTTON_F3 | BUTTON_RIGHT | BUTTON_REPEAT: global_settings.statusbar = !global_settings.statusbar; used = true; break; case BUTTON_F3 | BUTTON_DOWN: - case BUTTON_F3 | BUTTON_DOWN | BUTTON_REPEAT: +// case BUTTON_F3 | BUTTON_DOWN | BUTTON_REPEAT: case BUTTON_F3 | BUTTON_UP: - case BUTTON_F3 | BUTTON_UP | BUTTON_REPEAT: +// case BUTTON_F3 | BUTTON_UP | BUTTON_REPEAT: global_settings.flip_display = !global_settings.flip_display; button_set_flip(global_settings.flip_display); lcd_set_flip(global_settings.flip_display); @@ -695,7 +705,8 @@ bool quick_screen(int context, int button) break; case BUTTON_F3 | BUTTON_REL: - case BUTTON_F2 | BUTTON_REL: +#endif + case SCREENS_QUICK | BUTTON_REL: if( used ) exit = true; @@ -719,12 +730,13 @@ bool quick_screen(int context, int button) switch( button ) { - case BUTTON_F2: + case SCREENS_QUICK: if ( oldrepeat != global_settings.repeat_mode ) audio_flush_and_reload_tracks(); break; +#ifdef BUTTON_F3 case BUTTON_F3: if (global_settings.statusbar) @@ -733,6 +745,7 @@ bool quick_screen(int context, int button) lcd_setmargins(0, 0); break; +#endif } lcd_setfont(FONT_UI); diff --git a/apps/screens.h b/apps/screens.h index 8940bb590c..88eb3bdfec 100644 --- a/apps/screens.h +++ b/apps/screens.h @@ -33,6 +33,13 @@ int mmc_remove_request(void); #if CONFIG_KEYPAD == RECORDER_PAD int pitch_screen(void); bool quick_screen(const int, const int); +#define SCREENS_QUICK BUTTON_F2 +#endif + +#if CONFIG_KEYPAD == IRIVER_H100_PAD +bool quick_screen(const int, const int); +#define SCREENS_QUICK BUTTON_ON + /* Long press already detected so not needed here */ #endif void splash(int ticks, /* how long */ diff --git a/apps/tree.c b/apps/tree.c index e6b79889c6..be4edf7065 100644 --- a/apps/tree.c +++ b/apps/tree.c @@ -1066,12 +1066,12 @@ static bool dirbrowse(void) } break; -#ifdef BUTTON_F2 - case BUTTON_F2: +#ifdef TREE_QUICK + case TREE_QUICK: /* don't enter f2 from plugin browser */ if (*tc.dirfilter < NUM_FILTER_MODES) { - if (quick_screen(curr_context, BUTTON_F2)) + if (quick_screen(curr_context, TREE_QUICK)) reload_dir = true; restore = true; @@ -1079,6 +1079,9 @@ static bool dirbrowse(void) break; } +#endif + +#ifdef BUTTON_F3 case BUTTON_F3: /* don't enter f3 from plugin browser */ if (*tc.dirfilter < NUM_FILTER_MODES) diff --git a/apps/tree.h b/apps/tree.h index cf578fd0bb..2c973cc358 100644 --- a/apps/tree.h +++ b/apps/tree.h @@ -39,6 +39,7 @@ #define TREE_CONTEXT (BUTTON_SELECT | BUTTON_REPEAT) #define TREE_CONTEXT2 (BUTTON_ON | BUTTON_SELECT) #define TREE_POWER_BTN BUTTON_ON +#define TREE_QUICK (BUTTON_ON | BUTTON_REPEAT) #define TREE_RC_NEXT BUTTON_RC_FF #define TREE_RC_PREV BUTTON_RC_REW @@ -66,6 +67,7 @@ #define TREE_CONTEXT (BUTTON_PLAY | BUTTON_REPEAT) #define TREE_CONTEXT2 (BUTTON_ON | BUTTON_PLAY) #define TREE_POWER_BTN BUTTON_ON +#define TREE_QUICK BUTTON_F2 #define TREE_RC_NEXT BUTTON_RC_RIGHT #define TREE_RC_PREV BUTTON_RC_LEFT diff --git a/apps/wps.c b/apps/wps.c index a685d58ba0..f05109872d 100644 --- a/apps/wps.c +++ b/apps/wps.c @@ -655,27 +655,32 @@ long wps_show(void) break; #endif -#if CONFIG_KEYPAD == RECORDER_PAD +#if (CONFIG_KEYPAD == RECORDER_PAD) || (CONFIG_KEYPAD == IRIVER_H100_PAD) /* play settings */ - case BUTTON_F2: - if (quick_screen(CONTEXT_WPS, BUTTON_F2)) + case WPS_QUICK: + if (quick_screen(CONTEXT_WPS, WPS_QUICK)) return SYS_USB_CONNECTED; restore = true; + lastbutton = 0; break; /* screen settings */ +#ifdef BUTTON_F3 case BUTTON_F3: if (quick_screen(CONTEXT_WPS, BUTTON_F3)) return SYS_USB_CONNECTED; restore = true; break; +#endif /* pitch screen */ +#if CONFIG_KEYPAD == RECORDER_PAD case BUTTON_ON | BUTTON_REPEAT: if (2 == pitch_screen()) return SYS_USB_CONNECTED; restore = true; break; +#endif #endif /* stop and exit wps */ diff --git a/apps/wps.h b/apps/wps.h index 4f869794b2..94a6b04859 100644 --- a/apps/wps.h +++ b/apps/wps.h @@ -31,7 +31,8 @@ #define WPS_REW (BUTTON_LEFT | BUTTON_REPEAT) #define WPS_INCVOL BUTTON_UP #define WPS_DECVOL BUTTON_DOWN -#define WPS_PAUSE BUTTON_ON +#define WPS_PAUSE (BUTTON_ON | BUTTON_REL) +#define WPS_PAUSE_PRE BUTTON_ON #define WPS_MENU (BUTTON_MODE | BUTTON_REL) #define WPS_MENU_PRE BUTTON_MODE #define WPS_BROWSE (BUTTON_SELECT | BUTTON_REL) @@ -39,6 +40,7 @@ #define WPS_EXIT BUTTON_OFF #define WPS_ID3 (BUTTON_MODE | BUTTON_ON) #define WPS_CONTEXT (BUTTON_SELECT | BUTTON_REPEAT) +#define WPS_QUICK (BUTTON_ON | BUTTON_REPEAT) #define WPS_RC_NEXT BUTTON_RC_FF #define WPS_RC_PREV BUTTON_RC_REW @@ -70,6 +72,7 @@ #define WPS_KEYLOCK (BUTTON_F1 | BUTTON_DOWN) #define WPS_ID3 (BUTTON_F1 | BUTTON_ON) #define WPS_CONTEXT (BUTTON_PLAY | BUTTON_REPEAT) +#define WPS_QUICK BUTTON_F2 #define WPS_RC_NEXT BUTTON_RC_RIGHT #define WPS_RC_PREV BUTTON_RC_LEFT diff --git a/firmware/export/button.h b/firmware/export/button.h index 14cd195d3c..ddacb5a49d 100644 --- a/firmware/export/button.h +++ b/firmware/export/button.h @@ -67,6 +67,8 @@ bool remote_button_hold(void); #define BUTTON_OFF 0x0002 #define BUTTON_UP 0x0010 #define BUTTON_DOWN 0x0020 +#define BUTTON_QUICK BUTTON_ON +#define BUTTON_QUICK_LONG (BUTTON_ON | BUTTON_REPEAT) #define BUTTON_RC_ON (BUTTON_REMOTE | 0x00010000) #define BUTTON_RC_STOP (BUTTON_REMOTE | 0x00020000)