| @@ -1,125 +0,0 @@ | |||
| /* | |||
| * Carla common defines | |||
| * Copyright (C) 2011-2013 Filipe Coelho <falktx@falktx.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 GPL.txt file | |||
| */ | |||
| #ifndef __CARLA_DEFINES_HPP__ | |||
| #define __CARLA_DEFINES_HPP__ | |||
| // Check OS | |||
| #if defined(__APPLE__) | |||
| # define CARLA_OS_MAC | |||
| #elif defined(__HAIKU__) | |||
| # define CARLA_OS_HAIKU | |||
| #elif defined(__linux__) || defined(__linux) || defined(QTCREATOR_TEST) | |||
| # define CARLA_OS_LINUX | |||
| #elif defined(WIN64) || defined(_WIN64) || defined(__WIN64__) | |||
| # define CARLA_OS_WIN64 | |||
| #elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) | |||
| # define CARLA_OS_WIN32 | |||
| #else | |||
| # warning Unsupported platform! | |||
| #endif | |||
| #if defined(CARLA_OS_WIN32) || defined(CARLA_OS_WIN64) | |||
| # define CARLA_OS_WIN | |||
| #elif ! defined(CARLA_OS_HAIKU) | |||
| # define CARLA_OS_UNIX | |||
| #endif | |||
| // Check for C++11 support | |||
| #if defined(HAVE_CPP11_SUPPORT) || defined(QTCREATOR_TEST) | |||
| # define CARLA_CPP11_SUPPORT | |||
| #elif defined(__GNUC__) && defined(__GXX_EXPERIMENTAL_CXX0X__) | |||
| # if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 | |||
| # define CARLA_CPP11_SUPPORT | |||
| # endif | |||
| #endif | |||
| // Common includes | |||
| #ifdef CARLA_OS_WIN | |||
| # include <winsock2.h> | |||
| # include <windows.h> | |||
| #else | |||
| # include <unistd.h> | |||
| # ifndef __cdecl | |||
| # define __cdecl | |||
| # endif | |||
| #endif | |||
| // Define various string format types | |||
| #if defined(CARLA_OS_WIN64) | |||
| # define P_INT64 "%I64i" | |||
| # define P_INTPTR "%I64i" | |||
| # define P_UINTPTR "%I64x" | |||
| # define P_SIZE "%I64u" | |||
| #elif defined(CARLA_OS_WIN32) | |||
| # define P_INT64 "%I64i" | |||
| # define P_INTPTR "%i" | |||
| # define P_UINTPTR "%x" | |||
| # define P_SIZE "%u" | |||
| #elif __WORDSIZE == 64 | |||
| # define P_INT64 "%li" | |||
| # define P_INTPTR "%li" | |||
| # define P_UINTPTR "%lx" | |||
| # define P_SIZE "%lu" | |||
| #else | |||
| # define P_INT64 "%lli" | |||
| # define P_INTPTR "%i" | |||
| # define P_UINTPTR "%x" | |||
| # define P_SIZE "%u" | |||
| #endif | |||
| // Define BINARY_NATIVE | |||
| #if defined(CARLA_OS_HAIKU) || defined(CARLA_OS_UNIX) | |||
| # ifdef __LP64__ | |||
| # define BINARY_NATIVE BINARY_POSIX64 | |||
| # else | |||
| # define BINARY_NATIVE BINARY_POSIX32 | |||
| # endif | |||
| #elif defined(CARLA_OS_WIN) | |||
| # ifdef CARLA_OS_WIN64 | |||
| # define BINARY_NATIVE BINARY_WIN64 | |||
| # else | |||
| # define BINARY_NATIVE BINARY_WIN32 | |||
| # endif | |||
| #else | |||
| # warning Unknown binary native | |||
| # define BINARY_NATIVE BINARY_OTHER | |||
| #endif | |||
| // Define CARLA_ASSERT* | |||
| #ifdef NDEBUG | |||
| # define CARLA_ASSERT(cond) ((!(cond)) ? carla_assert(#cond, __FILE__, __LINE__) : pass()) | |||
| # define CARLA_ASSERT_INT(cond, value) ((!(cond)) ? carla_assert_int(#cond, __FILE__, __LINE__, value) : pass()) | |||
| # define CARLA_ASSERT_INT2(cond, v1, v2) ((!(cond)) ? carla_assert_int2(#cond, __FILE__, __LINE__, v1, v2) : pass()) | |||
| #else | |||
| # define CARLA_ASSERT(cond) assert(cond) | |||
| # define CARLA_ASSERT_INT(cond, value) assert(cond) | |||
| # define CARLA_ASSERT_INT2(cond, v1, v2) assert(cond) | |||
| #endif | |||
| // Define CARLA_EXPORT | |||
| #ifdef BUILD_BRIDGE | |||
| # define CARLA_EXPORT extern "C" | |||
| #else | |||
| # if defined(CARLA_OS_WIN) && ! defined(__WINE__) | |||
| # define CARLA_EXPORT extern "C" __declspec (dllexport) | |||
| # else | |||
| # define CARLA_EXPORT extern "C" __attribute__ ((visibility("default"))) | |||
| # endif | |||
| #endif | |||
| #endif // __CARLA_DEFINES_HPP__ | |||
| @@ -1,144 +0,0 @@ | |||
| /* | |||
| * Carla common MIDI code | |||
| * Copyright (C) 2012-2013 Filipe Coelho <falktx@falktx.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 GPL.txt file | |||
| */ | |||
| #ifndef __CARLA_MIDI_H__ | |||
| #define __CARLA_MIDI_H__ | |||
| #define MAX_MIDI_CHANNELS 16 | |||
| #define MAX_MIDI_NOTE 128 | |||
| #define MAX_MIDI_VALUE 128 | |||
| // MIDI Messages List | |||
| #define MIDI_STATUS_NOTE_OFF 0x80 // note (0-127), velocity (0-127) | |||
| #define MIDI_STATUS_NOTE_ON 0x90 // note (0-127), velocity (0-127) | |||
| #define MIDI_STATUS_POLYPHONIC_AFTERTOUCH 0xA0 // note (0-127), pressure (0-127) | |||
| #define MIDI_STATUS_CONTROL_CHANGE 0xB0 // see 'Control Change Messages List' | |||
| #define MIDI_STATUS_PROGRAM_CHANGE 0xC0 // program (0-127), none | |||
| #define MIDI_STATUS_AFTERTOUCH 0xD0 // pressure (0-127), none | |||
| #define MIDI_STATUS_PITCH_WHEEL_CONTROL 0xE0 // LSB (0-127), MSB (0-127) | |||
| #define MIDI_IS_STATUS_NOTE_OFF(status) (((status) & 0xF0) == MIDI_STATUS_NOTE_OFF) | |||
| #define MIDI_IS_STATUS_NOTE_ON(status) (((status) & 0xF0) == MIDI_STATUS_NOTE_ON) | |||
| #define MIDI_IS_STATUS_POLYPHONIC_AFTERTOUCH(status) (((status) & 0xF0) == MIDI_STATUS_POLYPHONIC_AFTERTOUCH) | |||
| #define MIDI_IS_STATUS_CONTROL_CHANGE(status) (((status) & 0xF0) == MIDI_STATUS_CONTROL_CHANGE) | |||
| #define MIDI_IS_STATUS_PROGRAM_CHANGE(status) (((status) & 0xF0) == MIDI_STATUS_PROGRAM_CHANGE) | |||
| #define MIDI_IS_STATUS_AFTERTOUCH(status) (((status) & 0xF0) == MIDI_STATUS_AFTERTOUCH) | |||
| #define MIDI_IS_STATUS_PITCH_WHEEL_CONTROL(status) (((status) & 0xF0) == MIDI_STATUS_PITCH_WHEEL_CONTROL) | |||
| // MIDI Utils | |||
| #define MIDI_GET_STATUS_FROM_DATA(data) ((data[0]) & 0xF0) | |||
| #define MIDI_GET_CHANNEL_FROM_DATA(data) ((data[0]) & 0x0F) | |||
| // Control Change Messages List | |||
| #define MIDI_CONTROL_BANK_SELECT 0x00 // 0-127, MSB | |||
| #define MIDI_CONTROL_MODULATION_WHEEL 0x01 // 0-127, MSB | |||
| #define MIDI_CONTROL_BREATH_CONTROLLER 0x02 // 0-127, MSB | |||
| #define MIDI_CONTROL_FOOT_CONTROLLER 0x04 // 0-127, MSB | |||
| #define MIDI_CONTROL_PORTAMENTO_TIME 0x05 // 0-127, MSB | |||
| #define MIDI_CONTROL_DATA_ENTRY 0x06 // 0-127, MSB | |||
| #define MIDI_CONTROL_CHANNEL_VOLUME 0x07 // 0-127, MSB | |||
| #define MIDI_CONTROL_BALANCE 0x08 // 0-127, MSB | |||
| #define MIDI_CONTROL_PAN 0x0A // 0-127, MSB | |||
| #define MIDI_CONTROL_EXPRESSION_CONTROLLER 0x0B // 0-127, MSB | |||
| #define MIDI_CONTROL_EFFECT_CONTROL_1 0x0C // 0-127, MSB | |||
| #define MIDI_CONTROL_EFFECT_CONTROL_2 0x0D // 0-127, MSB | |||
| #define MIDI_CONTROL_GENERAL_PURPOSE_CONTROLLER_1 0x10 // 0-127, MSB | |||
| #define MIDI_CONTROL_GENERAL_PURPOSE_CONTROLLER_2 0x11 // 0-127, MSB | |||
| #define MIDI_CONTROL_GENERAL_PURPOSE_CONTROLLER_3 0x12 // 0-127, MSB | |||
| #define MIDI_CONTROL_GENERAL_PURPOSE_CONTROLLER_4 0x13 // 0-127, MSB | |||
| #define MIDI_CONTROL_BANK_SELECT__LSB 0x20 // 0-127, LSB | |||
| #define MIDI_CONTROL_MODULATION_WHEEL__LSB 0x21 // 0-127, LSB | |||
| #define MIDI_CONTROL_BREATH_CONTROLLER__LSB 0x22 // 0-127, LSB | |||
| #define MIDI_CONTROL_FOOT_CONTROLLER__LSB 0x24 // 0-127, LSB | |||
| #define MIDI_CONTROL_PORTAMENTO_TIME__LSB 0x25 // 0-127, LSB | |||
| #define MIDI_CONTROL_DATA_ENTRY__LSB 0x26 // 0-127, LSB | |||
| #define MIDI_CONTROL_CHANNEL_VOLUME__LSB 0x27 // 0-127, LSB | |||
| #define MIDI_CONTROL_BALANCE__LSB 0x28 // 0-127, LSB | |||
| #define MIDI_CONTROL_PAN__LSB 0x2A // 0-127, LSB | |||
| #define MIDI_CONTROL_EXPRESSION_CONTROLLER__LSB 0x2B // 0-127, LSB | |||
| #define MIDI_CONTROL_EFFECT_CONTROL_1__LSB 0x2C // 0-127, LSB | |||
| #define MIDI_CONTROL_EFFECT_CONTROL_2__LSB 0x3D // 0-127, LSB | |||
| #define MIDI_CONTROL_GENERAL_PURPOSE_CONTROLLER_1__LSB 0x30 // 0-127, LSB | |||
| #define MIDI_CONTROL_GENERAL_PURPOSE_CONTROLLER_2__LSB 0x31 // 0-127, LSB | |||
| #define MIDI_CONTROL_GENERAL_PURPOSE_CONTROLLER_3__LSB 0x32 // 0-127, LSB | |||
| #define MIDI_CONTROL_GENERAL_PURPOSE_CONTROLLER_4__LSB 0x33 // 0-127, LSB | |||
| #define MIDI_CONTROL_DAMPER_PEDAL 0x40 // <= 63 off, >= 64 off | |||
| #define MIDI_CONTROL_PORTAMENTO 0x41 // <= 63 off, >= 64 off | |||
| #define MIDI_CONTROL_SOSTENUDO 0x42 // <= 63 off, >= 64 off | |||
| #define MIDI_CONTROL_SOFT_PEDAL 0x43 // <= 63 off, >= 64 off | |||
| #define MIDI_CONTROL_LEGAL_FOOTSWITCH 0x44 // <= 63 normal, >= 64 legato | |||
| #define MIDI_CONTROL_HOLD_2 0x45 // <= 63 off, >= 64 off | |||
| #define MIDI_CONTROL_SOUND_CONTROLLER_1 0x46 // 0-127, LSB | |||
| #define MIDI_CONTROL_SOUND_CONTROLLER_2 0x47 // 0-127, LSB | |||
| #define MIDI_CONTROL_SOUND_CONTROLLER_3 0x48 // 0-127, LSB | |||
| #define MIDI_CONTROL_SOUND_CONTROLLER_4 0x49 // 0-127, LSB | |||
| #define MIDI_CONTROL_SOUND_CONTROLLER_5 0x4A // 0-127, LSB | |||
| #define MIDI_CONTROL_SOUND_CONTROLLER_6 0x4B // 0-127, LSB | |||
| #define MIDI_CONTROL_SOUND_CONTROLLER_7 0x4C // 0-127, LSB | |||
| #define MIDI_CONTROL_SOUND_CONTROLLER_8 0x4D // 0-127, LSB | |||
| #define MIDI_CONTROL_SOUND_CONTROLLER_9 0x4E // 0-127, LSB | |||
| #define MIDI_CONTROL_SOUND_CONTROLLER_10 0x4F // 0-127, LSB | |||
| #define MIDI_CONTROL_GENERAL_PURPOSE_CONTROLLER_5 0x50 // 0-127, LSB | |||
| #define MIDI_CONTROL_GENERAL_PURPOSE_CONTROLLER_6 0x51 // 0-127, LSB | |||
| #define MIDI_CONTROL_GENERAL_PURPOSE_CONTROLLER_7 0x52 // 0-127, LSB | |||
| #define MIDI_CONTROL_GENERAL_PURPOSE_CONTROLLER_8 0x53 // 0-127, LSB | |||
| #define MIDI_CONTROL_PORTAMENTO_CONTROL 0x54 // 0-127, LSB | |||
| #define MIDI_CONTROL_HIGH_RESOLUTION_VELOCITY_PREFIX 0x58 // 0-127, LSB | |||
| #define MIDI_CONTROL_EFFECTS_1_DEPTH 0x5B // 0-127 | |||
| #define MIDI_CONTROL_EFFECTS_2_DEPTH 0x5C // 0-127 | |||
| #define MIDI_CONTROL_EFFECTS_3_DEPTH 0x5D // 0-127 | |||
| #define MIDI_CONTROL_EFFECTS_4_DEPTH 0x5E // 0-127 | |||
| #define MIDI_CONTROL_EFFECTS_5_DEPTH 0x5F // 0-127 | |||
| #define MIDI_CONTROL_ALL_SOUND_OFF 0x78 // 0 | |||
| #define MIDI_CONTROL_RESET_ALL_CONTROLLERS 0x79 // 0 | |||
| #define MIDI_CONTROL_LOCAL_CONTROL 0x7A // 0 off, 127 on | |||
| #define MIDI_CONTROL_ALL_NOTES_OFF 0x7B // 0 | |||
| #define MIDI_CONTROL_OMNI_MODE_OFF 0x7C // 0 (+ all notes off) | |||
| #define MIDI_CONTROL_OMNI_MODE_ON 0x7D // 0 (+ all notes off) | |||
| #define MIDI_CONTROL_MONO_MODE_ON 0x7E // ... | |||
| #define MIDI_CONTROL_POLY_MODE_ON 0x7F // 0 ( + mono off, + all notes off) | |||
| #define MIDI_CONTROL_SOUND_VARIATION MIDI_CONTROL_SOUND_CONTROLLER_1 | |||
| #define MIDI_CONTROL_TIMBRE MIDI_CONTROL_SOUND_CONTROLLER_2 | |||
| #define MIDI_CONTROL_RELEASE_TIME MIDI_CONTROL_SOUND_CONTROLLER_3 | |||
| #define MIDI_CONTROL_ATTACK_TIME MIDI_CONTROL_SOUND_CONTROLLER_4 | |||
| #define MIDI_CONTROL_BRIGHTNESS MIDI_CONTROL_SOUND_CONTROLLER_5 | |||
| #define MIDI_CONTROL_DECAY_TIME MIDI_CONTROL_SOUND_CONTROLLER_6 | |||
| #define MIDI_CONTROL_VIBRATO_RATE MIDI_CONTROL_SOUND_CONTROLLER_7 | |||
| #define MIDI_CONTROL_VIBRATO_DEPTH MIDI_CONTROL_SOUND_CONTROLLER_8 | |||
| #define MIDI_CONTROL_VIBRATO_DELAY MIDI_CONTROL_SOUND_CONTROLLER_9 | |||
| #define MIDI_CONTROL_REVERB_SEND_LEVEL MIDI_CONTROL_EFFECTS_1_DEPTH | |||
| #define MIDI_CONTROL_TREMOLO_DEPTH MIDI_CONTROL_EFFECTS_2_DEPTH | |||
| #define MIDI_CONTROL_CHORUS_SEND_LEVEL MIDI_CONTROL_EFFECTS_3_DEPTH | |||
| #define MIDI_CONTROL_DETUNE_DEPTH MIDI_CONTROL_EFFECTS_4_DEPTH | |||
| #define MIDI_CONTROL_PHASER_DEPTH MIDI_CONTROL_EFFECTS_5_DEPTH | |||
| #define MIDI_IS_CONTROL_BANK_SELECT(control) ((control) == MIDI_CONTROL_BANK_SELECT || (control) == MIDI_CONTROL_BANK_SELECT__LSB) | |||
| #define MIDI_IS_CONTROL_MODULATION_WHEEL(control) ((control) == MIDI_CONTROL_MODULATION_WHEEL || (control) == MIDI_CONTROL_MODULATION_WHEEL__LSB) | |||
| #define MIDI_IS_CONTROL_BREATH_CONTROLLER(control) ((control) == MIDI_CONTROL_BREATH_CONTROLLER || (control) == MIDI_CONTROL_BREATH_CONTROLLER__LSB) | |||
| #define MIDI_IS_CONTROL_FOOT_CONTROLLER(control) ((control) == MIDI_CONTROL_FOOT_CONTROLLER || (control) == MIDI_CONTROL_FOOT_CONTROLLER__LSB) | |||
| #define MIDI_IS_CONTROL_PORTAMENTO_TIME(control) ((control) == MIDI_CONTROL_PORTAMENTO_TIME || (control) == MIDI_CONTROL_PORTAMENTO_TIME__LSB) | |||
| #define MIDI_IS_CONTROL_DATA_ENTRY(control) ((control) == MIDI_CONTROL_DATA_ENTRY || (control) == MIDI_CONTROL_DATA_ENTRY__LSB) | |||
| #define MIDI_IS_CONTROL_CHANNEL_VOLUME(control) ((control) == MIDI_CONTROL_CHANNEL_VOLUME || (control) == MIDI_CONTROL_CHANNEL_VOLUME__LSB) | |||
| #define MIDI_IS_CONTROL_BALANCE(control) ((control) == MIDI_CONTROL_BALANCE || (control) == MIDI_CONTROL_BALANCE__LSB) | |||
| #define MIDI_IS_CONTROL_PAN(control) ((control) == MIDI_CONTROL_PAN || (control) == MIDI_CONTROL_PAN__LSB) | |||
| #define MIDI_IS_CONTROL_EXPRESSION_CONTROLLER(control) ((control) == MIDI_CONTROL_EXPRESSION_CONTROLLER || (control) == MIDI_CONTROL_EXPRESSION_CONTROLLER__LSB) | |||
| #define MIDI_IS_CONTROL_EFFECT_CONTROL_1(control) ((control) == MIDI_CONTROL_EFFECT_CONTROL_1 || (control) == MIDI_CONTROL_EFFECT_CONTROL_1__LSB) | |||
| #define MIDI_IS_CONTROL_EFFECT_CONTROL_2(control) ((control) == MIDI_CONTROL_EFFECT_CONTROL_2 || (control) == MIDI_CONTROL_EFFECT_CONTROL_2__LSB) | |||
| #endif // __CARLA_MIDI_H__ | |||
| @@ -1,192 +0,0 @@ | |||
| /* | |||
| * Custom types to store LADSPA-RDF information | |||
| * Copyright (C) 2011-2013 Filipe Coelho <falktx@falktx.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 GPL.txt file | |||
| */ | |||
| #ifndef LADSPA_RDF_INCLUDED | |||
| #define LADSPA_RDF_INCLUDED | |||
| // Base Types | |||
| typedef float LADSPA_Data; | |||
| typedef int LADSPA_Property; | |||
| typedef unsigned long long LADSPA_PluginType; | |||
| // Unit Types | |||
| #define LADSPA_UNIT_DB 0x01 | |||
| #define LADSPA_UNIT_COEF 0x02 | |||
| #define LADSPA_UNIT_HZ 0x04 | |||
| #define LADSPA_UNIT_S 0x08 | |||
| #define LADSPA_UNIT_MS 0x10 | |||
| #define LADSPA_UNIT_MIN 0x20 | |||
| #define LADSPA_UNIT_CLASS_AMPLITUDE (LADSPA_UNIT_DB|LADSPA_UNIT_COEF) | |||
| #define LADSPA_UNIT_CLASS_FREQUENCY (LADSPA_UNIT_HZ) | |||
| #define LADSPA_UNIT_CLASS_TIME (LADSPA_UNIT_S|LADSPA_UNIT_MS|LADSPA_UNIT_MIN) | |||
| #define LADSPA_IS_UNIT_DB(x) ((x) == LADSPA_UNIT_DB) | |||
| #define LADSPA_IS_UNIT_COEF(x) ((x) == LADSPA_UNIT_COEF) | |||
| #define LADSPA_IS_UNIT_HZ(x) ((x) == LADSPA_UNIT_HZ) | |||
| #define LADSPA_IS_UNIT_S(x) ((x) == LADSPA_UNIT_S) | |||
| #define LADSPA_IS_UNIT_MS(x) ((x) == LADSPA_UNIT_MS) | |||
| #define LADSPA_IS_UNIT_MIN(x) ((x) == LADSPA_UNIT_MIN) | |||
| #define LADSPA_IS_UNIT_CLASS_AMPLITUDE(x) ((x) & LADSPA_UNIT_CLASS_AMPLITUDE) | |||
| #define LADSPA_IS_UNIT_CLASS_FREQUENCY(x) ((x) & LADSPA_UNIT_CLASS_FREQUENCY) | |||
| #define LADSPA_IS_UNIT_CLASS_TIME(x) ((x) & LADSPA_UNIT_CLASS_TIME) | |||
| // Port Types (Official API) | |||
| #define LADSPA_PORT_INPUT 0x1 | |||
| #define LADSPA_PORT_OUTPUT 0x2 | |||
| #define LADSPA_PORT_CONTROL 0x4 | |||
| #define LADSPA_PORT_AUDIO 0x8 | |||
| // Port Hints | |||
| #define LADSPA_PORT_UNIT 0x1 | |||
| #define LADSPA_PORT_DEFAULT 0x2 | |||
| #define LADSPA_PORT_LABEL 0x4 | |||
| #define LADSPA_PORT_HAS_UNIT(x) ((x) & LADSPA_PORT_UNIT) | |||
| #define LADSPA_PORT_HAS_DEFAULT(x) ((x) & LADSPA_PORT_DEFAULT) | |||
| #define LADSPA_PORT_HAS_LABEL(x) ((x) & LADSPA_PORT_LABEL) | |||
| // Plugin Types | |||
| #define LADSPA_PLUGIN_UTILITY 0x000000001LL | |||
| #define LADSPA_PLUGIN_GENERATOR 0x000000002LL | |||
| #define LADSPA_PLUGIN_SIMULATOR 0x000000004LL | |||
| #define LADSPA_PLUGIN_OSCILLATOR 0x000000008LL | |||
| #define LADSPA_PLUGIN_TIME 0x000000010LL | |||
| #define LADSPA_PLUGIN_DELAY 0x000000020LL | |||
| #define LADSPA_PLUGIN_PHASER 0x000000040LL | |||
| #define LADSPA_PLUGIN_FLANGER 0x000000080LL | |||
| #define LADSPA_PLUGIN_CHORUS 0x000000100LL | |||
| #define LADSPA_PLUGIN_REVERB 0x000000200LL | |||
| #define LADSPA_PLUGIN_FREQUENCY 0x000000400LL | |||
| #define LADSPA_PLUGIN_FREQUENCY_METER 0x000000800LL | |||
| #define LADSPA_PLUGIN_FILTER 0x000001000LL | |||
| #define LADSPA_PLUGIN_LOWPASS 0x000002000LL | |||
| #define LADSPA_PLUGIN_HIGHPASS 0x000004000LL | |||
| #define LADSPA_PLUGIN_BANDPASS 0x000008000LL | |||
| #define LADSPA_PLUGIN_COMB 0x000010000LL | |||
| #define LADSPA_PLUGIN_ALLPASS 0x000020000LL | |||
| #define LADSPA_PLUGIN_EQ 0x000040000LL | |||
| #define LADSPA_PLUGIN_PARAEQ 0x000080000LL | |||
| #define LADSPA_PLUGIN_MULTIEQ 0x000100000LL | |||
| #define LADSPA_PLUGIN_AMPLITUDE 0x000200000LL | |||
| #define LADSPA_PLUGIN_PITCH 0x000400000LL | |||
| #define LADSPA_PLUGIN_AMPLIFIER 0x000800000LL | |||
| #define LADSPA_PLUGIN_WAVESHAPER 0x001000000LL | |||
| #define LADSPA_PLUGIN_MODULATOR 0x002000000LL | |||
| #define LADSPA_PLUGIN_DISTORTION 0x004000000LL | |||
| #define LADSPA_PLUGIN_DYNAMICS 0x008000000LL | |||
| #define LADSPA_PLUGIN_COMPRESSOR 0x010000000LL | |||
| #define LADSPA_PLUGIN_EXPANDER 0x020000000LL | |||
| #define LADSPA_PLUGIN_LIMITER 0x040000000LL | |||
| #define LADSPA_PLUGIN_GATE 0x080000000LL | |||
| #define LADSPA_PLUGIN_SPECTRAL 0x100000000LL | |||
| #define LADSPA_PLUGIN_NOTCH 0x200000000LL | |||
| #define LADSPA_GROUP_DYNAMICS (LADSPA_PLUGIN_DYNAMICS|LADSPA_PLUGIN_COMPRESSOR|LADSPA_PLUGIN_EXPANDER|LADSPA_PLUGIN_LIMITER|LADSPA_PLUGIN_GATE) | |||
| #define LADSPA_GROUP_AMPLITUDE (LADSPA_PLUGIN_AMPLITUDE|LADSPA_PLUGIN_AMPLIFIER|LADSPA_PLUGIN_WAVESHAPER|LADSPA_PLUGIN_MODULATOR|LADSPA_PLUGIN_DISTORTION|LADSPA_GROUP_DYNAMICS) | |||
| #define LADSPA_GROUP_EQ (LADSPA_PLUGIN_EQ|LADSPA_PLUGIN_PARAEQ|LADSPA_PLUGIN_MULTIEQ) | |||
| #define LADSPA_GROUP_FILTER (LADSPA_PLUGIN_FILTER|LADSPA_PLUGIN_LOWPASS|LADSPA_PLUGIN_HIGHPASS|LADSPA_PLUGIN_BANDPASS|LADSPA_PLUGIN_COMB|LADSPA_PLUGIN_ALLPASS|LADSPA_PLUGIN_NOTCH) | |||
| #define LADSPA_GROUP_FREQUENCY (LADSPA_PLUGIN_FREQUENCY|LADSPA_PLUGIN_FREQUENCY_METER|LADSPA_GROUP_FILTER|LADSPA_GROUP_EQ|LADSPA_PLUGIN_PITCH) | |||
| #define LADSPA_GROUP_SIMULATOR (LADSPA_PLUGIN_SIMULATOR|LADSPA_PLUGIN_REVERB) | |||
| #define LADSPA_GROUP_TIME (LADSPA_PLUGIN_TIME|LADSPA_PLUGIN_DELAY|LADSPA_PLUGIN_PHASER|LADSPA_PLUGIN_FLANGER|LADSPA_PLUGIN_CHORUS|LADSPA_PLUGIN_REVERB) | |||
| #define LADSPA_GROUP_GENERATOR (LADSPA_PLUGIN_GENERATOR|LADSPA_PLUGIN_OSCILLATOR) | |||
| #define LADSPA_IS_PLUGIN_DYNAMICS(x) ((x) & LADSPA_GROUP_DYNAMICS) | |||
| #define LADSPA_IS_PLUGIN_AMPLITUDE(x) ((x) & LADSPA_GROUP_AMPLITUDE) | |||
| #define LADSPA_IS_PLUGIN_EQ(x) ((x) & LADSPA_GROUP_EQ) | |||
| #define LADSPA_IS_PLUGIN_FILTER(x) ((x) & LADSPA_GROUP_FILTER) | |||
| #define LADSPA_IS_PLUGIN_FREQUENCY(x) ((x) & LADSPA_GROUP_FREQUENCY) | |||
| #define LADSPA_IS_PLUGIN_SIMULATOR(x) ((x) & LADSPA_GROUP_SIMULATOR) | |||
| #define LADSPA_IS_PLUGIN_TIME(x) ((x) & LADSPA_GROUP_TIME) | |||
| #define LADSPA_IS_PLUGIN_GENERATOR(x) ((x) & LADSPA_GROUP_GENERATOR) | |||
| // Scale Point | |||
| struct LADSPA_RDF_ScalePoint { | |||
| LADSPA_Data Value; | |||
| const char* Label; | |||
| LADSPA_RDF_ScalePoint() | |||
| : Value(0.0f), | |||
| Label(nullptr) {} | |||
| ~LADSPA_RDF_ScalePoint() | |||
| { | |||
| if (Label != nullptr) | |||
| delete[] Label; | |||
| } | |||
| }; | |||
| // Port | |||
| struct LADSPA_RDF_Port { | |||
| LADSPA_Property Type; | |||
| LADSPA_Property Hints; | |||
| const char* Label; | |||
| LADSPA_Data Default; | |||
| LADSPA_Property Unit; | |||
| unsigned long ScalePointCount; | |||
| LADSPA_RDF_ScalePoint* ScalePoints; | |||
| LADSPA_RDF_Port() | |||
| : Type(0x0), | |||
| Hints(0x0), | |||
| Label(nullptr), | |||
| Default(0.0f), | |||
| Unit(0), | |||
| ScalePointCount(0), | |||
| ScalePoints(nullptr) {} | |||
| ~LADSPA_RDF_Port() | |||
| { | |||
| if (Label != nullptr) | |||
| delete[] Label; | |||
| if (ScalePoints != nullptr) | |||
| delete[] ScalePoints; | |||
| } | |||
| }; | |||
| // Plugin | |||
| struct LADSPA_RDF_Descriptor { | |||
| LADSPA_PluginType Type; | |||
| unsigned long UniqueID; | |||
| const char* Title; | |||
| const char* Creator; | |||
| unsigned long PortCount; | |||
| LADSPA_RDF_Port* Ports; | |||
| LADSPA_RDF_Descriptor() | |||
| : Type(0x0), | |||
| UniqueID(0), | |||
| Title(nullptr), | |||
| Creator(nullptr), | |||
| PortCount(0), | |||
| Ports(nullptr) {} | |||
| ~LADSPA_RDF_Descriptor() | |||
| { | |||
| if (Title != nullptr) | |||
| delete[] Title; | |||
| if (Creator != nullptr) | |||
| delete[] Creator; | |||
| if (Ports != nullptr) | |||
| delete[] Ports; | |||
| } | |||
| }; | |||
| #endif // LADSPA_RDF_INCLUDED | |||
| @@ -1,550 +0,0 @@ | |||
| /* | |||
| * Custom types to store LV2 information | |||
| * Copyright (C) 2011-2013 Filipe Coelho <falktx@falktx.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 GPL.txt file | |||
| */ | |||
| #ifndef LV2_RDF_INCLUDED | |||
| #define LV2_RDF_INCLUDED | |||
| #include <cstdint> | |||
| // Base Types | |||
| typedef const char* LV2_URI; | |||
| typedef uint32_t LV2_Property; | |||
| struct LV2_Type { | |||
| LV2_Property Value; | |||
| LV2_URI URI; | |||
| LV2_Type() | |||
| : Value(0), | |||
| URI(nullptr) {} | |||
| ~LV2_Type() | |||
| { | |||
| if (URI != nullptr) | |||
| delete[] URI; | |||
| } | |||
| }; | |||
| // 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 Hints | |||
| #define LV2_PORT_UNIT_NAME 0x1 | |||
| #define LV2_PORT_UNIT_RENDER 0x2 | |||
| #define LV2_PORT_UNIT_SYMBOL 0x4 | |||
| #define LV2_PORT_UNIT_UNIT 0x8 | |||
| #define LV2_HAVE_PORT_UNIT_NAME(x) ((x) & LV2_PORT_UNIT_NAME) | |||
| #define LV2_HAVE_PORT_UNIT_RENDER(x) ((x) & LV2_PORT_UNIT_RENDER) | |||
| #define LV2_HAVE_PORT_UNIT_SYMBOL(x) ((x) & LV2_PORT_UNIT_SYMBOL) | |||
| #define LV2_HAVE_PORT_UNIT_UNIT(x) ((x) & LV2_PORT_UNIT_UNIT) | |||
| // Port Unit Unit | |||
| #define LV2_PORT_UNIT_BAR 0x01 | |||
| #define LV2_PORT_UNIT_BEAT 0x02 | |||
| #define LV2_PORT_UNIT_BPM 0x03 | |||
| #define LV2_PORT_UNIT_CENT 0x04 | |||
| #define LV2_PORT_UNIT_CM 0x05 | |||
| #define LV2_PORT_UNIT_COEF 0x06 | |||
| #define LV2_PORT_UNIT_DB 0x07 | |||
| #define LV2_PORT_UNIT_DEGREE 0x08 | |||
| #define LV2_PORT_UNIT_FRAME 0x09 | |||
| #define LV2_PORT_UNIT_HZ 0x0A | |||
| #define LV2_PORT_UNIT_INCH 0x0B | |||
| #define LV2_PORT_UNIT_KHZ 0x0C | |||
| #define LV2_PORT_UNIT_KM 0x0D | |||
| #define LV2_PORT_UNIT_M 0x0E | |||
| #define LV2_PORT_UNIT_MHZ 0x0F | |||
| #define LV2_PORT_UNIT_MIDINOTE 0x10 | |||
| #define LV2_PORT_UNIT_MILE 0x11 | |||
| #define LV2_PORT_UNIT_MIN 0x12 | |||
| #define LV2_PORT_UNIT_MM 0x13 | |||
| #define LV2_PORT_UNIT_MS 0x14 | |||
| #define LV2_PORT_UNIT_OCT 0x15 | |||
| #define LV2_PORT_UNIT_PC 0x16 | |||
| #define LV2_PORT_UNIT_S 0x17 | |||
| #define LV2_PORT_UNIT_SEMITONE 0x18 | |||
| #define LV2_IS_PORT_UNIT_BAR(x) ((x) == LV2_PORT_UNIT_BAR) | |||
| #define LV2_IS_PORT_UNIT_BEAT(x) ((x) == LV2_PORT_UNIT_BEAT) | |||
| #define LV2_IS_PORT_UNIT_BPM(x) ((x) == LV2_PORT_UNIT_BPM) | |||
| #define LV2_IS_PORT_UNIT_CENT(x) ((x) == LV2_PORT_UNIT_CENT) | |||
| #define LV2_IS_PORT_UNIT_CM(x) ((x) == LV2_PORT_UNIT_CM) | |||
| #define LV2_IS_PORT_UNIT_COEF(x) ((x) == LV2_PORT_UNIT_COEF) | |||
| #define LV2_IS_PORT_UNIT_DB(x) ((x) == LV2_PORT_UNIT_DB) | |||
| #define LV2_IS_PORT_UNIT_DEGREE(x) ((x) == LV2_PORT_UNIT_DEGREE) | |||
| #define LV2_IS_PORT_UNIT_FRAME(x) ((x) == LV2_PORT_UNIT_FRAME) | |||
| #define LV2_IS_PORT_UNIT_HZ(x) ((x) == LV2_PORT_UNIT_HZ) | |||
| #define LV2_IS_PORT_UNIT_INCH(x) ((x) == LV2_PORT_UNIT_INCH) | |||
| #define LV2_IS_PORT_UNIT_KHZ(x) ((x) == LV2_PORT_UNIT_KHZ) | |||
| #define LV2_IS_PORT_UNIT_KM(x) ((x) == LV2_PORT_UNIT_KM) | |||
| #define LV2_IS_PORT_UNIT_M(x) ((x) == LV2_PORT_UNIT_M) | |||
| #define LV2_IS_PORT_UNIT_MHZ(x) ((x) == LV2_PORT_UNIT_MHZ) | |||
| #define LV2_IS_PORT_UNIT_MIDINOTE(x) ((x) == LV2_PORT_UNIT_MIDINOTE) | |||
| #define LV2_IS_PORT_UNIT_MILE(x) ((x) == LV2_PORT_UNIT_MILE) | |||
| #define LV2_IS_PORT_UNIT_MIN(x) ((x) == LV2_PORT_UNIT_MIN) | |||
| #define LV2_IS_PORT_UNIT_MM(x) ((x) == LV2_PORT_UNIT_MM) | |||
| #define LV2_IS_PORT_UNIT_MS(x) ((x) == LV2_PORT_UNIT_MS) | |||
| #define LV2_IS_PORT_UNIT_OCT(x) ((x) == LV2_PORT_UNIT_OCT) | |||
| #define LV2_IS_PORT_UNIT_PC(x) ((x) == LV2_PORT_UNIT_PC) | |||
| #define LV2_IS_PORT_UNIT_S(x) ((x) == LV2_PORT_UNIT_S) | |||
| #define LV2_IS_PORT_UNIT_SEMITONE(x) ((x) == LV2_PORT_UNIT_SEMITONE) | |||
| // Port Types | |||
| #define LV2_PORT_INPUT 0x001 | |||
| #define LV2_PORT_OUTPUT 0x002 | |||
| #define LV2_PORT_CONTROL 0x004 | |||
| #define LV2_PORT_AUDIO 0x008 | |||
| #define LV2_PORT_CV 0x010 | |||
| #define LV2_PORT_ATOM 0x020 | |||
| #define LV2_PORT_ATOM_SEQUENCE (0x040 | LV2_PORT_ATOM) | |||
| #define LV2_PORT_ATOM_URID (0x080 | LV2_PORT_ATOM) | |||
| #define LV2_PORT_EVENT 0x100 | |||
| #define LV2_PORT_MIDI_LL 0x200 | |||
| // Port Data Types | |||
| #define LV2_PORT_DATA_MIDI_EVENT 0x1000 | |||
| #define LV2_PORT_DATA_OBJECT 0x2000 | |||
| #define LV2_PORT_DATA_PATCH_MESSAGE 0x4000 | |||
| #define LV2_PORT_DATA_TIME 0x8000 | |||
| #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) | |||
| #define LV2_PORT_SUPPORTS_MIDI_EVENT(x) ((x) & LV2_PORT_DATA_MIDI_EVENT) | |||
| #define LV2_PORT_SUPPORTS_PATCH_MESSAGE(x) ((x) & LV2_PORT_DATA_PATCH_MESSAGE) | |||
| // 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_SPEED) | |||
| // 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_QT5 0x4 | |||
| #define LV2_UI_COCOA 0x5 | |||
| #define LV2_UI_WINDOWS 0x6 | |||
| #define LV2_UI_X11 0x7 | |||
| #define LV2_UI_EXTERNAL 0x8 | |||
| #define LV2_UI_OLD_EXTERNAL 0x9 | |||
| #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_QT5(x) ((x) == LV2_UI_QT5) | |||
| #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_PLUGIN_DELAY 0x000001 | |||
| #define LV2_PLUGIN_REVERB 0x000002 | |||
| #define LV2_PLUGIN_SIMULATOR 0x000004 | |||
| #define LV2_PLUGIN_DISTORTION 0x000008 | |||
| #define LV2_PLUGIN_WAVESHAPER 0x000010 | |||
| #define LV2_PLUGIN_DYNAMICS 0x000020 | |||
| #define LV2_PLUGIN_AMPLIFIER 0x000040 | |||
| #define LV2_PLUGIN_COMPRESSOR 0x000080 | |||
| #define LV2_PLUGIN_ENVELOPE 0x000100 | |||
| #define LV2_PLUGIN_EXPANDER 0x000200 | |||
| #define LV2_PLUGIN_GATE 0x000400 | |||
| #define LV2_PLUGIN_LIMITER 0x000800 | |||
| #define LV2_PLUGIN_EQ 0x001000 | |||
| #define LV2_PLUGIN_MULTI_EQ 0x002000 | |||
| #define LV2_PLUGIN_PARA_EQ 0x004000 | |||
| #define LV2_PLUGIN_FILTER 0x008000 | |||
| #define LV2_PLUGIN_ALLPASS 0x010000 | |||
| #define LV2_PLUGIN_BANDPASS 0x020000 | |||
| #define LV2_PLUGIN_COMB 0x040000 | |||
| #define LV2_PLUGIN_HIGHPASS 0x080000 | |||
| #define LV2_PLUGIN_LOWPASS 0x100000 | |||
| #define LV2_PLUGIN_GENERATOR 0x000001 | |||
| #define LV2_PLUGIN_CONSTANT 0x000002 | |||
| #define LV2_PLUGIN_INSTRUMENT 0x000004 | |||
| #define LV2_PLUGIN_OSCILLATOR 0x000008 | |||
| #define LV2_PLUGIN_MODULATOR 0x000010 | |||
| #define LV2_PLUGIN_CHORUS 0x000020 | |||
| #define LV2_PLUGIN_FLANGER 0x000040 | |||
| #define LV2_PLUGIN_PHASER 0x000080 | |||
| #define LV2_PLUGIN_SPATIAL 0x000100 | |||
| #define LV2_PLUGIN_SPECTRAL 0x000200 | |||
| #define LV2_PLUGIN_PITCH 0x000400 | |||
| #define LV2_PLUGIN_UTILITY 0x000800 | |||
| #define LV2_PLUGIN_ANALYSER 0x001000 | |||
| #define LV2_PLUGIN_CONVERTER 0x002000 | |||
| #define LV2_PLUGIN_FUNCTION 0x008000 | |||
| #define LV2_PLUGIN_MIXER 0x010000 | |||
| #define LV2_GROUP_DELAY (LV2_PLUGIN_DELAY|LV2_PLUGIN_REVERB) | |||
| #define LV2_GROUP_DISTORTION (LV2_PLUGIN_DISTORTION|LV2_PLUGIN_WAVESHAPER) | |||
| #define LV2_GROUP_DYNAMICS (LV2_PLUGIN_DYNAMICS|LV2_PLUGIN_AMPLIFIER|LV2_PLUGIN_COMPRESSOR|LV2_PLUGIN_ENVELOPE|LV2_PLUGIN_EXPANDER|LV2_PLUGIN_GATE|LV2_PLUGIN_LIMITER) | |||
| #define LV2_GROUP_EQ (LV2_PLUGIN_EQ|LV2_PLUGIN_MULTI_EQ|LV2_PLUGIN_PARA_EQ) | |||
| #define LV2_GROUP_FILTER (LV2_PLUGIN_FILTER|LV2_PLUGIN_ALLPASS|LV2_PLUGIN_BANDPASS|LV2_PLUGIN_COMB|LV2_GROUP_EQ|LV2_PLUGIN_HIGHPASS|LV2_PLUGIN_LOWPASS) | |||
| #define LV2_GROUP_GENERATOR (LV2_PLUGIN_GENERATOR|LV2_PLUGIN_CONSTANT|LV2_PLUGIN_INSTRUMENT|LV2_PLUGIN_OSCILLATOR) | |||
| #define LV2_GROUP_MODULATOR (LV2_PLUGIN_MODULATOR|LV2_PLUGIN_CHORUS|LV2_PLUGIN_FLANGER|LV2_PLUGIN_PHASER) | |||
| #define LV2_GROUP_REVERB (LV2_PLUGIN_REVERB) | |||
| #define LV2_GROUP_SIMULATOR (LV2_PLUGIN_SIMULATOR|LV2_PLUGIN_REVERB) | |||
| #define LV2_GROUP_SPATIAL (LV2_PLUGIN_SPATIAL) | |||
| #define LV2_GROUP_SPECTRAL (LV2_PLUGIN_SPECTRAL|LV2_PLUGIN_PITCH) | |||
| #define LV2_GROUP_UTILITY (LV2_PLUGIN_UTILITY|LV2_PLUGIN_ANALYSER|LV2_PLUGIN_CONVERTER|LV2_PLUGIN_FUNCTION|LV2_PLUGIN_MIXER) | |||
| #define LV2_IS_DELAY(x, y) (((x) & LV2_GROUP_DELAY) || ((y) & LV2_GROUP_DELAY)) | |||
| #define LV2_IS_DISTORTION(x, y) (((x) & LV2_GROUP_DISTORTION) || ((y) & LV2_GROUP_DISTORTION)) | |||
| #define LV2_IS_DYNAMICS(x, y) (((x) & LV2_GROUP_DYNAMICS) || ((y) & LV2_GROUP_DYNAMICS)) | |||
| #define LV2_IS_EQ(x, y) (((x) & LV2_GROUP_EQ) || ((y) & LV2_GROUP_EQ)) | |||
| #define LV2_IS_FILTER(x, y) (((x) & LV2_GROUP_FILTER) || ((y) & LV2_GROUP_FILTER)) | |||
| #define LV2_IS_GENERATOR(x, y) (((x) & LV2_GROUP_GENERATOR) || ((y) & LV2_GROUP_GENERATOR)) | |||
| #define LV2_IS_MODULATOR(x, y) (((x) & LV2_GROUP_MODULATOR) || ((y) & LV2_GROUP_MODULATOR)) | |||
| #define LV2_IS_REVERB(x, y) (((x) & LV2_GROUP_REVERB) || ((y) & LV2_GROUP_REVERB)) | |||
| #define LV2_IS_SIMULATOR(x, y) (((x) & LV2_GROUP_SIMULATOR) || ((y) & LV2_GROUP_SIMULATOR)) | |||
| #define LV2_IS_SPATIAL(x, y) (((x) & LV2_GROUP_SPATIAL) || ((y) & LV2_GROUP_SPATIAL)) | |||
| #define LV2_IS_SPECTRAL(x, y) (((x) & LV2_GROUP_SPECTRAL) || ((y) & LV2_GROUP_SPECTRAL)) | |||
| #define LV2_IS_UTILITY(x, y) (((x) & LV2_GROUP_UTILITY) || ((y) & 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; | |||
| float Default; | |||
| float Minimum; | |||
| float Maximum; | |||
| LV2_RDF_PortPoints() | |||
| : Hints(0x0), | |||
| Default(0.0f), | |||
| Minimum(0.0f), | |||
| Maximum(1.0f) {} | |||
| }; | |||
| // Port Unit | |||
| struct LV2_RDF_PortUnit { | |||
| LV2_Property Hints; | |||
| const char* Name; | |||
| const char* Render; | |||
| const char* Symbol; | |||
| LV2_Property Unit; | |||
| LV2_RDF_PortUnit() | |||
| : Hints(0x0), | |||
| Name(nullptr), | |||
| Render(nullptr), | |||
| Symbol(nullptr), | |||
| Unit(0) {} | |||
| ~LV2_RDF_PortUnit() | |||
| { | |||
| if (Name != nullptr) | |||
| delete[] Name; | |||
| if (Render != nullptr) | |||
| delete[] Render; | |||
| if (Symbol != nullptr) | |||
| delete[] Symbol; | |||
| } | |||
| }; | |||
| // Port Scale Point | |||
| struct LV2_RDF_PortScalePoint { | |||
| const char* Label; | |||
| float Value; | |||
| LV2_RDF_PortScalePoint() | |||
| : Label(nullptr), | |||
| Value(0.0f) {} | |||
| ~LV2_RDF_PortScalePoint() | |||
| { | |||
| if (Label != nullptr) | |||
| delete[] Label; | |||
| } | |||
| }; | |||
| // Port | |||
| struct LV2_RDF_Port { | |||
| LV2_Property Types; | |||
| 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() | |||
| : Types(0x0), | |||
| Properties(0x0), | |||
| Designation(0), | |||
| Name(nullptr), | |||
| Symbol(nullptr), | |||
| ScalePointCount(0), | |||
| ScalePoints(nullptr) {} | |||
| ~LV2_RDF_Port() | |||
| { | |||
| if (Name != nullptr) | |||
| delete[] Name; | |||
| if (Symbol != nullptr) | |||
| delete[] Symbol; | |||
| if (ScalePoints != nullptr) | |||
| delete[] ScalePoints; | |||
| } | |||
| }; | |||
| // Preset | |||
| struct LV2_RDF_Preset { | |||
| LV2_URI URI; | |||
| const char* Label; | |||
| LV2_RDF_Preset() | |||
| : URI(nullptr), | |||
| Label(nullptr) {} | |||
| ~LV2_RDF_Preset() | |||
| { | |||
| if (URI != nullptr) | |||
| delete[] URI; | |||
| if (Label != nullptr) | |||
| delete[] Label; | |||
| } | |||
| }; | |||
| // Feature | |||
| struct LV2_RDF_Feature { | |||
| LV2_Property Type; | |||
| LV2_URI URI; | |||
| LV2_RDF_Feature() | |||
| : Type(0), | |||
| URI(nullptr) {} | |||
| ~LV2_RDF_Feature() | |||
| { | |||
| if (URI != nullptr) | |||
| delete[] URI; | |||
| } | |||
| }; | |||
| // UI | |||
| struct LV2_RDF_UI { | |||
| LV2_Type 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() | |||
| : URI(nullptr), | |||
| Binary(nullptr), | |||
| Bundle(nullptr), | |||
| FeatureCount(0), | |||
| Features(nullptr), | |||
| ExtensionCount(0), | |||
| Extensions(nullptr) {} | |||
| ~LV2_RDF_UI() | |||
| { | |||
| if (URI != nullptr) | |||
| delete[] URI; | |||
| if (Binary != nullptr) | |||
| delete[] Binary; | |||
| if (Bundle != nullptr) | |||
| delete[] Bundle; | |||
| if (Features != nullptr) | |||
| delete[] Features; | |||
| if (Extensions != nullptr) | |||
| delete[] Extensions; | |||
| } | |||
| }; | |||
| // Plugin | |||
| struct LV2_RDF_Descriptor { | |||
| LV2_Property Type[2]; | |||
| 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{0x0}, | |||
| 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) {} | |||
| ~LV2_RDF_Descriptor() | |||
| { | |||
| if (URI != nullptr) | |||
| delete[] URI; | |||
| if (Name != nullptr) | |||
| delete[] Name; | |||
| if (Author != nullptr) | |||
| delete[] Author; | |||
| if (License != nullptr) | |||
| delete[] License; | |||
| if (Binary != nullptr) | |||
| delete[] Binary; | |||
| if (Bundle != nullptr) | |||
| delete[] Bundle; | |||
| if (Ports != nullptr) | |||
| delete[] Ports; | |||
| if (Presets != nullptr) | |||
| delete[] Presets; | |||
| if (Features != nullptr) | |||
| delete[] Features; | |||
| if (Extensions != nullptr) | |||
| delete[] Extensions; | |||
| if (UIs != nullptr) | |||
| delete[] UIs; | |||
| } | |||
| }; | |||
| #endif // LV2_RDF_INCLUDED | |||
| @@ -19,7 +19,7 @@ | |||
| #define __CARLA_BACKEND_UTILS_HPP__ | |||
| #include "carla_backend.hpp" | |||
| #include "carla_utils.hpp" | |||
| #include "CarlaUtils.hpp" | |||
| CARLA_BACKEND_START_NAMESPACE | |||
| @@ -18,7 +18,7 @@ | |||
| #ifndef __CARLA_UTILS_HPP__ | |||
| #define __CARLA_UTILS_HPP__ | |||
| #include "carla_defines.hpp" | |||
| #include "CarlaDefines.hpp" | |||
| #include <cassert> | |||
| #include <cstdarg> | |||