- Main Page
- Modules
- Files

- File List

# 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