forked from len0rd/rockbox
Add %cs tag.
It can be used conditionally and indicates the current screen (wps, rec, radio screens or lists). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23207 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
71411ee83a
commit
9072a4558c
5 changed files with 58 additions and 1 deletions
|
|
@ -354,6 +354,7 @@ static const struct wps_tag all_tags[] = {
|
||||||
parse_setting_and_lang },
|
parse_setting_and_lang },
|
||||||
|
|
||||||
{ WPS_TOKEN_LASTTOUCH, "Tl", WPS_REFRESH_DYNAMIC, parse_timeout },
|
{ WPS_TOKEN_LASTTOUCH, "Tl", WPS_REFRESH_DYNAMIC, parse_timeout },
|
||||||
|
{ WPS_TOKEN_CURRENT_SCREEN, "cs", WPS_REFRESH_DYNAMIC, NULL },
|
||||||
{ WPS_NO_TOKEN, "T", 0, parse_touchregion },
|
{ WPS_NO_TOKEN, "T", 0, parse_touchregion },
|
||||||
|
|
||||||
{ WPS_TOKEN_UNKNOWN, "", 0, NULL }
|
{ WPS_TOKEN_UNKNOWN, "", 0, NULL }
|
||||||
|
|
|
||||||
|
|
@ -56,6 +56,10 @@
|
||||||
|
|
||||||
#include "wps_internals.h"
|
#include "wps_internals.h"
|
||||||
#include "wps.h"
|
#include "wps.h"
|
||||||
|
#include "root_menu.h"
|
||||||
|
#ifdef HAVE_RECORDING
|
||||||
|
#include "recording.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
static char* get_codectype(const struct mp3entry* id3)
|
static char* get_codectype(const struct mp3entry* id3)
|
||||||
{
|
{
|
||||||
|
|
@ -482,16 +486,20 @@ const char *get_token_value(struct gui_wps *gwps,
|
||||||
if (status_get_ffmode() == STATUS_FASTBACKWARD)
|
if (status_get_ffmode() == STATUS_FASTBACKWARD)
|
||||||
mode = 5;
|
mode = 5;
|
||||||
}
|
}
|
||||||
|
#ifdef HAVE_RECORDING
|
||||||
/* recording */
|
/* recording */
|
||||||
if (status == STATUS_RECORD)
|
if (status == STATUS_RECORD)
|
||||||
mode = 6;
|
mode = 6;
|
||||||
else if (status == STATUS_RECORD_PAUSE)
|
else if (status == STATUS_RECORD_PAUSE)
|
||||||
mode = 7;
|
mode = 7;
|
||||||
|
#endif
|
||||||
|
#if CONFIG_TUNER
|
||||||
/* radio */
|
/* radio */
|
||||||
if (status == STATUS_RADIO)
|
if (status == STATUS_RADIO)
|
||||||
mode = 8;
|
mode = 8;
|
||||||
else if (status == STATUS_RADIO_PAUSE)
|
else if (status == STATUS_RADIO_PAUSE)
|
||||||
mode = 9;
|
mode = 9;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (intval) {
|
if (intval) {
|
||||||
*intval = mode;
|
*intval = mode;
|
||||||
|
|
@ -823,6 +831,44 @@ const char *get_token_value(struct gui_wps *gwps,
|
||||||
cfg_to_string(token->value.i,buf,buf_size);
|
cfg_to_string(token->value.i,buf,buf_size);
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
|
case WPS_TOKEN_CURRENT_SCREEN:
|
||||||
|
{
|
||||||
|
int curr_screen = current_screen();
|
||||||
|
|
||||||
|
#ifdef HAVE_RECORDING
|
||||||
|
/* override current_screen() for recording screen since it may
|
||||||
|
* be entered from the radio screen */
|
||||||
|
if (in_recording_screen())
|
||||||
|
curr_screen = GO_TO_RECSCREEN;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
switch (curr_screen)
|
||||||
|
{
|
||||||
|
case GO_TO_WPS:
|
||||||
|
curr_screen = 2;
|
||||||
|
break;
|
||||||
|
#ifdef HAVE_RECORDING
|
||||||
|
case GO_TO_RECSCREEN:
|
||||||
|
curr_screen = 3;
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
#if CONFIG_TUNER
|
||||||
|
case GO_TO_FM:
|
||||||
|
curr_screen = 4;
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
default: /* lists */
|
||||||
|
curr_screen = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (intval)
|
||||||
|
{
|
||||||
|
|
||||||
|
*intval = curr_screen;
|
||||||
|
}
|
||||||
|
snprintf(buf, buf_size, "%d", curr_screen);
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
|
||||||
|
|
@ -192,6 +192,7 @@ enum wps_token_type {
|
||||||
|
|
||||||
/* Setting option */
|
/* Setting option */
|
||||||
WPS_TOKEN_SETTING,
|
WPS_TOKEN_SETTING,
|
||||||
|
WPS_TOKEN_CURRENT_SCREEN,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct wps_token {
|
struct wps_token {
|
||||||
|
|
|
||||||
|
|
@ -73,6 +73,9 @@ struct root_items {
|
||||||
static int last_screen = GO_TO_ROOT; /* unfortunatly needed so we can resume
|
static int last_screen = GO_TO_ROOT; /* unfortunatly needed so we can resume
|
||||||
or goto current track based on previous
|
or goto current track based on previous
|
||||||
screen */
|
screen */
|
||||||
|
|
||||||
|
int next_screen = GO_TO_ROOT;
|
||||||
|
|
||||||
static char current_track_path[MAX_PATH];
|
static char current_track_path[MAX_PATH];
|
||||||
static void rootmenu_track_changed_callback(void* param)
|
static void rootmenu_track_changed_callback(void* param)
|
||||||
{
|
{
|
||||||
|
|
@ -504,10 +507,14 @@ void previous_music_is_wps(void)
|
||||||
previous_music = GO_TO_WPS;
|
previous_music = GO_TO_WPS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int current_screen(void)
|
||||||
|
{
|
||||||
|
return next_screen;
|
||||||
|
}
|
||||||
|
|
||||||
void root_menu(void)
|
void root_menu(void)
|
||||||
{
|
{
|
||||||
int previous_browser = GO_TO_FILEBROWSER;
|
int previous_browser = GO_TO_FILEBROWSER;
|
||||||
int next_screen = GO_TO_ROOT;
|
|
||||||
int selected = 0;
|
int selected = 0;
|
||||||
|
|
||||||
if (global_settings.start_in_screen == 0)
|
if (global_settings.start_in_screen == 0)
|
||||||
|
|
|
||||||
|
|
@ -58,4 +58,6 @@ extern const struct menu_item_ex root_menu_;
|
||||||
|
|
||||||
extern void previous_music_is_wps(void);
|
extern void previous_music_is_wps(void);
|
||||||
|
|
||||||
|
extern int current_screen(void);
|
||||||
|
|
||||||
#endif /* __ROOT_MENU_H__ */
|
#endif /* __ROOT_MENU_H__ */
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue