@@ -553,7 +553,7 @@ lilv_world_free(LilvWorld* world); | |||||
with special plugin bundles which are installed to a known location). | with special plugin bundles which are installed to a known location). | ||||
*/ | */ | ||||
LILV_API void | LILV_API void | ||||
lilv_world_load_all(LilvWorld* world); | |||||
lilv_world_load_all(LilvWorld* world, const char* lv2_path); | |||||
/** | /** | ||||
Load a specific bundle. | Load a specific bundle. | ||||
@@ -234,6 +234,13 @@ struct Plugin { | |||||
LILV_WRAP0(Nodes, plugin, get_extension_data); | LILV_WRAP0(Nodes, plugin, get_extension_data); | ||||
LILV_WRAP0(UIs, plugin, get_uis); | LILV_WRAP0(UIs, plugin, get_uis); | ||||
LILV_WRAP1(Nodes, plugin, get_related, Node, type); | LILV_WRAP1(Nodes, plugin, get_related, Node, type); | ||||
LILV_WRAP0(Node, plugin, get_modgui_resources_directory); | |||||
LILV_WRAP0(Node, plugin, get_modgui_stylesheet); | |||||
LILV_WRAP0(Node, plugin, get_modgui_icon_template); | |||||
LILV_WRAP0(Node, plugin, get_modgui_settings_template); | |||||
LILV_WRAP0(Node, plugin, get_modgui_template_data); | |||||
LILV_WRAP0(Node, plugin, get_modgui_screenshot); | |||||
LILV_WRAP0(Node, plugin, get_modgui_thumbnail); | |||||
inline Port get_port_by_index(unsigned index) { | inline Port get_port_by_index(unsigned index) { | ||||
return Port(me, lilv_plugin_get_port_by_index(me, index)); | return Port(me, lilv_plugin_get_port_by_index(me, index)); | ||||
@@ -341,7 +348,7 @@ struct World { | |||||
} | } | ||||
LILV_WRAP2_VOID(world, set_option, const char*, uri, LilvNode*, value); | LILV_WRAP2_VOID(world, set_option, const char*, uri, LilvNode*, value); | ||||
LILV_WRAP0_VOID(world, load_all); | |||||
LILV_WRAP1_VOID(world, load_all, const char*, lv2_path); | |||||
LILV_WRAP1_VOID(world, load_bundle, LilvNode*, bundle_uri); | LILV_WRAP1_VOID(world, load_bundle, LilvNode*, bundle_uri); | ||||
LILV_WRAP0(const LilvPluginClass*, world, get_plugin_class); | LILV_WRAP0(const LilvPluginClass*, world, get_plugin_class); | ||||
LILV_WRAP0(const LilvPluginClasses*, world, get_plugin_classes); | LILV_WRAP0(const LilvPluginClasses*, world, get_plugin_classes); | ||||
@@ -160,54 +160,3 @@ lilv_ui_get_extension_data(const LilvUI* ui) | |||||
assert(ui->world); | assert(ui->world); | ||||
return lilv_ui_get_value_internal(ui, ui->world->uris.lv2_extensionData); | return lilv_ui_get_value_internal(ui, ui->world->uris.lv2_extensionData); | ||||
} | } | ||||
static LilvNodes* | |||||
lilv_ui_get_value_internal(const LilvUI* ui, const SordNode* predicate) | |||||
{ | |||||
assert(ui); | |||||
return lilv_world_find_nodes_internal(ui->world, ui->uri->node, predicate, NULL); | |||||
} | |||||
LILV_API const LilvNodes* | |||||
lilv_ui_get_supported_features(const LilvUI* ui) | |||||
{ | |||||
assert(ui); | |||||
LilvNodes* optional = lilv_ui_get_optional_features(ui); | |||||
LilvNodes* required = lilv_ui_get_required_features(ui); | |||||
LilvNodes* result = lilv_nodes_new(); | |||||
LILV_FOREACH(nodes, i, optional) | |||||
zix_tree_insert((ZixTree*)result, lilv_node_duplicate(lilv_nodes_get(optional, i)), NULL); | |||||
LILV_FOREACH(nodes, i, required) | |||||
zix_tree_insert((ZixTree*)result, lilv_node_duplicate(lilv_nodes_get(required, i)), NULL); | |||||
lilv_nodes_free(optional); | |||||
lilv_nodes_free(required); | |||||
return result; | |||||
} | |||||
LILV_API const LilvNodes* | |||||
lilv_ui_get_required_features(const LilvUI* ui) | |||||
{ | |||||
assert(ui); | |||||
assert(ui->world); | |||||
return lilv_ui_get_value_internal(ui, ui->world->uris.lv2_requiredFeature); | |||||
} | |||||
LILV_API const LilvNodes* | |||||
lilv_ui_get_optional_features(const LilvUI* ui) | |||||
{ | |||||
assert(ui); | |||||
assert(ui->world); | |||||
return lilv_ui_get_value_internal(ui, ui->world->uris.lv2_optionalFeature); | |||||
} | |||||
LILV_API const LilvNodes* | |||||
lilv_ui_get_extension_data(const LilvUI* ui) | |||||
{ | |||||
assert(ui); | |||||
assert(ui->world); | |||||
return lilv_ui_get_value_internal(ui, ui->world->uris.lv2_extensionData); | |||||
} |