summaryrefslogtreecommitdiff
path: root/apps/gui
diff options
context:
space:
mode:
Diffstat (limited to 'apps/gui')
-rw-r--r--apps/gui/skin_engine/skin_tokens.c38
-rw-r--r--apps/gui/skin_engine/wps_internals.h3
2 files changed, 41 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
158const 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 */
160const char *get_id3_token(struct wps_token *token, struct mp3entry *id3, 196const 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
diff --git a/apps/gui/skin_engine/wps_internals.h b/apps/gui/skin_engine/wps_internals.h
index ec37560e79..f8e025956e 100644
--- a/apps/gui/skin_engine/wps_internals.h
+++ b/apps/gui/skin_engine/wps_internals.h
@@ -329,6 +329,9 @@ const char *get_token_value(struct gui_wps *gwps,
329 char *buf, int buf_size, 329 char *buf, int buf_size,
330 int *intval); 330 int *intval);
331 331
332/* Get the id3 fields from the cuesheet */
333const char *get_cuesheetid3_token(struct wps_token *token, struct mp3entry *id3,
334 int offset_tracks, char *buf, int buf_size);
332const char *get_id3_token(struct wps_token *token, struct mp3entry *id3, 335const char *get_id3_token(struct wps_token *token, struct mp3entry *id3,
333 char *buf, int buf_size, int limit, int *intval); 336 char *buf, int buf_size, int limit, int *intval);
334#if CONFIG_TUNER 337#if CONFIG_TUNER