forked from len0rd/rockbox
Quick menu for iRiver: A long press on the PLAY key in the browser or the WPS will take you into the quick menu screen where certain common settings can be adjusted. Works just the same as F2 menu on Archos.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6880 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
59df31244a
commit
37c3d8b610
7 changed files with 54 additions and 19 deletions
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
11
apps/wps.c
11
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 */
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue