diff options
author | Thomas Martitz <kugel@rockbox.org> | 2009-10-16 19:14:33 +0000 |
---|---|---|
committer | Thomas Martitz <kugel@rockbox.org> | 2009-10-16 19:14:33 +0000 |
commit | 9072a4558cb1db2b82ca3b001f6b95b5afda16c8 (patch) | |
tree | a97bb48981118cee6fd012dfcc55f12d35d0f38d /apps/gui | |
parent | 71411ee83a224034c5779c8046539fdd136d213f (diff) | |
download | rockbox-9072a4558cb1db2b82ca3b001f6b95b5afda16c8.tar.gz rockbox-9072a4558cb1db2b82ca3b001f6b95b5afda16c8.zip |
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
Diffstat (limited to 'apps/gui')
-rw-r--r-- | apps/gui/skin_engine/skin_parser.c | 1 | ||||
-rw-r--r-- | apps/gui/skin_engine/skin_tokens.c | 46 | ||||
-rw-r--r-- | apps/gui/skin_engine/skin_tokens.h | 1 |
3 files changed, 48 insertions, 0 deletions
diff --git a/apps/gui/skin_engine/skin_parser.c b/apps/gui/skin_engine/skin_parser.c index dbbdc32730..016126bffb 100644 --- a/apps/gui/skin_engine/skin_parser.c +++ b/apps/gui/skin_engine/skin_parser.c | |||
@@ -354,6 +354,7 @@ static const struct wps_tag all_tags[] = { | |||
354 | parse_setting_and_lang }, | 354 | parse_setting_and_lang }, |
355 | 355 | ||
356 | { WPS_TOKEN_LASTTOUCH, "Tl", WPS_REFRESH_DYNAMIC, parse_timeout }, | 356 | { WPS_TOKEN_LASTTOUCH, "Tl", WPS_REFRESH_DYNAMIC, parse_timeout }, |
357 | { WPS_TOKEN_CURRENT_SCREEN, "cs", WPS_REFRESH_DYNAMIC, NULL }, | ||
357 | { WPS_NO_TOKEN, "T", 0, parse_touchregion }, | 358 | { WPS_NO_TOKEN, "T", 0, parse_touchregion }, |
358 | 359 | ||
359 | { WPS_TOKEN_UNKNOWN, "", 0, NULL } | 360 | { WPS_TOKEN_UNKNOWN, "", 0, NULL } |
diff --git a/apps/gui/skin_engine/skin_tokens.c b/apps/gui/skin_engine/skin_tokens.c index 2df087bb70..ac37c6dd3e 100644 --- a/apps/gui/skin_engine/skin_tokens.c +++ b/apps/gui/skin_engine/skin_tokens.c | |||
@@ -56,6 +56,10 @@ | |||
56 | 56 | ||
57 | #include "wps_internals.h" | 57 | #include "wps_internals.h" |
58 | #include "wps.h" | 58 | #include "wps.h" |
59 | #include "root_menu.h" | ||
60 | #ifdef HAVE_RECORDING | ||
61 | #include "recording.h" | ||
62 | #endif | ||
59 | 63 | ||
60 | static char* get_codectype(const struct mp3entry* id3) | 64 | static char* get_codectype(const struct mp3entry* id3) |
61 | { | 65 | { |
@@ -482,16 +486,20 @@ const char *get_token_value(struct gui_wps *gwps, | |||
482 | if (status_get_ffmode() == STATUS_FASTBACKWARD) | 486 | if (status_get_ffmode() == STATUS_FASTBACKWARD) |
483 | mode = 5; | 487 | mode = 5; |
484 | } | 488 | } |
489 | #ifdef HAVE_RECORDING | ||
485 | /* recording */ | 490 | /* recording */ |
486 | if (status == STATUS_RECORD) | 491 | if (status == STATUS_RECORD) |
487 | mode = 6; | 492 | mode = 6; |
488 | else if (status == STATUS_RECORD_PAUSE) | 493 | else if (status == STATUS_RECORD_PAUSE) |
489 | mode = 7; | 494 | mode = 7; |
495 | #endif | ||
496 | #if CONFIG_TUNER | ||
490 | /* radio */ | 497 | /* radio */ |
491 | if (status == STATUS_RADIO) | 498 | if (status == STATUS_RADIO) |
492 | mode = 8; | 499 | mode = 8; |
493 | else if (status == STATUS_RADIO_PAUSE) | 500 | else if (status == STATUS_RADIO_PAUSE) |
494 | mode = 9; | 501 | mode = 9; |
502 | #endif | ||
495 | 503 | ||
496 | if (intval) { | 504 | if (intval) { |
497 | *intval = mode; | 505 | *intval = mode; |
@@ -823,6 +831,44 @@ const char *get_token_value(struct gui_wps *gwps, | |||
823 | cfg_to_string(token->value.i,buf,buf_size); | 831 | cfg_to_string(token->value.i,buf,buf_size); |
824 | return buf; | 832 | return buf; |
825 | } | 833 | } |
834 | case WPS_TOKEN_CURRENT_SCREEN: | ||
835 | { | ||
836 | int curr_screen = current_screen(); | ||
837 | |||
838 | #ifdef HAVE_RECORDING | ||
839 | /* override current_screen() for recording screen since it may | ||
840 | * be entered from the radio screen */ | ||
841 | if (in_recording_screen()) | ||
842 | curr_screen = GO_TO_RECSCREEN; | ||
843 | #endif | ||
844 | |||
845 | switch (curr_screen) | ||
846 | { | ||
847 | case GO_TO_WPS: | ||
848 | curr_screen = 2; | ||
849 | break; | ||
850 | #ifdef HAVE_RECORDING | ||
851 | case GO_TO_RECSCREEN: | ||
852 | curr_screen = 3; | ||
853 | break; | ||
854 | #endif | ||
855 | #if CONFIG_TUNER | ||
856 | case GO_TO_FM: | ||
857 | curr_screen = 4; | ||
858 | break; | ||
859 | #endif | ||
860 | default: /* lists */ | ||
861 | curr_screen = 1; | ||
862 | break; | ||
863 | } | ||
864 | if (intval) | ||
865 | { | ||
866 | |||
867 | *intval = curr_screen; | ||
868 | } | ||
869 | snprintf(buf, buf_size, "%d", curr_screen); | ||
870 | return buf; | ||
871 | } | ||
826 | 872 | ||
827 | default: | 873 | default: |
828 | return NULL; | 874 | return NULL; |
diff --git a/apps/gui/skin_engine/skin_tokens.h b/apps/gui/skin_engine/skin_tokens.h index 86425424d9..6d783551e6 100644 --- a/apps/gui/skin_engine/skin_tokens.h +++ b/apps/gui/skin_engine/skin_tokens.h | |||
@@ -192,6 +192,7 @@ enum wps_token_type { | |||
192 | 192 | ||
193 | /* Setting option */ | 193 | /* Setting option */ |
194 | WPS_TOKEN_SETTING, | 194 | WPS_TOKEN_SETTING, |
195 | WPS_TOKEN_CURRENT_SCREEN, | ||
195 | }; | 196 | }; |
196 | 197 | ||
197 | struct wps_token { | 198 | struct wps_token { |