diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2007-02-09 03:36:00 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2007-02-09 03:36:00 +0000 |
commit | 14543eb1374dc51834385d2f3886f1e6068223c5 (patch) | |
tree | 5194d0a983b77d79f5310f1216129e84c64f6a42 /libs/ardour/route.cc | |
parent | 138b12b1dd5b7e6175b3349b8ed7fa8b16721809 (diff) |
strip X specific from keyboard.cc; fix up many buttons to avoid prelight (mostly) and make transport buttons bindable (state not saved yet); use const char* not string in route order keys to avoid pointless mallocs during route sorting
git-svn-id: svn://localhost/ardour2/trunk@1437 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/route.cc')
-rw-r--r-- | libs/ardour/route.cc | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc index 2ac94cd239..6915b32792 100644 --- a/libs/ardour/route.cc +++ b/libs/ardour/route.cc @@ -79,7 +79,7 @@ Route::init () _soloed = false; _solo_safe = false; _phase_invert = false; - order_keys[N_("signal")] = order_key_cnt++; + order_keys[strdup (N_("signal"))] = order_key_cnt++; _active = true; _silent = false; _meter_point = MeterPostFader; @@ -115,6 +115,10 @@ Route::~Route () { clear_redirects (this); + for (OrderKeys::iterator i = order_keys.begin(); i != order_keys.end(); ++i) { + free ((void*)(i->first)); + } + if (_control_outs) { delete _control_outs; } @@ -136,21 +140,23 @@ Route::remote_control_id() const } long -Route::order_key (string name) const +Route::order_key (const char* name) const { OrderKeys::const_iterator i; - if ((i = order_keys.find (name)) == order_keys.end()) { - return -1; + for (i = order_keys.begin(); i != order_keys.end(); ++i) { + if (!strcmp (name, i->first)) { + return i->second; + } } - return (*i).second; + return -1; } void -Route::set_order_key (string name, long n) +Route::set_order_key (const char* name, long n) { - order_keys[name] = n; + order_keys[strdup(name)] = n; _session.set_dirty (); } @@ -1396,7 +1402,7 @@ Route::state(bool full_state) OrderKeys::iterator x = order_keys.begin(); while (x != order_keys.end()) { - order_string += (*x).first; + order_string += string ((*x).first); order_string += '='; snprintf (buf, sizeof(buf), "%ld", (*x).second); order_string += buf; @@ -1611,7 +1617,7 @@ Route::_set_state (const XMLNode& node, bool call_base) error << string_compose (_("badly formed order key string in state file! [%1] ... ignored."), remaining) << endmsg; } else { - set_order_key (remaining.substr (0, equal), n); + set_order_key (remaining.substr (0, equal).c_str(), n); } } |