diff options
| author | Steve Bavin <pondlife@pondlife.me> | 2006-10-15 11:03:26 +0000 |
|---|---|---|
| committer | Steve Bavin <pondlife@pondlife.me> | 2006-10-15 11:03:26 +0000 |
| commit | 10befc8e6ed2129143af79cfcfbc0fd5a4fe3d85 (patch) | |
| tree | e291e383781082b758362cae10a7652b628213df /apps/playback.c | |
| parent | b89b5ba2ee31bd351710670cf5ecc5aa8beb95f3 (diff) | |
| download | rockbox-10befc8e6ed2129143af79cfcfbc0fd5a4fe3d85.zip rockbox-10befc8e6ed2129143af79cfcfbc0fd5a4fe3d85.tar.gz rockbox-10befc8e6ed2129143af79cfcfbc0fd5a4fe3d85.tar.bz2 rockbox-10befc8e6ed2129143af79cfcfbc0fd5a4fe3d85.tar.xz | |
Don't unboost CPU in an ISR
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11224 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/playback.c')
| -rw-r--r-- | apps/playback.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/apps/playback.c b/apps/playback.c index 8c480c4..44aa869 100644 --- a/apps/playback.c +++ b/apps/playback.c @@ -203,7 +203,7 @@ static unsigned char *iram_buf[2]; static unsigned char *dram_buf[2]; /* Step count to the next unbuffered track. */ -static int last_peek_offset; +static int last_peek_offset; /* Audio thread */ /* Track information (count in file buffer, read/write indexes for track ring structure. */ @@ -674,7 +674,7 @@ void audio_preinit(void) track_buffer_callback = NULL; track_unbuffer_callback = NULL; track_changed_callback = NULL; - /* Just to prevent CUR_TI never be anything random. */ + /* Just to prevent CUR_TI from being anything random. */ track_ridx = 0; mutex_init(&mutex_codecthread); @@ -1249,7 +1249,6 @@ static void codec_set_offset_callback(size_t value) static void codec_advance_buffer_counters(size_t amount) { buf_ridx = RINGBUF_ADD(buf_ridx, amount); - ci.curpos += amount; CUR_TI->available -= amount; @@ -1963,12 +1962,11 @@ static bool audio_buffer_wind_forward(int new_track_ridx, int old_track_ridx) amount = tracks[old_track_ridx].filesize - ci.curpos; /* Then collect all data from tracks in between them */ amount += audio_buffer_count_tracks(old_track_ridx, new_track_ridx); + logf("bwf:%ldB", (long) amount); if (amount > FILEBUFUSED) return false; - logf("bwf:%ldB",amount); - /* Wind the buffer to the beginning of the target track or its codec */ buf_ridx = RINGBUF_ADD(buf_ridx, amount); @@ -2535,7 +2533,6 @@ static bool audio_load_track(int offset, bool start_play, bool rebuffer) tracks[track_widx].id3.offset = offset; break; } - } logf("alt:%s", trackname); @@ -2891,9 +2888,8 @@ static void audio_rebuffer_and_seek(size_t newpos) int fd; char *trackname; - trackname = playlist_peek(0); /* (Re-)open current track's file handle. */ - + trackname = playlist_peek(0); fd = open(trackname, O_RDONLY); if (fd < 0) { @@ -3342,6 +3338,8 @@ static void audio_thread(void) case SYS_TIMEOUT: LOGFQUEUE("audio < SYS_TIMEOUT"); + if (pcmbuf_output_completed()) + pcmbuf_play_stop(); /* Stop to ensure unboosted */ break; default: |