BEAST/BSE - Better Audio System and Sound Engine  0.8.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
bsedefs.hh
Go to the documentation of this file.
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__ */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines