summaryrefslogtreecommitdiffstats
path: root/firmware/mpeg.c
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2007-03-01 00:26:24 +0000
committerJens Arnold <amiconn@rockbox.org>2007-03-01 00:26:24 +0000
commit509a96dd5141dbb9edeadf4480d8aa632b563a27 (patch)
treef7419e2c6865d3d6d1b6501d97d473a2b39845b4 /firmware/mpeg.c
parent35ad10be598ccfb0a0394d6def18fa32c74d3d9d (diff)
downloadrockbox-509a96dd5141dbb9edeadf4480d8aa632b563a27.tar.gz
rockbox-509a96dd5141dbb9edeadf4480d8aa632b563a27.zip
Hook up .cue file detection via a callback klugde on HWCODEC, to make cue sheet support actually work.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12526 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/mpeg.c')
-rw-r--r--firmware/mpeg.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/firmware/mpeg.c b/firmware/mpeg.c
index cefa699e6d..9afa8a20bd 100644
--- a/firmware/mpeg.c
+++ b/firmware/mpeg.c
@@ -121,6 +121,9 @@ void (*track_changed_callback)(struct mp3entry *id3);
void (*track_buffer_callback)(struct mp3entry *id3, bool last_track);
void (*track_unbuffer_callback)(struct mp3entry *id3, bool last_track);
+/* Cuesheet callback */
+static bool (*cuesheet_callback)(const char *filename) = NULL;
+
static const char mpeg_thread_name[] = "mpeg";
static unsigned int mpeg_errno;
@@ -490,6 +493,11 @@ void audio_set_track_changed_event(void (*handler)(struct mp3entry *id3))
track_changed_callback = handler;
}
+void audio_set_cuesheet_callback(bool (*handler)(const char *filename))
+{
+ cuesheet_callback = handler;
+}
+
#ifndef SIMULATOR
/* Send callback events to notify about removing old tracks. */
static void generate_unbuffer_events(void)
@@ -926,6 +934,9 @@ static struct trackdata *add_track_to_tag_list(const char *filename)
if (track->id3.album)
lcd_getstringsize(track->id3.album, NULL, NULL);
#endif
+ if (cuesheet_callback)
+ if (cuesheet_callback(filename))
+ track->id3.cuesheet_type = 1;
track_write_idx = (track_write_idx+1) & MAX_TRACK_ENTRIES_MASK;
debug_tags();