In the multi-track export feature I'm working on, I run into a snag. The
algorithm is essentially this:
Get list of all enabled tracks
for each track
mute all but current one
call ProjectRenderer::startProcessing
restore original mute states
Since ProjectRender is a QThread, and since this code was not designed for
concurrency, it's not possible to let the threads all
execute asynchronously. (Only one output track is rendered as the others
are walked on by the first thread.) My way around this is to place a
wait() after start() in the class, or use a mutex to block concurrent
execution. (I did some refactoring to allow this to work.)
This approach works, except it takes a while to render each track, and with
one major issue: the UI is also blocked, so during the exports, the user
interface does not get updated.
I was considering submitting a patch to the group to see if anyone else
would want to take a stab at a solution. Alternatively, if anyone has a
technique to suggest, let me know.
Devin
------------------------------------------------------------------------------
WINDOWS 8 is here.
Millions of people. Your app in 30 days.
Visit The Windows 8 Center at Sourceforge for all your go to resources.
http://windows8center.sourceforge.net/
join-generation-app-and-make-money-coding-fast/
_______________________________________________
LMMS-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/lmms-devel