|
- /*
- * Custom types to store LV2 information
- * Copyright (C) 2011-2012 Filipe Coelho <falktx@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * For a full copy of the GNU General Public License see the COPYING file
- */
-
- #ifndef LV2_RDF_INCLUDED
- #define LV2_RDF_INCLUDED
-
- // TODO - presets
-
- #include <cstdint>
-
- // Base Types
- typedef float LV2_Data;
- typedef const char* LV2_URI;
- typedef uint32_t LV2_Property;
- typedef unsigned long long LV2_PluginType;
-
- // Port Midi Map Types
- #define LV2_PORT_MIDI_MAP_CC 0x1
- #define LV2_PORT_MIDI_MAP_NRPN 0x2
-
- #define LV2_IS_PORT_MIDI_MAP_CC(x) ((x) == LV2_PORT_MIDI_MAP_CC)
- #define LV2_IS_PORT_MIDI_MAP_NRPN(x) ((x) == LV2_PORT_MIDI_MAP_NRPN)
-
- // Port Point Hints
- #define LV2_PORT_POINT_DEFAULT 0x1
- #define LV2_PORT_POINT_MINIMUM 0x2
- #define LV2_PORT_POINT_MAXIMUM 0x4
-
- #define LV2_HAVE_DEFAULT_PORT_POINT(x) ((x) & LV2_PORT_POINT_DEFAULT)
- #define LV2_HAVE_MINIMUM_PORT_POINT(x) ((x) & LV2_PORT_POINT_MINIMUM)
- #define LV2_HAVE_MAXIMUM_PORT_POINT(x) ((x) & LV2_PORT_POINT_MAXIMUM)
-
- // Port Unit Types
- #define LV2_UNIT_BAR 0x01
- #define LV2_UNIT_BEAT 0x02
- #define LV2_UNIT_BPM 0x03
- #define LV2_UNIT_CENT 0x04
- #define LV2_UNIT_CM 0x05
- #define LV2_UNIT_COEF 0x06
- #define LV2_UNIT_DB 0x07
- #define LV2_UNIT_DEGREE 0x08
- #define LV2_UNIT_FRAME 0x09
- #define LV2_UNIT_HZ 0x0A
- #define LV2_UNIT_INCH 0x0B
- #define LV2_UNIT_KHZ 0x0C
- #define LV2_UNIT_KM 0x0D
- #define LV2_UNIT_M 0x0E
- #define LV2_UNIT_MHZ 0x0F
- #define LV2_UNIT_MIDINOTE 0x10
- #define LV2_UNIT_MILE 0x11
- #define LV2_UNIT_MIN 0x12
- #define LV2_UNIT_MM 0x13
- #define LV2_UNIT_MS 0x14
- #define LV2_UNIT_OCT 0x15
- #define LV2_UNIT_PC 0x16
- #define LV2_UNIT_S 0x17
- #define LV2_UNIT_SEMITONE 0x18
-
- #define LV2_IS_UNIT_BAR(x) ((x) == LV2_UNIT_BAR)
- #define LV2_IS_UNIT_BEAT(x) ((x) == LV2_UNIT_BEAT)
- #define LV2_IS_UNIT_BPM(x) ((x) == LV2_UNIT_BPM)
- #define LV2_IS_UNIT_CENT(x) ((x) == LV2_UNIT_CENT)
- #define LV2_IS_UNIT_CM(x) ((x) == LV2_UNIT_CM)
- #define LV2_IS_UNIT_COEF(x) ((x) == LV2_UNIT_COEF)
- #define LV2_IS_UNIT_DB(x) ((x) == LV2_UNIT_DB)
- #define LV2_IS_UNIT_DEGREE(x) ((x) == LV2_UNIT_DEGREE)
- #define LV2_IS_UNIT_FRAME(x) ((x) == LV2_UNIT_FRAME)
- #define LV2_IS_UNIT_HZ(x) ((x) == LV2_UNIT_HZ)
- #define LV2_IS_UNIT_INCH(x) ((x) == LV2_UNIT_INCH)
- #define LV2_IS_UNIT_KHZ(x) ((x) == LV2_UNIT_KHZ)
- #define LV2_IS_UNIT_KM(x) ((x) == LV2_UNIT_KM)
- #define LV2_IS_UNIT_M(x) ((x) == LV2_UNIT_M)
- #define LV2_IS_UNIT_MHZ(x) ((x) == LV2_UNIT_MHZ)
- #define LV2_IS_UNIT_MIDINOTE(x) ((x) == LV2_UNIT_MIDINOTE)
- #define LV2_IS_UNIT_MILE(x) ((x) == LV2_UNIT_MILE)
- #define LV2_IS_UNIT_MIN(x) ((x) == LV2_UNIT_MIN)
- #define LV2_IS_UNIT_MM(x) ((x) == LV2_UNIT_MM)
- #define LV2_IS_UNIT_MS(x) ((x) == LV2_UNIT_MS)
- #define LV2_IS_UNIT_OCT(x) ((x) == LV2_UNIT_OCT)
- #define LV2_IS_UNIT_PC(x) ((x) == LV2_UNIT_PC)
- #define LV2_IS_UNIT_S(x) ((x) == LV2_UNIT_S)
- #define LV2_IS_UNIT_SEMITONE(x) ((x) == LV2_UNIT_SEMITONE)
-
- // Port Unit Hints
- #define LV2_PORT_UNIT 0x1
- #define LV2_PORT_UNIT_NAME 0x2
- #define LV2_PORT_UNIT_RENDER 0x4
- #define LV2_PORT_UNIT_SYMBOL 0x8
-
- #define LV2_HAVE_UNIT(x) ((x) & LV2_PORT_UNIT)
- #define LV2_HAVE_UNIT_NAME(x) ((x) & LV2_PORT_UNIT_NAME)
- #define LV2_HAVE_UNIT_RENDER(x) ((x) & LV2_PORT_UNIT_RENDER)
- #define LV2_HAVE_UNIT_SYMBOL(x) ((x) & LV2_PORT_UNIT_SYMBOL)
-
- // Port Types
- #define LV2_PORT_INPUT 0x01
- #define LV2_PORT_OUTPUT 0x02
- #define LV2_PORT_CONTROL 0x04
- #define LV2_PORT_AUDIO 0x08
- #define LV2_PORT_CV 0x10
- #define LV2_PORT_ATOM 0x20
- #define LV2_PORT_ATOM_SEQUENCE (0x40 | LV2_PORT_ATOM)
- #define LV2_PORT_EVENT 0x80
- #define LV2_PORT_MIDI_LL 0x100
-
- // Port Support Types
- #define LV2_PORT_SUPPORTS_MIDI_EVENT 0x1000
- #define LV2_PORT_SUPPORTS_PATCH_MESSAGE 0x2000
-
- #define LV2_IS_PORT_INPUT(x) ((x) & LV2_PORT_INPUT)
- #define LV2_IS_PORT_OUTPUT(x) ((x) & LV2_PORT_OUTPUT)
- #define LV2_IS_PORT_CONTROL(x) ((x) & LV2_PORT_CONTROL)
- #define LV2_IS_PORT_AUDIO(x) ((x) & LV2_PORT_AUDIO)
- #define LV2_IS_PORT_ATOM_SEQUENCE(x) ((x) & LV2_PORT_ATOM_SEQUENCE)
- #define LV2_IS_PORT_CV(x) ((x) & LV2_PORT_CV)
- #define LV2_IS_PORT_EVENT(x) ((x) & LV2_PORT_EVENT)
- #define LV2_IS_PORT_MIDI_LL(x) ((x) & LV2_PORT_MIDI_LL)
-
- // Port Properties
- #define LV2_PORT_OPTIONAL 0x0001
- #define LV2_PORT_ENUMERATION 0x0002
- #define LV2_PORT_INTEGER 0x0004
- #define LV2_PORT_SAMPLE_RATE 0x0008
- #define LV2_PORT_TOGGLED 0x0010
- #define LV2_PORT_CAUSES_ARTIFACTS 0x0020
- #define LV2_PORT_CONTINUOUS_CV 0x0040
- #define LV2_PORT_DISCRETE_CV 0x0080
- #define LV2_PORT_EXPENSIVE 0x0100
- #define LV2_PORT_STRICT_BOUNDS 0x0200
- #define LV2_PORT_LOGARITHMIC 0x0400
- #define LV2_PORT_NOT_AUTOMATIC 0x0800
- #define LV2_PORT_NOT_ON_GUI 0x1000
- #define LV2_PORT_TRIGGER 0x2000
-
- #define LV2_IS_PORT_OPTIONAL(x) ((x) & LV2_PORT_OPTIONAL)
- #define LV2_IS_PORT_ENUMERATION(x) ((x) & LV2_PORT_ENUMERATION)
- #define LV2_IS_PORT_INTEGER(x) ((x) & LV2_PORT_INTEGER)
- #define LV2_IS_PORT_SAMPLE_RATE(x) ((x) & LV2_PORT_SAMPLE_RATE)
- #define LV2_IS_PORT_TOGGLED(x) ((x) & LV2_PORT_TOGGLED)
- #define LV2_IS_PORT_CAUSES_ARTIFACTS(x) ((x) & LV2_PORT_CAUSES_ARTIFACTS)
- #define LV2_IS_PORT_CONTINUOUS_CV(x) ((x) & LV2_PORT_CONTINUOUS_CV)
- #define LV2_IS_PORT_DISCRETE_CV(x) ((x) & LV2_PORT_DISCRETE_CV)
- #define LV2_IS_PORT_EXPENSIVE(x) ((x) & LV2_PORT_EXPENSIVE)
- #define LV2_IS_PORT_STRICT_BOUNDS(x) ((x) & LV2_PORT_STRICT_BOUNDS)
- #define LV2_IS_PORT_LOGARITHMIC(x) ((x) & LV2_PORT_LOGARITHMIC)
- #define LV2_IS_PORT_NOT_AUTOMATIC(x) ((x) & LV2_PORT_NOT_AUTOMATIC)
- #define LV2_IS_PORT_NOT_ON_GUI(x) ((x) & LV2_PORT_NOT_ON_GUI)
- #define LV2_IS_PORT_TRIGGER(x) ((x) & LV2_PORT_TRIGGER)
-
- // Port Designation
- #define LV2_PORT_DESIGNATION_FREEWHEELING 0x1
- #define LV2_PORT_DESIGNATION_LATENCY 0x2
- #define LV2_PORT_DESIGNATION_SAMPLE_RATE 0x3
- #define LV2_PORT_DESIGNATION_TIME_BAR 0x4
- #define LV2_PORT_DESIGNATION_TIME_BAR_BEAT 0x5
- #define LV2_PORT_DESIGNATION_TIME_BEAT 0x6
- #define LV2_PORT_DESIGNATION_TIME_BEAT_UNIT 0x7
- #define LV2_PORT_DESIGNATION_TIME_BEATS_PER_BAR 0x8
- #define LV2_PORT_DESIGNATION_TIME_BEATS_PER_MINUTE 0x9
- #define LV2_PORT_DESIGNATION_TIME_FRAME 0xA
- #define LV2_PORT_DESIGNATION_TIME_FRAMES_PER_SECOND 0xB
- #define LV2_PORT_DESIGNATION_TIME_POSITION 0xC
- #define LV2_PORT_DESIGNATION_TIME_SPEED 0xD
-
- #define LV2_IS_PORT_DESIGNATION_FREEWHEELING(x) ((x) == LV2_PORT_DESIGNATION_FREEWHEELING)
- #define LV2_IS_PORT_DESIGNATION_LATENCY(x) ((x) == LV2_PORT_DESIGNATION_LATENCY)
- #define LV2_IS_PORT_DESIGNATION_SAMPLE_RATE(x) ((x) == LV2_PORT_DESIGNATION_SAMPLE_RATE)
- #define LV2_IS_PORT_DESIGNATION_TIME_BAR(x) ((x) == LV2_PORT_DESIGNATION_TIME_BAR)
- #define LV2_IS_PORT_DESIGNATION_TIME_BAR_BEAT(x) ((x) == LV2_PORT_DESIGNATION_TIME_BAR_BEAT)
- #define LV2_IS_PORT_DESIGNATION_TIME_BEAT(x) ((x) == LV2_PORT_DESIGNATION_TIME_BEAT)
- #define LV2_IS_PORT_DESIGNATION_TIME_BEAT_UNIT(x) ((x) == LV2_PORT_DESIGNATION_TIME_BEAT_UNIT)
- #define LV2_IS_PORT_DESIGNATION_TIME_BEATS_PER_BAR(x) ((x) == LV2_PORT_DESIGNATION_TIME_BEATS_PER_BAR)
- #define LV2_IS_PORT_DESIGNATION_TIME_BEATS_PER_MINUTE(x) ((x) == LV2_PORT_DESIGNATION_TIME_BEATS_PER_MINUTE)
- #define LV2_IS_PORT_DESIGNATION_TIME_FRAME(x) ((x) == LV2_PORT_DESIGNATION_TIME_FRAME)
- #define LV2_IS_PORT_DESIGNATION_TIME_FRAMES_PER_SECOND(x) ((x) == LV2_PORT_DESIGNATION_TIME_FRAMES_PER_SECOND)
- #define LV2_IS_PORT_DESIGNATION_TIME_POSITION(x) ((x) == LV2_PORT_DESIGNATION_TIME_POSITION)
- #define LV2_IS_PORT_DESIGNATION_TIME_SPEED(x) ((x) == LV2_PORT_DESIGNATION_TIME_SPEED)
- #define LV2_IS_PORT_DESIGNATION_TIME(x) ((x) == LV2_PORT_DESIGNATION_TIME_BAR || (x) == LV2_PORT_DESIGNATION_TIME_BAR_BEAT || \
- (x) == LV2_PORT_DESIGNATION_TIME_BEAT || (x) == LV2_PORT_DESIGNATION_TIME_BEAT_UNIT || \
- (x) == LV2_PORT_DESIGNATION_TIME_BEATS_PER_BAR || (x) == LV2_PORT_DESIGNATION_TIME_BEATS_PER_MINUTE || \
- (x) == LV2_PORT_DESIGNATION_TIME_FRAME || (x) == LV2_PORT_DESIGNATION_TIME_FRAMES_PER_SECOND || \
- (x) == LV2_PORT_DESIGNATION_TIME_POSITION || (x) == LV2_PORT_DESIGNATION_TIME_SPEED)
-
- // Preset State Types (TODO: Null is not a type, this is just a placeholder)
- #define LV2_PRESET_STATE_NULL 0x0
-
- #define LV2_IS_PRESET_STATE_NULL(x) ((x) == LV2_PRESET_STATE_NULL)
-
- // Feature Types
- #define LV2_FEATURE_OPTIONAL 0x1
- #define LV2_FEATURE_REQUIRED 0x2
-
- #define LV2_IS_FEATURE_OPTIONAL(x) ((x) == LV2_FEATURE_OPTIONAL)
- #define LV2_IS_FEATURE_REQUIRED(x) ((x) == LV2_FEATURE_REQUIRED)
-
- // UI Types
- #define LV2_UI_GTK2 0x1
- #define LV2_UI_GTK3 0x2
- #define LV2_UI_QT4 0x3
- #define LV2_UI_COCOA 0x4
- #define LV2_UI_WINDOWS 0x5
- #define LV2_UI_X11 0x6
- #define LV2_UI_EXTERNAL 0x7
- #define LV2_UI_OLD_EXTERNAL 0x8
-
- #define LV2_IS_UI_GTK2(x) ((x) == LV2_UI_GTK2)
- #define LV2_IS_UI_GTK3(x) ((x) == LV2_UI_GTK3)
- #define LV2_IS_UI_QT4(x) ((x) == LV2_UI_QT4)
- #define LV2_IS_UI_COCOA(x) ((x) == LV2_UI_COCOA)
- #define LV2_IS_UI_WINDOWS(x) ((x) == LV2_UI_WINDOWS)
- #define LV2_IS_UI_X11(x) ((x) == LV2_UI_X11)
- #define LV2_IS_UI_EXTERNAL(x) ((x) == LV2_UI_EXTERNAL)
- #define LV2_IS_UI_OLD_EXTERNAL(x) ((x) == LV2_UI_OLD_EXTERNAL)
-
- // Plugin Types
- #define LV2_CLASS_ALLPASS 0x000000001LL
- #define LV2_CLASS_AMPLIFIER 0x000000002LL
- #define LV2_CLASS_ANALYSER 0x000000004LL
- #define LV2_CLASS_BANDPASS 0x000000008LL
- #define LV2_CLASS_CHORUS 0x000000010LL
- #define LV2_CLASS_COMB 0x000000020LL
- #define LV2_CLASS_COMPRESSOR 0x000000040LL
- #define LV2_CLASS_CONSTANT 0x000000080LL
- #define LV2_CLASS_CONVERTER 0x000000100LL
- #define LV2_CLASS_DELAY 0x000000200LL
- #define LV2_CLASS_DISTORTION 0x000000400LL
- #define LV2_CLASS_DYNAMICS 0x000000800LL
- #define LV2_CLASS_EQ 0x000001000LL
- #define LV2_CLASS_EXPANDER 0x000002000LL
- #define LV2_CLASS_FILTER 0x000004000LL
- #define LV2_CLASS_FLANGER 0x000008000LL
- #define LV2_CLASS_FUNCTION 0x000010000LL
- #define LV2_CLASS_GATE 0x000020000LL
- #define LV2_CLASS_GENERATOR 0x000040000LL
- #define LV2_CLASS_HIGHPASS 0x000080000LL
- #define LV2_CLASS_INSTRUMENT 0x000100000LL
- #define LV2_CLASS_LIMITER 0x000200000LL
- #define LV2_CLASS_LOWPASS 0x000400000LL
- #define LV2_CLASS_MIXER 0x000800000LL
- #define LV2_CLASS_MODULATOR 0x001000000LL
- #define LV2_CLASS_MULTI_EQ 0x002000000LL
- #define LV2_CLASS_OSCILLATOR 0x004000000LL
- #define LV2_CLASS_PARA_EQ 0x008000000LL
- #define LV2_CLASS_PHASER 0x010000000LL
- #define LV2_CLASS_PITCH 0x020000000LL
- #define LV2_CLASS_REVERB 0x040000000LL
- #define LV2_CLASS_SIMULATOR 0x080000000LL
- #define LV2_CLASS_SPATIAL 0x100000000LL
- #define LV2_CLASS_SPECTRAL 0x200000000LL
- #define LV2_CLASS_UTILITY 0x400000000LL
- #define LV2_CLASS_WAVESHAPER 0x800000000LL
-
- #define LV2_GROUP_DELAY (LV2_CLASS_DELAY|LV2_CLASS_REVERB)
- #define LV2_GROUP_DISTORTION (LV2_CLASS_DISTORTION|LV2_CLASS_WAVESHAPER)
- #define LV2_GROUP_DYNAMICS (LV2_CLASS_DYNAMICS|LV2_CLASS_AMPLIFIER|LV2_CLASS_COMPRESSOR|LV2_CLASS_EXPANDER|LV2_CLASS_GATE|LV2_CLASS_LIMITER)
- #define LV2_GROUP_EQ (LV2_CLASS_EQ|LV2_CLASS_PARA_EQ|LV2_CLASS_MULTI_EQ)
- #define LV2_GROUP_FILTER (LV2_CLASS_FILTER|LV2_CLASS_ALLPASS|LV2_CLASS_BANDPASS|LV2_CLASS_COMB|LV2_GROUP_EQ|LV2_CLASS_HIGHPASS|LV2_CLASS_LOWPASS)
- #define LV2_GROUP_GENERATOR (LV2_CLASS_GENERATOR|LV2_CLASS_CONSTANT|LV2_CLASS_INSTRUMENT|LV2_CLASS_OSCILLATOR)
- #define LV2_GROUP_MODULATOR (LV2_CLASS_MODULATOR|LV2_CLASS_CHORUS|LV2_CLASS_FLANGER|LV2_CLASS_PHASER)
- #define LV2_GROUP_REVERB (LV2_CLASS_REVERB)
- #define LV2_GROUP_SIMULATOR (LV2_CLASS_SIMULATOR|LV2_CLASS_REVERB)
- #define LV2_GROUP_SPATIAL (LV2_CLASS_SPATIAL)
- #define LV2_GROUP_SPECTRAL (LV2_CLASS_SPECTRAL|LV2_CLASS_PITCH)
- #define LV2_GROUP_UTILITY (LV2_CLASS_UTILITY|LV2_CLASS_ANALYSER|LV2_CLASS_CONVERTER|LV2_CLASS_FUNCTION|LV2_CLASS_MIXER)
-
- #define LV2_IS_DELAY(x) ((x) & LV2_GROUP_DELAY)
- #define LV2_IS_DISTORTION(x) ((x) & LV2_GROUP_DISTORTION)
- #define LV2_IS_DYNAMICS(x) ((x) & LV2_GROUP_DYNAMICS)
- #define LV2_IS_EQ(x) ((x) & LV2_GROUP_EQ)
- #define LV2_IS_FILTER(x) ((x) & LV2_GROUP_FILTER)
- #define LV2_IS_GENERATOR(x) ((x) & LV2_GROUP_GENERATOR)
- #define LV2_IS_MODULATOR(x) ((x) & LV2_GROUP_MODULATOR)
- #define LV2_IS_REVERB(x) ((x) & LV2_GROUP_REVERB)
- #define LV2_IS_SIMULATOR(x) ((x) & LV2_GROUP_SIMULATOR)
- #define LV2_IS_SPATIAL(x) ((x) & LV2_GROUP_SPATIAL)
- #define LV2_IS_SPECTRAL(x) ((x) & LV2_GROUP_SPECTRAL)
- #define LV2_IS_UTILITY(x) ((x) & LV2_GROUP_UTILITY)
-
- // Port Midi Map
- struct LV2_RDF_PortMidiMap {
- LV2_Property Type;
- uint32_t Number;
-
- LV2_RDF_PortMidiMap()
- : Type(0),
- Number(0) {}
- };
-
- // Port Points
- struct LV2_RDF_PortPoints {
- LV2_Property Hints;
- LV2_Data Default;
- LV2_Data Minimum;
- LV2_Data Maximum;
-
- LV2_RDF_PortPoints()
- : Hints(0),
- Default(0.0f),
- Minimum(0.0f),
- Maximum(1.0f) {}
- };
-
- // Port Unit
- struct LV2_RDF_PortUnit {
- LV2_Property Type;
- LV2_Property Hints;
- const char* Name;
- const char* Render;
- const char* Symbol;
-
- LV2_RDF_PortUnit()
- : Type(0),
- Hints(0),
- Name(nullptr),
- Render(nullptr),
- Symbol(nullptr) {}
- };
-
- // Port Scale Point
- struct LV2_RDF_PortScalePoint {
- const char* Label;
- LV2_Data Value;
-
- LV2_RDF_PortScalePoint()
- : Label(nullptr),
- Value(0.0f) {}
- };
-
- // Port
- struct LV2_RDF_Port {
- LV2_Property Type;
- LV2_Property Properties;
- LV2_Property Designation;
- const char* Name;
- const char* Symbol;
-
- LV2_RDF_PortMidiMap MidiMap;
- LV2_RDF_PortPoints Points;
- LV2_RDF_PortUnit Unit;
-
- uint32_t ScalePointCount;
- LV2_RDF_PortScalePoint* ScalePoints;
-
- LV2_RDF_Port()
- : Type(0),
- Properties(0),
- Designation(0),
- Name(nullptr),
- Symbol(nullptr),
- MidiMap(),
- Points(),
- Unit(),
- ScalePointCount(0),
- ScalePoints(nullptr) {}
- };
-
- // Preset Port
- struct LV2_RDF_PresetPort {
- const char* Symbol;
- LV2_Data Value;
-
- LV2_RDF_PresetPort()
- : Symbol(nullptr),
- Value(0.0f) {}
- };
-
- // Preset State
- struct LV2_RDF_PresetState {
- LV2_Property Type;
- const char* Key;
- union {
- // TODO
- } Value;
-
- LV2_RDF_PresetState()
- : Type(0),
- Key(nullptr) {}
- };
-
- // Preset
- struct LV2_RDF_Preset {
- LV2_URI URI;
- const char* Label;
-
- uint32_t PortCount;
- LV2_RDF_PresetPort* Ports;
-
- uint32_t StateCount;
- LV2_RDF_PresetState* States;
-
- LV2_RDF_Preset()
- : URI(nullptr),
- Label(nullptr),
- PortCount(0),
- Ports(nullptr),
- StateCount(0),
- States(nullptr) {}
- };
-
- // Feature
- struct LV2_RDF_Feature {
- LV2_Property Type;
- LV2_URI URI;
-
- LV2_RDF_Feature()
- : Type(0),
- URI(nullptr) {}
- };
-
- // UI
- struct LV2_RDF_UI {
- LV2_Property Type;
- LV2_URI URI;
- const char* Binary;
- const char* Bundle;
-
- uint32_t FeatureCount;
- LV2_RDF_Feature* Features;
-
- uint32_t ExtensionCount;
- LV2_URI* Extensions;
-
- LV2_RDF_UI()
- : Type(0),
- URI(nullptr),
- Binary(nullptr),
- Bundle(nullptr),
- FeatureCount(0),
- Features(nullptr),
- ExtensionCount(0),
- Extensions(nullptr) {}
- };
-
- // Plugin
- struct LV2_RDF_Descriptor {
- LV2_PluginType Type;
- LV2_URI URI;
- const char* Name;
- const char* Author;
- const char* License;
- const char* Binary;
- const char* Bundle;
- unsigned long UniqueID;
-
- uint32_t PortCount;
- LV2_RDF_Port* Ports;
-
- uint32_t PresetCount;
- LV2_RDF_Preset* Presets;
-
- uint32_t FeatureCount;
- LV2_RDF_Feature* Features;
-
- uint32_t ExtensionCount;
- LV2_URI* Extensions;
-
- uint32_t UICount;
- LV2_RDF_UI* UIs;
-
- LV2_RDF_Descriptor()
- : Type(0),
- URI(nullptr),
- Name(nullptr),
- Author(nullptr),
- License(nullptr),
- Binary(nullptr),
- Bundle(nullptr),
- UniqueID(0),
- PortCount(0),
- Ports(nullptr),
- PresetCount(0),
- Presets(nullptr),
- FeatureCount(0),
- Features(nullptr),
- ExtensionCount(0),
- Extensions(nullptr),
- UICount(0),
- UIs(nullptr) {}
- };
-
- #endif /* LV2_RDF_INCLUDED */
|