Miika Pekkarinen
5c2413165c
Fixed searches from tagcache when there is a sudden need to open a tag file on the fly. Thanks to Andrew Mahoney for pointing out the issue.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21351 a1c6a512-1295-4272-9138-f99709370657
2009-06-19 14:30:59 +00:00
Andrew Mahone
de7c5711c5
Add a system-wide BIT_N macro, implemented via an LUT on SH, and use it in the TAGCACHE_IS_* macros in place of per-set LUTs, removing duplication of data between those LUTs and the mask values used on other targets.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21195 a1c6a512-1295-4272-9138-f99709370657
2009-06-06 00:00:58 +00:00
Andrew Mahone
52a8e38806
Replace bitfield for tagcache tag sets with array of char on SH.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21176 a1c6a512-1295-4272-9138-f99709370657
2009-06-03 09:38:06 +00:00
Andrew Mahone
1248a0dc1f
Replace arrays of tags that are numeric/sorted/uniqued with bitfields flagging each tag that is a member of the set, and replace the membership tests with a shift and bitwise and. The test is still done inside a function on SH, as this saves some space vs the macro used on other targets.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21175 a1c6a512-1295-4272-9138-f99709370657
2009-06-03 08:19:32 +00:00
Bertrik Sikken
0023943439
Fix duplicate #includes
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20977 a1c6a512-1295-4272-9138-f99709370657
2009-05-17 14:50:19 +00:00
Miika Pekkarinen
a161450822
Handle the DB dirty flag correctly. Now a broken DB should stay disabled. Also don't remove broken files automatically. Should improve (or even fix) the duplicate entry issue seen in FS#8414 when the problem is caused by the player shutting down in the middle of a DB commit.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20710 a1c6a512-1295-4272-9138-f99709370657
2009-04-15 06:46:25 +00:00
Bertrik Sikken
30a2713b6e
Clean up some more #includes
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20243 a1c6a512-1295-4272-9138-f99709370657
2009-03-08 18:37:32 +00:00
Thomas Martitz
2b6e4adbd2
Fix FS#9977 - Thanks to Brian Sutherland for intensive testing and effort
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20214 a1c6a512-1295-4272-9138-f99709370657
2009-03-06 15:21:58 +00:00
Björn Stenberg
ee46a3d88e
Moved database builder into a separate directory, and gave it its' own Makefile. Now it compiles cleanly and builds a database if ran in root of music tree.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19448 a1c6a512-1295-4272-9138-f99709370657
2008-12-15 23:42:19 +00:00
Frank Gevaerts
2f8a0081c6
Apply FS#9500. This adds a storage_*() abstraction to replace ata_*(). To do that, it also introduces sd_*, nand_*, and mmc_*.
...
This should be a good first step to allow multi-driver targets, like the Elio (ATA/SD), or the D2 (NAND/SD).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18960 a1c6a512-1295-4272-9138-f99709370657
2008-11-01 16:14:28 +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
Miika Pekkarinen
d8bb6701e7
Fixed a possible index id destruction and temporary problems with the DB when DB has been loaded to ram, dircache enabled and statistics gathering ON. Fixed serial (affecting last played song order) being one too low after importing the changelog. A bit of code cleanup and comments also.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18363 a1c6a512-1295-4272-9138-f99709370657
2008-08-29 21:14:58 +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
Miika Pekkarinen
dd7103ae2e
Make sure a temporary file does not exists preventing the database re-initialization.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17689 a1c6a512-1295-4272-9138-f99709370657
2008-06-04 19:27:11 +00:00
Bertrik Sikken
f8a641d6f8
Renamed build_tagcache to tagcache_build to make it consistent with the function naming of the other functions in tagcache.c
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17331 a1c6a512-1295-4272-9138-f99709370657
2008-05-03 16:23:37 +00:00
Bertrik Sikken
e15f8a21a9
Made source files #include the header file that they implement to make sure they are in sync. Made some local functions static.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17312 a1c6a512-1295-4272-9138-f99709370657
2008-05-03 08:35:14 +00:00
Bertrik Sikken
2843469876
Moved atoi declaration to stdlib.h. Deleted atoi.h
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17280 a1c6a512-1295-4272-9138-f99709370657
2008-04-28 16:18:04 +00:00
Jonathan Gordon
5f3356b942
fix 64bit sim warning
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17235 a1c6a512-1295-4272-9138-f99709370657
2008-04-24 08:51:54 +00:00
Jonathan Gordon
7c0a8e1d4c
structec makes a poor assumption that all targets use 1 byte chars, 2 byte shorts and 4 byte longs which is wrong on 64bit sims which causes database to not be commited.
...
The proper fix should be to remove those assumtopns but probably not nescacery untill a target comes along which breaks the assumption.
This _shouldnt_ change anything on target.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17234 a1c6a512-1295-4272-9138-f99709370657
2008-04-24 07:54:32 +00:00
Miika Pekkarinen
984278b10a
FS#8795 - Fixed fault of the escape processing in Changelog (by Kenjiro Arai).
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17178 a1c6a512-1295-4272-9138-f99709370657
2008-04-19 23:48:13 +00:00
Bertrik Sikken
b3c44deaf6
Made strictly local functions static (command_queue_sync_callback and run_command_queue) in tagcache.c
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17176 a1c6a512-1295-4272-9138-f99709370657
2008-04-19 23:22:40 +00:00
Miika Pekkarinen
6ab1c90513
FS#8707 - Enable "Load to RAM" (HAS_TC_RAMCACHE) compilation without Directory Cache (HAS_DIRCACHE).
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16594 a1c6a512-1295-4272-9138-f99709370657
2008-03-09 20:33:19 +00:00
Miika Pekkarinen
9eec03faa5
FS#8565 - fix for runtime data causing extra spin ups. Included a debug menu update also.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16330 a1c6a512-1295-4272-9138-f99709370657
2008-02-17 18:35:27 +00:00
Marcoen Hirschberg
2d12b253ae
add support for database.unignore files (adds dirs to the database which would be skipped because of a database.ignore file)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16214 a1c6a512-1295-4272-9138-f99709370657
2008-02-04 21:20:04 +00:00
Peter D'Hoye
b4f80fb93f
Fix a bug in tagcache tag length check, thanks to Rhino Banga.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16166 a1c6a512-1295-4272-9138-f99709370657
2008-01-25 21:21:41 +00:00
Miika Pekkarinen
784112a075
Fixed the red.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16083 a1c6a512-1295-4272-9138-f99709370657
2008-01-13 19:34:49 +00:00
Miika Pekkarinen
39c597b5e1
Always check for deleted files, no matter how slow it might be when DB autoupdate is enabled. Also simplified code a bit. Fixed a crash when search is performaed and dircache has been vanished and DB is still exists ram.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16081 a1c6a512-1295-4272-9138-f99709370657
2008-01-13 19:13:37 +00:00
Miika Pekkarinen
f008da7db4
FS#8423 - Fixes quirks in routine used to remove obsolote entries from tagcache. This might fix FS#8414 and should fix FS#8384. Thanks to Lee Kang Hyuk.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16016 a1c6a512-1295-4272-9138-f99709370657
2008-01-07 15:10:49 +00:00
Miika Pekkarinen
21735eb91b
Preserve song statistics when moving files or altering metadata. Conditions required to apply: song length must not change AND either filenames (with path) must match or two of the following tags matches: artist, album, title. IMPORTANT: Currently dircache enabled and DB loaded to RAM is required for reliable operation of this feature.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15955 a1c6a512-1295-4272-9138-f99709370657
2007-12-18 21:50:29 +00:00
Miika Pekkarinen
f6039466fb
Added file modify time field to the DB. Now metadata changes should be detected with database autoupdate enabled. Runtime statistics are not yet preserved. Preserving statistics over moving of files and altering metadata is going to be implemented next. IMPORTANT: Export database before upgrading.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15946 a1c6a512-1295-4272-9138-f99709370657
2007-12-16 21:10:26 +00:00
Miika Pekkarinen
ded6554cb0
Free resources properly. Fixes all kind of strange issues (shutdown problems with dircache and dirfds running out) with the newly added database.ignore -feature.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15780 a1c6a512-1295-4272-9138-f99709370657
2007-11-23 18:32:00 +00:00
Robert Kukla
d87b037efe
consolidate the 3 file_exists() functions into one; use the version that explicitly uses dircache; give dir_exists() the same treatment for consistency
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15742 a1c6a512-1295-4272-9138-f99709370657
2007-11-21 21:28:27 +00:00
Jonathan Gordon
c31ffae440
FS#5690 - folders with a file named database.ignore will be skipped by the database when it rebuilds, (this includes any subdirs in that fodler)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15738 a1c6a512-1295-4272-9138-f99709370657
2007-11-21 13:37:45 +00:00
Miika Pekkarinen
caff835d78
Fixed debug menu crashing. Show last file processed by tagcache engine in debug menu. Enabled autoupdating of deleted files for flash storage devices.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15244 a1c6a512-1295-4272-9138-f99709370657
2007-10-21 11:06:30 +00:00
Michael Sevakis
84f5c5c3e3
Take out some NOCACHEBSS_ATTR's that were accidentally left. Put some threading code in IRAM that should be there on PP502x.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15155 a1c6a512-1295-4272-9138-f99709370657
2007-10-16 22:00:51 +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
Nicolas Pennequin
67f5082710
Use a struct mp3entry instead of a struct trackinfo for temporary storage of the metadata.
...
In the same spirit as r14326, it makes MoB "easier".
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14943 a1c6a512-1295-4272-9138-f99709370657
2007-10-01 20:06:21 +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
Miika Pekkarinen
e461f2ec18
Fixed an out of buffer boundaries lookup when database has been loaded in ram.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14720 a1c6a512-1295-4272-9138-f99709370657
2007-09-15 22:45:08 +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
Dan Everton
eecfe9f1cb
Add support for grouping tags. From FS#7362.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14242 a1c6a512-1295-4272-9138-f99709370657
2007-08-08 10:19:56 +00:00
Dan Everton
f4a61f0c4a
Add support for parsing the disc number tag from metadata and use of it in the database. Patch originally from FS#4961 with some minor tweaks by me.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14154 a1c6a512-1295-4272-9138-f99709370657
2007-08-03 10:00:42 +00:00
Miika Pekkarinen
9d756e2760
Queue song statistical data to the tagcache system and update entirely in background. Fixes ratings disappearing or not saving in the DB at all. Fixes also UI delay when stopping playback and new statistics are committed to DB.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13955 a1c6a512-1295-4272-9138-f99709370657
2007-07-21 17:35:19 +00:00
Kevin Ferrare
011a325e32
Makes apps and plugins interract with directories using a posix-like api instead of calling dircache / simulator functions (no additionnal layer added, only a cosmetic change)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13943 a1c6a512-1295-4272-9138-f99709370657
2007-07-20 17:06:55 +00:00
Dan Everton
00dd14922b
When building the database and a track doesn't have an album artist tag, copy the value from the artist tag. This should make browsing through album artist in the database a bit nicer. Same as FS# 7342 but different. You may need to rebuild your database to actually see any change.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13710 a1c6a512-1295-4272-9138-f99709370657
2007-06-25 11:33:21 +00:00
Miika Pekkarinen
4cee8d9354
Prevent destroying dircache pointers in tagcache DB while updating runtime stats.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13498 a1c6a512-1295-4272-9138-f99709370657
2007-05-27 11:40:55 +00:00
Dave Chapman
1feb8bd4a1
Minor header file cleanup - try and include the minimal number of files, and only where they are needed.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13344 a1c6a512-1295-4272-9138-f99709370657
2007-05-07 13:32:56 +00:00
Miika Pekkarinen
b1ff1ea303
Improved speed when deleting tags and prevent remaining ghost entries with database loaded in ram.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13284 a1c6a512-1295-4272-9138-f99709370657
2007-04-29 14:40:59 +00:00
Miika Pekkarinen
5e47daa944
Now track total playtime should be accessible as well by using Pm and Ps virtual tags.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13133 a1c6a512-1295-4272-9138-f99709370657
2007-04-12 20:21:56 +00:00
Miika Pekkarinen
9d9937a0ad
Added virtual tags in database to break track length to minutes and seconds.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13132 a1c6a512-1295-4272-9138-f99709370657
2007-04-12 20:14:05 +00:00