projects
/
ardour.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
properly handle integer steps in plugin controls
[ardour.git]
/
libs
/
ardour
/
automatable.cc
diff --git
a/libs/ardour/automatable.cc
b/libs/ardour/automatable.cc
index 5e4991fe6e2eb750bb8c0b8d142d4d27d675fcea..f928ee01b3c5eda0902fec5d043e8fd0840a4cd9 100644
(file)
--- a/
libs/ardour/automatable.cc
+++ b/
libs/ardour/automatable.cc
@@
-163,6
+163,8
@@
Automatable::describe_parameter (Evoral::Parameter param)
if (param == Evoral::Parameter(GainAutomation)) {
return _("Fader");
if (param == Evoral::Parameter(GainAutomation)) {
return _("Fader");
+ } else if (param.type() == TrimAutomation) {
+ return _("Trim");
} else if (param.type() == MuteAutomation) {
return _("Mute");
} else if (param.type() == MidiCCAutomation) {
} else if (param.type() == MuteAutomation) {
return _("Mute");
} else if (param.type() == MidiCCAutomation) {
@@
-173,8
+175,10
@@
Automatable::describe_parameter (Evoral::Parameter param)
return string_compose("Bender [%1]", int(param.channel()) + 1);
} else if (param.type() == MidiChannelPressureAutomation) {
return string_compose("Pressure [%1]", int(param.channel()) + 1);
return string_compose("Bender [%1]", int(param.channel()) + 1);
} else if (param.type() == MidiChannelPressureAutomation) {
return string_compose("Pressure [%1]", int(param.channel()) + 1);
+#ifdef LV2_SUPPORT
} else if (param.type() == PluginPropertyAutomation) {
return string_compose("Property %1", URIMap::instance().id_to_uri(param.id()));
} else if (param.type() == PluginPropertyAutomation) {
return string_compose("Property %1", URIMap::instance().id_to_uri(param.id()));
+#endif
} else {
return EventTypeMap::instance().to_symbol(param);
}
} else {
return EventTypeMap::instance().to_symbol(param);
}
@@
-274,6
+278,7
@@
Automatable::set_parameter_automation_state (Evoral::Parameter param, AutoState
if (c && (s != c->automation_state())) {
c->set_automation_state (s);
_a_session.set_dirty ();
if (c && (s != c->automation_state())) {
c->set_automation_state (s);
_a_session.set_dirty ();
+ AutomationStateChanged(); /* Emit signal */
}
}
}
}
@@
-439,6
+444,13
@@
Automatable::control_factory(const Evoral::Parameter& param)
} else {
warning << "GainAutomation for non-Amp" << endl;
}
} else {
warning << "GainAutomation for non-Amp" << endl;
}
+ } else if (param.type() == TrimAutomation) {
+ Amp* amp = dynamic_cast<Amp*>(this);
+ if (amp) {
+ control = new Amp::GainControl(X_("trimcontrol"), _a_session, amp, param);
+ } else {
+ warning << "TrimAutomation for non-Amp" << endl;
+ }
} else if (param.type() == PanAzimuthAutomation || param.type() == PanWidthAutomation || param.type() == PanElevationAutomation) {
Pannable* pannable = dynamic_cast<Pannable*>(this);
if (pannable) {
} else if (param.type() == PanAzimuthAutomation || param.type() == PanWidthAutomation || param.type() == PanElevationAutomation) {
Pannable* pannable = dynamic_cast<Pannable*>(this);
if (pannable) {