summaryrefslogtreecommitdiff
path: root/apps/playback.c
diff options
context:
space:
mode:
authorDave Chapman <dave@dchapman.com>2005-06-11 19:14:40 +0000
committerDave Chapman <dave@dchapman.com>2005-06-11 19:14:40 +0000
commit8f0a0fed4e40c1fb831744ca1cc34f20a93d85b4 (patch)
tree5aec170ab4891367dca02be16f002b7bb41c457d /apps/playback.c
parent94b917e9ee1e287a2713fad52754250d591e0e57 (diff)
downloadrockbox-8f0a0fed4e40c1fb831744ca1cc34f20a93d85b4.zip
rockbox-8f0a0fed4e40c1fb831744ca1cc34f20a93d85b4.tar.gz
rockbox-8f0a0fed4e40c1fb831744ca1cc34f20a93d85b4.tar.bz2
rockbox-8f0a0fed4e40c1fb831744ca1cc34f20a93d85b4.tar.xz
Estimate (poorly) the duration of an Ogg track, and display elapsed time in WPS
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6681 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/playback.c')
-rw-r--r--apps/playback.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/apps/playback.c b/apps/playback.c
index 8d5ba3c..739496e 100644
--- a/apps/playback.c
+++ b/apps/playback.c
@@ -831,11 +831,13 @@ bool audio_load_track(int offset, bool start_play, int peek_offset)
tracks[track_widx].id3.bitrate=(buf[48]|(buf[49]<<8)|(buf[50]<<16)|(buf[51]<<24))/1000;
tracks[track_widx].id3.vbr=true;
- /* I don't yet know how to calculate the totalsamples */
- totalsamples=0;
-
- /* Calculate the length in ms */
- tracks[track_widx].id3.length=(totalsamples/tracks[track_widx].id3.frequency)*1000;
+ if (tracks[track_widx].id3.bitrate!=0) {
+ /* A _really_ stupid and inaccurate calculation, but the best
+ I can do at the moment. */
+ tracks[track_widx].id3.length=(tracks[track_widx].filesize)/(tracks[track_widx].id3.bitrate/8);
+ } else {
+ tracks[track_widx].id3.length=0;
+ }
lseek(fd, 0, SEEK_SET);
strncpy(tracks[track_widx].id3.path,trackname,sizeof(tracks[track_widx].id3.path));