remove reference "const int32_t&" -> const int32_t"
[ardour.git] / libs / ardour / ardour / parameter_types.h
index 8442d1f1bffc9a135c6c75b4c4d730c86f2903b2..240ad2d9565dadbd5a02abdc360aac9a3f82d787 100644 (file)
@@ -24,6 +24,7 @@
 #include <stdint.h>
 
 #include "ardour/types.h"
+#include "evoral/Parameter.hpp"
 #include "evoral/midi_events.h"
 
 namespace ARDOUR {
@@ -54,6 +55,26 @@ midi_parameter_type(uint8_t status)
        }
 }
 
+inline Evoral::Parameter
+midi_parameter(const uint8_t* buf, const uint32_t len)
+{
+       const uint8_t channel = buf[0] & 0x0F;
+       switch (midi_parameter_type(buf[0])) {
+       case MidiCCAutomation:
+               return Evoral::Parameter(MidiCCAutomation, channel, buf[1]);
+       case MidiPgmChangeAutomation:
+               return Evoral::Parameter(MidiPgmChangeAutomation, channel);
+       case MidiChannelPressureAutomation:
+               return Evoral::Parameter(MidiChannelPressureAutomation, channel);
+       case MidiPitchBenderAutomation:
+               return Evoral::Parameter(MidiPitchBenderAutomation, channel);
+       case MidiSystemExclusiveAutomation:
+               return Evoral::Parameter(MidiSystemExclusiveAutomation, channel);
+       default:
+               return Evoral::Parameter(NullAutomation);
+       }
+}
+
 inline bool
 parameter_is_midi(AutomationType type)
 {