#ifndef EVORAL_TYPE_MAP_HPP
#define EVORAL_TYPE_MAP_HPP
+#include <stdint.h>
+
+#include <string>
+
#include "evoral/visibility.h"
#include "evoral/types.hpp"
namespace Evoral {
class Parameter;
+class ParameterDescriptor;
/** The applications passes one of these which provide the implementation
* with required information about event types in an opaque, type neutral way
*/
virtual uint8_t parameter_midi_type(const Parameter& param) const = 0;
- /** The type ID for a MIDI event with the given status byte
- */
- virtual uint32_t midi_event_type(uint8_t status) const = 0;
-
- /** Return true iff parameter should be locked to integer boundaries */
- virtual bool is_integer(const Evoral::Parameter& param) const = 0;
+ /** The parameter type for the given MIDI event. */
+ virtual ParameterType midi_parameter_type(const uint8_t* buf, uint32_t len) const = 0;
- /** Create a parameter with the given type ID */
- virtual Parameter new_parameter(uint32_t type, uint8_t channel, uint32_t id) const = 0;
+ /** Return the description of a parameter. */
+ virtual ParameterDescriptor descriptor(const Parameter& param) const = 0;
virtual std::string to_symbol(const Parameter& param) const = 0;
};