From ebf610055f1f25d6224f0e096c6e400465e780c0 Mon Sep 17 00:00:00 2001 From: falkTX Date: Fri, 13 Sep 2013 01:37:11 +0100 Subject: [PATCH] Fixes to last commit --- source/modules/CarlaNative.h | 45 ++++++++++++++++++++++++------------ 1 file changed, 30 insertions(+), 15 deletions(-) diff --git a/source/modules/CarlaNative.h b/source/modules/CarlaNative.h index b00527056..aa1e7fbe9 100644 --- a/source/modules/CarlaNative.h +++ b/source/modules/CarlaNative.h @@ -71,16 +71,28 @@ extern "C" { * Multiple features can be set by using ":" in between them. * @{ */ -#define PLUGIN_FEATURE_RTSAFE "rtsafe" //!< Is hard-realtime safe. -#define PLUGIN_FEATURE_GUI "gui" //!< Provides custom UI. -#define PLUGIN_FEATURE_STATE "state" //!< Supports get_state() and set_state(). -#define PLUGIN_FEATURE_TIME "time" //!< Uses get_time_info(). -#define PLUGIN_FEATURE_WRITE_EVENT "writeevent" //!< Uses write_event(). -#define PLUGIN_FEATURE_FIXED_BUFFERS "fixedbuffers" //!< Needs fixed-size audio buffers. -#define PLUGIN_FEATURE_MONO_PANNING "monopanning" //!< Prefers mono-style panning. -#define PLUGIN_FEATURE_STEREO_BALANCE "stereobalance" //!< Prefers stereo balance. -#define PLUGIN_FEATURE_OPENSAVE "uiopensave" //!< UI uses ui_open_file() and/or ui_save_file() functions. -#define PLUGIN_FEATURE_SINGLE_THREAD "uisinglethread" //!< UI needs paramter, midi-program and custom-data changes in the main thread. +#define PLUGIN_FEATURE_RTSAFE "rtsafe" //!< Is hard-realtime safe. +#define PLUGIN_FEATURE_STATE "state" //!< Supports get_state() and set_state(). +#define PLUGIN_FEATURE_TIME "time" //!< Uses get_time_info(). +#define PLUGIN_FEATURE_WRITE_EVENT "writeevent" //!< Uses write_event(). +#define PLUGIN_FEATURE_FIXED_BUFFERS "fixedbuffers" //!< Needs fixed-size audio buffers. +#define PLUGIN_FEATURE_MONO_PANNING "monopanning" //!< Prefers mono-style panning. +#define PLUGIN_FEATURE_STEREO_BALANCE "stereobalance" //!< Prefers stereo balance. +/**@}*/ + +/*! + * @defgroup UiFeatures UI Features + * + * A list of UI features or hints. + * + * Custom features are allowed, as long as they are lowercase and contain ASCII characters only. + * The host can decide if it can load the plugin or not based on this information. + * + * Multiple features can be set by using ":" in between them. + * @{ + */ +#define UI_FEATURE_OPENSAVE "opensave" //!< Uses ui_open_file() and/or ui_save_file() functions. +#define UI_FEATURE_SINGLE_THREAD "singlethread" //!< Needs paramter, midi-program and custom-data changes in the main thread. /**@}*/ /*! @@ -358,6 +370,8 @@ typedef struct { void (*ui_closed)(UiHostHandle handle); // TODO: add some msgbox call + + // ui must set "opensave" feature to use these const char* (*ui_open_file)(UiHostHandle handle, bool isDir, const char* title, const char* filter); const char* (*ui_save_file)(UiHostHandle handle, bool isDir, const char* title, const char* filter); @@ -369,7 +383,7 @@ typedef struct { typedef struct _PluginDescriptor { const int api_version; //!< Must be set to CARLA_NATIVE_API_VERSION const char* const categories; //!< Categories. @see PluginCategories - const char* const hints; //!< Hints. @see PluginHints + const char* const features; //!< Features. @see PluginFeatures const char* const supports; //!< MIDI supported events. @see PluginSupports const uint32_t audioIns; //!< Default number of audio inputs. const uint32_t audioOuts; //!< Default number of audio outputs. @@ -404,7 +418,7 @@ typedef struct _PluginDescriptor { void (*deactivate)(PluginHandle handle); void (*process)(PluginHandle handle, float** inBuffer, float** outBuffer, uint32_t frames, const Event* events, uint32_t eventCount); - // only used is "state" feature is set + // only used if "state" feature is set char* (*get_state)(PluginHandle handle); void (*set_state)(PluginHandle handle, const char* data); @@ -416,9 +430,10 @@ typedef struct _PluginDescriptor { // UiDescriptor typedef struct { - const int api_version; //!< Must be set to CARLA_NATIVE_API_VERSION - const char* const author; //!< Author this UI matches to. - const char* const label; //!< Label this UI matches to, can only contain letters, numbers and "_". May be null, in which case represents all UIs for @a maker. + const int api_version; //!< Must be set to CARLA_NATIVE_API_VERSION + const char* const features; //!< Features. @see UiFeatures + const char* const author; //!< Author this UI matches to. + const char* const label; //!< Label this UI matches to, can only contain letters, numbers and "_". May be null, in which case represents all UIs for @a maker. UiHandle (*instantiate)(const UiHostDescriptor* host); void (*cleanup)(UiHandle handle);