Remove not implemented API
[ardour.git] / libs / ardour / ardour / parameter_types.h
index 8442d1f1bffc9a135c6c75b4c4d730c86f2903b2..151aacab6fe81b4ce543add784f8f1b4f52fcc8f 100644 (file)
@@ -24,6 +24,7 @@
 #include <stdint.h>
 
 #include "ardour/types.h"
+#include "evoral/Parameter.hpp"
 #include "evoral/midi_events.h"
 
 namespace ARDOUR {
@@ -35,6 +36,7 @@ parameter_midi_type(AutomationType 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 MidiNotePressureAutomation:    return MIDI_CMD_NOTE_PRESSURE; break;
        case MidiPitchBenderAutomation:     return MIDI_CMD_BENDER;           break;
        case MidiSystemExclusiveAutomation: return MIDI_CMD_COMMON_SYSEX;     break;
        default: return 0;
@@ -48,12 +50,35 @@ midi_parameter_type(uint8_t status)
        case MIDI_CMD_CONTROL:          return MidiCCAutomation;              break;
        case MIDI_CMD_PGM_CHANGE:       return MidiPgmChangeAutomation;       break;
        case MIDI_CMD_CHANNEL_PRESSURE: return MidiChannelPressureAutomation; break;
+       case MIDI_CMD_NOTE_PRESSURE:    return MidiNotePressureAutomation; break;
        case MIDI_CMD_BENDER:           return MidiPitchBenderAutomation;     break;
        case MIDI_CMD_COMMON_SYSEX:     return MidiSystemExclusiveAutomation; break;
        default: return NullAutomation;
        }
 }
 
+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 MidiNotePressureAutomation:
+               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)
 {