#include "ardour/event_type_map.h"
#include "ardour/parameter_descriptor.h"
#include "ardour/parameter_types.h"
+#ifdef LV2_SUPPORT
#include "ardour/uri_map.h"
+#endif
#include "evoral/Parameter.hpp"
#include "evoral/ParameterDescriptor.hpp"
#include "evoral/midi_events.h"
return ARDOUR::parameter_midi_type((AutomationType)param.type());
}
-uint32_t
-EventTypeMap::midi_event_type(uint8_t status) const
+Evoral::ParameterType
+EventTypeMap::midi_parameter_type(const uint8_t* buf, uint32_t len) const
{
- return (uint32_t)ARDOUR::midi_parameter_type(status);
+ return (uint32_t)ARDOUR::midi_parameter_type(buf[0]);
}
Evoral::ControlList::InterpolationStyle
break;
case MidiPgmChangeAutomation: return Evoral::ControlList::Discrete; break;
case MidiChannelPressureAutomation: return Evoral::ControlList::Linear; break;
+ case MidiNotePressureAutomation: return Evoral::ControlList::Linear; break;
case MidiPitchBenderAutomation: return Evoral::ControlList::Linear; break;
default: assert(false);
}
if (str == "gain") {
p_type = GainAutomation;
+ } else if (str == "trim") {
+ p_type = TrimAutomation;
} else if (str == "solo") {
p_type = SoloAutomation;
+ } else if (str == "solo-iso") {
+ p_type = SoloIsolateAutomation;
+ } else if (str == "solo-safe") {
+ p_type = SoloSafeAutomation;
} else if (str == "mute") {
p_type = MuteAutomation;
} else if (str == "fadein") {
p_type = PanFrontBackAutomation;
} else if (str == "pan-lfe") {
p_type = PanLFEAutomation;
+ } else if (str == "rec-enable") {
+ p_type = RecEnableAutomation;
+ } else if (str == "rec-safe") {
+ p_type = RecSafeAutomation;
+ } else if (str == "phase") {
+ p_type = PhaseAutomation;
+ } else if (str == "monitor") {
+ p_type = MonitoringAutomation;
+ } else if (str == "pan-lfe") {
+ p_type = PanLFEAutomation;
} else if (str.length() > 10 && str.substr(0, 10) == "parameter-") {
p_type = PluginAutomation;
p_id = atoi(str.c_str()+10);
assert(channel < 16);
p_id = 0;
p_channel = channel;
+ } else if (str.length() > 19 && str.substr(0, 19) == "midi-note-pressure-") {
+ p_type = MidiNotePressureAutomation;
+ uint32_t channel = 0;
+ sscanf(str.c_str(), "midi-note-pressure-%d-%d", &channel, &p_id);
+ assert(channel < 16);
+ assert(p_id < 127);
+ p_channel = channel;
} else {
PBD::warning << "Unknown Parameter '" << str << "'" << endmsg;
}
-
+
return Evoral::Parameter(p_type, p_channel, p_id);
}
if (t == GainAutomation) {
return "gain";
+ } else if (t == TrimAutomation) {
+ return "trim";
} else if (t == PanAzimuthAutomation) {
return "pan-azimuth";
} else if (t == PanElevationAutomation) {
return "fadeout";
} else if (t == EnvelopeAutomation) {
return "envelope";
+ } else if (t == PhaseAutomation) {
+ return "phase";
+ } else if (t == SoloIsolateAutomation) {
+ return "solo-iso";
+ } else if (t == SoloSafeAutomation) {
+ return "solo-safe";
+ } else if (t == MonitoringAutomation) {
+ return "monitor";
+ } else if (t == RecEnableAutomation) {
+ return "rec-enable";
+ } else if (t == RecSafeAutomation) {
+ return "rec-safe";
} else if (t == PluginAutomation) {
return string_compose("parameter-%1", param.id());
#ifdef LV2_SUPPORT
return string_compose("midi-pitch-bender-%1", int(param.channel()));
} else if (t == MidiChannelPressureAutomation) {
return string_compose("midi-channel-pressure-%1", int(param.channel()));
+ } else if (t == MidiNotePressureAutomation) {
+ return string_compose("midi-note-pressure-%1-%2", int(param.channel()), param.id());
} else {
PBD::warning << "Uninitialized Parameter symbol() called." << endmsg;
return "";