BEAST/BSE - Better Audio System and Sound Engine
0.8.2
|
00001 // Licensed GNU LGPL v2.1 or later: http://www.gnu.org/licenses/lgpl.html 00002 #ifndef __BSE_DEFS_H__ 00003 #define __BSE_DEFS_H__ 00004 00005 #undef G_DISABLE_ASSERT 00006 #undef G_DISABLE_CHECKS 00007 #include <libintl.h> 00008 #include <sfi/sfi.hh> 00009 #include <sfi/sfistore.hh> // FIXME 00010 #include <sfi/sficomwire.hh> // FIXME 00011 #include <bse/bseconfig.h> 00012 00013 G_BEGIN_DECLS 00014 00015 00016 /* --- some globally used macros --- */ 00017 #define BSE_VERSION_CMP(v1_major, v1_minor, v1_micro, v2_major, v2_minor, v2_micro) ( \ 00018 (v1_major != v2_major) ? (v1_major > v2_major ? +1 : -1) : \ 00019 (v1_minor != v2_minor) ? (v1_minor > v2_minor ? +1 : -1) : \ 00020 (v1_micro < v2_micro ? -1 : v1_micro > v2_micro)) 00021 00022 00023 /* --- BSE objects, classes & interfaces --- */ 00024 typedef struct _BseBinData BseBinData; 00025 typedef struct _BseBinDataClass BseBinDataClass; 00026 struct BseBus; 00027 struct BseBusClass; 00028 typedef struct _BseCapture BseCapture; 00029 typedef struct _BseCaptureClass BseCaptureClass; 00030 struct BseContainer; 00031 struct BseContainerClass; 00032 struct BseContextMerger; 00033 struct BseContextMergerClass; 00034 struct BseCSynth; 00035 struct BseCSynthClass; 00036 struct BseEditableSample; 00037 struct BseEditableSampleClass; 00038 struct BseItem; 00039 struct BseItemClass; 00040 struct BseJanitor; 00041 struct BseJanitorClass; 00042 struct BseMidiDecoder; 00043 struct BseMidiNotifier; 00044 struct BseMidiNotifierClass; 00045 struct BseMidiReceiver; 00046 struct BseMidiSynth; 00047 struct BseMidiSynthClass; 00048 struct BseMidiContext; 00049 struct BseObject; 00050 struct BseObjectClass; 00051 struct BseParasite; 00052 struct BsePart; 00053 struct BsePartClass; 00054 struct BsePcmWriter; 00055 struct BsePcmWriterClass; 00056 typedef struct _BseProcedureClass BseProcedureClass; 00057 struct BseProject; 00058 struct BseProjectClass; 00059 typedef struct _BseScriptControl BseScriptControl; 00060 typedef struct _BseScriptControlClass BseScriptControlClass; 00061 struct BseServer; 00062 struct BseServerClass; 00063 struct BseSNet; 00064 struct BseSNetClass; 00065 struct BseSong; 00066 struct BseSongClass; 00067 typedef struct _BseSongSequencer BseSongSequencer; 00068 struct BseSource; 00069 struct BseSourceClass; 00070 struct BseStorage; 00071 struct BseStorageClass; 00072 struct BseSubSynth; 00073 struct BseSubSynthClass; 00074 struct BseSuper; 00075 struct BseSuperClass; 00076 struct BseTrack; 00077 struct BseTrackClass; 00078 typedef struct _BseTrans BseTrans; 00079 typedef struct _BseUndoStack BseUndoStack; 00080 typedef struct _BseUndoStep BseUndoStep; 00081 typedef struct _BseVirtualThroughput BseVirtualThroughput; 00082 typedef struct _BseVirtualThroughputClass BseVirtualThroughputClass; 00083 typedef struct _BseVoice BseVoice; 00084 struct BseWave; 00085 struct BseWaveRepo; 00086 struct BseWaveRepoClass; 00087 /* --- BseModule special handling --- */ 00088 typedef struct _BseModule BseModule; 00089 typedef struct _BseModuleClass BseModuleClass; 00090 typedef struct _BseIStream BseIStream; 00091 typedef struct _BseJStream BseJStream; 00092 typedef struct _BseOStream BseOStream; 00093 /* dereference some BseModule members without including bseengine.hh */ 00094 #define BSE_MODULE_GET_USER_DATA(bsemodule) (((gpointer*) bsemodule)[1]) 00095 #define BSE_MODULE_GET_ISTREAMSP(bsemodule) (((gpointer*) bsemodule)[2]) 00096 #define BSE_MODULE_GET_JSTREAMSP(bsemodule) (((gpointer*) bsemodule)[3]) 00097 #define BSE_MODULE_GET_OSTREAMSP(bsemodule) (((gpointer*) bsemodule)[4]) 00098 /* --- Bse Loader --- */ 00099 struct BseLoader; 00100 typedef struct _BseWaveDsc BseWaveDsc; 00101 typedef struct _BseWaveChunkDsc BseWaveChunkDsc; 00102 /* --- BSE aux structures --- */ 00103 typedef struct _BseExportNode BseExportNode; 00104 typedef struct _BseExportNodeBoxed BseExportNodeBoxed; 00105 typedef struct _BseGlobals BseGlobals; 00106 struct BsePlugin; 00107 struct BsePluginClass; 00108 /* --- BSE function types --- */ 00109 typedef void (*BseFunc) (void); 00110 typedef void (*BseFreeFunc) (gpointer data); 00111 typedef gboolean (*BseIOWatch) (gpointer data, 00112 guint n_pfds, 00113 GPollFD *pfd); 00114 typedef GTokenType (*BseTryStatement) (gpointer context_data, 00115 BseStorage *storage, 00116 GScanner *scanner, 00117 gpointer user_data); 00118 typedef BseObject* (*BseUPathResolver) (gpointer func_data, 00119 GType required_type, 00120 const gchar *path, 00121 gchar **error); 00122 typedef gboolean (*BseProcedureShare) (gpointer func_data, 00123 const gchar *proc_name, 00124 gfloat progress); 00125 typedef gboolean (*BseCategoryForeach) (const gchar *category_path, 00126 GType type, 00127 gpointer user_data); 00128 typedef void (*BseEngineAccessFunc) (BseModule *module, 00129 gpointer data); 00130 00131 00132 00133 /* --- i18n and gettext helpers --- */ 00134 const gchar* bse_gettext (const gchar *text); 00135 #define _(str) bse_gettext (str) 00136 #define N_(str) (str) 00137 00138 G_END_DECLS 00139 00140 #endif /* __BSE_DEFS_H__ */