[beast: 73/95] PLUGINS: use C++ inheritance instead of nesting for GObject struct derivation



commit 1367dd3bdfee64689ebad2829709bc27d34b32aa
Author: Tim Janik <timj gnu org>
Date:   Fri Mar 22 15:40:27 2013 +0100

    PLUGINS: use C++ inheritance instead of nesting for GObject struct derivation

 plugins/bseadder.hh             |   14 ++++----------
 plugins/bseatandistort.hh       |   20 +++++++-------------
 plugins/bsefirfilter.hh         |   18 ++++++------------
 plugins/bseiirfilter.hh         |   24 +++++++++---------------
 plugins/bsemixer.hh             |   20 +++++++-------------
 plugins/bsemult.hh              |   19 +++++++------------
 plugins/bsesimpleadsr.hh        |   38 ++++++++++++++++----------------------
 plugins/davcanyondelay.hh       |   25 +++++++++++--------------
 plugins/davguitar.hh            |   21 +++++++--------------
 plugins/davsyndrum.hh           |   22 ++++++++++------------
 plugins/davxtalstrings.hh       |   23 +++++++++--------------
 plugins/freeverb/bsefreeverb.hh |   18 +++++++-----------
 12 files changed, 100 insertions(+), 162 deletions(-)
---
diff --git a/plugins/bseadder.hh b/plugins/bseadder.hh
index 1bfa3a2..dd59657 100644
--- a/plugins/bseadder.hh
+++ b/plugins/bseadder.hh
@@ -13,20 +13,14 @@ extern "C" {
 #define BSE_IS_ADDER(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), BSE_TYPE_ADDER))
 #define BSE_IS_ADDER_CLASS(class)   (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_ADDER))
 #define BSE_ADDER_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_ADDER, BseAdderClass))
-/* --- BseAdder source --- */
-typedef struct _BseAdder      BseAdder;
-typedef struct _BseAdderClass BseAdderClass;
-struct _BseAdder
-{
-  BseSource       parent_object;
+
+struct BseAdder : BseSource {
   gboolean       subtract;
 };
-struct _BseAdderClass
-{
-  BseSourceClass parent_class;
+struct BseAdderClass : BseSourceClass {
   BseIcon      *sub_icon;
 };
-/* --- channels --- */
+
 enum
 {
   BSE_ADDER_JCHANNEL_AUDIO1,
diff --git a/plugins/bseatandistort.hh b/plugins/bseatandistort.hh
index a08ea11..eaa0590 100644
--- a/plugins/bseatandistort.hh
+++ b/plugins/bseatandistort.hh
@@ -13,20 +13,14 @@ extern "C" {
 #define BSE_IS_ATAN_DISTORT(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), BSE_TYPE_ATAN_DISTORT))
 #define BSE_IS_ATAN_DISTORT_CLASS(class)   (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_ATAN_DISTORT))
 #define BSE_ATAN_DISTORT_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_ATAN_DISTORT, 
BseAtanDistortClass))
-/* --- BseAtanDistort source --- */
-typedef struct _BseAtanDistort      BseAtanDistort;
-typedef struct _BseAtanDistortClass BseAtanDistortClass;
-struct _BseAtanDistort
-{
-  BseSource         parent_object;
-  gfloat           boost_amount;
-  gdouble          prescale;
-};
-struct _BseAtanDistortClass
-{
-  BseSourceClass parent_class;
+
+struct BseAtanDistort : BseSource {
+  float         boost_amount;
+  double prescale;
 };
-/* --- channels --- */
+struct BseAtanDistortClass : BseSourceClass
+{};
+
 enum
 {
   BSE_ATAN_DISTORT_ICHANNEL_MONO1,
diff --git a/plugins/bsefirfilter.hh b/plugins/bsefirfilter.hh
index 01c0785..9f039ae 100644
--- a/plugins/bsefirfilter.hh
+++ b/plugins/bsefirfilter.hh
@@ -13,12 +13,8 @@ extern "C" {
 #define BSE_IS_FIR_FILTER(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), BSE_TYPE_FIR_FILTER))
 #define BSE_IS_FIR_FILTER_CLASS(class)   (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_FIR_FILTER))
 #define BSE_FIR_FILTER_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_FIR_FILTER, 
BseFIRFilterClass))
-/* --- BseFIRFilter source --- */
-typedef struct _BseFIRFilter      BseFIRFilter;
-typedef struct _BseFIRFilterClass BseFIRFilterClass;
-struct _BseFIRFilter
-{
-  BseSource       parent_object;
+
+struct BseFIRFilter : BseSource {
   guint16 degree;
   guint   filter_type : 8;
   guint   lanczos_smoothing : 1;
@@ -29,18 +25,16 @@ struct _BseFIRFilter
   guint           history_pos;
   BseSampleValue *history;
 };
-struct _BseFIRFilterClass
-{
-  BseSourceClass parent_class;
-};
-/* --- enums --- */
+struct BseFIRFilterClass : BseSourceClass
+{};
+
 typedef enum
 {
   BSE_FIR_FILTER_ALLPASS,
   BSE_FIR_FILTER_LOWPASS,
   BSE_FIR_FILTER_HIGHPASS
 } BseFIRFilterType;
-/* --- channels --- */
+
 enum
 {
   BSE_FIR_FILTER_OCHANNEL_NONE,
diff --git a/plugins/bseiirfilter.hh b/plugins/bseiirfilter.hh
index c9aa844..3796431 100644
--- a/plugins/bseiirfilter.hh
+++ b/plugins/bseiirfilter.hh
@@ -5,7 +5,7 @@
 #ifdef __cplusplus
 extern "C" {
 #endif /* __cplusplus */
-/* --- type macros --- */
+
 #define BSE_TYPE_IIR_FILTER              (bse_iir_filter_get_type())
 #define BSE_IIR_FILTER(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_IIR_FILTER, 
BseIIRFilter))
 #define BSE_IIR_FILTER_CLASS(class)      (G_TYPE_CHECK_CLASS_CAST ((class), BSE_TYPE_IIR_FILTER, 
BseIIRFilterClass))
@@ -13,17 +13,12 @@ extern "C" {
 #define BSE_IS_IIR_FILTER_CLASS(class)   (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_IIR_FILTER))
 #define BSE_IIR_FILTER_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_IIR_FILTER, 
BseIIRFilterClass))
 #define        BSE_IIR_FILTER_MAX_ORDER         (18)
-/* --- BseIIRFilter source --- */
-typedef struct _BseIIRFilter      BseIIRFilter;
-typedef struct _BseIIRFilterClass BseIIRFilterClass;
-typedef struct
-{
+
+struct BseIIRFilterVars {
   gdouble a[BSE_IIR_FILTER_MAX_ORDER];
   gdouble b[BSE_IIR_FILTER_MAX_ORDER];
-} BseIIRFilterVars;
-struct _BseIIRFilter
-{
-  BseSource    parent_object;
+};
+struct BseIIRFilter : BseSource {
   BseIIRFilterAlgorithm filter_algo;
   BseIIRFilterType      filter_type;
   guint                        algo_type_change : 1;
@@ -34,11 +29,9 @@ struct _BseIIRFilter
   gdouble      a[BSE_IIR_FILTER_MAX_ORDER + 1];
   gdouble      b[BSE_IIR_FILTER_MAX_ORDER + 1];
 };
-struct _BseIIRFilterClass
-{
-  BseSourceClass parent_class;
-};
-/* --- channels --- */
+struct BseIIRFilterClass : BseSourceClass
+{};
+
 enum
 {
   BSE_IIR_FILTER_ICHANNEL_MONO,
@@ -49,6 +42,7 @@ enum
   BSE_IIR_FILTER_OCHANNEL_MONO,
   BSE_IIR_FILTER_N_OCHANNELS
 };
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */
diff --git a/plugins/bsemixer.hh b/plugins/bsemixer.hh
index 8066633..a71f715 100644
--- a/plugins/bsemixer.hh
+++ b/plugins/bsemixer.hh
@@ -14,20 +14,14 @@ extern "C" {
 #define BSE_IS_MIXER_CLASS(class)   (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_MIXER))
 #define BSE_MIXER_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_MIXER, BseMixerClass))
 #define        BSE_MIXER_N_INPUTS      (4)
-/* --- BseMixer source --- */
-typedef struct _BseMixer      BseMixer;
-typedef struct _BseMixerClass BseMixerClass;
-struct _BseMixer
-{
-  BseSource       parent_object;
-  gfloat         master_volume_factor;
-  gfloat          volume_factors[BSE_MIXER_N_INPUTS];
-};
-struct _BseMixerClass
-{
-  BseSourceClass parent_class;
+
+struct BseMixer : BseSource {
+  float master_volume_factor;
+  float volume_factors[BSE_MIXER_N_INPUTS];
 };
-/* --- channels --- */
+struct BseMixerClass : BseSourceClass
+{};
+
 enum
 {
   BSE_MIXER_OCHANNEL_MONO
diff --git a/plugins/bsemult.hh b/plugins/bsemult.hh
index 43f596e..0d0a3dd 100644
--- a/plugins/bsemult.hh
+++ b/plugins/bsemult.hh
@@ -13,18 +13,13 @@ extern "C" {
 #define BSE_IS_MULT(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), BSE_TYPE_MULT))
 #define BSE_IS_MULT_CLASS(class)   (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_MULT))
 #define BSE_MULT_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_MULT, BseMultClass))
-/* --- BseMult source --- */
-typedef struct _BseMult      BseMult;
-typedef struct _BseMultClass BseMultClass;
-struct _BseMult
-{
-  BseSource       parent_object;
-};
-struct _BseMultClass
-{
-  BseSourceClass parent_class;
-};
-/* --- channels --- */
+
+struct BseMult : BseSource
+{};
+
+struct BseMultClass : BseSourceClass
+{};
+
 enum
 {
   BSE_MULT_ICHANNEL_MONO1,
diff --git a/plugins/bsesimpleadsr.hh b/plugins/bsesimpleadsr.hh
index b4e707b..b2258fa 100644
--- a/plugins/bsesimpleadsr.hh
+++ b/plugins/bsesimpleadsr.hh
@@ -11,30 +11,24 @@ G_BEGIN_DECLS
 #define BSE_IS_SIMPLE_ADSR(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), BSE_TYPE_SIMPLE_ADSR))
 #define BSE_IS_SIMPLE_ADSR_CLASS(class)   (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_SIMPLE_ADSR))
 #define BSE_SIMPLE_ADSR_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_SIMPLE_ADSR, 
BseSimpleADSRClass))
-/* --- BseSimpleADSR source --- */
-typedef struct _BseSimpleADSR      BseSimpleADSR;
-typedef struct _BseSimpleADSRClass BseSimpleADSRClass;
-typedef struct {
-  gfloat         attack_level;
-  gfloat         attack_inc;
-  gfloat         decay_dec;
-  gfloat         sustain_level;
-  gfloat         release_dec;
-} BseSimpleADSRVars;
-struct _BseSimpleADSR
-{
-  BseSource         parent_object;
-  gfloat           attack_time;
-  gfloat           decay_time;
-  gfloat           sustain_level;
-  gfloat           release_time;
-  BseTimeRangeType  time_range;
+
+struct BseSimpleADSRVars {
+  float          attack_level;
+  float          attack_inc;
+  float          decay_dec;
+  float          sustain_level;
+  float          release_dec;
 };
-struct _BseSimpleADSRClass
-{
-  BseSourceClass parent_class;
+struct BseSimpleADSR : BseSource {
+  float            attack_time;
+  float            decay_time;
+  float            sustain_level;
+  float            release_time;
+  BseTimeRangeType  time_range;
 };
-/* --- channels --- */
+struct BseSimpleADSRClass : BseSourceClass
+{};
+
 enum
 {
   BSE_SIMPLE_ADSR_ICHANNEL_GATE,
diff --git a/plugins/davcanyondelay.hh b/plugins/davcanyondelay.hh
index e8d9967..d878ed5 100644
--- a/plugins/davcanyondelay.hh
+++ b/plugins/davcanyondelay.hh
@@ -4,15 +4,15 @@
 #include <bse/bseplugin.hh>
 #include <bse/bsesource.hh>
 G_BEGIN_DECLS
-/* --- object type macros --- */
+
 #define DAV_TYPE_CANYON_DELAY              (dav_canyon_delay_get_type())
 #define DAV_CANYON_DELAY(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), DAV_TYPE_CANYON_DELAY, 
DavCanyonDelay))
 #define DAV_CANYON_DELAY_CLASS(class)      (G_TYPE_CHECK_CLASS_CAST ((class), DAV_TYPE_CANYON_DELAY, 
DavCanyonDelayClass))
 #define DAV_IS_CANYON_DELAY(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), DAV_TYPE_CANYON_DELAY))
 #define DAV_IS_CANYON_DELAY_CLASS(class)   (G_TYPE_CHECK_CLASS_TYPE ((class), DAV_TYPE_CANYON_DELAY))
 #define DAV_CANYON_DELAY_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), DAV_TYPE_CANYON_DELAY, 
DavCanyonDelayClass))
-/* --- DavCanyonDelay source --- */
-typedef struct {
+
+struct DavCanyonDelayParams {
   gdouble l_to_r_mag;
   gdouble l_to_r_invmag;
   gdouble r_to_l_mag;
@@ -21,18 +21,16 @@ typedef struct {
   gint32  r_to_l_pos;
   gdouble filter_mag;
   gdouble filter_invmag;
-} DavCanyonDelayParams;
-typedef struct
-{
-  BseSource parent_object;
+};
+struct DavCanyonDelay : BseSource {
   gdouble l_to_r_seconds;
   gdouble l_to_r_feedback;
   gdouble r_to_l_seconds;
   gdouble r_to_l_feedback;
   gdouble filter_freq;
   DavCanyonDelayParams params;
-} DavCanyonDelay;
-typedef struct {
+};
+struct DavCanyonDelayModule {
   gint32   pos;
   gint32   datasize;
   gdouble  accum_l;
@@ -40,11 +38,10 @@ typedef struct {
   gdouble *data_l;
   gdouble *data_r;
   DavCanyonDelayParams params;
-} DavCanyonDelayModule;
-typedef struct {
-  BseSourceClass parent_class;
-} DavCanyonDelayClass;
-/* --- channels --- */
+};
+struct DavCanyonDelayClass : BseSourceClass
+{};
+
 enum
 {
   DAV_CANYON_DELAY_ICHANNEL_LEFT,
diff --git a/plugins/davguitar.hh b/plugins/davguitar.hh
index d6ff7b4..9ee6c8e 100644
--- a/plugins/davguitar.hh
+++ b/plugins/davguitar.hh
@@ -13,21 +13,15 @@ extern "C" {
 #define DAV_IS_GUITAR(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), DAV_TYPE_GUITAR))
 #define DAV_IS_GUITAR_CLASS(class)   (G_TYPE_CHECK_CLASS_TYPE ((class), DAV_TYPE_GUITAR))
 #define DAV_GUITAR_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), DAV_TYPE_GUITAR, DavGuitarClass))
-/* --- DavGuitar source --- */
-typedef struct _DavGuitar      DavGuitar;
-typedef struct _DavGuitarClass DavGuitarClass;
-typedef struct _WaveGuide WaveGuide;
-struct _WaveGuide
-{
+
+struct WaveGuide {
   gfloat  freq;
   gfloat  lowpass_data, lowpass_coeff;
   gint    wavelen;
   gint    pos;
   gfloat *data;
 };
-struct _DavGuitar
-{
-  BseSource parent_object;
+struct DavGuitar : BseSource {
   gfloat hipass_data, hipass_coeff;
   gint      body_taps[6];
   WaveGuide strings[6];
@@ -36,16 +30,15 @@ struct _DavGuitar
   gfloat    metallic_factor;
   gfloat    snap_factor;
 };
-struct _DavGuitarClass
-{
-  BseSourceClass parent_class;
-};
-/* --- channels --- */
+struct DavGuitarClass : BseSourceClass
+{};
+
 enum
 {
   DAV_GUITAR_OCHANNEL_NONE,
   DAV_GUITAR_OCHANNEL_MONO
 };
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */
diff --git a/plugins/davsyndrum.hh b/plugins/davsyndrum.hh
index 16b84a5..82466e3 100644
--- a/plugins/davsyndrum.hh
+++ b/plugins/davsyndrum.hh
@@ -11,23 +11,21 @@ G_BEGIN_DECLS
 #define DAV_IS_SYN_DRUM(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), DAV_TYPE_SYN_DRUM))
 #define DAV_IS_SYN_DRUM_CLASS(class)   (G_TYPE_CHECK_CLASS_TYPE ((class), DAV_TYPE_SYN_DRUM))
 #define DAV_SYN_DRUM_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), DAV_TYPE_SYN_DRUM, 
DavSynDrumClass))
-/* --- DavSynDrum source --- */
-typedef struct {
+
+struct DavSynDrumParams {
   gfloat freq;
   gfloat trigger_vel;
   gfloat ratio;
   gfloat res; /* sample rate specific */
-} DavSynDrumParams;
-typedef struct {
-  BseSource        parent_object;
+};
+struct DavSynDrum : BseSource {
   DavSynDrumParams params; /* .res is unused (due to its sample rate dependency) */
   gfloat           half;
   gboolean         force_trigger;
-} DavSynDrum;
-typedef struct {
-  BseSourceClass parent_class;
-} DavSynDrumClass;
-typedef struct {
+};
+struct DavSynDrumClass : BseSourceClass
+{};
+struct DavSynDrumModule {
   DavSynDrumParams params;
   gfloat last_trigger_level;
   gfloat spring_vel;
@@ -35,8 +33,8 @@ typedef struct {
   gfloat env;
   gfloat freq_rad;
   gfloat freq_shift;
-} DavSynDrumModule;
-/* --- channels --- */
+};
+
 enum
 {
   DAV_SYN_DRUM_ICHANNEL_FREQ,
diff --git a/plugins/davxtalstrings.hh b/plugins/davxtalstrings.hh
index f86647d..f2128ea 100644
--- a/plugins/davxtalstrings.hh
+++ b/plugins/davxtalstrings.hh
@@ -6,17 +6,15 @@
 #ifdef __cplusplus
 extern "C" {
 #endif /* __cplusplus */
-/* --- object type macros --- */
+
 #define DAV_TYPE_XTAL_STRINGS             (dav_xtal_strings_get_type())
 #define DAV_XTAL_STRINGS(object)          (G_TYPE_CHECK_INSTANCE_CAST ((object), DAV_TYPE_XTAL_STRINGS, 
DavXtalStrings))
 #define DAV_XTAL_STRINGS_CLASS(class)     (G_TYPE_CHECK_CLASS_CAST ((class), DAV_TYPE_XTAL_STRINGS, 
DavXtalStringsClass))
 #define DAV_IS_XTAL_STRINGS(object)       (G_TYPE_CHECK_INSTANCE_TYPE ((object), DAV_TYPE_XTAL_STRINGS))
 #define DAV_IS_XTAL_STRINGS_CLASS(class)   (G_TYPE_CHECK_CLASS_TYPE ((class), DAV_TYPE_XTAL_STRINGS))
 #define DAV_XTAL_STRINGS_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), DAV_TYPE_XTAL_STRINGS, 
DavXtalStringsClass))
-/* --- DavXtalStrings source --- */
-typedef struct _DavXtalStrings     DavXtalStrings;
-typedef struct _DavXtalStringsClass DavXtalStringsClass;
-typedef struct {
+
+struct DavXtalStringsParams {
   double      transpose_factor;
   gfloat      freq;
   gfloat      trigger_vel;
@@ -26,18 +24,15 @@ typedef struct {
   gfloat      snap_factor;
   gint        fine_tune;
   guint              trigger_now : 1;
-} DavXtalStringsParams;
-struct _DavXtalStrings
-{
-  BseSource parent_object;
+};
+
+struct DavXtalStrings : BseSource {
   DavXtalStringsParams params;
   int                  transpose;
 };
-struct _DavXtalStringsClass
-{
-  BseSourceClass parent_class;
-};
-/* --- channels --- */
+struct DavXtalStringsClass : BseSourceClass
+{};
+
 enum
 {
   DAV_XTAL_STRINGS_ICHANNEL_FREQ,
diff --git a/plugins/freeverb/bsefreeverb.hh b/plugins/freeverb/bsefreeverb.hh
index 0e12d67..12d4354 100644
--- a/plugins/freeverb/bsefreeverb.hh
+++ b/plugins/freeverb/bsefreeverb.hh
@@ -6,25 +6,21 @@
 #include <bse/bsesource.hh>
 #include "bsefreeverbcpp.hh"
 G_BEGIN_DECLS
-/* --- type macros --- */
+
 #define BSE_TYPE_FREE_VERB              (bse_free_verb_get_type())
 #define BSE_FREE_VERB(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_FREE_VERB, 
BseFreeVerb))
 #define BSE_FREE_VERB_CLASS(class)      (G_TYPE_CHECK_CLASS_CAST ((class), BSE_TYPE_FREE_VERB, 
BseFreeVerbClass))
 #define BSE_IS_FREE_VERB(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), BSE_TYPE_FREE_VERB))
 #define BSE_IS_FREE_VERB_CLASS(class)   (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_FREE_VERB))
 #define BSE_FREE_VERB_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_FREE_VERB, 
BseFreeVerbClass))
-/* --- BseFreeVerb --- */
-typedef struct
-{
-  BseSource         parent_object;
+
+struct BseFreeVerb : BseSource {
   BseFreeVerbConfig config;
-} BseFreeVerb;
-typedef struct
-{
-  BseSourceClass       parent_class;
+};
+struct BseFreeVerbClass : BseSourceClass {
   BseFreeVerbConstants constants;
-} BseFreeVerbClass;
-/* --- channels --- */
+};
+
 enum /*< skip >*/
 {
   BSE_FREE_VERB_ICHANNEL_LEFT,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]