28 #include "lv2/lv2plug.in/ns/lv2core/lv2.h"
29 #include "lv2/lv2plug.in/ns/ext/urid/urid.h"
33 # define LILV_LIB_IMPORT __declspec(dllimport)
34 # define LILV_LIB_EXPORT __declspec(dllexport)
36 # define LILV_LIB_IMPORT __attribute__((visibility("default")))
37 # define LILV_LIB_EXPORT __attribute__((visibility("default")))
40 # define LILV_API LILV_LIB_EXPORT
42 # define LILV_API LILV_LIB_IMPORT
54 #define LILV_NS_DOAP "http://usefulinc.com/ns/doap#"
55 #define LILV_NS_FOAF "http://xmlns.com/foaf/0.1/"
56 #define LILV_NS_LILV "http://drobilla.net/ns/lilv#"
57 #define LILV_NS_LV2 "http://lv2plug.in/ns/lv2core#"
58 #define LILV_NS_OWL "http://www.w3.org/2002/07/owl#"
59 #define LILV_NS_RDF "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
60 #define LILV_NS_RDFS "http://www.w3.org/2000/01/rdf-schema#"
61 #define LILV_NS_XSD "http://www.w3.org/2001/XMLSchema#"
63 #define LILV_URI_AUDIO_PORT "http://lv2plug.in/ns/lv2core#AudioPort"
64 #define LILV_URI_CONTROL_PORT "http://lv2plug.in/ns/lv2core#ControlPort"
65 #define LILV_URI_EVENT_PORT "http://lv2plug.in/ns/ext/event#EventPort"
66 #define LILV_URI_INPUT_PORT "http://lv2plug.in/ns/lv2core#InputPort"
67 #define LILV_URI_MIDI_EVENT "http://lv2plug.in/ns/ext/midi#MidiEvent"
68 #define LILV_URI_OUTPUT_PORT "http://lv2plug.in/ns/lv2core#OutputPort"
69 #define LILV_URI_PORT "http://lv2plug.in/ns/lv2core#Port"
71 typedef struct LilvPluginImpl LilvPlugin;
72 typedef struct LilvPluginClassImpl LilvPluginClass;
73 typedef struct LilvPortImpl LilvPort;
74 typedef struct LilvScalePointImpl LilvScalePoint;
75 typedef struct LilvUIImpl LilvUI;
76 typedef struct LilvNodeImpl LilvNode;
77 typedef struct LilvWorldImpl LilvWorld;
78 typedef struct LilvInstanceImpl LilvInstance;
79 typedef struct LilvStateImpl LilvState;
81 typedef void LilvIter;
82 typedef void LilvPluginClasses;
83 typedef void LilvPlugins;
84 typedef void LilvScalePoints;
86 typedef void LilvNodes;
325 #define LILV_FOREACH(colltype, iter, collection) \
326 for (LilvIter* (iter) = lilv_ ## colltype ## _begin(collection); \
327 !lilv_ ## colltype ## _is_end(collection, iter); \
328 (iter) = lilv_ ## colltype ## _next(collection, iter))
345 const LilvPluginClass*
363 const LilvPluginClass*
365 const LilvNode* uri);
382 const LilvScalePoint*
428 const LilvNode* uri);
498 const LilvNode* uri);
525 #define LILV_OPTION_FILTER_LANG "http://drobilla.net/ns/lilv#filter-lang"
531 #define LILV_OPTION_DYN_MANIFEST "http://drobilla.net/ns/lilv#dyn-manifest"
544 const LilvNode* value);
587 LilvNode* bundle_uri);
600 const LilvNode* resource);
606 const LilvPluginClass*
614 const LilvPluginClasses*
640 const LilvNode* subject,
641 const LilvNode* predicate,
642 const LilvNode*
object);
734 const LilvPluginClass*
752 const LilvNode* predicate);
762 const LilvNode* feature_uri);
811 const LilvNode* uri);
859 const LilvNode* class_1, ...);
899 const LilvNode* symbol);
913 const LilvNode* port_class,
914 const LilvNode* designation);
972 const LilvPlugin* plugin,
973 const LilvNode* base_uri,
985 const LilvPlugin* plugin,
986 const LilvNode* base_uri,
988 const char* plugin_file_path);
1019 const LilvPort* port,
1020 const LilvNode* predicate);
1028 const LilvPort* port);
1036 const LilvPort* port,
1037 const LilvNode* property_uri);
1045 const LilvPort* port,
1046 const LilvNode* event_uri);
1056 const LilvPort* port);
1066 const LilvPort* port);
1077 const LilvPort* port);
1089 const LilvPort* port);
1102 const LilvPort* port,
1103 const LilvNode* port_class);
1116 const LilvPort* port,
1131 const LilvPort* port);
1148 const LilvNode* subject);
1167 const LilvNode* subject,
1189 typedef const void* (*LilvGetPortValueFunc)(
const char* port_symbol,
1254 LilvInstance* instance,
1256 const char* file_dir,
1257 const char* copy_dir,
1258 const char* link_dir,
1259 const char* save_dir,
1263 const LV2_Feature *
const * features);
1347 LilvInstance* instance,
1351 const LV2_Feature *
const * features);
1372 LV2_URID_Unmap* unmap,
1373 const LilvState* state,
1376 const char* filename);
1385 LV2_URID_Unmap* unmap,
1386 const LilvState* state,
1388 const char* base_uri);
1468 struct LilvInstanceImpl {
1469 const LV2_Descriptor* lv2_descriptor;
1470 LV2_Handle lv2_handle;
1491 const LV2_Feature*
const* features);
1502 #ifndef LILV_INTERNAL
1508 static inline const char*
1511 return instance->lv2_descriptor->URI;
1521 uint32_t port_index,
1522 void* data_location)
1524 instance->lv2_descriptor->connect_port
1525 (instance->lv2_handle, port_index, data_location);
1537 if (instance->lv2_descriptor->activate)
1538 instance->lv2_descriptor->activate(instance->lv2_handle);
1548 uint32_t sample_count)
1550 instance->lv2_descriptor->run(instance->lv2_handle, sample_count);
1561 if (instance->lv2_descriptor->deactivate)
1562 instance->lv2_descriptor->deactivate(instance->lv2_handle);
1570 static inline const void*
1574 if (instance->lv2_descriptor->extension_data)
1575 return instance->lv2_descriptor->extension_data(uri);
1587 static inline const LV2_Descriptor*
1590 return instance->lv2_descriptor;
1600 static inline LV2_Handle
1603 return instance->lv2_handle;
1650 lilv_ui_is_a(
const LilvUI* ui,
const LilvNode* class_uri);
1659 const char* ui_type_uri);
1674 const LilvNode* container_type,
1675 const LilvNode** ui_type);