summaryrefslogtreecommitdiff
path: root/apps/gui/skin_engine
diff options
context:
space:
mode:
authorThomas Martitz <kugel@rockbox.org>2009-10-16 19:14:33 +0000
committerThomas Martitz <kugel@rockbox.org>2009-10-16 19:14:33 +0000
commit9072a4558cb1db2b82ca3b001f6b95b5afda16c8 (patch)
treea97bb48981118cee6fd012dfcc55f12d35d0f38d /apps/gui/skin_engine
parent71411ee83a224034c5779c8046539fdd136d213f (diff)
downloadrockbox-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/skin_engine')
-rw-r--r--apps/gui/skin_engine/skin_parser.c1
-rw-r--r--apps/gui/skin_engine/skin_tokens.c46
-rw-r--r--apps/gui/skin_engine/skin_tokens.h1
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
60static char* get_codectype(const struct mp3entry* id3) 64static 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
197struct wps_token { 198struct wps_token {