Parent Directory
|
Revision Log
| Links to HEAD: | (view) (download) (as text) (annotate) |
| Sticky Revision: |
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).
Split id3.c/h into metadata.c/h and metadata/mp3.c. Updated all references. Moved mp3data.c/h from firmware to apps.
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.
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
Make sure a temporary file does not exists preventing the database re-initialization.
Renamed build_tagcache to tagcache_build to make it consistent with the function naming of the other functions in tagcache.c
Made source files #include the header file that they implement to make sure they are in sync. Made some local functions static.
Moved atoi declaration to stdlib.h. Deleted atoi.h
fix 64bit sim warning
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.
FS#8795 - Fixed fault of the escape processing in Changelog (by Kenjiro Arai).
Made strictly local functions static (command_queue_sync_callback and run_command_queue) in tagcache.c
FS#8707 - Enable "Load to RAM" (HAS_TC_RAMCACHE) compilation without Directory Cache (HAS_DIRCACHE).
FS#8565 - fix for runtime data causing extra spin ups. Included a debug menu update also.
add support for database.unignore files (adds dirs to the database which would be skipped because of a database.ignore file)
Fix a bug in tagcache tag length check, thanks to Rhino Banga.
Fixed the red.
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.
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.
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.
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.
Free resources properly. Fixes all kind of strange issues (shutdown problems with dircache and dirfds running out) with the newly added database.ignore -feature.
consolidate the 3 file_exists() functions into one; use the version that explicitly uses dircache; give dir_exists() the same treatment for consistency
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)
Fixed debug menu crashing. Show last file processed by tagcache engine in debug menu. Enabled autoupdating of deleted files for flash storage devices.
Take out some NOCACHEBSS_ATTR's that were accidentally left. Put some threading code in IRAM that should be there on PP502x.
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.
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".
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.
Fixed an out of buffer boundaries lookup when database has been loaded in ram.
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.
Add support for grouping tags. From FS#7362.
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.
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.
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)
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.
Prevent destroying dircache pointers in tagcache DB while updating runtime stats.
Minor header file cleanup - try and include the minimal number of files, and only where they are needed.
Improved speed when deleting tags and prevent remaining ghost entries with database loaded in ram.
Now track total playtime should be accessible as well by using Pm and Ps virtual tags.
Added virtual tags in database to break track length to minutes and seconds.
Rating support for database and WPS (based on FS# 6301). A value between 0 and 10 can be assigned to the currently playing track using the WPS context menu. This value is displayed in the WPS using the %rr tag (replacing autoscore) and can be used as "rating" in tagnavi.config (examples provided).
More logf fixes. speex.c wants to format 64bit args so I didn't change that one nor add any formatting for that.
Fix several printf-style warnings in logf builds.
Fixed database displaying duplicate entries after deleting tracks and database not loaded to ram.
Yield regularly during commits so the UI doesn't lock up
Really don't try to initialise while the database status is unknown
Lead user through database initialisation
Sort tagcache so that <Untagged> appears alongside <All tracks>
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.
Do the '<Untagged>' check in a more compact way.
Ignore me. I am silly.
You can not use sizeof to find the length of a string
don't hard code size
don't display "<Untagged>" (tagcache place holder for empty string) in wps
remove numerical genre and use genre_string consistently: - fix spurious display of "blues" genre for missing genre tag - simplify code/use less code - numerical->string conversion only once instead of at every use
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 :)
Code Police: Remove tabs throught apps/ . Hopefully no actual code change
Cleaned up code a bit, fixed possible bug during committing numeric indices and made code more fault tolerant. Added a new numeric tag making it possible to list recently added tracks. Export your DB.
Fixed database export crashing with long tags. And failing without DB loaded to RAM due to the recently added new tags in DB, thus reaching the fd limit.
Shave a few bytes off the binary size, especially on hwcodec targets
Make database endianess independent.
FS#6638 - Album artist and comment patch for WPS and tagcache. Export your database before updating because initialization is needed.
Next round of static'ing and related fixes.
Removed the cpu boost tracking debug feature for now because of different kind of problems. Better implementation can be done later.
Check if file has already been removed from DB when manually invoking reverse scan.
Don't add extra slash at beginning when creating db.
Support building tagcache db natively on PC using the core of the Rockbox tagcache database engine. Only host endian support at the moment and no command line parameters. Mainly for developers for debugging at the moment.
Changelog importing was broken.
Allow all tag type in formatting string. Included example with tagnavi.config.
Hopefully now fixed the last 64-bit compiler warning.
Fixed the simulator warnings.
Implement fast_readline as a function and use it for tagtree also.
(1) New syntax to support conditional formatting. (2) Reduced tagnavi memory consumption. (3) There was a bug that splash screen counter was counting down when inserting tracks next. But in fact that might be preferred, so always count down after successful tagcache query.
FS#6137: add "oneof" operator to tagnavi.conf syntax.
Add CPU boost tracker to see where boosts are coming from
Accepted FS#6098 as the first patch from Robert Kukla and implemented using two switches.
Fixed find_index returning incorrect entry unless entries are found. Commit all numeric tags at once and set a flag if tracknumber has been guessed. Cleaned up temporary file creation.
Fixed the following critical bugs in tagcache engine: #5934 (or #5529, thanks Uchida for the idea), deleting songs causes tagcache to corrupt or fail and duplicate entries after commit with ramcache enabled.
Oops, fixed the errors.
Properly shutdown audio playback early and flush system, including not hanging tagcache. Fixed also tagcache line buffer running out when importing a changelog with very long lines.
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.
Fixed tagcache returning incorrect entries.
Fixed: With dircache+tagcache in RAM using Search by filename->Player freezes.
Fixed performance problems when initializing tagcache.
Browse by year (now numeric tags are fully supported too).
Use uniqbuf for unique tags only.
Tagcache: Don't show duplicate entries and automatically inherit clauses for correct search results.
eeprom driver for the h3x0 series, cleaned up the h1x0 series driver a bit, added debug entry for h3x0 that allows to write to the eeprom
Fixed a problem when using filename tag as a search clause.
FS#5806 with code cleanup.
FS#5805 NOT operator for tagnavi.config by Jochen Kemnade.
Better UI response with playlist operations.
Properly handle early USB mode, dircache and tagcache state files with flashed rockbox.
Unload tagcache from ram when entering USB mode.
Initial support and use for EEPROM memory on H120 & H140 players when Rockbox firmware has been flashed over original firmware (not yet possible to do). Dircache & tagcache serialization for fast bootup without the need to scan disk when Rockbox is in flash.
Tagcache: Fixed runtime stats not being gathered when tagcache is kept on disk. Initial attempt to make tagcache thread safe. Replaced a few direct buffer allocations with buffer_alloc from tagcache and dircache where possible.
Fix warning when building without HAVE_TC_RAMCACHE.
Nice diagram explaining better tagcache internals.
Don't corrupt runtimedb when tagcache is loaded in ram.
Fixed bug in finding entry from disk by filename and not starting auto update unless proper setting has been enabled.
Don't write ram flags to disk (causes internal error).
Automatically import the changelog after initializing tagcache.
Fixed a bug in tagcache initialization.
Better header checking. Only manually remove incorrect entries. Fixed a bug and performance issue with find entry from disk by filename.
Only ignore deleted entries (previously was corrupting the master index).
Initialize the status structure correctly.
Removed the 10000 files static commmit-time limit from tagcache.
Support importing runtimedb data from ascii files.
Killed one warning.
Initial changelog support (only export, no import yet) and added an option to search by filename.
Initial runtimedb support for tagcache. Only for developers, statistical data will be lost in future until changelogs has been implemented.
Filename tags were incorrectly retrieved from dircache when tagcache was loaded in ram.
Don't skip before data has been read in.
Tagcache autoupdate without dircache was not functional at all.
Tagcache update: Support removal of entries and no longer the need for dircache to load tagcache in ram (however, dircache with tagcache is still strongly recommended).
Need to reload tagcache in ram if dircache buffer has been stolen.
Fixed incorrect memory allocation bug with tagcache.
Load uniqued tags correctly at commit (should fix duplicates). Try first dircache buffer as it's usually bigger.
Init dircache after applying settings and use a splash. Possible prevent some type of buffer overflow with tagcache.
Fixed a problem with tagcache search skipping long tags. Thanks for Gaetano for finding the problem and providing a fix.
Much faster optimized version of tagcache commit. Added a few items to the debug menu (still buggy) and fixed a problem with partial tagcache updates.
Fixed: Generate chunked playlist correctly, don't sort <All tracks> entry and don't return a NULL file pointer and crash.
Performance optimizations for tagcache commit. Still more left to be done.
Commit tagcache in background when possible (at least dircache enabled).
Fixed a bug in retrieving track filename when tagcache is loaded in ram.
Show progress while committing tagcache.
Major improvement in playlist creation speed with tagcache. Fixed also the sorting bug.
Small optimization to use the already opened master lookup index.
Enable conditional clauses for string tags in disk mode also.
Tagcache engine: Better handling for track numbers and genre strings. Browser: Don't jam if search string was not supplied. Don't show incorrect track numbers.
Initial conditional filtering support for the tagcache engine and a fix while building the lookup list. UI part not yet ready.