SLV2 0.6.6
plugin.h
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 

Generated for SLV2 by doxygen 1.7.4