• Main Page
  • Modules
  • Files
  • File List

plugin.h

00001 /* SLV2
00002  * Copyright (C) 2007-2009 David 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 SLV2_API
00060 bool
00061 slv2_plugin_verify(SLV2Plugin plugin);
00062 
00063 
00080 SLV2_API
00081 SLV2Value
00082 slv2_plugin_get_uri(SLV2Plugin plugin);
00083 
00084 
00100 SLV2_API
00101 SLV2Value
00102 slv2_plugin_get_bundle_uri(SLV2Plugin plugin);
00103 
00104 
00117 SLV2_API
00118 SLV2Values
00119 slv2_plugin_get_data_uris(SLV2Plugin plugin);
00120 
00121 
00131 SLV2_API
00132 SLV2Value
00133 slv2_plugin_get_library_uri(SLV2Plugin plugin);
00134 
00135 
00145 SLV2_API
00146 SLV2Value
00147 slv2_plugin_get_name(SLV2Plugin plugin);
00148 
00149 
00152 SLV2_API
00153 SLV2PluginClass
00154 slv2_plugin_get_class(SLV2Plugin plugin);
00155 
00156 
00173 SLV2_API
00174 SLV2Values
00175 slv2_plugin_get_value(SLV2Plugin p,
00176                       SLV2Value  predicate);
00177 
00178 
00185 SLV2_API
00186 SLV2Values
00187 slv2_plugin_get_value_by_qname(SLV2Plugin  p,
00188                                const char* predicate);
00189 
00190 
00198 SLV2_API
00199 SLV2Values
00200 slv2_plugin_get_value_by_qname_i18n(SLV2Plugin  p,
00201                                     const char* predicate);
00202 
00203 
00223 SLV2_API
00224 SLV2Values
00225 slv2_plugin_get_value_for_subject(SLV2Plugin p,
00226                                   SLV2Value  subject_uri,
00227                                   SLV2Value  predicate_uri);
00228 
00229 
00237 SLV2_API
00238 bool
00239 slv2_plugin_has_feature(SLV2Plugin p,
00240                         SLV2Value  feature_uri);
00241 
00242 
00255 SLV2_API
00256 SLV2Values
00257 slv2_plugin_get_supported_features(SLV2Plugin p);
00258 
00259 
00273 SLV2_API
00274 SLV2Values
00275 slv2_plugin_get_required_features(SLV2Plugin p);
00276 
00277 
00288 SLV2_API
00289 SLV2Values
00290 slv2_plugin_get_optional_features(SLV2Plugin p);
00291 
00292 
00297 SLV2_API
00298 uint32_t
00299 slv2_plugin_get_num_ports(SLV2Plugin p);
00300 
00301 
00316 SLV2_API
00317 void
00318 slv2_plugin_get_port_ranges_float(SLV2Plugin p,
00319                                   float*     min_values,
00320                                   float*     max_values,
00321                                   float*     def_values);
00322 
00331 SLV2_API
00332 uint32_t
00333 slv2_plugin_get_num_ports_of_class(SLV2Plugin p,
00334                                    SLV2Value  class_1, ...);
00335 
00343 SLV2_API
00344 bool
00345 slv2_plugin_has_latency(SLV2Plugin p);
00346 
00347 
00359 SLV2_API
00360 uint32_t
00361 slv2_plugin_get_latency_port_index(SLV2Plugin p);
00362 
00363 
00374 SLV2_API
00375 SLV2Values
00376 slv2_plugin_query_variable(SLV2Plugin  plugin,
00377                            const char* sparql_str,
00378                            unsigned    variable);
00379 
00380 
00391 SLV2_API
00392 unsigned
00393 slv2_plugin_query_count(SLV2Plugin  plugin,
00394                         const char* sparql_str);
00395 
00396 
00404 SLV2_API
00405 SLV2Port
00406 slv2_plugin_get_port_by_index(SLV2Plugin plugin,
00407                               uint32_t   index);
00408 
00409 
00419 SLV2_API
00420 SLV2Port
00421 slv2_plugin_get_port_by_symbol(SLV2Plugin plugin,
00422                                SLV2Value  symbol);
00423 
00424 
00437 SLV2_API
00438 SLV2UIs
00439 slv2_plugin_get_uis(SLV2Plugin plugin);
00440 
00441 
00449 SLV2_API
00450 SLV2Value
00451 slv2_plugin_get_author_name(SLV2Plugin plugin);
00452 
00453 
00461 SLV2_API
00462 SLV2Value
00463 slv2_plugin_get_author_email(SLV2Plugin plugin);
00464 
00465 
00473 SLV2_API
00474 SLV2Value
00475 slv2_plugin_get_author_homepage(SLV2Plugin plugin);
00476 
00477 
00480 #ifdef __cplusplus
00481 } /* extern "C" */
00482 #endif
00483 
00484 #endif /* __SLV2_PLUGIN_H__ */
00485 

Generated on Fri Sep 3 2010 21:44:10 for SLV2 by  doxygen 1.7.1