diff options
author | Jonathan Gordon <rockbox@jdgordon.info> | 2009-05-17 06:25:18 +0000 |
---|---|---|
committer | Jonathan Gordon <rockbox@jdgordon.info> | 2009-05-17 06:25:18 +0000 |
commit | 2172c9147361829e4a65f1c918450b617c4d04d5 (patch) | |
tree | cb17cd04ca916afa99898347068eacc1b0a1dff6 /apps/gui/wps_parser.c | |
parent | 03ea24929779fd29ac95cb0bfd8945d269f3733d (diff) | |
download | rockbox-2172c9147361829e4a65f1c918450b617c4d04d5.tar.gz rockbox-2172c9147361829e4a65f1c918450b617c4d04d5.zip |
get repeat/hold actions working on the touchscreen WPS. prepending an action with & means that this will only get triggered if you hold down the area. cabbie WPS updated so the fwd/rwd icons will do that when held or skip fwd/back if just pressed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20974 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/gui/wps_parser.c')
-rw-r--r-- | apps/gui/wps_parser.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/apps/gui/wps_parser.c b/apps/gui/wps_parser.c index 7211e6c86a..bd599509ae 100644 --- a/apps/gui/wps_parser.c +++ b/apps/gui/wps_parser.c | |||
@@ -1163,6 +1163,7 @@ struct touchaction {char* s; int action;}; | |||
1163 | static struct touchaction touchactions[] = { | 1163 | static struct touchaction touchactions[] = { |
1164 | {"play", ACTION_WPS_PLAY }, {"stop", ACTION_WPS_STOP }, | 1164 | {"play", ACTION_WPS_PLAY }, {"stop", ACTION_WPS_STOP }, |
1165 | {"prev", ACTION_WPS_SKIPPREV }, {"next", ACTION_WPS_SKIPNEXT }, | 1165 | {"prev", ACTION_WPS_SKIPPREV }, {"next", ACTION_WPS_SKIPNEXT }, |
1166 | {"ffwd", ACTION_WPS_SEEKFWD }, {"rwd", ACTION_WPS_SEEKBACK }, | ||
1166 | {"menu", ACTION_WPS_MENU }, {"browse", ACTION_WPS_BROWSE }, | 1167 | {"menu", ACTION_WPS_MENU }, {"browse", ACTION_WPS_BROWSE }, |
1167 | {"shuffle", ACTION_TOUCH_SHUFFLE }, {"repmode", ACTION_TOUCH_REPMODE }, | 1168 | {"shuffle", ACTION_TOUCH_SHUFFLE }, {"repmode", ACTION_TOUCH_REPMODE }, |
1168 | {"quickscreen", ACTION_WPS_QUICKSCREEN },{"contextmenu", ACTION_WPS_CONTEXT }, | 1169 | {"quickscreen", ACTION_WPS_QUICKSCREEN },{"contextmenu", ACTION_WPS_CONTEXT }, |
@@ -1178,13 +1179,14 @@ static int parse_touchregion(const char *wps_bufptr, | |||
1178 | int x,y,w,h; | 1179 | int x,y,w,h; |
1179 | 1180 | ||
1180 | /* format: %T|x|y|width|height|action| | 1181 | /* format: %T|x|y|width|height|action| |
1182 | * if action starts with & the area must be held to happen | ||
1181 | * action is one of: | 1183 | * action is one of: |
1182 | * play - play/pause playback | 1184 | * play - play/pause playback |
1183 | * stop - stop playback, exit the wps | 1185 | * stop - stop playback, exit the wps |
1184 | * prev - prev track | 1186 | * prev - prev track |
1185 | * next - next track | 1187 | * next - next track |
1186 | * ffwd | 1188 | * ffwd - seek forward |
1187 | * rwd | 1189 | * rwd - seek backwards |
1188 | * menu - go back to the main menu | 1190 | * menu - go back to the main menu |
1189 | * browse - go back to the file/db browser | 1191 | * browse - go back to the file/db browser |
1190 | * shuffle - toggle shuffle mode | 1192 | * shuffle - toggle shuffle mode |
@@ -1213,6 +1215,14 @@ static int parse_touchregion(const char *wps_bufptr, | |||
1213 | region->height = h; | 1215 | region->height = h; |
1214 | region->wvp = &wps_data->viewports[wps_data->num_viewports]; | 1216 | region->wvp = &wps_data->viewports[wps_data->num_viewports]; |
1215 | i = 0; | 1217 | i = 0; |
1218 | if (*action == '&') | ||
1219 | { | ||
1220 | action++; | ||
1221 | region->repeat = true; | ||
1222 | } | ||
1223 | else | ||
1224 | region->repeat = false; | ||
1225 | |||
1216 | while ((region->action == ACTION_NONE) && | 1226 | while ((region->action == ACTION_NONE) && |
1217 | (i < sizeof(touchactions)/sizeof(*touchactions))) | 1227 | (i < sizeof(touchactions)/sizeof(*touchactions))) |
1218 | { | 1228 | { |