Hello everyone!
I'm new to the forum, and first of all, I'd like to say a huge THANKS to Jules for his work, JUCE is just awesome! And also thank you for this forum, and to all the members, you helped me a lot during developement!
But now, I think I've reached the edge of my knowledge, and as far as I see, the edge of the forum too.
I'm working on a node-based application, where I have different nodes with different functions, and many types of input and output ports on them. I can wire the ports together to build complex compositions. I've choosen the Value class to hold the different kind of data the ports have. It's just an awesome class for all of my needs, I can bind (referTo()) the ports to each other, and also to controls, they're updating themselves, I have to update things only when the underlying data changed (valueChanged()), so it works like a charm.
But here comes the problem. My "work area" is a really big Component with lots of Nodes inside, and the whole thing is in a Viewport, and when I scroll it all of my results are getting laggy - not just visually, but i'm sending the result through the network, and it's also laggy.
So I decided to move all of my computations to another thread, because the "realtimeness" of my GUI is much less important than the computations, and the dataflow. I've read many times on the forum, that I should not do any timeconsuming calculation on the Message Thread, but I've also read, that Value is not thread-safe, and it sends messages about value changes on the Message Thread.
Is it a core problem in my own design, or do you have any ideas how to solve it? Right now I'm thinking about to (more or less) get rid of the beloved Value class, and it's valueChanged message :(, and replace it with some thread-safe solution, but it seems to be a huge redesign issue for me.
Any advice or tip is appreciated!
Thank you,
Timo