Brandon Low
1df1e7b0c7
Remove unused conf_preseek from buffering.c and all of its accountraments. This is _not_ a setting. This is a guessing tool used by either playback or buffering to serve its clients better. Use the REBUFFER_GUESS size in resume to help obviate pondlife's bug. This will also need to be used when FS8092 gets fixed correctly with a complete rebuffer for backward movements. It may also belong in buffering not playback, haven't decided for sure
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15475 a1c6a512-1295-4272-9138-f99709370657
2007-11-05 16:02:12 +00:00
Brandon Low
d02b5c744e
Don't keep useless id3v2 or other leading tag data on the buffer, it could be large
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15465 a1c6a512-1295-4272-9138-f99709370657
2007-11-05 01:56:12 +00:00
Brandon Low
31c1164c49
make handle_id of zero valid, stop using memsets to clear tracks, should be no functional changes
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15462 a1c6a512-1295-4272-9138-f99709370657
2007-11-04 19:01:02 +00:00
Brandon Low
f906498786
OTher part of previous
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15450 a1c6a512-1295-4272-9138-f99709370657
2007-11-04 05:36:35 +00:00
Brandon Low
e8fa7f94b0
More attempt to fix 8077
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15449 a1c6a512-1295-4272-9138-f99709370657
2007-11-04 05:33:06 +00:00
Brandon Low
0c97493a88
This part was good, bring it back
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15440 a1c6a512-1295-4272-9138-f99709370657
2007-11-03 21:55:24 +00:00
Brandon Low
c2e1cc1e39
Revert recent changes that are broken
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15439 a1c6a512-1295-4272-9138-f99709370657
2007-11-03 21:48:08 +00:00
Brandon Low
acb3e9af22
Make handle id semantics more like file id. This may need to be revisited if we ever start storing long lived things on the buffer (if an item lives through 32k other items coming and going, there will be an id collision and things will break)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15437 a1c6a512-1295-4272-9138-f99709370657
2007-11-03 21:13:15 +00:00
Brandon Low
86919f4609
Misc. buffering related playback tweaks
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15435 a1c6a512-1295-4272-9138-f99709370657
2007-11-03 17:55:29 +00:00
Brandon Low
11a3661d73
Make atomic type work for even first track. Rework low buffer handling... uses a stateful variable because I'm a bitter old man and it works this way
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15425 a1c6a512-1295-4272-9138-f99709370657
2007-11-03 06:21:32 +00:00
Michael Sevakis
4bce3ad98a
Use the correct event state constants.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15423 a1c6a512-1295-4272-9138-f99709370657
2007-11-03 05:14:09 +00:00
Brandon Low
9c3c6f9c82
Logf when a file is loaded atomic not packet
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15420 a1c6a512-1295-4272-9138-f99709370657
2007-11-03 04:30:43 +00:00
Brandon Low
9a114614d5
Comments and a fix to possibly get more out of backward skipping without rebuffering
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15413 a1c6a512-1295-4272-9138-f99709370657
2007-11-03 02:53:57 +00:00
Nicolas Pennequin
b838a62adf
Make bufread and bufgetdata blocking. They now return when enough data is available or when EOF is reached. This improves the API and removes the need for several duplicate waiting loops.
...
Also fix a few logfqueue messages.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15412 a1c6a512-1295-4272-9138-f99709370657
2007-11-02 19:13:03 +00:00
Brandon Low
dcca586a9b
Improve upon my hackity hack from before by separating audio into two types: that which may be large and can be streamed and that which is small and cannot be streamed. While modifying types, allow codecs to split across the buffer wrap and dig out/move around the code that reads a codec off of the buffer to facilitate that simple sounding change.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15408 a1c6a512-1295-4272-9138-f99709370657
2007-11-02 14:06:48 +00:00
Nicolas Pennequin
7f79564abc
Accept FS#8053 by Bertrik Sikken: playback.c and mpeg.c simplification by removal of last_track argument in track_(un)buffer callback.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15384 a1c6a512-1295-4272-9138-f99709370657
2007-10-31 13:43:50 +00:00
Nicolas Pennequin
9d05e50c6e
Fix a file descriptor leak that happened with large directories of small files with some invalid ones.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15379 a1c6a512-1295-4272-9138-f99709370657
2007-10-30 18:01:49 +00:00
Brandon Low
7030279dd2
Fix a logf warning
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15375 a1c6a512-1295-4272-9138-f99709370657
2007-10-30 15:09:16 +00:00
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