[beast: 71/95] BSE: use C++ inheritance instead of nesting for GObject struct derivation
- From: Tim Janik <timj src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [beast: 71/95] BSE: use C++ inheritance instead of nesting for GObject struct derivation
- Date: Mon, 25 Mar 2013 00:42:28 +0000 (UTC)
commit 1604e0566d62078cb74631917279a4e38edb55f8
Author: Tim Janik <timj gnu org>
Date: Fri Mar 22 01:17:28 2013 +0100
BSE: use C++ inheritance instead of nesting for GObject struct derivation
bse/bsebiquadfilter.hh | 15 +++----
bse/bsebus.hh | 11 ++---
bse/bseconstant.hh | 15 +++----
bse/bsecontainer.hh | 8 +---
bse/bsecontextmerger.hh | 12 ++---
bse/bsecsynth.hh | 13 ++---
bse/bsedatapocket.hh | 22 ++++-----
bse/bsedefs.hh | 107 +++++++++++++++++++++----------------------
bse/bsedevice.hh | 15 ++----
bse/bseeditablesample.hh | 10 +---
bse/bseinstrumentinput.hh | 18 +++-----
bse/bseinstrumentoutput.hh | 18 +++-----
bse/bseitem.hh | 11 ++---
bse/bsejanitor.hh | 15 +++----
bse/bseladspa.hh | 21 ++++-----
bse/bseladspamodule.hh | 10 +---
bse/bseloader.hh | 6 +--
bse/bsemidicontroller.hh | 16 ++-----
bse/bsemididecoder.hh | 5 +-
bse/bsemididevice-null.hh | 17 +++-----
bse/bsemididevice-oss.hh | 15 ++----
bse/bsemididevice.hh | 19 +++-----
bse/bsemidiinput.hh | 16 ++-----
bse/bsemidinotifier.hh | 15 ++----
bse/bsemidireceiver.cc | 4 +-
bse/bsemidisynth.hh | 13 ++---
bse/bsemidivoice.hh | 24 ++++------
bse/bseobject.hh | 9 +---
bse/bseparasite.cc | 2 +-
bse/bsepart.hh | 42 ++++++++---------
bse/bsepcmdevice-null.hh | 16 +++----
bse/bsepcmdevice-oss.hh | 15 ++----
bse/bsepcmdevice.hh | 21 +++------
bse/bsepcminput.hh | 14 ++----
bse/bsepcmoutput.hh | 16 ++-----
bse/bsepcmwriter.hh | 12 ++---
bse/bseplugin.hh | 14 ++----
bse/bseproject.hh | 13 ++---
bse/bseserver.hh | 14 ++----
bse/bsesnet.hh | 25 +++++------
bse/bsesnooper.hh | 13 +++---
bse/bsesong.hh | 18 +++----
bse/bsesource.hh | 42 +++++++----------
bse/bsestandardosc.hh | 20 +++-----
bse/bsestorage.hh | 11 ++---
bse/bsesubiport.hh | 18 +++-----
bse/bsesuboport.hh | 18 +++-----
bse/bsesubsynth.hh | 16 +++----
bse/bsesuper.hh | 13 ++---
bse/bsetrack.hh | 17 +++----
bse/bsewave.hh | 23 ++++------
bse/bsewaveosc.hh | 16 ++-----
bse/bsewaverepo.hh | 15 +++----
plugins/bsesequencer.hh | 12 ++---
54 files changed, 362 insertions(+), 574 deletions(-)
---
diff --git a/bse/bsebiquadfilter.hh b/bse/bsebiquadfilter.hh
index d5dd135..05b91a3 100644
--- a/bse/bsebiquadfilter.hh
+++ b/bse/bsebiquadfilter.hh
@@ -26,11 +26,9 @@ typedef enum /* skip */
BSE_BIQUAD_FILTER_NORM_PEAK_GAIN = GSL_BIQUAD_NORMALIZE_PEAK_GAIN
} BseBiquadFilterNorm;
/* --- BseBiquadFilter source --- */
-typedef struct _BseBiquadFilter BseBiquadFilter;
-typedef struct _BseBiquadFilterClass BseBiquadFilterClass;
-struct _BseBiquadFilter
-{
- BseSource parent_object;
+struct BseBiquadFilter;
+struct BseBiquadFilterClass;
+struct BseBiquadFilter : BseSource {
BseBiquadFilterType filter_type;
guint type_change : 1;
guint exponential_fm : 1;
@@ -41,10 +39,9 @@ struct _BseBiquadFilter
gfloat gain;
gfloat gain_strength;
};
-struct _BseBiquadFilterClass
-{
- BseSourceClass parent_class;
-};
+struct BseBiquadFilterClass : BseSourceClass
+{};
+
/* --- channels --- */
enum
{
diff --git a/bse/bsebus.hh b/bse/bsebus.hh
index ec31893..9003f45 100644
--- a/bse/bsebus.hh
+++ b/bse/bsebus.hh
@@ -11,9 +11,7 @@ G_BEGIN_DECLS
#define BSE_IS_BUS_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_BUS))
#define BSE_BUS_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_BUS, BseBusClass))
/* --- BseBus source --- */
-struct _BseBus
-{
- BseSubSynth parent_object;
+struct BseBus : BseSubSynth {
SfiRing *inputs;
double left_volume;
double right_volume;
@@ -28,10 +26,9 @@ struct _BseBus
BseSource **effects; /* slot maybe NULL */
SfiRing *bus_outputs; /* maintained by bsebus.[hc] */
};
-struct _BseBusClass
-{
- BseSubSynthClass parent_class;
-};
+struct BseBusClass : BseSubSynthClass
+{};
+
/* --- API --- */
BseErrorType bse_bus_connect (BseBus *self,
BseItem *item);
diff --git a/bse/bseconstant.hh b/bse/bseconstant.hh
index 1a9e27d..4eb7be6 100644
--- a/bse/bseconstant.hh
+++ b/bse/bseconstant.hh
@@ -14,17 +14,14 @@ extern "C" {
#define BSE_CONSTANT_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_CONSTANT,
BseConstantClass))
#define BSE_CONSTANT_N_OUTPUTS (4)
/* --- BseConstant source --- */
-typedef struct _BseConstant BseConstant;
-typedef struct _BseConstantClass BseConstantClass;
-struct _BseConstant
-{
- BseSource parent_object;
+struct BseConstant;
+struct BseConstantClass;
+struct BseConstant : BseSource {
gfloat constants[BSE_CONSTANT_N_OUTPUTS];
};
-struct _BseConstantClass
-{
- BseSourceClass parent_class;
-};
+struct BseConstantClass : BseSourceClass
+{};
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
diff --git a/bse/bsecontainer.hh b/bse/bsecontainer.hh
index 8b4fe9a..fa33d48 100644
--- a/bse/bsecontainer.hh
+++ b/bse/bsecontainer.hh
@@ -18,14 +18,10 @@ typedef gboolean (*BseForallItemsFunc) (BseItem *item,
typedef gboolean (*BseForallCrossFunc) (BseItem *owner,
BseItem *link,
gpointer data);
-struct _BseContainer
-{
- BseSource parent_instance;
+struct BseContainer : BseSource {
guint n_items; /* paranoid checks */
};
-struct _BseContainerClass
-{
- BseSourceClass parent_class;
+struct BseContainerClass : BseSourceClass {
void (*add_item) (BseContainer *container,
BseItem *item);
void (*remove_item) (BseContainer *container,
diff --git a/bse/bsecontextmerger.hh b/bse/bsecontextmerger.hh
index 468bf8d..e504b58 100644
--- a/bse/bsecontextmerger.hh
+++ b/bse/bsecontextmerger.hh
@@ -12,16 +12,12 @@ G_BEGIN_DECLS
#define BSE_CONTEXT_MERGER_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_CONTEXT_MERGER,
BseContextMergerClass))
#define BSE_CONTEXT_MERGER_N_IOPORTS (8)
/* --- object structures --- */
-struct _BseContextMerger
-{
- BseSource parent_instance;
+struct BseContextMerger : BseSource {
guint merge_context;
};
-struct _BseContextMergerClass
-{
- BseSourceClass parent_class;
-};
-/* --- API --- */
+struct BseContextMergerClass : BseSourceClass
+{};
+
void bse_context_merger_set_merge_context (BseContextMerger *self,
guint merge_context);
G_END_DECLS
diff --git a/bse/bsecsynth.hh b/bse/bsecsynth.hh
index 9293d21..be777c6 100644
--- a/bse/bsecsynth.hh
+++ b/bse/bsecsynth.hh
@@ -12,14 +12,11 @@ G_BEGIN_DECLS
#define BSE_CSYNTH_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_CSYNTH, BseCSynthClass))
#define BSE_CSYNTH_USER_SYNTH(src) ((BSE_OBJECT_FLAGS (src) & BSE_CSYNTH_FLAG_USER_SYNTH) != 0)
/* --- BseCSynth object --- */
-struct _BseCSynth
-{
- BseSNet parent_object;
-};
-struct _BseCSynthClass
-{
- BseSNetClass parent_class;
-};
+struct BseCSynth : BseSNet
+{};
+struct BseCSynthClass : BseSNetClass
+{};
+
/* --- prototypes --- */
G_END_DECLS
#endif /* __BSE_CSYNTH_H__ */
diff --git a/bse/bsedatapocket.hh b/bse/bsedatapocket.hh
index ac0e75d..91137f9 100644
--- a/bse/bsedatapocket.hh
+++ b/bse/bsedatapocket.hh
@@ -21,17 +21,16 @@ typedef enum /*< skip >*/
BSE_DATA_POCKET_OBJECT = 'o'
} BseDataPocketType;
/* --- BseDataPocket structs --- */
-typedef struct _BseDataPocket BseDataPocket;
-typedef struct _BseDataPocketClass BseDataPocketClass;
-typedef union {
+struct BseDataPocket;
+struct BseDataPocketClass;
+union BseDataPocketValue {
guint64 v_int64;
guint v_int;
gfloat v_float;
gchar *v_string;
BseItem *v_object;
-} BseDataPocketValue;
-typedef struct
-{
+};
+struct BseDataPocketEntry {
guint id;
guint n_items;
struct Item {
@@ -39,19 +38,15 @@ typedef struct
gchar type;
BseDataPocketValue value;
} *items;
-} BseDataPocketEntry;
-struct _BseDataPocket
-{
- BseItem parent_object;
+};
+struct BseDataPocket : BseItem {
guint need_store; /* for BSE_ITEM_FLAG_AGGREGATE */
GSList *cr_items;
guint free_id;
guint n_entries;
BseDataPocketEntry *entries;
};
-struct _BseDataPocketClass
-{
- BseItemClass parent_class;
+struct BseDataPocketClass : BseItemClass {
void (*entry_added) (BseDataPocket *pocket,
guint entry_id);
void (*entry_removed) (BseDataPocket *pocket,
@@ -59,6 +54,7 @@ struct _BseDataPocketClass
void (*entry_changed) (BseDataPocket *pocket,
guint entry_id);
};
+
/* --- prototypes --- */
guint _bse_data_pocket_create_entry (BseDataPocket *pocket);
gboolean _bse_data_pocket_delete_entry (BseDataPocket *pocket,
diff --git a/bse/bsedefs.hh b/bse/bsedefs.hh
index d6c41fd..a4e26fe 100644
--- a/bse/bsedefs.hh
+++ b/bse/bsedefs.hh
@@ -17,69 +17,67 @@ G_BEGIN_DECLS
/* --- BSE objects, classes & interfaces --- */
typedef struct _BseBinData BseBinData;
typedef struct _BseBinDataClass BseBinDataClass;
-typedef struct _BseBus BseBus;
-typedef struct _BseBusClass BseBusClass;
+struct BseBus;
+struct BseBusClass;
typedef struct _BseCapture BseCapture;
typedef struct _BseCaptureClass BseCaptureClass;
-typedef struct _BseContainer BseContainer;
-typedef struct _BseContainerClass BseContainerClass;
-typedef struct _BseContextMerger BseContextMerger;
-typedef struct _BseContextMergerClass BseContextMergerClass;
-typedef struct _BseCSynth BseCSynth;
-typedef struct _BseCSynthClass BseCSynthClass;
-typedef struct _BseEditableSample BseEditableSample;
-typedef struct _BseEditableSampleClass BseEditableSampleClass;
-typedef struct _BseEffect BseEffect;
-typedef struct _BseEffectClass BseEffectClass;
-typedef struct _BseItem BseItem;
-typedef struct _BseItemClass BseItemClass;
-typedef struct _BseJanitor BseJanitor;
-typedef struct _BseJanitorClass BseJanitorClass;
-typedef struct _BseMidiDecoder BseMidiDecoder;
-typedef struct _BseMidiNotifier BseMidiNotifier;
-typedef struct _BseMidiNotifierClass BseMidiNotifierClass;
-typedef struct _BseMidiReceiver BseMidiReceiver;
-typedef struct _BseMidiSynth BseMidiSynth;
-typedef struct _BseMidiSynthClass BseMidiSynthClass;
-typedef struct _BseMidiContext BseMidiContext;
-typedef struct _BseObject BseObject;
-typedef struct _BseObjectClass BseObjectClass;
-typedef struct _BseParasite BseParasite;
-typedef struct _BsePart BsePart;
-typedef struct _BsePartClass BsePartClass;
-typedef struct _BsePcmWriter BsePcmWriter;
-typedef struct _BsePcmWriterClass BsePcmWriterClass;
+struct BseContainer;
+struct BseContainerClass;
+struct BseContextMerger;
+struct BseContextMergerClass;
+struct BseCSynth;
+struct BseCSynthClass;
+struct BseEditableSample;
+struct BseEditableSampleClass;
+struct BseItem;
+struct BseItemClass;
+struct BseJanitor;
+struct BseJanitorClass;
+struct BseMidiDecoder;
+struct BseMidiNotifier;
+struct BseMidiNotifierClass;
+struct BseMidiReceiver;
+struct BseMidiSynth;
+struct BseMidiSynthClass;
+struct BseMidiContext;
+struct BseObject;
+struct BseObjectClass;
+struct BseParasite;
+struct BsePart;
+struct BsePartClass;
+struct BsePcmWriter;
+struct BsePcmWriterClass;
typedef struct _BseProcedureClass BseProcedureClass;
-typedef struct _BseProject BseProject;
-typedef struct _BseProjectClass BseProjectClass;
+struct BseProject;
+struct BseProjectClass;
typedef struct _BseScriptControl BseScriptControl;
typedef struct _BseScriptControlClass BseScriptControlClass;
-typedef struct _BseServer BseServer;
-typedef struct _BseServerClass BseServerClass;
-typedef struct _BseSNet BseSNet;
-typedef struct _BseSNetClass BseSNetClass;
-typedef struct _BseSong BseSong;
-typedef struct _BseSongClass BseSongClass;
+struct BseServer;
+struct BseServerClass;
+struct BseSNet;
+struct BseSNetClass;
+struct BseSong;
+struct BseSongClass;
typedef struct _BseSongSequencer BseSongSequencer;
-typedef struct _BseSource BseSource;
-typedef struct _BseSourceClass BseSourceClass;
-typedef struct _BseStorage BseStorage;
-typedef struct _BseStorageClass BseStorageClass;
-typedef struct _BseSubSynth BseSubSynth;
-typedef struct _BseSubSynthClass BseSubSynthClass;
-typedef struct _BseSuper BseSuper;
-typedef struct _BseSuperClass BseSuperClass;
-typedef struct _BseTrack BseTrack;
-typedef struct _BseTrackClass BseTrackClass;
+struct BseSource;
+struct BseSourceClass;
+struct BseStorage;
+struct BseStorageClass;
+struct BseSubSynth;
+struct BseSubSynthClass;
+struct BseSuper;
+struct BseSuperClass;
+struct BseTrack;
+struct BseTrackClass;
typedef struct _BseTrans BseTrans;
typedef struct _BseUndoStack BseUndoStack;
typedef struct _BseUndoStep BseUndoStep;
typedef struct _BseVirtualThroughput BseVirtualThroughput;
typedef struct _BseVirtualThroughputClass BseVirtualThroughputClass;
typedef struct _BseVoice BseVoice;
-typedef struct _BseWave BseWave;
-typedef struct _BseWaveRepo BseWaveRepo;
-typedef struct _BseWaveRepoClass BseWaveRepoClass;
+struct BseWave;
+struct BseWaveRepo;
+struct BseWaveRepoClass;
/* --- BseModule special handling --- */
typedef struct _BseModule BseModule;
typedef struct _BseModuleClass BseModuleClass;
@@ -92,16 +90,15 @@ typedef struct _BseOStream BseOStream;
#define BSE_MODULE_GET_JSTREAMSP(bsemodule) (((gpointer*) bsemodule)[3])
#define BSE_MODULE_GET_OSTREAMSP(bsemodule) (((gpointer*) bsemodule)[4])
/* --- Bse Loader --- */
-typedef struct _BseLoader BseLoader;
-typedef struct _BseWaveFileInfo BseWaveFileInfo;
+struct BseLoader;
typedef struct _BseWaveDsc BseWaveDsc;
typedef struct _BseWaveChunkDsc BseWaveChunkDsc;
/* --- BSE aux structures --- */
typedef struct _BseExportNode BseExportNode;
typedef struct _BseExportNodeBoxed BseExportNodeBoxed;
typedef struct _BseGlobals BseGlobals;
-typedef struct _BsePlugin BsePlugin;
-typedef struct _BsePluginClass BsePluginClass;
+struct BsePlugin;
+struct BsePluginClass;
/* --- BSE function types --- */
typedef void (*BseFunc) (void);
typedef void (*BseFreeFunc) (gpointer data);
diff --git a/bse/bsedevice.hh b/bse/bsedevice.hh
index b5f3911..3a9a265 100644
--- a/bse/bsedevice.hh
+++ b/bse/bsedevice.hh
@@ -23,18 +23,12 @@ typedef enum /*< skip >*/
} BseDeviceFlags;
#define BSE_DEVICE_FLAGS_USHIFT (BSE_OBJECT_FLAGS_USHIFT + 3)
/* --- BseDevice structs --- */
-typedef struct _BseDevice BseDevice;
-typedef struct _BseDeviceClass BseDeviceClass;
-struct _BseDevice
-{
- BseObject parent_object;
+struct BseDevice : BseObject {
/* valid while BSE_DEVICE_OPEN() */
gchar *open_device_name;
gchar *open_device_args;
};
-struct _BseDeviceClass
-{
- BseObjectClass parent_class;
+struct BseDeviceClass : BseObjectClass {
gint driver_rating;
const gchar *driver_name;
const gchar *driver_syntax;
@@ -49,13 +43,14 @@ struct _BseDeviceClass
void (*pre_close) (BseDevice *device);
void (*close) (BseDevice *device);
};
-typedef struct {
+struct BseDeviceEntry {
BseDevice *device;
gchar *device_args;
gchar *device_blurb;
gchar *device_group; /* usually NULL */
gchar *device_error; /* if device_name == NULL */
-} BseDeviceEntry;
+};
+
/* --- prototypes --- */
void bse_device_class_setup (gpointer klass,
gint rating,
diff --git a/bse/bseeditablesample.hh b/bse/bseeditablesample.hh
index aae7b64..b23c612 100644
--- a/bse/bseeditablesample.hh
+++ b/bse/bseeditablesample.hh
@@ -16,16 +16,12 @@ extern "C" {
/* --- object flagss --- */
#define BSE_EDITABLE_SAMPLE_OPENED(obj) (BSE_EDITABLE_SAMPLE (obj)->open_count > 0)
#define BSE_EDITABLE_SAMPLE_FLAGS_USHIFT (BSE_ITEM_FLAGS_USHIFT + 0)
-/* --- structures --- */
-struct _BseEditableSample
-{
- BseItem parent_object;
+
+struct BseEditableSample : BseItem {
guint open_count;
GslWaveChunk *wchunk;
};
-struct _BseEditableSampleClass
-{
- BseItemClass parent_class;
+struct BseEditableSampleClass : BseItemClass {
void (*changed) (BseEditableSample *sample);
};
void bse_editable_sample_set_wchunk (BseEditableSample *self,
diff --git a/bse/bseinstrumentinput.hh b/bse/bseinstrumentinput.hh
index 1f0d15a..05d116c 100644
--- a/bse/bseinstrumentinput.hh
+++ b/bse/bseinstrumentinput.hh
@@ -11,17 +11,12 @@ G_BEGIN_DECLS
#define BSE_IS_INPUT_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_INSTRUMENT_INPUT))
#define BSE_INSTRUMENT_INPUT_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object),
BSE_TYPE_INSTRUMENT_INPUT, BseInstrumentInputClass))
/* --- BseInstrumentInput source --- */
-typedef struct _BseInstrumentInput BseInstrumentInput;
-typedef struct _BseInstrumentInputClass BseInstrumentInputClass;
-struct _BseInstrumentInput
-{
- BseSubIPort parent_object;
-};
-struct _BseInstrumentInputClass
-{
- BseSubIPortClass parent_class;
-};
-/* --- channels --- */
+
+struct BseInstrumentInput : BseSubIPort
+{};
+struct BseInstrumentInputClass : BseSubIPortClass
+{};
+
enum
{
BSE_INSTRUMENT_INPUT_OCHANNEL_FREQUENCY,
@@ -29,5 +24,6 @@ enum
BSE_INSTRUMENT_INPUT_OCHANNEL_VELOCITY,
BSE_INSTRUMENT_INPUT_OCHANNEL_AFTERTOUCH
};
+
G_END_DECLS
#endif /* __BSE_INSTRUMENT_INPUT_H__ */
diff --git a/bse/bseinstrumentoutput.hh b/bse/bseinstrumentoutput.hh
index 62d8fb0..dd52fc6 100644
--- a/bse/bseinstrumentoutput.hh
+++ b/bse/bseinstrumentoutput.hh
@@ -10,18 +10,12 @@ G_BEGIN_DECLS
#define BSE_IS_OUTPUT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object),
BSE_TYPE_INSTRUMENT_OUTPUT))
#define BSE_IS_OUTPUT_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class),
BSE_TYPE_INSTRUMENT_OUTPUT))
#define BSE_INSTRUMENT_OUTPUT_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object),
BSE_TYPE_INSTRUMENT_OUTPUT, BseInstrumentOutputClass))
-/* --- BseInstrumentOutput source --- */
-typedef struct _BseInstrumentOutput BseInstrumentOutput;
-typedef struct _BseInstrumentOutputClass BseInstrumentOutputClass;
-struct _BseInstrumentOutput
-{
- BseSubOPort parent_object;
-};
-struct _BseInstrumentOutputClass
-{
- BseSubOPortClass parent_class;
-};
-/* --- channels --- */
+
+struct BseInstrumentOutput : BseSubOPort
+{};
+struct BseInstrumentOutputClass : BseSubOPortClass
+{};
+
enum
{
BSE_INSTRUMENT_OUTPUT_ICHANNEL_LEFT,
diff --git a/bse/bseitem.hh b/bse/bseitem.hh
index bb7f76b..0b01e58 100644
--- a/bse/bseitem.hh
+++ b/bse/bseitem.hh
@@ -21,17 +21,14 @@ typedef enum /*< skip >*/
BSE_ITEM_FLAG_INTERN_BRANCH = 1 << (BSE_OBJECT_FLAGS_USHIFT + 2)
} BseItemFlags;
#define BSE_ITEM_FLAGS_USHIFT (BSE_OBJECT_FLAGS_USHIFT + 3)
-/* --- BseItem object --- */
-struct _BseItem
-{
- BseObject parent_object;
+
+struct BseItem : BseObject {
guint use_count;
BseItem *parent;
BseParasite *parasite;
};
-struct _BseItemClass
-{
- BseObjectClass parent_class;
+
+struct BseItemClass : BseObjectClass {
void (*get_candidates) (BseItem *item,
guint param_id,
BsePropertyCandidates *pc,
diff --git a/bse/bsejanitor.hh b/bse/bsejanitor.hh
index ab6b0b9..50679c2 100644
--- a/bse/bsejanitor.hh
+++ b/bse/bsejanitor.hh
@@ -11,9 +11,7 @@ G_BEGIN_DECLS
#define BSE_IS_JANITOR_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_JANITOR))
#define BSE_JANITOR_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_JANITOR,
BseJanitorClass))
/* --- object structures --- */
-struct _BseJanitor
-{
- BseItem parent_instance;
+struct BseJanitor : BseItem {
guint port_closed : 1;
guint force_kill : 1;
guint force_normal_exit : 1;
@@ -29,15 +27,14 @@ struct _BseJanitor
gint exit_code;
gchar *exit_reason;
};
-struct _BseJanitorClass
-{
- BseItemClass parent_class;
-};
-typedef struct {
+struct BseJanitorClass : BseItemClass
+{};
+struct BseJanitorAction {
GQuark action;
gchar *name;
gchar *blurb;
-} BseJanitorAction;
+};
+
/* --- prototypes --- */
BseJanitor* bse_janitor_new (SfiComPort *port);
void bse_janitor_kill (BseJanitor *self);
diff --git a/bse/bseladspa.hh b/bse/bseladspa.hh
index 2839e81..22e3372 100644
--- a/bse/bseladspa.hh
+++ b/bse/bseladspa.hh
@@ -12,23 +12,21 @@ G_BEGIN_DECLS
#define BSE_IS_LADSPA_PLUGIN_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_LADSPA_PLUGIN))
#define BSE_LADSPA_PLUGIN_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_LADSPA_PLUGIN,
BseLadspaPluginClass))
/* --- BseLadspaPlugin --- */
-typedef struct _BseLadspaInfo BseLadspaInfo;
+struct BseLadspaInfo;
typedef struct {
GType type;
BseLadspaInfo *info;
} BseLadspaTypeInfo;
-typedef struct {
- GObject parent_instance;
+struct BseLadspaPlugin : GObject {
gchar *fname;
GModule *gmodule;
guint use_count;
guint n_types;
BseLadspaTypeInfo *types;
-} BseLadspaPlugin;
-typedef struct {
- GObjectClass parent_class;
-} BseLadspaPluginClass;
-typedef struct {
+};
+struct BseLadspaPluginClass : GObjectClass
+{};
+struct BseLadspaPort {
gchar *ident;
const gchar *name;
gfloat minimum;
@@ -44,9 +42,8 @@ typedef struct {
guint frequency : 1; /* provide logarithmic frequency slider */
guint logarithmic : 1;
guint concert_a : 1; /* default to 440Hz concert A */
-} BseLadspaPort;
-struct _BseLadspaInfo
-{
+};
+struct BseLadspaInfo {
gchar *file_path; /* fully qualified file path and name */
gchar *ident; /* unique identifier */
guint plugin_id; /* unique plugin type ID */
@@ -72,7 +69,7 @@ struct _BseLadspaInfo
void (*deactivate) (gpointer instance);
void (*cleanup) (gpointer instance);
};
-/* --- public API --- */
+
BseLadspaInfo* bse_ladspa_info_assemble (const gchar *file_path,
gconstpointer ladspa_descriptor);
void bse_ladspa_info_free (BseLadspaInfo *bli);
diff --git a/bse/bseladspamodule.hh b/bse/bseladspamodule.hh
index e8cec96..2e61579 100644
--- a/bse/bseladspamodule.hh
+++ b/bse/bseladspamodule.hh
@@ -12,16 +12,10 @@ G_BEGIN_DECLS
#define BSE_IS_LADSPA_MODULE_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_LADSPA_MODULE))
#define BSE_LADSPA_MODULE_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_LADSPA_MODULE,
BseLadspaModuleClass))
/* --- BseLadspaModule --- */
-typedef struct _BseLadspaModule BseLadspaModule;
-typedef struct _BseLadspaModuleClass BseLadspaModuleClass;
-struct _BseLadspaModule
-{
- BseSource parent_instance;
+struct BseLadspaModule : BseSource {
gfloat *cvalues;
};
-struct _BseLadspaModuleClass
-{
- BseSourceClass parent_class;
+struct BseLadspaModuleClass : BseSourceClass {
BseLadspaInfo *bli;
BseModuleClass *gsl_class;
};
diff --git a/bse/bseloader.hh b/bse/bseloader.hh
index 1032b0d..0131f08 100644
--- a/bse/bseloader.hh
+++ b/bse/bseloader.hh
@@ -5,8 +5,7 @@
#include <bse/gslwavechunk.hh>
G_BEGIN_DECLS
/* --- structures --- */
-struct _BseWaveFileInfo
-{
+struct BseWaveFileInfo {
guint n_waves;
struct Wave {
gchar *name;
@@ -62,8 +61,7 @@ typedef enum /*< skip >*/
BSE_LOADER_NO_FLAGS = 0,
BSE_LOADER_SKIP_PRECEEDING_NULLS = 1 << 0
} BseLoaderFlags;
-struct _BseLoader
-{
+struct BseLoader {
const gchar *name; /* format/loader name, e.g. "BseWave" or "WAVE audio, RIFF (little-endian)" */
/* at least one of the
* following three must
diff --git a/bse/bsemidicontroller.hh b/bse/bsemidicontroller.hh
index 9c033c8..2b43188 100644
--- a/bse/bsemidicontroller.hh
+++ b/bse/bsemidicontroller.hh
@@ -11,20 +11,14 @@ G_BEGIN_DECLS
#define BSE_IS_CONTROLLER(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object),
BSE_TYPE_MIDI_CONTROLLER))
#define BSE_IS_CONTROLLER_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_MIDI_CONTROLLER))
#define BSE_MIDI_CONTROLLER_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object),
BSE_TYPE_MIDI_CONTROLLER, BseMidiControllerClassOut))
-/* --- BseMidiController source --- */
-typedef struct _BseMidiController BseMidiController;
-typedef struct _BseMidiControllerClass BseMidiControllerClass;
-struct _BseMidiController
-{
- BseSource parent_object;
+
+struct BseMidiController : BseSource {
guint midi_channel;
BseMidiSignalType controls[4];
};
-struct _BseMidiControllerClass
-{
- BseSourceClass parent_class;
-};
-/* --- channels --- */
+struct BseMidiControllerClass : BseSourceClass
+{};
+
enum
{
BSE_MIDI_CONTROLLER_OCHANNEL_CONTROL1,
diff --git a/bse/bsemididecoder.hh b/bse/bsemididecoder.hh
index 22e00fe..898836b 100644
--- a/bse/bsemididecoder.hh
+++ b/bse/bsemididecoder.hh
@@ -15,9 +15,8 @@ typedef enum {
BSE_MIDI_DECODER_DATA, /* left_bytes != 0 */
BSE_MIDI_DECODER_DONE,
} BseMidiDecoderState;
-struct _BseMidiDecoder
-{
- SfiRing *events; /* BseMidiEvent* */
+struct BseMidiDecoder {
+ SfiRing *events; /* BseMidiEvent* */
/* configuration */
BseMusicalTuningType musical_tuning;
uint auto_queue : 1;
diff --git a/bse/bsemididevice-null.hh b/bse/bsemididevice-null.hh
index 6f8ec4e..fd34b07 100644
--- a/bse/bsemididevice-null.hh
+++ b/bse/bsemididevice-null.hh
@@ -10,16 +10,11 @@ G_BEGIN_DECLS
#define BSE_IS_MIDI_DEVICE_NULL(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object),
BSE_TYPE_MIDI_DEVICE_NULL))
#define BSE_IS_MIDI_DEVICE_NULL_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_MIDI_DEVICE_NULL))
#define BSE_MIDI_DEVICE_NULL_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object),
BSE_TYPE_MIDI_DEVICE_NULL, BseMidiDeviceNULLClass))
-/* --- BseMidiDeviceNULL object --- */
-typedef struct _BseMidiDeviceNULL BseMidiDeviceNULL;
-typedef struct _BseMidiDeviceNULLClass BseMidiDeviceNULLClass;
-struct _BseMidiDeviceNULL
-{
- BseMidiDevice parent_object;
-};
-struct _BseMidiDeviceNULLClass
-{
- BseMidiDeviceClass parent_class;
-};
+
+struct BseMidiDeviceNULL : BseMidiDevice
+{};
+struct BseMidiDeviceNULLClass : BseMidiDeviceClass
+{};
+
G_END_DECLS
#endif /* __BSE_MIDI_DEVICE_NULL_H__ */
diff --git a/bse/bsemididevice-oss.hh b/bse/bsemididevice-oss.hh
index 0899708..28d44f0 100644
--- a/bse/bsemididevice-oss.hh
+++ b/bse/bsemididevice-oss.hh
@@ -10,17 +10,12 @@ G_BEGIN_DECLS
#define BSE_IS_MIDI_DEVICE_OSS(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object),
BSE_TYPE_MIDI_DEVICE_OSS))
#define BSE_IS_MIDI_DEVICE_OSS_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_MIDI_DEVICE_OSS))
#define BSE_MIDI_DEVICE_OSS_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object),
BSE_TYPE_MIDI_DEVICE_OSS, BseMidiDeviceOSSClass))
-/* --- BseMidiDeviceOSS object --- */
-typedef struct _BseMidiDeviceOSS BseMidiDeviceOSS;
-typedef struct _BseMidiDeviceOSSClass BseMidiDeviceOSSClass;
-struct _BseMidiDeviceOSS
-{
- BseMidiDevice parent_object;
+
+struct BseMidiDeviceOSS : BseMidiDevice {
gchar *device_name;
};
-struct _BseMidiDeviceOSSClass
-{
- BseMidiDeviceClass parent_class;
-};
+struct BseMidiDeviceOSSClass : BseMidiDeviceClass
+{};
+
G_END_DECLS
#endif /* __BSE_MIDI_DEVICE_OSS_H__ */
diff --git a/bse/bsemididevice.hh b/bse/bsemididevice.hh
index 4c8f1bd..68132f6 100644
--- a/bse/bsemididevice.hh
+++ b/bse/bsemididevice.hh
@@ -11,29 +11,22 @@ G_BEGIN_DECLS
#define BSE_IS_MIDI_DEVICE(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), BSE_TYPE_MIDI_DEVICE))
#define BSE_IS_MIDI_DEVICE_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_MIDI_DEVICE))
#define BSE_MIDI_DEVICE_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_MIDI_DEVICE,
BseMidiDeviceClass))
-/* --- BseMidiDevice structs --- */
-typedef struct _BseMidiHandle BseMidiHandle;
-typedef struct _BseMidiDevice BseMidiDevice;
-typedef struct _BseMidiDeviceClass BseMidiDeviceClass;
-struct _BseMidiHandle /* this should be nuked, it's useless */
+
+struct BseMidiHandle /* this should be nuked, it's useless */
{
guint readable : 1;
guint writable : 1;
guint running_thread : 1;
BseMidiDecoder *midi_decoder;
};
-struct _BseMidiDevice
-{
- BseDevice parent_object;
+struct BseMidiDevice : BseDevice {
BseMidiDecoder *midi_decoder;
/* operational handle */
BseMidiHandle *handle;
};
-struct _BseMidiDeviceClass
-{
- BseDeviceClass parent_class;
-};
-/* --- internal utils --- */
+struct BseMidiDeviceClass : BseDeviceClass
+{};
+
void bse_midi_handle_init (BseMidiHandle *handle);
G_END_DECLS
#endif /* __BSE_MIDI_DEVICE_H__ */
diff --git a/bse/bsemidiinput.hh b/bse/bsemidiinput.hh
index 6932af1..0cb925a 100644
--- a/bse/bsemidiinput.hh
+++ b/bse/bsemidiinput.hh
@@ -11,19 +11,13 @@ G_BEGIN_DECLS
#define BSE_IS_INPUT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), BSE_TYPE_MIDI_INPUT))
#define BSE_IS_INPUT_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_MIDI_INPUT))
#define BSE_MIDI_INPUT_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_MIDI_INPUT,
BseMidiInputClassOut))
-/* --- BseMidiInput source --- */
-typedef struct _BseMidiInput BseMidiInput;
-typedef struct _BseMidiInputClass BseMidiInputClass;
-struct _BseMidiInput
-{
- BseSource parent_object;
+
+struct BseMidiInput : BseSource {
guint midi_channel;
};
-struct _BseMidiInputClass
-{
- BseSourceClass parent_class;
-};
-/* --- channels --- */
+struct BseMidiInputClass : BseSourceClass
+{};
+
enum
{
BSE_MIDI_INPUT_OCHANNEL_FREQUENCY,
diff --git a/bse/bsemidinotifier.hh b/bse/bsemidinotifier.hh
index 593fe8b..aeabc20 100644
--- a/bse/bsemidinotifier.hh
+++ b/bse/bsemidinotifier.hh
@@ -11,19 +11,14 @@ G_BEGIN_DECLS
#define BSE_IS_MIDI_NOTIFIER(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), BSE_TYPE_MIDI_NOTIFIER))
#define BSE_IS_MIDI_NOTIFIER_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_MIDI_NOTIFIER))
#define BSE_MIDI_NOTIFIER_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_MIDI_NOTIFIER,
BseMidiNotifierClass))
-/* --- BseMidiNotifier structs --- */
-struct _BseMidiNotifier
-{
- BseItem parent_instance;
+
+struct BseMidiNotifier : BseItem {
BseMidiReceiver *midi_receiver;
};
-struct _BseMidiNotifierClass
-{
- BseItemClass parent_class;
- void (*midi_event) (BseMidiNotifier *self,
- BseMidiEvent *event);
+struct BseMidiNotifierClass : BseItemClass {
+ void (*midi_event) (BseMidiNotifier *self, BseMidiEvent *event);
};
-/* --- prototypes --- */
+
void bse_midi_notifier_set_receiver (BseMidiNotifier *self,
BseMidiReceiver *midi_receiver);
void bse_midi_notifier_dispatch (BseMidiNotifier *self);
diff --git a/bse/bsemidireceiver.cc b/bse/bsemidireceiver.cc
index 2e88ef7..4c6d0ea 100644
--- a/bse/bsemidireceiver.cc
+++ b/bse/bsemidireceiver.cc
@@ -1082,8 +1082,8 @@ MidiChannel::debug_notes (guint64 tick_stamp,
} // namespace anon
/* --- BseMidiReceiver C API --- */
extern "C" {
-struct _BseMidiReceiver : public MidiReceiver {
- explicit _BseMidiReceiver () :
+struct BseMidiReceiver : public MidiReceiver {
+ explicit BseMidiReceiver () :
MidiReceiver () {}
};
/* --- prototypes --- */
diff --git a/bse/bsemidisynth.hh b/bse/bsemidisynth.hh
index 8585471..633543f 100644
--- a/bse/bsemidisynth.hh
+++ b/bse/bsemidisynth.hh
@@ -11,10 +11,8 @@ G_BEGIN_DECLS
#define BSE_IS_MIDI_SYNTH(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), BSE_TYPE_MIDI_SYNTH))
#define BSE_IS_MIDI_SYNTH_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_MIDI_SYNTH))
#define BSE_MIDI_SYNTH_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_MIDI_SYNTH,
BseMidiSynthClass))
-/* --- BseMidiSynth object --- */
-struct _BseMidiSynth
-{
- BseSNet parent_object;
+
+struct BseMidiSynth : BseSNet {
guint midi_channel_id;
guint n_voices;
gfloat volume_factor; /* 1-based factor */
@@ -27,9 +25,8 @@ struct _BseMidiSynth
BseSource *output;
BseSource *sub_synth;
};
-struct _BseMidiSynthClass
-{
- BseSNetClass parent_class;
-};
+struct BseMidiSynthClass : BseSNetClass
+{};
+
G_END_DECLS
#endif /* __BSE_MIDI_SYNTH_H__ */
diff --git a/bse/bsemidivoice.hh b/bse/bsemidivoice.hh
index f919eee..becec94 100644
--- a/bse/bsemidivoice.hh
+++ b/bse/bsemidivoice.hh
@@ -17,23 +17,19 @@ G_BEGIN_DECLS
#define BSE_IS_MIDI_VOICE_SWITCH(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object),
BSE_TYPE_MIDI_VOICE_SWITCH))
#define BSE_IS_MIDI_VOICE_SWITCH_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class),
BSE_TYPE_MIDI_VOICE_SWITCH))
#define BSE_MIDI_VOICE_SWITCH_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object),
BSE_TYPE_MIDI_VOICE_SWITCH, BseMidiVoiceSwitchClass))
-/* --- object structures --- */
-typedef struct _BseMidiVoiceInput BseMidiVoiceInput;
-typedef struct _BseMidiVoiceSwitch BseMidiVoiceSwitch;
-typedef struct _BseSourceClass BseMidiVoiceInputClass;
-typedef struct _BseSourceClass BseMidiVoiceSwitchClass;
-struct _BseMidiVoiceInput
-{
- BseSource parent_object;
- BseMidiVoiceSwitch *voice_switch;
-};
-struct _BseMidiVoiceSwitch
-{
- BseSource parent_object;
+
+struct BseMidiVoiceSwitch : BseSource {
guint midi_channel;
GSList *midi_voices;
};
-/* --- prototypes --- */
+struct BseMidiVoiceSwitchClass : BseSourceClass
+{};
+struct BseMidiVoiceInput : BseSource {
+ BseMidiVoiceSwitch *voice_switch;
+};
+struct BseMidiVoiceInputClass : BseSourceClass
+{};
+
void bse_midi_voice_switch_set_midi_channel (BseMidiVoiceSwitch *self,
guint midi_channel);
BseMidiContext bse_midi_voice_switch_ref_poly_voice (BseMidiVoiceSwitch *self,
diff --git a/bse/bseobject.hh b/bse/bseobject.hh
index 928fea8..883dd91 100644
--- a/bse/bseobject.hh
+++ b/bse/bseobject.hh
@@ -31,17 +31,12 @@ typedef enum /*< skip >*/
#define BSE_OBJECT_FLAGS_USHIFT (3)
#define BSE_OBJECT_FLAGS_MAX_SHIFT (16)
/* --- typedefs & structures --- */
-struct _BseObject
-{
- GObject parent_instance;
- /* pack into one guint */
+struct BseObject : GObject {
guint16 flags;
guint16 lock_count;
guint unique_id;
};
-struct _BseObjectClass
-{
- GObjectClass parent_class;
+struct BseObjectClass : GObjectClass {
gboolean (*editable_property) (BseObject *object, /* for set_property/get_property
implementations */
guint param_id,
GParamSpec *pspec);
diff --git a/bse/bseparasite.cc b/bse/bseparasite.cc
index 8cb2f53..a63fc57 100644
--- a/bse/bseparasite.cc
+++ b/bse/bseparasite.cc
@@ -12,7 +12,7 @@ typedef struct {
BseItem *link;
GSList *paths; /* contains ref-counted const gchar* */
} CRef;
-struct _BseParasite {
+struct BseParasite {
GBSearchArray *nodes;
GBSearchArray *crefs;
};
diff --git a/bse/bsepart.hh b/bse/bsepart.hh
index df5cc05..80de4dc 100644
--- a/bse/bsepart.hh
+++ b/bse/bsepart.hh
@@ -12,15 +12,13 @@ G_BEGIN_DECLS
#define BSE_IS_PART_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_PART))
#define BSE_PART_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_PART, BsePartClass))
/* --- typedefs & structures --- */
-typedef struct {
+struct BsePartControls {
GBSearchArray *bsa;
-} BsePartControls;
-typedef struct {
+};
+struct BsePartNoteChannel {
GBSearchArray *bsa;
-} BsePartNoteChannel;
-struct _BsePart
-{
- BseItem parent_instance;
+};
+struct BsePart : BseItem {
const double *semitone_table; // [-132..+132] only updated when not playing
/* id -> tick lookups */
guint n_ids;
@@ -41,9 +39,7 @@ struct _BsePart
gint range_min_note;
gint range_max_note;
};
-struct _BsePartClass
-{
- BseItemClass parent_class;
+struct BsePartClass : BseItemClass {
void (*range_changed) (BsePart *part,
guint tick,
guint duration,
@@ -56,7 +52,7 @@ typedef enum /*< skip >*/
BSE_PART_EVENT_CONTROL,
BSE_PART_EVENT_NOTE
} BsePartEventType;
-/* --- functions --- */
+
#define bse_part_transpose_factor( part, index /* -132..+132*/)
((part)->semitone_table[index])
void bse_part_set_semitone_table (BsePart *self,
const double *semitone_table);
@@ -141,7 +137,7 @@ gboolean bse_part_set_note_selected (BsePart *self,
gboolean bse_part_set_control_selected (BsePart *self,
guint id,
gboolean selected);
-typedef struct {
+struct BsePartQueryEvent {
guint id;
BsePartEventType event_type;
guint channel;
@@ -158,7 +154,8 @@ typedef struct {
/* control */
BseMidiSignalType control_type;
gfloat control_value;
-} BsePartQueryEvent;
+};
+
BsePartEventType bse_part_query_event (BsePart *self,
guint id,
BsePartQueryEvent *equery);
@@ -169,20 +166,19 @@ BsePartEventType bse_part_query_event (BsePart *self,
#define BSE_PART_NOTE_CONTROL(ctype) ((ctype) == BSE_MIDI_SIGNAL_VELOCITY || \
(ctype) == BSE_MIDI_SIGNAL_FINE_TUNE)
/* --- BsePartControlChannel --- */
-typedef struct _BsePartEventControl BsePartEventControl;
-typedef struct
-{
+struct BsePartEventControl;
+struct BsePartTickNode {
guint tick;
BsePartEventControl *events;
-} BsePartTickNode;
-struct _BsePartEventControl
-{
+};
+struct BsePartEventControl {
BsePartEventControl *next;
guint id : 31;
guint selected : 1;
guint ctype; /* BseMidiSignalType */
gfloat value; /* -1 .. 1 */
};
+
void bse_part_controls_init (BsePartControls *self);
BsePartTickNode* bse_part_controls_lookup (BsePartControls *self,
guint tick);
@@ -218,10 +214,8 @@ void bse_part_controls_remove (BsePartControls *sel
guint tick,
BsePartEventControl *cev);
void bse_part_controls_destroy (BsePartControls *self);
-/* --- BsePartNoteChannel --- */
-typedef struct _BsePartEventNote BsePartEventNote;
-struct _BsePartEventNote
-{
+
+struct BsePartEventNote {
guint tick;
guint id : 31;
guint selected : 1;
@@ -260,5 +254,7 @@ void bse_part_note_channel_change_note (BsePartNoteChannel *self,
void bse_part_note_channel_remove (BsePartNoteChannel *self,
guint tick);
void bse_part_note_channel_destroy (BsePartNoteChannel *self);
+
G_END_DECLS
+
#endif /* __BSE_PART_H__ */
diff --git a/bse/bsepcmdevice-null.hh b/bse/bsepcmdevice-null.hh
index 6302685..4ef50aa 100644
--- a/bse/bsepcmdevice-null.hh
+++ b/bse/bsepcmdevice-null.hh
@@ -11,15 +11,11 @@ G_BEGIN_DECLS
#define BSE_IS_PCM_DEVICE_NULL_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_PCM_DEVICE_NULL))
#define BSE_PCM_DEVICE_NULL_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object),
BSE_TYPE_PCM_DEVICE_NULL, BsePcmDeviceNullClass))
/* --- BsePcmDeviceNull object --- */
-typedef struct _BsePcmDeviceNull BsePcmDeviceNull;
-typedef struct _BsePcmDeviceNullClass BsePcmDeviceNullClass;
-struct _BsePcmDeviceNull
-{
- BsePcmDevice parent_object;
-};
-struct _BsePcmDeviceNullClass
-{
- BsePcmDeviceClass parent_class;
-};
+
+struct BsePcmDeviceNull : BsePcmDevice
+{};
+struct BsePcmDeviceNullClass : BsePcmDeviceClass
+{};
+
G_END_DECLS
#endif /* __BSE_PCM_DEVICE_NULL_H__ */
diff --git a/bse/bsepcmdevice-oss.hh b/bse/bsepcmdevice-oss.hh
index 97b20c9..638fd09 100644
--- a/bse/bsepcmdevice-oss.hh
+++ b/bse/bsepcmdevice-oss.hh
@@ -10,17 +10,12 @@ G_BEGIN_DECLS
#define BSE_IS_PCM_DEVICE_OSS(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), BSE_TYPE_PCM_DEVICE_OSS))
#define BSE_IS_PCM_DEVICE_OSS_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_PCM_DEVICE_OSS))
#define BSE_PCM_DEVICE_OSS_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_PCM_DEVICE_OSS,
BsePcmDeviceOSSClass))
-/* --- BsePcmDeviceOSS object --- */
-typedef struct _BsePcmDeviceOSS BsePcmDeviceOSS;
-typedef struct _BsePcmDeviceOSSClass BsePcmDeviceOSSClass;
-struct _BsePcmDeviceOSS
-{
- BsePcmDevice parent_object;
+
+struct BsePcmDeviceOSS : BsePcmDevice {
gchar *device_name;
};
-struct _BsePcmDeviceOSSClass
-{
- BsePcmDeviceClass parent_class;
-};
+struct BsePcmDeviceOSSClass : BsePcmDeviceClass
+{};
+
G_END_DECLS
#endif /* __BSE_PCM_DEVICE_OSS_H__ */
diff --git a/bse/bsepcmdevice.hh b/bse/bsepcmdevice.hh
index 17241dd..e5f1022 100644
--- a/bse/bsepcmdevice.hh
+++ b/bse/bsepcmdevice.hh
@@ -18,13 +18,8 @@ typedef enum /*< skip >*/
BSE_PCM_CMODE_MONO = 1,
BSE_PCM_CMODE_STEREO
} BsePcmChannelMode;
-/* --- BsePcmDevice structs --- */
-typedef struct _BsePcmStatus BsePcmStatus;
-typedef struct _BsePcmHandle BsePcmHandle;
-typedef struct _BsePcmDevice BsePcmDevice;
-typedef struct _BsePcmDeviceClass BsePcmDeviceClass;
-struct _BsePcmHandle
-{
+
+struct BsePcmHandle {
guint readable : 1;
guint writable : 1;
guint n_channels; /* should be req_n_channels */
@@ -39,9 +34,7 @@ struct _BsePcmHandle
glong *timeoutp);
guint (*latency) (BsePcmHandle *handle);
};
-struct _BsePcmDevice
-{
- BseDevice parent_instance;
+struct BsePcmDevice : BseDevice {
/* requested caps */
guint req_n_channels;
guint req_mix_freq;
@@ -50,11 +43,9 @@ struct _BsePcmDevice
/* operational handle */
BsePcmHandle *handle;
};
-struct _BsePcmDeviceClass
-{
- BseDeviceClass parent_class;
-};
-/* --- prototypes --- */
+struct BsePcmDeviceClass : BseDeviceClass
+{};
+
void bse_pcm_device_request (BsePcmDevice *pdev,
guint n_channels,
guint mix_freq,
diff --git a/bse/bsepcminput.hh b/bse/bsepcminput.hh
index 1aa8304..84e388a 100644
--- a/bse/bsepcminput.hh
+++ b/bse/bsepcminput.hh
@@ -11,20 +11,16 @@ G_BEGIN_DECLS
#define BSE_IS_PCM_INPUT_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_PCM_INPUT))
#define BSE_PCM_INPUT_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_PCM_INPUT,
BsePcmInputClass))
/* --- BsePcmInput source --- */
-typedef struct _BsePcmInput BsePcmInput;
-typedef struct _BsePcmInputClass BsePcmInputClass;
-struct _BsePcmInput
+
+struct BsePcmInput : BseSource
{
- BseSource parent_object;
gfloat volume_factor;
/* PREPARED */
BseModule *uplink;
};
-struct _BsePcmInputClass
-{
- BseSourceClass parent_class;
-};
-/* --- channels --- */
+struct BsePcmInputClass : BseSourceClass
+{};
+
enum
{
BSE_PCM_INPUT_OCHANNEL_LEFT,
diff --git a/bse/bsepcmoutput.hh b/bse/bsepcmoutput.hh
index 114b33f..f6ecb15 100644
--- a/bse/bsepcmoutput.hh
+++ b/bse/bsepcmoutput.hh
@@ -12,21 +12,15 @@ extern "C" {
#define BSE_IS_PCM_OUTPUT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), BSE_TYPE_PCM_OUTPUT))
#define BSE_IS_PCM_OUTPUT_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_PCM_OUTPUT))
#define BSE_PCM_OUTPUT_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_PCM_OUTPUT,
BsePcmOutputClass))
-/* --- BsePcmOutput source --- */
-typedef struct _BsePcmOutput BsePcmOutput;
-typedef struct _BsePcmOutputClass BsePcmOutputClass;
-struct _BsePcmOutput
-{
- BseSource parent_object;
+
+struct BsePcmOutput : BseSource {
gfloat volume_factor;
/* PREPARED */
BseModule *uplink;
};
-struct _BsePcmOutputClass
-{
- BseSourceClass parent_class;
-};
-/* --- channels --- */
+struct BsePcmOutputClass : BseSourceClass
+{};
+
enum
{
BSE_PCM_OUTPUT_ICHANNEL_LEFT,
diff --git a/bse/bsepcmwriter.hh b/bse/bsepcmwriter.hh
index 5def768..0c9faf0 100644
--- a/bse/bsepcmwriter.hh
+++ b/bse/bsepcmwriter.hh
@@ -11,9 +11,7 @@ G_BEGIN_DECLS
#define BSE_IS_PCM_WRITER_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_PCM_WRITER))
#define BSE_PCM_WRITER_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_PCM_WRITER,
BsePcmWriterClass))
/* --- BsePcmWriter --- */
-struct _BsePcmWriter
-{
- BseItem parent_instance;
+struct BsePcmWriter : BseItem {
Bse::Mutex mutex;
guint open : 1;
guint broken : 1;
@@ -21,11 +19,9 @@ struct _BsePcmWriter
uint64 n_bytes;
uint64 recorded_maximum;
};
-struct _BsePcmWriterClass
-{
- BseItemClass parent_class;
-};
-/* --- prototypes --- */
+struct BsePcmWriterClass : BseItemClass
+{};
+
BseErrorType bse_pcm_writer_open (BsePcmWriter *pdev,
const gchar *file,
guint n_channels,
diff --git a/bse/bseplugin.hh b/bse/bseplugin.hh
index a042fc1..0661180 100644
--- a/bse/bseplugin.hh
+++ b/bse/bseplugin.hh
@@ -11,10 +11,8 @@ G_BEGIN_DECLS
#define BSE_IS_PLUGIN(plugin) (G_TYPE_CHECK_INSTANCE_TYPE ((plugin), BSE_TYPE_PLUGIN))
#define BSE_IS_PLUGIN_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_PLUGIN))
#define BSE_PLUGIN_GET_CLASS(plugin) (G_TYPE_INSTANCE_GET_CLASS ((plugin), BSE_TYPE_PLUGIN, BsePluginClass))
-/* --- BsePlugin --- */
-struct _BsePlugin
-{
- GObject parent_instance;
+
+struct BsePlugin : GObject {
gchar *fname;
gpointer gmodule;
guint64 missing_export_flags;
@@ -26,11 +24,9 @@ struct _BsePlugin
guint n_types;
GType *types;
};
-struct _BsePluginClass
-{
- GObjectClass parent_class;
-};
-/* --- prototypes --- */
+struct BsePluginClass : GObjectClass
+{};
+
SfiRing* bse_plugin_path_list_files (gboolean include_drivers,
gboolean include_plugins);
const gchar* bse_plugin_check_load (const gchar *file_name);
diff --git a/bse/bseproject.hh b/bse/bseproject.hh
index f0e9af7..9e4d887 100644
--- a/bse/bseproject.hh
+++ b/bse/bseproject.hh
@@ -16,9 +16,8 @@ typedef enum {
BSE_PROJECT_ACTIVE,
BSE_PROJECT_PLAYING
} BseProjectState;
-struct _BseProject
-{
- BseContainer parent_object;
+
+struct BseProject : BseContainer {
GSList *supers;
GSList *items;
guint in_undo : 1;
@@ -31,11 +30,9 @@ struct _BseProject
guint64 deactivate_min_tick;
BseMidiReceiver *midi_receiver;
};
-struct _BseProjectClass
-{
- BseContainerClass parent_class;
-};
-/* --- prototypes --- */
+struct BseProjectClass : BseContainerClass
+{};
+
BseErrorType bse_project_activate (BseProject *project);
void bse_project_start_playback (BseProject *project);
void bse_project_stop_playback (BseProject *project);
diff --git a/bse/bseserver.hh b/bse/bseserver.hh
index ed3eabb..6674aa3 100644
--- a/bse/bseserver.hh
+++ b/bse/bseserver.hh
@@ -12,10 +12,8 @@ G_BEGIN_DECLS
#define BSE_IS_SERVER(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), BSE_TYPE_SERVER))
#define BSE_IS_SERVER_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_SERVER))
#define BSE_SERVER_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_SERVER, BseServerClass))
-/* --- BseServer object --- */
-struct _BseServer
-{
- BseContainer parent_object;
+
+struct BseServer : BseContainer {
GSource *engine_source;
GList *projects;
GSList *children;
@@ -31,11 +29,9 @@ struct _BseServer
BseMidiDevice *midi_device;
GSList *watch_list;
};
-struct _BseServerClass
-{
- BseContainerClass parent_class;
-};
-/* --- prototypes --- */
+struct BseServerClass : BseContainerClass
+{};
+
BseServer* bse_server_get (void);
BseProject* bse_server_create_project (BseServer *server,
const gchar *name);
diff --git a/bse/bsesnet.hh b/bse/bsesnet.hh
index deb5a3f..5b428d4 100644
--- a/bse/bsesnet.hh
+++ b/bse/bsesnet.hh
@@ -12,15 +12,14 @@ G_BEGIN_DECLS
#define BSE_IS_SNET_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_SNET))
#define BSE_SNET_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_SNET, BseSNetClass))
#define BSE_SNET_USER_SYNTH(src) ((BSE_OBJECT_FLAGS (src) & BSE_SNET_FLAG_USER_SYNTH) != 0)
-/* --- BseSNet flags --- */
+
typedef enum /*< skip >*/
{
BSE_SNET_FLAG_USER_SYNTH = 1 << (BSE_SUPER_FLAGS_USHIFT + 0)
} BseSNetFlags;
#define BSE_SNET_FLAGS_USHIFT (BSE_SUPER_FLAGS_USHIFT + 1)
-/* --- BseSNet object --- */
-typedef struct
-{
+
+struct BseSNetPort {
gchar *name;
guint context : 31;
guint input : 1;
@@ -28,10 +27,9 @@ typedef struct
guint src_ostream;
BseModule *dest_imodule; /* input */
guint dest_istream;
-} BseSNetPort;
-struct _BseSNet
-{
- BseSuper parent_object;
+};
+
+struct BseSNet : BseSuper {
SfiRing *sources; /* of type BseSource* */
SfiRing *isources; /* internal (protected) sources */
GSList *iport_names;
@@ -40,16 +38,15 @@ struct _BseSNet
GSList *tmp_context_children;
guint port_unregistered_id;
};
-struct _BseSNetClass
-{
- BseSuperClass parent_class;
-};
-struct _BseMidiContext {
+struct BseSNetClass : BseSuperClass
+{};
+
+struct BseMidiContext {
BseMidiReceiver *midi_receiver;
guint midi_channel;
guint voice_id;
};
-/* --- prototypes --- */
+
guint bse_snet_create_context (BseSNet *snet,
BseMidiContext mcontext,
BseTrans *trans);
diff --git a/bse/bsesnooper.hh b/bse/bsesnooper.hh
index b2737b9..5bc1198 100644
--- a/bse/bsesnooper.hh
+++ b/bse/bsesnooper.hh
@@ -11,18 +11,19 @@ G_BEGIN_DECLS
#define BSE_IS_SNOOPER_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_SNOOPER))
#define BSE_SNOOPER_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_SNOOPER,
BseSnooperClass))
/* --- BseSnooper source --- */
-typedef struct _BseSnooper BseSnooper;
-typedef struct _BseSourceClass BseSnooperClass;
-struct _BseSnooper
-{
- BseSource parent_object;
+
+struct BseSnooper : BseSource {
volatile guint active_context_id;
};
-/* --- channels --- */
+
+struct BseSnooperClass : BseSourceClass
+{};
+
enum
{
BSE_SNOOPER_ICHANNEL_MONO,
BSE_SNOOPER_N_ICHANNELS
};
+
G_END_DECLS
#endif /* __BSE_SNOOPER_H__ */
diff --git a/bse/bsesong.hh b/bse/bsesong.hh
index eb1d83b..f631f79 100644
--- a/bse/bsesong.hh
+++ b/bse/bsesong.hh
@@ -11,13 +11,11 @@ G_BEGIN_DECLS
#define BSE_IS_SONG_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_SONG))
#define BSE_SONG_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_SONG, BseSongClass))
/* --- BseSong object --- */
-typedef struct {
+struct BseSongVoice {
BseSource *constant;
BseSource *sub_synth;
-} BseSongVoice;
-struct _BseSong
-{
- BseSNet parent_instance;
+};
+struct BseSong : BseSNet {
guint tpqn; /* ticks per querter note */
guint numerator;
guint denominator;
@@ -48,11 +46,9 @@ struct _BseSong
SfiInt loop_left_SL; /* left loop tick */
SfiInt loop_right_SL; /* left loop tick */
};
-struct _BseSongClass
-{
- BseSNetClass parent_class;
-};
-/* --- prototypes --- */
+struct BseSongClass : BseSNetClass
+{};
+
BseSong* bse_song_lookup (BseProject *project,
const gchar *name);
void bse_song_stop_sequencing_SL (BseSong *self);
@@ -65,5 +61,7 @@ BseBus* bse_song_find_master (BseSong *self);
BseSource* bse_song_ensure_master (BseSong *self);
void bse_song_set_solo_bus (BseSong *self,
BseBus *bus);
+
G_END_DECLS
+
#endif /* __BSE_SONG_H__ */
diff --git a/bse/bsesource.hh b/bse/bsesource.hh
index 527314f..479ef66 100644
--- a/bse/bsesource.hh
+++ b/bse/bsesource.hh
@@ -4,7 +4,9 @@
#include <bse/bseitem.hh>
#include <bse/gsldefs.hh>
#include <sfi/gbsearcharray.hh>
+
G_BEGIN_DECLS
+
/* --- BseSource type macros --- */
#define BSE_TYPE_SOURCE (BSE_TYPE_ID (BseSource))
#define BSE_SOURCE(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_SOURCE, BseSource))
@@ -41,7 +43,7 @@ G_BEGIN_DECLS
0xffffffff)
#define BSE_SOURCE_JSTREAM_FLAG ((guint) 1 << 31)
#define BSE_SOURCE_PRIVATE_INPUTS(src) ((BSE_OBJECT_FLAGS (src) & BSE_SOURCE_FLAG_PRIVATE_INPUTS) != 0)
-/* --- BseSource flags --- */
+
typedef enum /*< skip >*/
{
BSE_SOURCE_FLAG_PRIVATE_INPUTS = 1 << (BSE_ITEM_FLAGS_USHIFT + 0),
@@ -49,39 +51,23 @@ typedef enum /*< skip >*/
BSE_SOURCE_FLAG_COLLECTED = 1 << (BSE_ITEM_FLAGS_USHIFT + 2)
} BseSourceFlags;
#define BSE_SOURCE_FLAGS_USHIFT (BSE_ITEM_FLAGS_USHIFT + 3)
-/* --- typedefs & structures --- */
-typedef union _BseSourceInput BseSourceInput;
-typedef struct _BseSourceOutput BseSourceOutput;
-typedef struct _BseSourceChannelDefs BseSourceChannelDefs;
+
typedef struct _BseSourceProbes BseSourceProbes;
typedef void (*BseSourceFreeContextData) (BseSource *source,
gpointer data,
BseTrans *trans);
-struct _BseSourceOutput
-{
+struct BseSourceOutput {
BseSource *osource;
guint ochannel;
};
-union _BseSourceInput
-{
+union BseSourceInput {
BseSourceOutput idata;
struct {
guint n_joints;
BseSourceOutput *joints;
} jdata;
};
-struct _BseSource
-{
- BseItem parent_object;
- BseSourceChannelDefs *channel_defs;
- BseSourceInput *inputs; /* [n_ichannels] */
- GSList *outputs;
- GBSearchArray *contexts; /* bsearch array of type BseSourceContext */
- SfiReal pos_x, pos_y;
- BseSourceProbes *probes;
-};
-struct _BseSourceChannelDefs
-{
+struct BseSourceChannelDefs {
guint n_ichannels;
gchar **ichannel_idents;
gchar **ichannel_labels;
@@ -93,9 +79,15 @@ struct _BseSourceChannelDefs
gchar **ochannel_labels;
gchar **ochannel_blurbs;
};
-struct _BseSourceClass
-{
- BseItemClass parent_class;
+struct BseSource : BseItem {
+ BseSourceChannelDefs *channel_defs;
+ BseSourceInput *inputs; /* [n_ichannels] */
+ GSList *outputs;
+ GBSearchArray *contexts; /* bsearch array of type BseSourceContext */
+ SfiReal pos_x, pos_y;
+ BseSourceProbes *probes;
+};
+struct BseSourceClass : BseItemClass {
BseSourceChannelDefs channel_defs;
void (*property_updated) (BseSource *source, /* overridable method */
guint property_id,
@@ -127,7 +119,7 @@ struct _BseSourceClass
SfiRing *unprepared_properties;
SfiRing *automation_properties;
};
-/* --- prototypes -- */
+
guint bse_source_find_ichannel (BseSource *source,
const gchar *ichannel_ident);
guint bse_source_find_ochannel (BseSource *source,
diff --git a/bse/bsestandardosc.hh b/bse/bsestandardosc.hh
index eb230ba..c016702 100644
--- a/bse/bsestandardosc.hh
+++ b/bse/bsestandardosc.hh
@@ -4,14 +4,14 @@
#include <bse/bsesource.hh>
#include <bse/gsloscillator.hh>
G_BEGIN_DECLS
-/* --- object type macros --- */
+
#define BSE_TYPE_STANDARD_OSC (BSE_TYPE_ID (BseStandardOsc))
#define BSE_STANDARD_OSC(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_STANDARD_OSC,
BseStandardOsc))
#define BSE_STANDARD_OSC_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), BSE_TYPE_STANDARD_OSC,
BseStandardOscClass))
#define BSE_IS_STANDARD_OSC(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), BSE_TYPE_STANDARD_OSC))
#define BSE_IS_STANDARD_OSC_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_STANDARD_OSC))
#define BSE_STANDARD_OSC_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_STANDARD_OSC,
BseStandardOscClass))
-/* --- wave forms --- */
+
typedef enum
{
BSE_STANDARD_OSC_SINE = GSL_OSC_WAVE_SINE, /*< nick=Sine >*/
@@ -24,23 +24,17 @@ typedef enum
BSE_STANDARD_OSC_SQUARE = GSL_OSC_WAVE_SQUARE, /*< nick=Square >*/
BSE_STANDARD_OSC_PULSE = GSL_OSC_WAVE_PULSE_SAW /*< nick=Pulse >*/
} BseStandardOscWaveType;
-/* --- BseStandardOsc source --- */
-typedef struct _BseStandardOsc BseStandardOsc;
-typedef struct _BseStandardOscClass BseStandardOscClass;
-struct _BseStandardOsc
-{
- BseSource parent_object;
+
+struct BseStandardOsc : BseSource {
BseStandardOscWaveType wave;
GslOscConfig config;
int transpose;
gfloat fm_strength;
gfloat n_octaves;
};
-struct _BseStandardOscClass
-{
- BseSourceClass parent_class;
-};
-/* --- channels --- */
+struct BseStandardOscClass : BseSourceClass
+{};
+
enum
{
BSE_STANDARD_OSC_ICHANNEL_FREQ,
diff --git a/bse/bsestorage.hh b/bse/bsestorage.hh
index 7714667..f791c31 100644
--- a/bse/bsestorage.hh
+++ b/bse/bsestorage.hh
@@ -37,9 +37,7 @@ typedef void (*BseStorageRestoreLink) (gpointer data,
BseItem *from_item,
BseItem *to_item,
const gchar *error);
-struct _BseStorage
-{
- BseObject parent_instance;
+struct BseStorage : BseObject {
/* writing */
SfiWStore *wstore;
SfiPPool *stored_items;
@@ -61,10 +59,9 @@ struct _BseStorage
gfloat osc_freq;
guint n_channels;
};
-struct _BseStorageClass
-{
- BseObjectClass parent_class;
-};
+struct BseStorageClass : BseObjectClass
+{};
+
/* --- compatibility file parsing --- */
void bse_storage_compat_dhreset (BseStorage *self);
void bse_storage_compat_dhmixf (BseStorage *self,
diff --git a/bse/bsesubiport.hh b/bse/bsesubiport.hh
index c67ca67..c720a34 100644
--- a/bse/bsesubiport.hh
+++ b/bse/bsesubiport.hh
@@ -4,7 +4,7 @@
#include <bse/bsesource.hh>
#include <bse/bseengine.hh>
G_BEGIN_DECLS
-/* --- object type macros --- */
+
#define BSE_TYPE_SUB_IPORT (BSE_TYPE_ID (BseSubIPort))
#define BSE_SUB_IPORT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_SUB_IPORT,
BseSubIPort))
#define BSE_SUB_IPORT_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), BSE_TYPE_SUB_IPORT,
BseSubIPortClass))
@@ -12,17 +12,13 @@ G_BEGIN_DECLS
#define BSE_IS_IPORT_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_SUB_IPORT))
#define BSE_SUB_IPORT_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_SUB_IPORT,
BseSubIPortClass))
#define BSE_SUB_IPORT_N_PORTS (4)
-/* --- BseSubIPort module --- */
-typedef struct _BseSubIPort BseSubIPort;
-typedef struct _BseSubIPortClass BseSubIPortClass;
-struct _BseSubIPort
-{
- BseSource parent_object;
+
+struct BseSubIPort : BseSource {
gchar **input_ports;
};
-struct _BseSubIPortClass
-{
- BseSourceClass parent_class;
-};
+struct BseSubIPortClass : BseSourceClass
+{};
+
G_END_DECLS
+
#endif /* __BSE_SUB_IPORT_H__ */
diff --git a/bse/bsesuboport.hh b/bse/bsesuboport.hh
index e3b0efc..a801c91 100644
--- a/bse/bsesuboport.hh
+++ b/bse/bsesuboport.hh
@@ -4,7 +4,7 @@
#include <bse/bsesource.hh>
#include <bse/bseengine.hh>
G_BEGIN_DECLS
-/* --- object type macros --- */
+
#define BSE_TYPE_SUB_OPORT (BSE_TYPE_ID (BseSubOPort))
#define BSE_SUB_OPORT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_SUB_OPORT,
BseSubOPort))
#define BSE_SUB_OPORT_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), BSE_TYPE_SUB_OPORT,
BseSubOPortClass))
@@ -12,17 +12,13 @@ G_BEGIN_DECLS
#define BSE_IS_OPORT_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_SUB_OPORT))
#define BSE_SUB_OPORT_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_SUB_OPORT,
BseSubOPortClass))
#define BSE_SUB_OPORT_N_PORTS (4)
-/* --- BseSubOPort module --- */
-typedef struct _BseSubOPort BseSubOPort;
-typedef struct _BseSubOPortClass BseSubOPortClass;
-struct _BseSubOPort
-{
- BseSource parent_object;
+
+struct BseSubOPort : BseSource {
gchar **output_ports;
};
-struct _BseSubOPortClass
-{
- BseSourceClass parent_class;
-};
+struct BseSubOPortClass : BseSourceClass
+{};
+
G_END_DECLS
+
#endif /* __BSE_SUB_OPORT_H__ */
diff --git a/bse/bsesubsynth.hh b/bse/bsesubsynth.hh
index 47ab7a2..6054d3c 100644
--- a/bse/bsesubsynth.hh
+++ b/bse/bsesubsynth.hh
@@ -3,28 +3,24 @@
#define __BSE_SUB_SYNTH_H__
#include <bse/bsesource.hh>
G_BEGIN_DECLS
-/* --- object type macros --- */
+
#define BSE_TYPE_SUB_SYNTH (BSE_TYPE_ID (BseSubSynth))
#define BSE_SUB_SYNTH(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_SUB_SYNTH,
BseSubSynth))
#define BSE_SUB_SYNTH_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), BSE_TYPE_SUB_SYNTH,
BseSubSynthClass))
#define BSE_IS_SUB_SYNTH(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), BSE_TYPE_SUB_SYNTH))
#define BSE_IS_SUB_SYNTH_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_SUB_SYNTH))
#define BSE_SUB_SYNTH_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_SUB_SYNTH,
BseSubSynthClass))
-/* --- BseSubSynth source --- */
-struct _BseSubSynth
-{
- BseSource parent_object;
+
+struct BseSubSynth : BseSource {
BseSNet *snet;
gchar **input_ports;
gchar **output_ports;
guint midi_channel;
guint null_shortcut : 1;
};
-struct _BseSubSynthClass
-{
- BseSourceClass parent_class;
-};
-/* --- prototypes --- */
+struct BseSubSynthClass : BseSourceClass
+{};
+
/* whether to shortcut inputs with outputs for snet==NULL */
void bse_sub_synth_set_null_shortcut (BseSubSynth *self,
gboolean enabled);
diff --git a/bse/bsesuper.hh b/bse/bsesuper.hh
index 5362496..820f2db 100644
--- a/bse/bsesuper.hh
+++ b/bse/bsesuper.hh
@@ -12,24 +12,20 @@ G_BEGIN_DECLS
#define BSE_SUPER_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_SUPER, BseSuperClass))
/* --- BseSuper member macros --- */
#define BSE_SUPER_NEEDS_CONTEXT(object) ((BSE_OBJECT_FLAGS (object) &
BSE_SUPER_FLAG_NEEDS_CONTEXT) != 0)
-/* --- bse super flags --- */
+
typedef enum /*< skip >*/
{
BSE_SUPER_FLAG_NEEDS_CONTEXT = 1 << (BSE_CONTAINER_FLAGS_USHIFT + 0),
} BseSuperFlags;
#define BSE_SUPER_FLAGS_USHIFT (BSE_CONTAINER_FLAGS_USHIFT + 1)
-/* --- BseSuper object --- */
-struct _BseSuper
-{
- BseContainer parent_object;
+
+struct BseSuper : BseContainer {
SfiTime creation_time;
SfiTime mod_time;
/* for BseProject */
guint context_handle;
};
-struct _BseSuperClass
-{
- BseContainerClass parent_class;
+struct BseSuperClass : BseContainerClass {
void (*modified) (BseSuper *super,
SfiTime stamp);
void (*compat_finish) (BseSuper *super,
@@ -37,5 +33,6 @@ struct _BseSuperClass
guint vminor,
guint vmicro);
};
+
G_END_DECLS
#endif /* __BSE_SUPER_H__ */
diff --git a/bse/bsetrack.hh b/bse/bsetrack.hh
index df2ee8c..d7a4450 100644
--- a/bse/bsetrack.hh
+++ b/bse/bsetrack.hh
@@ -12,15 +12,13 @@ G_BEGIN_DECLS
#define BSE_IS_TRACK(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), BSE_TYPE_TRACK))
#define BSE_IS_TRACK_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_TRACK))
#define BSE_TRACK_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_TRACK, BseTrackClass))
-/* --- BseTrack --- */
-typedef struct {
+
+struct BseTrackEntry {
guint tick;
guint id;
BsePart *part;
-} BseTrackEntry;
-struct _BseTrack
-{
- BseContextMerger parent_instance;
+};
+struct BseTrack : BseContextMerger {
guint channel_id;
guint max_voices;
BseSNet *snet;
@@ -41,10 +39,9 @@ struct _BseTrack
guint midi_channel_SL;
gboolean track_done_SL;
};
-struct _BseTrackClass
-{
- BseContextMergerClass parent_class;
-};
+struct BseTrackClass : BseContextMergerClass
+{};
+
/* --- prototypes -- */
void bse_track_add_modules (BseTrack *self,
BseContainer *container,
diff --git a/bse/bsewave.hh b/bse/bsewave.hh
index e5e1057..967ed53 100644
--- a/bse/bsewave.hh
+++ b/bse/bsewave.hh
@@ -10,20 +10,17 @@ G_BEGIN_DECLS
#define BSE_IS_WAVE(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), BSE_TYPE_WAVE))
#define BSE_IS_WAVE_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_WAVE))
#define BSE_WAVE_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_WAVE, BseWaveClass))
-/* --- BseWave --- */
-typedef struct _BseWaveClass BseWaveClass;
-typedef struct {
+
+struct BseWaveEntry {
GslWaveChunk *wchunk;
gfloat osc_freq;
gfloat velocity; /* 0..1 */
-} BseWaveEntry;
-typedef struct {
+};
+struct BseWaveIndex {
guint n_entries;
BseWaveEntry entries[1]; /* flexible array */
-} BseWaveIndex;
-struct _BseWave
-{
- BseSource parent_object;
+};
+struct BseWave : BseSource {
/* requested BseModule indices */
guint request_count;
GSList *index_list;
@@ -39,11 +36,9 @@ struct _BseWave
SfiRing *wave_chunks; /* data=GslWaveChunk* */
SfiRing *open_handles; /* data=GslDataHandle* */
};
-struct _BseWaveClass
-{
- BseSourceClass parent_class;
-};
-/* --- prototypes -- */
+struct BseWaveClass : BseSourceClass
+{};
+
void bse_wave_clear (BseWave *wave);
BseErrorType bse_wave_load_wave_file (BseWave *wave,
const gchar *file_name,
diff --git a/bse/bsewaveosc.hh b/bse/bsewaveosc.hh
index cf40032..011b5e8 100644
--- a/bse/bsewaveosc.hh
+++ b/bse/bsewaveosc.hh
@@ -12,23 +12,17 @@ G_BEGIN_DECLS
#define BSE_IS_WAVE_OSC(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), BSE_TYPE_WAVE_OSC))
#define BSE_IS_WAVE_OSC_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_WAVE_OSC))
#define BSE_WAVE_OSC_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_WAVE_OSC,
BseWaveOscClass))
-/* --- BseWaveOsc source --- */
-typedef struct _BseWaveOsc BseWaveOsc;
-typedef struct _BseWaveOscClass BseWaveOscClass;
-struct _BseWaveOsc
-{
- BseSource parent_object;
+
+struct BseWaveOsc : BseSource {
BseWave *wave;
GslWaveChunk *esample_wchunk;
GslWaveOscConfig config;
gfloat fm_strength;
gfloat n_octaves;
};
-struct _BseWaveOscClass
-{
- BseSourceClass parent_class;
-};
-/* --- prototypes --- */
+struct BseWaveOscClass : BseSourceClass
+{};
+
void bse_wave_osc_request_pcm_position (BseWaveOsc *self);
void bse_wave_osc_mass_seek (guint n_woscs,
BseWaveOsc **woscs,
diff --git a/bse/bsewaverepo.hh b/bse/bsewaverepo.hh
index b97932e..7a18444 100644
--- a/bse/bsewaverepo.hh
+++ b/bse/bsewaverepo.hh
@@ -10,16 +10,13 @@ G_BEGIN_DECLS
#define BSE_IS_WAVE_REPO(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), BSE_TYPE_WAVE_REPO))
#define BSE_IS_WAVE_REPO_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_WAVE_REPO))
#define BSE_WAVE_REPO_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_WAVE_REPO,
BseWaveRepoClass))
-/* --- BseWaveRepo object --- */
-struct _BseWaveRepo
-{
- BseSuper parent_object;
+
+struct BseWaveRepo : BseSuper {
GList *waves;
};
-struct _BseWaveRepoClass
-{
- BseSuperClass parent_class;
-};
-/* --- prototypes --- */
+struct BseWaveRepoClass : BseSuperClass
+{};
+
G_END_DECLS
+
#endif /* __BSE_WAVE_REPO_H__ */
diff --git a/plugins/bsesequencer.hh b/plugins/bsesequencer.hh
index 2866a99..ccc486b 100644
--- a/plugins/bsesequencer.hh
+++ b/plugins/bsesequencer.hh
@@ -13,19 +13,17 @@ extern "C" {
#define BSE_IS_SEQUENCER(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), BSE_TYPE_SEQUENCER))
#define BSE_IS_SEQUENCER_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_SEQUENCER))
#define BSE_SEQUENCER_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_SEQUENCER,
BseSequencerClass))
-/* --- BseSequencer source --- */
-typedef struct _BseSequencer BseSequencer;
-typedef struct _BseSourceClass BseSequencerClass;
-struct _BseSequencer
-{
- BseSource parent_object;
+
+struct BseSequencer : BseSource {
gfloat counter;
gint transpose;
BseNoteSequence *sdata;
guint n_freq_values;
gfloat *freq_values;
};
-/* --- channels --- */
+struct BseSequencerClass : BseSourceClass
+{};
+
enum
{
BSE_SEQUENCER_OCHANNEL_FREQ,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]