+ Notes _notes;
+};
+
+class Control
+{
+public:
+ Control() {}
+ Control(const std::string& type,
+ const std::string& number,
+ const std::string& name)
+ : _type(type)
+ , _number(number)
+ , _name(name)
+ {}
+
+ const std::string& type() const { return _type; }
+ const std::string& number() const { return _number; }
+ const std::string& name() const { return _name; }
+
+ void set_type(const std::string& type) { _type = type; }
+ void set_number(const std::string& number) { _number = number; }
+ void set_name(const std::string& name) { _name = name; }
+
+ XMLNode& get_state(void);
+ int set_state(const XMLTree&, const XMLNode&);
+
+private:
+ std::string _type;
+ std::string _number;
+ std::string _name;
+};
+
+class ControlNameList
+{
+public:
+ typedef std::list< boost::shared_ptr<Control> > Controls;
+
+ ControlNameList() {}
+ ControlNameList(const std::string& name) : _name(name) {}
+
+ const std::string& name() const { return _name; }
+
+ void set_name(const std::string name) { _name = name; }
+
+ const Controls& controls() const { return _controls; }
+
+ XMLNode& get_state(void);
+ int set_state(const XMLTree&, const XMLNode&);
+
+private:
+ std::string _name;
+ Controls _controls;