Commit graph

36 commits

Author SHA1 Message Date
Thomas Martitz
baa070cca6 GSoC/Buflib: Enable compaction in buflib.
This enables the ability to allocate (and free) memory dynamically
without fragmentation, through compaction. This means allocations can move
and fragmentation be reduced. Most changes are preparing Rockbox for this,
which many times means adding a move callback which can temporarily disable
movement when the corresponding code is in a critical section.

For now, the audio buffer allocation has a central role, because it's the one
having allocated most. This buffer is able to shrink itself, for which it
needs to stop playback for a very short moment. For this,
audio_buffer_available() returns the size of the audio buffer which can
possibly be used by other allocations because the audio buffer can shrink.

lastfm scrobbling and timestretch can now be toggled at runtime without
requiring a reboot.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30381 a1c6a512-1295-4272-9138-f99709370657
2011-08-30 14:01:45 +00:00
Michael Hohmuth
5aec3c2400 FS#11931 part 2: Allow a short rewind when playback is paused. Patch
by John Morris.

This patch adds an option to rewind the current track by a few seconds
when it is paused, irrespective of what has caused the pause.  This is
useful for audiobooks and podcasts to allow the listener to recall
where the track was left off.

The patch subsumes the existing rewind-on-headphone-unplug feature and
extends it to all invocations of pause: play/pause button (or touch
area), headphone removal, and power-supply unplug in car-adapter
mode. It also subsumes FS#9448 (rewind on fade).

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29876 a1c6a512-1295-4272-9138-f99709370657
2011-05-13 22:28:47 +00:00
Michael Sevakis
c537d5958e Commit FS#12069 - Playback rework - first stages. Gives as thorough as possible a treatment of codec management, track change and metadata logic as possible while maintaining fairly narrow focus and not rewriting everything all at once. Please see the rockbox-dev mail archive on 2011-04-25 (Playback engine rework) for a more thorough manifest of what was addressed. Plugins and codecs become incompatible.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29785 a1c6a512-1295-4272-9138-f99709370657
2011-04-27 03:08:23 +00:00
Rafaël Carré
7d9df48478 playback_callback(): remove write-only old_repeat_mode
Also don't ignore this_item argument, it's being used

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28135 a1c6a512-1295-4272-9138-f99709370657
2010-09-21 08:59:27 +00:00
Magnus Holmgren
15be66a821 Fix red
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25707 a1c6a512-1295-4272-9138-f99709370657
2010-04-24 14:19:04 +00:00
Magnus Holmgren
d38093de2f FS#11099 - Rewind before resume
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25706 a1c6a512-1295-4272-9138-f99709370657
2010-04-24 14:10:28 +00:00
Jeffrey Goode
9e0953432a Crossfade: carved out crossfade related code with lots of HAVE_CORSSFADE conditionals, eliminated fade buffer on low memory targets
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23597 a1c6a512-1295-4272-9138-f99709370657
2009-11-10 03:46:08 +00:00
Michael Giacomelli
88906e3d98 Fix defines from the last commit that made replaygain depend on crossfade. Thanks to Thomas Martitz for pointing that out.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22249 a1c6a512-1295-4272-9138-f99709370657
2009-08-11 02:18:22 +00:00
Michael Giacomelli
6469926b88 FS#10506. Don't compile various crossfade only functions in pcmbuf.c on low memory targets (mainly AMS) to save memory. Some crossfade related items remain in the code, but they're not worth cluttering the code with ifdefs over. Also, introduce HAVE_CROSSFADE define for neatness.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22248 a1c6a512-1295-4272-9138-f99709370657
2009-08-11 02:05:38 +00:00
Michael Giacomelli
47a090105a Disable crossfade menu option (but nothing more) on lowmem (<=2MB) targets because it apparently needs a larger PCM buffer then is available.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22247 a1c6a512-1295-4272-9138-f99709370657
2009-08-11 01:09:05 +00:00
Jonathan Gordon
24b136f62d rework cuesheet support:
swcodec: search for a .cue during buffering (with the possibility of adding embedded cuesheets later)
hwcodec: search for a .cue when the id3 info for the current track is requested for the first time (disk should be spining so non issue)

major beenfit from this is simplofy cuesheet handling code a bit... if mp3entry.cuesheet != NULL then there is a valid cuesheet.. no need to worry about if its enabled and preloaded.
There is the possibility of putting the next/prev subtrack handling inside the playback code (as well as the id3 updating stuff (see FS#9789 for more info), but thats probably not a good idea.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21978 a1c6a512-1295-4272-9138-f99709370657
2009-07-20 05:18:18 +00:00
Alexander Levin
8589fcb3e3 Merge the "Replaygain Off" option into the replaygain type; eliminate the "On/Off" setting (FS#10356). All WPS tags should work as before.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21414 a1c6a512-1295-4272-9138-f99709370657
2009-06-20 21:13:24 +00:00
Thomas Martitz
62f3e95945 FS#10014 - Separate tracklocking out of skip length, skip length prevented to skip tracks. This is a seperate setting now. tracks can still change during normal playback (i.e. a song ends).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20553 a1c6a512-1295-4272-9138-f99709370657
2009-03-27 13:53:29 +00:00
Frank Gevaerts
46573019a5 add HAVE_DISK_STORAGE, and use that instead of HAVE_FLASH_STORAGE when checking for an actual disk (i.e. related to spindown, skipping,...)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18735 a1c6a512-1295-4272-9138-f99709370657
2008-10-07 19:37:33 +00:00
Nils Wallménius
01729e7a18 FS#9281 Rename of splash functions.
* Remove gui_splash()
* Rename gui_syncsplash() to splashf() and remove its voice 
capabilities.
* Rename the internal splash() to splash_internal() and introduce an 
externally visible splash() that handles simple splashing  without 
printf functionality e.g. splash(HZ, ID2P(LANG_FOO)); or splash(HZ, 
"foo"); if a LANG_* id is passed it will be voiced.
* Adjust all places that called gui_syncsplash() to use the correct 
variant from above.
* Export both new functions to plugins and adjust places calling 
rb->splash() to use the correct variant so that we now have naming 
consistency between the core and plugins.
* Fix one latent bug that would cause my sim to crash with the above 
changes and correct P2STR and P2ID macros, thanks to pondlife.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18282 a1c6a512-1295-4272-9138-f99709370657
2008-08-15 08:27:39 +00:00
Daniel Stenberg
a30f5e4b64 gcc 4.3.1 quite rightfully warnings when printf-style functions use "format
not a string literal and no format arguments". Those occurances can (will?)
lead to future nasty and surprising bugs. These are just a few of a very large
amount of necessary fixes.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18274 a1c6a512-1295-4272-9138-f99709370657
2008-08-13 21:38:33 +00:00
Thom Johansen
4a7e0c7949 Rename and rework the "Study Mode" menu into the "Skip Length" setting. Update manual. Bump plugin API thanks to having changed global_settings.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18041 a1c6a512-1295-4272-9138-f99709370657
2008-07-14 20:39:30 +00:00
Daniel Stenberg
2acc0ac542 Updated our source code header to explicitly mention that we are GPL v2 or
later. We still need to hunt down snippets used that are not. 1324 modified
files...
http://www.rockbox.org/mail/archive/rockbox-dev-archive-2008-06/0060.shtml


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17847 a1c6a512-1295-4272-9138-f99709370657
2008-06-28 18:10:04 +00:00
Steve Bavin
5f8bd63cba FS#9019 - Tidied up WPS context menu. Moved playlist to the top, added Playback Settings optiona and removed duplicate options.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17603 a1c6a512-1295-4272-9138-f99709370657
2008-05-22 08:02:48 +00:00
Stéphane Doyon
ab0f7e17ef Accept FS#6188: study mode.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17355 a1c6a512-1295-4272-9138-f99709370657
2008-05-04 13:47:58 +00:00
Bertrik Sikken
5633784f4f Made local functions static in playback_menu.c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17177 a1c6a512-1295-4272-9138-f99709370657
2008-04-19 23:29:39 +00:00
Steve Bavin
c9df8fd87b The const police raid playback.c, should be no change to behaviour.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16860 a1c6a512-1295-4272-9138-f99709370657
2008-03-28 11:24:24 +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
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
Nils Wallménius
b311367481 *** Lang v2 cleanup (FS#6574) ***
1) Introduces apps/features.txt that controls which strings are included 
for each target based on defines.
2) .lng and .voice files are now target specific and the format versions 
of both these file types have been bumped, which means that new voice 
files are needed. 
3) Use the 'features' mechanism to exclude strings for targets that 
didn't use them.
4) Delete unused and deprecated and duplicated strings, sort strings in 
english.lang

Some string IDs were changed so translations will be slightly worse than 
before.



git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14198 a1c6a512-1295-4272-9138-f99709370657
2007-08-05 19:19:39 +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
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
Jonathan Gordon
02a871780f Remove the need to double up the MENU macros in manu.h.
Icons are now used by their id which must be part of the icons_6x8 enum, 
or Icon_NOICON for none


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12571 a1c6a512-1295-4272-9138-f99709370657
2007-03-03 13:52:14 +00:00
Jonathan Gordon
91cb68a1fb Introducing the root menu!
Blind users: get a new voice file as there are lots of lang changes and new strings.
FS#6630 or RootMenu on the wiki for more info. complaints to /dev/null :)



git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12528 a1c6a512-1295-4272-9138-f99709370657
2007-03-01 11:14:46 +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
1ebdd5babd this wasnt meant to be commited
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12352 a1c6a512-1295-4272-9138-f99709370657
2007-02-17 14:39:02 +00:00
Jonathan Gordon
40a253d464 Convert the Display menu to the new system.
http://forums.rockbox.org/index.php?topic=8703.0 for bugs...


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12351 a1c6a512-1295-4272-9138-f99709370657
2007-02-17 14:02:48 +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
Jonathan Gordon
5599d6806d Icons in the menus. Thanks midkay for them.
Any menus which dont yet show them are not converted to the new system.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12300 a1c6a512-1295-4272-9138-f99709370657
2007-02-14 06:58:30 +00:00
Jonathan Gordon
4e73b537c3 Fix the keywords on some recently added files.
Remove apps/recording_settings_menu.c which should never have been 
commited


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12293 a1c6a512-1295-4272-9138-f99709370657
2007-02-13 00:32:17 +00:00
Jonathan Gordon
fb62831faa * Move playback menu to the new sysetm
(http://forums.rockbox.org/index.php?topic=8703.0 if I broke any of 
those settings accidently).
* Add set_int_ex() which is the same as set_int() but adds a param which 
is a callback that returns the voice ID to talk for the selected value
* Change the "pause on headphone unplug" to use meaningful strings in 
the config instead of numbers, this setting will be reset.
* saves ~500bytes on the rec build :D


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12285 a1c6a512-1295-4272-9138-f99709370657
2007-02-12 14:22:35 +00:00