| @@ -508,9 +508,10 @@ CARLA_EXPORT const EngineDriverDeviceInfo* carla_get_engine_driver_device_info(u | |||
| CARLA_EXPORT unsigned int carla_get_internal_plugin_count(); | |||
| /*! | |||
| * Get information about the internal plugin \a internalPluginId. | |||
| * Get information about an internal plugin. | |||
| * @param index Internal plugin Id | |||
| */ | |||
| CARLA_EXPORT const CarlaNativePluginInfo* carla_get_internal_plugin_info(unsigned int internalPluginId); | |||
| CARLA_EXPORT const CarlaNativePluginInfo* carla_get_internal_plugin_info(unsigned int index); | |||
| #ifdef __cplusplus | |||
| /*! | |||
| @@ -23,7 +23,7 @@ | |||
| // Avoid including extra libs here | |||
| typedef void* lo_address; | |||
| typedef struct _PluginDescriptor PluginDescriptor; | |||
| typedef struct _NativePluginDescriptor NativePluginDescriptor; | |||
| #ifndef LADSPA_RDF_HPP_INCLUDED | |||
| struct LADSPA_RDF_Descriptor; | |||
| #endif | |||
| @@ -852,7 +852,7 @@ public: | |||
| }; | |||
| static size_t getNativePluginCount(); | |||
| static const PluginDescriptor* getNativePluginDescriptor(const size_t index); | |||
| static const NativePluginDescriptor* getNativePluginDescriptor(const size_t index); | |||
| static CarlaPlugin* newNative(const Initializer& init); | |||
| static CarlaPlugin* newBridge(const Initializer& init, const BinaryType btype, const PluginType ptype, const char* const bridgeBinary); | |||
| @@ -120,8 +120,8 @@ public: | |||
| carla_debug("NativePlugin::NativePlugin(%p, %i)", engine, id); | |||
| carla_fill<int32_t>(fCurMidiProgs, MAX_MIDI_CHANNELS, 0); | |||
| carla_zeroStruct< ::MidiEvent>(fMidiEvents, kPluginMaxMidiEvents*2); | |||
| carla_zeroStruct< ::TimeInfo>(fTimeInfo); | |||
| carla_zeroStruct<NativeMidiEvent>(fMidiEvents, kPluginMaxMidiEvents*2); | |||
| carla_zeroStruct<NativeTimeInfo>(fTimeInfo); | |||
| fHost.handle = this; | |||
| fHost.resourceDir = carla_strdup((const char*)engine->getOptions().resourceDir); | |||
| @@ -145,7 +145,7 @@ public: | |||
| carla_debug("NativePlugin::~NativePlugin()"); | |||
| // close UI | |||
| if (fHints & PLUGIN_HAS_GUI) | |||
| if (fHints & PLUGIN_HAS_UI) | |||
| { | |||
| if (fIsUiVisible && fDescriptor != nullptr && fDescriptor->ui_show != nullptr && fHandle != nullptr) | |||
| fDescriptor->ui_show(fHandle, false); | |||
| @@ -230,7 +230,7 @@ public: | |||
| CARLA_SAFE_ASSERT_RETURN(fHandle != nullptr, 0); | |||
| CARLA_SAFE_ASSERT_RETURN(parameterId < pData->param.count, 0); | |||
| if (const Parameter* const param = fDescriptor->get_parameter_info(fHandle, parameterId)) | |||
| if (const NativeParameter* const param = fDescriptor->get_parameter_info(fHandle, parameterId)) | |||
| return param->scalePointCount; | |||
| carla_safe_assert("const Parameter* const param = fDescriptor->get_parameter_info(fHandle, parameterId)", __FILE__, __LINE__); | |||
| @@ -299,9 +299,9 @@ public: | |||
| CARLA_SAFE_ASSERT_RETURN(parameterId < pData->param.count, 0.0f); | |||
| CARLA_SAFE_ASSERT_RETURN(scalePointId < getParameterScalePointCount(parameterId), 0.0f); | |||
| if (const Parameter* const param = fDescriptor->get_parameter_info(fHandle, parameterId)) | |||
| if (const NativeParameter* const param = fDescriptor->get_parameter_info(fHandle, parameterId)) | |||
| { | |||
| const ParameterScalePoint* scalePoint(¶m->scalePoints[scalePointId]); | |||
| const NativeParameterScalePoint* scalePoint(¶m->scalePoints[scalePointId]); | |||
| return scalePoint->value; | |||
| } | |||
| @@ -356,7 +356,7 @@ public: | |||
| CARLA_SAFE_ASSERT_RETURN(fHandle != nullptr,); | |||
| CARLA_SAFE_ASSERT_RETURN(parameterId < pData->param.count,); | |||
| if (const Parameter* const param = fDescriptor->get_parameter_info(fHandle, parameterId)) | |||
| if (const NativeParameter* const param = fDescriptor->get_parameter_info(fHandle, parameterId)) | |||
| { | |||
| if (param->name != nullptr) | |||
| { | |||
| @@ -398,7 +398,7 @@ public: | |||
| CARLA_SAFE_ASSERT_RETURN(fHandle != nullptr,); | |||
| CARLA_SAFE_ASSERT_RETURN(parameterId < pData->param.count,); | |||
| if (const Parameter* const param = fDescriptor->get_parameter_info(fHandle, parameterId)) | |||
| if (const NativeParameter* const param = fDescriptor->get_parameter_info(fHandle, parameterId)) | |||
| { | |||
| if (param->unit != nullptr) | |||
| { | |||
| @@ -420,9 +420,9 @@ public: | |||
| CARLA_SAFE_ASSERT_RETURN(parameterId < pData->param.count,); | |||
| CARLA_SAFE_ASSERT_RETURN(scalePointId < getParameterScalePointCount(parameterId),); | |||
| if (const Parameter* const param = fDescriptor->get_parameter_info(fHandle, parameterId)) | |||
| if (const NativeParameter* const param = fDescriptor->get_parameter_info(fHandle, parameterId)) | |||
| { | |||
| const ParameterScalePoint* scalePoint(¶m->scalePoints[scalePointId]); | |||
| const NativeParameterScalePoint* scalePoint(¶m->scalePoints[scalePointId]); | |||
| if (scalePoint->label != nullptr) | |||
| { | |||
| @@ -889,12 +889,9 @@ public: | |||
| for (j=0; j < params; ++j) | |||
| { | |||
| const ::Parameter* const paramInfo(fDescriptor->get_parameter_info(fHandle, j)); | |||
| const NativeParameter* const paramInfo(fDescriptor->get_parameter_info(fHandle, j)); | |||
| CARLA_ASSERT(paramInfo != nullptr); | |||
| if (paramInfo == nullptr) | |||
| continue; | |||
| CARLA_SAFE_ASSERT_CONTINUE(paramInfo != nullptr); | |||
| pData->param.data[j].index = j; | |||
| pData->param.data[j].rindex = j; | |||
| @@ -1045,8 +1042,10 @@ public: | |||
| // native plugin hints | |||
| if (fDescriptor->hints & ::PLUGIN_IS_RTSAFE) | |||
| fHints |= PLUGIN_IS_RTSAFE; | |||
| if (fDescriptor->hints & ::PLUGIN_HAS_GUI) | |||
| fHints |= PLUGIN_HAS_GUI; | |||
| if (fDescriptor->hints & ::PLUGIN_IS_SYNTH) | |||
| fHints |= PLUGIN_IS_SYNTH; | |||
| if (fDescriptor->hints & ::PLUGIN_HAS_UI) | |||
| fHints |= PLUGIN_HAS_CUSTOM_UI; | |||
| if (fDescriptor->hints & ::PLUGIN_NEEDS_SINGLE_THREAD) | |||
| fHints |= PLUGIN_NEEDS_SINGLE_THREAD; | |||
| if (fDescriptor->hints & ::PLUGIN_NEEDS_FIXED_BUFFERS) | |||
| @@ -1088,7 +1087,7 @@ public: | |||
| // Update data | |||
| for (i=0; i < count; ++i) | |||
| { | |||
| const ::MidiProgram* const mpDesc = fDescriptor->get_midi_program_info(fHandle, i); | |||
| const NativeMidiProgram* const mpDesc(fDescriptor->get_midi_program_info(fHandle, i)); | |||
| CARLA_ASSERT(mpDesc != nullptr); | |||
| CARLA_ASSERT(mpDesc->name != nullptr); | |||
| @@ -1209,7 +1208,7 @@ public: | |||
| } | |||
| fMidiEventCount = 0; | |||
| carla_zeroStruct< ::MidiEvent>(fMidiEvents, kPluginMaxMidiEvents*2); | |||
| carla_zeroStruct<NativeMidiEvent>(fMidiEvents, kPluginMaxMidiEvents*2); | |||
| // -------------------------------------------------------------------------------------------------------- | |||
| // Check if needs reset | |||
| @@ -1348,7 +1347,7 @@ public: | |||
| if (fMidiEventCount > 0) | |||
| { | |||
| carla_zeroStruct< ::MidiEvent>(fMidiEvents, fMidiEventCount); | |||
| carla_zeroStruct<NativeMidiEvent>(fMidiEvents, fMidiEventCount); | |||
| fMidiEventCount = 0; | |||
| } | |||
| } | |||
| @@ -2011,14 +2010,14 @@ protected: | |||
| return pData->engine->isOffline(); | |||
| } | |||
| const ::TimeInfo* handleGetTimeInfo() const | |||
| const NativeTimeInfo* handleGetTimeInfo() const | |||
| { | |||
| CARLA_SAFE_ASSERT_RETURN(fIsProcessing, nullptr); | |||
| return &fTimeInfo; | |||
| } | |||
| bool handleWriteMidiEvent(const ::MidiEvent* const event) | |||
| bool handleWriteMidiEvent(const NativeMidiEvent* const event) | |||
| { | |||
| CARLA_ASSERT(fEnabled); | |||
| CARLA_ASSERT(fIsProcessing); | |||
| @@ -2045,7 +2044,7 @@ protected: | |||
| { | |||
| if (fMidiEvents[i].data[0] == 0) | |||
| { | |||
| std::memcpy(&fMidiEvents[i], event, sizeof(::MidiEvent)); | |||
| std::memcpy(&fMidiEvents[i], event, sizeof(NativeMidiEvent)); | |||
| return true; | |||
| } | |||
| } | |||
| @@ -2091,7 +2090,7 @@ protected: | |||
| return retStr.isNotEmpty() ? (const char*)retStr : nullptr; | |||
| } | |||
| intptr_t handleDispatcher(const ::HostDispatcherOpcode opcode, const int32_t index, const intptr_t value, void* const ptr, const float opt) | |||
| intptr_t handleDispatcher(const NativeHostDispatcherOpcode opcode, const int32_t index, const intptr_t value, void* const ptr, const float opt) | |||
| { | |||
| carla_debug("NativePlugin::handleDispatcher(%i, %i, " P_INTPTR ", %p, %f)", opcode, index, value, ptr, opt); | |||
| @@ -2163,7 +2162,7 @@ public: | |||
| return sPluginDescriptors.count(); | |||
| } | |||
| static const ::PluginDescriptor* getPluginDescriptor(const size_t index) | |||
| static const NativePluginDescriptor* getPluginDescriptor(const size_t index) | |||
| { | |||
| CARLA_ASSERT(index < sPluginDescriptors.count()); | |||
| @@ -2173,7 +2172,7 @@ public: | |||
| return nullptr; | |||
| } | |||
| static void registerPlugin(const ::PluginDescriptor* desc) | |||
| static void registerPlugin(const NativePluginDescriptor* desc) | |||
| { | |||
| sPluginDescriptors.append(desc); | |||
| } | |||
| @@ -2205,7 +2204,7 @@ public: | |||
| // --------------------------------------------------------------- | |||
| // get descriptor that matches label | |||
| for (List<const ::PluginDescriptor*>::Itenerator it = sPluginDescriptors.begin(); it.valid(); it.next()) | |||
| for (List<const NativePluginDescriptor*>::Itenerator it = sPluginDescriptors.begin(); it.valid(); it.next()) | |||
| { | |||
| fDescriptor = *it; | |||
| @@ -2343,83 +2342,83 @@ public: | |||
| }; | |||
| private: | |||
| ::PluginHandle fHandle; | |||
| ::PluginHandle fHandle2; | |||
| ::HostDescriptor fHost; | |||
| const ::PluginDescriptor* fDescriptor; | |||
| NativePluginHandle fHandle; | |||
| NativePluginHandle fHandle2; | |||
| NativeHostDescriptor fHost; | |||
| const NativePluginDescriptor* fDescriptor; | |||
| bool fIsProcessing; | |||
| bool fIsUiVisible; | |||
| float** fAudioInBuffers; | |||
| float** fAudioOutBuffers; | |||
| uint32_t fMidiEventCount; | |||
| ::MidiEvent fMidiEvents[kPluginMaxMidiEvents*2]; | |||
| float** fAudioInBuffers; | |||
| float** fAudioOutBuffers; | |||
| uint32_t fMidiEventCount; | |||
| NativeMidiEvent fMidiEvents[kPluginMaxMidiEvents*2]; | |||
| int32_t fCurMidiProgs[MAX_MIDI_CHANNELS]; | |||
| NativePluginMidiData fMidiIn; | |||
| NativePluginMidiData fMidiOut; | |||
| ::TimeInfo fTimeInfo; | |||
| NativeTimeInfo fTimeInfo; | |||
| static List<const ::PluginDescriptor*> sPluginDescriptors; | |||
| static List<const NativePluginDescriptor*> sPluginDescriptors; | |||
| // ------------------------------------------------------------------- | |||
| #define handlePtr ((NativePlugin*)handle) | |||
| static uint32_t carla_host_get_buffer_size(::HostHandle handle) | |||
| static uint32_t carla_host_get_buffer_size(NativeHostHandle handle) | |||
| { | |||
| return handlePtr->handleGetBufferSize(); | |||
| } | |||
| static double carla_host_get_sample_rate(::HostHandle handle) | |||
| static double carla_host_get_sample_rate(NativeHostHandle handle) | |||
| { | |||
| return handlePtr->handleGetSampleRate(); | |||
| } | |||
| static bool carla_host_is_offline(::HostHandle handle) | |||
| static bool carla_host_is_offline(NativeHostHandle handle) | |||
| { | |||
| return handlePtr->handleIsOffline(); | |||
| } | |||
| static const ::TimeInfo* carla_host_get_time_info(::HostHandle handle) | |||
| static const NativeTimeInfo* carla_host_get_time_info(NativeHostHandle handle) | |||
| { | |||
| return handlePtr->handleGetTimeInfo(); | |||
| } | |||
| static bool carla_host_write_midi_event(::HostHandle handle, const ::MidiEvent* event) | |||
| static bool carla_host_write_midi_event(NativeHostHandle handle, const NativeMidiEvent* event) | |||
| { | |||
| return handlePtr->handleWriteMidiEvent(event); | |||
| } | |||
| static void carla_host_ui_parameter_changed(::HostHandle handle, uint32_t index, float value) | |||
| static void carla_host_ui_parameter_changed(NativeHostHandle handle, uint32_t index, float value) | |||
| { | |||
| handlePtr->handleUiParameterChanged(index, value); | |||
| } | |||
| static void carla_host_ui_custom_data_changed(::HostHandle handle, const char* key, const char* value) | |||
| static void carla_host_ui_custom_data_changed(NativeHostHandle handle, const char* key, const char* value) | |||
| { | |||
| handlePtr->handleUiCustomDataChanged(key, value); | |||
| } | |||
| static void carla_host_ui_closed(::HostHandle handle) | |||
| static void carla_host_ui_closed(NativeHostHandle handle) | |||
| { | |||
| handlePtr->handleUiClosed(); | |||
| } | |||
| static const char* carla_host_ui_open_file(::HostHandle handle, bool isDir, const char* title, const char* filter) | |||
| static const char* carla_host_ui_open_file(NativeHostHandle handle, bool isDir, const char* title, const char* filter) | |||
| { | |||
| return handlePtr->handleUiOpenFile(isDir, title, filter); | |||
| } | |||
| static const char* carla_host_ui_save_file(::HostHandle handle, bool isDir, const char* title, const char* filter) | |||
| static const char* carla_host_ui_save_file(NativeHostHandle handle, bool isDir, const char* title, const char* filter) | |||
| { | |||
| return handlePtr->handleUiSaveFile(isDir, title, filter); | |||
| } | |||
| static intptr_t carla_host_dispatcher(::HostHandle handle, ::HostDispatcherOpcode opcode, int32_t index, intptr_t value, void* ptr, float opt) | |||
| static intptr_t carla_host_dispatcher(NativeHostHandle handle, NativeHostDispatcherOpcode opcode, int32_t index, intptr_t value, void* ptr, float opt) | |||
| { | |||
| return handlePtr->handleDispatcher(opcode, index, value, ptr, opt); | |||
| } | |||
| @@ -2429,13 +2428,13 @@ private: | |||
| CARLA_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(NativePlugin) | |||
| }; | |||
| List<const ::PluginDescriptor*> NativePlugin::sPluginDescriptors; | |||
| List<const NativePluginDescriptor*> NativePlugin::sPluginDescriptors; | |||
| static const NativePlugin::ScopedInitializer _si; | |||
| CARLA_BACKEND_END_NAMESPACE | |||
| void carla_register_native_plugin(const PluginDescriptor* desc) | |||
| void carla_register_native_plugin(const NativePluginDescriptor* desc) | |||
| { | |||
| CARLA_BACKEND_USE_NAMESPACE | |||
| NativePlugin::registerPlugin(desc); | |||
| @@ -2455,7 +2454,7 @@ size_t CarlaPlugin::getNativePluginCount() | |||
| return NativePlugin::getPluginCount(); | |||
| } | |||
| const PluginDescriptor* CarlaPlugin::getNativePluginDescriptor(const size_t index) | |||
| const NativePluginDescriptor* CarlaPlugin::getNativePluginDescriptor(const size_t index) | |||
| { | |||
| return NativePlugin::getPluginDescriptor(index); | |||
| } | |||
| @@ -24,7 +24,7 @@ | |||
| #include "CarlaBackendUtils.hpp" | |||
| //#include "CarlaOscUtils.hpp" | |||
| //#include "CarlaNative.h" | |||
| #include "CarlaNative.h" | |||
| #ifdef USE_JUCE | |||
| # include "juce_gui_basics.h" | |||
| @@ -304,7 +304,6 @@ const EngineDriverDeviceInfo* carla_get_engine_driver_device_info(unsigned int i | |||
| return CarlaEngine::getDriverDeviceInfo(index, name); | |||
| } | |||
| #if 0 | |||
| // ------------------------------------------------------------------------------------------------------------------- | |||
| unsigned int carla_get_internal_plugin_count() | |||
| @@ -318,29 +317,27 @@ unsigned int carla_get_internal_plugin_count() | |||
| #endif | |||
| } | |||
| const CarlaNativePluginInfo* carla_get_internal_plugin_info(unsigned int internalPluginId) | |||
| const CarlaNativePluginInfo* carla_get_internal_plugin_info(unsigned int index) | |||
| { | |||
| carla_debug("carla_get_internal_plugin_info(%i)", internalPluginId); | |||
| carla_debug("carla_get_internal_plugin_info(%i)", index); | |||
| #ifdef WANT_NATIVE | |||
| static CarlaNativePluginInfo info; | |||
| #ifdef WANT_NATIVE | |||
| const PluginDescriptor* const nativePlugin(CarlaPlugin::getNativePluginDescriptor(internalPluginId)); | |||
| const NativePluginDescriptor* const nativePlugin(CarlaPlugin::getNativePluginDescriptor(index)); | |||
| // as internal plugin, this must never fail | |||
| CARLA_SAFE_ASSERT_RETURN(nativePlugin != nullptr, nullptr); | |||
| info.category = static_cast<CarlaPluginCategory>(nativePlugin->category); | |||
| info.category = static_cast<CB::PluginCategory>(nativePlugin->category); | |||
| info.hints = 0x0; | |||
| if (nativePlugin->hints & PLUGIN_IS_RTSAFE) | |||
| if (nativePlugin->hints & ::PLUGIN_IS_RTSAFE) | |||
| info.hints |= CB::PLUGIN_IS_RTSAFE; | |||
| if (nativePlugin->hints & PLUGIN_HAS_GUI) | |||
| info.hints |= CB::PLUGIN_HAS_GUI; | |||
| if (nativePlugin->hints & PLUGIN_NEEDS_SINGLE_THREAD) | |||
| info.hints |= CB::PLUGIN_NEEDS_SINGLE_THREAD; | |||
| if (nativePlugin->hints & PLUGIN_NEEDS_FIXED_BUFFERS) | |||
| info.hints |= CB::PLUGIN_NEEDS_FIXED_BUFFERS; | |||
| if (nativePlugin->hints & ::PLUGIN_IS_SYNTH) | |||
| info.hints |= CB::PLUGIN_IS_SYNTH; | |||
| if (nativePlugin->hints & ::PLUGIN_HAS_UI) | |||
| info.hints |= CB::PLUGIN_HAS_CUSTOM_UI; | |||
| info.audioIns = nativePlugin->audioIns; | |||
| info.audioOuts = nativePlugin->audioOuts; | |||
| @@ -353,17 +350,17 @@ const CarlaNativePluginInfo* carla_get_internal_plugin_info(unsigned int interna | |||
| info.label = nativePlugin->label; | |||
| info.maker = nativePlugin->maker; | |||
| info.copyright = nativePlugin->copyright; | |||
| #endif | |||
| return &info; | |||
| #else | |||
| return nullptr; | |||
| #ifndef WANT_NATIVE | |||
| // unused | |||
| (void)internalPluginId; | |||
| (void)index; | |||
| #endif | |||
| } | |||
| #endif | |||
| #if 0 | |||
| // ------------------------------------------------------------------------------------------------------------------- | |||
| bool carla_engine_init(const char* driverName, const char* clientName) | |||
| @@ -896,6 +893,7 @@ const CarlaTransportInfo* carla_get_transport_info() | |||
| return &info; | |||
| } | |||
| #endif | |||
| #endif | |||
| // ------------------------------------------------------------------------------------------------------------------- | |||
| @@ -33,28 +33,29 @@ extern "C" { | |||
| * @{ | |||
| */ | |||
| typedef void* HostHandle; | |||
| typedef void* PluginHandle; | |||
| typedef void* NativeHostHandle; | |||
| typedef void* NativePluginHandle; | |||
| // ----------------------------------------------------------------------- | |||
| // enums | |||
| typedef enum { | |||
| PLUGIN_CATEGORY_NONE = 0, //!< Null plugin category. | |||
| PLUGIN_CATEGORY_SYNTH = 1, //!< A synthesizer or generator. | |||
| PLUGIN_CATEGORY_DELAY = 2, //!< A delay or reverberator. | |||
| PLUGIN_CATEGORY_EQ = 3, //!< An equalizer. | |||
| PLUGIN_CATEGORY_FILTER = 4, //!< A filter. | |||
| PLUGIN_CATEGORY_DYNAMICS = 5, //!< A 'dynamic' plugin (amplifier, compressor, gate, etc). | |||
| PLUGIN_CATEGORY_MODULATOR = 6, //!< A 'modulator' plugin (chorus, flanger, phaser, etc). | |||
| PLUGIN_CATEGORY_UTILITY = 7, //!< An 'utility' plugin (analyzer, converter, mixer, etc). | |||
| PLUGIN_CATEGORY_OTHER = 8 //!< Misc plugin (used to check if the plugin has a category). | |||
| } PluginCategory; | |||
| PLUGIN_CATEGORY_NONE = 0, //!< Null plugin category. | |||
| PLUGIN_CATEGORY_SYNTH = 1, //!< A synthesizer or generator. | |||
| PLUGIN_CATEGORY_DELAY = 2, //!< A delay or reverberator. | |||
| PLUGIN_CATEGORY_EQ = 3, //!< An equalizer. | |||
| PLUGIN_CATEGORY_FILTER = 4, //!< A filter. | |||
| PLUGIN_CATEGORY_DISTORTION = 5, //!< A distortion plugin. | |||
| PLUGIN_CATEGORY_DYNAMICS = 6, //!< A 'dynamic' plugin (amplifier, compressor, gate, etc). | |||
| PLUGIN_CATEGORY_MODULATOR = 7, //!< A 'modulator' plugin (chorus, flanger, phaser, etc). | |||
| PLUGIN_CATEGORY_UTILITY = 8, //!< An 'utility' plugin (analyzer, converter, mixer, etc). | |||
| PLUGIN_CATEGORY_OTHER = 9 //!< Misc plugin (used to check if the plugin has a category). | |||
| } NativePluginCategory; | |||
| typedef enum { | |||
| PLUGIN_IS_RTSAFE = 1 << 0, | |||
| PLUGIN_IS_SYNTH = 1 << 1, | |||
| PLUGIN_HAS_GUI = 1 << 2, | |||
| PLUGIN_HAS_UI = 1 << 2, | |||
| PLUGIN_NEEDS_FIXED_BUFFERS = 1 << 3, | |||
| PLUGIN_NEEDS_SINGLE_THREAD = 1 << 4, | |||
| PLUGIN_NEEDS_UI_JUCE = 1 << 5, | |||
| @@ -62,7 +63,7 @@ typedef enum { | |||
| PLUGIN_USES_PANNING = 1 << 7, // uses stereo balance if unset (default) | |||
| PLUGIN_USES_STATE = 1 << 8, | |||
| PLUGIN_USES_TIME = 1 << 9 | |||
| } PluginHints; | |||
| } NativePluginHints; | |||
| typedef enum { | |||
| PLUGIN_SUPPORTS_PROGRAM_CHANGES = 1 << 0, // handles MIDI programs internally instead of host-exposed/exported | |||
| @@ -72,7 +73,7 @@ typedef enum { | |||
| PLUGIN_SUPPORTS_PITCHBEND = 1 << 4, | |||
| PLUGIN_SUPPORTS_ALL_SOUND_OFF = 1 << 5, | |||
| PLUGIN_SUPPORTS_EVERYTHING = (1 << 6)-1 | |||
| } PluginSupports; | |||
| } NativePluginSupports; | |||
| typedef enum { | |||
| PARAMETER_IS_OUTPUT = 1 << 0, | |||
| @@ -84,7 +85,7 @@ typedef enum { | |||
| PARAMETER_USES_SAMPLE_RATE = 1 << 6, | |||
| PARAMETER_USES_SCALEPOINTS = 1 << 7, | |||
| PARAMETER_USES_CUSTOM_TEXT = 1 << 8 | |||
| } ParameterHints; | |||
| } NativeParameterHints; | |||
| typedef enum { | |||
| PLUGIN_OPCODE_NULL = 0, // nothing | |||
| @@ -92,7 +93,7 @@ typedef enum { | |||
| PLUGIN_OPCODE_SAMPLE_RATE_CHANGED = 2, // uses opt | |||
| PLUGIN_OPCODE_OFFLINE_CHANGED = 3, // uses value (0=off, 1=on) | |||
| PLUGIN_OPCODE_UI_NAME_CHANGED = 4 // uses ptr | |||
| } PluginDispatcherOpcode; | |||
| } NativePluginDispatcherOpcode; | |||
| typedef enum { | |||
| HOST_OPCODE_NULL = 0, // nothing | |||
| @@ -110,7 +111,7 @@ typedef enum { | |||
| HOST_OPCODE_RELOAD_MIDI_PROGRAMS = 12, // nothing | |||
| HOST_OPCODE_RELOAD_ALL = 13, // nothing | |||
| HOST_OPCODE_UI_UNAVAILABLE = 14 // nothing | |||
| } HostDispatcherOpcode; | |||
| } NativeHostDispatcherOpcode; | |||
| // ----------------------------------------------------------------------- | |||
| // base structs | |||
| @@ -118,7 +119,7 @@ typedef enum { | |||
| typedef struct { | |||
| const char* label; | |||
| float value; | |||
| } ParameterScalePoint; | |||
| } NativeParameterScalePoint; | |||
| typedef struct { | |||
| float def; | |||
| @@ -127,34 +128,34 @@ typedef struct { | |||
| float step; | |||
| float stepSmall; | |||
| float stepLarge; | |||
| } ParameterRanges; | |||
| } NativeParameterRanges; | |||
| #define PARAMETER_RANGES_DEFAULT_STEP 0.01f | |||
| #define PARAMETER_RANGES_DEFAULT_STEP_SMALL 0.0001f | |||
| #define PARAMETER_RANGES_DEFAULT_STEP_LARGE 0.1f | |||
| typedef struct { | |||
| ParameterHints hints; | |||
| NativeParameterHints hints; | |||
| const char* name; | |||
| const char* unit; | |||
| ParameterRanges ranges; | |||
| NativeParameterRanges ranges; | |||
| uint32_t scalePointCount; | |||
| ParameterScalePoint* scalePoints; | |||
| } Parameter; | |||
| NativeParameterScalePoint* scalePoints; | |||
| } NativeParameter; | |||
| typedef struct { | |||
| uint8_t port; | |||
| uint32_t time; | |||
| uint8_t data[4]; | |||
| uint8_t size; | |||
| } MidiEvent; | |||
| } NativeMidiEvent; | |||
| typedef struct { | |||
| uint32_t bank; | |||
| uint32_t program; | |||
| const char* name; | |||
| } MidiProgram; | |||
| } NativeMidiProgram; | |||
| typedef struct { | |||
| bool valid; | |||
| @@ -169,49 +170,49 @@ typedef struct { | |||
| double ticksPerBeat; | |||
| double beatsPerMinute; | |||
| } TimeInfoBBT; | |||
| } NativeTimeInfoBBT; | |||
| typedef struct { | |||
| bool playing; | |||
| uint64_t frame; | |||
| uint64_t usecs; | |||
| TimeInfoBBT bbt; | |||
| } TimeInfo; | |||
| NativeTimeInfoBBT bbt; | |||
| } NativeTimeInfo; | |||
| // ----------------------------------------------------------------------- | |||
| // HostDescriptor | |||
| typedef struct { | |||
| HostHandle handle; | |||
| NativeHostHandle handle; | |||
| const char* resourceDir; | |||
| const char* uiName; | |||
| uint32_t (*get_buffer_size)(HostHandle handle); | |||
| double (*get_sample_rate)(HostHandle handle); | |||
| bool (*is_offline)(HostHandle handle); | |||
| uint32_t (*get_buffer_size)(NativeHostHandle handle); | |||
| double (*get_sample_rate)(NativeHostHandle handle); | |||
| bool (*is_offline)(NativeHostHandle handle); | |||
| const TimeInfo* (*get_time_info)(HostHandle handle); | |||
| bool (*write_midi_event)(HostHandle handle, const MidiEvent* event); | |||
| const NativeTimeInfo* (*get_time_info)(NativeHostHandle handle); | |||
| bool (*write_midi_event)(NativeHostHandle handle, const NativeMidiEvent* event); | |||
| void (*ui_parameter_changed)(HostHandle handle, uint32_t index, float value); | |||
| void (*ui_midi_program_changed)(HostHandle handle, uint8_t channel, uint32_t bank, uint32_t program); | |||
| void (*ui_custom_data_changed)(HostHandle handle, const char* key, const char* value); | |||
| void (*ui_closed)(HostHandle handle); | |||
| void (*ui_parameter_changed)(NativeHostHandle handle, uint32_t index, float value); | |||
| void (*ui_midi_program_changed)(NativeHostHandle handle, uint8_t channel, uint32_t bank, uint32_t program); | |||
| void (*ui_custom_data_changed)(NativeHostHandle handle, const char* key, const char* value); | |||
| void (*ui_closed)(NativeHostHandle handle); | |||
| const char* (*ui_open_file)(HostHandle handle, bool isDir, const char* title, const char* filter); | |||
| const char* (*ui_save_file)(HostHandle handle, bool isDir, const char* title, const char* filter); | |||
| const char* (*ui_open_file)(NativeHostHandle handle, bool isDir, const char* title, const char* filter); | |||
| const char* (*ui_save_file)(NativeHostHandle handle, bool isDir, const char* title, const char* filter); | |||
| intptr_t (*dispatcher)(HostHandle handle, HostDispatcherOpcode opcode, int32_t index, intptr_t value, void* ptr, float opt); | |||
| intptr_t (*dispatcher)(NativeHostHandle handle, NativeHostDispatcherOpcode opcode, int32_t index, intptr_t value, void* ptr, float opt); | |||
| } HostDescriptor; | |||
| } NativeHostDescriptor; | |||
| // ----------------------------------------------------------------------- | |||
| // PluginDescriptor | |||
| typedef struct _PluginDescriptor { | |||
| const PluginCategory category; | |||
| const PluginHints hints; | |||
| const PluginSupports supports; | |||
| typedef struct _NativePluginDescriptor { | |||
| const NativePluginCategory category; | |||
| const NativePluginHints hints; | |||
| const NativePluginSupports supports; | |||
| const uint32_t audioIns; | |||
| const uint32_t audioOuts; | |||
| const uint32_t midiIns; | |||
| @@ -223,44 +224,44 @@ typedef struct _PluginDescriptor { | |||
| const char* const maker; | |||
| const char* const copyright; | |||
| PluginHandle (*instantiate)(const HostDescriptor* host); | |||
| void (*cleanup)(PluginHandle handle); | |||
| NativePluginHandle (*instantiate)(const NativeHostDescriptor* host); | |||
| void (*cleanup)(NativePluginHandle handle); | |||
| uint32_t (*get_parameter_count)(PluginHandle handle); | |||
| const Parameter* (*get_parameter_info)(PluginHandle handle, uint32_t index); | |||
| float (*get_parameter_value)(PluginHandle handle, uint32_t index); | |||
| const char* (*get_parameter_text)(PluginHandle handle, uint32_t index, float value); | |||
| uint32_t (*get_parameter_count)(NativePluginHandle handle); | |||
| const NativeParameter* (*get_parameter_info)(NativePluginHandle handle, uint32_t index); | |||
| float (*get_parameter_value)(NativePluginHandle handle, uint32_t index); | |||
| const char* (*get_parameter_text)(NativePluginHandle handle, uint32_t index, float value); | |||
| uint32_t (*get_midi_program_count)(PluginHandle handle); | |||
| const MidiProgram* (*get_midi_program_info)(PluginHandle handle, uint32_t index); | |||
| uint32_t (*get_midi_program_count)(NativePluginHandle handle); | |||
| const NativeMidiProgram* (*get_midi_program_info)(NativePluginHandle handle, uint32_t index); | |||
| void (*set_parameter_value)(PluginHandle handle, uint32_t index, float value); | |||
| void (*set_midi_program)(PluginHandle handle, uint8_t channel, uint32_t bank, uint32_t program); | |||
| void (*set_custom_data)(PluginHandle handle, const char* key, const char* value); | |||
| void (*set_parameter_value)(NativePluginHandle handle, uint32_t index, float value); | |||
| void (*set_midi_program)(NativePluginHandle handle, uint8_t channel, uint32_t bank, uint32_t program); | |||
| void (*set_custom_data)(NativePluginHandle handle, const char* key, const char* value); | |||
| void (*ui_show)(PluginHandle handle, bool show); | |||
| void (*ui_idle)(PluginHandle handle); | |||
| void (*ui_show)(NativePluginHandle handle, bool show); | |||
| void (*ui_idle)(NativePluginHandle handle); | |||
| void (*ui_set_parameter_value)(PluginHandle handle, uint32_t index, float value); | |||
| void (*ui_set_midi_program)(PluginHandle handle, uint8_t channel, uint32_t bank, uint32_t program); | |||
| void (*ui_set_custom_data)(PluginHandle handle, const char* key, const char* value); | |||
| void (*ui_set_parameter_value)(NativePluginHandle handle, uint32_t index, float value); | |||
| void (*ui_set_midi_program)(NativePluginHandle handle, uint8_t channel, uint32_t bank, uint32_t program); | |||
| void (*ui_set_custom_data)(NativePluginHandle handle, const char* key, const char* value); | |||
| void (*activate)(PluginHandle handle); | |||
| void (*deactivate)(PluginHandle handle); | |||
| void (*process)(PluginHandle handle, float** inBuffer, float** outBuffer, uint32_t frames, const MidiEvent* midiEvents, uint32_t midiEventCount); | |||
| void (*activate)(NativePluginHandle handle); | |||
| void (*deactivate)(NativePluginHandle handle); | |||
| void (*process)(NativePluginHandle handle, float** inBuffer, float** outBuffer, uint32_t frames, const NativeMidiEvent* midiEvents, uint32_t midiEventCount); | |||
| char* (*get_state)(PluginHandle handle); | |||
| void (*set_state)(PluginHandle handle, const char* data); | |||
| char* (*get_state)(NativePluginHandle handle); | |||
| void (*set_state)(NativePluginHandle handle, const char* data); | |||
| intptr_t (*dispatcher)(PluginHandle handle, PluginDispatcherOpcode opcode, int32_t index, intptr_t value, void* ptr, float opt); | |||
| intptr_t (*dispatcher)(NativePluginHandle handle, NativePluginDispatcherOpcode opcode, int32_t index, intptr_t value, void* ptr, float opt); | |||
| } PluginDescriptor; | |||
| } NativePluginDescriptor; | |||
| // ----------------------------------------------------------------------- | |||
| // Register plugin | |||
| // Implemented by host | |||
| extern void carla_register_native_plugin(const PluginDescriptor* desc); | |||
| extern void carla_register_native_plugin(const NativePluginDescriptor* desc); | |||
| // Called once on host init | |||
| void carla_register_all_plugins(); | |||
| @@ -30,16 +30,16 @@ | |||
| // ----------------------------------------------------------------------- | |||
| // Plugin Class | |||
| class PluginClass | |||
| class NativePluginClass | |||
| { | |||
| public: | |||
| PluginClass(const HostDescriptor* const host) | |||
| NativePluginClass(const NativeHostDescriptor* const host) | |||
| : pHost(host) | |||
| { | |||
| CARLA_ASSERT(host != nullptr); | |||
| } | |||
| virtual ~PluginClass() | |||
| virtual ~NativePluginClass() | |||
| { | |||
| } | |||
| @@ -47,7 +47,7 @@ protected: | |||
| // ------------------------------------------------------------------- | |||
| // Host calls | |||
| const HostDescriptor* getHostHandle() const noexcept | |||
| const NativeHostDescriptor* getHostHandle() const noexcept | |||
| { | |||
| return pHost; | |||
| } | |||
| @@ -87,14 +87,14 @@ protected: | |||
| return pHost->is_offline(pHost->handle); | |||
| } | |||
| const TimeInfo* getTimeInfo() const | |||
| const NativeTimeInfo* getTimeInfo() const | |||
| { | |||
| CARLA_SAFE_ASSERT_RETURN(pHost != nullptr, nullptr); | |||
| return pHost->get_time_info(pHost->handle); | |||
| } | |||
| void writeMidiEvent(const MidiEvent* const event) const | |||
| void writeMidiEvent(const NativeMidiEvent* const event) const | |||
| { | |||
| CARLA_SAFE_ASSERT_RETURN(pHost != nullptr,); | |||
| @@ -266,7 +266,7 @@ protected: | |||
| return 0; | |||
| } | |||
| virtual const Parameter* getParameterInfo(const uint32_t index) const | |||
| virtual const NativeParameter* getParameterInfo(const uint32_t index) const | |||
| { | |||
| CARLA_SAFE_ASSERT_RETURN(index < getParameterCount(), nullptr); | |||
| return nullptr; | |||
| @@ -295,7 +295,7 @@ protected: | |||
| return 0; | |||
| } | |||
| virtual const MidiProgram* getMidiProgramInfo(const uint32_t index) const | |||
| virtual const NativeMidiProgram* getMidiProgramInfo(const uint32_t index) const | |||
| { | |||
| CARLA_SAFE_ASSERT_RETURN(index < getMidiProgramCount(), nullptr); | |||
| return nullptr; | |||
| @@ -340,7 +340,7 @@ protected: | |||
| { | |||
| } | |||
| virtual void process(float** const inBuffer, float** const outBuffer, const uint32_t frames, const MidiEvent* const midiEvents, const uint32_t midiEventCount) = 0; | |||
| virtual void process(float** const inBuffer, float** const outBuffer, const uint32_t frames, const NativeMidiEvent* const midiEvents, const uint32_t midiEventCount) = 0; | |||
| // ------------------------------------------------------------------- | |||
| // Plugin UI calls | |||
| @@ -427,110 +427,110 @@ protected: | |||
| // ------------------------------------------------------------------- | |||
| private: | |||
| const HostDescriptor* const pHost; | |||
| const NativeHostDescriptor* const pHost; | |||
| // ------------------------------------------------------------------- | |||
| #ifndef DOXYGEN | |||
| public: | |||
| #define handlePtr ((PluginClass*)handle) | |||
| #define handlePtr ((NativePluginClass*)handle) | |||
| static uint32_t _get_parameter_count(PluginHandle handle) | |||
| static uint32_t _get_parameter_count(NativePluginHandle handle) | |||
| { | |||
| return handlePtr->getParameterCount(); | |||
| } | |||
| static const Parameter* _get_parameter_info(PluginHandle handle, uint32_t index) | |||
| static const NativeParameter* _get_parameter_info(NativePluginHandle handle, uint32_t index) | |||
| { | |||
| return handlePtr->getParameterInfo(index); | |||
| } | |||
| static float _get_parameter_value(PluginHandle handle, uint32_t index) | |||
| static float _get_parameter_value(NativePluginHandle handle, uint32_t index) | |||
| { | |||
| return handlePtr->getParameterValue(index); | |||
| } | |||
| static const char* _get_parameter_text(PluginHandle handle, uint32_t index, float value) | |||
| static const char* _get_parameter_text(NativePluginHandle handle, uint32_t index, float value) | |||
| { | |||
| return handlePtr->getParameterText(index, value); | |||
| } | |||
| static uint32_t _get_midi_program_count(PluginHandle handle) | |||
| static uint32_t _get_midi_program_count(NativePluginHandle handle) | |||
| { | |||
| return handlePtr->getMidiProgramCount(); | |||
| } | |||
| static const MidiProgram* _get_midi_program_info(PluginHandle handle, uint32_t index) | |||
| static const NativeMidiProgram* _get_midi_program_info(NativePluginHandle handle, uint32_t index) | |||
| { | |||
| return handlePtr->getMidiProgramInfo(index); | |||
| } | |||
| static void _set_parameter_value(PluginHandle handle, uint32_t index, float value) | |||
| static void _set_parameter_value(NativePluginHandle handle, uint32_t index, float value) | |||
| { | |||
| handlePtr->setParameterValue(index, value); | |||
| } | |||
| static void _set_midi_program(PluginHandle handle, uint8_t channel, uint32_t bank, uint32_t program) | |||
| static void _set_midi_program(NativePluginHandle handle, uint8_t channel, uint32_t bank, uint32_t program) | |||
| { | |||
| handlePtr->setMidiProgram(channel, bank, program); | |||
| } | |||
| static void _set_custom_data(PluginHandle handle, const char* key, const char* value) | |||
| static void _set_custom_data(NativePluginHandle handle, const char* key, const char* value) | |||
| { | |||
| handlePtr->setCustomData(key, value); | |||
| } | |||
| static void _ui_show(PluginHandle handle, bool show) | |||
| static void _ui_show(NativePluginHandle handle, bool show) | |||
| { | |||
| handlePtr->uiShow(show); | |||
| } | |||
| static void _ui_idle(PluginHandle handle) | |||
| static void _ui_idle(NativePluginHandle handle) | |||
| { | |||
| handlePtr->uiIdle(); | |||
| } | |||
| static void _ui_set_parameter_value(PluginHandle handle, uint32_t index, float value) | |||
| static void _ui_set_parameter_value(NativePluginHandle handle, uint32_t index, float value) | |||
| { | |||
| handlePtr->uiSetParameterValue(index, value); | |||
| } | |||
| static void _ui_set_midi_program(PluginHandle handle, uint8_t channel, uint32_t bank, uint32_t program) | |||
| static void _ui_set_midi_program(NativePluginHandle handle, uint8_t channel, uint32_t bank, uint32_t program) | |||
| { | |||
| handlePtr->uiSetMidiProgram(channel, bank, program); | |||
| } | |||
| static void _ui_set_custom_data(PluginHandle handle, const char* key, const char* value) | |||
| static void _ui_set_custom_data(NativePluginHandle handle, const char* key, const char* value) | |||
| { | |||
| handlePtr->uiSetCustomData(key, value); | |||
| } | |||
| static void _activate(PluginHandle handle) | |||
| static void _activate(NativePluginHandle handle) | |||
| { | |||
| handlePtr->activate(); | |||
| } | |||
| static void _deactivate(PluginHandle handle) | |||
| static void _deactivate(NativePluginHandle handle) | |||
| { | |||
| handlePtr->deactivate(); | |||
| } | |||
| static void _process(PluginHandle handle, float** inBuffer, float** outBuffer, const uint32_t frames, const MidiEvent* midiEvents, uint32_t midiEventCount) | |||
| static void _process(NativePluginHandle handle, float** inBuffer, float** outBuffer, const uint32_t frames, const NativeMidiEvent* midiEvents, uint32_t midiEventCount) | |||
| { | |||
| handlePtr->process(inBuffer, outBuffer, frames, midiEvents, midiEventCount); | |||
| } | |||
| static char* _get_state(PluginHandle handle) | |||
| static char* _get_state(NativePluginHandle handle) | |||
| { | |||
| return handlePtr->getState(); | |||
| } | |||
| static void _set_state(PluginHandle handle, const char* data) | |||
| static void _set_state(NativePluginHandle handle, const char* data) | |||
| { | |||
| handlePtr->setState(data); | |||
| } | |||
| static intptr_t _dispatcher(PluginHandle handle, PluginDispatcherOpcode opcode, int32_t index, intptr_t value, void* ptr, float opt) | |||
| static intptr_t _dispatcher(NativePluginHandle handle, NativePluginDispatcherOpcode opcode, int32_t index, intptr_t value, void* ptr, float opt) | |||
| { | |||
| switch(opcode) | |||
| { | |||
| @@ -559,7 +559,7 @@ public: | |||
| #undef handlePtr | |||
| CARLA_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(PluginClass) | |||
| CARLA_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(NativePluginClass) | |||
| #endif | |||
| }; | |||
| @@ -567,15 +567,15 @@ public: | |||
| // ----------------------------------------------------------------------- | |||
| #define PluginClassEND(ClassName) \ | |||
| public: \ | |||
| static PluginHandle _instantiate(const HostDescriptor* host) \ | |||
| { \ | |||
| return new ClassName(host); \ | |||
| } \ | |||
| static void _cleanup(PluginHandle handle) \ | |||
| { \ | |||
| delete (ClassName*)handle; \ | |||
| #define PluginClassEND(ClassName) \ | |||
| public: \ | |||
| static NativePluginHandle _instantiate(const NativeHostDescriptor* host) \ | |||
| { \ | |||
| return new ClassName(host); \ | |||
| } \ | |||
| static void _cleanup(NativePluginHandle handle) \ | |||
| { \ | |||
| delete (ClassName*)handle; \ | |||
| } | |||
| #define PluginDescriptorFILL(ClassName) \ | |||
| @@ -22,12 +22,12 @@ | |||
| #define PROGRAM_COUNT 16 | |||
| class AudioFilePlugin : public PluginClass, | |||
| class AudioFilePlugin : public NativePluginClass, | |||
| public AbstractAudioPlayer | |||
| { | |||
| public: | |||
| AudioFilePlugin(const HostDescriptor* const host) | |||
| : PluginClass(host), | |||
| AudioFilePlugin(const NativeHostDescriptor* const host) | |||
| : NativePluginClass(host), | |||
| AbstractAudioPlayer(), | |||
| fLoopMode(false), | |||
| fDoProcess(false), | |||
| @@ -58,16 +58,16 @@ protected: | |||
| return 0; // TODO - loopMode | |||
| } | |||
| const Parameter* getParameterInfo(const uint32_t index) const override | |||
| const NativeParameter* getParameterInfo(const uint32_t index) const override | |||
| { | |||
| if (index != 0) | |||
| return nullptr; | |||
| static Parameter param; | |||
| static NativeParameter param; | |||
| param.name = "Loop Mode"; | |||
| param.unit = nullptr; | |||
| param.hints = static_cast<ParameterHints>(PARAMETER_IS_ENABLED|PARAMETER_IS_BOOLEAN); | |||
| param.hints = static_cast<NativeParameterHints>(PARAMETER_IS_ENABLED|PARAMETER_IS_BOOLEAN); | |||
| param.ranges.def = 1.0f; | |||
| param.ranges.min = 0.0f; | |||
| param.ranges.max = 1.0f; | |||
| @@ -116,9 +116,9 @@ protected: | |||
| // ------------------------------------------------------------------- | |||
| // Plugin process calls | |||
| void process(float**, float** const outBuffer, const uint32_t frames, const MidiEvent* const, const uint32_t) override | |||
| void process(float**, float** const outBuffer, const uint32_t frames, const NativeMidiEvent* const, const uint32_t) override | |||
| { | |||
| const TimeInfo* const timePos(getTimeInfo()); | |||
| const NativeTimeInfo* const timePos(getTimeInfo()); | |||
| float* out1 = outBuffer[0]; | |||
| float* out2 = outBuffer[1]; | |||
| @@ -259,10 +259,10 @@ private: | |||
| // ----------------------------------------------------------------------- | |||
| static const PluginDescriptor audiofileDesc = { | |||
| static const NativePluginDescriptor audiofileDesc = { | |||
| /* category */ PLUGIN_CATEGORY_UTILITY, | |||
| /* hints */ static_cast<PluginHints>(PLUGIN_IS_RTSAFE|PLUGIN_HAS_GUI|PLUGIN_NEEDS_UI_OPEN_SAVE), | |||
| /* supports */ static_cast<PluginSupports>(0x0), | |||
| /* hints */ static_cast<NativePluginHints>(PLUGIN_IS_RTSAFE|PLUGIN_HAS_UI|PLUGIN_NEEDS_UI_OPEN_SAVE), | |||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||
| /* audioIns */ 0, | |||
| /* audioOuts */ 2, | |||
| /* midiIns */ 0, | |||
| @@ -21,13 +21,13 @@ | |||
| // ----------------------------------------------------------------------- | |||
| static PluginHandle bypass_instantiate(const HostDescriptor* host) | |||
| static NativePluginHandle bypass_instantiate(const NativeHostDescriptor* host) | |||
| { | |||
| // dummy, return non-NULL | |||
| return (PluginHandle)host; | |||
| return (NativePluginHandle)host; | |||
| } | |||
| static void bypass_process(PluginHandle handle, float** inBuffer, float** outBuffer, uint32_t frames, const MidiEvent* midiEvents, uint32_t midiEventCount) | |||
| static void bypass_process(NativePluginHandle handle, float** inBuffer, float** outBuffer, uint32_t frames, const NativeMidiEvent* midiEvents, uint32_t midiEventCount) | |||
| { | |||
| memcpy(outBuffer[0], inBuffer[0], sizeof(float)*frames); | |||
| return; | |||
| @@ -40,7 +40,7 @@ static void bypass_process(PluginHandle handle, float** inBuffer, float** outBuf | |||
| // ----------------------------------------------------------------------- | |||
| static const PluginDescriptor bypassDesc = { | |||
| static const NativePluginDescriptor bypassDesc = { | |||
| .category = PLUGIN_CATEGORY_NONE, | |||
| .hints = PLUGIN_IS_RTSAFE, | |||
| .supports = 0x0, | |||
| @@ -29,10 +29,10 @@ START_NAMESPACE_DISTRHO | |||
| // ----------------------------------------------------------------------- | |||
| static const PluginDescriptor tBandEqDesc = { | |||
| static const NativePluginDescriptor tBandEqDesc = { | |||
| /* category */ PLUGIN_CATEGORY_EQ, | |||
| /* hints */ static_cast<PluginHints>(PLUGIN_IS_RTSAFE|PLUGIN_HAS_GUI), | |||
| /* supports */ static_cast<PluginSupports>(0x0), | |||
| /* hints */ static_cast<NativePluginHints>(PLUGIN_IS_RTSAFE|PLUGIN_HAS_UI), | |||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||
| /* audioIns */ DISTRHO_PLUGIN_NUM_INPUTS, | |||
| /* audioOuts */ DISTRHO_PLUGIN_NUM_OUTPUTS, | |||
| /* midiIns */ 0, | |||
| @@ -29,10 +29,10 @@ START_NAMESPACE_DISTRHO | |||
| // ----------------------------------------------------------------------- | |||
| static const PluginDescriptor tBandSplitterDesc = { | |||
| static const NativePluginDescriptor tBandSplitterDesc = { | |||
| /* category */ PLUGIN_CATEGORY_EQ, | |||
| /* hints */ static_cast<PluginHints>(PLUGIN_IS_RTSAFE|PLUGIN_HAS_GUI), | |||
| /* supports */ static_cast<PluginSupports>(0x0), | |||
| /* hints */ static_cast<NativePluginHints>(PLUGIN_IS_RTSAFE|PLUGIN_HAS_UI), | |||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||
| /* audioIns */ DISTRHO_PLUGIN_NUM_INPUTS, | |||
| /* audioOuts */ DISTRHO_PLUGIN_NUM_OUTPUTS, | |||
| /* midiIns */ 0, | |||
| @@ -28,10 +28,10 @@ START_NAMESPACE_DISTRHO | |||
| // ----------------------------------------------------------------------- | |||
| static const PluginDescriptor bigMeterDesc = { | |||
| static const NativePluginDescriptor bigMeterDesc = { | |||
| /* category */ PLUGIN_CATEGORY_UTILITY, | |||
| /* hints */ static_cast<PluginHints>(PLUGIN_IS_RTSAFE|PLUGIN_HAS_GUI), | |||
| /* supports */ static_cast<PluginSupports>(0x0), | |||
| /* hints */ static_cast<NativePluginHints>(PLUGIN_IS_RTSAFE|PLUGIN_HAS_UI), | |||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||
| /* audioIns */ DISTRHO_PLUGIN_NUM_INPUTS, | |||
| /* audioOuts */ DISTRHO_PLUGIN_NUM_OUTPUTS, | |||
| /* midiIns */ 0, | |||
| @@ -28,10 +28,10 @@ START_NAMESPACE_DISTRHO | |||
| // ----------------------------------------------------------------------- | |||
| static const PluginDescriptor bigMeterMDesc = { | |||
| static const NativePluginDescriptor bigMeterMDesc = { | |||
| /* category */ PLUGIN_CATEGORY_UTILITY, | |||
| /* hints */ static_cast<PluginHints>(PLUGIN_IS_RTSAFE|PLUGIN_HAS_GUI), | |||
| /* supports */ static_cast<PluginSupports>(0x0), | |||
| /* hints */ static_cast<NativePluginHints>(PLUGIN_IS_RTSAFE|PLUGIN_HAS_UI), | |||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||
| /* audioIns */ DISTRHO_PLUGIN_NUM_INPUTS, | |||
| /* audioOuts */ DISTRHO_PLUGIN_NUM_OUTPUTS, | |||
| /* midiIns */ 0, | |||
| @@ -29,10 +29,10 @@ START_NAMESPACE_DISTRHO | |||
| // ----------------------------------------------------------------------- | |||
| static const PluginDescriptor nekobiDesc = { | |||
| static const NativePluginDescriptor nekobiDesc = { | |||
| /* category */ PLUGIN_CATEGORY_SYNTH, | |||
| /* hints */ static_cast<PluginHints>(PLUGIN_IS_RTSAFE|PLUGIN_HAS_GUI), | |||
| /* supports */ static_cast<PluginSupports>(PLUGIN_SUPPORTS_CONTROL_CHANGES|PLUGIN_SUPPORTS_ALL_SOUND_OFF), | |||
| /* hints */ static_cast<NativePluginHints>(PLUGIN_IS_RTSAFE|PLUGIN_HAS_UI), | |||
| /* supports */ static_cast<NativePluginSupports>(PLUGIN_SUPPORTS_CONTROL_CHANGES|PLUGIN_SUPPORTS_ALL_SOUND_OFF), | |||
| /* audioIns */ DISTRHO_PLUGIN_NUM_INPUTS, | |||
| /* audioOuts */ DISTRHO_PLUGIN_NUM_OUTPUTS, | |||
| /* midiIns */ 1, | |||
| @@ -28,10 +28,10 @@ START_NAMESPACE_DISTRHO | |||
| // ----------------------------------------------------------------------- | |||
| static const PluginDescriptor notesDesc = { | |||
| static const NativePluginDescriptor notesDesc = { | |||
| /* category */ PLUGIN_CATEGORY_UTILITY, | |||
| /* hints */ static_cast<PluginHints>(PLUGIN_IS_RTSAFE|PLUGIN_HAS_GUI), | |||
| /* supports */ static_cast<PluginSupports>(0x0), | |||
| /* hints */ static_cast<NativePluginHints>(PLUGIN_IS_RTSAFE|PLUGIN_HAS_UI), | |||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||
| /* audioIns */ DISTRHO_PLUGIN_NUM_INPUTS, | |||
| /* audioOuts */ DISTRHO_PLUGIN_NUM_OUTPUTS, | |||
| /* midiIns */ 0, | |||
| @@ -29,10 +29,10 @@ START_NAMESPACE_DISTRHO | |||
| // ----------------------------------------------------------------------- | |||
| static PluginDescriptor pppDesc = { | |||
| static const NativePluginDescriptor pppDesc = { | |||
| /* category */ PLUGIN_CATEGORY_UTILITY, | |||
| /* hints */ static_cast<PluginHints>(PLUGIN_IS_RTSAFE|PLUGIN_HAS_GUI), | |||
| /* supports */ static_cast<PluginSupports>(0x0), | |||
| /* hints */ static_cast<NativePluginHints>(PLUGIN_IS_RTSAFE|PLUGIN_HAS_UI), | |||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||
| /* audioIns */ DISTRHO_PLUGIN_NUM_INPUTS, | |||
| /* audioOuts */ DISTRHO_PLUGIN_NUM_OUTPUTS, | |||
| /* midiIns */ 0, | |||
| @@ -29,10 +29,10 @@ START_NAMESPACE_DISTRHO | |||
| // ----------------------------------------------------------------------- | |||
| static const PluginDescriptor stereoenhancerDesc = { | |||
| static const NativePluginDescriptor stereoenhancerDesc = { | |||
| /* category */ PLUGIN_CATEGORY_EQ, | |||
| /* hints */ static_cast<PluginHints>(PLUGIN_IS_RTSAFE|PLUGIN_HAS_GUI), | |||
| /* supports */ static_cast<PluginSupports>(0x0), | |||
| /* hints */ static_cast<NativePluginHints>(PLUGIN_IS_RTSAFE|PLUGIN_HAS_UI), | |||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||
| /* audioIns */ DISTRHO_PLUGIN_NUM_INPUTS, | |||
| /* audioOuts */ DISTRHO_PLUGIN_NUM_OUTPUTS, | |||
| /* midiIns */ 0, | |||
| @@ -63,7 +63,7 @@ class UICarla | |||
| #endif | |||
| { | |||
| public: | |||
| UICarla(const HostDescriptor* const host, PluginInternal* const plugin) | |||
| UICarla(const NativeHostDescriptor* const host, PluginInternal* const plugin) | |||
| : fHost(host), | |||
| fPlugin(plugin), | |||
| fUi(this, 0, editParameterCallback, setParameterCallback, setStateCallback, sendNoteCallback, uiResizeCallback) | |||
| @@ -254,7 +254,7 @@ protected: | |||
| private: | |||
| // Plugin stuff | |||
| const HostDescriptor* const fHost; | |||
| const NativeHostDescriptor* const fHost; | |||
| PluginInternal* const fPlugin; | |||
| // UI | |||
| @@ -310,11 +310,11 @@ private: | |||
| // ----------------------------------------------------------------------- | |||
| // Carla Plugin | |||
| class PluginCarla : public PluginClass | |||
| class PluginCarla : public NativePluginClass | |||
| { | |||
| public: | |||
| PluginCarla(const HostDescriptor* const host) | |||
| : PluginClass(host) | |||
| PluginCarla(const NativeHostDescriptor* const host) | |||
| : NativePluginClass(host) | |||
| { | |||
| #if DISTRHO_PLUGIN_HAS_UI | |||
| fUiPtr = nullptr; | |||
| @@ -341,11 +341,11 @@ protected: | |||
| return fPlugin.getParameterCount(); | |||
| } | |||
| const ::Parameter* getParameterInfo(const uint32_t index) const override | |||
| const NativeParameter* getParameterInfo(const uint32_t index) const override | |||
| { | |||
| CARLA_ASSERT(index < getParameterCount()); | |||
| static ::Parameter param; | |||
| static NativeParameter param; | |||
| // reset | |||
| param.hints = ::PARAMETER_IS_ENABLED; | |||
| @@ -367,7 +367,7 @@ protected: | |||
| if (paramHints & PARAMETER_IS_OUTPUT) | |||
| nativeParamHints |= ::PARAMETER_IS_OUTPUT; | |||
| param.hints = static_cast<ParameterHints>(nativeParamHints); | |||
| param.hints = static_cast<NativeParameterHints>(nativeParamHints); | |||
| } | |||
| param.name = fPlugin.getParameterName(index); | |||
| @@ -403,14 +403,14 @@ protected: | |||
| return fPlugin.getProgramCount(); | |||
| } | |||
| const ::MidiProgram* getMidiProgramInfo(const uint32_t index) const override | |||
| const NativeMidiProgram* getMidiProgramInfo(const uint32_t index) const override | |||
| { | |||
| CARLA_ASSERT(index < getMidiProgramCount()); | |||
| if (index >= fPlugin.getProgramCount()) | |||
| return nullptr; | |||
| static ::MidiProgram midiProgram; | |||
| static NativeMidiProgram midiProgram; | |||
| midiProgram.bank = index / 128; | |||
| midiProgram.program = index % 128; | |||
| @@ -466,14 +466,14 @@ protected: | |||
| } | |||
| #if DISTRHO_PLUGIN_IS_SYNTH | |||
| void process(float** const inBuffer, float** const outBuffer, const uint32_t frames, const ::MidiEvent* const midiEvents, const uint32_t midiEventCount) override | |||
| void process(float** const inBuffer, float** const outBuffer, const uint32_t frames, const NativeMidiEvent* const midiEvents, const uint32_t midiEventCount) override | |||
| { | |||
| uint32_t i; | |||
| for (i=0; i < midiEventCount && i < MAX_MIDI_EVENTS; ++i) | |||
| { | |||
| const ::MidiEvent* const midiEvent = &midiEvents[i]; | |||
| MidiEvent* const realMidiEvent = &fRealMidiEvents[i]; | |||
| const NativeMidiEvent* const midiEvent(&midiEvents[i]); | |||
| MidiEvent* const realMidiEvent(&fRealMidiEvents[i]); | |||
| realMidiEvent->frame = midiEvent->time; | |||
| realMidiEvent->size = midiEvent->size; | |||
| @@ -485,7 +485,7 @@ protected: | |||
| fPlugin.run(inBuffer, outBuffer, frames, fRealMidiEvents, i); | |||
| } | |||
| #else | |||
| void process(float** const inBuffer, float** const outBuffer, const uint32_t frames, const ::MidiEvent* const, const uint32_t) override | |||
| void process(float** const inBuffer, float** const outBuffer, const uint32_t frames, const NativeMidiEvent* const, const uint32_t) override | |||
| { | |||
| fPlugin.run(inBuffer, outBuffer, frames, nullptr, 0); | |||
| } | |||
| @@ -598,14 +598,14 @@ private: | |||
| // ------------------------------------------------------------------- | |||
| public: | |||
| static PluginHandle _instantiate(const HostDescriptor* host) | |||
| static NativePluginHandle _instantiate(const NativeHostDescriptor* host) | |||
| { | |||
| d_lastBufferSize = host->get_buffer_size(host->handle); | |||
| d_lastSampleRate = host->get_sample_rate(host->handle); | |||
| return new PluginCarla(host); | |||
| } | |||
| static void _cleanup(PluginHandle handle) | |||
| static void _cleanup(NativePluginHandle handle) | |||
| { | |||
| delete (PluginCarla*)handle; | |||
| } | |||
| @@ -35,7 +35,7 @@ typedef enum { | |||
| } LfoParams; | |||
| typedef struct { | |||
| const HostDescriptor* host; | |||
| const NativeHostDescriptor* host; | |||
| int mode; | |||
| float speed; | |||
| float multiplier; | |||
| @@ -45,7 +45,7 @@ typedef struct { | |||
| // ----------------------------------------------------------------------- | |||
| static PluginHandle lfo_instantiate(const HostDescriptor* host) | |||
| static NativePluginHandle lfo_instantiate(const NativeHostDescriptor* host) | |||
| { | |||
| LfoHandle* const handle = (LfoHandle*)malloc(sizeof(LfoHandle)); | |||
| @@ -65,12 +65,12 @@ static PluginHandle lfo_instantiate(const HostDescriptor* host) | |||
| #define handlePtr ((LfoHandle*)handle) | |||
| static void lfo_cleanup(PluginHandle handle) | |||
| static void lfo_cleanup(NativePluginHandle handle) | |||
| { | |||
| free(handlePtr); | |||
| } | |||
| static uint32_t lfo_get_parameter_count(PluginHandle handle) | |||
| static uint32_t lfo_get_parameter_count(NativePluginHandle handle) | |||
| { | |||
| return PARAM_COUNT; | |||
| @@ -78,13 +78,13 @@ static uint32_t lfo_get_parameter_count(PluginHandle handle) | |||
| (void)handle; | |||
| } | |||
| const Parameter* lfo_get_parameter_info(PluginHandle handle, uint32_t index) | |||
| const NativeParameter* lfo_get_parameter_info(NativePluginHandle handle, uint32_t index) | |||
| { | |||
| if (index > PARAM_COUNT) | |||
| return NULL; | |||
| static Parameter param; | |||
| static ParameterScalePoint paramModes[5]; | |||
| static NativeParameter param; | |||
| static NativeParameterScalePoint paramModes[5]; | |||
| param.hints = PARAMETER_IS_ENABLED|PARAMETER_IS_AUTOMABLE; | |||
| param.scalePointCount = 0; | |||
| @@ -166,7 +166,7 @@ const Parameter* lfo_get_parameter_info(PluginHandle handle, uint32_t index) | |||
| (void)handle; | |||
| } | |||
| static float lfo_get_parameter_value(PluginHandle handle, uint32_t index) | |||
| static float lfo_get_parameter_value(NativePluginHandle handle, uint32_t index) | |||
| { | |||
| switch (index) | |||
| { | |||
| @@ -185,7 +185,7 @@ static float lfo_get_parameter_value(PluginHandle handle, uint32_t index) | |||
| } | |||
| } | |||
| static void lfo_set_parameter_value(PluginHandle handle, uint32_t index, float value) | |||
| static void lfo_set_parameter_value(NativePluginHandle handle, uint32_t index, float value) | |||
| { | |||
| switch (index) | |||
| { | |||
| @@ -207,10 +207,10 @@ static void lfo_set_parameter_value(PluginHandle handle, uint32_t index, float v | |||
| } | |||
| } | |||
| static void lfo_process(PluginHandle handle, float** inBuffer, float** outBuffer, uint32_t frames, const MidiEvent* midiEvents, uint32_t midiEventCount) | |||
| static void lfo_process(NativePluginHandle handle, float** inBuffer, float** outBuffer, uint32_t frames, const NativeMidiEvent* midiEvents, uint32_t midiEventCount) | |||
| { | |||
| const HostDescriptor* const host = handlePtr->host; | |||
| const TimeInfo* const timeInfo = host->get_time_info(host->handle); | |||
| const NativeHostDescriptor* const host = handlePtr->host; | |||
| const NativeTimeInfo* const timeInfo = host->get_time_info(host->handle); | |||
| if (! timeInfo->playing) | |||
| return; | |||
| @@ -266,7 +266,7 @@ static void lfo_process(PluginHandle handle, float** inBuffer, float** outBuffer | |||
| // ----------------------------------------------------------------------- | |||
| static const PluginDescriptor lfoDesc = { | |||
| static const NativePluginDescriptor lfoDesc = { | |||
| .category = PLUGIN_CATEGORY_UTILITY, | |||
| .hints = PLUGIN_IS_RTSAFE, | |||
| .supports = 0x0, | |||
| @@ -20,12 +20,12 @@ | |||
| #include <smf.h> | |||
| class MidiFilePlugin : public PluginClass, | |||
| class MidiFilePlugin : public NativePluginClass, | |||
| public AbstractMidiPlayer | |||
| { | |||
| public: | |||
| MidiFilePlugin(const HostDescriptor* const host) | |||
| : PluginClass(host), | |||
| MidiFilePlugin(const NativeHostDescriptor* const host) | |||
| : NativePluginClass(host), | |||
| fMidiOut(this), | |||
| fWasPlayingBefore(false) | |||
| { | |||
| @@ -53,9 +53,9 @@ protected: | |||
| // ------------------------------------------------------------------- | |||
| // Plugin process calls | |||
| void process(float**, float**, const uint32_t frames, const MidiEvent* const, const uint32_t) override | |||
| void process(float**, float**, const uint32_t frames, const NativeMidiEvent* const, const uint32_t) override | |||
| { | |||
| const TimeInfo* const timePos(getTimeInfo()); | |||
| const NativeTimeInfo* const timePos(getTimeInfo()); | |||
| if (timePos->playing) | |||
| { | |||
| @@ -63,7 +63,7 @@ protected: | |||
| } | |||
| else if (fWasPlayingBefore) | |||
| { | |||
| MidiEvent midiEvent; | |||
| NativeMidiEvent midiEvent; | |||
| midiEvent.port = 0; | |||
| midiEvent.time = 0; | |||
| @@ -76,7 +76,7 @@ protected: | |||
| for (int i=0; i < MAX_MIDI_CHANNELS; ++i) | |||
| { | |||
| midiEvent.data[0] = MIDI_STATUS_CONTROL_CHANGE+i; | |||
| PluginClass::writeMidiEvent(&midiEvent); | |||
| NativePluginClass::writeMidiEvent(&midiEvent); | |||
| } | |||
| carla_stdout("WAS PLAYING BEFORE, NOW STOPPED"); | |||
| @@ -106,7 +106,7 @@ protected: | |||
| void writeMidiEvent(const uint32_t timePosFrame, const RawMidiEvent* const event) override | |||
| { | |||
| MidiEvent midiEvent; | |||
| NativeMidiEvent midiEvent; | |||
| midiEvent.port = 0; | |||
| midiEvent.time = event->time-timePosFrame; | |||
| @@ -116,7 +116,7 @@ protected: | |||
| midiEvent.data[3] = event->data[3]; | |||
| midiEvent.size = event->size; | |||
| PluginClass::writeMidiEvent(&midiEvent); | |||
| NativePluginClass::writeMidiEvent(&midiEvent); | |||
| } | |||
| private: | |||
| @@ -218,10 +218,10 @@ private: | |||
| // ----------------------------------------------------------------------- | |||
| static const PluginDescriptor midifileDesc = { | |||
| static const NativePluginDescriptor midifileDesc = { | |||
| /* category */ PLUGIN_CATEGORY_UTILITY, | |||
| /* hints */ static_cast<PluginHints>(PLUGIN_IS_RTSAFE|PLUGIN_HAS_GUI|PLUGIN_NEEDS_UI_OPEN_SAVE), | |||
| /* supports */ static_cast<PluginSupports>(0x0), | |||
| /* hints */ static_cast<NativePluginHints>(PLUGIN_IS_RTSAFE|PLUGIN_HAS_UI|PLUGIN_NEEDS_UI_OPEN_SAVE), | |||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||
| /* audioIns */ 0, | |||
| /* audioOuts */ 0, | |||
| /* midiIns */ 0, | |||
| @@ -32,7 +32,7 @@ typedef enum { | |||
| } MidiGainParams; | |||
| typedef struct { | |||
| const HostDescriptor* host; | |||
| const NativeHostDescriptor* host; | |||
| float gain; | |||
| bool applyNotes; | |||
| bool applyAftertouch; | |||
| @@ -41,7 +41,7 @@ typedef struct { | |||
| // ----------------------------------------------------------------------- | |||
| static PluginHandle midiGain_instantiate(const HostDescriptor* host) | |||
| static NativePluginHandle midiGain_instantiate(const NativeHostDescriptor* host) | |||
| { | |||
| MidiGainHandle* const handle = (MidiGainHandle*)malloc(sizeof(MidiGainHandle)); | |||
| @@ -58,12 +58,12 @@ static PluginHandle midiGain_instantiate(const HostDescriptor* host) | |||
| #define handlePtr ((MidiGainHandle*)handle) | |||
| static void midiGain_cleanup(PluginHandle handle) | |||
| static void midiGain_cleanup(NativePluginHandle handle) | |||
| { | |||
| free(handlePtr); | |||
| } | |||
| static uint32_t midiGain_get_parameter_count(PluginHandle handle) | |||
| static uint32_t midiGain_get_parameter_count(NativePluginHandle handle) | |||
| { | |||
| return PARAM_COUNT; | |||
| @@ -71,12 +71,12 @@ static uint32_t midiGain_get_parameter_count(PluginHandle handle) | |||
| (void)handle; | |||
| } | |||
| const Parameter* midiGain_get_parameter_info(PluginHandle handle, uint32_t index) | |||
| const NativeParameter* midiGain_get_parameter_info(NativePluginHandle handle, uint32_t index) | |||
| { | |||
| if (index > PARAM_COUNT) | |||
| return NULL; | |||
| static Parameter param; | |||
| static NativeParameter param; | |||
| param.hints = PARAMETER_IS_ENABLED|PARAMETER_IS_AUTOMABLE; | |||
| param.unit = NULL; | |||
| @@ -132,7 +132,7 @@ const Parameter* midiGain_get_parameter_info(PluginHandle handle, uint32_t index | |||
| (void)handle; | |||
| } | |||
| static float midiGain_get_parameter_value(PluginHandle handle, uint32_t index) | |||
| static float midiGain_get_parameter_value(NativePluginHandle handle, uint32_t index) | |||
| { | |||
| switch (index) | |||
| { | |||
| @@ -149,7 +149,7 @@ static float midiGain_get_parameter_value(PluginHandle handle, uint32_t index) | |||
| } | |||
| } | |||
| static void midiGain_set_parameter_value(PluginHandle handle, uint32_t index, float value) | |||
| static void midiGain_set_parameter_value(NativePluginHandle handle, uint32_t index, float value) | |||
| { | |||
| switch (index) | |||
| { | |||
| @@ -168,18 +168,18 @@ static void midiGain_set_parameter_value(PluginHandle handle, uint32_t index, fl | |||
| } | |||
| } | |||
| static void midiGain_process(PluginHandle handle, float** inBuffer, float** outBuffer, uint32_t frames, const MidiEvent* midiEvents, uint32_t midiEventCount) | |||
| static void midiGain_process(NativePluginHandle handle, float** inBuffer, float** outBuffer, uint32_t frames, const NativeMidiEvent* midiEvents, uint32_t midiEventCount) | |||
| { | |||
| const HostDescriptor* const host = handlePtr->host; | |||
| const NativeHostDescriptor* const host = handlePtr->host; | |||
| const float gain = handlePtr->gain; | |||
| const bool applyNotes = handlePtr->applyNotes; | |||
| const bool applyAftertouch = handlePtr->applyAftertouch; | |||
| const bool applyCC = handlePtr->applyCC; | |||
| MidiEvent tmpEvent; | |||
| NativeMidiEvent tmpEvent; | |||
| for (uint32_t i=0; i < midiEventCount; ++i) | |||
| { | |||
| const MidiEvent* const midiEvent = &midiEvents[i]; | |||
| const NativeMidiEvent* const midiEvent = &midiEvents[i]; | |||
| const uint8_t status = MIDI_GET_STATUS_FROM_DATA(midiEvent->data); | |||
| @@ -187,7 +187,7 @@ static void midiGain_process(PluginHandle handle, float** inBuffer, float** outB | |||
| (applyAftertouch && status == MIDI_STATUS_POLYPHONIC_AFTERTOUCH) || | |||
| (applyCC && status == MIDI_STATUS_CONTROL_CHANGE))) | |||
| { | |||
| memcpy(&tmpEvent, midiEvent, sizeof(MidiEvent)); | |||
| memcpy(&tmpEvent, midiEvent, sizeof(NativeMidiEvent)); | |||
| float value = (float)midiEvent->data[2] * gain; | |||
| @@ -214,7 +214,7 @@ static void midiGain_process(PluginHandle handle, float** inBuffer, float** outB | |||
| // ----------------------------------------------------------------------- | |||
| static const PluginDescriptor midiGainDesc = { | |||
| static const NativePluginDescriptor midiGainDesc = { | |||
| .category = PLUGIN_CATEGORY_UTILITY, | |||
| .hints = PLUGIN_IS_RTSAFE, | |||
| .supports = PLUGIN_SUPPORTS_EVERYTHING, | |||
| @@ -18,12 +18,12 @@ | |||
| #include "CarlaNative.hpp" | |||
| #include "midi-base.hpp" | |||
| class MidiSequencerPlugin : public PluginClass, | |||
| class MidiSequencerPlugin : public NativePluginClass, | |||
| public AbstractMidiPlayer | |||
| { | |||
| public: | |||
| MidiSequencerPlugin(const HostDescriptor* const host) | |||
| : PluginClass(host), | |||
| MidiSequencerPlugin(const NativeHostDescriptor* const host) | |||
| : NativePluginClass(host), | |||
| fWantInEvents(false), | |||
| fMidiOut(this) | |||
| { | |||
| @@ -136,9 +136,9 @@ protected: | |||
| { | |||
| } | |||
| void process(float**, float**, const uint32_t frames, const MidiEvent* const midiEvents, const uint32_t midiEventCount) override | |||
| void process(float**, float**, const uint32_t frames, const NativeMidiEvent* const midiEvents, const uint32_t midiEventCount) override | |||
| { | |||
| const TimeInfo* const timePos = getTimeInfo(); | |||
| const NativeTimeInfo* const timePos = getTimeInfo(); | |||
| if (fWantInEvents) | |||
| { | |||
| @@ -146,7 +146,7 @@ protected: | |||
| for (uint32_t i=0; i < midiEventCount; ++i) | |||
| { | |||
| const MidiEvent* const midiEvent = &midiEvents[i]; | |||
| const NativeMidiEvent* const midiEvent = &midiEvents[i]; | |||
| rawMidiEvent.data[0] = midiEvent->data[0]; | |||
| rawMidiEvent.data[1] = midiEvent->data[1]; | |||
| @@ -174,7 +174,7 @@ protected: | |||
| void writeMidiEvent(const uint32_t timePosFrame, const RawMidiEvent* const event) override | |||
| { | |||
| MidiEvent midiEvent; | |||
| NativeMidiEvent midiEvent; | |||
| midiEvent.port = 0; | |||
| midiEvent.time = event->time-timePosFrame; | |||
| @@ -184,7 +184,7 @@ protected: | |||
| midiEvent.data[3] = event->data[3]; | |||
| midiEvent.size = event->size; | |||
| PluginClass::writeMidiEvent(&midiEvent); | |||
| NativePluginClass::writeMidiEvent(&midiEvent); | |||
| } | |||
| private: | |||
| @@ -232,10 +232,10 @@ private: | |||
| // ----------------------------------------------------------------------- | |||
| static const PluginDescriptor midiSequencerDesc = { | |||
| static const NativePluginDescriptor midiSequencerDesc = { | |||
| /* category */ PLUGIN_CATEGORY_UTILITY, | |||
| /* hints */ PLUGIN_IS_RTSAFE/*|PLUGIN_HAS_GUI*/, | |||
| /* supports */ static_cast<PluginSupports>(0x0), | |||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||
| /* audioIns */ 0, | |||
| /* audioOuts */ 0, | |||
| /* midiIns */ 1, | |||
| @@ -20,20 +20,20 @@ | |||
| // ----------------------------------------------------------------------- | |||
| static PluginHandle midiSplit_instantiate(const HostDescriptor* host) | |||
| static NativePluginHandle midiSplit_instantiate(const NativeHostDescriptor* host) | |||
| { | |||
| // use HostDescriptor as PluginHandle | |||
| return (PluginHandle)host; | |||
| return (NativePluginHandle)host; | |||
| } | |||
| static void midiSplit_process(PluginHandle handle, float** inBuffer, float** outBuffer, uint32_t frames, const MidiEvent* midiEvents, uint32_t midiEventCount) | |||
| static void midiSplit_process(NativePluginHandle handle, float** inBuffer, float** outBuffer, uint32_t frames, const NativeMidiEvent* midiEvents, uint32_t midiEventCount) | |||
| { | |||
| const HostDescriptor* const host = (const HostDescriptor*)handle; | |||
| MidiEvent tmpEvent; | |||
| const NativeHostDescriptor* const host = (const NativeHostDescriptor*)handle; | |||
| NativeMidiEvent tmpEvent; | |||
| for (uint32_t i=0; i < midiEventCount; ++i) | |||
| { | |||
| const MidiEvent* const midiEvent = &midiEvents[i]; | |||
| const NativeMidiEvent* const midiEvent = &midiEvents[i]; | |||
| const uint8_t status = MIDI_GET_STATUS_FROM_DATA(midiEvent->data); | |||
| const uint8_t channel = MIDI_GET_CHANNEL_FROM_DATA(midiEvent->data); | |||
| @@ -62,7 +62,7 @@ static void midiSplit_process(PluginHandle handle, float** inBuffer, float** out | |||
| // ----------------------------------------------------------------------- | |||
| static const PluginDescriptor midiSplitDesc = { | |||
| static const NativePluginDescriptor midiSplitDesc = { | |||
| .category = PLUGIN_CATEGORY_UTILITY, | |||
| .hints = PLUGIN_IS_RTSAFE, | |||
| .supports = PLUGIN_SUPPORTS_EVERYTHING, | |||
| @@ -20,15 +20,15 @@ | |||
| // ----------------------------------------------------------------------- | |||
| static PluginHandle midiThrough_instantiate(const HostDescriptor* host) | |||
| static NativePluginHandle midiThrough_instantiate(const NativeHostDescriptor* host) | |||
| { | |||
| // use HostDescriptor as PluginHandle | |||
| return (PluginHandle)host; | |||
| return (NativePluginHandle)host; | |||
| } | |||
| static void midiThrough_process(PluginHandle handle, float** inBuffer, float** outBuffer, uint32_t frames, const MidiEvent* midiEvents, uint32_t midiEventCount) | |||
| static void midiThrough_process(NativePluginHandle handle, float** inBuffer, float** outBuffer, uint32_t frames, const NativeMidiEvent* midiEvents, uint32_t midiEventCount) | |||
| { | |||
| const HostDescriptor* const host = (const HostDescriptor*)handle; | |||
| const NativeHostDescriptor* const host = (const NativeHostDescriptor*)handle; | |||
| for (uint32_t i=0; i < midiEventCount; ++i) | |||
| host->write_midi_event(host->handle, &midiEvents[i]); | |||
| @@ -43,7 +43,7 @@ static void midiThrough_process(PluginHandle handle, float** inBuffer, float** o | |||
| // ----------------------------------------------------------------------- | |||
| static const PluginDescriptor midiThroughDesc = { | |||
| static const NativePluginDescriptor midiThroughDesc = { | |||
| .category = PLUGIN_CATEGORY_UTILITY, | |||
| .hints = PLUGIN_IS_RTSAFE, | |||
| .supports = PLUGIN_SUPPORTS_EVERYTHING, | |||
| @@ -23,13 +23,13 @@ | |||
| // ----------------------------------------------------------------------- | |||
| typedef struct { | |||
| const HostDescriptor* host; | |||
| const NativeHostDescriptor* host; | |||
| int octaves; | |||
| } MidiTransposeHandle; | |||
| // ----------------------------------------------------------------------- | |||
| static PluginHandle midiTranspose_instantiate(const HostDescriptor* host) | |||
| static NativePluginHandle midiTranspose_instantiate(const NativeHostDescriptor* host) | |||
| { | |||
| MidiTransposeHandle* const handle = (MidiTransposeHandle*)malloc(sizeof(MidiTransposeHandle)); | |||
| @@ -43,12 +43,12 @@ static PluginHandle midiTranspose_instantiate(const HostDescriptor* host) | |||
| #define handlePtr ((MidiTransposeHandle*)handle) | |||
| static void midiTranspose_cleanup(PluginHandle handle) | |||
| static void midiTranspose_cleanup(NativePluginHandle handle) | |||
| { | |||
| free(handlePtr); | |||
| } | |||
| static uint32_t midiTranspose_get_parameter_count(PluginHandle handle) | |||
| static uint32_t midiTranspose_get_parameter_count(NativePluginHandle handle) | |||
| { | |||
| return 1; | |||
| @@ -56,12 +56,12 @@ static uint32_t midiTranspose_get_parameter_count(PluginHandle handle) | |||
| (void)handle; | |||
| } | |||
| const Parameter* midiTranspose_get_parameter_info(PluginHandle handle, uint32_t index) | |||
| const NativeParameter* midiTranspose_get_parameter_info(NativePluginHandle handle, uint32_t index) | |||
| { | |||
| if (index != 0) | |||
| return NULL; | |||
| static Parameter param; | |||
| static NativeParameter param; | |||
| param.name = "Octaves"; | |||
| param.unit = NULL; | |||
| @@ -81,7 +81,7 @@ const Parameter* midiTranspose_get_parameter_info(PluginHandle handle, uint32_t | |||
| (void)handle; | |||
| } | |||
| static float midiTranspose_get_parameter_value(PluginHandle handle, uint32_t index) | |||
| static float midiTranspose_get_parameter_value(NativePluginHandle handle, uint32_t index) | |||
| { | |||
| if (index != 0) | |||
| return 0.0f; | |||
| @@ -89,7 +89,7 @@ static float midiTranspose_get_parameter_value(PluginHandle handle, uint32_t ind | |||
| return (float)handlePtr->octaves; | |||
| } | |||
| static void midiTranspose_set_parameter_value(PluginHandle handle, uint32_t index, float value) | |||
| static void midiTranspose_set_parameter_value(NativePluginHandle handle, uint32_t index, float value) | |||
| { | |||
| if (index != 0) | |||
| return; | |||
| @@ -97,15 +97,15 @@ static void midiTranspose_set_parameter_value(PluginHandle handle, uint32_t inde | |||
| handlePtr->octaves = (int)value; | |||
| } | |||
| static void midiTranspose_process(PluginHandle handle, float** inBuffer, float** outBuffer, uint32_t frames, const MidiEvent* midiEvents, uint32_t midiEventCount) | |||
| static void midiTranspose_process(NativePluginHandle handle, float** inBuffer, float** outBuffer, uint32_t frames, const NativeMidiEvent* midiEvents, uint32_t midiEventCount) | |||
| { | |||
| const HostDescriptor* const host = handlePtr->host; | |||
| const NativeHostDescriptor* const host = handlePtr->host; | |||
| const int octaves = handlePtr->octaves; | |||
| MidiEvent tmpEvent; | |||
| NativeMidiEvent tmpEvent; | |||
| for (uint32_t i=0; i < midiEventCount; ++i) | |||
| { | |||
| const MidiEvent* const midiEvent = &midiEvents[i]; | |||
| const NativeMidiEvent* const midiEvent = &midiEvents[i]; | |||
| const uint8_t status = MIDI_GET_STATUS_FROM_DATA(midiEvent->data); | |||
| @@ -143,7 +143,7 @@ static void midiTranspose_process(PluginHandle handle, float** inBuffer, float** | |||
| // ----------------------------------------------------------------------- | |||
| static const PluginDescriptor midiTransposeDesc = { | |||
| static const NativePluginDescriptor midiTransposeDesc = { | |||
| .category = PLUGIN_CATEGORY_UTILITY, | |||
| .hints = PLUGIN_IS_RTSAFE, | |||
| .supports = PLUGIN_SUPPORTS_EVERYTHING, | |||
| @@ -26,10 +26,10 @@ | |||
| // ----------------------------------------------------------------------- | |||
| static const PluginDescriptor nekofilterDesc = { | |||
| static const NativePluginDescriptor nekofilterDesc = { | |||
| .category = PLUGIN_CATEGORY_FILTER, | |||
| #ifdef WANT_UI | |||
| .hints = PLUGIN_IS_RTSAFE|PLUGIN_HAS_GUI, | |||
| .hints = PLUGIN_IS_RTSAFE|PLUGIN_HAS_UI, | |||
| #else | |||
| .hints = PLUGIN_IS_RTSAFE, | |||
| #endif | |||
| @@ -47,15 +47,15 @@ struct nekofilter | |||
| filter_handle filter; | |||
| float params_global[GLOBAL_PARAMETERS_COUNT]; | |||
| float params_bands[BAND_PARAMETERS_COUNT*BANDS_COUNT]; | |||
| const HostDescriptor* host; | |||
| const NativeHostDescriptor* host; | |||
| #ifdef WANT_UI | |||
| struct control* ui; | |||
| #endif | |||
| }; | |||
| PluginHandle | |||
| NativePluginHandle | |||
| nekofilter_instantiate( | |||
| const HostDescriptor* host) | |||
| const NativeHostDescriptor* host) | |||
| { | |||
| struct nekofilter * nekofilter_ptr; | |||
| unsigned int i; | |||
| @@ -134,14 +134,14 @@ nekofilter_instantiate( | |||
| &nekofilter_ptr->params_bands[i*BAND_PARAMETERS_COUNT + BAND_PARAMETER_GAIN]); | |||
| } | |||
| return (PluginHandle)nekofilter_ptr; | |||
| return (NativePluginHandle)nekofilter_ptr; | |||
| } | |||
| #define nekofilter_ptr ((struct nekofilter *)handle) | |||
| uint32_t | |||
| nekofilter_get_parameter_count( | |||
| PluginHandle handle) | |||
| NativePluginHandle handle) | |||
| { | |||
| return GLOBAL_PARAMETERS_COUNT + BAND_PARAMETERS_COUNT*BANDS_COUNT; | |||
| @@ -149,12 +149,12 @@ nekofilter_get_parameter_count( | |||
| (void)handle; | |||
| } | |||
| const Parameter* | |||
| const NativeParameter* | |||
| nekofilter_get_parameter_info( | |||
| PluginHandle handle, | |||
| NativePluginHandle handle, | |||
| uint32_t index) | |||
| { | |||
| static Parameter param; | |||
| static NativeParameter param; | |||
| static bool first_init = true; | |||
| uint32_t band; | |||
| char strBuf[32]; | |||
| @@ -288,7 +288,7 @@ ready: | |||
| float | |||
| nekofilter_get_parameter_value( | |||
| PluginHandle handle, | |||
| NativePluginHandle handle, | |||
| uint32_t index) | |||
| { | |||
| if (index < GLOBAL_PARAMETERS_COUNT) | |||
| @@ -306,7 +306,7 @@ nekofilter_get_parameter_value( | |||
| void | |||
| nekofilter_set_parameter_value( | |||
| PluginHandle handle, | |||
| NativePluginHandle handle, | |||
| uint32_t index, | |||
| float value) | |||
| { | |||
| @@ -325,11 +325,11 @@ nekofilter_set_parameter_value( | |||
| void | |||
| nekofilter_process( | |||
| PluginHandle handle, | |||
| NativePluginHandle handle, | |||
| float** inBuffer, | |||
| float** outBuffer, | |||
| uint32_t frames, | |||
| const MidiEvent* midiEvents, | |||
| const NativeMidiEvent* midiEvents, | |||
| uint32_t midiEventCount) | |||
| { | |||
| LOG_DEBUG("nekofilter_run"); | |||
| @@ -348,7 +348,7 @@ nekofilter_process( | |||
| #ifdef WANT_UI | |||
| void nekofilter_ui_show( | |||
| PluginHandle handle, | |||
| NativePluginHandle handle, | |||
| bool show) | |||
| { | |||
| if (show) | |||
| @@ -365,14 +365,14 @@ void nekofilter_ui_show( | |||
| } | |||
| void nekofilter_ui_idle( | |||
| PluginHandle handle) | |||
| NativePluginHandle handle) | |||
| { | |||
| if (nekofilter_ptr->ui != NULL) | |||
| nekoui_run(nekofilter_ptr->ui); | |||
| } | |||
| void nekofilter_ui_set_parameter_value( | |||
| PluginHandle handle, | |||
| NativePluginHandle handle, | |||
| uint32_t index, | |||
| float value) | |||
| { | |||
| @@ -383,7 +383,7 @@ void nekofilter_ui_set_parameter_value( | |||
| void | |||
| nekofilter_cleanup( | |||
| PluginHandle handle) | |||
| NativePluginHandle handle) | |||
| { | |||
| #ifdef WANT_UI | |||
| if (nekofilter_ptr->ui != NULL) | |||
| @@ -69,7 +69,7 @@ | |||
| struct control | |||
| { | |||
| const HostDescriptor* host; | |||
| const NativeHostDescriptor* host; | |||
| bool running; /* true if UI launched and 'exiting' not received */ | |||
| bool visible; /* true if 'show' sent */ | |||
| @@ -365,7 +365,7 @@ static bool do_fork(const char * argv[6], int* ret) | |||
| static | |||
| struct control* | |||
| nekoui_instantiate( | |||
| const HostDescriptor* host) | |||
| const NativeHostDescriptor* host) | |||
| { | |||
| struct control * control_ptr; | |||
| char * filename; | |||
| @@ -30,7 +30,7 @@ using namespace juce; | |||
| // ----------------------------------------------------------------------- | |||
| class VexArpPlugin : public PluginClass, | |||
| class VexArpPlugin : public NativePluginClass, | |||
| public PeggyViewComponent::Callback | |||
| { | |||
| public: | |||
| @@ -45,8 +45,8 @@ public: | |||
| kParamCount = kParamLast + VexArpSettings::kVelocitiesSize + VexArpSettings::kGridSize | |||
| }; | |||
| VexArpPlugin(const HostDescriptor* const host) | |||
| : PluginClass(host), | |||
| VexArpPlugin(const NativeHostDescriptor* const host) | |||
| : NativePluginClass(host), | |||
| fArp(&fSettings), | |||
| fNeedsUpdate(true) | |||
| { | |||
| @@ -63,10 +63,10 @@ protected: | |||
| return kParamCount; | |||
| } | |||
| const Parameter* getParameterInfo(const uint32_t index) const override | |||
| const NativeParameter* getParameterInfo(const uint32_t index) const override | |||
| { | |||
| static Parameter paramInfo; | |||
| static ParameterScalePoint scalePoints[4]; | |||
| static NativeParameter paramInfo; | |||
| static NativeParameterScalePoint scalePoints[4]; | |||
| static char bufName[24+1]; | |||
| int hints = PARAMETER_IS_ENABLED|PARAMETER_IS_AUTOMABLE; | |||
| @@ -183,7 +183,7 @@ protected: | |||
| paramInfo.name = bufName; | |||
| } | |||
| paramInfo.hints = static_cast<ParameterHints>(hints); | |||
| paramInfo.hints = static_cast<NativeParameterHints>(hints); | |||
| return ¶mInfo; | |||
| } | |||
| @@ -261,7 +261,7 @@ protected: | |||
| // ------------------------------------------------------------------- | |||
| // Plugin process calls | |||
| void process(float**, float**, const uint32_t frames, const MidiEvent* const midiEvents, const uint32_t midiEventCount) override | |||
| void process(float**, float**, const uint32_t frames, const NativeMidiEvent* const midiEvents, const uint32_t midiEventCount) override | |||
| { | |||
| if (! fSettings.on) | |||
| { | |||
| @@ -271,7 +271,7 @@ protected: | |||
| return; | |||
| } | |||
| const TimeInfo* const timeInfo(getTimeInfo()); | |||
| const NativeTimeInfo* const timeInfo(getTimeInfo()); | |||
| bool timePlaying = false; | |||
| double ppqPos = 0.0; | |||
| @@ -298,7 +298,7 @@ protected: | |||
| for (uint32_t i=0; i < midiEventCount; ++i) | |||
| { | |||
| const MidiEvent* const midiEvent(&midiEvents[i]); | |||
| const NativeMidiEvent* const midiEvent(&midiEvents[i]); | |||
| fMidiInBuffer.addEvent(midiEvent->data, midiEvent->size, midiEvent->time); | |||
| } | |||
| @@ -309,7 +309,7 @@ protected: | |||
| int numBytes; | |||
| int sampleNumber; | |||
| MidiEvent tmpEvent; | |||
| NativeMidiEvent tmpEvent; | |||
| tmpEvent.port = 0; | |||
| while (outBufferIterator.getNextEvent(midiData, numBytes, sampleNumber)) | |||
| @@ -429,7 +429,7 @@ private: | |||
| // ----------------------------------------------------------------------- | |||
| class VexChorusPlugin : public PluginClass | |||
| class VexChorusPlugin : public NativePluginClass | |||
| { | |||
| public: | |||
| enum Params { | |||
| @@ -438,8 +438,8 @@ public: | |||
| kParamCount | |||
| }; | |||
| VexChorusPlugin(const HostDescriptor* const host) | |||
| : PluginClass(host), | |||
| VexChorusPlugin(const NativeHostDescriptor* const host) | |||
| : NativePluginClass(host), | |||
| fChorus(fParameters) | |||
| { | |||
| std::memset(fParameters, 0, sizeof(float)*92); | |||
| @@ -459,9 +459,9 @@ protected: | |||
| return kParamCount; | |||
| } | |||
| const Parameter* getParameterInfo(const uint32_t index) const override | |||
| const NativeParameter* getParameterInfo(const uint32_t index) const override | |||
| { | |||
| static Parameter paramInfo; | |||
| static NativeParameter paramInfo; | |||
| int hints = PARAMETER_IS_ENABLED|PARAMETER_IS_AUTOMABLE; | |||
| @@ -488,7 +488,7 @@ protected: | |||
| break; | |||
| } | |||
| paramInfo.hints = static_cast<ParameterHints>(hints); | |||
| paramInfo.hints = static_cast<NativeParameterHints>(hints); | |||
| return ¶mInfo; | |||
| } | |||
| @@ -527,7 +527,7 @@ protected: | |||
| // ------------------------------------------------------------------- | |||
| // Plugin process calls | |||
| void process(float** const inBuffer, float** const outBuffer, const uint32_t frames, const MidiEvent* const, const uint32_t) override | |||
| void process(float** const inBuffer, float** const outBuffer, const uint32_t frames, const NativeMidiEvent* const, const uint32_t) override | |||
| { | |||
| if (inBuffer[0] != outBuffer[0]) | |||
| FloatVectorOperations::copy(outBuffer[0], inBuffer[0], frames); | |||
| @@ -555,7 +555,7 @@ private: | |||
| // ----------------------------------------------------------------------- | |||
| class VexDelayPlugin : public PluginClass | |||
| class VexDelayPlugin : public NativePluginClass | |||
| { | |||
| public: | |||
| enum Params { | |||
| @@ -564,8 +564,8 @@ public: | |||
| kParamCount | |||
| }; | |||
| VexDelayPlugin(const HostDescriptor* const host) | |||
| : PluginClass(host), | |||
| VexDelayPlugin(const NativeHostDescriptor* const host) | |||
| : NativePluginClass(host), | |||
| fDelay(fParameters) | |||
| { | |||
| std::memset(fParameters, 0, sizeof(float)*92); | |||
| @@ -585,9 +585,9 @@ protected: | |||
| return kParamCount; | |||
| } | |||
| const Parameter* getParameterInfo(const uint32_t index) const override | |||
| const NativeParameter* getParameterInfo(const uint32_t index) const override | |||
| { | |||
| static Parameter paramInfo; | |||
| static NativeParameter paramInfo; | |||
| int hints = PARAMETER_IS_ENABLED|PARAMETER_IS_AUTOMABLE; | |||
| @@ -621,7 +621,7 @@ protected: | |||
| break; | |||
| } | |||
| paramInfo.hints = static_cast<ParameterHints>(hints); | |||
| paramInfo.hints = static_cast<NativeParameterHints>(hints); | |||
| return ¶mInfo; | |||
| } | |||
| @@ -660,14 +660,14 @@ protected: | |||
| // ------------------------------------------------------------------- | |||
| // Plugin process calls | |||
| void process(float** const inBuffer, float** const outBuffer, const uint32_t frames, const MidiEvent* const, const uint32_t) override | |||
| void process(float** const inBuffer, float** const outBuffer, const uint32_t frames, const NativeMidiEvent* const, const uint32_t) override | |||
| { | |||
| if (inBuffer[0] != outBuffer[0]) | |||
| FloatVectorOperations::copy(outBuffer[0], inBuffer[0], frames); | |||
| if (inBuffer[1] != outBuffer[1]) | |||
| FloatVectorOperations::copy(outBuffer[1], inBuffer[1], frames); | |||
| const TimeInfo* const timeInfo(getTimeInfo()); | |||
| const NativeTimeInfo* const timeInfo(getTimeInfo()); | |||
| const double bpm((timeInfo != nullptr && timeInfo->bbt.valid) ? timeInfo->bbt.beatsPerMinute : 120.0); | |||
| fDelay.processBlock(outBuffer[0], outBuffer[1], frames, bpm); | |||
| @@ -691,7 +691,7 @@ private: | |||
| // ----------------------------------------------------------------------- | |||
| class VexReverbPlugin : public PluginClass | |||
| class VexReverbPlugin : public NativePluginClass | |||
| { | |||
| public: | |||
| enum Params { | |||
| @@ -701,8 +701,8 @@ public: | |||
| kParamCount | |||
| }; | |||
| VexReverbPlugin(const HostDescriptor* const host) | |||
| : PluginClass(host), | |||
| VexReverbPlugin(const NativeHostDescriptor* const host) | |||
| : NativePluginClass(host), | |||
| fReverb(fParameters) | |||
| { | |||
| std::memset(fParameters, 0, sizeof(float)*92); | |||
| @@ -721,9 +721,9 @@ protected: | |||
| return kParamCount; | |||
| } | |||
| const Parameter* getParameterInfo(const uint32_t index) const override | |||
| const NativeParameter* getParameterInfo(const uint32_t index) const override | |||
| { | |||
| static Parameter paramInfo; | |||
| static NativeParameter paramInfo; | |||
| int hints = PARAMETER_IS_ENABLED|PARAMETER_IS_AUTOMABLE; | |||
| @@ -754,7 +754,7 @@ protected: | |||
| break; | |||
| } | |||
| paramInfo.hints = static_cast<ParameterHints>(hints); | |||
| paramInfo.hints = static_cast<NativeParameterHints>(hints); | |||
| return ¶mInfo; | |||
| } | |||
| @@ -798,7 +798,7 @@ protected: | |||
| // ------------------------------------------------------------------- | |||
| // Plugin process calls | |||
| void process(float** const inBuffer, float** const outBuffer, const uint32_t frames, const MidiEvent* const, const uint32_t) override | |||
| void process(float** const inBuffer, float** const outBuffer, const uint32_t frames, const NativeMidiEvent* const, const uint32_t) override | |||
| { | |||
| for (uint32_t i=0; i< frames; ++i) | |||
| FloatVectorOperations::copyWithMultiply(outBuffer[0], inBuffer[0], 0.5f, frames); | |||
| @@ -818,10 +818,10 @@ private: | |||
| // ----------------------------------------------------------------------- | |||
| static const PluginDescriptor vexArpDesc = { | |||
| static const NativePluginDescriptor vexArpDesc = { | |||
| /* category */ PLUGIN_CATEGORY_UTILITY, | |||
| /* hints */ static_cast<PluginHints>(PLUGIN_HAS_GUI|PLUGIN_NEEDS_UI_JUCE|PLUGIN_USES_TIME), | |||
| /* supports */ static_cast<PluginSupports>(PLUGIN_SUPPORTS_EVERYTHING), | |||
| /* hints */ static_cast<NativePluginHints>(PLUGIN_HAS_UI|PLUGIN_NEEDS_UI_JUCE|PLUGIN_USES_TIME), | |||
| /* supports */ static_cast<NativePluginSupports>(PLUGIN_SUPPORTS_EVERYTHING), | |||
| /* audioIns */ 0, | |||
| /* audioOuts */ 0, | |||
| /* midiIns */ 1, | |||
| @@ -835,10 +835,10 @@ static const PluginDescriptor vexArpDesc = { | |||
| PluginDescriptorFILL(VexArpPlugin) | |||
| }; | |||
| static const PluginDescriptor vexChorusDesc = { | |||
| static const NativePluginDescriptor vexChorusDesc = { | |||
| /* category */ PLUGIN_CATEGORY_MODULATOR, | |||
| /* hints */ static_cast<PluginHints>(PLUGIN_IS_RTSAFE), | |||
| /* supports */ static_cast<PluginSupports>(0x0), | |||
| /* hints */ static_cast<NativePluginHints>(PLUGIN_IS_RTSAFE), | |||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||
| /* audioIns */ 2, | |||
| /* audioOuts */ 2, | |||
| /* midiIns */ 0, | |||
| @@ -852,10 +852,10 @@ static const PluginDescriptor vexChorusDesc = { | |||
| PluginDescriptorFILL(VexChorusPlugin) | |||
| }; | |||
| static const PluginDescriptor vexDelayDesc = { | |||
| static const NativePluginDescriptor vexDelayDesc = { | |||
| /* category */ PLUGIN_CATEGORY_DELAY, | |||
| /* hints */ static_cast<PluginHints>(PLUGIN_IS_RTSAFE|PLUGIN_USES_TIME), | |||
| /* supports */ static_cast<PluginSupports>(0x0), | |||
| /* hints */ static_cast<NativePluginHints>(PLUGIN_IS_RTSAFE|PLUGIN_USES_TIME), | |||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||
| /* audioIns */ 2, | |||
| /* audioOuts */ 2, | |||
| /* midiIns */ 0, | |||
| @@ -869,10 +869,10 @@ static const PluginDescriptor vexDelayDesc = { | |||
| PluginDescriptorFILL(VexDelayPlugin) | |||
| }; | |||
| static const PluginDescriptor vexReverbDesc = { | |||
| static const NativePluginDescriptor vexReverbDesc = { | |||
| /* category */ PLUGIN_CATEGORY_DELAY, | |||
| /* hints */ static_cast<PluginHints>(PLUGIN_IS_RTSAFE), | |||
| /* supports */ static_cast<PluginSupports>(0x0), | |||
| /* hints */ static_cast<NativePluginHints>(PLUGIN_IS_RTSAFE), | |||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||
| /* audioIns */ 2, | |||
| /* audioOuts */ 2, | |||
| /* midiIns */ 0, | |||
| @@ -32,11 +32,11 @@ using juce::FloatVectorOperations; | |||
| // ----------------------------------------------------------------------- | |||
| class FxAbstractPlugin : public PluginClass | |||
| class FxAbstractPlugin : public NativePluginClass | |||
| { | |||
| protected: | |||
| FxAbstractPlugin(const HostDescriptor* const host, const uint32_t paramCount, const uint32_t programCount) | |||
| : PluginClass(host), | |||
| FxAbstractPlugin(const NativeHostDescriptor* const host, const uint32_t paramCount, const uint32_t programCount) | |||
| : NativePluginClass(host), | |||
| fParamCount(paramCount-2), // volume and pan handled by host | |||
| fProgramCount(programCount), | |||
| fEffect(nullptr), | |||
| @@ -135,7 +135,7 @@ protected: | |||
| } | |||
| } | |||
| void process(float** const inBuffer, float** const outBuffer, const uint32_t frames, const MidiEvent* const, const uint32_t) final | |||
| void process(float** const inBuffer, float** const outBuffer, const uint32_t frames, const NativeMidiEvent* const, const uint32_t) final | |||
| { | |||
| fEffect->out(Stereo<float*>(inBuffer[0], inBuffer[1])); | |||
| @@ -199,7 +199,7 @@ protected: | |||
| class FxAlienWahPlugin : public FxAbstractPlugin | |||
| { | |||
| public: | |||
| FxAlienWahPlugin(const HostDescriptor* const host) | |||
| FxAlienWahPlugin(const NativeHostDescriptor* const host) | |||
| : FxAbstractPlugin(host, 11, 4) | |||
| { | |||
| fEffect = new Alienwah(false, efxoutl, efxoutr, getSampleRate(), getBufferSize()); | |||
| @@ -209,13 +209,13 @@ protected: | |||
| // ------------------------------------------------------------------- | |||
| // Plugin parameter calls | |||
| const Parameter* getParameterInfo(const uint32_t index) const override | |||
| const NativeParameter* getParameterInfo(const uint32_t index) const override | |||
| { | |||
| if (index >= fParamCount) | |||
| return nullptr; | |||
| static Parameter param; | |||
| static ParameterScalePoint scalePoints[2]; | |||
| static NativeParameter param; | |||
| static NativeParameterScalePoint scalePoints[2]; | |||
| int hints = PARAMETER_IS_ENABLED|PARAMETER_IS_INTEGER; | |||
| @@ -287,7 +287,7 @@ protected: | |||
| break; | |||
| } | |||
| param.hints = static_cast<ParameterHints>(hints); | |||
| param.hints = static_cast<NativeParameterHints>(hints); | |||
| return ¶m; | |||
| } | |||
| @@ -295,12 +295,12 @@ protected: | |||
| // ------------------------------------------------------------------- | |||
| // Plugin midi-program calls | |||
| const MidiProgram* getMidiProgramInfo(const uint32_t index) const override | |||
| const NativeMidiProgram* getMidiProgramInfo(const uint32_t index) const override | |||
| { | |||
| if (index >= fProgramCount) | |||
| return nullptr; | |||
| static MidiProgram midiProg; | |||
| static NativeMidiProgram midiProg; | |||
| midiProg.bank = 0; | |||
| midiProg.program = index; | |||
| @@ -344,7 +344,7 @@ protected: | |||
| class FxChorusPlugin : public FxAbstractPlugin | |||
| { | |||
| public: | |||
| FxChorusPlugin(const HostDescriptor* const host) | |||
| FxChorusPlugin(const NativeHostDescriptor* const host) | |||
| : FxAbstractPlugin(host, 12, 10) | |||
| { | |||
| fEffect = new Chorus(false, efxoutl, efxoutr, getSampleRate(), getBufferSize()); | |||
| @@ -354,13 +354,13 @@ protected: | |||
| // ------------------------------------------------------------------- | |||
| // Plugin parameter calls | |||
| const Parameter* getParameterInfo(const uint32_t index) const override | |||
| const NativeParameter* getParameterInfo(const uint32_t index) const override | |||
| { | |||
| if (index >= fParamCount) | |||
| return nullptr; | |||
| static Parameter param; | |||
| static ParameterScalePoint scalePoints[2]; | |||
| static NativeParameter param; | |||
| static NativeParameterScalePoint scalePoints[2]; | |||
| int hints = PARAMETER_IS_ENABLED|PARAMETER_IS_INTEGER; | |||
| @@ -438,7 +438,7 @@ protected: | |||
| break; | |||
| } | |||
| param.hints = static_cast<ParameterHints>(hints); | |||
| param.hints = static_cast<NativeParameterHints>(hints); | |||
| return ¶m; | |||
| } | |||
| @@ -446,12 +446,12 @@ protected: | |||
| // ------------------------------------------------------------------- | |||
| // Plugin midi-program calls | |||
| const MidiProgram* getMidiProgramInfo(const uint32_t index) const override | |||
| const NativeMidiProgram* getMidiProgramInfo(const uint32_t index) const override | |||
| { | |||
| if (index >= fProgramCount) | |||
| return nullptr; | |||
| static MidiProgram midiProg; | |||
| static NativeMidiProgram midiProg; | |||
| midiProg.bank = 0; | |||
| midiProg.program = index; | |||
| @@ -513,7 +513,7 @@ protected: | |||
| class FxDistortionPlugin : public FxAbstractPlugin | |||
| { | |||
| public: | |||
| FxDistortionPlugin(const HostDescriptor* const host) | |||
| FxDistortionPlugin(const NativeHostDescriptor* const host) | |||
| : FxAbstractPlugin(host, 11, 6) | |||
| { | |||
| fEffect = new Distorsion(false, efxoutl, efxoutr, getSampleRate(), getBufferSize()); | |||
| @@ -523,13 +523,13 @@ protected: | |||
| // ------------------------------------------------------------------- | |||
| // Plugin parameter calls | |||
| const Parameter* getParameterInfo(const uint32_t index) const override | |||
| const NativeParameter* getParameterInfo(const uint32_t index) const override | |||
| { | |||
| if (index >= fParamCount) | |||
| return nullptr; | |||
| static Parameter param; | |||
| static ParameterScalePoint scalePoints[14]; | |||
| static NativeParameter param; | |||
| static NativeParameterScalePoint scalePoints[14]; | |||
| int hints = PARAMETER_IS_ENABLED|PARAMETER_IS_INTEGER; | |||
| @@ -627,7 +627,7 @@ protected: | |||
| break; | |||
| } | |||
| param.hints = static_cast<ParameterHints>(hints); | |||
| param.hints = static_cast<NativeParameterHints>(hints); | |||
| return ¶m; | |||
| } | |||
| @@ -635,12 +635,12 @@ protected: | |||
| // ------------------------------------------------------------------- | |||
| // Plugin midi-program calls | |||
| const MidiProgram* getMidiProgramInfo(const uint32_t index) const override | |||
| const NativeMidiProgram* getMidiProgramInfo(const uint32_t index) const override | |||
| { | |||
| if (index >= fProgramCount) | |||
| return nullptr; | |||
| static MidiProgram midiProg; | |||
| static NativeMidiProgram midiProg; | |||
| midiProg.bank = 0; | |||
| midiProg.program = index; | |||
| @@ -690,7 +690,7 @@ protected: | |||
| class FxDynamicFilterPlugin : public FxAbstractPlugin | |||
| { | |||
| public: | |||
| FxDynamicFilterPlugin(const HostDescriptor* const host) | |||
| FxDynamicFilterPlugin(const NativeHostDescriptor* const host) | |||
| : FxAbstractPlugin(host, 10, 5) | |||
| { | |||
| fEffect = new DynamicFilter(false, efxoutl, efxoutr, getSampleRate(), getBufferSize()); | |||
| @@ -700,13 +700,13 @@ protected: | |||
| // ------------------------------------------------------------------- | |||
| // Plugin parameter calls | |||
| const Parameter* getParameterInfo(const uint32_t index) const override | |||
| const NativeParameter* getParameterInfo(const uint32_t index) const override | |||
| { | |||
| if (index >= fParamCount) | |||
| return nullptr; | |||
| static Parameter param; | |||
| static ParameterScalePoint scalePoints[2]; | |||
| static NativeParameter param; | |||
| static NativeParameterScalePoint scalePoints[2]; | |||
| int hints = PARAMETER_IS_ENABLED|PARAMETER_IS_INTEGER; | |||
| @@ -773,7 +773,7 @@ protected: | |||
| break; | |||
| } | |||
| param.hints = static_cast<ParameterHints>(hints); | |||
| param.hints = static_cast<NativeParameterHints>(hints); | |||
| return ¶m; | |||
| } | |||
| @@ -781,12 +781,12 @@ protected: | |||
| // ------------------------------------------------------------------- | |||
| // Plugin midi-program calls | |||
| const MidiProgram* getMidiProgramInfo(const uint32_t index) const override | |||
| const NativeMidiProgram* getMidiProgramInfo(const uint32_t index) const override | |||
| { | |||
| if (index >= fProgramCount) | |||
| return nullptr; | |||
| static MidiProgram midiProg; | |||
| static NativeMidiProgram midiProg; | |||
| midiProg.bank = 0; | |||
| midiProg.program = index; | |||
| @@ -833,7 +833,7 @@ protected: | |||
| class FxEchoPlugin : public FxAbstractPlugin | |||
| { | |||
| public: | |||
| FxEchoPlugin(const HostDescriptor* const host) | |||
| FxEchoPlugin(const NativeHostDescriptor* const host) | |||
| : FxAbstractPlugin(host, 7, 9) | |||
| { | |||
| fEffect = new Echo(false, efxoutl, efxoutr, getSampleRate(), getBufferSize()); | |||
| @@ -843,12 +843,12 @@ protected: | |||
| // ------------------------------------------------------------------- | |||
| // Plugin parameter calls | |||
| const Parameter* getParameterInfo(const uint32_t index) const override | |||
| const NativeParameter* getParameterInfo(const uint32_t index) const override | |||
| { | |||
| if (index >= fParamCount) | |||
| return nullptr; | |||
| static Parameter param; | |||
| static NativeParameter param; | |||
| int hints = PARAMETER_IS_ENABLED|PARAMETER_IS_INTEGER; | |||
| @@ -892,7 +892,7 @@ protected: | |||
| break; | |||
| } | |||
| param.hints = static_cast<ParameterHints>(hints); | |||
| param.hints = static_cast<NativeParameterHints>(hints); | |||
| return ¶m; | |||
| } | |||
| @@ -900,12 +900,12 @@ protected: | |||
| // ------------------------------------------------------------------- | |||
| // Plugin midi-program calls | |||
| const MidiProgram* getMidiProgramInfo(const uint32_t index) const override | |||
| const NativeMidiProgram* getMidiProgramInfo(const uint32_t index) const override | |||
| { | |||
| if (index >= fProgramCount) | |||
| return nullptr; | |||
| static MidiProgram midiProg; | |||
| static NativeMidiProgram midiProg; | |||
| midiProg.bank = 0; | |||
| midiProg.program = index; | |||
| @@ -964,7 +964,7 @@ protected: | |||
| class FxPhaserPlugin : public FxAbstractPlugin | |||
| { | |||
| public: | |||
| FxPhaserPlugin(const HostDescriptor* const host) | |||
| FxPhaserPlugin(const NativeHostDescriptor* const host) | |||
| : FxAbstractPlugin(host, 15, 12) | |||
| { | |||
| fEffect = new Phaser(false, efxoutl, efxoutr, getSampleRate(), getBufferSize()); | |||
| @@ -974,13 +974,13 @@ protected: | |||
| // ------------------------------------------------------------------- | |||
| // Plugin parameter calls | |||
| const Parameter* getParameterInfo(const uint32_t index) const override | |||
| const NativeParameter* getParameterInfo(const uint32_t index) const override | |||
| { | |||
| if (index >= fParamCount) | |||
| return nullptr; | |||
| static Parameter param; | |||
| static ParameterScalePoint scalePoints[2]; | |||
| static NativeParameter param; | |||
| static NativeParameterScalePoint scalePoints[2]; | |||
| int hints = PARAMETER_IS_ENABLED|PARAMETER_IS_INTEGER; | |||
| @@ -1075,7 +1075,7 @@ protected: | |||
| break; | |||
| } | |||
| param.hints = static_cast<ParameterHints>(hints); | |||
| param.hints = static_cast<NativeParameterHints>(hints); | |||
| return ¶m; | |||
| } | |||
| @@ -1083,12 +1083,12 @@ protected: | |||
| // ------------------------------------------------------------------- | |||
| // Plugin midi-program calls | |||
| const MidiProgram* getMidiProgramInfo(const uint32_t index) const override | |||
| const NativeMidiProgram* getMidiProgramInfo(const uint32_t index) const override | |||
| { | |||
| if (index >= fProgramCount) | |||
| return nullptr; | |||
| static MidiProgram midiProg; | |||
| static NativeMidiProgram midiProg; | |||
| midiProg.bank = 0; | |||
| midiProg.program = index; | |||
| @@ -1156,7 +1156,7 @@ protected: | |||
| class FxReverbPlugin : public FxAbstractPlugin | |||
| { | |||
| public: | |||
| FxReverbPlugin(const HostDescriptor* const host) | |||
| FxReverbPlugin(const NativeHostDescriptor* const host) | |||
| : FxAbstractPlugin(host, 13, 13) | |||
| { | |||
| fEffect = new Reverb(false, efxoutl, efxoutr, getSampleRate(), getBufferSize()); | |||
| @@ -1166,13 +1166,13 @@ protected: | |||
| // ------------------------------------------------------------------- | |||
| // Plugin parameter calls | |||
| const Parameter* getParameterInfo(const uint32_t index) const override | |||
| const NativeParameter* getParameterInfo(const uint32_t index) const override | |||
| { | |||
| if (index >= fParamCount) | |||
| return nullptr; | |||
| static Parameter param; | |||
| static ParameterScalePoint scalePoints[3]; | |||
| static NativeParameter param; | |||
| static NativeParameterScalePoint scalePoints[3]; | |||
| int hints = PARAMETER_IS_ENABLED | PARAMETER_IS_INTEGER; | |||
| @@ -1250,7 +1250,7 @@ protected: | |||
| break; | |||
| } | |||
| param.hints = static_cast<ParameterHints>(hints); | |||
| param.hints = static_cast<NativeParameterHints>(hints); | |||
| return ¶m; | |||
| } | |||
| @@ -1258,12 +1258,12 @@ protected: | |||
| // ------------------------------------------------------------------- | |||
| // Plugin midi-program calls | |||
| const MidiProgram* getMidiProgramInfo(const uint32_t index) const override | |||
| const NativeMidiProgram* getMidiProgramInfo(const uint32_t index) const override | |||
| { | |||
| if (index >= fProgramCount) | |||
| return nullptr; | |||
| static MidiProgram midiProg; | |||
| static NativeMidiProgram midiProg; | |||
| midiProg.bank = 0; | |||
| midiProg.program = index; | |||
| @@ -1331,10 +1331,10 @@ protected: | |||
| // ----------------------------------------------------------------------- | |||
| static const PluginDescriptor fxAlienWahDesc = { | |||
| static const NativePluginDescriptor fxAlienWahDesc = { | |||
| /* category */ PLUGIN_CATEGORY_MODULATOR, | |||
| /* hints */ static_cast<PluginHints>(PLUGIN_IS_RTSAFE|PLUGIN_USES_PANNING|PLUGIN_NEEDS_FIXED_BUFFERS), | |||
| /* supports */ static_cast<PluginSupports>(0x0), | |||
| /* hints */ static_cast<NativePluginHints>(PLUGIN_IS_RTSAFE|PLUGIN_USES_PANNING|PLUGIN_NEEDS_FIXED_BUFFERS), | |||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||
| /* audioIns */ 2, | |||
| /* audioOuts */ 2, | |||
| /* midiIns */ 0, | |||
| @@ -1348,10 +1348,10 @@ static const PluginDescriptor fxAlienWahDesc = { | |||
| PluginDescriptorFILL(FxAlienWahPlugin) | |||
| }; | |||
| static const PluginDescriptor fxChorusDesc = { | |||
| static const NativePluginDescriptor fxChorusDesc = { | |||
| /* category */ PLUGIN_CATEGORY_MODULATOR, | |||
| /* hints */ static_cast<PluginHints>(PLUGIN_IS_RTSAFE|PLUGIN_USES_PANNING|PLUGIN_NEEDS_FIXED_BUFFERS), | |||
| /* supports */ static_cast<PluginSupports>(0x0), | |||
| /* hints */ static_cast<NativePluginHints>(PLUGIN_IS_RTSAFE|PLUGIN_USES_PANNING|PLUGIN_NEEDS_FIXED_BUFFERS), | |||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||
| /* audioIns */ 2, | |||
| /* audioOuts */ 2, | |||
| /* midiIns */ 0, | |||
| @@ -1365,10 +1365,10 @@ static const PluginDescriptor fxChorusDesc = { | |||
| PluginDescriptorFILL(FxChorusPlugin) | |||
| }; | |||
| static const PluginDescriptor fxDistortionDesc = { | |||
| static const NativePluginDescriptor fxDistortionDesc = { | |||
| /* category */ PLUGIN_CATEGORY_MODULATOR, | |||
| /* hints */ static_cast<PluginHints>(PLUGIN_USES_PANNING|PLUGIN_NEEDS_FIXED_BUFFERS), | |||
| /* supports */ static_cast<PluginSupports>(0x0), | |||
| /* hints */ static_cast<NativePluginHints>(PLUGIN_USES_PANNING|PLUGIN_NEEDS_FIXED_BUFFERS), | |||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||
| /* audioIns */ 2, | |||
| /* audioOuts */ 2, | |||
| /* midiIns */ 0, | |||
| @@ -1382,10 +1382,10 @@ static const PluginDescriptor fxDistortionDesc = { | |||
| PluginDescriptorFILL(FxDistortionPlugin) | |||
| }; | |||
| static const PluginDescriptor fxDynamicFilterDesc = { | |||
| static const NativePluginDescriptor fxDynamicFilterDesc = { | |||
| /* category */ PLUGIN_CATEGORY_FILTER, | |||
| /* hints */ static_cast<PluginHints>(PLUGIN_USES_PANNING|PLUGIN_NEEDS_FIXED_BUFFERS), | |||
| /* supports */ static_cast<PluginSupports>(0x0), | |||
| /* hints */ static_cast<NativePluginHints>(PLUGIN_USES_PANNING|PLUGIN_NEEDS_FIXED_BUFFERS), | |||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||
| /* audioIns */ 2, | |||
| /* audioOuts */ 2, | |||
| /* midiIns */ 0, | |||
| @@ -1399,10 +1399,10 @@ static const PluginDescriptor fxDynamicFilterDesc = { | |||
| PluginDescriptorFILL(FxDynamicFilterPlugin) | |||
| }; | |||
| static const PluginDescriptor fxEchoDesc = { | |||
| static const NativePluginDescriptor fxEchoDesc = { | |||
| /* category */ PLUGIN_CATEGORY_DELAY, | |||
| /* hints */ static_cast<PluginHints>(PLUGIN_IS_RTSAFE|PLUGIN_USES_PANNING|PLUGIN_NEEDS_FIXED_BUFFERS), | |||
| /* supports */ static_cast<PluginSupports>(0x0), | |||
| /* hints */ static_cast<NativePluginHints>(PLUGIN_IS_RTSAFE|PLUGIN_USES_PANNING|PLUGIN_NEEDS_FIXED_BUFFERS), | |||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||
| /* audioIns */ 2, | |||
| /* audioOuts */ 2, | |||
| /* midiIns */ 0, | |||
| @@ -1416,10 +1416,10 @@ static const PluginDescriptor fxEchoDesc = { | |||
| PluginDescriptorFILL(FxEchoPlugin) | |||
| }; | |||
| static const PluginDescriptor fxPhaserDesc = { | |||
| static const NativePluginDescriptor fxPhaserDesc = { | |||
| /* category */ PLUGIN_CATEGORY_MODULATOR, | |||
| /* hints */ static_cast<PluginHints>(PLUGIN_USES_PANNING|PLUGIN_NEEDS_FIXED_BUFFERS), | |||
| /* supports */ static_cast<PluginSupports>(0x0), | |||
| /* hints */ static_cast<NativePluginHints>(PLUGIN_USES_PANNING|PLUGIN_NEEDS_FIXED_BUFFERS), | |||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||
| /* audioIns */ 2, | |||
| /* audioOuts */ 2, | |||
| /* midiIns */ 0, | |||
| @@ -1433,10 +1433,10 @@ static const PluginDescriptor fxPhaserDesc = { | |||
| PluginDescriptorFILL(FxPhaserPlugin) | |||
| }; | |||
| static const PluginDescriptor fxReverbDesc = { | |||
| static const NativePluginDescriptor fxReverbDesc = { | |||
| /* category */ PLUGIN_CATEGORY_DELAY, | |||
| /* hints */ static_cast<PluginHints>(PLUGIN_USES_PANNING|PLUGIN_NEEDS_FIXED_BUFFERS), | |||
| /* supports */ static_cast<PluginSupports>(0x0), | |||
| /* hints */ static_cast<NativePluginHints>(PLUGIN_USES_PANNING|PLUGIN_NEEDS_FIXED_BUFFERS), | |||
| /* supports */ static_cast<NativePluginSupports>(0x0), | |||
| /* audioIns */ 2, | |||
| /* audioOuts */ 2, | |||
| /* midiIns */ 0, | |||
| @@ -174,7 +174,7 @@ public: | |||
| return fPrograms.count(); | |||
| } | |||
| const MidiProgram* getInfo(const uint32_t index) | |||
| const NativeMidiProgram* getInfo(const uint32_t index) | |||
| { | |||
| if (index >= fPrograms.count()) | |||
| return nullptr; | |||
| @@ -218,7 +218,7 @@ private: | |||
| }; | |||
| bool fInitiated; | |||
| MidiProgram fRetProgram; | |||
| NativeMidiProgram fRetProgram; | |||
| List<const ProgramInfo*> fPrograms; | |||
| CARLA_DECLARE_NON_COPY_CLASS(ZynAddSubFxPrograms) | |||
| @@ -241,7 +241,7 @@ public: | |||
| CARLA_ASSERT(fCount == 0); | |||
| } | |||
| void addOne(const HostDescriptor* const host) | |||
| void addOne(const NativeHostDescriptor* const host) | |||
| { | |||
| if (fCount++ == 0) | |||
| { | |||
| @@ -278,7 +278,7 @@ public: | |||
| } | |||
| } | |||
| void reinit(const HostDescriptor* const host) | |||
| void reinit(const NativeHostDescriptor* const host) | |||
| { | |||
| Master::deleteInstance(); | |||
| @@ -313,7 +313,7 @@ public: | |||
| Master::getInstance(); | |||
| } | |||
| void maybeReinit(const HostDescriptor* const host) | |||
| void maybeReinit(const NativeHostDescriptor* const host) | |||
| { | |||
| if (host->get_buffer_size(host->handle) == static_cast<uint32_t>(synth->buffersize) && | |||
| host->get_sample_rate(host->handle) == static_cast<double>(synth->samplerate)) | |||
| @@ -335,7 +335,7 @@ static ZynAddSubFxInstanceCount sInstanceCount; | |||
| class ZynAddSubFxThread : public CarlaThread | |||
| { | |||
| public: | |||
| ZynAddSubFxThread(Master* const master, const HostDescriptor* const host) | |||
| ZynAddSubFxThread(Master* const master, const NativeHostDescriptor* const host) | |||
| : CarlaThread("ZynAddSubFxThread"), | |||
| fMaster(master), | |||
| kHost(host), | |||
| @@ -523,7 +523,7 @@ protected: | |||
| private: | |||
| Master* fMaster; | |||
| const HostDescriptor* const kHost; | |||
| const NativeHostDescriptor* const kHost; | |||
| #ifdef WANT_ZYNADDSUBFX_UI | |||
| MasterUI* fUi; | |||
| @@ -539,11 +539,11 @@ private: | |||
| // ----------------------------------------------------------------------- | |||
| class ZynAddSubFxPlugin : public PluginClass | |||
| class ZynAddSubFxPlugin : public NativePluginClass | |||
| { | |||
| public: | |||
| ZynAddSubFxPlugin(const HostDescriptor* const host) | |||
| : PluginClass(host), | |||
| ZynAddSubFxPlugin(const NativeHostDescriptor* const host) | |||
| : NativePluginClass(host), | |||
| fMaster(new Master()), | |||
| fSampleRate(getSampleRate()), | |||
| fIsActive(false), | |||
| @@ -571,7 +571,7 @@ protected: | |||
| return sPrograms.count(); | |||
| } | |||
| const MidiProgram* getMidiProgramInfo(const uint32_t index) const override | |||
| const NativeMidiProgram* getMidiProgramInfo(const uint32_t index) const override | |||
| { | |||
| return sPrograms.getInfo(index); | |||
| } | |||
| @@ -621,7 +621,7 @@ protected: | |||
| fIsActive = false; | |||
| } | |||
| void process(float**, float** const outBuffer, const uint32_t frames, const MidiEvent* const midiEvents, const uint32_t midiEventCount) override | |||
| void process(float**, float** const outBuffer, const uint32_t frames, const NativeMidiEvent* const midiEvents, const uint32_t midiEventCount) override | |||
| { | |||
| if (pthread_mutex_trylock(&fMaster->mutex) != 0) | |||
| { | |||
| @@ -637,7 +637,7 @@ protected: | |||
| for (uint32_t i=0; i < midiEventCount; ++i) | |||
| { | |||
| const MidiEvent* const midiEvent(&midiEvents[i]); | |||
| const NativeMidiEvent* const midiEvent(&midiEvents[i]); | |||
| const uint8_t status = MIDI_GET_STATUS_FROM_DATA(midiEvent->data); | |||
| const uint8_t channel = MIDI_GET_CHANNEL_FROM_DATA(midiEvent->data); | |||
| @@ -774,12 +774,12 @@ private: | |||
| ZynAddSubFxThread fThread; | |||
| public: | |||
| static PluginHandle _instantiate(const HostDescriptor* host) | |||
| static NativePluginHandle _instantiate(const NativeHostDescriptor* host) | |||
| { | |||
| sInstanceCount.addOne(host); | |||
| return new ZynAddSubFxPlugin(host); | |||
| } | |||
| static void _cleanup(PluginHandle handle) | |||
| static void _cleanup(NativePluginHandle handle) | |||
| { | |||
| delete (ZynAddSubFxPlugin*)handle; | |||
| sInstanceCount.removeOne(); | |||
| @@ -790,14 +790,14 @@ public: | |||
| // ----------------------------------------------------------------------- | |||
| static const PluginDescriptor zynaddsubfxDesc = { | |||
| static const NativePluginDescriptor zynaddsubfxDesc = { | |||
| /* category */ PLUGIN_CATEGORY_SYNTH, | |||
| #ifdef WANT_ZYNADDSUBFX_UI | |||
| /* hints */ static_cast<PluginHints>(PLUGIN_HAS_GUI|PLUGIN_USES_STATE), | |||
| /* hints */ static_cast<NativePluginHints>(PLUGIN_HAS_UI|PLUGIN_USES_STATE), | |||
| #else | |||
| /* hints */ static_cast<PluginHints>(PLUGIN_USES_STATE), | |||
| /* hints */ static_cast<NativePluginHints>(PLUGIN_USES_STATE), | |||
| #endif | |||
| /* supports */ static_cast<PluginSupports>(PLUGIN_SUPPORTS_CONTROL_CHANGES|PLUGIN_SUPPORTS_NOTE_AFTERTOUCH|PLUGIN_SUPPORTS_PITCHBEND|PLUGIN_SUPPORTS_ALL_SOUND_OFF), | |||
| /* supports */ static_cast<NativePluginSupports>(PLUGIN_SUPPORTS_CONTROL_CHANGES|PLUGIN_SUPPORTS_NOTE_AFTERTOUCH|PLUGIN_SUPPORTS_PITCHBEND|PLUGIN_SUPPORTS_ALL_SOUND_OFF), | |||
| /* audioIns */ 0, | |||
| /* audioOuts */ 2, | |||
| /* midiIns */ 1, | |||