diff options
Diffstat (limited to 'apps/gui/skin_engine/skin_tokens.c')
-rw-r--r-- | apps/gui/skin_engine/skin_tokens.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/apps/gui/skin_engine/skin_tokens.c b/apps/gui/skin_engine/skin_tokens.c index c5e1ebc831..a05327907d 100644 --- a/apps/gui/skin_engine/skin_tokens.c +++ b/apps/gui/skin_engine/skin_tokens.c | |||
@@ -155,6 +155,42 @@ static int pitch_speed_enum(int range, int32_t val, int32_t normval) | |||
155 | } | 155 | } |
156 | #endif | 156 | #endif |
157 | 157 | ||
158 | const char *get_cuesheetid3_token(struct wps_token *token, struct mp3entry *id3, | ||
159 | int offset_tracks, char *buf, int buf_size) | ||
160 | { | ||
161 | struct cuesheet *cue = id3?id3->cuesheet:NULL; | ||
162 | if (!cue || !cue->curr_track) | ||
163 | return NULL; | ||
164 | |||
165 | struct cue_track_info *track = cue->curr_track; | ||
166 | if (offset_tracks) | ||
167 | { | ||
168 | if (cue->curr_track_idx+offset_tracks < cue->track_count) | ||
169 | track+=offset_tracks; | ||
170 | else | ||
171 | return NULL; | ||
172 | } | ||
173 | switch (token->type) | ||
174 | { | ||
175 | case SKIN_TOKEN_METADATA_ARTIST: | ||
176 | return *track->performer ? track->performer : NULL; | ||
177 | case SKIN_TOKEN_METADATA_COMPOSER: | ||
178 | return *track->songwriter ? track->songwriter : NULL; | ||
179 | case SKIN_TOKEN_METADATA_ALBUM: | ||
180 | return *cue->title ? cue->title : NULL; | ||
181 | case SKIN_TOKEN_METADATA_ALBUM_ARTIST: | ||
182 | return *cue->performer ? cue->performer : NULL; | ||
183 | case SKIN_TOKEN_METADATA_TRACK_TITLE: | ||
184 | return *track->title ? track->title : NULL; | ||
185 | case SKIN_TOKEN_METADATA_TRACK_NUMBER: | ||
186 | snprintf(buf, buf_size, "%d/%d", | ||
187 | cue->curr_track_idx+offset_tracks+1, cue->track_count); | ||
188 | return buf; | ||
189 | default: | ||
190 | return NULL; | ||
191 | } | ||
192 | return NULL; | ||
193 | } | ||
158 | 194 | ||
159 | /* All tokens which only need the info to return a value go in here */ | 195 | /* All tokens which only need the info to return a value go in here */ |
160 | const char *get_id3_token(struct wps_token *token, struct mp3entry *id3, | 196 | const char *get_id3_token(struct wps_token *token, struct mp3entry *id3, |
@@ -1392,3 +1428,5 @@ const char *get_token_value(struct gui_wps *gwps, | |||
1392 | return NULL; | 1428 | return NULL; |
1393 | } | 1429 | } |
1394 | } | 1430 | } |
1431 | |||
1432 | |||