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