suil.h | suil.h | |||
---|---|---|---|---|
/* | /* | |||
Copyright 2011 David Robillard <http://drobilla.net> | Copyright 2011-2012 David Robillard <http://drobilla.net> | |||
Permission to use, copy, modify, and/or distribute this software for any | Permission to use, copy, modify, and/or distribute this software for any | |||
purpose with or without fee is hereby granted, provided that the above | purpose with or without fee is hereby granted, provided that the above | |||
copyright notice and this permission notice appear in all copies. | copyright notice and this permission notice appear in all copies. | |||
THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |||
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |||
skipping to change at line 24 | skipping to change at line 24 | |||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |||
*/ | */ | |||
/** | /** | |||
@file suil.h API for Suil, an LV2 UI wrapper library. | @file suil.h API for Suil, an LV2 UI wrapper library. | |||
*/ | */ | |||
#ifndef SUIL_SUIL_H | #ifndef SUIL_SUIL_H | |||
#define SUIL_SUIL_H | #define SUIL_SUIL_H | |||
#include <stdbool.h> | ||||
#include <stdint.h> | #include <stdint.h> | |||
#include "lv2/lv2plug.in/ns/lv2core/lv2.h" | #include "lv2/lv2plug.in/ns/lv2core/lv2.h" | |||
#ifdef _WIN32 | ||||
# define SUIL_LIB_IMPORT __declspec(dllimport) | ||||
# define SUIL_LIB_EXPORT __declspec(dllexport) | ||||
#else | ||||
# define SUIL_LIB_IMPORT __attribute__((visibility("default"))) | ||||
# define SUIL_LIB_EXPORT __attribute__((visibility("default"))) | ||||
#endif | ||||
#ifdef SUIL_SHARED | #ifdef SUIL_SHARED | |||
# ifdef _WIN32 | ||||
# define SUIL_LIB_IMPORT __declspec(dllimport) | ||||
# define SUIL_LIB_EXPORT __declspec(dllexport) | ||||
# else | ||||
# define SUIL_LIB_IMPORT __attribute__((visibility("default"))) | ||||
# define SUIL_LIB_EXPORT __attribute__((visibility("default"))) | ||||
# endif | ||||
# ifdef SUIL_INTERNAL | # ifdef SUIL_INTERNAL | |||
# define SUIL_API SUIL_LIB_EXPORT | # define SUIL_API SUIL_LIB_EXPORT | |||
# else | # else | |||
# define SUIL_API SUIL_LIB_IMPORT | # define SUIL_API SUIL_LIB_IMPORT | |||
# endif | # endif | |||
#else | #else | |||
# define SUIL_API | # define SUIL_API | |||
#endif | #endif | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
extern "C" { | extern "C" { | |||
#else | ||||
# include <stdbool.h> | ||||
#endif | #endif | |||
/** | /** | |||
@defgroup suil Suil | @defgroup suil Suil | |||
Suil is a library for loading and wrapping LV2 plugin UIs. With Suil, a | Suil is a library for loading and wrapping LV2 plugin UIs. With Suil, a | |||
host written in one supported toolkit can embed a plugin UI written in a | host written in one supported toolkit can embed a plugin UI written in a | |||
different supported toolkit. Suil insulates hosts from toolkit librarie s | different supported toolkit. Suil insulates hosts from toolkit librarie s | |||
used by plugin UIs. For example, a Gtk host can embed a Qt UI without | used by plugin UIs. For example, a Gtk host can embed a Qt UI without | |||
linking against Qt at compile time. | linking against Qt at compile time. | |||
skipping to change at line 175 | skipping to change at line 177 | |||
const char* ui_type_uri); | const char* ui_type_uri); | |||
/** | /** | |||
Instantiate a UI for an LV2 plugin. | Instantiate a UI for an LV2 plugin. | |||
This funcion may load a suil module to adapt the UI to the desired toolk it. | This funcion may load a suil module to adapt the UI to the desired toolk it. | |||
Suil is configured at compile time to load modules from the appropriate | Suil is configured at compile time to load modules from the appropriate | |||
place, but this can be changed at run-time via the environment variable | place, but this can be changed at run-time via the environment variable | |||
SUIL_MODULE_DIR. This makes it possible to bundle suil with an applicat ion. | SUIL_MODULE_DIR. This makes it possible to bundle suil with an applicat ion. | |||
Note that some situations (Gtk in Qt, Windows in Gtk) require a parent | ||||
container to be passed as a feature with URI LV2_UI__parent | ||||
(http://lv2plug.in/ns/extensions/ui#ui) in order to work correctly. The | ||||
data must point to a single child container of the host widget set. | ||||
@param host Host descriptor. | @param host Host descriptor. | |||
@param controller Opaque host controller pointer. | @param controller Opaque host controller pointer. | |||
@param container_type_uri URI of the desired host container widget type. | @param container_type_uri URI of the desired host container widget type. | |||
@param plugin_uri URI of the plugin to instantiate this UI for. | @param plugin_uri URI of the plugin to instantiate this UI for. | |||
@param ui_uri URI of the specifically desired UI. | @param ui_uri URI of the specifically desired UI. | |||
@param ui_type_uri URI of the actual UI widget type. | @param ui_type_uri URI of the actual UI widget type. | |||
@param ui_bundle_path Path of the UI bundle. | @param ui_bundle_path Path of the UI bundle. | |||
@param ui_binary_path Path of the UI binary. | @param ui_binary_path Path of the UI binary. | |||
@param features NULL-terminated array of supported features, or NULL. | @param features NULL-terminated array of supported features, or NULL. | |||
@return A new UI instance, or NULL if instantiation failed. | @return A new UI instance, or NULL if instantiation failed. | |||
End of changes. 6 change blocks. | ||||
9 lines changed or deleted | 16 lines changed or added | |||