I would like to have a Central Database object that acts as a central API to the actual camera and to all the GUI elements that visualize said parameters.
I want to have Setters and Getters for an arbitrary number of parameters (and types: integer, float, Strings, etc.) which could be identified with a unique string name.
CentralDB->GetParameter("ExposureTime");
menuItems or Screens should be able to subscribe/attach to any parameter and with a handler(functionpointer) that is called when the value changes update their desired GUI elements.
E.g in pseudo C++ code:
MyGUI() { CentralDB->subscribe("ExposureTime", &UpdateMyGUI); } void UpdateMyGUI(sender*) { _expTime = sender->GetParameter(); }
CDC Messages received by the Remote from the camera should trigger such a value change as well.