BEAST - Free Software Audio Synthesizer and Tracker  0.9.2
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 BseParasite;
52 struct BsePart;
53 struct BsePartClass;
54 struct BsePcmWriter;
55 struct BsePcmWriterClass;
56 typedef struct _BseProcedureClass BseProcedureClass;
57 struct BseProject;
58 struct BseProjectClass;
59 typedef struct _BseScriptControl BseScriptControl;
60 typedef struct _BseScriptControlClass BseScriptControlClass;
61 struct BseServer;
62 struct BseServerClass;
63 struct BseSNet;
64 struct BseSNetClass;
65 struct BseSong;
66 struct BseSongClass;
67 typedef struct _BseSongSequencer BseSongSequencer;
68 struct BseSource;
69 struct BseSourceClass;
70 struct BseStorage;
71 struct BseStorageClass;
72 struct BseSubSynth;
73 struct BseSubSynthClass;
74 struct BseSuper;
75 struct BseSuperClass;
76 struct BseTrack;
77 struct BseTrackClass;
78 typedef struct _BseTrans BseTrans;
79 typedef struct _BseUndoStack BseUndoStack;
80 typedef struct _BseUndoStep BseUndoStep;
81 typedef struct _BseVirtualThroughput BseVirtualThroughput;
82 typedef struct _BseVirtualThroughputClass BseVirtualThroughputClass;
83 typedef struct _BseVoice BseVoice;
84 struct BseWave;
85 struct BseWaveRepo;
86 struct BseWaveRepoClass;
87 /* --- BseModule special handling --- */
88 typedef struct _BseModule BseModule;
89 typedef struct _BseModuleClass BseModuleClass;
90 typedef struct _BseIStream BseIStream;
91 typedef struct _BseJStream BseJStream;
92 typedef struct _BseOStream BseOStream;
93 /* dereference some BseModule members without including bseengine.hh */
94 #define BSE_MODULE_GET_USER_DATA(bsemodule) (((gpointer*) bsemodule)[1])
95 #define BSE_MODULE_GET_ISTREAMSP(bsemodule) (((gpointer*) bsemodule)[2])
96 #define BSE_MODULE_GET_JSTREAMSP(bsemodule) (((gpointer*) bsemodule)[3])
97 #define BSE_MODULE_GET_OSTREAMSP(bsemodule) (((gpointer*) bsemodule)[4])
98 /* --- Bse Loader --- */
99 struct BseLoader;
100 typedef struct _BseWaveDsc BseWaveDsc;
101 typedef struct _BseWaveChunkDsc BseWaveChunkDsc;
102 /* --- BSE aux structures --- */
103 typedef struct _BseExportNode BseExportNode;
104 typedef struct _BseExportNodeBoxed BseExportNodeBoxed;
105 typedef struct _BseGlobals BseGlobals;
106 struct BsePlugin;
107 struct BsePluginClass;
108 /* --- BSE function types --- */
109 typedef void (*BseFunc) (void);
110 typedef void (*BseFreeFunc) (gpointer data);
111 typedef gboolean (*BseIOWatch) (gpointer data,
112  guint n_pfds,
113  GPollFD *pfd);
114 typedef GTokenType (*BseTryStatement) (gpointer context_data,
115  BseStorage *storage,
116  GScanner *scanner,
117  gpointer user_data);
118 typedef BseObject* (*BseUPathResolver) (gpointer func_data,
119  GType required_type,
120  const gchar *path,
121  gchar **error);
122 typedef gboolean (*BseProcedureShare) (gpointer func_data,
123  const gchar *proc_name,
124  gfloat progress);
125 typedef gboolean (*BseCategoryForeach) (const gchar *category_path,
126  GType type,
127  gpointer user_data);
128 typedef void (*BseEngineAccessFunc) (BseModule *module,
129  gpointer data);
130 
131 
132 
133 /* --- i18n and gettext helpers --- */
134 const gchar* bse_gettext (const gchar *text);
135 #define _(str) bse_gettext (str)
136 #define N_(str) (str)
137 
138 G_END_DECLS
139 
140 namespace Bse {
141 
142 class ObjectImpl;
143 class ItemImpl;
144 class SourceImpl;
145 class ContainerImpl;
146 class SuperImpl;
147 class PartImpl;
148 class SNetImpl;
149 class ProjectImpl;
150 class ServerImpl;
151 
152 } // Bse
153 
154 #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:67
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:60
void(* BseEngineAccessFunc)(BseModule *module, gpointer data)
Definition: bsedefs.hh:128
Definition: bseloader.hh:34
Definition: bsejanitor.hh:19
Definition: bsewave.hh:26
Definition: bseundostack.hh:41
Definition: bsejanitor.hh:35
Definition: bseobject.hh:93
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:40
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