BEAST/BSE - Better Audio System and Sound Engine  0.9.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
bseplugin.hh
Go to the documentation of this file.
1  // Licensed GNU LGPL v2.1 or later: http://www.gnu.org/licenses/lgpl.html
2 #ifndef __BSE_PLUGIN_H__
3 #define __BSE_PLUGIN_H__
4 
5 #include <bse/bse.hh> /* for bse_check_version() */
6 #include <bse/bseexports.hh>
7 
8 G_BEGIN_DECLS
9 
10 
11 /* --- BSE type macros --- */
12 #define BSE_TYPE_PLUGIN (BSE_TYPE_ID (BsePlugin))
13 #define BSE_PLUGIN(plugin) (G_TYPE_CHECK_INSTANCE_CAST ((plugin), BSE_TYPE_PLUGIN, BsePlugin))
14 #define BSE_PLUGIN_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), BSE_TYPE_PLUGIN, BsePluginClass))
15 #define BSE_IS_PLUGIN(plugin) (G_TYPE_CHECK_INSTANCE_TYPE ((plugin), BSE_TYPE_PLUGIN))
16 #define BSE_IS_PLUGIN_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_PLUGIN))
17 #define BSE_PLUGIN_GET_CLASS(plugin) (G_TYPE_INSTANCE_GET_CLASS ((plugin), BSE_TYPE_PLUGIN, BsePluginClass))
18 
19 struct BsePlugin : GObject {
20  gchar *fname;
21  gpointer gmodule;
22  guint64 missing_export_flags;
23  guint use_count : 16;
24  guint version_match : 1;
25  guint force_clean : 1;
26  guint resident_types : 1;
27 
28  BseExportNode *chain;
29  guint n_types;
30  GType *types;
31 };
32 struct BsePluginClass : GObjectClass
33 {};
34 
35 SfiRing* bse_plugin_path_list_files (gboolean include_drivers,
36  gboolean include_plugins);
37 const gchar* bse_plugin_check_load (const gchar *file_name);
38 void bse_plugin_make_resident ();
39 /* --- implementation details --- */
40 void bse_plugin_init_builtins (void);
41 extern BseExportIdentity bse_builtin_export_identity; /* sync with bsecxxplugin.hh */
42 G_END_DECLS
43 #endif /* __BSE_PLUGIN_H__ */
Definition: bseplugin.hh:19
Definition: bseexports.hh:105
Definition: sfiring.hh:23
Definition: bseplugin.hh:32