coverart-browser icon indicating copy to clipboard operation
coverart-browser copied to clipboard

export coverart for tracks blocks the GUI

Open fossfreedom opened this issue 10 years ago • 2 comments

when implemented we had to use gstreamer blocking because gstreamer 0.10 did not have the capability to watch for signals on the bus.

  • https://github.com/fossfreedom/coverart-browser/issues/212

we can now do that since we are using gstreamer 1.0

rhythmbox-spectrum gives an example how to watch on the bus - lets look to see if this can be used to prevent blocking of the UI.

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/2772807-export-coverart-for-tracks-blocks-the-gui?utm_campaign=plugin&utm_content=tracker%2F351726&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F351726&utm_medium=issues&utm_source=github).

fossfreedom avatar Jun 22 '14 21:06 fossfreedom

multiprocessing using queue - maybe useful? http://blog.pingoured.fr/index.php?post/2014/11/27/Python-multiprocessing-and-queue

fossfreedom avatar Nov 27 '14 09:11 fossfreedom

dbus is actually simpler here

http://stackoverflow.com/questions/22390064/use-dbus-to-just-send-a-message-in-python

thus coverart browser act as the server - we spawn a separate process that does the hard-work.

  • http://stackoverflow.com/questions/20646519/how-to-spawn-new-independent-process-in-python

the separate process is the client - client talks to the server to get the next item to process. server controls the progress bar.

Every time the client checks for the next item, if the user has cancelled the progress bar, then the client will then quit.

The server will autoquit if the client hasnt returned within - say 40 seconds - this is to catch the case where the client process has died for whatever reason

fossfreedom avatar Feb 17 '15 20:02 fossfreedom