summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorJonathan Gordon <rockbox@jdgordon.info>2010-06-15 08:38:23 +0000
committerJonathan Gordon <rockbox@jdgordon.info>2010-06-15 08:38:23 +0000
commit9a7a542de2cac4293a7834ecaebaa4dd14206683 (patch)
treecc8c3cab6b5b9adecc50ef0564a8c9c06037a575 /apps
parentdddd15746fce3a8610a60a6e7e84cf6fa8479f15 (diff)
first step of making touch regions usable in all skins, not just the WPS.. no user viewable changes just yet
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26854 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/action.h1
-rw-r--r--apps/gui/skin_engine/skin_parser.c29
-rw-r--r--apps/gui/wps.c20
3 files changed, 42 insertions, 8 deletions
diff --git a/apps/action.h b/apps/action.h
index 8e93f30d2a..afaf73e1c9 100644
--- a/apps/action.h
+++ b/apps/action.h
@@ -106,6 +106,7 @@ enum {
ACTION_STD_QUICKSCREEN,
ACTION_STD_KEYLOCK,
ACTION_STD_REC,
+ ACTION_STD_HOTKEY,
ACTION_F3, /* just so everything works again, possibly change me */
/* code context actions */
diff --git a/apps/gui/skin_engine/skin_parser.c b/apps/gui/skin_engine/skin_parser.c
index 365a1e6a26..d5a5f46cb0 100644
--- a/apps/gui/skin_engine/skin_parser.c
+++ b/apps/gui/skin_engine/skin_parser.c
@@ -1497,16 +1497,29 @@ static int parse_albumart_display(const char *wps_bufptr,
struct touchaction {const char* s; int action;};
static const struct touchaction touchactions[] = {
- {"play", ACTION_WPS_PLAY }, {"stop", ACTION_WPS_STOP },
- {"prev", ACTION_WPS_SKIPPREV }, {"next", ACTION_WPS_SKIPNEXT },
- {"ffwd", ACTION_WPS_SEEKFWD }, {"rwd", ACTION_WPS_SEEKBACK },
- {"menu", ACTION_WPS_MENU }, {"browse", ACTION_WPS_BROWSE },
+ /* generic actions, convert to screen actions on use */
+ {"prev", ACTION_STD_PREV }, {"next", ACTION_STD_NEXT },
+ {"rwd", ACTION_STD_PREVREPEAT }, {"ffwd", ACTION_STD_PREVREPEAT },
+ {"hotkey", ACTION_STD_HOTKEY}, {"select", ACTION_STD_OK },
+ {"menu", ACTION_STD_MENU }, {"cancel", ACTION_STD_CANCEL },
+ {"contextmenu", ACTION_STD_CONTEXT},{"quickscreen", ACTION_STD_QUICKSCREEN },
+ /* not really WPS specific, but no equivilant ACTION_STD_* */
+ {"voldown", ACTION_WPS_VOLDOWN}, {"volup", ACTION_WPS_VOLUP},
+
+ /* WPS specific actions */
+ {"browse", ACTION_WPS_BROWSE },
+ {"play", ACTION_WPS_PLAY }, {"stop", ACTION_WPS_STOP },
{"shuffle", ACTION_TOUCH_SHUFFLE }, {"repmode", ACTION_TOUCH_REPMODE },
- {"quickscreen", ACTION_WPS_QUICKSCREEN },{"contextmenu", ACTION_WPS_CONTEXT },
- {"playlist", ACTION_WPS_VIEW_PLAYLIST }, {"pitch", ACTION_WPS_PITCHSCREEN},
- {"voldown", ACTION_WPS_VOLDOWN}, {"volup", ACTION_WPS_VOLUP},
- {"hotkey", ACTION_WPS_HOTKEY}
+ {"pitch", ACTION_WPS_PITCHSCREEN}, {"playlist", ACTION_WPS_VIEW_PLAYLIST },
+
+#if CONFIG_TUNER
+ /* FM screen actions */
+ /* Also allow browse, play, stop from WPS codes */
+ {"mode", ACTION_FM_MODE }, {"record", ACTION_FM_RECORD },
+ {"presets", ACTION_FM_PRESET},
+#endif
};
+
static int parse_touchregion(const char *wps_bufptr,
struct wps_token *token, struct wps_data *wps_data)
{
diff --git a/apps/gui/wps.c b/apps/gui/wps.c
index 33e9b2167f..0c7975a01a 100644
--- a/apps/gui/wps.c
+++ b/apps/gui/wps.c
@@ -728,8 +728,28 @@ int wps_get_touchaction(struct wps_data *data)
if (released)
wps_disarm_touchregions(data);
+ /* Now we need to convert buttons to the WPS context */
+ switch (returncode)
+ {
+ case ACTION_STD_PREV:
+ return ACTION_WPS_SKIPPREV;
+ case ACTION_STD_PREVREPEAT:
+ return ACTION_WPS_SEEKBACK;
+ case ACTION_STD_NEXT:
+ return ACTION_WPS_SKIPNEXT;
+ case ACTION_STD_NEXTREPEAT:
+ return ACTION_WPS_SEEKFWD;
+ case ACTION_STD_MENU:
+ return ACTION_WPS_MENU;
+ case ACTION_STD_CONTEXT:
+ return ACTION_WPS_CONTEXT;
+ case ACTION_STD_QUICKSCREEN:
+ return ACTION_WPS_QUICKSCREEN;
+ }
+
if (returncode != ACTION_NONE)
return returncode;
+
if ((last_action == ACTION_WPS_SEEKBACK || last_action == ACTION_WPS_SEEKFWD))
return ACTION_WPS_STOPSEEK;