Beast - Music Synthesizer and Composer  0.11.1+10.g2da35
bsedefs.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_DEFS_H__
3 #define __BSE_DEFS_H__
4 
5 #undef G_DISABLE_ASSERT
6 #undef G_DISABLE_CHECKS
7 #include <sfi/sfi.hh>
8 #include <sfi/sfistore.hh> // FIXME
9 #include <sfi/sficomwire.hh> // FIXME
10 #include <bse/bseconfig.h>
11 
12 
13 /* --- some globally used macros --- */
14 #define BSE_VERSION_CMP(v1_major, v1_minor, v1_micro, v2_major, v2_minor, v2_micro) ( \
15  (v1_major != v2_major) ? (v1_major > v2_major ? +1 : -1) : \
16  (v1_minor != v2_minor) ? (v1_minor > v2_minor ? +1 : -1) : \
17  (v1_micro < v2_micro ? -1 : v1_micro > v2_micro))
18 
19 
20 /* --- BSE objects, classes & interfaces --- */
21 typedef struct _BseBinData BseBinData;
22 typedef struct _BseBinDataClass BseBinDataClass;
23 struct BseBus;
24 struct BseBusClass;
25 typedef struct _BseCapture BseCapture;
26 typedef struct _BseCaptureClass BseCaptureClass;
27 struct BseContainer;
28 struct BseContainerClass;
29 struct BseContextMerger;
31 struct BseCSynth;
32 struct BseCSynthClass;
33 struct BseEditableSample;
35 struct BseItem;
36 struct BseItemClass;
37 struct BseJanitor;
38 struct BseJanitorClass;
39 struct BseMidiDecoder;
40 struct BseMidiNotifier;
42 struct BseMidiReceiver;
43 struct BseMidiSynth;
44 struct BseMidiSynthClass;
45 struct BseMidiContext;
46 struct BseObject;
47 struct BseObjectClass;
48 struct BsePart;
49 struct BsePartClass;
50 struct BsePcmWriter;
51 struct BsePcmWriterClass;
52 typedef struct _BseProcedureClass BseProcedureClass;
53 struct BseProject;
54 struct BseProjectClass;
55 typedef struct _BseScriptControl BseScriptControl;
56 typedef struct _BseScriptControlClass BseScriptControlClass;
57 struct BseServer;
58 struct BseServerClass;
59 struct BseSNet;
60 struct BseSNetClass;
61 struct BseSong;
62 struct BseSongClass;
63 typedef struct _BseSongSequencer BseSongSequencer;
64 struct BseSoundFont;
65 struct BseSoundFontClass;
66 struct BseSoundFontPreset;
68 struct BseSoundFontRepo;
70 struct BseSource;
71 struct BseSourceClass;
72 struct BseStorage;
73 struct BseStorageClass;
74 struct BseSubSynth;
75 struct BseSubSynthClass;
76 struct BseSuper;
77 struct BseSuperClass;
78 struct BseTrack;
79 struct BseTrackClass;
80 typedef struct _BseTrans BseTrans;
81 typedef struct _BseUndoStack BseUndoStack;
82 typedef struct _BseUndoStep BseUndoStep;
83 typedef struct _BseVirtualThroughput BseVirtualThroughput;
84 typedef struct _BseVirtualThroughputClass BseVirtualThroughputClass;
85 typedef struct _BseVoice BseVoice;
86 struct BseWave;
87 struct BseWaveRepo;
88 struct BseWaveRepoClass;
89 /* --- BseModule special handling --- */
90 typedef struct _BseModule BseModule;
91 typedef struct _BseModuleClass BseModuleClass;
92 typedef struct _BseIStream BseIStream;
93 typedef struct _BseJStream BseJStream;
94 typedef struct _BseOStream BseOStream;
95 /* dereference some BseModule members without including bseengine.hh */
96 #define BSE_MODULE_GET_USER_DATA(bsemodule) (((gpointer*) bsemodule)[1])
97 #define BSE_MODULE_GET_ISTREAMSP(bsemodule) (((gpointer*) bsemodule)[2])
98 #define BSE_MODULE_GET_JSTREAMSP(bsemodule) (((gpointer*) bsemodule)[3])
99 #define BSE_MODULE_GET_OSTREAMSP(bsemodule) (((gpointer*) bsemodule)[4])
100 /* --- Bse Loader --- */
101 struct BseLoader;
102 typedef struct _BseWaveDsc BseWaveDsc;
103 typedef struct _BseWaveChunkDsc BseWaveChunkDsc;
104 /* --- BSE aux structures --- */
105 typedef struct _BseExportNode BseExportNode;
106 typedef struct _BseExportNodeBoxed BseExportNodeBoxed;
107 typedef struct _BseGlobals BseGlobals;
108 struct BsePlugin;
109 struct BsePluginClass;
110 /* --- BSE function types --- */
111 typedef void (*BseFunc) (void);
112 typedef void (*BseFreeFunc) (gpointer data);
113 typedef gboolean (*BseIOWatch) (gpointer data,
114  guint n_pfds,
115  GPollFD *pfd);
116 typedef GTokenType (*BseTryStatement) (gpointer context_data,
117  BseStorage *storage,
118  GScanner *scanner,
119  gpointer user_data);
120 typedef BseObject* (*BseUPathResolver) (gpointer func_data,
121  GType required_type,
122  const gchar *path,
123  gchar **error);
124 typedef gboolean (*BseProcedureShare) (gpointer func_data,
125  const gchar *proc_name,
126  gfloat progress);
127 typedef gboolean (*BseCategoryForeach) (const gchar *category_path,
128  GType type,
129  gpointer user_data);
130 typedef void (*BseEngineAccessFunc) (BseModule *module,
131  gpointer data);
132 
133 // == i18n Helpers ==
134 #if defined BSE_COMPILATION or defined BSE_PLUGIN_COMPILATION
135 #define _(str) ::Bse::_ (str)
136 #define N_(str) (str)
137 #endif /* BSE_COMPILATION */
138 
139 namespace Bse {
140 
141 class ObjectImpl;
142 class ItemImpl;
143 class SourceImpl;
144 class ContainerImpl;
145 class SuperImpl;
146 class PartImpl;
147 class SNetImpl;
148 class ProjectImpl;
149 class ServerImpl;
150 
151 } // Bse
152 
153 #endif /* __BSE_DEFS_H__ */
Definition: bseengine.hh:90
Definition: bseprocedure.hh:25
Definition: bsetrack.hh:22
Definition: bsecontextmerger.hh:19
Definition: bsesoundfontpreset.hh:20
Definition: bsesoundfontrepo.hh:31
Definition: bseengine.hh:78
Definition: bsecsynth.hh:15
Definition: bsecontainer.hh:24
The Bse namespace contains all functions of the synthesis engine.
Definition: bstbseutils.cc:91
Definition: bsemidinotifier.hh:20
Definition: bsesoundfont.hh:16
Definition: bsecsynth.hh:16
Definition: bseeditablesample.hh:24
Definition: bsesoundfont.hh:18
Definition: bsebus.hh:32
Definition: bseundostack.hh:20
Definition: bsesnet.hh:46
Definition: bsesnet.hh:34
Definition: bseloader.hh:22
Definition: bsesuper.hh:23
Definition: bsesoundfontpreset.hh:16
Definition: bsepcmwriter.hh:17
Definition: bsesong.hh:54
Definition: bsestorage.hh:89
Definition: bseplugin.hh:16
Definition: bsepart.hh:45
Definition: bsesuper.hh:29
Definition: bseeditablesample.hh:20
Definition: bsebus.hh:17
Definition: bsewaverepo.hh:20
Definition: bseserver.hh:17
Definition: bsecontainer.hh:27
Definition: bseengine.hh:69
Definition: bsesubsynth.hh:19
Definition: bseloader.hh:71
Definition: bsemididecoder.hh:20
Definition: bseproject.hh:30
Definition: bsecontextmerger.hh:16
Definition: bseobject.hh:57
void(* BseEngineAccessFunc)(BseModule *module, gpointer data)
Definition: bsedefs.hh:130
Definition: bseloader.hh:32
Definition: bsejanitor.hh:17
Definition: bsewave.hh:24
Definition: bseundostack.hh:39
Definition: bsejanitor.hh:33
Definition: bseobject.hh:88
Definition: bsesource.hh:82
Definition: bseenginenode.hh:108
Definition: bsesource.hh:90
Definition: bsemidisynth.hh:16
Definition: bsesong.hh:23
Definition: bsetrack.hh:48
Definition: bseitem.hh:37
Definition: bsestorage.hh:45
Definition: bsepcmwriter.hh:26
Definition: bsemidinotifier.hh:17
Definition: bseplugin.hh:29
Definition: bsemidisynth.hh:29
Definition: bsewaverepo.hh:17
Definition: bsesnet.hh:43
Definition: bseproject.hh:17
Definition: bseserver.hh:33
Definition: bsepart.hh:24
Definition: bseengine.hh:85
Definition: bseexports.hh:67
Definition: bseengine.hh:57
Definition: bseexports.hh:35
Definition: bseitem.hh:32
Definition: bsesoundfontrepo.hh:28
Definition: bsesubsynth.hh:12