diff options
author | Frank Gevaerts <frank@gevaerts.be> | 2009-11-09 17:57:17 +0000 |
---|---|---|
committer | Frank Gevaerts <frank@gevaerts.be> | 2009-11-09 17:57:17 +0000 |
commit | 8c15799e7056729fab8ca06de406bffe89602558 (patch) | |
tree | 659668b7962351c5886e0b898d5822acc907e454 /apps/gui | |
parent | 7de32efe1c44d5278be53cf7f3a0dbc7b6fe1493 (diff) | |
download | rockbox-8c15799e7056729fab8ca06de406bffe89602558.tar.gz rockbox-8c15799e7056729fab8ca06de406bffe89602558.zip |
Implement %Ss for playback speed
This is similar to %Sp for pitch. The conditional form %?Ss<...> is also
supported in the same way as FS#10680; you can use
%?Ss<%xdAa|%xdAb|>
to show an icon of a tortoise (subpicture 1 of image A) or a hare
(subpicture 2 of image A) when not playing at the normal speed.
Flyspray: FS#10681
Author: Junio C Hamano
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23591 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/gui')
-rw-r--r-- | apps/gui/skin_engine/skin_parser.c | 3 | ||||
-rw-r--r-- | apps/gui/skin_engine/skin_tokens.c | 20 | ||||
-rw-r--r-- | apps/gui/skin_engine/skin_tokens.h | 1 |
3 files changed, 24 insertions, 0 deletions
diff --git a/apps/gui/skin_engine/skin_parser.c b/apps/gui/skin_engine/skin_parser.c index d06494d908..0e21ec0c81 100644 --- a/apps/gui/skin_engine/skin_parser.c +++ b/apps/gui/skin_engine/skin_parser.c | |||
@@ -279,6 +279,9 @@ static const struct wps_tag all_tags[] = { | |||
279 | #if (CONFIG_CODEC != MAS3507D) | 279 | #if (CONFIG_CODEC != MAS3507D) |
280 | { WPS_TOKEN_SOUND_PITCH, "Sp", WPS_REFRESH_DYNAMIC, NULL }, | 280 | { WPS_TOKEN_SOUND_PITCH, "Sp", WPS_REFRESH_DYNAMIC, NULL }, |
281 | #endif | 281 | #endif |
282 | #if (CONFIG_CODEC == SWCODEC) | ||
283 | { WPS_TOKEN_SOUND_SPEED, "Ss", WPS_REFRESH_DYNAMIC, NULL }, | ||
284 | #endif | ||
282 | #if (CONFIG_LED == LED_VIRTUAL) || defined(HAVE_REMOTE_LCD) | 285 | #if (CONFIG_LED == LED_VIRTUAL) || defined(HAVE_REMOTE_LCD) |
283 | { WPS_TOKEN_VLED_HDD, "lh", WPS_REFRESH_DYNAMIC, NULL }, | 286 | { WPS_TOKEN_VLED_HDD, "lh", WPS_REFRESH_DYNAMIC, NULL }, |
284 | #endif | 287 | #endif |
diff --git a/apps/gui/skin_engine/skin_tokens.c b/apps/gui/skin_engine/skin_tokens.c index 9cd8dfcdb0..b271bfedfc 100644 --- a/apps/gui/skin_engine/skin_tokens.c +++ b/apps/gui/skin_engine/skin_tokens.c | |||
@@ -49,6 +49,7 @@ | |||
49 | #include "playlist.h" | 49 | #include "playlist.h" |
50 | #if CONFIG_CODEC == SWCODEC | 50 | #if CONFIG_CODEC == SWCODEC |
51 | #include "playback.h" | 51 | #include "playback.h" |
52 | #include "tdspeed.h" | ||
52 | #endif | 53 | #endif |
53 | #include "viewport.h" | 54 | #include "viewport.h" |
54 | 55 | ||
@@ -832,6 +833,25 @@ const char *get_token_value(struct gui_wps *gwps, | |||
832 | } | 833 | } |
833 | #endif | 834 | #endif |
834 | 835 | ||
836 | #if CONFIG_CODEC == SWCODEC | ||
837 | case WPS_TOKEN_SOUND_SPEED: | ||
838 | { | ||
839 | int32_t pitch = sound_get_pitch(); | ||
840 | int32_t speed; | ||
841 | if (dsp_timestretch_available()) | ||
842 | speed = GET_SPEED(pitch, dsp_get_timestretch()); | ||
843 | else | ||
844 | speed = pitch; | ||
845 | snprintf(buf, buf_size, "%ld.%ld", | ||
846 | speed / PITCH_SPEED_PRECISION, | ||
847 | (speed % PITCH_SPEED_PRECISION) / (PITCH_SPEED_PRECISION / 10)); | ||
848 | if (intval) | ||
849 | *intval = pitch_speed_enum(limit, speed, | ||
850 | PITCH_SPEED_PRECISION * 100); | ||
851 | return buf; | ||
852 | } | ||
853 | #endif | ||
854 | |||
835 | case WPS_TOKEN_MAIN_HOLD: | 855 | case WPS_TOKEN_MAIN_HOLD: |
836 | #ifdef HAS_BUTTON_HOLD | 856 | #ifdef HAS_BUTTON_HOLD |
837 | if (button_hold()) | 857 | if (button_hold()) |
diff --git a/apps/gui/skin_engine/skin_tokens.h b/apps/gui/skin_engine/skin_tokens.h index cb8e671097..27594db27f 100644 --- a/apps/gui/skin_engine/skin_tokens.h +++ b/apps/gui/skin_engine/skin_tokens.h | |||
@@ -68,6 +68,7 @@ enum wps_token_type { | |||
68 | WPS_TOKEN_SOUND_PITCH, | 68 | WPS_TOKEN_SOUND_PITCH, |
69 | #endif | 69 | #endif |
70 | #if (CONFIG_CODEC == SWCODEC) | 70 | #if (CONFIG_CODEC == SWCODEC) |
71 | WPS_TOKEN_SOUND_SPEED, | ||
71 | WPS_TOKEN_REPLAYGAIN, | 72 | WPS_TOKEN_REPLAYGAIN, |
72 | WPS_TOKEN_CROSSFADE, | 73 | WPS_TOKEN_CROSSFADE, |
73 | #endif | 74 | #endif |