summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/cuesheet.c36
-rw-r--r--apps/cuesheet.h5
-rw-r--r--apps/gui/skin_engine/skin_tokens.c38
-rw-r--r--apps/gui/skin_engine/wps_internals.h3
4 files changed, 41 insertions, 41 deletions
diff --git a/apps/cuesheet.c b/apps/cuesheet.c
index a262b12d73..a6831fa97d 100644
--- a/apps/cuesheet.c
+++ b/apps/cuesheet.c
@@ -346,42 +346,6 @@ bool curr_cuesheet_skip(struct cuesheet *cue, int direction, unsigned long curr_
346 } 346 }
347 347
348} 348}
349const char *get_cuesheetid3_token(struct wps_token *token, struct mp3entry *id3,
350 int offset_tracks, char *buf, int buf_size)
351{
352 struct cuesheet *cue = id3?id3->cuesheet:NULL;
353 if (!cue || !cue->curr_track)
354 return NULL;
355
356 struct cue_track_info *track = cue->curr_track;
357 if (offset_tracks)
358 {
359 if (cue->curr_track_idx+offset_tracks < cue->track_count)
360 track+=offset_tracks;
361 else
362 return NULL;
363 }
364 switch (token->type)
365 {
366 case SKIN_TOKEN_METADATA_ARTIST:
367 return *track->performer ? track->performer : NULL;
368 case SKIN_TOKEN_METADATA_COMPOSER:
369 return *track->songwriter ? track->songwriter : NULL;
370 case SKIN_TOKEN_METADATA_ALBUM:
371 return *cue->title ? cue->title : NULL;
372 case SKIN_TOKEN_METADATA_ALBUM_ARTIST:
373 return *cue->performer ? cue->performer : NULL;
374 case SKIN_TOKEN_METADATA_TRACK_TITLE:
375 return *track->title ? track->title : NULL;
376 case SKIN_TOKEN_METADATA_TRACK_NUMBER:
377 snprintf(buf, buf_size, "%d/%d",
378 cue->curr_track_idx+offset_tracks+1, cue->track_count);
379 return buf;
380 default:
381 return NULL;
382 }
383 return NULL;
384}
385 349
386#ifdef HAVE_LCD_BITMAP 350#ifdef HAVE_LCD_BITMAP
387static inline void draw_veritcal_line_mark(struct screen * screen, 351static inline void draw_veritcal_line_mark(struct screen * screen,
diff --git a/apps/cuesheet.h b/apps/cuesheet.h
index 451fff5dbe..e8d77ca3a9 100644
--- a/apps/cuesheet.h
+++ b/apps/cuesheet.h
@@ -26,7 +26,6 @@
26#include "screens.h" 26#include "screens.h"
27#include "file.h" 27#include "file.h"
28#include "metadata.h" 28#include "metadata.h"
29#include "skin_engine/skin_tokens.h"
30 29
31#define MAX_NAME 80 /* Max length of information strings */ 30#define MAX_NAME 80 /* Max length of information strings */
32#define MAX_TRACKS 99 /* Max number of tracks in a cuesheet */ 31#define MAX_TRACKS 99 /* Max number of tracks in a cuesheet */
@@ -70,10 +69,6 @@ bool display_cuesheet_content(char* filename);
70/* finds the index of the current track played within a cuesheet */ 69/* finds the index of the current track played within a cuesheet */
71int cue_find_current_track(struct cuesheet *cue, unsigned long curpos); 70int cue_find_current_track(struct cuesheet *cue, unsigned long curpos);
72 71
73/* Get the id3 fields from the cuesheet */
74const char *get_cuesheetid3_token(struct wps_token *token, struct mp3entry *id3,
75 int offset_tracks, char *buf, int buf_size);
76
77/* skip to next track in the cuesheet towards "direction" (which is 1 or -1) */ 72/* skip to next track in the cuesheet towards "direction" (which is 1 or -1) */
78bool curr_cuesheet_skip(struct cuesheet *cue, int direction, unsigned long curr_pos); 73bool curr_cuesheet_skip(struct cuesheet *cue, int direction, unsigned long curr_pos);
79 74
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