Commit graph

549 commits

Author SHA1 Message Date
Michael Sevakis
bbef13eddf SWCODEC: Stop clicks between tracks when resampler is active by only switching the DSP frequency and not resetting the resampler at track boundaries. Will make sure DSP is correctly flushed at dicontinuities but don't hear any problems currently.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11600 a1c6a512-1295-4272-9138-f99709370657
2006-11-26 12:02:47 +00:00
Michael Sevakis
fbac4f8444 Audio bugfixes. Should wait for voice codec to reload before returning buffer when stealing voice. Certain variables that get or may get used during an IRQ should be declared 'volatile'.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11572 a1c6a512-1295-4272-9138-f99709370657
2006-11-22 09:13:14 +00:00
Daniel Ankers
242cbd5cd7 Change if CONFIG_CPU==PP50XX to ifdef CPU_PP where appropriate
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11569 a1c6a512-1295-4272-9138-f99709370657
2006-11-22 00:41:30 +00:00
Michael Sevakis
acc29d95be SWCODEC/IRAM: Save voice IRAM when a plugin initializes its IRAM. Defines two macros for declaring and initializing IRAM. Plugins should use these instead. See mp3_encoder, doom, etc. for details. Further tweaks in buffer restoration after other use. Hiding of some interfaces that should only be used by buffer management.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11544 a1c6a512-1295-4272-9138-f99709370657
2006-11-18 02:18:29 +00:00
Mark Arigo
a60caa9f54 Fix alignment issue that caused data aborts on arm targets
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11540 a1c6a512-1295-4272-9138-f99709370657
2006-11-16 21:04:04 +00:00
Mark Arigo
9b0ef15c0d Strip APE tags during buffering so they do not break MP3 gapless playback.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11525 a1c6a512-1295-4272-9138-f99709370657
2006-11-14 15:48:20 +00:00
Michael Sevakis
7bc41203af Removed anachronisms introduced with low battery shutdown patch.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11524 a1c6a512-1295-4272-9138-f99709370657
2006-11-14 02:46:59 +00:00
Steve Bavin
6a27006a5d Minor voice fixes; prevent voice queue overflow, fix compile of voice-less build
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11521 a1c6a512-1295-4272-9138-f99709370657
2006-11-13 09:07:18 +00:00
Brandon Low
8a82892e52 Thread API enhancements.
1) block_thread -> block_thread + block_thread_w_tmo -- this call was always used in distinct ways so having one call with a conditional was ugly.
2) enhance Slasheri's scheduler controlled boost concept.  now any thread may trigger a boost which will last until that thread next sleeps.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11509 a1c6a512-1295-4272-9138-f99709370657
2006-11-11 05:33:24 +00:00
Jens Arnold
03adbd280d Ooops, adapt playback.c to the new IRAM distribution on X5. Codec IRAM is defined in more than one place...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11495 a1c6a512-1295-4272-9138-f99709370657
2006-11-10 07:45:30 +00:00
Tomasz Malesinski
5c54ba49d5 Added macros controlling what goes to IRAM on different targets.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11483 a1c6a512-1295-4272-9138-f99709370657
2006-11-09 21:59:27 +00:00
Jonathan Gordon
d9f7ac24f4 fix booboo in ata.c (SYS_POWEROFF falling into SYS_USB_CONNECTED)
enable ata_idle callbacks in ata_mmc.c (calls the callbacks after 10s of
real inactivity)
fix builds


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11462 a1c6a512-1295-4272-9138-f99709370657
2006-11-08 02:23:01 +00:00
Jonathan Gordon
f184152c05 * changes to ata.c - idle callbacks are called after 2 sec of real idle,
and shutdown and usb (it makes sense here). ata_sleep doesnt get broken
by callbacks.
* allow ata_sleep() at the end of buffering again
* config block uses ata_idle instead of delayed sector when saving
* remove delayed sector code from ata_mmc.c (idle callbacks are not yet
implemented for ata_mmc.c tho)


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11461 a1c6a512-1295-4272-9138-f99709370657
2006-11-08 01:55:26 +00:00
Jonathan Gordon
a018641105 allow the nano to rebuffer on "disk" spindown, seems to be fine
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11457 a1c6a512-1295-4272-9138-f99709370657
2006-11-07 06:31:36 +00:00
Michael Sevakis
0f5cb94aa4 Big Patch adds primarily: Samplerate and format selection to recording for SWCODEC. Supprort for samplerates changing in playback (just goes with the recording part inseparably). Samplerates to all encoders. Encoders can be configured individually on a menu specific to the encoder in the recording menu. File creation is delayed until flush time to reduce spinups when splitting. Misc: statusbar icons for numbers are individual digits to display any number. Audio buffer was rearranged to maximize memory available to recording and properly reinitialized when trashed. ColdFire PCM stuff moved to target tree to avoid a complicated mess when adding samplerate switching. Some needed API changes and to neaten up growing gap between hardware and software codecs.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11452 a1c6a512-1295-4272-9138-f99709370657
2006-11-06 18:07:30 +00:00
Jonathan Gordon
0b22795e26 adds ata_idle_notify system which allows callbacks in apps/ to be called
when the hard disk is idle but spinning, and just before shutting down.
on SWCODEC targets with > 8MB RAM the playback engine will try to
refill the buffer if it is less than 75% full while the disk is spinning
(temporarily disabled on the nano)


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11451 a1c6a512-1295-4272-9138-f99709370657
2006-11-06 14:24:18 +00:00
Steve Bavin
f71da380c2 A better fix for the crossfade setting crash (with no global variables added)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11415 a1c6a512-1295-4272-9138-f99709370657
2006-11-02 07:53:55 +00:00
Steve Bavin
e5f43ebaba Remove unwanted logf
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11414 a1c6a512-1295-4272-9138-f99709370657
2006-11-01 19:35:53 +00:00
Steve Bavin
faace1eae4 Fix up non-voice build and stop crashes if crossfade settings changed during playback
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11413 a1c6a512-1295-4272-9138-f99709370657
2006-11-01 19:19:36 +00:00
Magnus Holmgren
39fe51e88d Improve accuracy a little when seeking and resuming MP3 files. Mainly noticable for low-bitrate files with large ID3V2 tags, and no effect if no ID3V2 tag. Should be ported to hwcodec targets. :)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11402 a1c6a512-1295-4272-9138-f99709370657
2006-10-30 20:19:21 +00:00
Steve Bavin
6bad631af4 Little tidy-up - track_changed is now only updated on the audio thread
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11400 a1c6a512-1295-4272-9138-f99709370657
2006-10-30 17:10:52 +00:00
Steve Bavin
145ec81d2f Rearrange and comment variable declarations; no functional change
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11391 a1c6a512-1295-4272-9138-f99709370657
2006-10-30 08:54:48 +00:00
Mark Arigo
0e12829b9a Do not flood the queue with unnecessary fill buffer requests at the end of a playlist. Should fix the stopping bug in FS#6117.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11366 a1c6a512-1295-4272-9138-f99709370657
2006-10-27 15:42:34 +00:00
Steve Bavin
ee9b85456f Revert this morning's change as it can cause old metadata to be reused inapproprately. A better fix coming later.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11353 a1c6a512-1295-4272-9138-f99709370657
2006-10-26 17:33:54 +00:00
Steve Bavin
34193e5cf2 Don't clear previous track details during playback so the progress bar works properly at track transition
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11350 a1c6a512-1295-4272-9138-f99709370657
2006-10-26 12:13:28 +00:00
Jonathan Gordon
710ccb7b48 ifdef all the tagcache code, allows rombox to be compiled again, Thanks Austin Appel
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11338 a1c6a512-1295-4272-9138-f99709370657
2006-10-25 10:17:57 +00:00
Steve Bavin
71dd94a7eb A bit more voice simplification/MAS fixage (FS#6241). Also clear any buffered voice when playback is started.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11334 a1c6a512-1295-4272-9138-f99709370657
2006-10-25 08:54:25 +00:00
Steve Bavin
f512558650 Only flush PCM buffered voice data when explicitly told to. Patch by Stephane Doyen.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11331 a1c6a512-1295-4272-9138-f99709370657
2006-10-25 06:19:27 +00:00
Brandon Low
97f2af2553 Fix FS 6205: id3v1 stripping messed up rebuffer_and_seeks. Add an assurance check JinC other things mess it up, more graceful recovery.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11318 a1c6a512-1295-4272-9138-f99709370657
2006-10-23 16:47:48 +00:00
Brandon Low
500a761cb0 Last fix was wrong, I did the math this time, should fix more buffering edges
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11315 a1c6a512-1295-4272-9138-f99709370657
2006-10-23 12:44:11 +00:00
Brandon Low
1fef2dcb45 Fix edge case handling for buffer writing into the playing track; Improve comments and variable naming
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11311 a1c6a512-1295-4272-9138-f99709370657
2006-10-22 21:56:42 +00:00
Linus Nielsen Feltzing
da153da0be Patch #5166 by Robert Keevil - Last.fm logging
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11269 a1c6a512-1295-4272-9138-f99709370657
2006-10-19 09:42:58 +00:00
Steve Bavin
2baaac130e Oops; sleep != yield
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11267 a1c6a512-1295-4272-9138-f99709370657
2006-10-19 08:55:24 +00:00
Steve Bavin
004ee26e17 Keep the WPS progress bar updating at end of playback
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11266 a1c6a512-1295-4272-9138-f99709370657
2006-10-19 07:43:07 +00:00
Brandon Low
08a4ceaae7 Remove fill_bytesleft, simplify some buffering code, fix bug 5906
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11247 a1c6a512-1295-4272-9138-f99709370657
2006-10-17 12:56:22 +00:00
Miika Pekkarinen
7058752789 Removed ugly boosting solutions from playback code and let scheduler
handle unboosting instead.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11226 a1c6a512-1295-4272-9138-f99709370657
2006-10-15 11:57:52 +00:00
Steve Bavin
10befc8e6e Don't unboost CPU in an ISR
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11224 a1c6a512-1295-4272-9138-f99709370657
2006-10-15 11:03:26 +00:00
Brandon Low
1f3360f021 Just take out some out-of-date TODOs from playback.c and put a big FIXME in pcmbuf.c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11217 a1c6a512-1295-4272-9138-f99709370657
2006-10-13 20:48:23 +00:00
Steve Bavin
1c3d89c35e Fix race condition when playback stopped - see FS#6174. Thanks to Jared Stafford
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11214 a1c6a512-1295-4272-9138-f99709370657
2006-10-13 13:08:05 +00:00
Steve Bavin
3a8ad7fe7e Minor simplification #3; use macros for ring buffer arithmetic. Also fixed unlikely problem where file close was missed on an error path.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11212 a1c6a512-1295-4272-9138-f99709370657
2006-10-13 09:16:36 +00:00
Steve Bavin
73e2f7bd6b Minor simplification #2; replace unneeded variable filebufused with a macro
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11201 a1c6a512-1295-4272-9138-f99709370657
2006-10-12 16:51:22 +00:00
Steve Bavin
5f70ad4cb0 Minor simplification; replace unneeded variable cur_ti with a macro
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11200 a1c6a512-1295-4272-9138-f99709370657
2006-10-12 15:54:36 +00:00
Steve Bavin
d49c810ec9 Add CPU boost tracker to see where boosts are coming from
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11125 a1c6a512-1295-4272-9138-f99709370657
2006-10-05 10:07:03 +00:00
Steve Bavin
8b08935a3b Flush queued voice clips when not playing audio
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11087 a1c6a512-1295-4272-9138-f99709370657
2006-09-28 16:45:23 +00:00
Steve Bavin
c9a78621af Another fix for crashing when changing crossfade settings
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11086 a1c6a512-1295-4272-9138-f99709370657
2006-09-28 15:17:59 +00:00
Steve Bavin
b2269cce94 Fix hangs when changing crossfade settings
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11084 a1c6a512-1295-4272-9138-f99709370657
2006-09-28 09:20:56 +00:00
Steve Bavin
081281f6a1 Fix a crash and CPU being left boosted when using voice - FS#6024
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11053 a1c6a512-1295-4272-9138-f99709370657
2006-09-26 07:19:43 +00:00
Michael Sevakis
9d56f2d2cf SWCODEC recording hang fixed. Fixed other trouble spots for codec swapping when playing. Removed call to audio_set_recording_options from fm_recording_settings on SWCODEC (Not proper to do ! My bad.).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10978 a1c6a512-1295-4272-9138-f99709370657
2006-09-17 18:52:31 +00:00
Miika Pekkarinen
815684aced FS#5992 Reworked playback.c to fix voice bugs by Steve Bavin. Fixed to
work with the new scheduler and handled properly and fast the track
skipping.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10966 a1c6a512-1295-4272-9138-f99709370657
2006-09-17 08:34:42 +00:00
Miika Pekkarinen
a85044bf9e New scheduler, with priorities for swcodec platforms. Frequent task
switching should be more efficient and tasks are stored in linked
lists to eliminate unnecessary task switching to improve performance.
Audio should no longer skip on swcodec targets caused by too CPU
hungry UI thread or background threads.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10958 a1c6a512-1295-4272-9138-f99709370657
2006-09-16 16:18:11 +00:00
Steve Bavin
3cc46e7620 Rearrangement of playback.c to group routines by thread
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10838 a1c6a512-1295-4272-9138-f99709370657
2006-09-01 07:59:31 +00:00
Steve Bavin
a3087e4fb0 Add logging for all playback queueing, for the simulator at least
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10823 a1c6a512-1295-4272-9138-f99709370657
2006-08-31 10:01:07 +00:00
Magnus Holmgren
92f07a65ad Fix warning.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10808 a1c6a512-1295-4272-9138-f99709370657
2006-08-30 16:27:00 +00:00
Magnus Holmgren
719d220925 Applied patch #5879 by Andrew Cupper: Fix backward seeking bug.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10807 a1c6a512-1295-4272-9138-f99709370657
2006-08-30 15:47:18 +00:00
Michael Sevakis
4fc717a4c1 Added FS#2939 Encoder Codec Interface + Codecs by Antonius Hellmann with additional FM Recording support and my modifications
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10789 a1c6a512-1295-4272-9138-f99709370657
2006-08-28 22:38:41 +00:00
Miika Pekkarinen
987bbdfab7 Force WPS reload after all tracks have been buffered (runtime stats
are updated).


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10768 a1c6a512-1295-4272-9138-f99709370657
2006-08-27 14:23:50 +00:00
Linus Nielsen Feltzing
dd98c219e0 Quick and dirty fix for a serious issue that could make X5 crash when using voice
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10721 a1c6a512-1295-4272-9138-f99709370657
2006-08-23 14:02:35 +00:00
Magnus Holmgren
9f09a39436 Add resume support to AAC files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10720 a1c6a512-1295-4272-9138-f99709370657
2006-08-23 13:10:48 +00:00
Linus Nielsen Feltzing
97b56a665c Patch #5844 by Steve Bavin - Fix confused voice file memory allocation
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10711 a1c6a512-1295-4272-9138-f99709370657
2006-08-23 08:21:15 +00:00
Linus Nielsen Feltzing
42f0ad3c8f Patch #5766 by Steve Bavin - Fix for various voice related crashes
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10590 a1c6a512-1295-4272-9138-f99709370657
2006-08-15 18:01:42 +00:00
Dave Chapman
0a7ded3e29 Memory size checks in .c/.h files should use MEM, not MEMORYSIZE
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10557 a1c6a512-1295-4272-9138-f99709370657
2006-08-13 09:19:24 +00:00
Tomasz Malesinski
28910e7e17 Various lower limits and sizes for targets with 1MB of RAM (Iriver iFP7xx).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10556 a1c6a512-1295-4272-9138-f99709370657
2006-08-12 23:01:52 +00:00
Miika Pekkarinen
b591bb3f46 FS#5691 Fix for crash if stop pressed during voice output.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10457 a1c6a512-1295-4272-9138-f99709370657
2006-08-05 07:29:53 +00:00
Miika Pekkarinen
8e0b02a60f Prevent buffer filling trying to start over and over causing playback
to skip when runtimedb has been enabled.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10456 a1c6a512-1295-4272-9138-f99709370657
2006-08-04 10:29:04 +00:00
Miika Pekkarinen
bb5330cb88 Don't yield_codecs() within codec thread.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10428 a1c6a512-1295-4272-9138-f99709370657
2006-08-03 07:45:53 +00:00
Miika Pekkarinen
ab279dd6bf Stop playback before updating runtime stats. And yield codecs while
storing the stats to db to prevent skipping.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10427 a1c6a512-1295-4272-9138-f99709370657
2006-08-03 07:29:19 +00:00
Miika Pekkarinen
513cafec7e Checked the rebuffering code. Might fix buffers desyncing and a system
crash.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10373 a1c6a512-1295-4272-9138-f99709370657
2006-07-31 06:12:53 +00:00
Miika Pekkarinen
4ccacd4004 Completely remove all track entries at audio_rebuffer().
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10364 a1c6a512-1295-4272-9138-f99709370657
2006-07-29 19:34:12 +00:00
Miika Pekkarinen
3b2f049ec6 Another oops.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10363 a1c6a512-1295-4272-9138-f99709370657
2006-07-29 17:50:44 +00:00
Miika Pekkarinen
2fa682535b Oops, committed some extra stuff not necessary.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10362 a1c6a512-1295-4272-9138-f99709370657
2006-07-29 17:39:55 +00:00
Miika Pekkarinen
d43bff987a Define MAX_TRACK_MAX and use it to keep the ring track structure
inside boundaries. Cleaned identation also.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10361 a1c6a512-1295-4272-9138-f99709370657
2006-07-29 17:25:31 +00:00
Miika Pekkarinen
6128ff3453 Fixed one of the many pending bugs in the playback engine and restored
the instant wps skip feature.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10348 a1c6a512-1295-4272-9138-f99709370657
2006-07-28 09:32:52 +00:00
Magnus Holmgren
0d8c50d7af Add resume support for AC3 files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10332 a1c6a512-1295-4272-9138-f99709370657
2006-07-26 19:08:16 +00:00
Mark Arigo
50f7e4e083 Additional fix for seeking beyond the current buffered data
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10243 a1c6a512-1295-4272-9138-f99709370657
2006-07-18 21:10:13 +00:00
Dave Chapman
752faa4351 Patch #5157 by Rainer Sinsch - SID codec
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10237 a1c6a512-1295-4272-9138-f99709370657
2006-07-18 18:33:12 +00:00
Miika Pekkarinen
45dfe2a36f Initial runtimedb support for tagcache. Only for developers,
statistical data will be lost in future until changelogs has been
implemented.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10217 a1c6a512-1295-4272-9138-f99709370657
2006-07-15 17:36:25 +00:00
Dave Chapman
b1a272eee2 Patch by Mark Arigo to close bug report #5305 - fixes crashes when attempting to seek beyond the currently buffered data.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10181 a1c6a512-1295-4272-9138-f99709370657
2006-07-03 21:23:14 +00:00
Hardeep Sidhu
75117cc993 Wait for voice to complete before stopping playback. Fixes hang when stopping from filetree while voice is playing.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10141 a1c6a512-1295-4272-9138-f99709370657
2006-06-21 04:16:18 +00:00
Hardeep Sidhu
a02fd1ad7d Only swap_codec() in voice thread when something is playing. Fixes B#5486.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10132 a1c6a512-1295-4272-9138-f99709370657
2006-06-17 11:21:22 +00:00
Jens Arnold
630e9586b6 Fix resume for MP1. Thanks go to Dave Chapman for the hint.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10096 a1c6a512-1295-4272-9138-f99709370657
2006-06-10 11:22:21 +00:00
Hardeep Sidhu
1e0b1d58d6 Stop playback if playlist_next() returns -1 (e.g. if auto directory change fails)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10091 a1c6a512-1295-4272-9138-f99709370657
2006-06-07 20:43:34 +00:00
Magnus Holmgren
f95dd56a2c Fix bug 5341: Resume in Wav and Flac doesn't start from the position where it was left off. Mark Arigo helped with the Flac fix.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10051 a1c6a512-1295-4272-9138-f99709370657
2006-06-04 15:04:03 +00:00
Hardeep Sidhu
5483da667b Previous automatic skip fix had a problem if audio_fill_file_buffer() was called after setting playlist_end but before audio_check_new_track(). To fix this, playlist_end is now reset in audio_check_new_track().
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10039 a1c6a512-1295-4272-9138-f99709370657
2006-06-03 17:23:20 +00:00
Dave Chapman
db1cda87a6 Replace "#if (ROCKBOX_HAS_LOGF == 1)" with "#ifdef ROCKBOX_HAS_LOGF" - this is consistent with the rest of Rockbox and Mark Arigo reported that it caused an error in his gcc when trying to compile a logf-enabled sim
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9991 a1c6a512-1295-4272-9138-f99709370657
2006-05-25 21:08:38 +00:00
Hardeep Sidhu
a8928804e1 Reset playlist_end when automatically skipping. Fixes B#5319.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9929 a1c6a512-1295-4272-9138-f99709370657
2006-05-15 02:37:06 +00:00
Hardeep Sidhu
c9a11cd3c8 Reset id3 info in all cases where we need to rebuffer tracks
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9928 a1c6a512-1295-4272-9138-f99709370657
2006-05-15 01:45:35 +00:00
Hardeep Sidhu
c8e280c1ed Reset id3 info when skipping directories. Fixes B#5323.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9892 a1c6a512-1295-4272-9138-f99709370657
2006-05-09 00:14:51 +00:00
Hardeep Sidhu
6a267a8be7 Don't initiate track change if at end of playlist
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9868 a1c6a512-1295-4272-9138-f99709370657
2006-05-03 16:33:23 +00:00
Hardeep Sidhu
7033baea5e Only reset resume settings when we're really at the end of the playlist
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9867 a1c6a512-1295-4272-9138-f99709370657
2006-05-03 15:54:08 +00:00
Hardeep Sidhu
982d995ae9 Stop playing current track before starting a new playlist with an offset (eg. bookmarks).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9861 a1c6a512-1295-4272-9138-f99709370657
2006-05-02 16:18:21 +00:00
Hardeep Sidhu
b8d1a55fbd Properly set audio_is_initialized flag for swcodec devices ad use it when initializing crossfade. This should fix the problems with resuming playback at startup.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9853 a1c6a512-1295-4272-9138-f99709370657
2006-05-01 18:18:54 +00:00
Magnus Holmgren
e187e01e36 Fix one seeking bug: when seeking back to before a resume point, audio from another track could be played.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9837 a1c6a512-1295-4272-9138-f99709370657
2006-04-30 08:39:24 +00:00
Brandon Low
4564f5c56a Don't magically skip tracks without user interraction
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9813 a1c6a512-1295-4272-9138-f99709370657
2006-04-26 12:19:16 +00:00
Brandon Low
69cf4f57ac This seems to fix a few bugs in that
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9811 a1c6a512-1295-4272-9138-f99709370657
2006-04-26 04:31:06 +00:00
Brandon Low
da1cddfcbb This seems to make selecting a new track from the file browser work very close to right.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9810 a1c6a512-1295-4272-9138-f99709370657
2006-04-26 04:01:35 +00:00
Brandon Low
522ec278ef Switch inserts back from do while to while loops, because mpc likes to insert zero byte chunks at the end of files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9802 a1c6a512-1295-4272-9138-f99709370657
2006-04-25 18:21:05 +00:00
Brandon Low
3ac7bd7204 Fix the most likely cause of ipod nano startup race, and also seems to fix crossfade buffer reinitialization during playback for me
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9790 a1c6a512-1295-4272-9138-f99709370657
2006-04-24 12:57:41 +00:00
Brandon Low
e0f7ecbfd8 Make track info update in a smarter way
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9782 a1c6a512-1295-4272-9138-f99709370657
2006-04-24 00:48:00 +00:00
Brandon Low
d461a3ef65 Fix some todos, and prevent the position from jumping around badly on seek
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9781 a1c6a512-1295-4272-9138-f99709370657
2006-04-23 23:27:11 +00:00
Brandon Low
6a6c322a19 Improve stop behavior
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9779 a1c6a512-1295-4272-9138-f99709370657
2006-04-23 22:54:01 +00:00
Brandon Low
5cdee94b40 Fix a warning, and prepare for handling end-of-track seeking
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9778 a1c6a512-1295-4272-9138-f99709370657
2006-04-23 22:30:52 +00:00
Brandon Low
2e8b933c0d Should fix some track ending early problems
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9777 a1c6a512-1295-4272-9138-f99709370657
2006-04-23 22:21:12 +00:00
Brandon Low
8ecb8582a1 Make some adjustments to when the WPS will be updated, giving faster next track and cleaner track change updates
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9776 a1c6a512-1295-4272-9138-f99709370657
2006-04-23 20:37:43 +00:00
Brandon Low
83ce56846a Remove an unneeded define, add a todo
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9765 a1c6a512-1295-4272-9138-f99709370657
2006-04-22 21:31:07 +00:00
Brandon Low
c71ad7ea7f Fix warning
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9760 a1c6a512-1295-4272-9138-f99709370657
2006-04-22 14:53:00 +00:00
Brandon Low
f3bc1efc49 First commit of reworking voice to be mroe stable on swcodec
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9758 a1c6a512-1295-4272-9138-f99709370657
2006-04-22 14:40:13 +00:00
Hardeep Sidhu
f635f4a824 Set playing to true immediately when audio_play() is called. Fixes a bug when selecting tracks from playlist viewer.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9737 a1c6a512-1295-4272-9138-f99709370657
2006-04-20 05:33:53 +00:00
Brandon Low
4b36096b93 Have the codec thread stop the pcm if we need to spin up the disk
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9727 a1c6a512-1295-4272-9138-f99709370657
2006-04-19 00:23:08 +00:00
Brandon Low
56d6f3ecfc Fix playback if the user does a very fast seek->skip press
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9726 a1c6a512-1295-4272-9138-f99709370657
2006-04-18 23:43:54 +00:00
Brandon Low
2c9b1717e6 Fix end of playlist handling. I think.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9725 a1c6a512-1295-4272-9138-f99709370657
2006-04-18 19:52:10 +00:00
Brandon Low
1344ccd3c1 Revert previous, it is broken
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9724 a1c6a512-1295-4272-9138-f99709370657
2006-04-18 19:51:37 +00:00
Brandon Low
426dc212c6 Make seeking synchronous. It's better this way
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9722 a1c6a512-1295-4272-9138-f99709370657
2006-04-18 19:08:15 +00:00
Brandon Low
2b18727a8a Fix dir skipping with new playback arch. Enable dir skipping on ipod with a couple of difficult combos (select|right/left) or short-long left / short-long right. The latter causes stuck in pause sometimes.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9720 a1c6a512-1295-4272-9138-f99709370657
2006-04-18 18:33:09 +00:00
Brandon Low
ed44e19c3f Should fix a bug with track skipping backwards following track skip forward, play, seek backward
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9718 a1c6a512-1295-4272-9138-f99709370657
2006-04-18 16:53:24 +00:00
Brandon Low
7df187f20e Save empty resume information if the playlist has ended
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9717 a1c6a512-1295-4272-9138-f99709370657
2006-04-18 16:45:44 +00:00
Brandon Low
095ae809eb Reduce code size when logf is off. Add a todo. Undo a previous fix that broke crossfade on manual track changes
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9708 a1c6a512-1295-4272-9138-f99709370657
2006-04-17 19:59:16 +00:00
Brandon Low
98097d23ec Misc. minor fixes: Guarantee aligned buffer. Enable load-codec-from-disk if a new track requires a different codec than the playing track, but does not already have it on the buffer. Stop playback immediately on a manual track skip. Handle seeking a distance greater than the size of the audio buffer. Enforce the 'no malloc for voice codec'.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9704 a1c6a512-1295-4272-9138-f99709370657
2006-04-17 17:05:05 +00:00
Brandon Low
bf397b5635 Remove an unneeded WPS update signal. Make the codec thread more polite about requesting buffering. Prevent more Codec failure pops when the codec was _asked_ to stop.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9674 a1c6a512-1295-4272-9138-f99709370657
2006-04-15 09:19:49 +00:00
Brandon Low
ebadcc633a Put new_track on the codec_api, and use it instead of the reload_codec variable in most places. Should help with problems people have had with GUI vs. playback sync.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9670 a1c6a512-1295-4272-9138-f99709370657
2006-04-15 02:03:11 +00:00
Brandon Low
363dbc4b58 This might fix the buffering problem. Didn't happen to me the way I usually reproduce it just now
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9668 a1c6a512-1295-4272-9138-f99709370657
2006-04-14 22:15:38 +00:00
Brandon Low
530cad32e8 Still not bright
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9666 a1c6a512-1295-4272-9138-f99709370657
2006-04-14 17:48:01 +00:00
Brandon Low
de25006ad9 I am dumb
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9665 a1c6a512-1295-4272-9138-f99709370657
2006-04-14 17:39:18 +00:00
Brandon Low
7c986a91a6 Work around the bug with buffer wrapping. Serious performance penalty, and a lot of buffering is discarded to achieve this, but it doesn't crash while I find the real cause
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9664 a1c6a512-1295-4272-9138-f99709370657
2006-04-14 17:31:19 +00:00
Brandon Low
348d9ece4b Fix some unlikely buffer problems. Doesn't fix any reported bugs, but fixes some possible ones.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9663 a1c6a512-1295-4272-9138-f99709370657
2006-04-14 17:00:22 +00:00
Brandon Low
86c7e1a947 Fix some stop/pause/boost stuff
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9662 a1c6a512-1295-4272-9138-f99709370657
2006-04-14 16:42:14 +00:00
Brandon Low
fb966b3cf8 Fix a lack of return on error for check_new_track (rare condition)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9661 a1c6a512-1295-4272-9138-f99709370657
2006-04-14 14:19:56 +00:00
Brandon Low
0291a6e200 Fix the queue implementation
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9660 a1c6a512-1295-4272-9138-f99709370657
2006-04-14 14:03:43 +00:00
Brandon Low
fd08424694 Change to using a queue to synchronize between threads instead of abusing a mutex
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9659 a1c6a512-1295-4272-9138-f99709370657
2006-04-14 13:05:08 +00:00
Brandon Low
fbe74d1df6 Fix one cause of buffer-offness, but I'm pretty sure this is not the cause of problems that people are having as the debug code I put in detects and corrects it. Make taginfo instead of stupid filename appear on manual track skip, off buffer (stupid bug).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9658 a1c6a512-1295-4272-9138-f99709370657
2006-04-14 12:53:29 +00:00
Brandon Low
2f4edabfce Tweak id3v1 tag stripping, better code, same functionality. Ensure correct buf_idx on track when rebuffer&seek.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9653 a1c6a512-1295-4272-9138-f99709370657
2006-04-14 04:42:11 +00:00
Brandon Low
2f11d60dcd Change when the new_track variable is reset to fix the track display during skipping
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9652 a1c6a512-1295-4272-9138-f99709370657
2006-04-14 03:47:32 +00:00
Brandon Low
1d41f77b37 Boost during the track transition, trust me, it makes sense. Better logging of buffer-not-synched issues. Revert a previous change to make a function take a parameter intead of using cur_ti. Add some todos.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9651 a1c6a512-1295-4272-9138-f99709370657
2006-04-13 21:47:00 +00:00
Brandon Low
017914a087 Adjust filesize if id3v1 is stripped
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9648 a1c6a512-1295-4272-9138-f99709370657
2006-04-13 20:42:11 +00:00
Brandon Low
0744e760cb Ensure that the buffer doesn't get out of sync on rebuffer track changes. Remove the concept of pcmuf_boost_mode as it doesn't seem necessary, and adds an unnecessary way for the CPU to stay boosted.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9646 a1c6a512-1295-4272-9138-f99709370657
2006-04-13 17:30:54 +00:00
Brandon Low
483c947c3d Add a logf, remove an unused parameter, and an unused member of the track_info struct, ensure that we unboos on stop even if buffering, make a function take a parameter instead of using a global
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9644 a1c6a512-1295-4272-9138-f99709370657
2006-04-13 15:48:00 +00:00
Brandon Low
c95044a9c1 Track skipping rework more. This seems to handle rapid skipping very gracefully without compromising buffer safety. There may still be a potentially broken code path if the user does a very rapid skip, stop sequence, and I will be sure to investigate this. Due to Slasheri's concern, reimplement rapid GUI update for track skipping in a safe way.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9643 a1c6a512-1295-4272-9138-f99709370657
2006-04-13 14:17:12 +00:00
Brandon Low
b1fa534f14 Simplify audio startup, and remove some unnecessary code
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9640 a1c6a512-1295-4272-9138-f99709370657
2006-04-13 02:46:34 +00:00
Brandon Low
44d9576ff5 Track changes should zero the seek_time to prevent undesired seeking in the new track
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9636 a1c6a512-1295-4272-9138-f99709370657
2006-04-12 03:25:54 +00:00
Brandon Low
54af304a5b use the cur_ti pointer, as it's always synched up with track_ridx any way
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9635 a1c6a512-1295-4272-9138-f99709370657
2006-04-12 02:01:26 +00:00
Brandon Low
376950155c Get the GUI and audio in sync for track changes
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9634 a1c6a512-1295-4272-9138-f99709370657
2006-04-12 01:45:53 +00:00
Brandon Low
10c3a34c85 Fix major rebuffer stupidity, remove a redundant call, and a wrong comment.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9633 a1c6a512-1295-4272-9138-f99709370657
2006-04-12 00:21:29 +00:00
Brandon Low
af09d22125 Add and improve logfing, fix a possible cause of problems due to abuse of read_next_metadata
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9628 a1c6a512-1295-4272-9138-f99709370657
2006-04-11 23:08:21 +00:00
Brandon Low
d6b370be02 Fix logf build, fix double reporting buffer events.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9627 a1c6a512-1295-4272-9138-f99709370657
2006-04-11 22:38:33 +00:00
Brandon Low
87484fcbc7 Almost entirely formatting changes, but also add one logf, and fix one nearly impossible to hit (I doubt it's been hit in the history of rockbox) bug
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9621 a1c6a512-1295-4272-9138-f99709370657
2006-04-11 20:41:04 +00:00
Brandon Low
8529414c7f Clarify a comment
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9616 a1c6a512-1295-4272-9138-f99709370657
2006-04-11 17:20:55 +00:00
Brandon Low
8966c018fa Clear tracks in more appropriate ways/places
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9615 a1c6a512-1295-4272-9138-f99709370657
2006-04-11 17:17:24 +00:00
Brandon Low
01219fa29e Handle rebuffer-and-seek and track skip buffer events smarter. Fill the buffer all the way around on a 'normal' rebuffer. Rename and invert a strangely named variable for simpler logic.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9614 a1c6a512-1295-4272-9138-f99709370657
2006-04-11 17:08:11 +00:00
Brandon Low
a476718aab Fix yellow
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9613 a1c6a512-1295-4272-9138-f99709370657
2006-04-11 16:13:24 +00:00
Brandon Low
73365c8bda Fix a (very unlikely) bug in buffering
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9611 a1c6a512-1295-4272-9138-f99709370657
2006-04-11 15:45:11 +00:00
Brandon Low
b6607459c2 Fix some signedness and exit condition stuff. Not sure if this addresses live bugs, but it was wrong nonetheless
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9610 a1c6a512-1295-4272-9138-f99709370657
2006-04-11 14:13:41 +00:00
Brandon Low
6bd1f143fa Try to recover from a codec failure by restarting playback
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9608 a1c6a512-1295-4272-9138-f99709370657
2006-04-11 13:21:51 +00:00
Brandon Low
afb64a481b Whoops, remove a done TODO
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9607 a1c6a512-1295-4272-9138-f99709370657
2006-04-11 13:02:06 +00:00
Brandon Low
a9debda64e Fix some comments
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9606 a1c6a512-1295-4272-9138-f99709370657
2006-04-11 13:00:45 +00:00
Brandon Low
3b76544fa9 Ensure that codecs are cleared from the buffer if they will not be needed by the track about to play and some minor changes for correctness with no functional difference
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9605 a1c6a512-1295-4272-9138-f99709370657
2006-04-11 12:29:46 +00:00
Brandon Low
62ccbbb418 Rework track skipping. Full playback stop is no longer involved in track skipping. Further simplification of the play related functions can be achieved with this in place, but that's for later. Known skip related bug, high pitched noise sometimes, otherwise stuff is better
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9601 a1c6a512-1295-4272-9138-f99709370657
2006-04-11 03:55:58 +00:00
Brandon Low
2caad6fbc1 Get the next track's metadata in a more timely manner
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9591 a1c6a512-1295-4272-9138-f99709370657
2006-04-10 04:14:20 +00:00
Brandon Low
25e367ce34 Formatting, and logf changes
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9583 a1c6a512-1295-4272-9138-f99709370657
2006-04-09 16:12:12 +00:00
Brandon Low
4f3bb2ded7 Fix another nasty rebuffering bug, and ensure that buffer and unbuffer events are triggered correctly. Also remove another unused varialbe track_info->filepos
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9582 a1c6a512-1295-4272-9138-f99709370657
2006-04-09 15:30:28 +00:00
Brandon Low
72232bdc66 Fix bad rebuffering bug, and kill the track_count variable
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9571 a1c6a512-1295-4272-9138-f99709370657
2006-04-09 02:15:35 +00:00
Brandon Low
3e3c21b6f0 Fix the condition on an error splash
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9565 a1c6a512-1295-4272-9138-f99709370657
2006-04-08 13:06:28 +00:00
Brandon Low
502fbd710c Correct seeking behavior (whoops), might fix the coldfire deadlocks. Reintroduce the foreshortened initial buffer fill, this should maybe be optional
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9564 a1c6a512-1295-4272-9138-f99709370657
2006-04-08 12:58:39 +00:00
Brandon Low
0be0b43466 Fix seeking not resuming playback, many thanks to Ralf Herz for being an excellent debugger
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9558 a1c6a512-1295-4272-9138-f99709370657
2006-04-08 07:46:48 +00:00
Brandon Low
dd8d97ae8c Change around some logfing to help debugging seek problems
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9557 a1c6a512-1295-4272-9138-f99709370657
2006-04-07 22:13:00 +00:00
Brandon Low
29f7dd3c9f Fix the playback sometimes doesn't start at all problems, and always fully fill the buffer, because it was silly not to (this one may be controversial)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9556 a1c6a512-1295-4272-9138-f99709370657
2006-04-07 21:32:30 +00:00
Brandon Low
554f206ba1 Further unify start playback vs. other buffering situations, hopefully fixes some people's audio doesn't start problems
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9553 a1c6a512-1295-4272-9138-f99709370657
2006-04-07 19:48:48 +00:00
Brandon Low
ab57025e33 This makes seeking work for me
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9552 a1c6a512-1295-4272-9138-f99709370657
2006-04-07 18:18:36 +00:00
Brandon Low
71fe062e3d Fix some type casting => 64bit warning issues
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9550 a1c6a512-1295-4272-9138-f99709370657
2006-04-07 16:45:44 +00:00
Brandon Low
de6023146a Fix play initialization problems and buffering problems. This behaves _much_ better for me.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9549 a1c6a512-1295-4272-9138-f99709370657
2006-04-07 16:31:20 +00:00
Jens Arnold
24bb9d4ceb Fix 64bit warnings.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9547 a1c6a512-1295-4272-9138-f99709370657
2006-04-07 07:05:02 +00:00
Brandon Low
2736363d71 Remove duplicated code and improve button responsiveness during buffer fill
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9541 a1c6a512-1295-4272-9138-f99709370657
2006-04-06 21:06:37 +00:00
Brandon Low
930785cd8f Stop abusing the queuing features, and start treating them with respect. This seems to solve audio skipping and track skipping issues as well as seeking inside the disk buffer for me.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9534 a1c6a512-1295-4272-9138-f99709370657
2006-04-06 16:21:31 +00:00
Brandon Low
857db456af Fix seeking on swcodec, but probably break some cases of skipping. Another important rework here, buffer management is serialized along with most other operations on the audio thread. This has some minor performance issues on ipod that can lead to audio skips during buffer fill as well.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9529 a1c6a512-1295-4272-9138-f99709370657
2006-04-06 04:07:06 +00:00
Brandon Low
33a62e8a8e More work on swcodec. No significant pcmbuf functions are called from the audio thread now. Do not be surprised if seek or skip behavior gets weird after this, but it Works for Me (TM), and is a significant step in the right direction.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9510 a1c6a512-1295-4272-9138-f99709370657
2006-04-05 04:27:16 +00:00
Miika Pekkarinen
93b6a1d12c Prevent two division by zeros and one problem causing a crash in the
mp3 metadata parser.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9438 a1c6a512-1295-4272-9138-f99709370657
2006-04-02 20:19:00 +00:00
Miika Pekkarinen
44b76bc4fa Added track number sorting to the tagcache and a few new tags to the
engine: track number, year, composer, length and bitrate.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9358 a1c6a512-1295-4272-9138-f99709370657
2006-03-30 12:07:32 +00:00
Zakk Roberts
8bdd92b05e New 'Track Skip Only' option for Crossfading; crossfading is disabled except for manual track changes. NOTE: If you were using 'Always' mode previously, check again after updating: you'll now be in the new 'Track Skip Only' mode.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9353 a1c6a512-1295-4272-9138-f99709370657
2006-03-30 05:56:19 +00:00
Miika Pekkarinen
e859e16420 Fixed some red builds.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9261 a1c6a512-1295-4272-9138-f99709370657
2006-03-26 17:07:00 +00:00
Miika Pekkarinen
b7251261de Fill WPS tags from tagcache if available.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9260 a1c6a512-1295-4272-9138-f99709370657
2006-03-26 16:37:18 +00:00
Brandon Low
09c09738ab Fix a problem where audio would stay paused after a stop and start of playback
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9248 a1c6a512-1295-4272-9138-f99709370657
2006-03-25 15:58:10 +00:00
Brandon Low
86f1e2ead2 Convert playback.c to use unsigned byte counters, and _minor_ refactoring of buffer callbacks
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9227 a1c6a512-1295-4272-9138-f99709370657
2006-03-24 13:43:15 +00:00
Brandon Low
fdb58dfe1c Allow the pcm buffer to fill while playback is paused
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9212 a1c6a512-1295-4272-9138-f99709370657
2006-03-23 17:11:00 +00:00
Brandon Low
a553d5f048 First small step in playback.c's pending makeover. Properly lock and cleanup codec swapping
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9210 a1c6a512-1295-4272-9138-f99709370657
2006-03-23 16:18:17 +00:00
Thom Johansen
e2824c94fc Use size-correct casts. Fixes some AMD64 sim warnings.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9192 a1c6a512-1295-4272-9138-f99709370657
2006-03-22 16:04:51 +00:00
Thom Johansen
a7b5a2ce73 Quick fix for voice UI on iPods. Proper fix (which does not impact
functionality in any way) coming later.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9190 a1c6a512-1295-4272-9138-f99709370657
2006-03-22 15:19:59 +00:00
Jens Arnold
8ac3ae73c5 More 64bit simulator fixes, coinciding with the long policy this time.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8890 a1c6a512-1295-4272-9138-f99709370657
2006-03-03 02:09:58 +00:00
Miika Pekkarinen
747664918b Fixed the early usb initialization problem.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8825 a1c6a512-1295-4272-9138-f99709370657
2006-02-24 10:27:23 +00:00
Brandon Low
413da2a3d9 Rework PCM buffer
* Linked list instead of static array buffer pointers
* Variable sized chunks
* Improved mix handling
* Reduction in duplicated code
* Reduced IRAM usage w/o sacrificing performance
* Converted to almost entirely unsigned math
* Add pause function to reduce pcm_* exposure to playback.

This WILL break playback on the iPod until linuxstb makes a followup commit.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8612 a1c6a512-1295-4272-9138-f99709370657
2006-02-07 20:38:55 +00:00
Dave Chapman
fbd8e5d29c Patch #1421483 - AIFF codec by Jvo Studer
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8524 a1c6a512-1295-4272-9138-f99709370657
2006-02-01 16:42:02 +00:00
Miika Pekkarinen
05411983c7 Codec buffer was initialized too early thus crashing the unit later.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8473 a1c6a512-1295-4272-9138-f99709370657
2006-01-28 12:49:05 +00:00
Miika Pekkarinen
a4f8d1c621 Don't use crossfader mix mode when skipping tracks manually.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8470 a1c6a512-1295-4272-9138-f99709370657
2006-01-27 16:25:44 +00:00
Miika Pekkarinen
d319116be4 iriver: Init audio on background.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8465 a1c6a512-1295-4272-9138-f99709370657
2006-01-27 11:39:46 +00:00
Miika Pekkarinen
6d6ca6b6a5 Muting trick to prevent tiny pops and glitchless mp3 seeking.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8416 a1c6a512-1295-4272-9138-f99709370657
2006-01-22 10:25:07 +00:00
Brandon Low
998610ca0b Fix a bug in the end of track updates
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8415 a1c6a512-1295-4272-9138-f99709370657
2006-01-22 04:35:28 +00:00
Brandon Low
8d5a6609a3 AB-repeat mode for software codecs. Accessible through menu as a repeat mode, with buttom mappings much like those on other rockbox targets for now.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8409 a1c6a512-1295-4272-9138-f99709370657
2006-01-21 23:43:57 +00:00
Brandon Low
0a9179cb0a Add seamless seeking support, this is needed for AB-repeat mode on swcodec.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8408 a1c6a512-1295-4272-9138-f99709370657
2006-01-21 22:58:08 +00:00
Brandon Low
a3868d35d3 Continue to update playback status after decoding is complete (the progress bar makes it to 100%!)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8407 a1c6a512-1295-4272-9138-f99709370657
2006-01-21 22:42:44 +00:00
Miika Pekkarinen
0e159f13cf Fixed a few iriver playback quirks and issues with previous fixes.
Also fixed "TST.." bug when seeking and possible an enhancement to mp3
gapless playback also.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8402 a1c6a512-1295-4272-9138-f99709370657
2006-01-20 22:02:44 +00:00
Miika Pekkarinen
178a85f31c iriver: Better fix for the previous problem, stop playback if next
song is not immediately available, don't flush buffer when changing to
next directory,


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8393 a1c6a512-1295-4272-9138-f99709370657
2006-01-19 20:35:06 +00:00
Miika Pekkarinen
61cd604369 Don't start playback twice if pcm buffer runs empty when switching to
the next directory.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8390 a1c6a512-1295-4272-9138-f99709370657
2006-01-19 18:21:12 +00:00
Linus Nielsen Feltzing
27312b2855 Patch #1408536 by Mark Arigo - properly strip ID3V1 tags
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8370 a1c6a512-1295-4272-9138-f99709370657
2006-01-18 14:20:34 +00:00