[beast: 2/15] BSE: remove 'extern "C"' from all API



commit 57b43cbcb0b35a94738e3349624215c9d9f97b63
Author: Tim Janik <timj gnu org>
Date:   Wed Oct 26 22:29:58 2016 +0200

    BSE: remove 'extern "C"' from all API
    
    Signed-off-by: Tim Janik <timj gnu org>

 bse/bsebiquadfilter.hh        |    8 --------
 bse/bseblockutils.cc          |   18 +++++++++---------
 bse/bseblockutils.hh          |    7 -------
 bse/bsebus.hh                 |    4 ----
 bse/bsecategories.hh          |    4 ----
 bse/bsecompat.hh              |    4 ----
 bse/bseconstant.hh            |    7 -------
 bse/bseconstvalues.hh         |    4 ----
 bse/bsecontainer.hh           |    4 ----
 bse/bsecontextmerger.hh       |    4 ----
 bse/bsecsynth.hh              |    4 ----
 bse/bsecxxplugin.hh           |    4 +---
 bse/bsecxxutils.cc            |    3 +--
 bse/bsedatahandle-fir.cc      |    6 +++---
 bse/bsedatahandle-resample.cc |    4 ++--
 bse/bsedefs.hh                |    4 ----
 bse/bsedevice.hh              |    4 ----
 bse/bseeditablesample.hh      |    8 --------
 bse/bseengine.hh              |    3 ---
 bse/bseenginemaster.hh        |    3 ---
 bse/bseenginenode.hh          |    4 ----
 bse/bseengineschedule.hh      |    4 ----
 bse/bseengineutils.hh         |    4 ----
 bse/bseenums.hh               |    4 ----
 bse/bseexports.hh             |    4 ----
 bse/bsefilter.cc              |    4 ----
 bse/bsefilter.hh              |    4 ----
 bse/bsegconfig.hh             |    4 ----
 bse/bseglobals.hh             |    4 ----
 bse/bseglue.hh                |    4 ----
 bse/bseieee754.hh             |    4 ----
 bse/bseinstrument.hh          |    8 --------
 bse/bseinstrumentinput.hh     |    3 ---
 bse/bseinstrumentoutput.hh    |    4 ----
 bse/bseitem.hh                |    4 ----
 bse/bsejanitor.hh             |    4 ----
 bse/bseladspa.cc              |   10 +++++-----
 bse/bseladspa.hh              |    4 ----
 bse/bseladspamodule.hh        |    4 ----
 bse/bseloader-flac.cc         |    2 +-
 bse/bseloader-guspatch.cc     |    2 +-
 bse/bseloader.hh              |    4 ----
 bse/bsemain.hh                |    4 ----
 bse/bsemath.hh                |    4 ----
 bse/bsemathsignal.hh          |    4 ----
 bse/bsemidicontroller.hh      |    4 ----
 bse/bsemididecoder.hh         |    4 ----
 bse/bsemididevice-null.hh     |    3 ---
 bse/bsemididevice-oss.hh      |    3 ---
 bse/bsemididevice.hh          |    3 ---
 bse/bsemidievent.hh           |    4 ----
 bse/bsemidifile.hh            |    4 ----
 bse/bsemidiinput.hh           |    4 ----
 bse/bsemidinotifier.hh        |    4 ----
 bse/bsemidireceiver.cc        |    5 +----
 bse/bsemidireceiver.hh        |    4 ----
 bse/bsemidisynth.hh           |    4 ----
 bse/bsemidivoice.hh           |    4 ----
 bse/bsenote.hh                |    4 ----
 bse/bseobject.hh              |    8 --------
 bse/bseparam.hh               |    8 --------
 bse/bsepart.hh                |    4 ----
 bse/bsepattern.hh             |    8 --------
 bse/bsepcmdevice-null.hh      |    3 ---
 bse/bsepcmdevice-oss.hh       |    3 ---
 bse/bsepcmdevice.hh           |    4 ----
 bse/bsepcminput.hh            |    4 ----
 bse/bsepcmoutput.hh           |    8 --------
 bse/bsepcmwriter.hh           |    7 -------
 bse/bseplugin.hh              |    7 +++----
 bse/bseprobe.cc               |    3 ---
 bse/bseprocedure.hh           |    4 ----
 bse/bseproject.hh             |    4 ----
 bse/bseresampler.hh           |    3 ---
 bse/bsescripthelper.hh        |    8 --------
 bse/bseserver.hh              |    4 ----
 bse/bsesnet.hh                |    4 ----
 bse/bsesnooper.hh             |    3 ---
 bse/bsesong.hh                |    4 ----
 bse/bsesource.hh              |    4 ----
 bse/bsestandardosc.hh         |    4 ----
 bse/bsestandardsynths.hh      |    4 ----
 bse/bsestorage.hh             |    4 ----
 bse/bsesubiport.hh            |    4 ----
 bse/bsesuboport.hh            |    4 ----
 bse/bsesubsynth.hh            |    4 ----
 bse/bsesuper.hh               |    4 ----
 bse/bsetrack.hh               |    4 ----
 bse/bsetype.hh                |    4 ----
 bse/bseundostack.hh           |    4 ----
 bse/bseutils.hh               |    4 ----
 bse/bsewave.hh                |    4 ----
 bse/bsewaveosc.hh             |    4 ----
 bse/bsewaverepo.hh            |    4 ----
 bse/gslcommon.hh              |    3 ---
 bse/gsldatacache.hh           |    4 ----
 bse/gsldatahandle-mad.hh      |    4 ----
 bse/gsldatahandle-vorbis.hh   |    4 ----
 bse/gsldatahandle.hh          |    4 ----
 bse/gsldatautils.hh           |    4 ----
 bse/gsldefs.hh                |    4 ----
 bse/gslfft.hh                 |    8 --------
 bse/gslfilehash.hh            |    8 --------
 bse/gslfilter.hh              |    8 --------
 bse/gslmagic.hh               |    8 --------
 bse/gsloscillator.hh          |    8 --------
 bse/gslosctable.hh            |    4 ----
 bse/gslvorbis-cutter.hh       |    4 ----
 bse/gslvorbis-enc.hh          |    4 ----
 bse/gslwavechunk.hh           |    4 ----
 bse/gslwaveosc.hh             |    8 --------
 111 files changed, 27 insertions(+), 491 deletions(-)
---
diff --git a/bse/bsebiquadfilter.hh b/bse/bsebiquadfilter.hh
index e28c07a..3468ef8 100644
--- a/bse/bsebiquadfilter.hh
+++ b/bse/bsebiquadfilter.hh
@@ -5,10 +5,6 @@
 #include <bse/bsesource.hh>
 #include <bse/gslfilter.hh>
 
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
 
 /* --- type macros --- */
 #define BSE_TYPE_BIQUAD_FILTER              (BSE_TYPE_ID (BseBiquadFilter))
@@ -64,8 +60,4 @@ enum
 };
 
 
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
 #endif /* __BSE_BIQUAD_FILTER_H__ */
diff --git a/bse/bseblockutils.cc b/bse/bseblockutils.cc
index c449846..f8b1d69 100644
--- a/bse/bseblockutils.cc
+++ b/bse/bseblockutils.cc
@@ -189,13 +189,13 @@ Block::Impl::substitute (Impl *substitute_impl)
 
 } // Bse
 
-extern "C" const char*
+const char*
 bse_block_impl_name (void)
 {
   return Bse::Block::impl_name();
 }
 
-extern "C" void
+void
 bse_block_add_floats (guint          n_values,
                       float         *ovalues,
                       const float   *ivalues)
@@ -203,7 +203,7 @@ bse_block_add_floats (guint          n_values,
   Bse::Block::add (n_values, ovalues, ivalues);
 }
 
-extern "C" void
+void
 bse_block_sub_floats (guint          n_values,
                       float         *ovalues,
                       const float   *ivalues)
@@ -211,7 +211,7 @@ bse_block_sub_floats (guint          n_values,
   Bse::Block::sub (n_values, ovalues, ivalues);
 }
 
-extern "C" void
+void
 bse_block_mul_floats (guint          n_values,
                       float         *ovalues,
                       const float   *ivalues)
@@ -228,7 +228,7 @@ bse_block_scale_floats (guint           n_values,
   Bse::Block::scale (n_values, ovalues, ivalues, level);
 }
 
-extern "C" void
+void
 bse_block_interleave2_floats (guint       n_ivalues,
                              float       *ovalues,       /* length_ovalues = n_ivalues * 2 */
                              const float *ivalues,
@@ -237,7 +237,7 @@ bse_block_interleave2_floats (guint    n_ivalues,
   Bse::Block::interleave2 (n_ivalues, ovalues, ivalues, offset);
 }
 
-extern "C" void
+void
 bse_block_interleave2_add_floats (guint               n_ivalues,
                                  float       *ovalues,   /* length_ovalues = n_ivalues * 2 */
                                  const float *ivalues,
@@ -246,7 +246,7 @@ bse_block_interleave2_add_floats (guint            n_ivalues,
   Bse::Block::interleave2_add (n_ivalues, ovalues, ivalues, offset);
 }
 
-extern "C" void
+void
 bse_block_calc_float_range (guint          n_values,
                             const float   *ivalues,
                            float         *min_value,
@@ -255,14 +255,14 @@ bse_block_calc_float_range (guint          n_values,
   Bse::Block::range (n_values, ivalues, *min_value, *max_value);
 }
 
-extern "C" float
+float
 bse_block_calc_float_square_sum (guint          n_values,
                                  const float   *ivalues)
 {
   return Bse::Block::square_sum (n_values, ivalues);
 }
 
-extern "C" float
+float
 bse_block_calc_float_range_and_square_sum (guint          n_values,
                                            const float   *ivalues,
                                           float         *min_value,
diff --git a/bse/bseblockutils.hh b/bse/bseblockutils.hh
index 137f5c4..380f244 100644
--- a/bse/bseblockutils.hh
+++ b/bse/bseblockutils.hh
@@ -9,7 +9,6 @@ template<class TYPE> inline
 void    bse_block_fill_0                          (size_t        n_values,        /* 4-byte variant of 
memset */
                                                    TYPE         *values);
 /* --- C API --- */
-G_BEGIN_DECLS
 const
 char*   bse_block_impl_name                       (void);
 static inline
@@ -60,8 +59,6 @@ float   bse_block_calc_float_range_and_square_sum (guint          n_values,
                                                   float         *min_value,
                                                   float         *max_value);
 
-G_END_DECLS
-
 #ifdef  __cplusplus
 #include <bse/bseresampler.hh>
 namespace Bse {
@@ -215,8 +212,6 @@ Block::copy (guint         n_values,
 #endif  /* __cplusplus */
 
 /* --- C implementation bits --- */
-G_BEGIN_DECLS
-
 static inline void
 bse_block_fill_uint32 (guint    n_values,
                       guint32 *values,
@@ -255,8 +250,6 @@ bse_block_copy_float (guint     n_values,
   RAPICORN_STATIC_ASSERT (sizeof (wchar_t) == 4);
   wmemcpy ((wchar_t*) values, (const wchar_t*) ivalues, n_values);
 }
-G_END_DECLS
-
 // == C++ Implementations ==
 template<class TYPE> inline void
 bse_block_fill_0 (size_t n_values, TYPE *values)
diff --git a/bse/bsebus.hh b/bse/bsebus.hh
index 245c13b..c0428f6 100644
--- a/bse/bsebus.hh
+++ b/bse/bsebus.hh
@@ -4,8 +4,6 @@
 
 #include <bse/bsesubsynth.hh>
 
-G_BEGIN_DECLS
-
 /* --- object type macros --- */
 #define BSE_TYPE_BUS               (BSE_TYPE_ID (BseBus))
 #define BSE_BUS(object)            (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_BUS, BseBus))
@@ -76,8 +74,6 @@ enum
   BSE_BUS_N_OCHANNELS
 };
 
-G_END_DECLS
-
 namespace Bse {
 
 class BusImpl : public SubSynthImpl, public virtual BusIface {
diff --git a/bse/bsecategories.hh b/bse/bsecategories.hh
index 432d35e..dbe8fcf 100644
--- a/bse/bsecategories.hh
+++ b/bse/bsecategories.hh
@@ -5,8 +5,6 @@
 #include <bse/bsetype.hh>
 #include <bse/bseutils.hh>
 
-G_BEGIN_DECLS
-
 
 /* --- typedefs --- */
 typedef gboolean (BseCategoryCheck) (const Bse::Category *category, void *data);
@@ -18,6 +16,4 @@ Bse::CategorySeq bse_categories_match_typed           (const String &pattern, GT
 Bse::CategorySeq bse_categories_from_type             (GType type);
 void             bse_categories_register_stock_module (const char *untranslated_category_trunk, GType type, 
const guint8 *pixstream);
 
-G_END_DECLS
-
 #endif /* __BSE_CATEGORIES_H__ */
diff --git a/bse/bsecompat.hh b/bse/bsecompat.hh
index 4675e88..044c551 100644
--- a/bse/bsecompat.hh
+++ b/bse/bsecompat.hh
@@ -4,8 +4,6 @@
 
 #include        <bse/bseenums.hh>
 
-G_BEGIN_DECLS
-
 
 /* --- parameter changes --- */
 #define bse_param_spec_genum(name,nick,blurb, genum_type, default_value, hints) \
@@ -34,6 +32,4 @@ gchar*  bse_compat_rewrite_ochannel_ident       (BseStorage    *storage,
                                                  const gchar   *ochannel_ident);
 
 
-G_END_DECLS
-
 #endif /* __BSE_COMPAT_H__ */
diff --git a/bse/bseconstant.hh b/bse/bseconstant.hh
index 12ce57f..5b38a8d 100644
--- a/bse/bseconstant.hh
+++ b/bse/bseconstant.hh
@@ -4,10 +4,6 @@
 
 #include <bse/bsesource.hh>
 
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
 
 
 
@@ -28,7 +24,4 @@ struct BseConstant : BseSource {
 struct BseConstantClass : BseSourceClass
 {};
 
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
 #endif /* __BSE_CONSTANT_H__ */
diff --git a/bse/bseconstvalues.hh b/bse/bseconstvalues.hh
index aa9a1d5..6682322 100644
--- a/bse/bseconstvalues.hh
+++ b/bse/bseconstvalues.hh
@@ -4,8 +4,6 @@
 
 #include <bse/bsedefs.hh>
 
-G_BEGIN_DECLS
-
 /* --- frequencies --- */
 /* kammer frequency, frequency of the note A of the standard piano
  * octave.slightly different values are used in different countries,
@@ -82,6 +80,4 @@ G_BEGIN_DECLS
 #define        BSE_RATING_FALLBACK             (1)
 #define        BSE_RATING_NO_AUTO              (-1)
 
-G_END_DECLS
-
 #endif /* __BSE_CONST_VALUES_H__ */
diff --git a/bse/bsecontainer.hh b/bse/bsecontainer.hh
index 0da2a65..384b6b6 100644
--- a/bse/bsecontainer.hh
+++ b/bse/bsecontainer.hh
@@ -5,8 +5,6 @@
 #include <bse/bsesource.hh>
 #include <sfi/gbsearcharray.hh>
 
-G_BEGIN_DECLS
-
 /* --- object type macros --- */
 #define        BSE_TYPE_CONTAINER              (BSE_TYPE_ID (BseContainer))
 #define BSE_CONTAINER(object)          (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_CONTAINER, 
BseContainer))
@@ -100,8 +98,6 @@ void          _bse_container_uncross         (BseContainer    *container,
 void          bse_container_debug_tree          (BseContainer    *container);
 
 
-G_END_DECLS
-
 namespace Bse {
 
 class ContainerImpl : public SourceImpl, public virtual ContainerIface {
diff --git a/bse/bsecontextmerger.hh b/bse/bsecontextmerger.hh
index 1af7a94..ede9495 100644
--- a/bse/bsecontextmerger.hh
+++ b/bse/bsecontextmerger.hh
@@ -4,8 +4,6 @@
 
 #include <bse/bsesource.hh>
 
-G_BEGIN_DECLS
-
 /* --- object type macros --- */
 #define BSE_TYPE_CONTEXT_MERGER              (BSE_TYPE_ID (BseContextMerger))
 #define BSE_CONTEXT_MERGER(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_CONTEXT_MERGER, 
BseContextMerger))
@@ -23,8 +21,6 @@ struct BseContextMergerClass : BseSourceClass
 
 void   bse_context_merger_set_merge_context    (BseContextMerger       *self,
                                                 guint                   merge_context);
-G_END_DECLS
-
 namespace Bse {
 
 class ContextMergerImpl : public SourceImpl, public virtual ContextMergerIface {
diff --git a/bse/bsecsynth.hh b/bse/bsecsynth.hh
index 223943a..6c05313 100644
--- a/bse/bsecsynth.hh
+++ b/bse/bsecsynth.hh
@@ -4,8 +4,6 @@
 
 #include        <bse/bsesnet.hh>
 
-G_BEGIN_DECLS
-
 #define BSE_TYPE_CSYNTH              (BSE_TYPE_ID (BseCSynth))
 #define BSE_CSYNTH(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_CSYNTH, BseCSynth))
 #define BSE_CSYNTH_CLASS(class)      (G_TYPE_CHECK_CLASS_CAST ((class), BSE_TYPE_CSYNTH, BseCSynthClass))
@@ -17,8 +15,6 @@ G_BEGIN_DECLS
 struct BseCSynth : BseSNet {};
 struct BseCSynthClass : BseSNetClass {};
 
-G_END_DECLS
-
 namespace Bse {
 
 class CSynthImpl : public SNetImpl, public virtual CSynthIface {
diff --git a/bse/bsecxxplugin.hh b/bse/bsecxxplugin.hh
index d59c3cd..9620835 100644
--- a/bse/bsecxxplugin.hh
+++ b/bse/bsecxxplugin.hh
@@ -28,9 +28,7 @@ const SfiInt  MAX_FINE_TUNE = BSE_MAX_FINE_TUNE;
 #else   /* BSE internal "Plugins" */
 #define BSE_CXX_DEFINE_EXPORTS()
 #define BSE_CXX_EXPORT_IDENTITY    &bse_builtin_export_identity
-extern "C" {
-extern ::BseExportIdentity bse_builtin_export_identity; /* sync with bseplugin.hh */
-};
+extern "C" { extern ::BseExportIdentity bse_builtin_export_identity; /* sync with bseplugin.hh */ };
 #endif
 
 // == Resident Type Plugin Registration ==
diff --git a/bse/bsecxxutils.cc b/bse/bsecxxutils.cc
index 15c646d..afd67e8 100644
--- a/bse/bsecxxutils.cc
+++ b/bse/bsecxxutils.cc
@@ -97,8 +97,7 @@ TypeRegistry::init_types()
 
 } // Bse
 
-
-extern "C" void
+void
 bse_cxx_init (void)  // prototyped in bseutils.hh
 {
   // FIXME: delete: init_exception_handler ();
diff --git a/bse/bsedatahandle-fir.cc b/bse/bsedatahandle-fir.cc
index 2ed0fc1..3c8dbf7 100644
--- a/bse/bsedatahandle-fir.cc
+++ b/bse/bsedatahandle-fir.cc
@@ -367,7 +367,7 @@ using namespace Bse;
  * @param cutoff_freq cutoff frequency in Hz in intervall [0..SR/2]
  * @param order       number of filter coefficients
  */
-extern "C" GslDataHandle*
+GslDataHandle*
 bse_data_handle_new_fir_highpass (GslDataHandle *src_handle,
                                  gdouble        cutoff_freq,
                                  guint          order)
@@ -389,7 +389,7 @@ bse_data_handle_new_fir_highpass (GslDataHandle *src_handle,
  * @param cutoff_freq cutoff frequency in Hz in intervall [0..SR/2]
  * @param order       number of filter coefficients
  */
-extern "C" GslDataHandle*
+GslDataHandle*
 bse_data_handle_new_fir_lowpass (GslDataHandle *src_handle,
                                 gdouble        cutoff_freq,
                                 guint          order)
@@ -398,7 +398,7 @@ bse_data_handle_new_fir_lowpass (GslDataHandle *src_handle,
   return DataHandleFir::dh_create (cxx_dh);
 }
 
-extern "C" gdouble
+gdouble
 bse_data_handle_fir_response_db (GslDataHandle *fir_handle,
                                  gdouble        freq)
 {
diff --git a/bse/bsedatahandle-resample.cc b/bse/bsedatahandle-resample.cc
index 1ce0999..7993568 100644
--- a/bse/bsedatahandle-resample.cc
+++ b/bse/bsedatahandle-resample.cc
@@ -461,7 +461,7 @@ public:
 
 using namespace Bse;
 
-extern "C" GslDataHandle*
+GslDataHandle*
 bse_data_handle_new_upsample2 (GslDataHandle *src_handle,
                                int            precision_bits)
 {
@@ -469,7 +469,7 @@ bse_data_handle_new_upsample2 (GslDataHandle *src_handle,
   return DataHandleResample2::dh_create (cxx_dh);
 }
 
-extern "C" GslDataHandle*
+GslDataHandle*
 bse_data_handle_new_downsample2 (GslDataHandle *src_handle,
                                  int            precision_bits)
 {
diff --git a/bse/bsedefs.hh b/bse/bsedefs.hh
index db7e2fd..7dc5bed 100644
--- a/bse/bsedefs.hh
+++ b/bse/bsedefs.hh
@@ -10,8 +10,6 @@
 #include <sfi/sficomwire.hh>   // FIXME
 #include <bse/bseconfig.h>
 
-G_BEGIN_DECLS
-
 
 /* --- some globally used macros --- */
 #define BSE_VERSION_CMP(v1_major, v1_minor, v1_micro, v2_major, v2_minor, v2_micro) ( \
@@ -134,8 +132,6 @@ const gchar* bse_gettext (const gchar *text);
 #define _(str) bse_gettext (str)
 #define N_(str) (str)
 
-G_END_DECLS
-
 namespace Bse {
 
 class ObjectImpl;
diff --git a/bse/bsedevice.hh b/bse/bsedevice.hh
index a2aca0c..8c1bba1 100644
--- a/bse/bsedevice.hh
+++ b/bse/bsedevice.hh
@@ -4,8 +4,6 @@
 
 #include        <bse/bseobject.hh>
 
-G_BEGIN_DECLS
-
 /* --- object type macros --- */
 #define BSE_TYPE_DEVICE              (BSE_TYPE_ID (BseDevice))
 #define BSE_DEVICE(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_DEVICE, BseDevice))
@@ -112,6 +110,4 @@ BseDevice*      bse_device_open_auto       (GType           base_type,
                                             Bse::Error   *errorp);
 
 
-G_END_DECLS
-
 #endif /* __BSE_DEVICE_H__ */
diff --git a/bse/bseeditablesample.hh b/bse/bseeditablesample.hh
index de29283..3d86167 100644
--- a/bse/bseeditablesample.hh
+++ b/bse/bseeditablesample.hh
@@ -5,10 +5,6 @@
 #include <bse/bsesuper.hh>
 #include <bse/gslwavechunk.hh>
 
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
 
 /* --- object type macros --- */
 #define BSE_TYPE_EDITABLE_SAMPLE              (BSE_TYPE_ID (BseEditableSample))
@@ -30,10 +26,6 @@ struct BseEditableSampleClass : BseItemClass {
 };
 void   bse_editable_sample_set_wchunk  (BseEditableSample      *self,
                                         GslWaveChunk           *wchunk);
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
 namespace Bse {
 
 class EditableSampleImpl : public ItemImpl, public virtual EditableSampleIface {
diff --git a/bse/bseengine.hh b/bse/bseengine.hh
index 2dcb8db..25def8e 100644
--- a/bse/bseengine.hh
+++ b/bse/bseengine.hh
@@ -4,8 +4,6 @@
 
 #include <bse/bsedefs.hh>
 
-G_BEGIN_DECLS
-
 /* --- constants --- */
 #define BSE_STREAM_MAX_VALUES                   (1024 /* power of 2 and <= 16384 */)
 #define BSE_MODULE_N_OSTREAMS(module)           ((module)->klass->n_ostreams)
@@ -221,5 +219,4 @@ extern guint    bse_engine_exvar_block_size;
 extern guint    bse_engine_exvar_sample_freq;
 extern guint    bse_engine_exvar_control_mask;
 
-G_END_DECLS
 #endif /* __BSE_ENGINE_H__ */
diff --git a/bse/bseenginemaster.hh b/bse/bseenginemaster.hh
index d6ce2ae..21b57af 100644
--- a/bse/bseenginemaster.hh
+++ b/bse/bseenginemaster.hh
@@ -2,8 +2,6 @@
 #ifndef __BSE_ENGINE_MASTER_H__
 #define __BSE_ENGINE_MASTER_H__
 #include <bse/bseengine.hh>
-G_BEGIN_DECLS
-
 /* --- internal (EngineThread) --- */
 gboolean       _engine_master_prepare          (BseEngineLoop          *loop);
 gboolean       _engine_master_check            (const BseEngineLoop    *loop);
@@ -26,5 +24,4 @@ public:
 
 } // Bse
 
-G_END_DECLS
 #endif /* __BSE_ENGINE_MASTER_H__ */
diff --git a/bse/bseenginenode.hh b/bse/bseenginenode.hh
index 95ef689..de3b791 100644
--- a/bse/bseenginenode.hh
+++ b/bse/bseenginenode.hh
@@ -5,8 +5,6 @@
 #include "bseengine.hh"
 #include "gslcommon.hh"
 
-G_BEGIN_DECLS
-
 #define        ENGINE_NODE(module)             ((EngineNode*) (module))
 #define ENGINE_NODE_N_OSTREAMS(node)   ((node)->module.klass->n_ostreams)
 #define ENGINE_NODE_N_ISTREAMS(node)   ((node)->module.klass->n_istreams)
@@ -198,6 +196,4 @@ struct _EngineNode          /* fields sorted by order of processing access */
   SfiRing      *output_nodes;          /* EngineNode* ring of nodes in ->outputs[] */
 };
 
-G_END_DECLS
-
 #endif /* __BSE_ENGINE_NODE_H__ */
diff --git a/bse/bseengineschedule.hh b/bse/bseengineschedule.hh
index 29cda98..9b84b9b 100644
--- a/bse/bseengineschedule.hh
+++ b/bse/bseengineschedule.hh
@@ -4,8 +4,6 @@
 
 #include <bse/bseenginenode.hh>
 
-G_BEGIN_DECLS
-
 typedef struct
 {
   EngineNode *last;    /* resolve node */
@@ -46,6 +44,4 @@ SfiRing*      _engine_schedule_pop_cycle      (EngineSchedule *schedule);
 void           _engine_schedule_restart        (EngineSchedule *schedule);
 void           _engine_schedule_unsecure       (EngineSchedule *schedule);
 
-G_END_DECLS
-
 #endif /* __BSE_ENGINE_SCHEDULE_H__ */
diff --git a/bse/bseengineutils.hh b/bse/bseengineutils.hh
index 67d3d8e..45ca043 100644
--- a/bse/bseengineutils.hh
+++ b/bse/bseengineutils.hh
@@ -4,8 +4,6 @@
 
 #include <bse/bseenginenode.hh>
 
-G_BEGIN_DECLS
-
 /* --- UserThread --- */
 void           _engine_free_trans              (BseTrans      *trans);
 BseOStream*    _engine_alloc_ostreams          (guint          n);
@@ -52,6 +50,4 @@ SfiRing*    _engine_pop_unprocessed_cycle     (void);
 void       _engine_push_processed_cycle        (SfiRing        *cycle);
 void       _engine_wait_on_unprocessed         (void);
 
-G_END_DECLS
-
 #endif /* __BSE_ENGINE_UTIL_H__ */
diff --git a/bse/bseenums.hh b/bse/bseenums.hh
index 169e8ae..119af78 100644
--- a/bse/bseenums.hh
+++ b/bse/bseenums.hh
@@ -7,8 +7,6 @@
 #include <bse/bseserverapi.hh>
 
 
-G_BEGIN_DECLS
-
 
 /* --- enum definitions --- */
 typedef enum
@@ -315,7 +313,5 @@ Bse::Error  bse_error_from_errno            (gint v_errno, Bse::Error fallback);
        }                                                                \
 }G_STMT_END
 
-G_END_DECLS
-
 
 #endif /* __BSE_ENUMS_H__ */
diff --git a/bse/bseexports.hh b/bse/bseexports.hh
index 3037de9..c334b40 100644
--- a/bse/bseexports.hh
+++ b/bse/bseexports.hh
@@ -4,8 +4,6 @@
 
 #include       <bse/bseprocedure.hh>
 
-G_BEGIN_DECLS
-
 /* --- export node types --- */
 typedef enum {
   BSE_EXPORT_NODE_NONE,
@@ -164,6 +162,4 @@ void        bse_procedure_complete_info     (const BseExportNodeProc *pnode,
 #define BSE_EXPORT_CONFIG__SSE3  0
 #endif
 
-G_END_DECLS
-
 #endif /* __BSE_EXPORTS_H__ */
diff --git a/bse/bsefilter.cc b/bse/bsefilter.cc
index 0ff11e6..b08b9f8 100644
--- a/bse/bsefilter.cc
+++ b/bse/bsefilter.cc
@@ -3,8 +3,6 @@
 #include <sfi/sfi.hh>
 using namespace Rapicorn;
 
-extern "C" {
-
 const gchar*
 bse_iir_filter_kind_string (BseIIRFilterKind fkind)
 {
@@ -103,5 +101,3 @@ bse_iir_filter_design (const BseIIRFilterRequest  *filter_request,
     return _bse_filter_design_ellf (filter_request, filter_design);
   return false;
 }
-
-} // C
diff --git a/bse/bsefilter.hh b/bse/bsefilter.hh
index 333d5b5..3a07e9e 100644
--- a/bse/bsefilter.hh
+++ b/bse/bsefilter.hh
@@ -4,8 +4,6 @@
 #include <bse/bsemath.hh>
 #include <bse/bseenums.hh>
 
-extern "C" {
-
 typedef struct {
   BseIIRFilterKind      kind;
   BseIIRFilterType      type;
@@ -69,6 +67,4 @@ gchar*        bse_iir_filter_string           (const BseIIRFilter         *filter);
 bool   _bse_filter_design_ellf         (const BseIIRFilterRequest      *ifr,
                                         BseIIRFilterDesign             *fid);
 
-} // "C"
-
 #endif /* BSE_FILTER_H__ */    /* vim:set ts=8 sw=2 sts=2: */
diff --git a/bse/bsegconfig.hh b/bse/bsegconfig.hh
index 4fa1750..7b5814e 100644
--- a/bse/bsegconfig.hh
+++ b/bse/bsegconfig.hh
@@ -5,8 +5,6 @@
 #include       <bse/bseobject.hh>
 #include       <bse/bsemain.hh>
 
-G_BEGIN_DECLS
-
 /* --- Global Config --- */
 /* extern BseGConfig *bse_global_config; bsetype.hh */
 void               _bse_gconfig_init     (void);
@@ -17,6 +15,4 @@ void             bse_gconfig_unlock     (void);
 gboolean          bse_gconfig_locked     (void);
 void               bse_gconfig_merge_args (const BseMainArgs *margs);
 
-G_END_DECLS
-
 #endif /* __BSE_GCONFIG_H__ */
diff --git a/bse/bseglobals.hh b/bse/bseglobals.hh
index da7534b..00d51a9 100644
--- a/bse/bseglobals.hh
+++ b/bse/bseglobals.hh
@@ -7,8 +7,6 @@
 #include <bse/bsenote.hh>
 #include <bse/bseconstvalues.hh>
 
-G_BEGIN_DECLS
-
 /* --- time ranges --- */ // FIXME: BSE_TIME_RANGE is deprecated
 typedef enum
 {
@@ -75,6 +73,4 @@ gdouble       bse_db_from_factor      (gdouble        factor,
                                  gdouble       min_dB);
 #define        BSE_MINDB               (-96)   /* 32bit:-192 24bit:-144 16bit:-96 */
 
-G_END_DECLS
-
 #endif /* __BSE_GLOBALS_H__ */
diff --git a/bse/bseglue.hh b/bse/bseglue.hh
index 20bd46c..8c6420a 100644
--- a/bse/bseglue.hh
+++ b/bse/bseglue.hh
@@ -4,8 +4,6 @@
 
 #include <bse/bsetype.hh>
 
-G_BEGIN_DECLS
-
 /* FIXME: creation of a new context source should be done
  * by a janitor constructor
  */
@@ -28,8 +26,6 @@ GValue*       bse_value_to_sfi        (const GValue   *value);
 GValue*        bse_value_from_sfi      (const GValue   *value,
                                 GParamSpec     *pspec);
 
-G_END_DECLS
-
 #endif /* __BSE_GLUE_H__ */
 
 /* vim:set ts=8 sts=2 sw=2: */
diff --git a/bse/bseieee754.hh b/bse/bseieee754.hh
index 4dce5b7..00bb9d1 100644
--- a/bse/bseieee754.hh
+++ b/bse/bseieee754.hh
@@ -9,8 +9,6 @@
 #undef PI
 #define PI                            (3.141592653589793238462643383279502884197)    // pi
 
-G_BEGIN_DECLS
-
 /* IEEE 754 single precision floating point layout:
  *        31 30           23 22            0
  * +--------+---------------+---------------+
@@ -312,6 +310,4 @@ bse_dtoll (const double v)
   return v < -0.0 ? (gint64) (v - 0.5) : (gint64) (v + 0.5);
 }
 
-G_END_DECLS
-
 #endif /* __BSE_IEEE754_H__ */         /* vim: set ts=8 sw=2 sts=2: */
diff --git a/bse/bseinstrument.hh b/bse/bseinstrument.hh
index e62b363..051f52f 100644
--- a/bse/bseinstrument.hh
+++ b/bse/bseinstrument.hh
@@ -5,10 +5,6 @@
 #include       <bse/bseitem.hh>
 
 
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
 
 /* --- BSE type macros --- */
 #define BSE_TYPE_INSTRUMENT             (BSE_TYPE_ID (BseInstrument))
@@ -66,8 +62,4 @@ struct _BseInstrumentClass
 
 
 
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
 #endif /* __BSE_INSTRUMENT_H__ */
diff --git a/bse/bseinstrumentinput.hh b/bse/bseinstrumentinput.hh
index 61ef908..c6ff2ea 100644
--- a/bse/bseinstrumentinput.hh
+++ b/bse/bseinstrumentinput.hh
@@ -4,8 +4,6 @@
 
 #include <bse/bsesubiport.hh>
 
-G_BEGIN_DECLS
-
 /* --- object type macros --- */
 #define BSE_TYPE_INSTRUMENT_INPUT              (BSE_TYPE_ID (BseInstrumentInput))
 #define BSE_INSTRUMENT_INPUT(object)          (G_TYPE_CHECK_INSTANCE_CAST ((object), 
BSE_TYPE_INSTRUMENT_INPUT, BseInstrumentInput))
@@ -30,5 +28,4 @@ enum
   BSE_INSTRUMENT_INPUT_OCHANNEL_AFTERTOUCH
 };
 
-G_END_DECLS
 #endif /* __BSE_INSTRUMENT_INPUT_H__ */
diff --git a/bse/bseinstrumentoutput.hh b/bse/bseinstrumentoutput.hh
index 2a79547..87d724b 100644
--- a/bse/bseinstrumentoutput.hh
+++ b/bse/bseinstrumentoutput.hh
@@ -4,8 +4,6 @@
 
 #include <bse/bsesuboport.hh>
 
-G_BEGIN_DECLS
-
 /* --- object type macros --- */
 #define BSE_TYPE_INSTRUMENT_OUTPUT             (BSE_TYPE_ID (BseInstrumentOutput))
 #define BSE_INSTRUMENT_OUTPUT(object)          (G_TYPE_CHECK_INSTANCE_CAST ((object), 
BSE_TYPE_INSTRUMENT_OUTPUT, BseInstrumentOutput))
@@ -27,6 +25,4 @@ enum
   BSE_INSTRUMENT_OUTPUT_ICHANNEL_DONE
 };
 
-G_END_DECLS
-
 #endif /* __BSE_INSTRUMENT_OUTPUT_H__ */
diff --git a/bse/bseitem.hh b/bse/bseitem.hh
index c2db71c..8ca2145 100644
--- a/bse/bseitem.hh
+++ b/bse/bseitem.hh
@@ -5,8 +5,6 @@
 #include <bse/bseobject.hh>
 #include <bse/bseundostack.hh>
 
-G_BEGIN_DECLS
-
 
 /* --- object type macros --- */
 #define BSE_TYPE_ITEM               (BSE_TYPE_ID (BseItem))
@@ -145,8 +143,6 @@ void          bse_item_push_undo_storage     (BseItem         *self,
 #define bse_item_get             g_object_get
 Bse::MusicalTuning bse_item_current_musical_tuning (BseItem *self);
 
-G_END_DECLS
-
 namespace Bse {
 
 class ItemImpl : public ObjectImpl, public virtual ItemIface {
diff --git a/bse/bsejanitor.hh b/bse/bsejanitor.hh
index 3784d43..f3aebbd 100644
--- a/bse/bsejanitor.hh
+++ b/bse/bsejanitor.hh
@@ -4,8 +4,6 @@
 
 #include <bse/bseitem.hh>
 
-G_BEGIN_DECLS
-
 /* --- object type macros --- */
 #define BSE_TYPE_JANITOR              (BSE_TYPE_ID (BseJanitor))
 #define BSE_JANITOR(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_JANITOR, BseJanitor))
@@ -60,8 +58,6 @@ void       bse_janitor_remove_action  (BseJanitor     *self,
 void        bse_janitor_trigger_action (BseJanitor     *self,
                                         const gchar    *action);
 
-G_END_DECLS
-
 #endif /* __BSE_JANITOR_H__ */
 
 /* vim:set ts=8 sts=2 sw=2: */
diff --git a/bse/bseladspa.cc b/bse/bseladspa.cc
index e1dd601..55bae16 100644
--- a/bse/bseladspa.cc
+++ b/bse/bseladspa.cc
@@ -399,7 +399,7 @@ bse_ladspa_info_add_port (BseLadspaInfo              *bli,
   return TRUE;
 }
 
-extern "C" gchar*
+gchar*
 bse_ladspa_info_port_2str (BseLadspaPort *port)
 {
   gchar flags[64];
@@ -426,7 +426,7 @@ bse_ladspa_info_port_2str (BseLadspaPort *port)
                          flags);
 }
 
-extern "C" BseLadspaInfo*
+BseLadspaInfo*
 bse_ladspa_info_assemble (const gchar  *file_path,
                          gconstpointer ladspa_descriptor)
 {
@@ -554,7 +554,7 @@ bse_ladspa_info_assemble (const gchar  *file_path,
   return bli;
 }
 
-extern "C" void
+void
 bse_ladspa_info_free (BseLadspaInfo *bli)
 {
   guint i;
@@ -591,7 +591,7 @@ ladspa_plugin_find (const gchar *fname)
   return NULL;
 }
 
-extern "C" const gchar*
+const gchar*
 bse_ladspa_plugin_check_load (const gchar *file_name)
 {
   BseLadspaPlugin *self;
@@ -634,7 +634,7 @@ bse_ladspa_plugin_check_load (const gchar *file_name)
   return error;
 }
 
-extern "C" SfiRing*
+SfiRing*
 bse_ladspa_plugin_path_list_files (void)
 {
   SfiRing *ring1, *ring2 = NULL, *ring3 = NULL;
diff --git a/bse/bseladspa.hh b/bse/bseladspa.hh
index 7aa951e..20c17c7 100644
--- a/bse/bseladspa.hh
+++ b/bse/bseladspa.hh
@@ -5,8 +5,6 @@
 #include <bse/bseutils.hh>
 #include <gmodule.h>
 
-G_BEGIN_DECLS
-
 /* --- object type macros --- */
 #define BSE_TYPE_LADSPA_PLUGIN              (BSE_TYPE_ID (BseLadspaPlugin))
 #define BSE_LADSPA_PLUGIN(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_LADSPA_PLUGIN, 
BseLadspaPlugin))
@@ -82,6 +80,4 @@ SfiRing*      bse_ladspa_plugin_path_list_files (void);
 const gchar*    bse_ladspa_plugin_check_load      (const gchar         *file_name);
 gchar*         bse_ladspa_info_port_2str         (BseLadspaPort        *port);
 
-G_END_DECLS
-
 #endif /* __BSE_LADSPA_H__ */
diff --git a/bse/bseladspamodule.hh b/bse/bseladspamodule.hh
index 3b2c54d..2bd3a69 100644
--- a/bse/bseladspamodule.hh
+++ b/bse/bseladspamodule.hh
@@ -5,8 +5,6 @@
 #include <bse/bsesource.hh>
 #include <bse/bseladspa.hh>
 
-G_BEGIN_DECLS
-
 /* --- object type macros --- */
 #define BSE_TYPE_LADSPA_MODULE              (BSE_TYPE_ID (BseLadspaModule))
 #define BSE_LADSPA_MODULE(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_LADSPA_MODULE, 
BseLadspaModule))
@@ -29,6 +27,4 @@ void  bse_ladspa_module_derived_type_info     (GType                  type,
                                                 BseLadspaInfo         *bli,
                                                 GTypeInfo             *type_info);
 
-G_END_DECLS
-
 #endif /* __BSE_LADSPA_MODULE_H__ */
diff --git a/bse/bseloader-flac.cc b/bse/bseloader-flac.cc
index 16f61e5..77fa1be 100644
--- a/bse/bseloader-flac.cc
+++ b/bse/bseloader-flac.cc
@@ -157,7 +157,7 @@ flac_create_chunk_handle (gpointer      data,
   return dhandle;
 }
 
-extern "C" void
+void
 bse_init_loader_flac (void)
 {
   static const gchar *file_exts[] = { "flac", NULL, };
diff --git a/bse/bseloader-guspatch.cc b/bse/bseloader-guspatch.cc
index b9436fd..ed398d5 100644
--- a/bse/bseloader-guspatch.cc
+++ b/bse/bseloader-guspatch.cc
@@ -599,7 +599,7 @@ pat_create_chunk_handle (gpointer      data,
 
 } // namespace
 
-extern "C" void
+void
 bse_init_loader_gus_patch (void)
 {
   static const gchar *file_exts[] = { "pat", NULL, };
diff --git a/bse/bseloader.hh b/bse/bseloader.hh
index 32fb2ce..4bbcf52 100644
--- a/bse/bseloader.hh
+++ b/bse/bseloader.hh
@@ -5,8 +5,6 @@
 #include <bse/bseutils.hh>
 #include <bse/gslwavechunk.hh>
 
-G_BEGIN_DECLS
-
 /* --- structures --- */
 struct BseWaveFileInfo {
   guint           n_waves;
@@ -107,6 +105,4 @@ struct BseLoader {
 void         bse_loader_register               (BseLoader       *loader);
 BseLoader*    bse_loader_match                 (const gchar     *file_name);
 
-G_END_DECLS
-
 #endif /* __BSE_LOADER_H__ */
diff --git a/bse/bsemain.hh b/bse/bsemain.hh
index cd3aedd..3e4de7e 100644
--- a/bse/bsemain.hh
+++ b/bse/bsemain.hh
@@ -2,8 +2,6 @@
 #ifndef __BSE_MAIN_H__
 #define __BSE_MAIN_H__
 #include        <bse/bsetype.hh>
-G_BEGIN_DECLS
-
 // == BSE Initialization ==
 void bse_bindtextdomain ();
 void _bse_init_async   (int *argc, char **argv, const char *app_name, const Bse::StringVector &args);
@@ -57,6 +55,4 @@ void    _bse_init_c_wrappers    ();
 extern BseMainArgs     *bse_main_args;
 extern GMainContext    *bse_main_context;
 
-G_END_DECLS
-
 #endif /* __BSE_MAIN_H__ */
diff --git a/bse/bsemath.hh b/bse/bsemath.hh
index 985f560..82c963e 100644
--- a/bse/bsemath.hh
+++ b/bse/bsemath.hh
@@ -5,8 +5,6 @@
 #include <bse/bsedefs.hh>
 #include <bse/bseieee754.hh>   /* provides math.h */
 
-G_BEGIN_DECLS
-
 /* --- constants --- */
 /* PI is defined in bseieee754.hh */
 #define BSE_1_DIV_PI                  (0.3183098861837906715377675267450287240689)   // 1/pi
@@ -479,6 +477,4 @@ bse_poly_eval (uint         degree,
   return sum;
 }
 
-G_END_DECLS
-
 #endif /* __BSE_MATH_H__ */     /* vim: set ts=8 sw=2 sts=2: */
diff --git a/bse/bsemathsignal.hh b/bse/bsemathsignal.hh
index 67e2ed0..8863600 100644
--- a/bse/bsemathsignal.hh
+++ b/bse/bsemathsignal.hh
@@ -6,8 +6,6 @@
 #include <bse/bseglobals.hh>
 #include <bse/bsetype.hh> // for BseMusicalTuningType
 
-G_BEGIN_DECLS
-
 /**
  * smallest value of a signal sample, greater than zero
  */
@@ -708,6 +706,4 @@ bse_cent_tune_fast (int fine_tune)
   return bse_cent_table[CLAMP (fine_tune, -100, 100)];
 }
 
-G_END_DECLS
-
 #endif /* __BSE_SIGNAL_H__ */
diff --git a/bse/bsemidicontroller.hh b/bse/bsemidicontroller.hh
index 7a59929..daacc2e 100644
--- a/bse/bsemidicontroller.hh
+++ b/bse/bsemidicontroller.hh
@@ -5,8 +5,6 @@
 #include <bse/bsesource.hh>
 #include <bse/bsemidievent.hh>
 
-G_BEGIN_DECLS
-
 
 /* --- object type macros --- */
 #define BSE_TYPE_MIDI_CONTROLLER             (BSE_TYPE_ID (BseMidiController))
@@ -33,6 +31,4 @@ enum
 };
 
 
-G_END_DECLS
-
 #endif /* __BSE_MIDI_CONTROLLER_H__ */
diff --git a/bse/bsemididecoder.hh b/bse/bsemididecoder.hh
index dc6a928..d48b3b8 100644
--- a/bse/bsemididecoder.hh
+++ b/bse/bsemididecoder.hh
@@ -4,8 +4,6 @@
 
 #include        <bse/bsemidievent.hh>
 
-G_BEGIN_DECLS
-
 
 /* --- BSE MIDI structs --- */
 typedef enum {
@@ -54,6 +52,4 @@ void            bse_midi_decoder_push_smf_data            (BseMidiDecoder
 BseMidiEvent*   bse_midi_decoder_pop_event                (BseMidiDecoder       *self);
 SfiRing*        bse_midi_decoder_pop_event_list           (BseMidiDecoder       *self);
 
-G_END_DECLS
-
 #endif /* __BSE_MIDI_DECODER_H__ */
diff --git a/bse/bsemididevice-null.hh b/bse/bsemididevice-null.hh
index 91e3f4d..720d1ad 100644
--- a/bse/bsemididevice-null.hh
+++ b/bse/bsemididevice-null.hh
@@ -4,8 +4,6 @@
 
 #include       <bse/bsemididevice.hh>
 
-G_BEGIN_DECLS
-
 /* --- object type macros --- */
 #define BSE_TYPE_MIDI_DEVICE_NULL              (BSE_TYPE_ID (BseMidiDeviceNULL))
 #define BSE_MIDI_DEVICE_NULL(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), 
BSE_TYPE_MIDI_DEVICE_NULL, BseMidiDeviceNULL))
@@ -19,5 +17,4 @@ 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 a3f8500..ba5a988 100644
--- a/bse/bsemididevice-oss.hh
+++ b/bse/bsemididevice-oss.hh
@@ -5,8 +5,6 @@
 #include       <bse/bsemididevice.hh>
 
 
-G_BEGIN_DECLS
-
 /* --- object type macros --- */
 #define BSE_TYPE_MIDI_DEVICE_OSS               (BSE_TYPE_ID (BseMidiDeviceOSS))
 #define BSE_MIDI_DEVICE_OSS(object)            (G_TYPE_CHECK_INSTANCE_CAST ((object), 
BSE_TYPE_MIDI_DEVICE_OSS, BseMidiDeviceOSS))
@@ -21,5 +19,4 @@ struct BseMidiDeviceOSS : BseMidiDevice {
 struct BseMidiDeviceOSSClass : BseMidiDeviceClass
 {};
 
-G_END_DECLS
 #endif /* __BSE_MIDI_DEVICE_OSS_H__ */
diff --git a/bse/bsemididevice.hh b/bse/bsemididevice.hh
index 36e586b..bb88fc2 100644
--- a/bse/bsemididevice.hh
+++ b/bse/bsemididevice.hh
@@ -5,8 +5,6 @@
 #include        <bse/bsedevice.hh>
 #include        <bse/bsemidievent.hh>
 
-G_BEGIN_DECLS
-
 /* --- object type macros --- */
 #define BSE_TYPE_MIDI_DEVICE              (BSE_TYPE_ID (BseMidiDevice))
 #define BSE_MIDI_DEVICE(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_MIDI_DEVICE, 
BseMidiDevice))
@@ -31,5 +29,4 @@ struct BseMidiDeviceClass : BseDeviceClass
 {};
 
 void           bse_midi_handle_init            (BseMidiHandle          *handle);
-G_END_DECLS
 #endif /* __BSE_MIDI_DEVICE_H__ */
diff --git a/bse/bsemidievent.hh b/bse/bsemidievent.hh
index 1902e1a..7a10200 100644
--- a/bse/bsemidievent.hh
+++ b/bse/bsemidievent.hh
@@ -4,8 +4,6 @@
 
 #include <bse/bseobject.hh>
 
-G_BEGIN_DECLS
-
 /* --- MIDI constants --- */
 #define        BSE_MIDI_MAX_CHANNELS           (99)
 
@@ -139,6 +137,4 @@ BseMidiEvent* bse_midi_event_signal   (uint                midi_channel,
 double        bse_midi_signal_default (Bse::MidiSignal signal);
 const char*   bse_midi_signal_name    (Bse::MidiSignal signal);
 
-G_END_DECLS
-
 #endif /* __BSE_MIDI_EVENT_H__ */
diff --git a/bse/bsemidifile.hh b/bse/bsemidifile.hh
index e7dd091..589e9f4 100644
--- a/bse/bsemidifile.hh
+++ b/bse/bsemidifile.hh
@@ -4,8 +4,6 @@
 
 #include <bse/bsemidievent.hh>
 
-G_BEGIN_DECLS
-
 typedef struct {
   guint          n_events;
   BseMidiEvent **events;
@@ -32,6 +30,4 @@ void         bse_midi_file_add_part_events (BseMidiFile  *smf,
 void         bse_midi_file_setup_song      (BseMidiFile  *smf,
                                             BseSong      *song);
 
-G_END_DECLS
-
 #endif /* __BSE_MIDI_FILE_H__ */
diff --git a/bse/bsemidiinput.hh b/bse/bsemidiinput.hh
index e95a1b9..26d2177 100644
--- a/bse/bsemidiinput.hh
+++ b/bse/bsemidiinput.hh
@@ -6,8 +6,6 @@
 #include <bse/bsemidievent.hh>
 
 
-G_BEGIN_DECLS
-
 /* --- object type macros --- */
 #define BSE_TYPE_MIDI_INPUT             (BSE_TYPE_ID (BseMidiInput))
 #define BSE_MIDI_INPUT(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_MIDI_INPUT, 
BseMidiInput))
@@ -32,6 +30,4 @@ enum
 };
 
 
-G_END_DECLS
-
 #endif /* __BSE_MIDI_INPUT_H__ */
diff --git a/bse/bsemidinotifier.hh b/bse/bsemidinotifier.hh
index cdf815b..e4c2c65 100644
--- a/bse/bsemidinotifier.hh
+++ b/bse/bsemidinotifier.hh
@@ -6,8 +6,6 @@
 #include <bse/bsemidireceiver.hh>
 
 
-G_BEGIN_DECLS
-
 /* --- object type macros --- */
 #define BSE_TYPE_MIDI_NOTIFIER              (BSE_TYPE_ID (BseMidiNotifier))
 #define BSE_MIDI_NOTIFIER(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_MIDI_NOTIFIER, 
BseMidiNotifier))
@@ -29,8 +27,6 @@ void bse_midi_notifier_dispatch         (BseMidiNotifier      *self);
 void bse_midi_notifiers_attach_source   (void);
 void bse_midi_notifiers_wakeup          (void);
 
-G_END_DECLS
-
 namespace Bse {
 
 class MidiNotifierImpl : public ItemImpl, public virtual MidiNotifierIface {
diff --git a/bse/bsemidireceiver.cc b/bse/bsemidireceiver.cc
index 78d78da..21829e6 100644
--- a/bse/bsemidireceiver.cc
+++ b/bse/bsemidireceiver.cc
@@ -1154,8 +1154,7 @@ MidiChannel::debug_notes (guint64          tick_stamp,
     }
 }
 } // namespace anon
-/* --- BseMidiReceiver C API --- */
-extern "C" {
+
 struct BseMidiReceiver : public MidiReceiver {
   explicit BseMidiReceiver () :
     MidiReceiver () {}
@@ -2029,5 +2028,3 @@ midi_receiver_process_event_L (BseMidiReceiver *self,
 
   return TRUE;
 }
-
-} // "C"
diff --git a/bse/bsemidireceiver.hh b/bse/bsemidireceiver.hh
index a158aca..9ecf264 100644
--- a/bse/bsemidireceiver.hh
+++ b/bse/bsemidireceiver.hh
@@ -5,8 +5,6 @@
 #include        <bse/bseobject.hh>
 #include        <bse/bsemidievent.hh>
 
-G_BEGIN_DECLS
-
 
 /* --- API --- */
 #define        BSE_MIDI_CONTROL_MODULE_N_CHANNELS                 (4)
@@ -97,6 +95,4 @@ void             bse_midi_receiver_farm_distribute_event   (BseMidiEvent      *e
 void             bse_midi_receiver_farm_process_events     (guint64            max_tick_stamp);
 void             bse_midi_receiver_leave_farm              (BseMidiReceiver   *self);
 
-G_END_DECLS
-
 #endif /* __BSE_MIDI_RECEIVER_H__ */
diff --git a/bse/bsemidisynth.hh b/bse/bsemidisynth.hh
index 0642b06..758feb6 100644
--- a/bse/bsemidisynth.hh
+++ b/bse/bsemidisynth.hh
@@ -5,8 +5,6 @@
 #include       <bse/bsesnet.hh>
 #include       <bse/bsesubsynth.hh>
 
-G_BEGIN_DECLS
-
 /* --- object type macros --- */
 #define BSE_TYPE_MIDI_SYNTH             (BSE_TYPE_ID (BseMidiSynth))
 #define BSE_MIDI_SYNTH(object)          (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_MIDI_SYNTH, 
BseMidiSynth))
@@ -31,8 +29,6 @@ struct BseMidiSynth : BseSNet {
 struct BseMidiSynthClass : BseSNetClass
 {};
 
-G_END_DECLS
-
 namespace Bse {
 
 class MidiSynthImpl : public SNetImpl, public virtual MidiSynthIface {
diff --git a/bse/bsemidivoice.hh b/bse/bsemidivoice.hh
index 9988de1..c370f08 100644
--- a/bse/bsemidivoice.hh
+++ b/bse/bsemidivoice.hh
@@ -5,8 +5,6 @@
 #include <bse/bsesource.hh>
 #include <bse/bsesnet.hh>
 
-G_BEGIN_DECLS
-
 /* --- object type macros --- */
 #define BSE_TYPE_MIDI_VOICE_INPUT              (BSE_TYPE_ID (BseMidiVoiceInput))
 #define BSE_MIDI_VOICE_INPUT(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), 
BSE_TYPE_MIDI_VOICE_INPUT, BseMidiVoiceInput))
@@ -68,6 +66,4 @@ enum
   BSE_MIDI_VOICE_SWITCH_OCHANNEL_DISCONNECT
 };
 
-G_END_DECLS
-
 #endif /* __BSE_MIDI_VOICE_H__ */
diff --git a/bse/bsenote.hh b/bse/bsenote.hh
index ed31592..1211d22 100644
--- a/bse/bsenote.hh
+++ b/bse/bsenote.hh
@@ -5,8 +5,6 @@
 #include <bse/bseglobals.hh>
 #include <bse/bseenums.hh>
 
-G_BEGIN_DECLS
-
 // == Sfi imports ==
 #define BSE_MIN_NOTE            SFI_MIN_NOTE
 #define BSE_MAX_NOTE            SFI_MAX_NOTE
@@ -81,6 +79,4 @@ gboolean        bse_freq_arrays_match_freq      (gfloat          match_freq,
                                                  BseFreqArray   *inclusive_set,
                                                  BseFreqArray   *exclusive_set);
 
-G_END_DECLS
-
 #endif /* __BSE_NOTE_H__ */
diff --git a/bse/bseobject.hh b/bse/bseobject.hh
index a376946..36ec876 100644
--- a/bse/bseobject.hh
+++ b/bse/bseobject.hh
@@ -23,8 +23,6 @@ typedef std::shared_ptr<ObjectImpl> ObjectImplP;
 } // Bse
 
 
-G_BEGIN_DECLS
-
 /* --- BSE type macros --- */
 #define BSE_TYPE_OBJECT              (BSE_TYPE_ID (BseObject))
 #define BSE_OBJECT(object)          (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_OBJECT, BseObject))
@@ -55,8 +53,6 @@ typedef enum                          /*< skip >*/
 #define BSE_OBJECT_FLAGS_USHIFT            (3)
 #define BSE_OBJECT_FLAGS_MAX_SHIFT  (16)
 
-G_END_DECLS // BseObject templates need C++ linkage
-
 /* --- typedefs & structures --- */
 struct BseObject : GObject {
   Bse::ObjectImpl       *cxxobject_;
@@ -89,8 +85,6 @@ struct BseObject : GObject {
   }
 };
 
-G_BEGIN_DECLS // BseObject templates need C++ linkage
-
 struct BseObjectClass : GObjectClass {
   gboolean              (*editable_property)    (BseObject      *object, /* for set_property/get_property 
implementations */
                                                  guint           param_id,
@@ -198,6 +192,4 @@ void          bse_object_marshal_signal (GClosure       *closure,
                                          gpointer        invocation_hint,
                                          gpointer        marshal_data);
 
-G_END_DECLS
-
 #endif /* __BSE_OBJECT_H__ */
diff --git a/bse/bseparam.hh b/bse/bseparam.hh
index 7ddb459..b5510ea 100644
--- a/bse/bseparam.hh
+++ b/bse/bseparam.hh
@@ -6,10 +6,6 @@
 #include        <bse/bseutils.hh>
 
 
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
 
 /* --- object param specs --- */
 #define            BSE_TYPE_PARAM_OBJECT               (G_TYPE_PARAM_OBJECT)
@@ -56,8 +52,4 @@ GParamSpec* bse_param_spec_freq         (const gchar  *name,
                                         const gchar  *hints);
 
 
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
 #endif /* __BSE_PARAM_H__ */
diff --git a/bse/bsepart.hh b/bse/bsepart.hh
index 6150f99..175d916 100644
--- a/bse/bsepart.hh
+++ b/bse/bsepart.hh
@@ -5,8 +5,6 @@
 #include <bse/bseitem.hh>
 #include <sfi/gbsearcharray.hh>
 
-G_BEGIN_DECLS
-
 /* --- object type macros --- */
 #define BSE_TYPE_PART                   (BSE_TYPE_ID (BsePart))
 #define BSE_PART(object)                (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_PART, BsePart))
@@ -264,8 +262,6 @@ void              bse_part_note_channel_remove        (BsePartNoteChannel *self,
                                                        guint               tick);
 void              bse_part_note_channel_destroy       (BsePartNoteChannel *self);
 
-G_END_DECLS
-
 namespace Bse {
 
 class PartImpl : public ItemImpl, public virtual PartIface {
diff --git a/bse/bsepattern.hh b/bse/bsepattern.hh
index 99a0b18..8028f5f 100644
--- a/bse/bsepattern.hh
+++ b/bse/bsepattern.hh
@@ -6,10 +6,6 @@
 #include       <bse/bseeffect.h>
 
 
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
 
 /* --- object type macros --- */
 #define BSE_TYPE_PATTERN             (BSE_TYPE_ID (BsePattern))
@@ -170,8 +166,4 @@ _bse_pattern_selection_unmark (guint32 *selection,
 }
 
 
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
 #endif /* __BSE_PATTERN_H__ */
diff --git a/bse/bsepcmdevice-null.hh b/bse/bsepcmdevice-null.hh
index baf3cc3..217d6d2 100644
--- a/bse/bsepcmdevice-null.hh
+++ b/bse/bsepcmdevice-null.hh
@@ -4,8 +4,6 @@
 
 #include        <bse/bsepcmdevice.hh>
 
-G_BEGIN_DECLS
-
 /* --- object type macros --- */
 #define BSE_TYPE_PCM_DEVICE_NULL              (BSE_TYPE_ID (BsePcmDeviceNull))
 #define BSE_PCM_DEVICE_NULL(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), 
BSE_TYPE_PCM_DEVICE_NULL, BsePcmDeviceNull))
@@ -22,5 +20,4 @@ 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 119998a..e9453fb 100644
--- a/bse/bsepcmdevice-oss.hh
+++ b/bse/bsepcmdevice-oss.hh
@@ -5,8 +5,6 @@
 #include       <bse/bsepcmdevice.hh>
 
 
-G_BEGIN_DECLS
-
 
 /* --- object type macros --- */
 #define BSE_TYPE_PCM_DEVICE_OSS                     (BSE_TYPE_ID (BsePcmDeviceOSS))
@@ -22,5 +20,4 @@ struct BsePcmDeviceOSS : BsePcmDevice {
 struct BsePcmDeviceOSSClass : BsePcmDeviceClass
 {};
 
-G_END_DECLS
 #endif /* __BSE_PCM_DEVICE_OSS_H__ */
diff --git a/bse/bsepcmdevice.hh b/bse/bsepcmdevice.hh
index e277268..17041ed 100644
--- a/bse/bsepcmdevice.hh
+++ b/bse/bsepcmdevice.hh
@@ -4,8 +4,6 @@
 
 #include <bse/bsedevice.hh>
 
-G_BEGIN_DECLS
-
 /* --- object type macros --- */
 #define BSE_TYPE_PCM_DEVICE              (BSE_TYPE_ID (BsePcmDevice))
 #define BSE_PCM_DEVICE(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_PCM_DEVICE, 
BsePcmDevice))
@@ -74,6 +72,4 @@ guint           bse_pcm_handle_latency          (BsePcmHandle           *handle)
 guint          bse_pcm_device_frequency_align  (gint                    mix_freq);
 
 
-G_END_DECLS
-
 #endif /* __BSE_PCM_DEVICE_H__ */
diff --git a/bse/bsepcminput.hh b/bse/bsepcminput.hh
index b58b10e..88ef763 100644
--- a/bse/bsepcminput.hh
+++ b/bse/bsepcminput.hh
@@ -4,8 +4,6 @@
 
 #include <bse/bsesource.hh>
 
-G_BEGIN_DECLS
-
 /* --- object type macros --- */
 #define BSE_TYPE_PCM_INPUT             (BSE_TYPE_ID (BsePcmInput))
 #define BSE_PCM_INPUT(object)          (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_PCM_INPUT, 
BsePcmInput))
@@ -32,6 +30,4 @@ enum
 };
 
 
-G_END_DECLS
-
 #endif /* __BSE_PCM_INPUT_H__ */
diff --git a/bse/bsepcmoutput.hh b/bse/bsepcmoutput.hh
index 386f902..a209811 100644
--- a/bse/bsepcmoutput.hh
+++ b/bse/bsepcmoutput.hh
@@ -4,10 +4,6 @@
 
 #include <bse/bsesource.hh>
 
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
 
 /* --- object type macros --- */
 #define BSE_TYPE_PCM_OUTPUT             (BSE_TYPE_ID (BsePcmOutput))
@@ -36,8 +32,4 @@ enum
 
 
 
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
 #endif /* __BSE_PCM_OUTPUT_H__ */
diff --git a/bse/bsepcmwriter.hh b/bse/bsepcmwriter.hh
index dfeb0e9..0d66618 100644
--- a/bse/bsepcmwriter.hh
+++ b/bse/bsepcmwriter.hh
@@ -4,8 +4,6 @@
 
 #include <bse/bseitem.hh>
 
-G_BEGIN_DECLS
-
 /* --- object type macros --- */
 #define BSE_TYPE_PCM_WRITER              (BSE_TYPE_ID (BsePcmWriter))
 #define BSE_PCM_WRITER(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_PCM_WRITER, 
BsePcmWriter))
@@ -38,11 +36,6 @@ void         bse_pcm_writer_write            (BsePcmWriter           *pdev,
                                                 gsize                   n_values,
                                                 const gfloat           *values);
 
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
 namespace Bse {
 
 class PcmWriterImpl : public ItemImpl, public virtual PcmWriterIface {
diff --git a/bse/bseplugin.hh b/bse/bseplugin.hh
index 826d324..73e5846 100644
--- a/bse/bseplugin.hh
+++ b/bse/bseplugin.hh
@@ -4,8 +4,6 @@
 
 #include       <bse/bseexports.hh>
 
-G_BEGIN_DECLS
-
 
 /* --- BSE type macros --- */
 #define BSE_TYPE_PLUGIN              (BSE_TYPE_ID (BsePlugin))
@@ -37,6 +35,7 @@ const gchar*  bse_plugin_check_load           (const gchar    *file_name);
 void            bse_plugin_make_resident        ();
 /* --- implementation details --- */
 void                    bse_plugin_init_builtins       (void);
-extern BseExportIdentity bse_builtin_export_identity; /* sync with bsecxxplugin.hh */
-G_END_DECLS
+
+extern "C" { extern BseExportIdentity bse_builtin_export_identity; /* sync with bsecxxplugin.hh */ }
+
 #endif /* __BSE_PLUGIN_H__ */
diff --git a/bse/bseprobe.cc b/bse/bseprobe.cc
index af74e7e..b6379c4 100644
--- a/bse/bseprobe.cc
+++ b/bse/bseprobe.cc
@@ -715,7 +715,6 @@ BSE_CXX_DEFINE_EXPORTS();
 BSE_CXX_REGISTER_ALL_TYPES_FROM_BSEPROBE_IDL();
 } // Bse
 /* --- bsesource.hh bits --- */
-extern "C" {    // from bsesource.hh
 using namespace Bse;
 
 void
@@ -742,5 +741,3 @@ bse_source_class_add_probe_signals (BseSourceClass *klass)
   BseObjectClass *object_class = BSE_OBJECT_CLASS (klass);
   bse_source_signal_probes = bse_object_class_add_signal (object_class, "probes", G_TYPE_NONE, 1, 
BSE_TYPE_PROBE_SEQ);
 }
-
-};
diff --git a/bse/bseprocedure.hh b/bse/bseprocedure.hh
index a3f0d3c..72dc413 100644
--- a/bse/bseprocedure.hh
+++ b/bse/bseprocedure.hh
@@ -4,8 +4,6 @@
 
 #include       <bse/bseparam.hh>
 
-G_BEGIN_DECLS
-
 /* --- BSE type macros --- */
 #define        BSE_PROCEDURE_TYPE(proc)        (G_TYPE_FROM_CLASS (proc))
 #define        BSE_IS_PROCEDURE_CLASS(proc)    (G_TYPE_CHECK_CLASS_TYPE ((proc), BSE_TYPE_PROCEDURE))
@@ -91,6 +89,4 @@ const gchar* bse_procedure_type_register (const gchar         *name,
                                          BsePlugin             *plugin,
                                          GType                 *ret_type);
 
-G_END_DECLS
-
 #endif /* __BSE_PROCEDURE_H__ */
diff --git a/bse/bseproject.hh b/bse/bseproject.hh
index 2d6aa28..e1187d9 100644
--- a/bse/bseproject.hh
+++ b/bse/bseproject.hh
@@ -4,8 +4,6 @@
 
 #include        <bse/bsecontainer.hh>
 
-G_BEGIN_DECLS
-
 
 /* --- object type macros --- */
 #define        BSE_TYPE_PROJECT              (BSE_TYPE_ID (BseProject))
@@ -109,6 +107,4 @@ public:
 
 } // Bse
 
-G_END_DECLS
-
 #endif /* __BSE_PROJECT_H__ */
diff --git a/bse/bseresampler.hh b/bse/bseresampler.hh
index fac1b9c..40b41fb 100644
--- a/bse/bseresampler.hh
+++ b/bse/bseresampler.hh
@@ -4,8 +4,6 @@
 
 #include <bse/bsecxxutils.hh>
 
-G_BEGIN_DECLS
-
 typedef struct BseResampler2 BseResampler2;
 
 typedef enum /*< skip >*/
@@ -36,7 +34,6 @@ double               bse_resampler2_delay         (BseResampler2         *resampler);
 /* precision <-> bits conversion */
 BseResampler2Precision bse_resampler2_find_precision_for_bits (guint                  bits);
 const char*            bse_resampler2_precision_name          (BseResampler2Precision precision);
-G_END_DECLS
 #ifdef __cplusplus
 #include <vector>
 namespace Bse {
diff --git a/bse/bsescripthelper.hh b/bse/bsescripthelper.hh
index da9a103..399824d 100644
--- a/bse/bsescripthelper.hh
+++ b/bse/bsescripthelper.hh
@@ -4,10 +4,6 @@
 
 #include        <bse/bseprocedure.hh>
 
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
 
 /* --- typedefs & structures --- */
 typedef struct
@@ -42,8 +38,4 @@ GValue*               bse_script_check_client_msg     (SfiGlueDecoder *decoder,
                                                 const gchar    *message,
                                                 const GValue   *value);
 
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
 #endif /* __BSE_SCRIPT_HELPER_H__ */
diff --git a/bse/bseserver.hh b/bse/bseserver.hh
index 0c5b3cc..20809c8 100644
--- a/bse/bseserver.hh
+++ b/bse/bseserver.hh
@@ -6,8 +6,6 @@
 #include <bse/bsemididevice.hh>
 #include <bse/testobject.hh>
 
-G_BEGIN_DECLS
-
 /* --- BSE type macros --- */
 #define BSE_TYPE_SERVER              (BSE_TYPE_ID (BseServer))
 #define BSE_SERVER_CAST(object)      (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_SERVER, BseServer))
@@ -91,8 +89,6 @@ Bse::Error    bse_server_run_remote                   (BseServer          *server,
 void           bse_server_queue_kill_wire              (BseServer          *server,
                                                         SfiComWire         *wire);
 void           bse_server_notify_gconfig               (BseServer          *server);
-G_END_DECLS
-
 
 #define BSE_SERVER      (Bse::ServerImpl::instance())
 
diff --git a/bse/bsesnet.hh b/bse/bsesnet.hh
index c792f41..8f8fc95 100644
--- a/bse/bsesnet.hh
+++ b/bse/bsesnet.hh
@@ -5,8 +5,6 @@
 #include       <bse/bsesuper.hh>
 
 
-G_BEGIN_DECLS
-
 
 /* --- object type macros --- */
 #define BSE_TYPE_SNET             (BSE_TYPE_ID (BseSNet))
@@ -102,8 +100,6 @@ void             bse_snet_set_oport_dest        (BseSNet         *snet,
                                                  guint            istream,
                                                  BseTrans        *trans);
 
-G_END_DECLS
-
 namespace Bse {
 
 class SNetImpl : public SuperImpl, public virtual SNetIface {
diff --git a/bse/bsesnooper.hh b/bse/bsesnooper.hh
index 0600c41..0fa49aa 100644
--- a/bse/bsesnooper.hh
+++ b/bse/bsesnooper.hh
@@ -4,8 +4,6 @@
 
 #include <bse/bsesource.hh>
 
-G_BEGIN_DECLS
-
 /* --- object type macros --- */
 #define BSE_TYPE_SNOOPER              (BSE_TYPE_ID (BseSnooper))
 #define BSE_SNOOPER(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_SNOOPER, BseSnooper))
@@ -28,5 +26,4 @@ enum
   BSE_SNOOPER_N_ICHANNELS
 };
 
-G_END_DECLS
 #endif /* __BSE_SNOOPER_H__ */
diff --git a/bse/bsesong.hh b/bse/bsesong.hh
index de7a0e5..d5ae213 100644
--- a/bse/bsesong.hh
+++ b/bse/bsesong.hh
@@ -5,8 +5,6 @@
 #include        <bse/bsesnet.hh>
 
 
-G_BEGIN_DECLS
-
 
 /* --- BSE type macros --- */
 #define BSE_TYPE_SONG              (BSE_TYPE_ID (BseSong))
@@ -66,8 +64,6 @@ BseSource* bse_song_ensure_master      (BseSong *self);
 void       bse_song_set_solo_bus       (BseSong *self, BseBus *bus);
 BseTrack*  bse_song_find_first_track   (BseSong *self, BsePart *part);
 
-G_END_DECLS
-
 namespace Bse {
 
 class SongImpl : public SNetImpl, public virtual SongIface {
diff --git a/bse/bsesource.hh b/bse/bsesource.hh
index 7684d9f..f927180 100644
--- a/bse/bsesource.hh
+++ b/bse/bsesource.hh
@@ -5,8 +5,6 @@
 #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))
@@ -271,8 +269,6 @@ void    bse_source_clear_probes                 (BseSource      *source);
 void    bse_source_class_add_probe_signals      (BseSourceClass *klass);
 void    bse_source_probes_modules_changed       (BseSource      *source);
 
-G_END_DECLS
-
 namespace Bse {
 
 class SourceImpl : public ItemImpl, public virtual SourceIface {
diff --git a/bse/bsestandardosc.hh b/bse/bsestandardosc.hh
index 96a20bb..be61a40 100644
--- a/bse/bsestandardosc.hh
+++ b/bse/bsestandardosc.hh
@@ -3,8 +3,6 @@
 #define __BSE_STANDARD_OSC_H__
 #include <bse/bsesource.hh>
 #include <bse/gsloscillator.hh>
-G_BEGIN_DECLS
-
 #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))
@@ -50,6 +48,4 @@ enum
   BSE_STANDARD_OSC_N_OCHANNELS
 };
 
-G_END_DECLS
-
 #endif /* __BSE_STANDARD_OSC_H__ */
diff --git a/bse/bsestandardsynths.hh b/bse/bsestandardsynths.hh
index a7016be..b2f649b 100644
--- a/bse/bsestandardsynths.hh
+++ b/bse/bsestandardsynths.hh
@@ -4,14 +4,10 @@
 
 #include        <bse/bseproject.hh>
 
-G_BEGIN_DECLS
-
 
 gchar* bse_standard_synth_inflate      (const gchar    *synth_name,
                                         guint          *text_len);
 
 
-G_END_DECLS
-
 
 #endif /* __BSE_STANDARD_SYNTHS_H__ */
diff --git a/bse/bsestorage.hh b/bse/bsestorage.hh
index 67d0f8e..041687e 100644
--- a/bse/bsestorage.hh
+++ b/bse/bsestorage.hh
@@ -5,8 +5,6 @@
 #include <bse/bseobject.hh>
 #include <bse/gsldefs.hh>
 
-G_BEGIN_DECLS
-
 /* --- object type macros --- */
 #define BSE_TYPE_STORAGE                 (BSE_TYPE_ID (BseStorage))
 #define BSE_STORAGE(object)              (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_STORAGE, 
BseStorage))
@@ -172,6 +170,4 @@ gboolean     bse_storage_check_parse_negate     (BseStorage             *self);
 #define bse_storage_puts(s,b)           sfi_wstore_puts ((s)->wstore, b)
 #define bse_storage_printf(s, ...)      bse_storage_puts (s, Rapicorn::string_format (__VA_ARGS__).c_str())
 
-G_END_DECLS
-
 #endif /* __BSE_STORAGE_H__ */
diff --git a/bse/bsesubiport.hh b/bse/bsesubiport.hh
index c720a34..3273ab4 100644
--- a/bse/bsesubiport.hh
+++ b/bse/bsesubiport.hh
@@ -3,8 +3,6 @@
 #define __BSE_SUB_IPORT_H__
 #include <bse/bsesource.hh>
 #include <bse/bseengine.hh>
-G_BEGIN_DECLS
-
 #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))
@@ -19,6 +17,4 @@ struct BseSubIPort : BseSource {
 struct BseSubIPortClass : BseSourceClass
 {};
 
-G_END_DECLS
-
 #endif /* __BSE_SUB_IPORT_H__ */
diff --git a/bse/bsesuboport.hh b/bse/bsesuboport.hh
index a801c91..2596edb 100644
--- a/bse/bsesuboport.hh
+++ b/bse/bsesuboport.hh
@@ -3,8 +3,6 @@
 #define __BSE_SUB_OPORT_H__
 #include <bse/bsesource.hh>
 #include <bse/bseengine.hh>
-G_BEGIN_DECLS
-
 #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))
@@ -19,6 +17,4 @@ struct BseSubOPort : BseSource {
 struct BseSubOPortClass : BseSourceClass
 {};
 
-G_END_DECLS
-
 #endif /* __BSE_SUB_OPORT_H__ */
diff --git a/bse/bsesubsynth.hh b/bse/bsesubsynth.hh
index 227c6bb..36e7cd1 100644
--- a/bse/bsesubsynth.hh
+++ b/bse/bsesubsynth.hh
@@ -2,8 +2,6 @@
 #ifndef __BSE_SUB_SYNTH_H__
 #define __BSE_SUB_SYNTH_H__
 #include <bse/bsesource.hh>
-G_BEGIN_DECLS
-
 #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))
@@ -26,8 +24,6 @@ void bse_sub_synth_set_null_shortcut (BseSubSynth *self, bool enabled);
 /// Override the @a midi_channel for the SNet (unset override with midi_channel=0).
 void bse_sub_synth_set_midi_channel  (BseSubSynth *self, uint midi_channel);
 
-G_END_DECLS
-
 namespace Bse {
 
 class SubSynthImpl : public SourceImpl, public virtual SubSynthIface {
diff --git a/bse/bsesuper.hh b/bse/bsesuper.hh
index 97876fa..be38dc4 100644
--- a/bse/bsesuper.hh
+++ b/bse/bsesuper.hh
@@ -4,8 +4,6 @@
 
 #include        <bse/bsecontainer.hh>
 
-G_BEGIN_DECLS
-
 /* --- object type macros --- */
 #define        BSE_TYPE_SUPER              (BSE_TYPE_ID (BseSuper))
 #define BSE_SUPER(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_SUPER, BseSuper))
@@ -37,8 +35,6 @@ struct BseSuperClass : BseContainerClass {
                                          guint           vmicro);
 };
 
-G_END_DECLS
-
 namespace Bse {
 
 class SuperImpl : public ContainerImpl, public virtual SuperIface {
diff --git a/bse/bsetrack.hh b/bse/bsetrack.hh
index d66d57b..ec97b53 100644
--- a/bse/bsetrack.hh
+++ b/bse/bsetrack.hh
@@ -6,8 +6,6 @@
 #include <bse/bsesnet.hh>
 #include <bse/bsecontextmerger.hh>
 
-G_BEGIN_DECLS
-
 /* --- BSE type macros --- */
 #define BSE_TYPE_TRACK             (BSE_TYPE_ID (BseTrack))
 #define BSE_TRACK(object)          (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_TRACK, BseTrack))
@@ -77,8 +75,6 @@ BsePart*       bse_track_get_part_SL  (BseTrack               *self,
                                         guint                   tick,
                                         guint                  *start,
                                         guint                  *next);
-G_END_DECLS
-
 namespace Bse {
 
 class TrackImpl : public ContextMergerImpl, public virtual TrackIface {
diff --git a/bse/bsetype.hh b/bse/bsetype.hh
index 933606a..8ff2462 100644
--- a/bse/bsetype.hh
+++ b/bse/bsetype.hh
@@ -4,8 +4,6 @@
 
 #include       <bse/bsedefs.hh>
 
-G_BEGIN_DECLS
-
 /* --- typedefs --- */
 #define BSE_TYPE_PROCEDURE     G_TYPE_MAKE_FUNDAMENTAL (G_TYPE_RESERVED_BSE_FIRST + 3)
 
@@ -195,6 +193,4 @@ extern BseGConfig        *bse_global_config;    /* from bsegconfig.[hc] */
   sfi_pspec_set_group (bse_param_spec_object (name, nick, blurb, otype, options), group)
 
 
-G_END_DECLS
-
 #endif /* __BSE_TYPE_H__ */
diff --git a/bse/bseundostack.hh b/bse/bseundostack.hh
index e17d906..66d3828 100644
--- a/bse/bseundostack.hh
+++ b/bse/bseundostack.hh
@@ -4,8 +4,6 @@
 
 #include <bse/bseitem.hh>
 
-G_BEGIN_DECLS
-
 
 #define BSE_UNDO_STACK_VOID(ustack)     ((ustack)->max_steps == 0)
 
@@ -90,6 +88,4 @@ gpointer           bse_undo_pointer_unpack       (const gchar    *packed_pointer
 const BseUndoStep* bse_undo_group_peek_last_atom (BseUndoStack   *self,
                                                   SfiTime        *stamp_p);
 
-G_END_DECLS
-
 #endif /* __BSE_UNDO_STACK_H__ */
diff --git a/bse/bseutils.hh b/bse/bseutils.hh
index 03f7053..65255a6 100644
--- a/bse/bseutils.hh
+++ b/bse/bseutils.hh
@@ -8,8 +8,6 @@
 #include <bse/bseglobals.hh>
 #include <bse/bsecompat.hh>
 
-G_BEGIN_DECLS
-
 /* --- C++ helper declaration --- */
 void    bse_cxx_init      (void);
 /* --- record utils --- */
@@ -83,8 +81,6 @@ gint          bse_xinfo_stub_compare            (const gchar     *xinfo1,  /* mu
 guint          bse_string_hash                 (gconstpointer   string);
 gint           bse_string_equals               (gconstpointer   string1,
                                                 gconstpointer   string2);
-G_END_DECLS
-
 
 namespace Bse {
 
diff --git a/bse/bsewave.hh b/bse/bsewave.hh
index 68136e6..56291ea 100644
--- a/bse/bsewave.hh
+++ b/bse/bsewave.hh
@@ -4,8 +4,6 @@
 
 #include       <bse/bsesource.hh>
 
-G_BEGIN_DECLS
-
 /* --- BSE type macros --- */
 #define BSE_TYPE_WAVE             (BSE_TYPE_ID (BseWave))
 #define BSE_WAVE(object)          (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_WAVE, BseWave))
@@ -66,8 +64,6 @@ GslWaveChunk* bse_wave_index_lookup_best      (BseWaveIndex   *windex,
                                                 gfloat          osc_freq,
                                                  gfloat          velocity);
 
-G_END_DECLS
-
 namespace Bse {
 
 class WaveImpl : public SourceImpl, public virtual WaveIface {
diff --git a/bse/bsewaveosc.hh b/bse/bsewaveosc.hh
index 41d119c..da9212c 100644
--- a/bse/bsewaveosc.hh
+++ b/bse/bsewaveosc.hh
@@ -6,8 +6,6 @@
 #include <bse/bsewave.hh>
 #include <bse/gslwaveosc.hh>
 
-G_BEGIN_DECLS
-
 /* --- object type macros --- */
 #define BSE_TYPE_WAVE_OSC              (BSE_TYPE_ID (BseWaveOsc))
 #define BSE_WAVE_OSC(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_WAVE_OSC, BseWaveOsc))
@@ -50,6 +48,4 @@ enum
   BSE_WAVE_OSC_N_OCHANNELS
 };
 
-G_END_DECLS
-
 #endif /* __BSE_WAVE_OSC_H__ */
diff --git a/bse/bsewaverepo.hh b/bse/bsewaverepo.hh
index a0d42b7..5464b6b 100644
--- a/bse/bsewaverepo.hh
+++ b/bse/bsewaverepo.hh
@@ -5,8 +5,6 @@
 #include       <bse/bsesuper.hh>
 
 
-G_BEGIN_DECLS
-
 
 /* --- object type macros --- */
 #define BSE_TYPE_WAVE_REPO             (BSE_TYPE_ID (BseWaveRepo))
@@ -22,8 +20,6 @@ struct BseWaveRepo : BseSuper {
 struct BseWaveRepoClass : BseSuperClass
 {};
 
-G_END_DECLS
-
 namespace Bse {
 
 class WaveRepoImpl : public SuperImpl, public virtual WaveRepoIface {
diff --git a/bse/gslcommon.hh b/bse/gslcommon.hh
index 5f7d565..539a7fd 100644
--- a/bse/gslcommon.hh
+++ b/bse/gslcommon.hh
@@ -3,7 +3,6 @@
 #define __GSL_COMMON_H__
 #include <bse/gsldefs.hh>
 #include <bse/bseenums.hh>
-G_BEGIN_DECLS
 /* --- initialization --- */
 void                   gsl_init        (void);
 
@@ -57,8 +56,6 @@ void  _gsl_init_loader_mad            (void);
 void   bse_init_loader_gus_patch       (void);
 void   bse_init_loader_flac            (void);
 #define                GSL_N_IO_RETRIES        (5)
-G_END_DECLS
-
 
 namespace Bse {
 
diff --git a/bse/gsldatacache.hh b/bse/gsldatacache.hh
index f5be14c..73262db 100644
--- a/bse/gsldatacache.hh
+++ b/bse/gsldatacache.hh
@@ -4,8 +4,6 @@
 
 #include <bse/gslcommon.hh>
 
-G_BEGIN_DECLS
-
 /* --- macros --- */
 #define        GSL_DATA_CACHE_NODE_SIZE(dcache)        (((GslDataCache*) (dcache))->node_size)
 
@@ -58,6 +56,4 @@ void            gsl_data_cache_free_olders    (GslDataCache       *dcache,
 GslDataCache*    gsl_data_cache_from_dhandle   (GslDataHandle      *dhandle,
                                                 guint               min_padding);
 
-G_END_DECLS
-
 #endif /* __GSL_DATA_CACHE_H__ */
diff --git a/bse/gsldatahandle-mad.hh b/bse/gsldatahandle-mad.hh
index 759b3e0..ef1b15c 100644
--- a/bse/gsldatahandle-mad.hh
+++ b/bse/gsldatahandle-mad.hh
@@ -5,8 +5,6 @@
 #include <bse/gslcommon.hh>
 #include <bse/gsldatahandle.hh>
 
-G_BEGIN_DECLS
-
 /* linear-read handle. needs buffering handle wrapper
  */
 GslDataHandle* gsl_data_handle_new_mad         (const gchar  *file_name,
@@ -19,6 +17,4 @@ Bse::Error    gsl_data_handle_mad_testopen    (const gchar  *file_name,
                                                 gfloat       *mix_freq);
 const gchar*    gsl_data_handle_mad_version     (void);
 
-G_END_DECLS
-
 #endif /* __GSL_DATA_HANDLE_MAD_H__ */
diff --git a/bse/gsldatahandle-vorbis.hh b/bse/gsldatahandle-vorbis.hh
index 6d21c48..d138a7d 100644
--- a/bse/gsldatahandle-vorbis.hh
+++ b/bse/gsldatahandle-vorbis.hh
@@ -6,8 +6,6 @@
 #include <bse/gslcommon.hh>
 #include <bse/gsldatahandle.hh>
 
-G_BEGIN_DECLS
-
 /* --- reading vorbis files --- */
 GslDataHandle* gsl_data_handle_new_ogg_vorbis_muxed   (const gchar      *file_name,
                                                        guint            lbitstream,
@@ -34,6 +32,4 @@ void              gsl_vorbis1_handle_put_wstore       (GslVorbis1Handle *vorbis1
                                                        SfiWStore        *wstore);
 guint             gsl_vorbis_make_serialno            (void);
 
-G_END_DECLS
-
 #endif /* __GSL_DATA_HANDLE_VORBIS_H__ */
diff --git a/bse/gsldatahandle.hh b/bse/gsldatahandle.hh
index 01f5266..1ec6135 100644
--- a/bse/gsldatahandle.hh
+++ b/bse/gsldatahandle.hh
@@ -4,8 +4,6 @@
 
 #include <bse/bseutils.hh>
 
-G_BEGIN_DECLS
-
 
 /* --- macros --- */
 #define        GSL_DATA_HANDLE_OPENED(handle)      (((GslDataHandle*) (handle))->open_count > 0)
@@ -177,6 +175,4 @@ gboolean    gsl_data_handle_common_init     (GslDataHandle    *dhandle,
 void           gsl_data_handle_common_free     (GslDataHandle    *dhandle);
 
 
-G_END_DECLS
-
 #endif /* __GSL_DATA_HANDLE_H__ */
diff --git a/bse/gsldatautils.hh b/bse/gsldatautils.hh
index 830ecda..73758e9 100644
--- a/bse/gsldatautils.hh
+++ b/bse/gsldatautils.hh
@@ -5,8 +5,6 @@
 #include <bse/bsemath.hh>
 #include <bse/gsldatahandle.hh>
 
-G_BEGIN_DECLS
-
 /* --- structures --- */
 #define GSL_DATA_HANDLE_PEEK_BUFFER     (2048)
 typedef struct
@@ -1434,8 +1432,6 @@ gsl_conv_to_double (GslWaveFormatType format,
     }
 }
 
-G_END_DECLS
-
 #endif /* __GSL_DATA_UTILS_H__ */
 
 /* vim:set ts=8 sts=2 sw=2: */
diff --git a/bse/gsldefs.hh b/bse/gsldefs.hh
index a6c3439..95bb514 100644
--- a/bse/gsldefs.hh
+++ b/bse/gsldefs.hh
@@ -6,8 +6,6 @@
 #include <sfi/sfistore.hh>
 
 
-G_BEGIN_DECLS
-
 /* --- forward decls --- */
 typedef struct _GslMagic               GslMagic;
 typedef struct _GslDataCache           GslDataCache;
@@ -43,8 +41,6 @@ typedef void     (*GslFreeFunc)         (gpointer        data);
 #  define GSL_GCC_WPREFETCH(addr) /* addr */
 #endif
 
-G_END_DECLS
-
 #endif /* __GSL_DEFS_H__ */
 
 /* vim:set ts=8 sw=2 sts=2: */
diff --git a/bse/gslfft.hh b/bse/gslfft.hh
index 389391b..1e90670 100644
--- a/bse/gslfft.hh
+++ b/bse/gslfft.hh
@@ -4,10 +4,6 @@
 
 #include <bse/gsldefs.hh>
 
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
 
 /**
  * @param n_values      Number of complex values
@@ -184,8 +180,4 @@ void        gsl_power2_fftsr_scale_simple (const unsigned int n_values,
 
 
 
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
 #endif /* __GSL_FFT_H__ */   /* vim:set ts=8 sw=2 sts=2: */
diff --git a/bse/gslfilehash.hh b/bse/gslfilehash.hh
index 600c4c1..c187e12 100644
--- a/bse/gslfilehash.hh
+++ b/bse/gslfilehash.hh
@@ -5,10 +5,6 @@
 #include <bse/gsldefs.hh>
 #include <bse/gslcommon.hh>
 
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
 
 
 /* --- typedefs & structures --- */
@@ -56,8 +52,4 @@ GslLong         gsl_rfile_length      (GslRFile       *rfile);
 void     gsl_rfile_close       (GslRFile       *rfile);
 
 
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
 #endif /* __GSL_FILE_HASH_H__ */
diff --git a/bse/gslfilter.hh b/bse/gslfilter.hh
index c216d3c..11c289a 100644
--- a/bse/gslfilter.hh
+++ b/bse/gslfilter.hh
@@ -4,10 +4,6 @@
 
 #include <bse/bsemath.hh>
 
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
 
 /* --- transformations --- */
 static inline BseComplex bse_trans_s2z          (BseComplex     s);
@@ -258,8 +254,4 @@ bse_trans_freq2z (double w)
 
 
 
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
 #endif /* __GSL_FILTER_H__ */  /* vim:set ts=8 sw=2 sts=2: */
diff --git a/bse/gslmagic.hh b/bse/gslmagic.hh
index 6dfa6e9..22e816b 100644
--- a/bse/gslmagic.hh
+++ b/bse/gslmagic.hh
@@ -5,10 +5,6 @@
 #include <bse/gsldefs.hh>
 
 
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
 
 
 /* --- structures --- */
@@ -56,8 +52,4 @@ void          gsl_magic_list_brute_match      (SfiRing        *magic_list,
                                                 SfiRing       **ext_matches,
                                                 SfiRing       **other_matches);
 
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
 #endif /* __GSL_MAGIC_H__ */
diff --git a/bse/gsloscillator.hh b/bse/gsloscillator.hh
index 7ee7670..658c18a 100644
--- a/bse/gsloscillator.hh
+++ b/bse/gsloscillator.hh
@@ -5,10 +5,6 @@
 #include <bse/gsldefs.hh>
 #include <bse/gslosctable.hh>
 
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
 
 /* --- structures --- */
 typedef struct
@@ -62,8 +58,4 @@ void  gsl_osc_process_pulse   (GslOscData     *osc,
 
 
 
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
 #endif /* __GSL_OSCILLATOR_H__ */
diff --git a/bse/gslosctable.hh b/bse/gslosctable.hh
index 86d5b78..40af3e6 100644
--- a/bse/gslosctable.hh
+++ b/bse/gslosctable.hh
@@ -5,8 +5,6 @@
 #include <bse/gsldefs.hh>
 #include <sfi/gbsearcharray.hh>
 
-G_BEGIN_DECLS
-
 
 /* --- structures & enums --- */
 typedef enum    /*< skip >*/
@@ -79,6 +77,4 @@ void          gsl_osc_wave_adjust_range       (guint                   n_values,
 const gchar*   gsl_osc_wave_form_name          (GslOscWaveForm          wave_form);
 
 
-G_END_DECLS
-
 #endif /* __GSL_OSC_TABLE_H__ */
diff --git a/bse/gslvorbis-cutter.hh b/bse/gslvorbis-cutter.hh
index f97f797..cd66f6a 100644
--- a/bse/gslvorbis-cutter.hh
+++ b/bse/gslvorbis-cutter.hh
@@ -4,8 +4,6 @@
 
 #include <bse/gslcommon.hh>
 
-G_BEGIN_DECLS
-
 /* --- typedefs & enums --- */
 typedef struct _GslVorbisCutter  GslVorbisCutter;
 typedef enum
@@ -34,6 +32,4 @@ guint             gsl_vorbis_cutter_read_ogg            (GslVorbisCutter
 gboolean          gsl_vorbis_cutter_ogg_eos             (GslVorbisCutter        *self);
 void              gsl_vorbis_cutter_destroy             (GslVorbisCutter        *self);
 
-G_END_DECLS
-
 #endif /* __GSL_VORBIS_CUTTER_H__ */
diff --git a/bse/gslvorbis-enc.hh b/bse/gslvorbis-enc.hh
index 63f37d9..be5be5f 100644
--- a/bse/gslvorbis-enc.hh
+++ b/bse/gslvorbis-enc.hh
@@ -4,8 +4,6 @@
 
 #include <bse/gslcommon.hh>
 
-G_BEGIN_DECLS
-
 /* --- typedefs & enums --- */
 typedef struct _GslVorbisEncoder GslVorbisEncoder;
 /* rough quality to bitrate mappings at 44.1kHz mono:
@@ -61,6 +59,4 @@ void              gsl_vorbis_encoder_destroy            (GslVorbisEncoder
 String            gsl_vorbis_encoder_version            ();
 
 
-G_END_DECLS
-
 #endif /* __GSL_VORBIS_ENC_H__ */
diff --git a/bse/gslwavechunk.hh b/bse/gslwavechunk.hh
index d3b9ba7..6afffeb 100644
--- a/bse/gslwavechunk.hh
+++ b/bse/gslwavechunk.hh
@@ -6,8 +6,6 @@
 #include <bse/gsldatacache.hh>
 #include <bse/gsldatahandle.hh>
 
-G_BEGIN_DECLS
-
 /* --- typedefs & structures --- */
 typedef enum /*< skip >*/
 {
@@ -105,6 +103,4 @@ const gchar*        gsl_wave_loop_type_to_string    (GslWaveLoopType         wave_loop);
 GslWaveLoopType        gsl_wave_loop_type_from_string  (const gchar            *string);
 
 
-G_END_DECLS
-
 #endif /* __GSL_WAVE_CHUNK_H__ */
diff --git a/bse/gslwaveosc.hh b/bse/gslwaveosc.hh
index d8305fe..dde1c67 100644
--- a/bse/gslwaveosc.hh
+++ b/bse/gslwaveosc.hh
@@ -5,10 +5,6 @@
 #include <bse/gsldefs.hh>
 #include <bse/gslwavechunk.hh>
 
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
 
 #define GSL_WAVE_OSC_FILTER_ORDER      (8)     /* <= GslConfig.wave_chunk_padding ! */
 
@@ -75,8 +71,4 @@ GslLong               gsl_wave_osc_cur_pos    (GslWaveOscData *wosc);
 
 
 
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
 #endif /* __GSL_WAVE_OSC_H__ */


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