From 87aa86cedd27445e51b0ad38dbc7cf2bdaa42364 Mon Sep 17 00:00:00 2001 From: Jonathan Gordon Date: Sun, 27 Mar 2011 08:01:58 +0000 Subject: Skin variables for touchscreen targets (origional implementation by Jens Theeß) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit %vs(name, [set|inc|dec], value [,max]) - name is the id, set sets the value, inc increments by value, dec decrements by value %vg(name) - get the current value %vl(name [,timeout]) - 'has it changed in [timeout]'? values start at 1 and are all reset to 1 on skin load git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29655 a1c6a512-1295-4272-9138-f99709370657 --- apps/gui/skin_engine/wps_internals.h | 47 +++++++++++++++++++++++++++--------- 1 file changed, 36 insertions(+), 11 deletions(-) (limited to 'apps/gui/skin_engine/wps_internals.h') diff --git a/apps/gui/skin_engine/wps_internals.h b/apps/gui/skin_engine/wps_internals.h index 0f5cb6df0c..4714609c1e 100644 --- a/apps/gui/skin_engine/wps_internals.h +++ b/apps/gui/skin_engine/wps_internals.h @@ -199,12 +199,12 @@ struct touchregion { on repeat or release. */ union { /* Extra data, action dependant */ struct touchsetting { - const struct settings_list *setting; /* setting being controlled */ - union { /* Value to set the setting to for ACTION_SETTING_SET */ - int number; - char* text; - } value; - } setting_data; + const struct settings_list *setting; /* setting being controlled */ + union { /* Value to set the setting to for ACTION_SETTING_SET */ + int number; + char* text; + } value; + } setting_data; int value; }; long last_press; /* last tick this was pressed */ @@ -272,6 +272,24 @@ struct logical_if { int num_options; }; +#ifdef HAVE_SKIN_VARIABLES +struct skin_var { + const char *label; + int value; + long last_changed; +}; +struct skin_var_lastchange { + struct skin_var *var; + long timeout; +}; +struct skin_var_changer { + struct skin_var *var; + int newval; + bool direct; /* true to make val=newval, false for val += newval */ + int max; +}; +#endif + /* wps_data this struct holds all necessary data which describes the viewable content of a wps */ @@ -296,6 +314,10 @@ struct wps_data int playback_aa_slot; #endif +#ifdef HAVE_SKIN_VARIABLES + struct skin_token_list *skinvars; +#endif + #ifdef HAVE_LCD_BITMAP bool peak_meter_enabled; bool wps_sb_tag; @@ -364,17 +386,20 @@ const char *get_radio_token(struct wps_token *token, int preset_offset, #endif enum skin_find_what { - SKIN_FIND_VP = 0, - SKIN_FIND_UIVP, + SKIN_FIND_VP = 0, + SKIN_FIND_UIVP, #ifdef HAVE_LCD_BITMAP - SKIN_FIND_IMAGE, + SKIN_FIND_IMAGE, #endif #ifdef HAVE_TOUCHSCREEN - SKIN_FIND_TOUCHREGION, + SKIN_FIND_TOUCHREGION, +#endif +#ifdef HAVE_SKIN_VARIABLES + SKIN_VARIABLE, #endif }; void *skin_find_item(const char *label, enum skin_find_what what, - struct wps_data *data); + struct wps_data *data); #ifdef SIMULATOR #define DEBUG_SKIN_ENGINE extern bool debug_wps; -- cgit v1.2.3