--- /dev/null
+#include <msp/core/maputils.h>
+#include "control.h"
+#include "controlscheme.h"
+
+using namespace std;
+
+namespace Msp {
+namespace Input {
+
+void ControlScheme::add(const string &name, Control &ctrl)
+{
+ insert_unique(controls, name, &ctrl);
+}
+
+Control &ControlScheme::get(const string &name) const
+{
+ return *get_item(controls, name);
+}
+
+Control *ControlScheme::find(const string &name) const
+{
+ map<string, Control *>::const_iterator i = controls.find(name);
+ return (i!=controls.end() ? i->second : 0);
+}
+
+void ControlScheme::reset_edges()
+{
+ for(map<string, Control *>::const_iterator i=controls.begin(); i!=controls.end(); ++i)
+ i->second->reset_edges();
+}
+
+} // namespace Input
+} // namespace Msp