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