summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Gordon <rockbox@jdgordon.info>2009-07-24 01:13:30 +0000
committerJonathan Gordon <rockbox@jdgordon.info>2009-07-24 01:13:30 +0000
commiteb0061411d6fa08ab540107cdbd2906e18e516d7 (patch)
treebf605b7bb1ecf9717b5e1a1b1fc1ae157ba04db4
parentbd9156a4ada3eb036192f9f82421f38c107f25c9 (diff)
downloadrockbox-eb0061411d6fa08ab540107cdbd2906e18e516d7.zip
rockbox-eb0061411d6fa08ab540107cdbd2906e18e516d7.tar.gz
rockbox-eb0061411d6fa08ab540107cdbd2906e18e516d7.tar.bz2
rockbox-eb0061411d6fa08ab540107cdbd2906e18e516d7.tar.xz
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
-rw-r--r--apps/cuesheet.c17
-rw-r--r--apps/cuesheet.h5
-rw-r--r--apps/gui/gwps-common.c2
-rw-r--r--apps/gui/gwps.c4
4 files changed, 14 insertions, 14 deletions
diff --git a/apps/cuesheet.c b/apps/cuesheet.c
index aaa2670..deb0769 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 8ee0f6b..c5d7365 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 da70f0e..721682f 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 154864a..10c2a68 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 */