SLV2 0.6.6
|
00001 /* SLV2 00002 * Copyright (C) 2007-2009 Dave Robillard <http://drobilla.net> 00003 * 00004 * This library is free software; you can redistribute it and/or modify it 00005 * under the terms of the GNU General Public License as published by the Free 00006 * Software Foundation; either version 2 of the License, or (at your option) 00007 * any later version. 00008 * 00009 * This library is distributed in the hope that it will be useful, but WITHOUT 00010 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00011 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 00012 * for more details. 00013 * 00014 * You should have received a copy of the GNU General Public License along 00015 * with this program; if not, write to the Free Software Foundation, Inc., 00016 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 00017 */ 00018 00019 #ifndef __SLV2_PLUGIN_H__ 00020 #define __SLV2_PLUGIN_H__ 00021 00022 #ifdef __cplusplus 00023 extern "C" { 00024 #endif 00025 00026 #include <stdint.h> 00027 #include <stdbool.h> 00028 #include "slv2/types.h" 00029 #include "slv2/port.h" 00030 #include "slv2/collections.h" 00031 00059 bool 00060 slv2_plugin_verify(SLV2Plugin plugin); 00061 00062 00079 SLV2Value 00080 slv2_plugin_get_uri(SLV2Plugin plugin); 00081 00082 00098 SLV2Value 00099 slv2_plugin_get_bundle_uri(SLV2Plugin plugin); 00100 00101 00114 SLV2Values 00115 slv2_plugin_get_data_uris(SLV2Plugin plugin); 00116 00117 00127 SLV2Value 00128 slv2_plugin_get_library_uri(SLV2Plugin plugin); 00129 00130 00139 SLV2Value 00140 slv2_plugin_get_name(SLV2Plugin plugin); 00141 00142 00145 SLV2PluginClass 00146 slv2_plugin_get_class(SLV2Plugin plugin); 00147 00148 00165 SLV2Values 00166 slv2_plugin_get_value(SLV2Plugin p, 00167 SLV2Value predicate); 00168 00169 00176 SLV2Values 00177 slv2_plugin_get_value_by_qname(SLV2Plugin p, 00178 const char* predicate); 00179 00180 00188 SLV2Values 00189 slv2_plugin_get_value_by_qname_i18n(SLV2Plugin p, 00190 const char* predicate); 00191 00192 00212 SLV2Values 00213 slv2_plugin_get_value_for_subject(SLV2Plugin p, 00214 SLV2Value subject_uri, 00215 SLV2Value predicate_uri); 00216 00217 00225 bool 00226 slv2_plugin_has_feature(SLV2Plugin p, 00227 SLV2Value feature_uri); 00228 00229 00242 SLV2Values 00243 slv2_plugin_get_supported_features(SLV2Plugin p); 00244 00245 00259 SLV2Values 00260 slv2_plugin_get_required_features(SLV2Plugin p); 00261 00262 00273 SLV2Values 00274 slv2_plugin_get_optional_features(SLV2Plugin p); 00275 00276 00281 uint32_t 00282 slv2_plugin_get_num_ports(SLV2Plugin p); 00283 00284 00299 void 00300 slv2_plugin_get_port_ranges_float(SLV2Plugin p, 00301 float* min_values, 00302 float* max_values, 00303 float* def_values); 00304 00313 uint32_t 00314 slv2_plugin_get_num_ports_of_class(SLV2Plugin p, 00315 SLV2Value class_1, ...); 00316 00324 bool 00325 slv2_plugin_has_latency(SLV2Plugin p); 00326 00327 00339 uint32_t 00340 slv2_plugin_get_latency_port_index(SLV2Plugin p); 00341 00342 00353 SLV2Values 00354 slv2_plugin_query_variable(SLV2Plugin plugin, 00355 const char* sparql_str, 00356 unsigned variable); 00357 00358 00369 unsigned 00370 slv2_plugin_query_count(SLV2Plugin plugin, 00371 const char* sparql_str); 00372 00373 00381 SLV2Port 00382 slv2_plugin_get_port_by_index(SLV2Plugin plugin, 00383 uint32_t index); 00384 00385 00395 SLV2Port 00396 slv2_plugin_get_port_by_symbol(SLV2Plugin plugin, 00397 SLV2Value symbol); 00398 00399 00412 SLV2UIs 00413 slv2_plugin_get_uis(SLV2Plugin plugin); 00414 00415 00423 SLV2Value 00424 slv2_plugin_get_author_name(SLV2Plugin plugin); 00425 00426 00434 SLV2Value 00435 slv2_plugin_get_author_email(SLV2Plugin plugin); 00436 00437 00445 SLV2Value 00446 slv2_plugin_get_author_homepage(SLV2Plugin plugin); 00447 00448 00451 #ifdef __cplusplus 00452 } /* extern "C" */ 00453 #endif 00454 00455 #endif /* __SLV2_PLUGIN_H__ */ 00456