From eb0061411d6fa08ab540107cdbd2906e18e516d7 Mon Sep 17 00:00:00 2001 From: Jonathan Gordon Date: Fri, 24 Jul 2009 01:13:30 +0000 Subject: more cuesheet cleanup. pass the cuesheet into cue functions so they dont have to call audio_current_track() git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22020 a1c6a512-1295-4272-9138-f99709370657 --- apps/cuesheet.c | 17 ++++++++--------- apps/cuesheet.h | 5 +++-- apps/gui/gwps-common.c | 2 +- apps/gui/gwps.c | 4 ++-- 4 files changed, 14 insertions(+), 14 deletions(-) (limited to 'apps') diff --git a/apps/cuesheet.c b/apps/cuesheet.c index aaa2670a40..deb0769320 100644 --- a/apps/cuesheet.c +++ b/apps/cuesheet.c @@ -317,12 +317,11 @@ bool display_cuesheet_content(char* filename) * it also returns false if we weren't in a cuesheet. * direction should be 1 or -1. */ -bool curr_cuesheet_skip(int direction, unsigned long curr_pos) +bool curr_cuesheet_skip(struct cuesheet *cue, int direction, unsigned long curr_pos) { - struct cuesheet *curr_cue = audio_current_track()->cuesheet; - int track = cue_find_current_track(curr_cue, curr_pos); + int track = cue_find_current_track(cue, curr_pos); - if (direction >= 0 && track == curr_cue->track_count - 1) + if (direction >= 0 && track == cue->track_count - 1) { /* we want to get out of the cuesheet */ return false; @@ -332,7 +331,7 @@ bool curr_cuesheet_skip(int direction, unsigned long curr_pos) if (!(direction <= 0 && track == 0)) track += direction; - seek(curr_cue->tracks[track].offset); + seek(cue->tracks[track].offset); return true; } @@ -372,15 +371,15 @@ static inline void draw_veritcal_line_mark(struct screen * screen, /* draw the cuesheet markers for a track of length "tracklen", between (x1,y) and (x2,y) */ -void cue_draw_markers(struct screen *screen, unsigned long tracklen, +void cue_draw_markers(struct screen *screen, struct cuesheet *cue, + unsigned long tracklen, int x1, int x2, int y, int h) { - struct cuesheet *curr_cue = audio_current_track()->cuesheet; int i,xi; int w = x2 - x1; - for (i=1; i < curr_cue->track_count; i++) + for (i=1; i < cue->track_count; i++) { - xi = x1 + (w * curr_cue->tracks[i].offset)/tracklen; + xi = x1 + (w * cue->tracks[i].offset)/tracklen; draw_veritcal_line_mark(screen, xi, y, h); } } diff --git a/apps/cuesheet.h b/apps/cuesheet.h index 8ee0f6b3a7..c5d736573b 100644 --- a/apps/cuesheet.h +++ b/apps/cuesheet.h @@ -73,11 +73,12 @@ int cue_find_current_track(struct cuesheet *cue, unsigned long curpos); void cue_spoof_id3(struct cuesheet *cue, struct mp3entry *id3); /* skip to next track in the cuesheet towards "direction" (which is 1 or -1) */ -bool curr_cuesheet_skip(int direction, unsigned long curr_pos); +bool curr_cuesheet_skip(struct cuesheet *cue, int direction, unsigned long curr_pos); #ifdef HAVE_LCD_BITMAP /* draw track markers on the progressbar */ -void cue_draw_markers(struct screen *screen, unsigned long tracklen, +void cue_draw_markers(struct screen *screen, struct cuesheet *cue, + unsigned long tracklen, int x1, int x2, int y, int h); #endif diff --git a/apps/gui/gwps-common.c b/apps/gui/gwps-common.c index da70f0e451..721682f248 100644 --- a/apps/gui/gwps-common.c +++ b/apps/gui/gwps-common.c @@ -412,7 +412,7 @@ static void draw_progressbar(struct gui_wps *gwps, #endif if (state->id3->cuesheet) - cue_draw_markers(display, state->id3->length, + cue_draw_markers(display, state->id3->cuesheet, state->id3->length, pb->x, pb->x + pb->width, y+1, pb->height-2); } diff --git a/apps/gui/gwps.c b/apps/gui/gwps.c index 154864a280..10c2a6806b 100644 --- a/apps/gui/gwps.c +++ b/apps/gui/gwps.c @@ -151,7 +151,7 @@ static void prev_track(unsigned long skip_thresh) { if (wps_state.id3->cuesheet) { - curr_cuesheet_skip(-1, wps_state.id3->elapsed); + curr_cuesheet_skip(wps_state.id3->cuesheet, -1, wps_state.id3->elapsed); return; } @@ -176,7 +176,7 @@ static void next_track(void) /* take care of if we're playing a cuesheet */ if (wps_state.id3->cuesheet) { - if (curr_cuesheet_skip(1, wps_state.id3->elapsed)) + if (curr_cuesheet_skip(wps_state.id3->cuesheet, 1, wps_state.id3->elapsed)) { /* if the result was false, then we really want to skip to the next track */ -- cgit v1.2.3