File indexing completed on 2025-01-30 09:18:08
0001 #ifndef GAUDIPLUGINSERVICE_SRC_CAPI_PLUGINSERVICE_H
0002 #define GAUDIPLUGINSERVICE_SRC_CAPI_PLUGINSERVICE_H 1
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 #include <stdint.h>
0017
0018 #ifdef __cplusplus
0019 extern "C" {
0020 #endif
0021
0022 #if __GNUC__ >= 4
0023 # define CGAUDI_HASCLASSVISIBILITY
0024 #endif
0025
0026 #if defined( CGAUDI_HASCLASSVISIBILITY )
0027 # define CGAUDI_IMPORT __attribute__( ( visibility( "default" ) ) )
0028 # define CGAUDI_EXPORT __attribute__( ( visibility( "default" ) ) )
0029 # define CGAUDI_LOCAL __attribute__( ( visibility( "hidden" ) ) )
0030 #else
0031 # define CGAUDI_IMPORT
0032 # define CGAUDI_EXPORT
0033 # define CGAUDI_LOCAL
0034 #endif
0035
0036 #define CGAUDI_API CGAUDI_EXPORT
0037
0038 typedef struct {
0039 void* registry;
0040 } cgaudi_pluginsvc_t;
0041
0042 typedef struct {
0043 cgaudi_pluginsvc_t registry;
0044 const char* id;
0045 } cgaudi_factory_t;
0046
0047 typedef struct {
0048 cgaudi_pluginsvc_t registry;
0049 const char* id;
0050 const char* key;
0051 } cgaudi_property_t;
0052
0053 CGAUDI_API
0054 cgaudi_pluginsvc_t cgaudi_pluginsvc_instance( void );
0055
0056 CGAUDI_API
0057 int cgaudi_pluginsvc_get_factory_size( cgaudi_pluginsvc_t self );
0058
0059 CGAUDI_API
0060 cgaudi_factory_t cgaudi_pluginsvc_get_factory_at( cgaudi_pluginsvc_t self, int n );
0061
0062 CGAUDI_API
0063 const char* cgaudi_factory_get_library( cgaudi_factory_t self );
0064
0065 CGAUDI_API
0066 const char* cgaudi_factory_get_type( cgaudi_factory_t self );
0067
0068 CGAUDI_API
0069 const char* cgaudi_factory_get_classname( cgaudi_factory_t self );
0070
0071 CGAUDI_API
0072 int cgaudi_factory_get_property_size( cgaudi_factory_t self );
0073
0074 CGAUDI_API
0075 cgaudi_property_t cgaudi_factory_get_property_at( cgaudi_factory_t self, int n );
0076
0077 CGAUDI_API
0078 const char* cgaudi_property_get_key( cgaudi_property_t self );
0079
0080 CGAUDI_API
0081 const char* cgaudi_property_get_value( cgaudi_property_t self );
0082
0083 #ifdef __cplusplus
0084 }
0085 #endif
0086
0087 #endif