Commit graph

743 commits

Author SHA1 Message Date
Nicolas Pennequin
be6e85dc59 Revert r15360: It didn't completely fix the problem and it's a bit dirty. A better solution has to be found.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15373 a1c6a512-1295-4272-9138-f99709370657
2007-10-30 13:19:04 +00:00
Nicolas Pennequin
30d3d36513 Invalidate prevtrack_id3 on all track skips to prevent next track info from being displaying for a split second after skipping to the previous track.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15361 a1c6a512-1295-4272-9138-f99709370657
2007-10-29 15:10:54 +00:00
Nicolas Pennequin
aecca6693f Update "elapsed" and "offset" in the mp3entries on the main buffer in the corresponding codec callbacks.
This should fix FS#8040.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15360 a1c6a512-1295-4272-9138-f99709370657
2007-10-29 15:10:30 +00:00
Nicolas Pennequin
d400e23e38 Prefix the error constants with ERR_
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15359 a1c6a512-1295-4272-9138-f99709370657
2007-10-29 14:15:59 +00:00
Steve Bavin
c985903084 Oops, sucky workaround wasn't meant to be committed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15357 a1c6a512-1295-4272-9138-f99709370657
2007-10-29 13:57:29 +00:00
Steve Bavin
7707f7fac9 Tiny bit of code policing: remove unneeded variable and spaces at end-of-line.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15356 a1c6a512-1295-4272-9138-f99709370657
2007-10-29 13:55:34 +00:00
Nicolas Pennequin
7807279eaf Add #defines for error values. Makes the code easier to read.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15348 a1c6a512-1295-4272-9138-f99709370657
2007-10-28 15:54:10 +00:00
Nicolas Pennequin
1839edf64a Add queue_peek to the kernel (written by Mike Sevakis), and use it to improve upon my previous commit.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15336 a1c6a512-1295-4272-9138-f99709370657
2007-10-27 18:08:18 +00:00
Nicolas Pennequin
41add08c5e Prevent the audio queue from getting flooded with fill buffer messages.
The low buffer callback is registred by  instead of the function it calls to prevent a loop.
audio_check_new_track() also makes more sense because that's where tracks are made useless by a skip.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15335 a1c6a512-1295-4272-9138-f99709370657
2007-10-27 15:35:51 +00:00
Michael Sevakis
3c1d2069dd Make voice and codec queues private so they don't receive system messages. The audio thread controls them just fine. Important so codec stack-stealing plugins don't crash when system events are broadcast. Simpler too.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15333 a1c6a512-1295-4272-9138-f99709370657
2007-10-27 12:11:45 +00:00
Brandon Low
14b6f437bb Make buffering initialization versus reset separate functions to avoid double initializing threads or mutexes more easily
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15327 a1c6a512-1295-4272-9138-f99709370657
2007-10-27 04:16:41 +00:00
Nicolas Pennequin
d08131a117 * Only call bufgetcodec once
* Fix/Improve some queue logf messages
* Complete buffering_init


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15325 a1c6a512-1295-4272-9138-f99709370657
2007-10-27 01:25:47 +00:00
Brandon Low
0652663367 Simple fix which should improve track change performance slightly
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15324 a1c6a512-1295-4272-9138-f99709370657
2007-10-27 00:13:10 +00:00
Steve Bavin
530abe84fd Code police: static internal functions.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15314 a1c6a512-1295-4272-9138-f99709370657
2007-10-26 09:39:05 +00:00
Nicolas Pennequin
14da611cd3 Check the audio queue for new messages while filling the buffer with tracks. This cuts down the long wait for a skip (or any other action) while adding a large number of tracks to the buffer.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15309 a1c6a512-1295-4272-9138-f99709370657
2007-10-25 22:52:40 +00:00
Nicolas Pennequin
3e3c43c747 Finally commit Metadata on Buffer!
buffering.c and buffering.h implement the new buffering API. playback.c is translated to that API. For more information about the whole concept, see http://www.rockbox.org/wiki/MetadataOnBuffer.
There should be no major visible changes, but most existing bugs remain (though fixing them should be easier now that playback.c is a bit less complex) and there probably will be new ones. Please report any problem!
Next step is to adapt cuesheet support, which is partly disabled here, and of course fix as much bugs as possible.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15306 a1c6a512-1295-4272-9138-f99709370657
2007-10-25 21:27:45 +00:00
Nicolas Pennequin
fb70952228 logf changes:
* Disable logf by default and allow per-file enabling with "#define LOGF_ENABLE". To enable globally add that define in the config.h file.
* Transform logf calls into DEBUGF calls when ROCKBOX_HAS_LOGF isn't defined, so that they get printed to the console in the sim.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15291 a1c6a512-1295-4272-9138-f99709370657
2007-10-24 22:06:36 +00:00
Steve Bavin
32a9575130 FS#7994 - Rename talk.c API, make talk_disable() affect all talking (not just menus), hopefully save some space.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15206 a1c6a512-1295-4272-9138-f99709370657
2007-10-19 15:31:42 +00:00
Stéphane Doyon
e5ba649d85 Fix a problem that caused stale pcm data to be played subsequent to a
voice shutup.

Observed when moving through a few voiced items in very quick succession.

This is for the case where music playback is not in progress, only voice
is playing.  The first few samples of audio data for voicing the first
skipped item make it to the pcm buffer, but the shutup comes before
enough pcm data has accumulated to actually start pcm playback. The
condition at the top of voice_on_voice_stop() is therefore false,
pcmbuf_play_stop() is not called, and the beginning of the interrupted
utterance is left to wait in the pcm buffer. That data will end up
prepended to the following voice clip to be played, causing a kind of
stuttering effect.

The fix is to remove the condition on pcm_is_playing() in
voice_on_voice_stop(): always clear the pcm data, it's harmless if there
wasn't any.

Thanks to jhMikeS for his assistance.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15176 a1c6a512-1295-4272-9138-f99709370657
2007-10-18 00:17:15 +00:00
Michael Sevakis
a9b2fb5ee3 Finally full multicore support for PortalPlayer 502x targets with an eye towards the possibility of other types. All SVN targets the low-lag code to speed up blocking operations. Most files are modified here simple due to a name change to actually support a real event object and a param change to create_thread. Add some use of new features but just sit on things for a bit and leave full integration for later. Work will continue on to address size on sensitive targets and simplify things if possible. Any PP target having problems with SWP can easily be changed to sw corelocks with one #define change in config.h though only PP5020 has shown an issue and seems to work without any difficulties.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15134 a1c6a512-1295-4272-9138-f99709370657
2007-10-16 01:25:17 +00:00
Steve Bavin
4d34457cd0 Thanks to Nico_P, struct track_info can now be internal to playback.c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14947 a1c6a512-1295-4272-9138-f99709370657
2007-10-02 07:47:43 +00:00
Michael Sevakis
035529c487 Enable auto reply for queue messages sent with queue_send. It's only nescessary to use queue_reply to return a value other than zero or to return a result before waiting on the queue again.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14923 a1c6a512-1295-4272-9138-f99709370657
2007-09-30 17:23:13 +00:00
Tomasz Malesinski
8f8dbf4742 Fix disabling voice.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14821 a1c6a512-1295-4272-9138-f99709370657
2007-09-22 22:47:12 +00:00
Thom Johansen
294ec1d110 Remove the ID3 tag version priority setting on the grounds of it being pretty pointless. ID3v2 tags are superior to ID3v1 tags, and needs less seeking around to find.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14750 a1c6a512-1295-4272-9138-f99709370657
2007-09-19 10:40:55 +00:00
Nils Wallménius
441fa76a6d Fix flushing of voice during playback, patch in FS#6239 by Stephane Doyon and Daniel Dalton
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14517 a1c6a512-1295-4272-9138-f99709370657
2007-08-29 15:11:19 +00:00
Nicolas Pennequin
6a92e475ac Make get_metadata act on a struct mp3entry rather than a struct track_info.
This should make it easy to use a buffer handle to put the ID3 data in.
The changes in get_metadata are mostly search and replace. The only thing
it actually used to do on the struct track_info was set taginfo_ready to
true.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14326 a1c6a512-1295-4272-9138-f99709370657
2007-08-14 11:56:13 +00:00
Nils Wallménius
5b76936a44 Accept FS#6159 'Add voice to roughly 100 splash screens and yes-no menus' by Stephane Doyon with some minor tweaks by me. Rerun 'configure' and do a 'make clean' before rebuilding your voice files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14213 a1c6a512-1295-4272-9138-f99709370657
2007-08-06 13:08:36 +00:00
Steve Bavin
2129d0f5e3 Formatting consistency and fix further case of FS#6266 if user starts new playlist while paused.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14145 a1c6a512-1295-4272-9138-f99709370657
2007-08-02 13:19:35 +00:00
Nils Wallménius
0bfa3e76ce Disable 'Disk spindown' and 'Anti skip buffer' settings and some related stuff for flash storage targets as they make no sense
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14110 a1c6a512-1295-4272-9138-f99709370657
2007-08-01 08:50:44 +00:00
Michael Sevakis
ec2d2c47a0 Hopefully fix the problems with voice not cancelling its CPU boost.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14094 a1c6a512-1295-4272-9138-f99709370657
2007-07-31 10:00:50 +00:00
Steve Bavin
93b3fb334b FS#6266 - flush PCM buffers if the user skips while paused. FixesFS#5747.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14090 a1c6a512-1295-4272-9138-f99709370657
2007-07-31 07:57:59 +00:00
Steve Bavin
cbed7a2cd2 Fix problem where follow playlist picks the next track, not the current one (FS#7244). Hopefully also fixes the wrong filename being displayed on the WPS (FS#7248).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13805 a1c6a512-1295-4272-9138-f99709370657
2007-07-06 20:49:40 +00:00
Peter D'Hoye
e596a80e8d Yet another fine scrobbling patch by Robert Keevil that fixes FS #5495: audio_set_track_changed_event() skips first track in playlist
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13701 a1c6a512-1295-4272-9138-f99709370657
2007-06-24 19:20:27 +00:00
Peter D'Hoye
12d2d0fbc2 A patch by Robert Keevil that's been in the tracker way to long, fixes FS #6213: Audioscrobbler incorrectly submits last song
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13699 a1c6a512-1295-4272-9138-f99709370657
2007-06-24 18:46:04 +00:00
Nils Wallménius
c7f9ca4067 Accept FS#7264 'Build with -Os switch for coldfire targets'.
Introduces MEM_FUNCTION_WRAPPERS(api) macro which adds wrappers 
functions to a plugin to make plugins link correctly when gcc
calls mem* functions directly.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13625 a1c6a512-1295-4272-9138-f99709370657
2007-06-13 15:35:07 +00:00
Michael Sevakis
4597ebe24b Plugins that play sound must be sure to set inputs and outputs on audio muxed targets. Add strict adherence to the interface protocols. Make sure playback sets the playback output as well.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13604 a1c6a512-1295-4272-9138-f99709370657
2007-06-10 02:10:47 +00:00
Michael Sevakis
2d48d0ffa6 Straighten out some audio path APIs and misc. audio stuff. Having recording is not a prerequisite to having input/output source selection which is probably most useful when adding a audio input features like FM to a new port without forcing recording to be implemented first.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13599 a1c6a512-1295-4272-9138-f99709370657
2007-06-08 23:42:04 +00:00
Dave Chapman
7b1d90a851 Seeking and resume support for Monkey's Audio
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13597 a1c6a512-1295-4272-9138-f99709370657
2007-06-08 22:35:26 +00:00
Nicolas Pennequin
6579818b43 Add the possibility to store cuesheets in /.rockbox/cue. The code will look for a cuesheet there in case there wasn't one in the same folder as the audio file. This is to reduce the clutter created by one cuesheet per audio file in some places.
Also some duplicate code was replaced by a function call.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13508 a1c6a512-1295-4272-9138-f99709370657
2007-05-28 23:18:31 +00:00
Nils Wallménius
f31e123133 Remove unused function and unused header
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13424 a1c6a512-1295-4272-9138-f99709370657
2007-05-19 19:54:11 +00:00
Michael Sevakis
77771b0a43 How'd I miss that I'd left LOGFQUEUES enabled in my pre-commit diff? :/
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13365 a1c6a512-1295-4272-9138-f99709370657
2007-05-09 03:48:52 +00:00
Michael Sevakis
e486ed0453 SWCODEC Playback: Put a stop to the resume deadlock however crudely. Clean some unused lines out that no longer compatible.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13364 a1c6a512-1295-4272-9138-f99709370657
2007-05-09 03:44:44 +00:00
Michael Sevakis
a21871ceaa Fix errors. LOGFQUEUE should take formatting parameters now.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13363 a1c6a512-1295-4272-9138-f99709370657
2007-05-08 23:13:46 +00:00
Michael Sevakis
d9839bc8a6 Silly fix for a silly comment mistake.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13362 a1c6a512-1295-4272-9138-f99709370657
2007-05-08 22:59:25 +00:00
Michael Sevakis
1c59b101df SWCODEC Playback: Seriously mess with it and get rid of (at least some ;) race conditions.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13361 a1c6a512-1295-4272-9138-f99709370657
2007-05-08 22:56:12 +00:00
Michael Sevakis
e88078f9f5 Playback: Ensure some state coherency. paused implies playing and pause actions are bypassed if not playing. stopped implies not playing and not paused. Starting playback transistions to playing and not paused.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13360 a1c6a512-1295-4272-9138-f99709370657
2007-05-08 16:19:13 +00:00
Dave Chapman
4ae85e6886 Revert the addition of the steal_codec_stack function. Replace by accessing the threads structure to grab the codec stack. Maybe a better solution exists.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13349 a1c6a512-1295-4272-9138-f99709370657
2007-05-07 23:54:10 +00:00
Dave Chapman
f4a9dab4d1 Use a separate thread in test_codec, with the same (IRAM) stack as the main codec thread. Add a function to the plugin API to steal the codec thread, which test_codec copies and then restores. Now libmad can be benchmarked.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13347 a1c6a512-1295-4272-9138-f99709370657
2007-05-07 22:30:23 +00:00
Dave Chapman
7cdd0fe6ea Initial version of a test_codec plugin (viewer). This loads the audio file into the audio buffer and decodes it as fast as it can via a locally implemented version of the codec API. Intended for use when optimising codecs - so isn't built by default. Remember to add it to both plugins/SOURCES and viewers.config to enable it. Currently the codec is run in the main thread which means mpa.codec doesn't work - it requires more stack than is available on the main thread. The solution will be to create a new thread in the plugin which steals the main codec thread's IRAM stack, but that's not done yet.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13345 a1c6a512-1295-4272-9138-f99709370657
2007-05-07 17:23:31 +00:00
Michael Sevakis
d7e8e38253 Audio seemed never to want to stop stopping. A bad condition for plugins that want to stop audio and begin pcm playback immediately. Only do the stop if the state is playing. Properly wait for it to be done as well.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13317 a1c6a512-1295-4272-9138-f99709370657
2007-05-03 21:49:59 +00:00
Michael Sevakis
9cd6394d8c SWCODEC: Fix a race condition caused by yielding in pcm_mute that could have playback messing around with pcm after supposedly being fully stopped. The pcm buffer mutes consistently on some players (the PP ones) which made audio_stop return too soon. Won't matter if it yields or not now and this should take care of the mpegplayer 'next video' issue.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13117 a1c6a512-1295-4272-9138-f99709370657
2007-04-12 05:58:09 +00:00
Dan Everton
fc47f14242 Move iPod Video hardware equalizer init to audio_init() after the hardware is enabled. Should fix the issue where the hardware equalizer settings would not be reapplied after a restart.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13106 a1c6a512-1295-4272-9138-f99709370657
2007-04-11 09:13:13 +00:00
Magnus Holmgren
9a535274b8 Revert change 13001, since it causes the metadata to be re-read for partially buffered files. This breaks ID3V2 parsing, which expects the mp3entry struct to be zeroed. A better fix for the old tag data problem is needed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13082 a1c6a512-1295-4272-9138-f99709370657
2007-04-09 14:50:22 +00:00
Adam Boot
a5d7309d96 Support resume for Musepack
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13049 a1c6a512-1295-4272-9138-f99709370657
2007-04-06 21:48:17 +00:00
Steve Bavin
2e7cb462b2 Fix occasional display of old tag data (normally from 32 tracks previous)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13001 a1c6a512-1295-4272-9138-f99709370657
2007-04-02 15:04:14 +00:00
Miika Pekkarinen
ce35f76a53 Don't update runtime info when stopping playback, except when playlist ends. Fixes wrong playcounts and autoscores being generated.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12976 a1c6a512-1295-4272-9138-f99709370657
2007-03-31 06:49:49 +00:00
Miika Pekkarinen
66258a30a4 Make scheduler functions thread safe core wise. A big step towards playback running on COP (not yet possible because more protection on file system level is necessary).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12926 a1c6a512-1295-4272-9138-f99709370657
2007-03-26 16:55:17 +00:00
Robert Kukla
77983681ca fix bug where runtime data was not gathered for last track (end of playlist or stop button).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12909 a1c6a512-1295-4272-9138-f99709370657
2007-03-25 17:12:27 +00:00
Michael Sevakis
571d3245f7 FS#6864 - iriver H340 doesn't connect via USB - should be fixed. Registered the voice queue but didn't create the thread.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12859 a1c6a512-1295-4272-9138-f99709370657
2007-03-20 14:09:50 +00:00
Michael Sevakis
e1dd10ddfb SWCODEC: Get rid of extra swap buffer and get back 512K of RAM or 100K if the players RAM is <= 1MB. Make any needed changes to things to stabilize and facilitate this including removing flattening out initialization. Comment some things heavily. Fix a few logfs I didn't want to see the compiler complaining about.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12843 a1c6a512-1295-4272-9138-f99709370657
2007-03-19 22:04:17 +00:00
Jens Arnold
4d6374c923 Get rid of the 'center' parameter for splashes. There were only 2 of almost 500 splashes which were not centered.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12807 a1c6a512-1295-4272-9138-f99709370657
2007-03-16 21:56:08 +00:00
Michael Sevakis
ef4a080da4 SWCODEC/Voice: Just one more adjustment and all should be good again.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12749 a1c6a512-1295-4272-9138-f99709370657
2007-03-13 12:14:11 +00:00
Michael Sevakis
1c97b22ca5 SWCODEC: Fix a problem with voice in the menus caused by my error using the wrong pointer when aligning the codec malloc buffer. Probably the reason for FS#6803. Oy.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12747 a1c6a512-1295-4272-9138-f99709370657
2007-03-13 10:17:59 +00:00
Michael Sevakis
c2d2106fd7 Audio Init: Just can't stand that heirarchy. Add one level of abstraction. Might come in handy anyhow. Use sound.h instead of the conditional includes for audio hardware headers. If someone doesn't like that, yell at my evil twin. :)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12718 a1c6a512-1295-4272-9138-f99709370657
2007-03-11 06:21:43 +00:00
Michael Sevakis
07b41d65e8 Add another #ifdef PLAYBACK_VOICE where it should be.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12715 a1c6a512-1295-4272-9138-f99709370657
2007-03-11 05:06:59 +00:00
Michael Sevakis
5d63776a24 Reenable aynchronous audio init stage. Really just single stage with aynchronous enabling of outputs. Keeps audio_init last so prior init steps can use the audiobuffer in any desired way. Audio will be fully initialized by the time the UI is entered. Playback of voice or audio will be delayed properly until audio hardware is ready.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12714 a1c6a512-1295-4272-9138-f99709370657
2007-03-11 05:04:48 +00:00
Michael Sevakis
1f8326b0f7 SWCODEC: Keep codec malloc buffer line aligned. Not doing so had vorbis running with unpredicable performance. Having a voice file present messed up the alignment.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12712 a1c6a512-1295-4272-9138-f99709370657
2007-03-11 00:37:58 +00:00
Michael Sevakis
cc86b65d24 I really want the rest initialized to prevent accidents like the last.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12696 a1c6a512-1295-4272-9138-f99709370657
2007-03-09 13:49:52 +00:00
Michael Sevakis
e4efe2fe3c Throw in the explicit global inits that were supposed to be there too. Important for current_fd to be -1 at init.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12695 a1c6a512-1295-4272-9138-f99709370657
2007-03-09 13:41:33 +00:00
Michael Sevakis
68f9e1ad57 Guess there were more changes to it.:) Odd that mine built until a make clean.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12694 a1c6a512-1295-4272-9138-f99709370657
2007-03-09 12:51:25 +00:00
Michael Sevakis
98cd3e8868 Install the single stage synchronous audio initialization I cooked up awhile back.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12693 a1c6a512-1295-4272-9138-f99709370657
2007-03-09 12:30:14 +00:00
Jens Arnold
8876018d25 Bring up the M5 port to a working stage: Extended numerous explicit checks for IAUDIO_X5 to also check for IAUDIO_M5, moved code around the target tree, added preliminary background for the sim.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12610 a1c6a512-1295-4272-9138-f99709370657
2007-03-05 00:04:00 +00:00
Daniel Ankers
82f9056988 Dual core support for PP502x players (iPod G4 and later, iriver h10, Sansa - iPod G3 will be coming soon.) This allows threads to be run on either core provided that all communications between the cores is done using uncached memory. There should be no significant change in battery life from doing this. Documentation (on the RockboxKernel wiki page) will follow shortly.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12601 a1c6a512-1295-4272-9138-f99709370657
2007-03-04 20:06:41 +00:00
Robert Kukla
23c136c892 don't restart the whole wps to essentially update the display of runtime info, but make the concerned tags dynamic. Now scrolling is not restarted at end of buffering.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12592 a1c6a512-1295-4272-9138-f99709370657
2007-03-04 16:09:18 +00:00
Michael Sevakis
598629c3bf SWCODEC Recording Codecs: Fix problems with hanging recording screen (chiefly on x5) when no voice file present and source is not FMRadio. Caused by extra audio stops causing encoder to unload prematurely. Fix is to have separate stop flags for each codec type to prevent collisions. Also now safe to plug into USB when recording and encoder will stay loaded and not be stopped by the call to audio_stop_playback. Additional discovery: playback will not be able to restart after a USB plug during recording. Probably an old bug. I recommend in the future that recording have higher priority on system resources than playback and playback be denied access explicitly if recording requires them. Codec API becomes incompatible so do full updates.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12579 a1c6a512-1295-4272-9138-f99709370657
2007-03-04 04:16:53 +00:00
Michael Sevakis
d4e904bf35 SWCODEC: Dsp speed optimizations. Changes for more modularity. Removal of some usless stuff. Some assembly routines for Coldfire with speed in mind over size for the outputs but the channel modes remain compact. Miscellaneous coldfire asm updates to accomodate the changes. Codec API structure version has to increase so do a full update.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12472 a1c6a512-1295-4272-9138-f99709370657
2007-02-24 17:06:36 +00:00
Jonathan Gordon
ec73eb0be1 really fix red builds this time
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12380 a1c6a512-1295-4272-9138-f99709370657
2007-02-18 02:34:36 +00:00
Michael Sevakis
09186e31ae SWCODEC: Remove the last quirks when upsampling.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12336 a1c6a512-1295-4272-9138-f99709370657
2007-02-16 12:01:35 +00:00
Linus Nielsen Feltzing
160851e7b9 Fix a bug where the CPU stays boosted when the voice is activated
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12314 a1c6a512-1295-4272-9138-f99709370657
2007-02-15 13:33:07 +00:00
Nicolas Pennequin
9f4bd8712f Cuesheet support by Jonathan Gordon and me (FS #6460).
Everytime an audio file is loaded, a cue file with the same name is searched for. A setting 
allows to disable this (default is off). Cuesheet files can also be viewed in the file browser.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12304 a1c6a512-1295-4272-9138-f99709370657
2007-02-14 14:40:24 +00:00
Michael Sevakis
97f369a587 SWCODEC: Annoying neatness update. Use intptr_t for codec_configure_callback and dsp_configure and stop all the silly type casting of intergral types to pointers to set dsp configuration and watermarks. Shouldn't have any effect on already compiled codecs at all. Will fix any important patches in the tracker so they compile.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12259 a1c6a512-1295-4272-9138-f99709370657
2007-02-10 16:34:16 +00:00
Dan Everton
ebc58c9f06 Add Speex playback support. Patch from FS #5607 thanks to Frederik Vestre.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12241 a1c6a512-1295-4272-9138-f99709370657
2007-02-09 10:06:53 +00:00
Michael Sevakis
aba6ca0881 Fix resampling clicking as much as possible at the moment. 1) Upsampling clicked because of size inaccuracies returned by DSP. Fix by simplifying audio system to use per-channel sample count from codec to pcm buffer. 2) Downsampling affected by 1) and was often starting passed the end of the data when not enough was available to generate an output sample. Fix by clamping input range to last sample in buffer and using the last sample value in the buffer. A perfect fix will require a double buffering scheme on the resampler to sufficient data during small data transients on both ends at all times of the down ratio on input and the up ratio on output.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12218 a1c6a512-1295-4272-9138-f99709370657
2007-02-07 00:51:50 +00:00
Brandon Low
369b6bd367 Fix a potential voice related bug with first time buffer setup
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12125 a1c6a512-1295-4272-9138-f99709370657
2007-01-27 16:33:44 +00:00
Brandon Low
be95ff4570 No functional changes. Code police and comment clarity improvements.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12120 a1c6a512-1295-4272-9138-f99709370657
2007-01-26 18:35:49 +00:00
Jens Arnold
2597a13497 Next round of static'ing and related fixes.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11836 a1c6a512-1295-4272-9138-f99709370657
2006-12-25 14:01:47 +00:00
Michael Sevakis
4b902679cc Convert queues to use intptr_t for event data and return values as most of the time pointer are not passed and it should make some things a bit cleaner.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11818 a1c6a512-1295-4272-9138-f99709370657
2006-12-19 16:50:07 +00:00
Jonathan Gordon
3bceded793 Accept FS#5344 by Mike Schmitt. Add a "shuffle and track skip" option to
crossfade.
Bumps config versino, so SAVE SETTINGS before updating.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11811 a1c6a512-1295-4272-9138-f99709370657
2006-12-19 01:26:37 +00:00
Michael Sevakis
84a013ea41 Attempt at fixing 64-bit sim warning.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11788 a1c6a512-1295-4272-9138-f99709370657
2006-12-17 14:47:12 +00:00
Michael Sevakis
42b0208253 Commit the kinds of changes that queue_send is mean for.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11778 a1c6a512-1295-4272-9138-f99709370657
2006-12-16 20:19:58 +00:00
Mark Arigo
8eaa685e1b Fix an errant #if effecting targets with MEM <= 8
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11677 a1c6a512-1295-4272-9138-f99709370657
2006-12-06 16:21:04 +00:00
Jonathan Gordon
3e24665c41 Fix settings not saving to disk correctly, (fixes FS#6408)
Stop playback.c requesting a rebuffer while not playing
Shutting down from inside the menu will now save settings to disk, and
entering the main menu will not force a setting save unless a setting
actually changes


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11674 a1c6a512-1295-4272-9138-f99709370657
2006-12-06 12:11:57 +00:00
Michael Sevakis
97d1ca5a23 SWCODEC: Audio-related threads must be free of further tasks before returning buffers. Cleanup declarations of related functions.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11618 a1c6a512-1295-4272-9138-f99709370657
2006-11-28 15:00:56 +00:00
Michael Sevakis
a1af87ffe7 Avoid calls to audio and talk functions in audio_get_buffer until init is complete. Just good hygiene really.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11615 a1c6a512-1295-4272-9138-f99709370657
2006-11-27 13:54:50 +00:00
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
Magnus Holmgren
917f2c1804 Simulator fixes: id3 string pointers can be null.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8282 a1c6a512-1295-4272-9138-f99709370657
2005-12-22 21:42:00 +00:00
Linus Nielsen Feltzing
735f8273f0 H300: quick fix for the broken line-in recording
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8266 a1c6a512-1295-4272-9138-f99709370657
2005-12-20 21:49:47 +00:00
Marcoen Hirschberg
b0fee17d6e waiting is over: initial unicode commit
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8169 a1c6a512-1295-4272-9138-f99709370657
2005-12-06 13:27:15 +00:00
Daniel Stenberg
f981ea93fb kill gcc4 warnings
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8162 a1c6a512-1295-4272-9138-f99709370657
2005-12-05 22:44:42 +00:00
Miika Pekkarinen
999f89c46d Fixed a problem with playback when skipping from last track. No more
skipping the first track in a directory when advancing to the next dir.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8133 a1c6a512-1295-4272-9138-f99709370657
2005-12-03 12:14:26 +00:00
Miika Pekkarinen
59e0ccb278 Fixed a playback problem when seeking "too early".
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8117 a1c6a512-1295-4272-9138-f99709370657
2005-12-01 19:38:08 +00:00