mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-12-09 21:25:19 -05:00
First shot at a nice little button bar at the bottom of the recorder LCD. Enable Button Bar in the Display settings. Only the dir browser uses it at the moment.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4391 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
ce0878bd40
commit
77936e6ec5
16 changed files with 319 additions and 165 deletions
|
|
@ -92,13 +92,14 @@ bool bookmark_menu(void)
|
||||||
int m;
|
int m;
|
||||||
bool result;
|
bool result;
|
||||||
|
|
||||||
struct menu_items items[] = {
|
struct menu_item items[] = {
|
||||||
{ STR(LANG_BOOKMARK_MENU_CREATE), bookmark_create_menu},
|
{ STR(LANG_BOOKMARK_MENU_CREATE), bookmark_create_menu},
|
||||||
{ STR(LANG_BOOKMARK_MENU_LIST), bookmark_load_menu},
|
{ STR(LANG_BOOKMARK_MENU_LIST), bookmark_load_menu},
|
||||||
{ 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), NULL );
|
m=menu_init( items, sizeof items / sizeof(struct menu_item), NULL,
|
||||||
|
NULL, NULL, NULL);
|
||||||
|
|
||||||
#ifdef HAVE_LCD_CHARCELLS
|
#ifdef HAVE_LCD_CHARCELLS
|
||||||
status_set_param(true);
|
status_set_param(true);
|
||||||
|
|
|
||||||
|
|
@ -1475,7 +1475,7 @@ bool debug_menu(void)
|
||||||
int m;
|
int m;
|
||||||
bool result;
|
bool result;
|
||||||
|
|
||||||
struct menu_items items[] = {
|
struct menu_item items[] = {
|
||||||
{ "Dump ROM contents", -1, dbg_save_roms },
|
{ "Dump ROM contents", -1, dbg_save_roms },
|
||||||
{ "View I/O ports", -1, dbg_ports },
|
{ "View I/O ports", -1, dbg_ports },
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
|
|
@ -1509,7 +1509,8 @@ bool debug_menu(void)
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof items / sizeof(struct menu_items), NULL );
|
m=menu_init( items, sizeof items / sizeof(struct menu_item), NULL,
|
||||||
|
NULL, NULL, NULL);
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1701,3 +1701,23 @@ id: LANG_FILE_OPTIONS
|
||||||
desc: in playlist viewer on+play menu
|
desc: in playlist viewer on+play menu
|
||||||
eng: "File Options"
|
eng: "File Options"
|
||||||
new:
|
new:
|
||||||
|
|
||||||
|
id: LANG_BUTTON_BAR
|
||||||
|
desc: in settings menu
|
||||||
|
eng: "Button bar"
|
||||||
|
new:
|
||||||
|
|
||||||
|
id: LANG_DIRBROWSE_F1
|
||||||
|
desc: in dir browser, F1 button bar text
|
||||||
|
eng: "Menu"
|
||||||
|
new:
|
||||||
|
|
||||||
|
id: LANG_DIRBROWSE_F2
|
||||||
|
desc: in dir browser, F2 button bar text
|
||||||
|
eng: "Option"
|
||||||
|
new:
|
||||||
|
|
||||||
|
id: LANG_DIRBROWSE_F3
|
||||||
|
desc: in dir browser, F3 button bar text
|
||||||
|
eng: "LCD"
|
||||||
|
new:
|
||||||
|
|
|
||||||
|
|
@ -261,12 +261,13 @@ bool rec_menu(void)
|
||||||
bool result;
|
bool result;
|
||||||
|
|
||||||
/* recording menu */
|
/* recording menu */
|
||||||
struct menu_items items[] = {
|
struct menu_item items[] = {
|
||||||
{ STR(LANG_RECORDING_MENU), recording_screen },
|
{ STR(LANG_RECORDING_MENU), recording_screen },
|
||||||
{ STR(LANG_RECORDING_SETTINGS), recording_settings},
|
{ STR(LANG_RECORDING_SETTINGS), recording_settings},
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof items / sizeof(struct menu_items), NULL );
|
m=menu_init( items, sizeof(items) / sizeof(*items), NULL,
|
||||||
|
NULL, NULL, NULL);
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
|
|
||||||
|
|
@ -280,7 +281,7 @@ bool info_menu(void)
|
||||||
bool result;
|
bool result;
|
||||||
|
|
||||||
/* info menu */
|
/* info menu */
|
||||||
struct menu_items items[] = {
|
struct menu_item items[] = {
|
||||||
{ STR(LANG_MENU_SHOW_ID3_INFO), browse_id3 },
|
{ STR(LANG_MENU_SHOW_ID3_INFO), browse_id3 },
|
||||||
{ STR(LANG_INFO_MENU), show_info },
|
{ STR(LANG_INFO_MENU), show_info },
|
||||||
{ STR(LANG_VERSION), show_credits },
|
{ STR(LANG_VERSION), show_credits },
|
||||||
|
|
@ -291,7 +292,8 @@ bool info_menu(void)
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof items / sizeof(struct menu_items), NULL );
|
m=menu_init( items, sizeof(items) / sizeof(*items), NULL,
|
||||||
|
NULL, NULL, NULL);
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
|
|
||||||
|
|
@ -305,7 +307,7 @@ bool main_menu(void)
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
/* main menu */
|
/* main menu */
|
||||||
struct menu_items items[8];
|
struct menu_item items[8];
|
||||||
|
|
||||||
items[i].desc = str(LANG_BOOKMARK_MENU);
|
items[i].desc = str(LANG_BOOKMARK_MENU);
|
||||||
items[i].voice_id = LANG_BOOKMARK_MENU;
|
items[i].voice_id = LANG_BOOKMARK_MENU;
|
||||||
|
|
@ -345,7 +347,7 @@ bool main_menu(void)
|
||||||
items[i].voice_id = LANG_INFO;
|
items[i].voice_id = LANG_INFO;
|
||||||
items[i++].function = info_menu;
|
items[i++].function = info_menu;
|
||||||
|
|
||||||
m=menu_init( items, i, NULL );
|
m=menu_init( items, i, NULL, NULL, NULL, NULL );
|
||||||
#ifdef HAVE_LCD_CHARCELLS
|
#ifdef HAVE_LCD_CHARCELLS
|
||||||
status_set_param(true);
|
status_set_param(true);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
74
apps/menu.c
74
apps/menu.c
|
|
@ -42,9 +42,13 @@
|
||||||
struct menu {
|
struct menu {
|
||||||
int top;
|
int top;
|
||||||
int cursor;
|
int cursor;
|
||||||
struct menu_items* items;
|
struct menu_item* items;
|
||||||
int itemcount;
|
int itemcount;
|
||||||
int (*callback)(int, int);
|
int (*callback)(int, int);
|
||||||
|
#ifdef HAVE_LCD_BITMAP
|
||||||
|
bool use_buttonbar; /* true if a buttonbar is defined */
|
||||||
|
char *buttonbar[3];
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
#define MAX_MENUS 5
|
#define MAX_MENUS 5
|
||||||
|
|
@ -132,12 +136,22 @@ void menu_draw(int m)
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
int fw, fh;
|
int fw, fh;
|
||||||
int menu_lines;
|
int menu_lines;
|
||||||
|
int height = LCD_HEIGHT;
|
||||||
|
|
||||||
lcd_setfont(FONT_UI);
|
lcd_setfont(FONT_UI);
|
||||||
lcd_getstringsize("A", &fw, &fh);
|
lcd_getstringsize("A", &fw, &fh);
|
||||||
if (global_settings.statusbar)
|
if (global_settings.statusbar)
|
||||||
menu_lines = (LCD_HEIGHT - STATUSBAR_HEIGHT) / fh;
|
height -= STATUSBAR_HEIGHT;
|
||||||
else
|
|
||||||
menu_lines = LCD_HEIGHT/fh;
|
if(global_settings.buttonbar && menus[m].use_buttonbar) {
|
||||||
|
buttonbar_set(menus[m].buttonbar[0],
|
||||||
|
menus[m].buttonbar[1],
|
||||||
|
menus[m].buttonbar[2]);
|
||||||
|
height -= BUTTONBAR_HEIGHT;
|
||||||
|
}
|
||||||
|
|
||||||
|
menu_lines = height / fh;
|
||||||
|
|
||||||
#else
|
#else
|
||||||
int menu_lines = MENU_LINES;
|
int menu_lines = MENU_LINES;
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -170,10 +184,14 @@ void menu_draw(int m)
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
if (global_settings.scrollbar && menus[m].itemcount > menu_lines)
|
if (global_settings.scrollbar && menus[m].itemcount > menu_lines)
|
||||||
scrollbar(SCROLLBAR_X, SCROLLBAR_Y, SCROLLBAR_WIDTH - 1,
|
scrollbar(SCROLLBAR_X, SCROLLBAR_Y, SCROLLBAR_WIDTH - 1,
|
||||||
LCD_HEIGHT - SCROLLBAR_Y, menus[m].itemcount, menus[m].top,
|
height, menus[m].itemcount, menus[m].top,
|
||||||
menus[m].top + menu_lines, VERTICAL);
|
menus[m].top + menu_lines, VERTICAL);
|
||||||
|
|
||||||
|
if(global_settings.buttonbar && menus[m].use_buttonbar)
|
||||||
|
buttonbar_draw();
|
||||||
#endif
|
#endif
|
||||||
status_draw(true);
|
status_draw(true);
|
||||||
|
|
||||||
lcd_update();
|
lcd_update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -187,12 +205,17 @@ static void put_cursor(int m, int target)
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
int fw, fh;
|
int fw, fh;
|
||||||
int menu_lines;
|
int menu_lines;
|
||||||
|
int height = LCD_HEIGHT;
|
||||||
|
|
||||||
lcd_setfont(FONT_UI);
|
lcd_setfont(FONT_UI);
|
||||||
lcd_getstringsize("A", &fw, &fh);
|
lcd_getstringsize("A", &fw, &fh);
|
||||||
if(global_settings.statusbar)
|
if(global_settings.statusbar)
|
||||||
menu_lines = (LCD_HEIGHT - STATUSBAR_HEIGHT) / fh;
|
height -= STATUSBAR_HEIGHT;
|
||||||
else
|
|
||||||
menu_lines = LCD_HEIGHT/fh;
|
if(global_settings.buttonbar && menus[m].use_buttonbar)
|
||||||
|
height -= BUTTONBAR_HEIGHT;
|
||||||
|
|
||||||
|
menu_lines = height / fh;
|
||||||
#else
|
#else
|
||||||
int menu_lines = MENU_LINES;
|
int menu_lines = MENU_LINES;
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -226,7 +249,8 @@ static void put_cursor(int m, int target)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int menu_init(struct menu_items* mitems, int count, int (*callback)(int, int))
|
int menu_init(struct menu_item* mitems, int count, int (*callback)(int, int),
|
||||||
|
char *button1, char *button2, char *button3)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
|
@ -245,7 +269,20 @@ int menu_init(struct menu_items* mitems, int count, int (*callback)(int, int))
|
||||||
menus[i].top = 0;
|
menus[i].top = 0;
|
||||||
menus[i].cursor = 0;
|
menus[i].cursor = 0;
|
||||||
menus[i].callback = callback;
|
menus[i].callback = callback;
|
||||||
|
#ifdef HAVE_LCD_BITMAP
|
||||||
|
menus[i].buttonbar[0] = button1;
|
||||||
|
menus[i].buttonbar[1] = button2;
|
||||||
|
menus[i].buttonbar[2] = button3;
|
||||||
|
|
||||||
|
if(button1 || button2 || button3)
|
||||||
|
menus[i].use_buttonbar = true;
|
||||||
|
else
|
||||||
|
menus[i].use_buttonbar = false;
|
||||||
|
#else
|
||||||
|
(void)button1;
|
||||||
|
(void)button2;
|
||||||
|
(void)button3;
|
||||||
|
#endif
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -262,12 +299,21 @@ int menu_show(int m)
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
int fw, fh;
|
int fw, fh;
|
||||||
int menu_lines;
|
int menu_lines;
|
||||||
|
int height = LCD_HEIGHT;
|
||||||
|
|
||||||
lcd_setfont(FONT_UI);
|
lcd_setfont(FONT_UI);
|
||||||
lcd_getstringsize("A", &fw, &fh);
|
lcd_getstringsize("A", &fw, &fh);
|
||||||
if (global_settings.statusbar)
|
if (global_settings.statusbar)
|
||||||
menu_lines = (LCD_HEIGHT - STATUSBAR_HEIGHT) / fh;
|
height -= STATUSBAR_HEIGHT;
|
||||||
else
|
|
||||||
menu_lines = LCD_HEIGHT/fh;
|
if(global_settings.buttonbar && menus[m].use_buttonbar) {
|
||||||
|
buttonbar_set(menus[m].buttonbar[0],
|
||||||
|
menus[m].buttonbar[1],
|
||||||
|
menus[m].buttonbar[2]);
|
||||||
|
height -= BUTTONBAR_HEIGHT;
|
||||||
|
}
|
||||||
|
|
||||||
|
menu_lines = height / fh;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
menu_draw(m);
|
menu_draw(m);
|
||||||
|
|
@ -439,7 +485,7 @@ int menu_count(int menu)
|
||||||
|
|
||||||
bool menu_moveup(int menu)
|
bool menu_moveup(int menu)
|
||||||
{
|
{
|
||||||
struct menu_items swap;
|
struct menu_item swap;
|
||||||
|
|
||||||
/* can't be the first item ! */
|
/* can't be the first item ! */
|
||||||
if( menus[menu].cursor == 0)
|
if( menus[menu].cursor == 0)
|
||||||
|
|
@ -460,7 +506,7 @@ bool menu_moveup(int menu)
|
||||||
|
|
||||||
bool menu_movedown(int menu)
|
bool menu_movedown(int menu)
|
||||||
{
|
{
|
||||||
struct menu_items swap;
|
struct menu_item swap;
|
||||||
|
|
||||||
/* can't be the last item ! */
|
/* can't be the last item ! */
|
||||||
if( menus[menu].cursor == menus[menu].itemcount - 1)
|
if( menus[menu].cursor == menus[menu].itemcount - 1)
|
||||||
|
|
|
||||||
|
|
@ -22,13 +22,14 @@
|
||||||
|
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
|
||||||
struct menu_items {
|
struct menu_item {
|
||||||
unsigned char *desc; /* string */
|
unsigned char *desc; /* string */
|
||||||
int voice_id; /* the associated voice clip, -1 if none */
|
int voice_id; /* the associated voice clip, -1 if none */
|
||||||
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 (*callback) (int keycode, int menu));
|
int menu_init(struct menu_item* mitems, int count, int (*callback)(int, int),
|
||||||
|
char *button1, char *button2, char *button3);
|
||||||
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);
|
||||||
|
|
@ -48,6 +49,3 @@ bool menu_movedown(int menu);
|
||||||
void menu_draw(int menu);
|
void menu_draw(int menu);
|
||||||
|
|
||||||
#endif /* End __MENU_H__ */
|
#endif /* End __MENU_H__ */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -140,54 +140,54 @@ static bool view_playlist(void)
|
||||||
/* Sub-menu for playlist options */
|
/* Sub-menu for playlist options */
|
||||||
static bool playlist_options(void)
|
static bool playlist_options(void)
|
||||||
{
|
{
|
||||||
struct menu_items menu[7];
|
struct menu_item items[7];
|
||||||
struct playlist_args args[7]; /* increase these 2 if you add entries! */
|
struct playlist_args args[7]; /* increase these 2 if you add entries! */
|
||||||
int m, i=0, pstart=0, result;
|
int m, i=0, pstart=0, result;
|
||||||
bool ret = false;
|
bool ret = false;
|
||||||
|
|
||||||
if ((selected_file_attr & TREE_ATTR_MASK) == TREE_ATTR_M3U)
|
if ((selected_file_attr & TREE_ATTR_MASK) == TREE_ATTR_M3U)
|
||||||
{
|
{
|
||||||
menu[i].desc = str(LANG_VIEW);
|
items[i].desc = str(LANG_VIEW);
|
||||||
menu[i].voice_id = LANG_VIEW;
|
items[i].voice_id = LANG_VIEW;
|
||||||
menu[i].function = view_playlist;
|
items[i].function = view_playlist;
|
||||||
i++;
|
i++;
|
||||||
pstart++;
|
pstart++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mpeg_status() & MPEG_STATUS_PLAY)
|
if (mpeg_status() & MPEG_STATUS_PLAY)
|
||||||
{
|
{
|
||||||
menu[i].desc = str(LANG_INSERT);
|
items[i].desc = str(LANG_INSERT);
|
||||||
menu[i].voice_id = LANG_INSERT;
|
items[i].voice_id = LANG_INSERT;
|
||||||
args[i].position = PLAYLIST_INSERT;
|
args[i].position = PLAYLIST_INSERT;
|
||||||
args[i].queue = false;
|
args[i].queue = false;
|
||||||
i++;
|
i++;
|
||||||
|
|
||||||
menu[i].desc = str(LANG_INSERT_FIRST);
|
items[i].desc = str(LANG_INSERT_FIRST);
|
||||||
menu[i].voice_id = LANG_INSERT_FIRST;
|
items[i].voice_id = LANG_INSERT_FIRST;
|
||||||
args[i].position = PLAYLIST_INSERT_FIRST;
|
args[i].position = PLAYLIST_INSERT_FIRST;
|
||||||
args[i].queue = false;
|
args[i].queue = false;
|
||||||
i++;
|
i++;
|
||||||
|
|
||||||
menu[i].desc = str(LANG_INSERT_LAST);
|
items[i].desc = str(LANG_INSERT_LAST);
|
||||||
menu[i].voice_id = LANG_INSERT_LAST;
|
items[i].voice_id = LANG_INSERT_LAST;
|
||||||
args[i].position = PLAYLIST_INSERT_LAST;
|
args[i].position = PLAYLIST_INSERT_LAST;
|
||||||
args[i].queue = false;
|
args[i].queue = false;
|
||||||
i++;
|
i++;
|
||||||
|
|
||||||
menu[i].desc = str(LANG_QUEUE);
|
items[i].desc = str(LANG_QUEUE);
|
||||||
menu[i].voice_id = LANG_QUEUE;
|
items[i].voice_id = LANG_QUEUE;
|
||||||
args[i].position = PLAYLIST_INSERT;
|
args[i].position = PLAYLIST_INSERT;
|
||||||
args[i].queue = true;
|
args[i].queue = true;
|
||||||
i++;
|
i++;
|
||||||
|
|
||||||
menu[i].desc = str(LANG_QUEUE_FIRST);
|
items[i].desc = str(LANG_QUEUE_FIRST);
|
||||||
menu[i].voice_id = LANG_QUEUE_FIRST;
|
items[i].voice_id = LANG_QUEUE_FIRST;
|
||||||
args[i].position = PLAYLIST_INSERT_FIRST;
|
args[i].position = PLAYLIST_INSERT_FIRST;
|
||||||
args[i].queue = true;
|
args[i].queue = true;
|
||||||
i++;
|
i++;
|
||||||
|
|
||||||
menu[i].desc = str(LANG_QUEUE_LAST);
|
items[i].desc = str(LANG_QUEUE_LAST);
|
||||||
menu[i].voice_id = LANG_QUEUE_LAST;
|
items[i].voice_id = LANG_QUEUE_LAST;
|
||||||
args[i].position = PLAYLIST_INSERT_LAST;
|
args[i].position = PLAYLIST_INSERT_LAST;
|
||||||
args[i].queue = true;
|
args[i].queue = true;
|
||||||
i++;
|
i++;
|
||||||
|
|
@ -195,17 +195,17 @@ static bool playlist_options(void)
|
||||||
else if (((selected_file_attr & TREE_ATTR_MASK) == TREE_ATTR_MPA) ||
|
else if (((selected_file_attr & TREE_ATTR_MASK) == TREE_ATTR_MPA) ||
|
||||||
(selected_file_attr & ATTR_DIRECTORY))
|
(selected_file_attr & ATTR_DIRECTORY))
|
||||||
{
|
{
|
||||||
menu[i].desc = str(LANG_INSERT);
|
items[i].desc = str(LANG_INSERT);
|
||||||
menu[i].voice_id = LANG_INSERT;
|
items[i].voice_id = LANG_INSERT;
|
||||||
args[i].position = PLAYLIST_INSERT;
|
args[i].position = PLAYLIST_INSERT;
|
||||||
args[i].queue = false;
|
args[i].queue = false;
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
m = menu_init( menu, i, NULL );
|
m = menu_init( items, i, NULL, NULL, NULL, NULL );
|
||||||
result = menu_show(m);
|
result = menu_show(m);
|
||||||
if (result >= 0 && result < pstart)
|
if (result >= 0 && result < pstart)
|
||||||
ret = menu[result].function();
|
ret = items[result].function();
|
||||||
else if (result >= pstart)
|
else if (result >= pstart)
|
||||||
ret = add_to_playlist(args[result].position, args[result].queue);
|
ret = add_to_playlist(args[result].position, args[result].queue);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
|
|
@ -550,7 +550,7 @@ bool create_dir(void)
|
||||||
|
|
||||||
int onplay(char* file, int attr)
|
int onplay(char* file, int attr)
|
||||||
{
|
{
|
||||||
struct menu_items menu[5]; /* increase this if you add entries! */
|
struct menu_item items[5]; /* increase this if you add entries! */
|
||||||
int m, i=0, result;
|
int m, i=0, result;
|
||||||
|
|
||||||
onplay_result = ONPLAY_OK;
|
onplay_result = ONPLAY_OK;
|
||||||
|
|
@ -564,44 +564,44 @@ int onplay(char* file, int attr)
|
||||||
(attr & ATTR_DIRECTORY) ||
|
(attr & ATTR_DIRECTORY) ||
|
||||||
((attr & TREE_ATTR_MASK) == TREE_ATTR_M3U))
|
((attr & TREE_ATTR_MASK) == TREE_ATTR_M3U))
|
||||||
{
|
{
|
||||||
menu[i].desc = str(LANG_PLAYINDICES_PLAYLIST);
|
items[i].desc = str(LANG_PLAYINDICES_PLAYLIST);
|
||||||
menu[i].voice_id = LANG_PLAYINDICES_PLAYLIST;
|
items[i].voice_id = LANG_PLAYINDICES_PLAYLIST;
|
||||||
menu[i].function = playlist_options;
|
items[i].function = playlist_options;
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
menu[i].desc = str(LANG_RENAME);
|
items[i].desc = str(LANG_RENAME);
|
||||||
menu[i].voice_id = LANG_RENAME;
|
items[i].voice_id = LANG_RENAME;
|
||||||
menu[i].function = rename_file;
|
items[i].function = rename_file;
|
||||||
i++;
|
i++;
|
||||||
|
|
||||||
if (!(attr & ATTR_DIRECTORY))
|
if (!(attr & ATTR_DIRECTORY))
|
||||||
{
|
{
|
||||||
menu[i].desc = str(LANG_DELETE);
|
items[i].desc = str(LANG_DELETE);
|
||||||
menu[i].voice_id = LANG_DELETE;
|
items[i].voice_id = LANG_DELETE;
|
||||||
menu[i].function = delete_file;
|
items[i].function = delete_file;
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((attr & TREE_ATTR_MASK) == TREE_ATTR_MPA)
|
if ((attr & TREE_ATTR_MASK) == TREE_ATTR_MPA)
|
||||||
{
|
{
|
||||||
menu[i].desc = str(LANG_VBRFIX);
|
items[i].desc = str(LANG_VBRFIX);
|
||||||
menu[i].voice_id = LANG_VBRFIX;
|
items[i].voice_id = LANG_VBRFIX;
|
||||||
menu[i].function = vbr_fix;
|
items[i].function = vbr_fix;
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
menu[i].desc = str(LANG_CREATE_DIR);
|
items[i].desc = str(LANG_CREATE_DIR);
|
||||||
menu[i].voice_id = LANG_CREATE_DIR;
|
items[i].voice_id = LANG_CREATE_DIR;
|
||||||
menu[i].function = create_dir;
|
items[i].function = create_dir;
|
||||||
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, NULL );
|
m = menu_init( items, i, NULL, NULL, NULL, NULL );
|
||||||
result = menu_show(m);
|
result = menu_show(m);
|
||||||
if (result >= 0)
|
if (result >= 0)
|
||||||
menu[result].function();
|
items[result].function();
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
|
|
||||||
return onplay_result;
|
return onplay_result;
|
||||||
|
|
|
||||||
|
|
@ -66,14 +66,15 @@ bool playlist_menu(void)
|
||||||
int m;
|
int m;
|
||||||
bool result;
|
bool result;
|
||||||
|
|
||||||
struct menu_items items[] = {
|
struct menu_item items[] = {
|
||||||
{ STR(LANG_CREATE_PLAYLIST), create_playlist },
|
{ STR(LANG_CREATE_PLAYLIST), create_playlist },
|
||||||
{ STR(LANG_VIEW_DYNAMIC_PLAYLIST), playlist_viewer },
|
{ STR(LANG_VIEW_DYNAMIC_PLAYLIST), playlist_viewer },
|
||||||
{ STR(LANG_SAVE_DYNAMIC_PLAYLIST), save_playlist },
|
{ STR(LANG_SAVE_DYNAMIC_PLAYLIST), save_playlist },
|
||||||
{ STR(LANG_RECURSE_DIRECTORY), recurse_directory },
|
{ STR(LANG_RECURSE_DIRECTORY), recurse_directory },
|
||||||
};
|
};
|
||||||
|
|
||||||
m = menu_init( items, sizeof items / sizeof(struct menu_items), NULL );
|
m = menu_init( items, sizeof items / sizeof(struct menu_item), NULL,
|
||||||
|
NULL, NULL, NULL );
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
return result;
|
return result;
|
||||||
|
|
|
||||||
|
|
@ -680,23 +680,23 @@ static bool update_playlist(bool force)
|
||||||
changed. */
|
changed. */
|
||||||
static int onplay_menu(int index)
|
static int onplay_menu(int index)
|
||||||
{
|
{
|
||||||
struct menu_items menu[3]; /* increase this if you add entries! */
|
struct menu_item items[3]; /* increase this if you add entries! */
|
||||||
int m, i=0, result, ret = 0;
|
int m, i=0, result, ret = 0;
|
||||||
bool current = (tracks[index].index == viewer.current_playing_track);
|
bool current = (tracks[index].index == viewer.current_playing_track);
|
||||||
|
|
||||||
menu[i].desc = str(LANG_REMOVE);
|
items[i].desc = str(LANG_REMOVE);
|
||||||
menu[i].voice_id = LANG_REMOVE;
|
items[i].voice_id = LANG_REMOVE;
|
||||||
i++;
|
i++;
|
||||||
|
|
||||||
menu[i].desc = str(LANG_MOVE);
|
items[i].desc = str(LANG_MOVE);
|
||||||
menu[i].voice_id = LANG_MOVE;
|
items[i].voice_id = LANG_MOVE;
|
||||||
i++;
|
i++;
|
||||||
|
|
||||||
menu[i].desc = str(LANG_FILE_OPTIONS);
|
items[i].desc = str(LANG_FILE_OPTIONS);
|
||||||
menu[i].voice_id = LANG_FILE_OPTIONS;
|
items[i].voice_id = LANG_FILE_OPTIONS;
|
||||||
i++;
|
i++;
|
||||||
|
|
||||||
m = menu_init(menu, i, NULL);
|
m = menu_init(items, i, NULL, NULL, NULL, NULL);
|
||||||
result = menu_show(m);
|
result = menu_show(m);
|
||||||
if (result == MENU_ATTACHED_USB)
|
if (result == MENU_ATTACHED_USB)
|
||||||
ret = -1;
|
ret = -1;
|
||||||
|
|
@ -759,14 +759,15 @@ static bool viewer_menu(void)
|
||||||
int m;
|
int m;
|
||||||
bool result;
|
bool result;
|
||||||
|
|
||||||
struct menu_items items[] = {
|
struct menu_item items[] = {
|
||||||
{ STR(LANG_SHOW_ICONS), show_icons },
|
{ STR(LANG_SHOW_ICONS), show_icons },
|
||||||
{ STR(LANG_SHOW_INDICES), show_indices },
|
{ STR(LANG_SHOW_INDICES), show_indices },
|
||||||
{ STR(LANG_TRACK_DISPLAY), track_display },
|
{ STR(LANG_TRACK_DISPLAY), track_display },
|
||||||
{ STR(LANG_SAVE_DYNAMIC_PLAYLIST), save_playlist },
|
{ STR(LANG_SAVE_DYNAMIC_PLAYLIST), save_playlist },
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof(items) / sizeof(*items), NULL );
|
m=menu_init( items, sizeof(items) / sizeof(*items), NULL,
|
||||||
|
NULL, NULL, NULL );
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -117,7 +117,7 @@ offset abs
|
||||||
0x23 0x37 <rec. left gain (bit 0-3)>
|
0x23 0x37 <rec. left gain (bit 0-3)>
|
||||||
0x24 0x38 <rec. right gain (bit 0-3)>
|
0x24 0x38 <rec. right gain (bit 0-3)>
|
||||||
0x25 0x39 <disk poweroff flag (bit 0), MP3 buffer margin (bit 1-3),
|
0x25 0x39 <disk poweroff flag (bit 0), MP3 buffer margin (bit 1-3),
|
||||||
Trickle charge flag (bit 4)>
|
Trickle charge flag (bit 4), buttonbar (bit 5)>
|
||||||
0x26 0x40 <runtime low byte>
|
0x26 0x40 <runtime low byte>
|
||||||
0x27 0x41 <runtime high byte>
|
0x27 0x41 <runtime high byte>
|
||||||
0x28 0x42 <topruntime low byte>
|
0x28 0x42 <topruntime low byte>
|
||||||
|
|
@ -396,7 +396,8 @@ int settings_save( void )
|
||||||
config_block[0x25] = (unsigned char)
|
config_block[0x25] = (unsigned char)
|
||||||
((global_settings.disk_poweroff & 1) |
|
((global_settings.disk_poweroff & 1) |
|
||||||
((global_settings.buffer_margin & 7) << 1) |
|
((global_settings.buffer_margin & 7) << 1) |
|
||||||
((global_settings.trickle_charge & 1) << 4));
|
((global_settings.trickle_charge & 1) << 4) |
|
||||||
|
((global_settings.buttonbar & 1) << 5));
|
||||||
|
|
||||||
{
|
{
|
||||||
int elapsed_secs;
|
int elapsed_secs;
|
||||||
|
|
@ -723,6 +724,7 @@ void settings_load(void)
|
||||||
global_settings.disk_poweroff = config_block[0x25] & 1;
|
global_settings.disk_poweroff = config_block[0x25] & 1;
|
||||||
global_settings.buffer_margin = (config_block[0x25] >> 1) & 7;
|
global_settings.buffer_margin = (config_block[0x25] >> 1) & 7;
|
||||||
global_settings.trickle_charge = (config_block[0x25] >> 4) & 1;
|
global_settings.trickle_charge = (config_block[0x25] >> 4) & 1;
|
||||||
|
global_settings.buttonbar = (config_block[0x25] >> 5) & 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (config_block[0x27] != 0xff)
|
if (config_block[0x27] != 0xff)
|
||||||
|
|
@ -977,6 +979,8 @@ bool settings_load_config(char* file)
|
||||||
set_cfg_int(&global_settings.scroll_step, value, 1, LCD_WIDTH);
|
set_cfg_int(&global_settings.scroll_step, value, 1, LCD_WIDTH);
|
||||||
else if (!strcasecmp(name, "statusbar"))
|
else if (!strcasecmp(name, "statusbar"))
|
||||||
set_cfg_bool(&global_settings.statusbar, value);
|
set_cfg_bool(&global_settings.statusbar, value);
|
||||||
|
else if (!strcasecmp(name, "buttonbar"))
|
||||||
|
set_cfg_bool(&global_settings.buttonbar, value);
|
||||||
else if (!strcasecmp(name, "peak meter release"))
|
else if (!strcasecmp(name, "peak meter release"))
|
||||||
set_cfg_int(&global_settings.peak_meter_release, value, 1, 0x7e);
|
set_cfg_int(&global_settings.peak_meter_release, value, 1, 0x7e);
|
||||||
else if (!strcasecmp(name, "peak meter hold")) {
|
else if (!strcasecmp(name, "peak meter hold")) {
|
||||||
|
|
@ -1336,8 +1340,9 @@ bool settings_save_config(void)
|
||||||
fprintf(fd, "#\r\n# Display\r\n#\r\n");
|
fprintf(fd, "#\r\n# Display\r\n#\r\n");
|
||||||
|
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
fprintf(fd, "statusbar: %s\r\nscrollbar: %s\r\n",
|
fprintf(fd, "statusbar: %s\r\nbuttonbar: %s\r\nscrollbar: %s\r\n",
|
||||||
boolopt[global_settings.statusbar],
|
boolopt[global_settings.statusbar],
|
||||||
|
boolopt[global_settings.buttonbar],
|
||||||
boolopt[global_settings.scrollbar]);
|
boolopt[global_settings.scrollbar]);
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
@ -1588,6 +1593,7 @@ void settings_reset(void) {
|
||||||
global_settings.dirfilter = SHOW_MUSIC;
|
global_settings.dirfilter = SHOW_MUSIC;
|
||||||
global_settings.sort_case = false;
|
global_settings.sort_case = false;
|
||||||
global_settings.statusbar = true;
|
global_settings.statusbar = true;
|
||||||
|
global_settings.buttonbar = true;
|
||||||
global_settings.scrollbar = true;
|
global_settings.scrollbar = true;
|
||||||
global_settings.repeat_mode = REPEAT_ALL;
|
global_settings.repeat_mode = REPEAT_ALL;
|
||||||
global_settings.playlist_shuffle = false;
|
global_settings.playlist_shuffle = false;
|
||||||
|
|
|
||||||
|
|
@ -159,6 +159,9 @@ struct user_settings
|
||||||
/* show status bar */
|
/* show status bar */
|
||||||
bool statusbar; /* 0=hide, 1=show */
|
bool statusbar; /* 0=hide, 1=show */
|
||||||
|
|
||||||
|
/* show button bar */
|
||||||
|
bool buttonbar; /* 0=hide, 1=show */
|
||||||
|
|
||||||
/* show scroll bar */
|
/* show scroll bar */
|
||||||
bool scrollbar; /* 0=hide, 1=show */
|
bool scrollbar; /* 0=hide, 1=show */
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -402,7 +402,7 @@ static bool peak_meter_menu(void)
|
||||||
int m;
|
int m;
|
||||||
bool result;
|
bool result;
|
||||||
|
|
||||||
struct menu_items items[] = {
|
struct menu_item items[] = {
|
||||||
{ STR(LANG_PM_RELEASE) , peak_meter_release },
|
{ STR(LANG_PM_RELEASE) , peak_meter_release },
|
||||||
{ STR(LANG_PM_PEAK_HOLD), peak_meter_hold },
|
{ STR(LANG_PM_PEAK_HOLD), peak_meter_hold },
|
||||||
{ STR(LANG_PM_CLIP_HOLD), peak_meter_clip_hold },
|
{ STR(LANG_PM_CLIP_HOLD), peak_meter_clip_hold },
|
||||||
|
|
@ -415,7 +415,8 @@ 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), NULL );
|
m=menu_init( items, sizeof(items) / sizeof(*items), NULL,
|
||||||
|
NULL, NULL, NULL );
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
return result;
|
return result;
|
||||||
|
|
@ -882,6 +883,11 @@ static bool status_bar(void)
|
||||||
{
|
{
|
||||||
return set_bool( str(LANG_STATUS_BAR), &global_settings.statusbar );
|
return set_bool( str(LANG_STATUS_BAR), &global_settings.statusbar );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool button_bar(void)
|
||||||
|
{
|
||||||
|
return set_bool( str(LANG_BUTTON_BAR), &global_settings.buttonbar );
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static bool ff_rewind_settings_menu(void)
|
static bool ff_rewind_settings_menu(void)
|
||||||
|
|
@ -889,12 +895,13 @@ static bool ff_rewind_settings_menu(void)
|
||||||
int m;
|
int m;
|
||||||
bool result;
|
bool result;
|
||||||
|
|
||||||
struct menu_items items[] = {
|
struct menu_item items[] = {
|
||||||
{ STR(LANG_FFRW_STEP), ff_rewind_min_step },
|
{ STR(LANG_FFRW_STEP), ff_rewind_min_step },
|
||||||
{ STR(LANG_FFRW_ACCEL), ff_rewind_accel },
|
{ STR(LANG_FFRW_ACCEL), ff_rewind_accel },
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof(items) / sizeof(*items), NULL );
|
m=menu_init( items, sizeof(items) / sizeof(*items), NULL,
|
||||||
|
NULL, NULL, NULL);
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
|
|
||||||
|
|
@ -906,7 +913,7 @@ static bool playback_settings_menu(void)
|
||||||
int m;
|
int m;
|
||||||
bool result;
|
bool result;
|
||||||
|
|
||||||
struct menu_items items[] = {
|
struct menu_item items[] = {
|
||||||
{ STR(LANG_SHUFFLE), shuffle },
|
{ STR(LANG_SHUFFLE), shuffle },
|
||||||
{ STR(LANG_REPEAT), repeat_mode },
|
{ STR(LANG_REPEAT), repeat_mode },
|
||||||
{ STR(LANG_PLAY_SELECTED), play_selected },
|
{ STR(LANG_PLAY_SELECTED), play_selected },
|
||||||
|
|
@ -918,7 +925,8 @@ 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), NULL );
|
m=menu_init( items, sizeof(items) / sizeof(*items), NULL,
|
||||||
|
NULL, NULL, NULL);
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
|
|
||||||
|
|
@ -941,13 +949,14 @@ static bool bookmark_settings_menu(void)
|
||||||
int m;
|
int m;
|
||||||
bool result;
|
bool result;
|
||||||
|
|
||||||
struct menu_items items[] = {
|
struct menu_item items[] = {
|
||||||
{ STR(LANG_BOOKMARK_SETTINGS_AUTOCREATE), autocreatebookmark},
|
{ STR(LANG_BOOKMARK_SETTINGS_AUTOCREATE), autocreatebookmark},
|
||||||
{ STR(LANG_BOOKMARK_SETTINGS_AUTOLOAD), autoloadbookmark},
|
{ STR(LANG_BOOKMARK_SETTINGS_AUTOLOAD), autoloadbookmark},
|
||||||
{ 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), NULL );
|
m=menu_init( items, sizeof(items) / sizeof(*items), NULL,
|
||||||
|
NULL, NULL, NULL);
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
|
|
||||||
|
|
@ -1008,14 +1017,15 @@ static bool fileview_settings_menu(void)
|
||||||
int m;
|
int m;
|
||||||
bool result;
|
bool result;
|
||||||
|
|
||||||
struct menu_items items[] = {
|
struct menu_item items[] = {
|
||||||
{ STR(LANG_CASE_MENU), sort_case },
|
{ STR(LANG_CASE_MENU), sort_case },
|
||||||
{ STR(LANG_FILTER), dir_filter },
|
{ STR(LANG_FILTER), dir_filter },
|
||||||
{ STR(LANG_FOLLOW), browse_current },
|
{ STR(LANG_FOLLOW), browse_current },
|
||||||
{ STR(LANG_SHOW_ICONS), show_icons },
|
{ STR(LANG_SHOW_ICONS), show_icons },
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof(items) / sizeof(*items), NULL );
|
m=menu_init( items, sizeof(items) / sizeof(*items), NULL,
|
||||||
|
NULL, NULL, NULL);
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
return result;
|
return result;
|
||||||
|
|
@ -1027,7 +1037,7 @@ static bool scroll_settings_menu(void)
|
||||||
int m;
|
int m;
|
||||||
bool result;
|
bool result;
|
||||||
|
|
||||||
struct menu_items items[] = {
|
struct menu_item items[] = {
|
||||||
{ STR(LANG_SCROLL_SPEED), scroll_speed },
|
{ STR(LANG_SCROLL_SPEED), scroll_speed },
|
||||||
{ STR(LANG_SCROLL_DELAY), scroll_delay },
|
{ STR(LANG_SCROLL_DELAY), scroll_delay },
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
|
|
@ -1040,7 +1050,8 @@ static bool scroll_settings_menu(void)
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof(items) / sizeof(*items), NULL );
|
m=menu_init( items, sizeof(items) / sizeof(*items), NULL,
|
||||||
|
NULL, NULL, NULL);
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
return result;
|
return result;
|
||||||
|
|
@ -1051,7 +1062,7 @@ static bool lcd_settings_menu(void)
|
||||||
int m;
|
int m;
|
||||||
bool result;
|
bool result;
|
||||||
|
|
||||||
struct menu_items items[] = {
|
struct menu_item items[] = {
|
||||||
{ STR(LANG_BACKLIGHT), backlight_timer },
|
{ STR(LANG_BACKLIGHT), backlight_timer },
|
||||||
{ STR(LANG_BACKLIGHT_ON_WHEN_CHARGING), backlight_on_when_charging },
|
{ STR(LANG_BACKLIGHT_ON_WHEN_CHARGING), backlight_on_when_charging },
|
||||||
{ STR(LANG_CAPTION_BACKLIGHT), caption_backlight },
|
{ STR(LANG_CAPTION_BACKLIGHT), caption_backlight },
|
||||||
|
|
@ -1063,7 +1074,8 @@ static bool lcd_settings_menu(void)
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof(items) / sizeof(*items), NULL );
|
m=menu_init( items, sizeof(items) / sizeof(*items), NULL,
|
||||||
|
NULL, NULL, NULL);
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
return result;
|
return result;
|
||||||
|
|
@ -1075,14 +1087,16 @@ static bool bars_settings_menu(void)
|
||||||
int m;
|
int m;
|
||||||
bool result;
|
bool result;
|
||||||
|
|
||||||
struct menu_items items[] = {
|
struct menu_item items[] = {
|
||||||
{ STR(LANG_SCROLL_BAR), scroll_bar },
|
{ STR(LANG_SCROLL_BAR), scroll_bar },
|
||||||
{ STR(LANG_STATUS_BAR), status_bar },
|
{ STR(LANG_STATUS_BAR), status_bar },
|
||||||
|
{ STR(LANG_BUTTON_BAR), button_bar },
|
||||||
{ STR(LANG_VOLUME_DISPLAY), volume_type },
|
{ STR(LANG_VOLUME_DISPLAY), volume_type },
|
||||||
{ STR(LANG_BATTERY_DISPLAY), battery_type },
|
{ STR(LANG_BATTERY_DISPLAY), battery_type },
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof(items) / sizeof(*items), NULL );
|
m=menu_init( items, sizeof(items) / sizeof(*items), NULL,
|
||||||
|
NULL, NULL, NULL);
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
return result;
|
return result;
|
||||||
|
|
@ -1095,7 +1109,7 @@ static bool display_settings_menu(void)
|
||||||
int m;
|
int m;
|
||||||
bool result;
|
bool result;
|
||||||
|
|
||||||
struct menu_items items[] = {
|
struct menu_item items[] = {
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
{ STR(LANG_CUSTOM_FONT), font_browse },
|
{ STR(LANG_CUSTOM_FONT), font_browse },
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -1108,7 +1122,8 @@ static bool display_settings_menu(void)
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof(items) / sizeof(*items), NULL );
|
m=menu_init( items, sizeof(items) / sizeof(*items), NULL,
|
||||||
|
NULL, NULL, NULL);
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
return result;
|
return result;
|
||||||
|
|
@ -1125,7 +1140,7 @@ static bool battery_settings_menu(void)
|
||||||
int m;
|
int m;
|
||||||
bool result;
|
bool result;
|
||||||
|
|
||||||
struct menu_items items[] = {
|
struct menu_item items[] = {
|
||||||
#ifdef HAVE_CHARGE_CTRL
|
#ifdef HAVE_CHARGE_CTRL
|
||||||
{ STR(LANG_DISCHARGE), deep_discharge },
|
{ STR(LANG_DISCHARGE), deep_discharge },
|
||||||
{ STR(LANG_TRICKLE_CHARGE), trickle_charge },
|
{ STR(LANG_TRICKLE_CHARGE), trickle_charge },
|
||||||
|
|
@ -1135,7 +1150,8 @@ static bool battery_settings_menu(void)
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof(items) / sizeof(*items), NULL );
|
m=menu_init( items, sizeof(items) / sizeof(*items), NULL,
|
||||||
|
NULL, NULL, NULL);
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
return result;
|
return result;
|
||||||
|
|
@ -1146,14 +1162,15 @@ static bool disk_settings_menu(void)
|
||||||
int m;
|
int m;
|
||||||
bool result;
|
bool result;
|
||||||
|
|
||||||
struct menu_items items[] = {
|
struct menu_item items[] = {
|
||||||
{ STR(LANG_SPINDOWN), spindown },
|
{ STR(LANG_SPINDOWN), spindown },
|
||||||
#ifdef HAVE_ATA_POWER_OFF
|
#ifdef HAVE_ATA_POWER_OFF
|
||||||
{ STR(LANG_POWEROFF), poweroff },
|
{ STR(LANG_POWEROFF), poweroff },
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof(items) / sizeof(*items), NULL );
|
m=menu_init( items, sizeof(items) / sizeof(*items), NULL,
|
||||||
|
NULL, NULL, NULL);
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
return result;
|
return result;
|
||||||
|
|
@ -1165,12 +1182,13 @@ static bool time_settings_menu(void)
|
||||||
int m;
|
int m;
|
||||||
bool result;
|
bool result;
|
||||||
|
|
||||||
struct menu_items items[] = {
|
struct menu_item items[] = {
|
||||||
{ STR(LANG_TIME), timedate_set },
|
{ STR(LANG_TIME), timedate_set },
|
||||||
{ STR(LANG_TIMEFORMAT), timeformat_set },
|
{ STR(LANG_TIMEFORMAT), timeformat_set },
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof(items) / sizeof(*items), NULL );
|
m=menu_init( items, sizeof(items) / sizeof(*items), NULL,
|
||||||
|
NULL, NULL, NULL);
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
return result;
|
return result;
|
||||||
|
|
@ -1182,14 +1200,15 @@ static bool manage_settings_menu(void)
|
||||||
int m;
|
int m;
|
||||||
bool result;
|
bool result;
|
||||||
|
|
||||||
struct menu_items items[] = {
|
struct menu_item items[] = {
|
||||||
{ STR(LANG_CUSTOM_CFG), custom_cfg_browse },
|
{ STR(LANG_CUSTOM_CFG), custom_cfg_browse },
|
||||||
{ STR(LANG_FIRMWARE), firmware_browse },
|
{ STR(LANG_FIRMWARE), firmware_browse },
|
||||||
{ STR(LANG_RESET), reset_settings },
|
{ STR(LANG_RESET), reset_settings },
|
||||||
{ STR(LANG_SAVE_SETTINGS), settings_save_config },
|
{ STR(LANG_SAVE_SETTINGS), settings_save_config },
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof(items) / sizeof(*items), NULL );
|
m=menu_init( items, sizeof(items) / sizeof(*items), NULL,
|
||||||
|
NULL, NULL, NULL);
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
return result;
|
return result;
|
||||||
|
|
@ -1200,12 +1219,13 @@ static bool limits_settings_menu(void)
|
||||||
int m;
|
int m;
|
||||||
bool result;
|
bool result;
|
||||||
|
|
||||||
struct menu_items items[] = {
|
struct menu_item items[] = {
|
||||||
{ STR(LANG_MAX_FILES_IN_DIR), max_files_in_dir },
|
{ STR(LANG_MAX_FILES_IN_DIR), max_files_in_dir },
|
||||||
{ 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), NULL );
|
m=menu_init( items, sizeof(items) / sizeof(*items), NULL,
|
||||||
|
NULL, NULL, NULL);
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
return result;
|
return result;
|
||||||
|
|
@ -1217,7 +1237,7 @@ static bool system_settings_menu(void)
|
||||||
int m;
|
int m;
|
||||||
bool result;
|
bool result;
|
||||||
|
|
||||||
struct menu_items items[] = {
|
struct menu_item items[] = {
|
||||||
{ STR(LANG_BATTERY_MENU), battery_settings_menu },
|
{ STR(LANG_BATTERY_MENU), battery_settings_menu },
|
||||||
{ STR(LANG_DISK_MENU), disk_settings_menu },
|
{ STR(LANG_DISK_MENU), disk_settings_menu },
|
||||||
#ifdef HAVE_RTC
|
#ifdef HAVE_RTC
|
||||||
|
|
@ -1236,7 +1256,8 @@ 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), NULL );
|
m=menu_init( items, sizeof(items) / sizeof(*items), NULL,
|
||||||
|
NULL, NULL, NULL);
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
return result;
|
return result;
|
||||||
|
|
@ -1247,7 +1268,7 @@ bool settings_menu(void)
|
||||||
int m;
|
int m;
|
||||||
bool result;
|
bool result;
|
||||||
|
|
||||||
struct menu_items items[] = {
|
struct menu_item items[] = {
|
||||||
{ STR(LANG_PLAYBACK), playback_settings_menu },
|
{ STR(LANG_PLAYBACK), playback_settings_menu },
|
||||||
{ STR(LANG_FILE), fileview_settings_menu },
|
{ STR(LANG_FILE), fileview_settings_menu },
|
||||||
{ STR(LANG_DISPLAY), display_settings_menu },
|
{ STR(LANG_DISPLAY), display_settings_menu },
|
||||||
|
|
@ -1256,7 +1277,8 @@ bool settings_menu(void)
|
||||||
{ STR(LANG_LANGUAGE), language_browse },
|
{ STR(LANG_LANGUAGE), language_browse },
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof(items) / sizeof(*items), NULL );
|
m=menu_init( items, sizeof(items) / sizeof(*items), NULL,
|
||||||
|
NULL, NULL, NULL);
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
return result;
|
return result;
|
||||||
|
|
|
||||||
|
|
@ -346,7 +346,7 @@ bool sound_menu(void)
|
||||||
{
|
{
|
||||||
int m;
|
int m;
|
||||||
bool result;
|
bool result;
|
||||||
struct menu_items items[] = {
|
struct menu_item items[] = {
|
||||||
{ STR(LANG_VOLUME), volume },
|
{ STR(LANG_VOLUME), volume },
|
||||||
{ STR(LANG_BASS), bass },
|
{ STR(LANG_BASS), bass },
|
||||||
{ STR(LANG_TREBLE), treble },
|
{ STR(LANG_TREBLE), treble },
|
||||||
|
|
@ -359,7 +359,8 @@ bool sound_menu(void)
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
m=menu_init( items, sizeof items / sizeof(struct menu_items), NULL );
|
m=menu_init( items, sizeof(items) / sizeof(*items), NULL,
|
||||||
|
NULL, NULL, NULL);
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
|
|
||||||
|
|
@ -371,37 +372,37 @@ bool recording_menu(bool no_source)
|
||||||
{
|
{
|
||||||
int m;
|
int m;
|
||||||
int i = 0;
|
int i = 0;
|
||||||
struct menu_items menu[8];
|
struct menu_item items[8];
|
||||||
bool result;
|
bool result;
|
||||||
|
|
||||||
menu[i].desc = str(LANG_RECORDING_QUALITY);
|
items[i].desc = str(LANG_RECORDING_QUALITY);
|
||||||
menu[i].voice_id = LANG_RECORDING_QUALITY;
|
items[i].voice_id = LANG_RECORDING_QUALITY;
|
||||||
menu[i++].function = recquality;
|
items[i++].function = recquality;
|
||||||
menu[i].desc = str(LANG_RECORDING_FREQUENCY);
|
items[i].desc = str(LANG_RECORDING_FREQUENCY);
|
||||||
menu[i].voice_id = LANG_RECORDING_FREQUENCY;
|
items[i].voice_id = LANG_RECORDING_FREQUENCY;
|
||||||
menu[i++].function = recfrequency;
|
items[i++].function = recfrequency;
|
||||||
if(!no_source) {
|
if(!no_source) {
|
||||||
menu[i].desc = str(LANG_RECORDING_SOURCE);
|
items[i].desc = str(LANG_RECORDING_SOURCE);
|
||||||
menu[i].voice_id = LANG_RECORDING_SOURCE;
|
items[i].voice_id = LANG_RECORDING_SOURCE;
|
||||||
menu[i++].function = recsource;
|
items[i++].function = recsource;
|
||||||
}
|
}
|
||||||
menu[i].desc = str(LANG_RECORDING_CHANNELS);
|
items[i].desc = str(LANG_RECORDING_CHANNELS);
|
||||||
menu[i].voice_id = LANG_RECORDING_CHANNELS;
|
items[i].voice_id = LANG_RECORDING_CHANNELS;
|
||||||
menu[i++].function = recchannels;
|
items[i++].function = recchannels;
|
||||||
menu[i].desc = str(LANG_RECORDING_EDITABLE);
|
items[i].desc = str(LANG_RECORDING_EDITABLE);
|
||||||
menu[i].voice_id = LANG_RECORDING_EDITABLE;
|
items[i].voice_id = LANG_RECORDING_EDITABLE;
|
||||||
menu[i++].function = receditable;
|
items[i++].function = receditable;
|
||||||
menu[i].desc = str(LANG_RECORD_TIMESPLIT);
|
items[i].desc = str(LANG_RECORD_TIMESPLIT);
|
||||||
menu[i].voice_id = LANG_RECORD_TIMESPLIT;
|
items[i].voice_id = LANG_RECORD_TIMESPLIT;
|
||||||
menu[i++].function = rectimesplit;
|
items[i++].function = rectimesplit;
|
||||||
menu[i].desc = str(LANG_RECORD_PRERECORD_TIME);
|
items[i].desc = str(LANG_RECORD_PRERECORD_TIME);
|
||||||
menu[i].voice_id = LANG_RECORD_PRERECORD_TIME;
|
items[i].voice_id = LANG_RECORD_PRERECORD_TIME;
|
||||||
menu[i++].function = recprerecord;
|
items[i++].function = recprerecord;
|
||||||
menu[i].desc = str(LANG_RECORD_DIRECTORY);
|
items[i].desc = str(LANG_RECORD_DIRECTORY);
|
||||||
menu[i].voice_id = LANG_RECORD_DIRECTORY;
|
items[i].voice_id = LANG_RECORD_DIRECTORY;
|
||||||
menu[i++].function = recdirectory;
|
items[i++].function = recdirectory;
|
||||||
|
|
||||||
m=menu_init( menu, i, NULL );
|
m=menu_init( items, i, NULL, NULL, NULL, NULL);
|
||||||
result = menu_run(m);
|
result = menu_run(m);
|
||||||
menu_exit(m);
|
menu_exit(m);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -259,14 +259,31 @@ static char stored_caption2[8];
|
||||||
static char stored_caption3[8];
|
static char stored_caption3[8];
|
||||||
|
|
||||||
void buttonbar_set(char* caption1, char *caption2, char *caption3)
|
void buttonbar_set(char* caption1, char *caption2, char *caption3)
|
||||||
|
{
|
||||||
|
buttonbar_unset();
|
||||||
|
if(caption1)
|
||||||
{
|
{
|
||||||
strncpy(stored_caption1, caption1, 7);
|
strncpy(stored_caption1, caption1, 7);
|
||||||
stored_caption1[7] = 0;
|
stored_caption1[7] = 0;
|
||||||
|
}
|
||||||
|
if(caption2)
|
||||||
|
{
|
||||||
strncpy(stored_caption2, caption2, 7);
|
strncpy(stored_caption2, caption2, 7);
|
||||||
stored_caption2[7] = 0;
|
stored_caption2[7] = 0;
|
||||||
|
}
|
||||||
|
if(caption3)
|
||||||
|
{
|
||||||
strncpy(stored_caption3, caption3, 7);
|
strncpy(stored_caption3, caption3, 7);
|
||||||
stored_caption3[7] = 0;
|
stored_caption3[7] = 0;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void buttonbar_unset(void)
|
||||||
|
{
|
||||||
|
stored_caption1[0] = 0;
|
||||||
|
stored_caption2[0] = 0;
|
||||||
|
stored_caption3[0] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
void buttonbar_draw(void)
|
void buttonbar_draw(void)
|
||||||
{
|
{
|
||||||
|
|
@ -275,4 +292,14 @@ void buttonbar_draw(void)
|
||||||
draw_buttonbar_btn(1, stored_caption2);
|
draw_buttonbar_btn(1, stored_caption2);
|
||||||
draw_buttonbar_btn(2, stored_caption3);
|
draw_buttonbar_btn(2, stored_caption3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool buttonbar_isset(void)
|
||||||
|
{
|
||||||
|
/* If all buttons are unset, the button bar is considered disabled */
|
||||||
|
return (global_settings.buttonbar &&
|
||||||
|
((stored_caption1[0] != 0) ||
|
||||||
|
(stored_caption2[0] != 0) ||
|
||||||
|
(stored_caption3[0] != 0)));
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,11 @@ void status_set_playmode(enum playmode mode);
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
bool statusbar(bool state);
|
bool statusbar(bool state);
|
||||||
void buttonbar_set(char* caption1, char* caption2, char* caption3);
|
void buttonbar_set(char* caption1, char* caption2, char* caption3);
|
||||||
|
void buttonbar_unset(void);
|
||||||
|
bool buttonbar_isset(void);
|
||||||
void buttonbar_draw(void);
|
void buttonbar_draw(void);
|
||||||
|
|
||||||
|
#define BUTTONBAR_HEIGHT 8
|
||||||
#endif
|
#endif
|
||||||
void status_draw(bool force_redraw);
|
void status_draw(bool force_redraw);
|
||||||
|
|
||||||
|
|
|
||||||
45
apps/tree.c
45
apps/tree.c
|
|
@ -387,6 +387,24 @@ struct entry* load_and_sort_directory(char *dirname, int *dirfilter,
|
||||||
return dircache;
|
return dircache;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_LCD_BITMAP
|
||||||
|
static int recalc_screen_height(void)
|
||||||
|
{
|
||||||
|
int fw, fh;
|
||||||
|
int height = LCD_HEIGHT;
|
||||||
|
|
||||||
|
lcd_setfont(FONT_UI);
|
||||||
|
lcd_getstringsize("A", &fw, &fh);
|
||||||
|
if(global_settings.statusbar)
|
||||||
|
height -= STATUSBAR_HEIGHT;
|
||||||
|
|
||||||
|
if(global_settings.buttonbar)
|
||||||
|
height -= BUTTONBAR_HEIGHT;
|
||||||
|
|
||||||
|
return height / fh;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static int showdir(char *path, int start, int *dirfilter)
|
static int showdir(char *path, int start, int *dirfilter)
|
||||||
{
|
{
|
||||||
int icon_type = 0;
|
int icon_type = 0;
|
||||||
|
|
@ -399,7 +417,7 @@ static int showdir(char *path, int start, int *dirfilter)
|
||||||
int fw, fh;
|
int fw, fh;
|
||||||
lcd_setfont(FONT_UI);
|
lcd_setfont(FONT_UI);
|
||||||
lcd_getstringsize("A", &fw, &fh);
|
lcd_getstringsize("A", &fw, &fh);
|
||||||
tree_max_on_screen = (LCD_HEIGHT - MARGIN_Y) / fh;
|
tree_max_on_screen = recalc_screen_height();
|
||||||
line_height = fh;
|
line_height = fh;
|
||||||
#else
|
#else
|
||||||
tree_max_on_screen = TREE_MAX_ON_SCREEN;
|
tree_max_on_screen = TREE_MAX_ON_SCREEN;
|
||||||
|
|
@ -536,10 +554,18 @@ static int showdir(char *path, int start, int *dirfilter)
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
if (global_settings.scrollbar && (filesindir > tree_max_on_screen))
|
if (global_settings.scrollbar && (filesindir > tree_max_on_screen))
|
||||||
scrollbar(SCROLLBAR_X, SCROLLBAR_Y, SCROLLBAR_WIDTH - 1,
|
scrollbar(SCROLLBAR_X, SCROLLBAR_Y, SCROLLBAR_WIDTH - 1,
|
||||||
LCD_HEIGHT - SCROLLBAR_Y, filesindir, start,
|
tree_max_on_screen * line_height, filesindir, start,
|
||||||
start + tree_max_on_screen, VERTICAL);
|
start + tree_max_on_screen, VERTICAL);
|
||||||
|
|
||||||
|
if(global_settings.buttonbar) {
|
||||||
|
buttonbar_set(str(LANG_DIRBROWSE_F1),
|
||||||
|
str(LANG_DIRBROWSE_F2),
|
||||||
|
str(LANG_DIRBROWSE_F3));
|
||||||
|
buttonbar_draw();
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
status_draw(true);
|
status_draw(true);
|
||||||
|
|
||||||
return filesindir;
|
return filesindir;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -852,10 +878,7 @@ static bool dirbrowse(char *root, int *dirfilter)
|
||||||
has been refreshed on screen */
|
has been refreshed on screen */
|
||||||
|
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
int fw, fh;
|
tree_max_on_screen = recalc_screen_height();
|
||||||
lcd_setfont(FONT_UI);
|
|
||||||
lcd_getstringsize("A", &fw, &fh);
|
|
||||||
tree_max_on_screen = (LCD_HEIGHT - MARGIN_Y) / fh;
|
|
||||||
#else
|
#else
|
||||||
tree_max_on_screen = TREE_MAX_ON_SCREEN;
|
tree_max_on_screen = TREE_MAX_ON_SCREEN;
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -1065,8 +1088,7 @@ static bool dirbrowse(char *root, int *dirfilter)
|
||||||
lcd_update();
|
lcd_update();
|
||||||
|
|
||||||
/* maybe we have a new font */
|
/* maybe we have a new font */
|
||||||
lcd_getstringsize("A", &fw, &fh);
|
tree_max_on_screen = recalc_screen_height();
|
||||||
tree_max_on_screen = (LCD_HEIGHT - MARGIN_Y) / fh;
|
|
||||||
/* make sure cursor is on screen */
|
/* make sure cursor is on screen */
|
||||||
while ( dircursor > tree_max_on_screen )
|
while ( dircursor > tree_max_on_screen )
|
||||||
{
|
{
|
||||||
|
|
@ -1114,8 +1136,7 @@ static bool dirbrowse(char *root, int *dirfilter)
|
||||||
set_file(buf, global_settings.font_file,
|
set_file(buf, global_settings.font_file,
|
||||||
MAX_FILENAME);
|
MAX_FILENAME);
|
||||||
|
|
||||||
lcd_getstringsize("A", &fw, &fh);
|
tree_max_on_screen = recalc_screen_height();
|
||||||
tree_max_on_screen = (LCD_HEIGHT - MARGIN_Y) / fh;
|
|
||||||
/* make sure cursor is on screen */
|
/* make sure cursor is on screen */
|
||||||
while ( dircursor > tree_max_on_screen ) {
|
while ( dircursor > tree_max_on_screen ) {
|
||||||
dircursor--;
|
dircursor--;
|
||||||
|
|
@ -1291,7 +1312,7 @@ static bool dirbrowse(char *root, int *dirfilter)
|
||||||
reload_root = true;
|
reload_root = true;
|
||||||
|
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
tree_max_on_screen = (LCD_HEIGHT - MARGIN_Y) / fh;
|
tree_max_on_screen = recalc_screen_height();
|
||||||
#endif
|
#endif
|
||||||
restore = true;
|
restore = true;
|
||||||
}
|
}
|
||||||
|
|
@ -1318,7 +1339,7 @@ static bool dirbrowse(char *root, int *dirfilter)
|
||||||
if (wps_show() == SYS_USB_CONNECTED)
|
if (wps_show() == SYS_USB_CONNECTED)
|
||||||
reload_root = true;
|
reload_root = true;
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
tree_max_on_screen = (LCD_HEIGHT - MARGIN_Y) / fh;
|
tree_max_on_screen = recalc_screen_height();
|
||||||
#endif
|
#endif
|
||||||
restore = true;
|
restore = true;
|
||||||
start_wps=false;
|
start_wps=false;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue