It's been quite a while since I've had a working C++ IDE on my computer much less access to useful Ktechlab sourcecode, so I've mostly forgotten how it was put together.
Ktechlab, classically at least, was single-threaded. So there weren't really any synchronization issues with the UI. IIRC, when you dragged a component out of the parts library you would get an object of class Component. It wouldn't have a circuit or a simulator so you had to be careful that you didn't crash the thing by trying to start operation too soon. When it was dropped into a Circuit Document, the circuit document behaved like a set. It would figure out what was connected to what in the analog domain and what was a logic output with only logic ins connected (this was a shameless hack). It would then create logic networks and Circuits, which were the class for analog. These do not necessarily have any direct relationship with circuit documents because, in principle you could link a sub-circuit to a master document... The circuits and logic networks would register themselves with class Simulator, as discussed in postings I wrote long ago, to receive CPU time. I vaguely remember writing a posting on various ways to improve class Simulator. =P When you clicked on a GUI widget, the event would go directly to the handler methods in the Component class and the state of any associated circuit elements would be updated. Switches were problematic because they would force the allocation of circuit elements to circuits to change and an entirely new set of simulation matrices would have to be generated. I spent two years crawling over every line of that code with the port to the new KDE in mind so I don't think it should be THAT hard... =P The heavy lifting in the simulation of analog circuits was done through class ElementSet. The models for many of the analog parts are deeply problematic and need a massive overhaul. That said, the simulator should be good enough for a proof-of-concept. I should be getting my first paycheck in many moons Real Soon Now, I plan to buy a bunch of books on VHDL and filter design. =P -- E T F N H E D E D Powers are not rights. ------------------------------------------------------------------------------ Virtualization & Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ _______________________________________________ Ktechlab-devel mailing list Ktechlab-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ktechlab-devel