make the plugin context aware to allow user to one
click export from a shortcut, basically it checks if its running in the
file browser if elsewhere does auto export
use a buffer for the fixed portion of the scrobble data
add timed_yield to long running operations
add progress bars and messages as scanning for duplicates takes a while
speed up duplicate scanning 4x
1000 tracks processing took ~2 minutes with duplicate scanning down from ~5
previous patch makes playback logging create a new file after 512k
old files renamed playback_0001.log
make scrobbler able to parse these log files
add ability to skip tracks without metadata and count them
Remove duplicates only for resume or remove all duplicates
allow skipping tracks without metadata or save only filename
update manual
Change-Id: I115bcfd3381f5a978252aac1cdfcc080f0797dda
rather than going through the whole file each time we can just walk
through the remainder speeds up duplicate removal by quite a bit
check timestamp of tracks to not remove multiple plays of the same song
at different times, unless back to back (then its probably a resume after
shutdown)
devices without RTC use current_tick but thats in centiseconds
convert to milliseconds so we can use the timestamp in the above calculations
my fix to the scrobbler_viewer makes the include menus disappear as
soon as you hide columns so explicitly mark if we are
dealing with a scrobbler log at load
Change-Id: I11bbebe9af45945a7e1326a5e419290086b05aaa
people don't like having to remember to run the TSR plugin so
lets meet them halfway
all tracks are added with timestamp, elapsed, length, trackname
added buffering for ATA devices
still needed:
-Done -- a plugin that parses for duplicates and reads the track info
to create the actual scrobbler log
(log can be truncated once dumped)
this should allow you to run the plugin at leisure
later I'd like to expand this logging to allow
track culling based on skipped songs..
remove the TSR plugin as hard disk no longer need to use it
Change-Id: Ib0b74b4c868fecb3e4941a8f4b9de7bd8728fe3e
I couldn't seem to reproduce the issue here:
https://forums.rockbox.org/index.php/topic,54165.msg252081.html#msg252081
but I figure its probably a threading issue
so we now have a mutex on the cache
and to top it all off each cached entry has a crc and length that are
checked before writing the entry to the file otherwise it is prepended
with # FAILED - so hopefully scrobbler 'parsers?' don't barf on the log
Other changes:
there is now a MRU table for tracks this should help prevent duplicates
it is configurable..
the cache buffer now no longer uses fixed chunks allowing more tracks
to be written between flushes
Change-Id: Iaab7e3f6a76abfc61130f3233379a51c9a6d12e5
a plugin to view lastfm scrobbler logs
uses print cell to give a spreadsheet view of scrobbler logs
buffers the whole file if possible otherwise it reads entries from disk
rudimentary text searching for columns
include / exclude; all/any and case sensitive
Change-Id: Id9616e5796658952fba4ea747f596cb77d6f34c0
save tsr plugin path for later
resume tsr plugin when user stops the interrupting plugin
expand return of tsr_exit function to allow
continue, suspend, terminate
tsr plugins check parameter at start to determine if
the plugin is being resumed
Change-Id: I6fc70de664c7771e7dbc9a1af7a831e7b50b1d15
add settings to the scrobbler plugin
Start Playback -- resume playback at plugin start
(while enabled if nothing to resume will bring you back to scrobbler menu)
Save Threshold 0-100% -- when this much time has passed the track will be
saved and marked (L)istened
Verbose -- Supress messages such as 'Scrobbler Started' and 'Scrobbler Flushed'
run the plugin a second time to bring up the menu
if you have resume playback enabled and there is nothing to resume
it brings you back to the scrobbler menu as well
Change-Id: I48d96ea3dc8f37d76a723136004af149429e0b2e
Use standard menus and yes/no screen for the TSR exit callback,
similar to the recently added test_usb plugin. This removes the
need to define key bindings and it provides a more consistent
user experience.
It also allows the "flush cache" message to be popped up in the
main thread - doing it from the worker thread is unreliable and
the message often disappeared because the main thread did a UI
update immediately after leaving the plugin.
One issue is that quitting the plugin by selecting the scrobbler
plugin itself immediately restarts the scrobbler. This is because
there is currently no way for TSR plugins to terminate themselves
either through the exit_tsr callback or otherwise.
Change-Id: I9690239d5bd58ad2fbb36fd15a10683757aff0ff
Allow a clean shutdown to end in either power off or reboot. Add a
new event SYS_REBOOT to signal it and sys_reboot() to trigger the
event. SYS_REBOOT signals a reboot request and should be listened
for alongside SYS_POWEROFF events.
Change-Id: I99ba7fb5feed2bb5a0a40a274e8466ad74fe3a43
if you skip a track after the halfway point the scrobbler may double post
with slightly different timestamps but the same track info
take a crc of the non-unique part and check against the previously
written track
Change-Id: I676342c4cd76f632131d9cb6d9f7d2f59df357e6