forked from len0rd/rockbox
First step towards context sensitive and configurable menus, by Brent Coutts
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4370 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
5c09ed38c6
commit
10b92c44b3
17 changed files with 312 additions and 199 deletions
28
apps/action.h
Normal file
28
apps/action.h
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
/***************************************************************************
|
||||||
|
* __________ __ ___.
|
||||||
|
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||||
|
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||||
|
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||||
|
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||||
|
* \/ \/ \/ \/ \/
|
||||||
|
*
|
||||||
|
* Copyright (C) 2004 Brent Coutts
|
||||||
|
*
|
||||||
|
* All files in this archive are subject to the GNU General Public License.
|
||||||
|
* See the file COPYING in the source tree root for full license agreement.
|
||||||
|
*
|
||||||
|
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||||
|
* KIND, either express or implied.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
#ifndef __ACTION_H__
|
||||||
|
#define __ACTION_H__
|
||||||
|
|
||||||
|
#include "stdbool.h"
|
||||||
|
|
||||||
|
#define CONTEXT_WPS 1
|
||||||
|
#define CONTEXT_TREE 2
|
||||||
|
#define CONTEXT_RECORD 3
|
||||||
|
#define CONTEXT_MAINMENU 4
|
||||||
|
|
||||||
|
#endif
|
|
@ -98,7 +98,7 @@ bool bookmark_menu(void)
|
||||||
{ str(LANG_BOOKMARK_MENU_RECENT_BOOKMARKS), bookmark_mrb_load},
|
{ str(LANG_BOOKMARK_MENU_RECENT_BOOKMARKS), bookmark_mrb_load},
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof items / sizeof(struct menu_items) );
|
m=menu_init( items, sizeof items / sizeof(struct menu_items), NULL );
|
||||||
|
|
||||||
#ifdef HAVE_LCD_CHARCELLS
|
#ifdef HAVE_LCD_CHARCELLS
|
||||||
status_set_param(true);
|
status_set_param(true);
|
||||||
|
|
|
@ -1509,7 +1509,7 @@ bool debug_menu(void)
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof items / sizeof(struct menu_items) );
|
m=menu_init( items, sizeof items / sizeof(struct menu_items), NULL );
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
|
|
||||||
|
|
|
@ -254,6 +254,7 @@ static bool recording_settings(void)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_MAS3587F
|
#ifdef HAVE_MAS3587F
|
||||||
|
|
||||||
bool rec_menu(void)
|
bool rec_menu(void)
|
||||||
{
|
{
|
||||||
int m;
|
int m;
|
||||||
|
@ -265,7 +266,7 @@ bool rec_menu(void)
|
||||||
{ str(LANG_RECORDING_SETTINGS), recording_settings},
|
{ str(LANG_RECORDING_SETTINGS), recording_settings},
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof items / sizeof(struct menu_items) );
|
m=menu_init( items, sizeof items / sizeof(struct menu_items), NULL );
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
|
|
||||||
|
@ -290,7 +291,7 @@ bool info_menu(void)
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof items / sizeof(struct menu_items) );
|
m=menu_init( items, sizeof items / sizeof(struct menu_items), NULL );
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
|
|
||||||
|
@ -336,7 +337,7 @@ bool main_menu(void)
|
||||||
items[i].desc = str(LANG_INFO);
|
items[i].desc = str(LANG_INFO);
|
||||||
items[i++].function = info_menu;
|
items[i++].function = info_menu;
|
||||||
|
|
||||||
m=menu_init( items, i );
|
m=menu_init( items, i, NULL );
|
||||||
#ifdef HAVE_LCD_CHARCELLS
|
#ifdef HAVE_LCD_CHARCELLS
|
||||||
status_set_param(true);
|
status_set_param(true);
|
||||||
#endif
|
#endif
|
||||||
|
|
122
apps/menu.c
122
apps/menu.c
|
@ -17,6 +17,7 @@
|
||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
#include "hwcompat.h"
|
#include "hwcompat.h"
|
||||||
#include "lcd.h"
|
#include "lcd.h"
|
||||||
|
@ -42,6 +43,7 @@ struct menu {
|
||||||
int cursor;
|
int cursor;
|
||||||
struct menu_items* items;
|
struct menu_items* items;
|
||||||
int itemcount;
|
int itemcount;
|
||||||
|
int (*callback)(int, int);
|
||||||
};
|
};
|
||||||
|
|
||||||
#define MAX_MENUS 5
|
#define MAX_MENUS 5
|
||||||
|
@ -123,7 +125,7 @@ void put_cursorxy(int x, int y, bool on)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void menu_draw(int m)
|
void menu_draw(int m)
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
|
@ -216,7 +218,7 @@ static void put_cursor(int m, int target)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int menu_init(struct menu_items* mitems, int count)
|
int menu_init(struct menu_items* mitems, int count, int (*callback)(int, int))
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -234,6 +236,7 @@ int menu_init(struct menu_items* mitems, int count)
|
||||||
menus[i].itemcount = count;
|
menus[i].itemcount = count;
|
||||||
menus[i].top = 0;
|
menus[i].top = 0;
|
||||||
menus[i].cursor = 0;
|
menus[i].cursor = 0;
|
||||||
|
menus[i].callback = callback;
|
||||||
|
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
@ -246,6 +249,7 @@ void menu_exit(int m)
|
||||||
int menu_show(int m)
|
int menu_show(int m)
|
||||||
{
|
{
|
||||||
bool exit = false;
|
bool exit = false;
|
||||||
|
int key;
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
int fw, fh;
|
int fw, fh;
|
||||||
int menu_lines;
|
int menu_lines;
|
||||||
|
@ -260,7 +264,16 @@ int menu_show(int m)
|
||||||
menu_draw(m);
|
menu_draw(m);
|
||||||
|
|
||||||
while (!exit) {
|
while (!exit) {
|
||||||
switch( button_get_w_tmo(HZ/2) ) {
|
key = button_get_w_tmo(HZ/2);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* "short-circuit" the default keypresses by running the callback function
|
||||||
|
*/
|
||||||
|
|
||||||
|
if( menus[m].callback != NULL )
|
||||||
|
key = menus[m].callback(key, m); /* make sure there's no match in the switch */
|
||||||
|
|
||||||
|
switch( key ) {
|
||||||
#ifdef HAVE_RECORDER_KEYPAD
|
#ifdef HAVE_RECORDER_KEYPAD
|
||||||
case BUTTON_UP:
|
case BUTTON_UP:
|
||||||
case BUTTON_UP | BUTTON_REPEAT:
|
case BUTTON_UP | BUTTON_REPEAT:
|
||||||
|
@ -326,20 +339,6 @@ int menu_show(int m)
|
||||||
exit = true;
|
exit = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef HAVE_RECORDER_KEYPAD
|
|
||||||
case BUTTON_F2:
|
|
||||||
if (f2_screen())
|
|
||||||
return MENU_ATTACHED_USB;
|
|
||||||
menu_draw(m);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case BUTTON_F3:
|
|
||||||
if (f3_screen())
|
|
||||||
return MENU_ATTACHED_USB;
|
|
||||||
menu_draw(m);
|
|
||||||
break;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
case SYS_USB_CONNECTED:
|
case SYS_USB_CONNECTED:
|
||||||
usb_screen();
|
usb_screen();
|
||||||
#ifdef HAVE_LCD_CHARCELLS
|
#ifdef HAVE_LCD_CHARCELLS
|
||||||
|
@ -369,3 +368,92 @@ bool menu_run(int m)
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Property function - return the current cursor for "menu"
|
||||||
|
*/
|
||||||
|
|
||||||
|
int menu_cursor(int menu)
|
||||||
|
{
|
||||||
|
return menus[menu].cursor;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Property function - return the "menu" description at "position"
|
||||||
|
*/
|
||||||
|
|
||||||
|
char* menu_description(int menu, int position)
|
||||||
|
{
|
||||||
|
return menus[menu].items[position].desc;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Delete the element "position" from the menu items in "menu"
|
||||||
|
*/
|
||||||
|
|
||||||
|
void menu_delete(int menu, int position)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
/* copy the menu item from the one below */
|
||||||
|
for( i = position; i < (menus[menu].itemcount - 1); i++)
|
||||||
|
menus[menu].items[i] = menus[menu].items[i + 1];
|
||||||
|
|
||||||
|
/* reduce the count */
|
||||||
|
menus[menu].itemcount--;
|
||||||
|
|
||||||
|
/* adjust if this was the last menu item and the cursor was on it */
|
||||||
|
if( menus[menu].itemcount <= menus[menu].cursor)
|
||||||
|
menus[menu].cursor = menus[menu].itemcount - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Property function - return the "count" of menu items in "menu"
|
||||||
|
*/
|
||||||
|
|
||||||
|
int menu_count(int menu)
|
||||||
|
{
|
||||||
|
return menus[menu].itemcount;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Allows a menu item at the current cursor position in "menu" to be moved up the list
|
||||||
|
*/
|
||||||
|
|
||||||
|
bool menu_moveup(int menu)
|
||||||
|
{
|
||||||
|
struct menu_items swap;
|
||||||
|
|
||||||
|
/* can't be the first item ! */
|
||||||
|
if( menus[menu].cursor == 0)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
/* use a temporary variable to do the swap */
|
||||||
|
swap = menus[menu].items[menus[menu].cursor - 1];
|
||||||
|
menus[menu].items[menus[menu].cursor - 1] = menus[menu].items[menus[menu].cursor];
|
||||||
|
menus[menu].items[menus[menu].cursor] = swap;
|
||||||
|
menus[menu].cursor--;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Allows a menu item at the current cursor position in "menu" to be moved down the list
|
||||||
|
*/
|
||||||
|
|
||||||
|
bool menu_movedown(int menu)
|
||||||
|
{
|
||||||
|
struct menu_items swap;
|
||||||
|
|
||||||
|
/* can't be the last item ! */
|
||||||
|
if( menus[menu].cursor == menus[menu].itemcount - 1)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
/* use a temporary variable to do the swap */
|
||||||
|
swap = menus[menu].items[menus[menu].cursor + 1];
|
||||||
|
menus[menu].items[menus[menu].cursor + 1] = menus[menu].items[menus[menu].cursor];
|
||||||
|
menus[menu].items[menus[menu].cursor] = swap;
|
||||||
|
menus[menu].cursor++;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
|
@ -27,7 +27,7 @@ struct menu_items {
|
||||||
bool (*function) (void); /* return true if USB was connected */
|
bool (*function) (void); /* return true if USB was connected */
|
||||||
};
|
};
|
||||||
|
|
||||||
int menu_init(struct menu_items* items, int count);
|
int menu_init(struct menu_items* items, int count, int (*callback) (int keycode, int menu));
|
||||||
void menu_exit(int menu);
|
void menu_exit(int menu);
|
||||||
|
|
||||||
void put_cursorxy(int x, int y, bool on);
|
void put_cursorxy(int x, int y, bool on);
|
||||||
|
@ -38,6 +38,13 @@ int menu_show(int m);
|
||||||
#define MENU_SELECTED_EXIT -2
|
#define MENU_SELECTED_EXIT -2
|
||||||
|
|
||||||
bool menu_run(int menu);
|
bool menu_run(int menu);
|
||||||
|
int menu_cursor(int menu);
|
||||||
|
char* menu_description(int menu, int position);
|
||||||
|
void menu_delete(int menu, int position);
|
||||||
|
int menu_count(int menu);
|
||||||
|
bool menu_moveup(int menu);
|
||||||
|
bool menu_movedown(int menu);
|
||||||
|
void menu_draw(int menu);
|
||||||
|
|
||||||
#endif /* End __MENU_H__ */
|
#endif /* End __MENU_H__ */
|
||||||
|
|
||||||
|
|
|
@ -193,7 +193,7 @@ static bool playlist_options(void)
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
m = menu_init( menu, i );
|
m = menu_init( menu, i, NULL );
|
||||||
result = menu_show(m);
|
result = menu_show(m);
|
||||||
if (result >= 0 && result < pstart)
|
if (result >= 0 && result < pstart)
|
||||||
ret = menu[result].function();
|
ret = menu[result].function();
|
||||||
|
@ -580,7 +580,7 @@ int onplay(char* file, int attr)
|
||||||
i++;
|
i++;
|
||||||
|
|
||||||
/* DIY menu handling, since we want to exit after selection */
|
/* DIY menu handling, since we want to exit after selection */
|
||||||
m = menu_init( menu, i );
|
m = menu_init( menu, i, NULL );
|
||||||
result = menu_show(m);
|
result = menu_show(m);
|
||||||
if (result >= 0)
|
if (result >= 0)
|
||||||
menu[result].function();
|
menu[result].function();
|
||||||
|
|
|
@ -71,7 +71,7 @@ bool playlist_menu(void)
|
||||||
{ str(LANG_RECURSE_DIRECTORY), recurse_directory },
|
{ str(LANG_RECURSE_DIRECTORY), recurse_directory },
|
||||||
};
|
};
|
||||||
|
|
||||||
m = menu_init( items, sizeof items / sizeof(struct menu_items) );
|
m = menu_init( items, sizeof items / sizeof(struct menu_items), NULL );
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
return result;
|
return result;
|
||||||
|
|
|
@ -693,7 +693,7 @@ static int onplay_menu(int index)
|
||||||
menu[i].desc = str(LANG_FILE_OPTIONS);
|
menu[i].desc = str(LANG_FILE_OPTIONS);
|
||||||
i++;
|
i++;
|
||||||
|
|
||||||
m = menu_init(menu, i);
|
m = menu_init(menu, i, NULL);
|
||||||
result = menu_show(m);
|
result = menu_show(m);
|
||||||
if (result == MENU_ATTACHED_USB)
|
if (result == MENU_ATTACHED_USB)
|
||||||
ret = -1;
|
ret = -1;
|
||||||
|
@ -763,7 +763,7 @@ static bool viewer_menu(void)
|
||||||
{ str(LANG_SAVE_DYNAMIC_PLAYLIST), save_playlist },
|
{ str(LANG_SAVE_DYNAMIC_PLAYLIST), save_playlist },
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof(items) / sizeof(*items) );
|
m=menu_init( items, sizeof(items) / sizeof(*items), NULL );
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
|
|
||||||
|
|
|
@ -604,7 +604,7 @@ bool radio_preset_select(void)
|
||||||
if(num_presets)
|
if(num_presets)
|
||||||
{
|
{
|
||||||
/* DIY menu handling, since we want to exit after selection */
|
/* DIY menu handling, since we want to exit after selection */
|
||||||
m = menu_init( menu, num_presets );
|
m = menu_init( menu, num_presets, NULL );
|
||||||
result = menu_show(m);
|
result = menu_show(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
if (result == MENU_SELECTED_EXIT)
|
if (result == MENU_SELECTED_EXIT)
|
||||||
|
@ -676,7 +676,7 @@ bool radio_delete_preset(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* DIY menu handling, since we want to exit after selection */
|
/* DIY menu handling, since we want to exit after selection */
|
||||||
m = menu_init( menu, num_presets );
|
m = menu_init( menu, num_presets, NULL );
|
||||||
result = menu_show(m);
|
result = menu_show(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
if (result == MENU_SELECTED_EXIT)
|
if (result == MENU_SELECTED_EXIT)
|
||||||
|
@ -724,7 +724,7 @@ bool radio_menu(void)
|
||||||
bool result;
|
bool result;
|
||||||
|
|
||||||
m = menu_init( radio_menu_items,
|
m = menu_init( radio_menu_items,
|
||||||
sizeof radio_menu_items / sizeof(struct menu_items) );
|
sizeof radio_menu_items / sizeof(struct menu_items), NULL );
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
return result;
|
return result;
|
||||||
|
|
275
apps/screens.c
275
apps/screens.c
|
@ -37,6 +37,7 @@
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
#include "powermgmt.h"
|
#include "powermgmt.h"
|
||||||
#include "adc.h"
|
#include "adc.h"
|
||||||
|
#include "action.h"
|
||||||
|
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
#define BMPHEIGHT_usb_logo 32
|
#define BMPHEIGHT_usb_logo 32
|
||||||
|
@ -427,85 +428,128 @@ int on_screen(void)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool f2_screen(void)
|
bool quick_screen(int context, int button)
|
||||||
{
|
{
|
||||||
bool exit = false;
|
bool exit = false;
|
||||||
bool used = false;
|
bool used = false;
|
||||||
int w, h;
|
int w, h, key;
|
||||||
char buf[32];
|
char buf[32];
|
||||||
int oldrepeat = global_settings.repeat_mode;
|
int oldrepeat = global_settings.repeat_mode;
|
||||||
|
|
||||||
|
/* just to stop compiler warning */
|
||||||
|
context = context;
|
||||||
lcd_setfont(FONT_SYSFIXED);
|
lcd_setfont(FONT_SYSFIXED);
|
||||||
lcd_getstringsize("A",&w,&h);
|
|
||||||
|
if(button==BUTTON_F2)
|
||||||
|
lcd_getstringsize("A",&w,&h);
|
||||||
|
|
||||||
while (!exit) {
|
while (!exit) {
|
||||||
char* ptr=NULL;
|
char* ptr=NULL;
|
||||||
|
|
||||||
lcd_clear_display();
|
lcd_clear_display();
|
||||||
|
|
||||||
/* Shuffle mode */
|
switch(button)
|
||||||
lcd_putsxy(0, LCD_HEIGHT/2 - h*2, str(LANG_SHUFFLE));
|
{
|
||||||
lcd_putsxy(0, LCD_HEIGHT/2 - h, str(LANG_F2_MODE));
|
case BUTTON_F2:
|
||||||
lcd_putsxy(0, LCD_HEIGHT/2,
|
/* Shuffle mode */
|
||||||
global_settings.playlist_shuffle ?
|
lcd_putsxy(0, LCD_HEIGHT/2 - h*2, str(LANG_SHUFFLE));
|
||||||
str(LANG_ON) : str(LANG_OFF));
|
lcd_putsxy(0, LCD_HEIGHT/2 - h, str(LANG_F2_MODE));
|
||||||
|
lcd_putsxy(0, LCD_HEIGHT/2,
|
||||||
|
global_settings.playlist_shuffle ?
|
||||||
|
str(LANG_ON) : str(LANG_OFF));
|
||||||
|
|
||||||
|
/* Directory Filter */
|
||||||
|
switch ( global_settings.dirfilter ) {
|
||||||
|
case SHOW_ALL:
|
||||||
|
ptr = str(LANG_FILTER_ALL);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SHOW_SUPPORTED:
|
||||||
|
ptr = str(LANG_FILTER_SUPPORTED);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SHOW_MUSIC:
|
||||||
|
ptr = str(LANG_FILTER_MUSIC);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SHOW_PLAYLIST:
|
||||||
|
ptr = str(LANG_FILTER_PLAYLIST);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
snprintf(buf, sizeof buf, "%s:", str(LANG_FILTER));
|
||||||
|
lcd_getstringsize(buf,&w,&h);
|
||||||
|
lcd_putsxy((LCD_WIDTH-w)/2, LCD_HEIGHT - h*2, buf);
|
||||||
|
lcd_getstringsize(ptr,&w,&h);
|
||||||
|
lcd_putsxy((LCD_WIDTH-w)/2, LCD_HEIGHT - h, ptr);
|
||||||
|
|
||||||
|
/* Repeat Mode */
|
||||||
|
switch ( global_settings.repeat_mode ) {
|
||||||
|
case REPEAT_OFF:
|
||||||
|
ptr = str(LANG_OFF);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case REPEAT_ALL:
|
||||||
|
ptr = str(LANG_REPEAT_ALL);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case REPEAT_ONE:
|
||||||
|
ptr = str(LANG_REPEAT_ONE);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
lcd_getstringsize(str(LANG_REPEAT),&w,&h);
|
||||||
|
lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2 - h*2, str(LANG_REPEAT));
|
||||||
|
lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2 - h, str(LANG_F2_MODE));
|
||||||
|
lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2, ptr);
|
||||||
|
break;
|
||||||
|
case BUTTON_F3:
|
||||||
|
/* Scrollbar */
|
||||||
|
lcd_putsxy(0, LCD_HEIGHT/2 - h*2, str(LANG_F3_SCROLL));
|
||||||
|
lcd_putsxy(0, LCD_HEIGHT/2 - h, str(LANG_F3_BAR));
|
||||||
|
lcd_putsxy(0, LCD_HEIGHT/2,
|
||||||
|
global_settings.scrollbar ? str(LANG_ON) : str(LANG_OFF));
|
||||||
|
|
||||||
|
/* Status bar */
|
||||||
|
ptr = str(LANG_F3_STATUS);
|
||||||
|
lcd_getstringsize(ptr,&w,&h);
|
||||||
|
lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2 - h*2, ptr);
|
||||||
|
lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2 - h, str(LANG_F3_BAR));
|
||||||
|
lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2,
|
||||||
|
global_settings.statusbar ? str(LANG_ON) : str(LANG_OFF));
|
||||||
|
|
||||||
|
/* Flip */
|
||||||
|
ptr = str(LANG_FLIP_DISPLAY);
|
||||||
|
lcd_getstringsize(ptr,&w,&h);
|
||||||
|
lcd_putsxy((LCD_WIDTH-w)/2, LCD_HEIGHT - h*2, str(LANG_FLIP_DISPLAY));
|
||||||
|
ptr = global_settings.flip_display ?
|
||||||
|
str(LANG_SET_BOOL_YES) : str(LANG_SET_BOOL_NO);
|
||||||
|
lcd_getstringsize(ptr,&w,&h);
|
||||||
|
lcd_putsxy((LCD_WIDTH-w)/2, LCD_HEIGHT - h, ptr);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
lcd_bitmap(bitmap_icons_7x8[Icon_FastBackward],
|
lcd_bitmap(bitmap_icons_7x8[Icon_FastBackward],
|
||||||
LCD_WIDTH/2 - 16, LCD_HEIGHT/2 - 4, 7, 8, true);
|
LCD_WIDTH/2 - 16, LCD_HEIGHT/2 - 4, 7, 8, true);
|
||||||
|
|
||||||
/* Directory Filter */
|
|
||||||
switch ( global_settings.dirfilter ) {
|
|
||||||
case SHOW_ALL:
|
|
||||||
ptr = str(LANG_FILTER_ALL);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case SHOW_SUPPORTED:
|
|
||||||
ptr = str(LANG_FILTER_SUPPORTED);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case SHOW_MUSIC:
|
|
||||||
ptr = str(LANG_FILTER_MUSIC);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case SHOW_PLAYLIST:
|
|
||||||
ptr = str(LANG_FILTER_PLAYLIST);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
snprintf(buf, sizeof buf, "%s:", str(LANG_FILTER));
|
|
||||||
lcd_getstringsize(buf,&w,&h);
|
|
||||||
lcd_putsxy((LCD_WIDTH-w)/2, LCD_HEIGHT - h*2, buf);
|
|
||||||
lcd_getstringsize(ptr,&w,&h);
|
|
||||||
lcd_putsxy((LCD_WIDTH-w)/2, LCD_HEIGHT - h, ptr);
|
|
||||||
lcd_bitmap(bitmap_icons_7x8[Icon_DownArrow],
|
lcd_bitmap(bitmap_icons_7x8[Icon_DownArrow],
|
||||||
LCD_WIDTH/2 - 3, LCD_HEIGHT - h*3, 7, 8, true);
|
LCD_WIDTH/2 - 3, LCD_HEIGHT - h*3, 7, 8, true);
|
||||||
|
|
||||||
/* Repeat Mode */
|
|
||||||
switch ( global_settings.repeat_mode ) {
|
|
||||||
case REPEAT_OFF:
|
|
||||||
ptr = str(LANG_OFF);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case REPEAT_ALL:
|
|
||||||
ptr = str(LANG_REPEAT_ALL);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case REPEAT_ONE:
|
|
||||||
ptr = str(LANG_REPEAT_ONE);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
lcd_getstringsize(str(LANG_REPEAT),&w,&h);
|
|
||||||
lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2 - h*2, str(LANG_REPEAT));
|
|
||||||
lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2 - h, str(LANG_F2_MODE));
|
|
||||||
lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2, ptr);
|
|
||||||
lcd_bitmap(bitmap_icons_7x8[Icon_FastForward],
|
lcd_bitmap(bitmap_icons_7x8[Icon_FastForward],
|
||||||
LCD_WIDTH/2 + 8, LCD_HEIGHT/2 - 4, 7, 8, true);
|
LCD_WIDTH/2 + 8, LCD_HEIGHT/2 - 4, 7, 8, true);
|
||||||
|
|
||||||
lcd_update();
|
lcd_update();
|
||||||
|
key = button_get(true);
|
||||||
switch (button_get(true)) {
|
|
||||||
case BUTTON_LEFT:
|
/*
|
||||||
|
* This is a temporary kludge so that the F2 & F3 menus operate in exactly
|
||||||
|
* the same manner up until the full F2/F3 configurable menus are complete
|
||||||
|
*/
|
||||||
|
|
||||||
|
if( key == BUTTON_LEFT || key == BUTTON_RIGHT || key == BUTTON_DOWN || key == ( BUTTON_LEFT | BUTTON_REPEAT ) || key == ( BUTTON_RIGHT | BUTTON_REPEAT ) || key == ( BUTTON_DOWN | BUTTON_REPEAT ) )
|
||||||
|
key = button | key;
|
||||||
|
|
||||||
|
switch (key) {
|
||||||
case BUTTON_F2 | BUTTON_LEFT:
|
case BUTTON_F2 | BUTTON_LEFT:
|
||||||
|
case BUTTON_F2 | BUTTON_LEFT | BUTTON_REPEAT:
|
||||||
global_settings.playlist_shuffle =
|
global_settings.playlist_shuffle =
|
||||||
!global_settings.playlist_shuffle;
|
!global_settings.playlist_shuffle;
|
||||||
|
|
||||||
|
@ -519,110 +563,38 @@ bool f2_screen(void)
|
||||||
used = true;
|
used = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BUTTON_DOWN:
|
|
||||||
case BUTTON_F2 | BUTTON_DOWN:
|
case BUTTON_F2 | BUTTON_DOWN:
|
||||||
|
case BUTTON_F2 | BUTTON_DOWN | BUTTON_REPEAT:
|
||||||
global_settings.dirfilter++;
|
global_settings.dirfilter++;
|
||||||
if ( global_settings.dirfilter >= NUM_FILTER_MODES )
|
if ( global_settings.dirfilter >= NUM_FILTER_MODES )
|
||||||
global_settings.dirfilter = 0;
|
global_settings.dirfilter = 0;
|
||||||
used = true;
|
used = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BUTTON_RIGHT:
|
|
||||||
case BUTTON_F2 | BUTTON_RIGHT:
|
case BUTTON_F2 | BUTTON_RIGHT:
|
||||||
|
case BUTTON_F2 | BUTTON_RIGHT | BUTTON_REPEAT:
|
||||||
global_settings.repeat_mode++;
|
global_settings.repeat_mode++;
|
||||||
if ( global_settings.repeat_mode >= NUM_REPEAT_MODES )
|
if ( global_settings.repeat_mode >= NUM_REPEAT_MODES )
|
||||||
global_settings.repeat_mode = 0;
|
global_settings.repeat_mode = 0;
|
||||||
used = true;
|
used = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BUTTON_F2 | BUTTON_REL:
|
|
||||||
if ( used )
|
|
||||||
exit = true;
|
|
||||||
used = true;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case BUTTON_F2 | BUTTON_REPEAT:
|
|
||||||
used = true;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case BUTTON_OFF | BUTTON_REPEAT:
|
|
||||||
return false;
|
|
||||||
|
|
||||||
case SYS_USB_CONNECTED:
|
|
||||||
usb_screen();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
settings_save();
|
|
||||||
lcd_setfont(FONT_UI);
|
|
||||||
if ( oldrepeat != global_settings.repeat_mode )
|
|
||||||
mpeg_flush_and_reload_tracks();
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool f3_screen(void)
|
|
||||||
{
|
|
||||||
bool exit = false;
|
|
||||||
bool used = false;
|
|
||||||
|
|
||||||
lcd_setfont(FONT_SYSFIXED);
|
|
||||||
|
|
||||||
while (!exit) {
|
|
||||||
int w,h;
|
|
||||||
char* ptr;
|
|
||||||
|
|
||||||
lcd_clear_display();
|
|
||||||
|
|
||||||
/* Scrollbar */
|
|
||||||
lcd_putsxy(0, LCD_HEIGHT/2 - h*2, str(LANG_F3_SCROLL));
|
|
||||||
lcd_putsxy(0, LCD_HEIGHT/2 - h, str(LANG_F3_BAR));
|
|
||||||
lcd_putsxy(0, LCD_HEIGHT/2,
|
|
||||||
global_settings.scrollbar ? str(LANG_ON) : str(LANG_OFF));
|
|
||||||
lcd_bitmap(bitmap_icons_7x8[Icon_FastBackward],
|
|
||||||
LCD_WIDTH/2 - 16, LCD_HEIGHT/2 - 4, 7, 8, true);
|
|
||||||
|
|
||||||
/* Status bar */
|
|
||||||
ptr = str(LANG_F3_STATUS);
|
|
||||||
lcd_getstringsize(ptr,&w,&h);
|
|
||||||
lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2 - h*2, ptr);
|
|
||||||
lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2 - h, str(LANG_F3_BAR));
|
|
||||||
lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2,
|
|
||||||
global_settings.statusbar ? str(LANG_ON) : str(LANG_OFF));
|
|
||||||
lcd_bitmap(bitmap_icons_7x8[Icon_FastForward],
|
|
||||||
LCD_WIDTH/2 + 8, LCD_HEIGHT/2 - 4, 7, 8, true);
|
|
||||||
|
|
||||||
/* Flip */
|
|
||||||
ptr = str(LANG_FLIP_DISPLAY);
|
|
||||||
lcd_getstringsize(ptr,&w,&h);
|
|
||||||
lcd_putsxy((LCD_WIDTH-w)/2, LCD_HEIGHT - h*2, str(LANG_FLIP_DISPLAY));
|
|
||||||
ptr = global_settings.flip_display ?
|
|
||||||
str(LANG_SET_BOOL_YES) : str(LANG_SET_BOOL_NO);
|
|
||||||
lcd_getstringsize(ptr,&w,&h);
|
|
||||||
lcd_putsxy((LCD_WIDTH-w)/2, LCD_HEIGHT - h, ptr);
|
|
||||||
lcd_bitmap(bitmap_icons_7x8[Icon_DownArrow],
|
|
||||||
LCD_WIDTH/2 - 3, LCD_HEIGHT - h*3, 7, 8, true);
|
|
||||||
|
|
||||||
lcd_update();
|
|
||||||
|
|
||||||
switch (button_get(true)) {
|
|
||||||
case BUTTON_LEFT:
|
|
||||||
case BUTTON_F3 | BUTTON_LEFT:
|
case BUTTON_F3 | BUTTON_LEFT:
|
||||||
|
case BUTTON_F3 | BUTTON_LEFT | BUTTON_REPEAT:
|
||||||
global_settings.scrollbar = !global_settings.scrollbar;
|
global_settings.scrollbar = !global_settings.scrollbar;
|
||||||
used = true;
|
used = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BUTTON_RIGHT:
|
|
||||||
case BUTTON_F3 | BUTTON_RIGHT:
|
case BUTTON_F3 | BUTTON_RIGHT:
|
||||||
|
case BUTTON_F3 | BUTTON_RIGHT | BUTTON_REPEAT:
|
||||||
global_settings.statusbar = !global_settings.statusbar;
|
global_settings.statusbar = !global_settings.statusbar;
|
||||||
used = true;
|
used = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BUTTON_DOWN:
|
|
||||||
case BUTTON_F3 | BUTTON_DOWN:
|
case BUTTON_F3 | BUTTON_DOWN:
|
||||||
case BUTTON_UP: /* allow "up" as well, more tolerant if tilted */
|
case BUTTON_F3 | BUTTON_DOWN | BUTTON_REPEAT:
|
||||||
case BUTTON_F3 | BUTTON_UP:
|
case BUTTON_F3 | BUTTON_UP:
|
||||||
|
case BUTTON_F3 | BUTTON_UP | BUTTON_REPEAT:
|
||||||
global_settings.flip_display = !global_settings.flip_display;
|
global_settings.flip_display = !global_settings.flip_display;
|
||||||
button_set_flip(global_settings.flip_display);
|
button_set_flip(global_settings.flip_display);
|
||||||
lcd_set_flip(global_settings.flip_display);
|
lcd_set_flip(global_settings.flip_display);
|
||||||
|
@ -630,13 +602,13 @@ bool f3_screen(void)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BUTTON_F3 | BUTTON_REL:
|
case BUTTON_F3 | BUTTON_REL:
|
||||||
if ( used )
|
case BUTTON_F2 | BUTTON_REL:
|
||||||
|
|
||||||
|
if( used )
|
||||||
exit = true;
|
exit = true;
|
||||||
used = true;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case BUTTON_F3 | BUTTON_REPEAT:
|
|
||||||
used = true;
|
used = true;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BUTTON_OFF | BUTTON_REPEAT:
|
case BUTTON_OFF | BUTTON_REPEAT:
|
||||||
|
@ -649,10 +621,25 @@ bool f3_screen(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
settings_save();
|
settings_save();
|
||||||
if (global_settings.statusbar)
|
|
||||||
lcd_setmargins(0, STATUSBAR_HEIGHT);
|
switch( button )
|
||||||
else
|
{
|
||||||
lcd_setmargins(0, 0);
|
case BUTTON_F2:
|
||||||
|
|
||||||
|
if ( oldrepeat != global_settings.repeat_mode )
|
||||||
|
mpeg_flush_and_reload_tracks();
|
||||||
|
|
||||||
|
break;
|
||||||
|
case BUTTON_F3:
|
||||||
|
|
||||||
|
if (global_settings.statusbar)
|
||||||
|
lcd_setmargins(0, STATUSBAR_HEIGHT);
|
||||||
|
else
|
||||||
|
lcd_setmargins(0, 0);
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
lcd_setfont(FONT_UI);
|
lcd_setfont(FONT_UI);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -26,8 +26,7 @@ void charging_splash(void);
|
||||||
|
|
||||||
#ifdef HAVE_RECORDER_KEYPAD
|
#ifdef HAVE_RECORDER_KEYPAD
|
||||||
int on_screen(void);
|
int on_screen(void);
|
||||||
bool f2_screen(void);
|
bool quick_screen(const int, const int);
|
||||||
bool f3_screen(void);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void splash(int ticks, /* how long */
|
void splash(int ticks, /* how long */
|
||||||
|
|
|
@ -380,7 +380,7 @@ static bool peak_meter_menu(void)
|
||||||
{ str(LANG_PM_MAX) , peak_meter_max },
|
{ str(LANG_PM_MAX) , peak_meter_max },
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof(items) / sizeof(*items) );
|
m=menu_init( items, sizeof(items) / sizeof(*items), NULL );
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
return result;
|
return result;
|
||||||
|
@ -795,7 +795,7 @@ static bool ff_rewind_settings_menu(void)
|
||||||
{ str(LANG_FFRW_ACCEL), ff_rewind_accel },
|
{ str(LANG_FFRW_ACCEL), ff_rewind_accel },
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof(items) / sizeof(*items) );
|
m=menu_init( items, sizeof(items) / sizeof(*items), NULL );
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
|
|
||||||
|
@ -819,7 +819,7 @@ static bool playback_settings_menu(void)
|
||||||
|
|
||||||
bool old_shuffle = global_settings.playlist_shuffle;
|
bool old_shuffle = global_settings.playlist_shuffle;
|
||||||
|
|
||||||
m=menu_init( items, sizeof(items) / sizeof(*items) );
|
m=menu_init( items, sizeof(items) / sizeof(*items), NULL );
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
|
|
||||||
|
@ -848,7 +848,7 @@ static bool bookmark_settings_menu(void)
|
||||||
{ str(LANG_BOOKMARK_SETTINGS_MAINTAIN_RECENT_BOOKMARKS), useMRB},
|
{ str(LANG_BOOKMARK_SETTINGS_MAINTAIN_RECENT_BOOKMARKS), useMRB},
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof items / sizeof(struct menu_items) );
|
m=menu_init( items, sizeof items / sizeof(struct menu_items), NULL );
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
|
|
||||||
|
@ -916,7 +916,7 @@ static bool fileview_settings_menu(void)
|
||||||
{ str(LANG_SHOW_ICONS), show_icons },
|
{ str(LANG_SHOW_ICONS), show_icons },
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof(items) / sizeof(*items) );
|
m=menu_init( items, sizeof(items) / sizeof(*items), NULL );
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
return result;
|
return result;
|
||||||
|
@ -941,7 +941,7 @@ static bool scroll_settings_menu(void)
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof(items) / sizeof(*items) );
|
m=menu_init( items, sizeof(items) / sizeof(*items), NULL );
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
return result;
|
return result;
|
||||||
|
@ -964,7 +964,7 @@ static bool lcd_settings_menu(void)
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof(items) / sizeof(*items) );
|
m=menu_init( items, sizeof(items) / sizeof(*items), NULL );
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
return result;
|
return result;
|
||||||
|
@ -983,7 +983,7 @@ static bool bars_settings_menu(void)
|
||||||
{ str(LANG_BATTERY_DISPLAY), battery_type },
|
{ str(LANG_BATTERY_DISPLAY), battery_type },
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof(items) / sizeof(*items) );
|
m=menu_init( items, sizeof(items) / sizeof(*items), NULL );
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
return result;
|
return result;
|
||||||
|
@ -1009,7 +1009,7 @@ static bool display_settings_menu(void)
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof(items) / sizeof(*items) );
|
m=menu_init( items, sizeof(items) / sizeof(*items), NULL );
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
return result;
|
return result;
|
||||||
|
@ -1036,7 +1036,7 @@ static bool battery_settings_menu(void)
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof(items) / sizeof(*items) );
|
m=menu_init( items, sizeof(items) / sizeof(*items), NULL );
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
return result;
|
return result;
|
||||||
|
@ -1054,7 +1054,7 @@ static bool disk_settings_menu(void)
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof(items) / sizeof(*items) );
|
m=menu_init( items, sizeof(items) / sizeof(*items), NULL );
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
return result;
|
return result;
|
||||||
|
@ -1071,7 +1071,7 @@ static bool time_settings_menu(void)
|
||||||
{ str(LANG_TIMEFORMAT), timeformat_set },
|
{ str(LANG_TIMEFORMAT), timeformat_set },
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof(items) / sizeof(*items) );
|
m=menu_init( items, sizeof(items) / sizeof(*items), NULL );
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
return result;
|
return result;
|
||||||
|
@ -1090,7 +1090,7 @@ static bool manage_settings_menu(void)
|
||||||
{ str(LANG_SAVE_SETTINGS), settings_save_config },
|
{ str(LANG_SAVE_SETTINGS), settings_save_config },
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof(items) / sizeof(*items) );
|
m=menu_init( items, sizeof(items) / sizeof(*items), NULL );
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
return result;
|
return result;
|
||||||
|
@ -1106,7 +1106,7 @@ static bool limits_settings_menu(void)
|
||||||
{ str(LANG_MAX_FILES_IN_PLAYLIST), max_files_in_playlist },
|
{ str(LANG_MAX_FILES_IN_PLAYLIST), max_files_in_playlist },
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof(items) / sizeof(*items) );
|
m=menu_init( items, sizeof(items) / sizeof(*items), NULL );
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
return result;
|
return result;
|
||||||
|
@ -1137,7 +1137,7 @@ static bool system_settings_menu(void)
|
||||||
{ str(LANG_MANAGE_MENU), manage_settings_menu },
|
{ str(LANG_MANAGE_MENU), manage_settings_menu },
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof(items) / sizeof(*items) );
|
m=menu_init( items, sizeof(items) / sizeof(*items), NULL );
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
return result;
|
return result;
|
||||||
|
@ -1157,7 +1157,7 @@ bool settings_menu(void)
|
||||||
{ str(LANG_LANGUAGE), language_browse },
|
{ str(LANG_LANGUAGE), language_browse },
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof(items) / sizeof(*items) );
|
m=menu_init( items, sizeof(items) / sizeof(*items), NULL );
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
return result;
|
return result;
|
||||||
|
|
|
@ -307,7 +307,7 @@ bool sound_menu(void)
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof items / sizeof(struct menu_items) );
|
m=menu_init( items, sizeof items / sizeof(struct menu_items), NULL );
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
|
|
||||||
|
@ -341,7 +341,7 @@ bool recording_menu(bool no_source)
|
||||||
menu[i].desc = str(LANG_RECORD_DIRECTORY);
|
menu[i].desc = str(LANG_RECORD_DIRECTORY);
|
||||||
menu[i++].function = recdirectory;
|
menu[i++].function = recdirectory;
|
||||||
|
|
||||||
m=menu_init( menu, i );
|
m=menu_init( menu, i, NULL );
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
|
|
||||||
|
|
|
@ -54,6 +54,7 @@
|
||||||
#include "buffer.h"
|
#include "buffer.h"
|
||||||
#include "plugin.h"
|
#include "plugin.h"
|
||||||
#include "power.h"
|
#include "power.h"
|
||||||
|
#include "action.h"
|
||||||
|
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
#include "widgets.h"
|
#include "widgets.h"
|
||||||
|
@ -1277,7 +1278,7 @@ static bool dirbrowse(char *root, int *dirfilter)
|
||||||
case BUTTON_F2:
|
case BUTTON_F2:
|
||||||
if (*dirfilter < NUM_FILTER_MODES)
|
if (*dirfilter < NUM_FILTER_MODES)
|
||||||
{
|
{
|
||||||
if (f2_screen())
|
if (quick_screen(CONTEXT_TREE, BUTTON_F2))
|
||||||
reload_root = true;
|
reload_root = true;
|
||||||
restore = true;
|
restore = true;
|
||||||
break;
|
break;
|
||||||
|
@ -1286,7 +1287,7 @@ static bool dirbrowse(char *root, int *dirfilter)
|
||||||
case BUTTON_F3:
|
case BUTTON_F3:
|
||||||
if (*dirfilter < NUM_FILTER_MODES)
|
if (*dirfilter < NUM_FILTER_MODES)
|
||||||
{
|
{
|
||||||
if (f3_screen())
|
if (quick_screen(CONTEXT_TREE, BUTTON_F3))
|
||||||
reload_root = true;
|
reload_root = true;
|
||||||
|
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
|
|
|
@ -43,6 +43,7 @@
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
#include "icons.h"
|
#include "icons.h"
|
||||||
#include "peakmeter.h"
|
#include "peakmeter.h"
|
||||||
|
#include "action.h"
|
||||||
#endif
|
#endif
|
||||||
#include "lang.h"
|
#include "lang.h"
|
||||||
#include "bookmark.h"
|
#include "bookmark.h"
|
||||||
|
@ -926,14 +927,14 @@ int wps_show(void)
|
||||||
#ifdef HAVE_RECORDER_KEYPAD
|
#ifdef HAVE_RECORDER_KEYPAD
|
||||||
/* play settings */
|
/* play settings */
|
||||||
case BUTTON_F2:
|
case BUTTON_F2:
|
||||||
if (f2_screen())
|
if (quick_screen(CONTEXT_WPS, BUTTON_F2))
|
||||||
return SYS_USB_CONNECTED;
|
return SYS_USB_CONNECTED;
|
||||||
restore = true;
|
restore = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* screen settings */
|
/* screen settings */
|
||||||
case BUTTON_F3:
|
case BUTTON_F3:
|
||||||
if (f3_screen())
|
if (quick_screen(CONTEXT_WPS, BUTTON_F2))
|
||||||
return SYS_USB_CONNECTED;
|
return SYS_USB_CONNECTED;
|
||||||
restore = true;
|
restore = true;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -83,3 +83,4 @@ Lee Pilgrim
|
||||||
Zakk Roberts
|
Zakk Roberts
|
||||||
Francois Boucher
|
Francois Boucher
|
||||||
Matthias Wientapper
|
Matthias Wientapper
|
||||||
|
Brent Coutts
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue