BEAST/BSE - Better Audio System and Sound Engine
0.8.2
|
00001 // Licensed GNU LGPL v2.1 or later: http://www.gnu.org/licenses/lgpl.html 00002 #ifndef __BSE_PLUGIN_H__ 00003 #define __BSE_PLUGIN_H__ 00004 00005 #include <bse/bse.hh> /* for bse_check_version() */ 00006 #include <bse/bseexports.hh> 00007 00008 G_BEGIN_DECLS 00009 00010 00011 /* --- BSE type macros --- */ 00012 #define BSE_TYPE_PLUGIN (BSE_TYPE_ID (BsePlugin)) 00013 #define BSE_PLUGIN(plugin) (G_TYPE_CHECK_INSTANCE_CAST ((plugin), BSE_TYPE_PLUGIN, BsePlugin)) 00014 #define BSE_PLUGIN_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), BSE_TYPE_PLUGIN, BsePluginClass)) 00015 #define BSE_IS_PLUGIN(plugin) (G_TYPE_CHECK_INSTANCE_TYPE ((plugin), BSE_TYPE_PLUGIN)) 00016 #define BSE_IS_PLUGIN_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_PLUGIN)) 00017 #define BSE_PLUGIN_GET_CLASS(plugin) (G_TYPE_INSTANCE_GET_CLASS ((plugin), BSE_TYPE_PLUGIN, BsePluginClass)) 00018 00019 struct BsePlugin : GObject { 00020 gchar *fname; 00021 gpointer gmodule; 00022 guint64 missing_export_flags; 00023 guint use_count : 16; 00024 guint version_match : 1; 00025 guint force_clean : 1; 00026 guint resident_types : 1; 00027 00028 BseExportNode *chain; 00029 guint n_types; 00030 GType *types; 00031 }; 00032 struct BsePluginClass : GObjectClass 00033 {}; 00034 00035 SfiRing* bse_plugin_path_list_files (gboolean include_drivers, 00036 gboolean include_plugins); 00037 const gchar* bse_plugin_check_load (const gchar *file_name); 00038 void bse_plugin_make_resident (); 00039 /* --- implementation details --- */ 00040 void bse_plugin_init_builtins (void); 00041 extern BseExportIdentity bse_builtin_export_identity; /* sync with bsecxxplugin.hh */ 00042 G_END_DECLS 00043 #endif /* __BSE_PLUGIN_H__ */