bool Window::is_resizable(LilvWorld* world, const LilvUI& ui) { auto& plug = score::GUIAppContext().applicationPlugin<Media::ApplicationPlugin>(); auto& h = plug.lv2_host_context; auto s = lilv_ui_get_uri(&ui); Lilv::Nodes fs_matches = plug.lilv.find_nodes(s, h.optional_feature, h.fixed_size); Lilv::Nodes nrs_matches = plug.lilv.find_nodes(s, h.optional_feature, h.no_user_resize); return fs_matches.me == nullptr && nrs_matches.me == nullptr; }
SuilInstance* instantiateUI (const LilvUI* ui, const LilvNode* containerType, const LilvNode* widgetType, const LV2_Feature* const * features) { const LilvNode* uri = lilv_ui_get_uri (ui); const LilvPlugin* plugin = owner.getPlugin(); SuilInstance* instance = suil_instance_new (suil, &owner, lilv_node_as_uri (containerType), lilv_node_as_uri (lilv_plugin_get_uri (plugin)), lilv_node_as_uri (uri), lilv_node_as_uri (widgetType), lilv_uri_to_path (lilv_node_as_uri (lilv_ui_get_bundle_uri (ui))), lilv_uri_to_path (lilv_node_as_uri (lilv_ui_get_binary_uri (ui))), features ); if (instance != nullptr) { // do something here? } return instance; }