);
- StripableSelectionChanged.connect (selection_connection, MISSING_INVALIDATOR, boost::bind (&CC121::gui_track_selection_changed, this, _1), this);
-
/* Catch port connections and disconnections */
ARDOUR::AudioEngine::instance()->PortConnectedOrDisconnected.connect (port_connection, MISSING_INVALIDATOR, boost::bind (&CC121::connection_handler, this, _1, _2, _3, _4, _5), this);
buttons.insert (std::make_pair (EButton, Button (*this, _("EButton"), EButton)));
void
CC121::thread_init ()
{
- struct sched_param rtparam;
-
pthread_set_name (event_loop_name().c_str());
PBD::notify_event_loops_about_thread_creation (pthread_self(), event_loop_name(), 2048);
ARDOUR::SessionEvent::create_per_thread_pool (event_loop_name(), 128);
- memset (&rtparam, 0, sizeof (rtparam));
- rtparam.sched_priority = 9; /* XXX should be relative to audio (JACK) thread */
-
- if (pthread_setschedparam (pthread_self(), SCHED_FIFO, &rtparam) != 0) {
- // do we care? not particularly.
- }
+ set_thread_priority ();
}
void
boost::shared_ptr<AutomationControl> gain = _current_stripable->gain_control ();
if (gain) {
framepos_t now = session->engine().sample_time();
- gain->stop_touch (true, now);
+ gain->stop_touch (now);
}
}
break;
if (_current_stripable) {
/* Get amount of change (encoder clicks) * (change per click)*/
/*Create an exponential curve*/
- float curve = sign * pow(adj, (1.0 + 10.0) / 10.0);
- adj = curve * (31 / 1000.0);
+ float curve = sign * powf (adj, (1.f + 10.f) / 10.f);
+ adj = curve * (31.f / 1000.f);
ardour_pan_azimuth (adj);
}
break;
for (XMLNodeList::const_iterator n = node.children().begin(); n != node.children().end(); ++n) {
if ((*n)->name() == X_("Button")) {
- XMLProperty const * prop = (*n)->property (X_("id"));
- if (!prop) {
+ int32_t xid;
+ if (!node.get_property ("id", xid)) {
continue;
}
- int xid = atoi (prop->value());
ButtonMap::iterator b = buttons.find (ButtonID (xid));
- if (b == buttons.end()) {
+ if (b == buttons.end ()) {
continue;
}
b->second.set_state (**n);
int
CC121::Button::set_state (XMLNode const& node)
{
- const XMLProperty* prop = node.property ("id");
- if (!prop) {
- return -1;
- }
-
- int xid = atoi (prop->value());
- if (xid != id) {
+ int32_t xid;
+ if (node.get_property ("id", xid) && xid != id) {
return -1;
}
state_pairs.push_back (make_pair (string ("plain"), ButtonState (0)));
for (vector<state_pair_t>::const_iterator sp = state_pairs.begin(); sp != state_pairs.end(); ++sp) {
- string propname;
+ string prop_name;
+ string prop_value;
- propname = sp->first + X_("-press");
- if ((prop = node.property (propname)) != 0) {
- set_action (prop->value(), true, sp->second);
+ prop_name = sp->first + X_("-press");
+ if (node.get_property (prop_name.c_str(), prop_value)) {
+ set_action (prop_value, true, sp->second);
}
- propname = sp->first + X_("-release");
- if ((prop = node.property (propname)) != 0) {
- set_action (prop->value(), false, sp->second);
+ prop_name = sp->first + X_("-release");
+ if (node.get_property (prop_name.c_str(), prop_value)) {
+ set_action (prop_value, false, sp->second);
}
}
CC121::Button::get_state () const
{
XMLNode* node = new XMLNode (X_("Button"));
- char buf[16];
- snprintf (buf, sizeof (buf), "%d", id);
- node->add_property (X_("id"), buf);
+ node->set_property (X_("id"), (int32_t)id);
ToDoMap::const_iterator x;
ToDo null;
for (vector<state_pair_t>::const_iterator sp = state_pairs.begin(); sp != state_pairs.end(); ++sp) {
if ((x = on_press.find (sp->second)) != on_press.end()) {
if (x->second.type == NamedAction) {
- node->add_property (string (sp->first + X_("-press")).c_str(), x->second.action_name);
+ node->set_property (string (sp->first + X_("-press")).c_str(), x->second.action_name);
}
}
if ((x = on_release.find (sp->second)) != on_release.end()) {
if (x->second.type == NamedAction) {
- node->add_property (string (sp->first + X_("-release")).c_str(), x->second.action_name);
+ node->set_property (string (sp->first + X_("-release")).c_str(), x->second.action_name);
}
}
}
}
void
-CC121::gui_track_selection_changed (StripableNotificationListPtr stripables)
+CC121::stripable_selection_changed ()
{
- boost::shared_ptr<Stripable> r;
-
- if (!stripables->empty()) {
- r = stripables->front().lock();
- }
-
- set_current_stripable (r);
+ set_current_stripable (first_selected_stripable());
}
void