I fixed the bug (for now) that was causing incorrect text rendering in engine_view.c. Not setting the GC clip rectangle makes it go away. I wonder why... aren't I supposed to do this?
I made sure the GUI blocks until it recieves a ready message from the core.
I added some ideas to mvcpac.txt. I now have in mind a simple mechanism for propagating core events to multiple viewers, and it will be very simple to replace the working-prototype forwarding mechanism with this one.
Now that I think of it, the bandwidth problem is solved. As long as we keep track of which machines are being observed, we can have the core send param updates thru the pipes only so often. Perhaps on a rotating basis. It's only being done to give an idea of what is going on inside the core thread, it's not supposed to have perfect accuracy.
As for play-position... I may be able to just use a global variable and lock it with a mutex. Or if the user thread never actually updates this integer, I may be able to skip the locking.