3.0 version of rev 5564 from 2.x - basic boolean plugin parameter automation (no...
[ardour.git] / libs / ardour / event_type_map.cc
index cbc3458615cafd62cf4865c1fc5112ce21e06cfb..d88e5afd265a8c1693140dfbbd838e187207e92e 100644 (file)
@@ -49,10 +49,10 @@ uint8_t
 EventTypeMap::parameter_midi_type(const Evoral::Parameter& param) const
 {
        switch (param.type()) {
-       case MidiCCAutomation:              return MIDI_CMD_CONTROL; break; 
-       case MidiPgmChangeAutomation:       return MIDI_CMD_PGM_CHANGE; break; 
-       case MidiChannelPressureAutomation: return MIDI_CMD_CHANNEL_PRESSURE; break; 
-       case MidiPitchBenderAutomation:     return MIDI_CMD_BENDER; break; 
+       case MidiCCAutomation:              return MIDI_CMD_CONTROL; break;
+       case MidiPgmChangeAutomation:       return MIDI_CMD_PGM_CHANGE; break;
+       case MidiChannelPressureAutomation: return MIDI_CMD_CHANNEL_PRESSURE; break;
+       case MidiPitchBenderAutomation:     return MIDI_CMD_BENDER; break;
        case MidiSystemExclusiveAutomation: return MIDI_CMD_COMMON_SYSEX; break;
        default: return 0;
        }
@@ -78,11 +78,11 @@ EventTypeMap::is_integer(const Evoral::Parameter& param) const
                        && param.type() <= MidiChannelPressureAutomation);
 }
 
-Evoral::ControlList::InterpolationStyle 
+Evoral::ControlList::InterpolationStyle
 EventTypeMap::interpolation_of(const Evoral::Parameter& param)
 {
        switch (param.type()) {
-       case MidiCCAutomation:              
+       case MidiCCAutomation:
                switch (param.id()) {
                case MIDI_CTL_LSB_BANK:
                case MIDI_CTL_MSB_BANK:
@@ -117,17 +117,18 @@ EventTypeMap::interpolation_of(const Evoral::Parameter& param)
                case MIDI_CTL_OMNI_OFF:
                case MIDI_CTL_OMNI_ON:
                case MIDI_CTL_MONO:
-               case MIDI_CTL_POLY:     
-                       return Evoral::ControlList::Discrete;
-                       break;
-               default: return Evoral::ControlList::Linear; break;
+               case MIDI_CTL_POLY:
+                       return Evoral::ControlList::Discrete; break;
+               default:
+                       return Evoral::ControlList::Linear; break;
                }
-               break; 
-       case MidiPgmChangeAutomation:       return Evoral::ControlList::Discrete; break; 
-       case MidiChannelPressureAutomation: return Evoral::ControlList::Linear; break; 
-       case MidiPitchBenderAutomation:     return Evoral::ControlList::Linear; break; 
+               break;
+       case MidiPgmChangeAutomation:       return Evoral::ControlList::Discrete; break;
+       case MidiChannelPressureAutomation: return Evoral::ControlList::Linear; break;
+       case MidiPitchBenderAutomation:     return Evoral::ControlList::Linear; break;
        default: assert(false);
        }
+       return Evoral::ControlList::Linear; // Not reached, suppress warnings
 }
 
 
@@ -166,8 +167,8 @@ EventTypeMap::new_parameter(uint32_t type, uint8_t channel, uint32_t id) const
        case MidiSystemExclusiveAutomation:
                return p;
        }
-       
-       p.set_range(type, min, max, normal);
+
+       p.set_range(type, min, max, normal, false);
        return p;
 }
 
@@ -218,7 +219,7 @@ EventTypeMap::new_parameter(const string& str) const
                assert(channel < 16);
                p_id = 0;
                p_channel = channel;
-       } else if (str.length() > 24 && str.substr(0, 24) == "midi-channel-pressure-") {
+       } else if (str.length() > 22 && str.substr(0, 22) == "midi-channel-pressure-") {
                p_type = MidiChannelPressureAutomation;
                uint32_t channel = 0;
                sscanf(str.c_str(), "midi-channel-pressure-%d", &channel);