BEAST/BSE - Better Audio System and Sound Engine  0.8.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
bseplugin.hh
Go to the documentation of this file.
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__ */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines