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
Thomas Martitz
d0b72e2590
GSoC/Buflib: Add buflib memory alocator to the core.
...
The buflib memory allocator is handle based and can free and
compact, move or resize memory on demand. This allows to effeciently
allocate memory dynamically without an MMU, by avoiding fragmentation
through memory compaction.
This patch adds the buflib library to the core, along with
convinience wrappers to omit the context parameter. Compaction is
not yet enabled, but will be in a later patch. Therefore, this acts as a
replacement for buffer_alloc/buffer_get_buffer() with the benifit of a debug
menu.
See buflib.h for some API documentation.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30380 a1c6a512-1295-4272-9138-f99709370657
2011-08-30 14:01:33 +00:00
Thomas Martitz
af7aaae478
Dircache: Don't expose struct dircache_entry and pointers into the cache, use IDs instead.
...
Only integer IDs are exposed from dircache with this. This way the cache is isolated from other modules.
This is needed for my buflib gsoc project.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30038 a1c6a512-1295-4272-9138-f99709370657
2011-06-20 20:12:42 +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
Andree Buschmann
39d9d8bab1
Fix red and yellow. Move resume_index from mp3entry to playlist_info struct. Bump codec api.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29691 a1c6a512-1295-4272-9138-f99709370657
2011-04-07 21:38:51 +00:00
Andree Buschmann
3184cbe10a
Fix FS#12043. Next track was resumed when pausing and shutting down the player in the last seconds of a track.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29682 a1c6a512-1295-4272-9138-f99709370657
2011-04-06 19:11:40 +00:00
Michael Sevakis
b15aa47c56
All kernel objects in code shared amongs targets (core, plugins, codecs) should be declared SHAREDBSS_ATTR as any core could potentially touch them even though they seem only to involve threads on one core. The exception is target code for particular CPUs where proper allocation is fixed. playlist.c was a little odd too-- use one mutex for the current playlist and a separate one for created playlists (still pondering the necessity of more than one).
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29305 a1c6a512-1295-4272-9138-f99709370657
2011-02-14 11:27:45 +00:00
Magnus Holmgren
113764d9c0
Fix FS#11175. playlist_peek() wasn't thread safe (due to a static filename buffer), so frequent calls from the main thread would cause the audio thread to buffer the wrong track.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27773 a1c6a512-1295-4272-9138-f99709370657
2010-08-11 19:01:50 +00:00
Steve Bavin
b08222caec
Minor const police raid.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25879 a1c6a512-1295-4272-9138-f99709370657
2010-05-07 16:35:37 +00:00
Thomas Martitz
f8edc32589
FS#10756 - Free unused init code
...
Introduce a new .init section for initialisation code, so that it can be copied to an area which is later overwritten before calling. The stack/bss can then overwrite that code, effectively freeing the code size that the initialisation routines need. Gives a few kB ram usage back.
Only implemented for PP and as3525 so far. More targets could be added, as well as more functions.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25013 a1c6a512-1295-4272-9138-f99709370657
2010-03-03 23:20:32 +00:00
Jonathan Gordon
6643a3bc74
Fix FS#9660 - make warn on playlist erase work correctly when creating a new playlist from the database (a bit of a hack, but not bad enough to outright reject)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24089 a1c6a512-1295-4272-9138-f99709370657
2009-12-21 05:44:00 +00:00
Dave Hooper
494fd9673d
Committing FS#10717 by Tomasz Kowalyczyk: add PLAYLIST_INSERT_LAST_SHUFFLED (appends the inserted folder into shuffled order to end of playlist)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23385 a1c6a512-1295-4272-9138-f99709370657
2009-10-28 22:27:38 +00:00
Thomas Martitz
f0aa8ba95d
playlist start can only have 1 return value (0), so make it return nothing.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21142 a1c6a512-1295-4272-9138-f99709370657
2009-05-31 14:33:33 +00:00
Björn Stenberg
51b45d5602
Split id3.c/h into metadata.c/h and metadata/mp3.c. Updated all references. Moved mp3data.c/h from firmware to apps.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18814 a1c6a512-1295-4272-9138-f99709370657
2008-10-15 06:38:51 +00:00
Nils Wallménius
2ca30a0c74
Minor clean up, move common define to a header file and use TIME_AFTER macro
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18783 a1c6a512-1295-4272-9138-f99709370657
2008-10-12 16:47:59 +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
ad95df2cab
Const police raid.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17474 a1c6a512-1295-4272-9138-f99709370657
2008-05-12 17:52:50 +00:00
Bertrik Sikken
3e98eb2de0
Renamed remove_all_tracks to playlist_remove_all_tracks to make it consistent with the naming of the other functions in playlist.c
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17186 a1c6a512-1295-4272-9138-f99709370657
2008-04-20 11:19:50 +00:00
Steve Bavin
0840e1bf0b
Remove unused playlist_checkend(), it really should never be needed.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17023 a1c6a512-1295-4272-9138-f99709370657
2008-04-07 18:19:11 +00:00
Nicolas Pennequin
03b54c29d7
Fix for FS#8601 by pondlife: the disk no longer spins up on a track change when dircache is disabled. This issue was introduced by me in r16019 by adding a call to playlist_peek() in audio_check_new_track(). This fix adds a new playlist API call to work around the problem until we find a better solution. There are also a few simplifications and comment corrections.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16930 a1c6a512-1295-4272-9138-f99709370657
2008-04-02 17:04:59 +00:00
Jonathan Gordon
be3f29cc11
Accept FS#6464 by Chris Taylor. Adds a "Play Next" playlist insertion
...
option which replaces the current playlist with the new selection but
keeps the current track queued so playback doesnt stop. (minor fixes by
me)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11842 a1c6a512-1295-4272-9138-f99709370657
2006-12-26 13:31:04 +00:00
Magnus Holmgren
a515b10d47
Read .m3u playlist files using the default code page (unless they start with a BOM) rather than UTF-8. Change default playlist suffix to .m3u8 (playlists are always saved using UTF-8).
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11626 a1c6a512-1295-4272-9138-f99709370657
2006-11-29 19:22:44 +00:00
Miika Pekkarinen
887cfeb9f5
Only sync playlist once when adding bunch of files from tagcache.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10508 a1c6a512-1295-4272-9138-f99709370657
2006-08-10 09:50:45 +00:00
Linus Nielsen Feltzing
da0525f54f
Patch #5179 by Sebastian Henriksen and Hardeep Sidhu - Playlist catalog
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10232 a1c6a512-1295-4272-9138-f99709370657
2006-07-18 13:54:12 +00:00
Hardeep Sidhu
b79c9a6145
Allow insert shuffled option for directories when playlist is empty. Based on patch #3011 by Jonathan Gordon.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9728 a1c6a512-1295-4272-9138-f99709370657
2006-04-19 02:22:23 +00:00
Hardeep Sidhu
75a60fbf69
Added a cache for playlist control commands. On non-dircache systems, behaviour should be the same as before (all commands except shuffle flushed immediately). On dircache systems, commands are only flushed when disk is accessed or during shutdown. This especially reduces disk accesses when playing queued files and should fix the problem with gapless playback.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8584 a1c6a512-1295-4272-9138-f99709370657
2006-02-05 18:17:41 +00:00
Miika Pekkarinen
735f453730
Added dircache support to playlist. Now playlist filename pointers are
...
automatically accuired from dircache. WPS UI response with dircache
enabled should be instant.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7931 a1c6a512-1295-4272-9138-f99709370657
2005-11-17 19:31:29 +00:00
Anton Oleynikov
d102e1f345
patch 1328447: folder skip routines in playlist API plus next/prev folder navigation for iRiver's remote
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7735 a1c6a512-1295-4272-9138-f99709370657
2005-11-02 22:32:04 +00:00
Miika Pekkarinen
c52f7f1b5e
iRiver: Fixed broken items skipping on playlist: Now skipping and
...
marking them as bad instead of deleting the entries from playlist.
Faster buffered track skipping and preventing glitches from previous
tracks (still something might occur though, please report them).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7647 a1c6a512-1295-4272-9138-f99709370657
2005-10-21 06:40:45 +00:00
Hardeep Sidhu
839dbcaed7
Moved resume info updating to the mpeg/playback threads so that it's saved even when not in the WPS
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7018 a1c6a512-1295-4272-9138-f99709370657
2005-07-04 22:50:57 +00:00
Hardeep Sidhu
74d082c038
Added new shuffle repeat mode that reshuffles playlist before repeating. Also added new shuffled insert mode that randomly inserts selected track(s) somewhere between current track and end of playlist.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6861 a1c6a512-1295-4272-9138-f99709370657
2005-06-25 04:46:25 +00:00
Linus Nielsen Feltzing
37d7c472ba
Put back the playlist creation options in the main menu
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6854 a1c6a512-1295-4272-9138-f99709370657
2005-06-24 16:32:30 +00:00
Jean-Philippe Bernardy
5203f0645e
long policy
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5934 a1c6a512-1295-4272-9138-f99709370657
2005-02-12 12:57:16 +00:00
Jens Arnold
8fb336148f
Const policed pointer arguments to functions, part 3
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4999 a1c6a512-1295-4272-9138-f99709370657
2004-08-18 01:09:31 +00:00
Hardeep Sidhu
107ebc5ba9
Modified playlist handling to allow for multiple playlists to be edited at the same time. Added support in playlist viewer for viewing/editing playlists on disk (accessed via ON+PLAY->Playlist->View on a playlist). Added menu in playlist viewer for changing a few settings and saving playlist. Added File Options menu in playlist viewer ON+PLAY menu.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4276 a1c6a512-1295-4272-9138-f99709370657
2004-01-26 17:05:21 +00:00
Björn Stenberg
a108ec2ebd
Added Benjamin Metzlers bookmarking feature (patch #669440 )
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4227 a1c6a512-1295-4272-9138-f99709370657
2004-01-14 00:13:04 +00:00
Hardeep Sidhu
00acdfa6ef
Added viewer for currently playing playlist. Accessed from Menu->Playlist Options->View Current Playlist.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4124 a1c6a512-1295-4272-9138-f99709370657
2003-12-10 00:11:25 +00:00
Hardeep Sidhu
58bafee963
Don't write playlist shuffle settings immediately to disk. Instead, save them in global settings and only flush to disk when the playlist is modified \(e.g. insert,delete\). As part of the changes the resume index was changed from an int to a short to give an extra 2 bytes in RTC ram to be used for another playlist index.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4121 a1c6a512-1295-4272-9138-f99709370657
2003-12-09 08:18:03 +00:00
Hardeep Sidhu
11e7ad50a0
Added "Ask" option to recursive dir insert which, if enabled, will ask users whether they want to recursively insert selected dir. Also, renamed "Insert first" and "Queue first" to "Insert next" and "Queue next" respectively.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3799 a1c6a512-1295-4272-9138-f99709370657
2003-07-02 15:54:44 +00:00
Hardeep Sidhu
9e4262081b
Added dynamic playlists. ON+PLAY->Playlist on a track, directory, or playlist from file browser to see available options.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3796 a1c6a512-1295-4272-9138-f99709370657
2003-07-01 21:05:43 +00:00
Linus Nielsen Feltzing
20d031f9c7
Configurable dir browser file buffer size. No more 400-file limit. No more whining.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3661 a1c6a512-1295-4272-9138-f99709370657
2003-05-09 16:01:21 +00:00
Björn Stenberg
7bb746b4fe
Changed to runtime playlist initialization
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3602 a1c6a512-1295-4272-9138-f99709370657
2003-04-24 17:31:36 +00:00
Daniel Stenberg
583821bc32
Keep the playlist open all the time, to reduce mid-song times caused by the
...
closure and reopening of the playlist.
Consider this slightly experimental. Can you detect a speed difference?
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3592 a1c6a512-1295-4272-9138-f99709370657
2003-04-23 18:45:51 +00:00
Linus Nielsen Feltzing
9d860e19d2
Better handling of next/prev
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3528 a1c6a512-1295-4272-9138-f99709370657
2003-04-11 00:29:15 +00:00
Björn Stenberg
c78e1b07fe
The much-anticipated queue patch by Hardeep Sidhu. Queue a file by holding down PLAY on it while playing other music.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3040 a1c6a512-1295-4272-9138-f99709370657
2003-01-09 00:55:00 +00:00
Robert Hak
73926ef5e5
%pn now allows for conditional checking
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2698 a1c6a512-1295-4272-9138-f99709370657
2002-10-17 09:34:48 +00:00
Robert Hak
f9d3d1cd91
added %pn (playlist name) to wps
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2651 a1c6a512-1295-4272-9138-f99709370657
2002-10-15 11:49:15 +00:00
Hardeep Sidhu
3735a15aca
Retrieve the first_index from playlist when updating resume settings instead of incorrectly using start_index
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2575 a1c6a512-1295-4272-9138-f99709370657
2002-10-11 09:14:30 +00:00
Daniel Stenberg
d035a9b0bc
the playlist variables are now all static, and the wps code use the new
...
playlist_amount() function to get amount of songs in the current list.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2549 a1c6a512-1295-4272-9138-f99709370657
2002-10-09 13:42:59 +00:00
Hardeep Sidhu
83611fe8c3
Store the first index of the playlist and use it when calculating the next index in repeat off mode so that shuffled dirplay works correctly when "play selected" is enabled.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2514 a1c6a512-1295-4272-9138-f99709370657
2002-10-06 05:50:41 +00:00