Index: bse/bsecompat.c
===================================================================
--- bse/bsecompat.c	(revision 4335)
+++ bse/bsecompat.c	(working copy)
@@ -37,6 +37,7 @@ bse_compat_rewrite_type_name (BseStorage
     { 0, 6, 2,  "ArtsStereoCompressor", "BseArtsCompressor"     },
     { 0, 6, 2,  "DavBassFilter",        "BseDavBassFilter"      },
     { 0, 6, 2,  "DavChorus",            "BseDavChorus"          },
+    { 0, 7, 1,  "DavOrgan",             "BseDavOrgan"           },
   };
   guint i;
   for (i = 0; i < G_N_ELEMENTS (type_changes); i++)
Index: bse/bsecxxmodule.cc
===================================================================
--- bse/bsecxxmodule.cc	(revision 4335)
+++ bse/bsecxxmodule.cc	(working copy)
@@ -429,6 +429,13 @@ Effect::max_block_size() const
   return BSE_STREAM_MAX_VALUES;
 }
 
+BseMusicalTuningType
+Effect::current_musical_tuning() const
+{
+  BseSource *source = cast (const_cast <Effect*> (this));
+  return bse_item_current_musical_tuning (BSE_ITEM (source));
+}
+
 void
 Effect::class_init (CxxBaseClass *klass)
 {
Index: bse/ChangeLog
===================================================================
--- bse/ChangeLog	(revision 4335)
+++ bse/ChangeLog	(working copy)
@@ -1,3 +1,13 @@
+Tue Apr 24 18:25:54 2007  Stefan Westerfeld  <stefan@space.twc.de>
+
+	* bsecompat.c: Added DavOrgan -> BseDavOrgan compatibility rewrite
+	typename rule for files <= 0.7.0, since the DavOrgan module is now
+	implemented in C++, and thus properly namespaced.
+
+	* bsecxxmodule.hh:
+	* bsecxxmodule.cc: Introduced Effect::current_musical_tuning(), which
+	can be used to make C++ plugins tuning aware.
+
 Wed Apr 11 15:46:31 2007  Stefan Westerfeld  <stefan@space.twc.de>
 
 	* bsedatahandle-fir.cc: Fix a bug in seek() spotted by Tim: invalidate
Index: bse/bsecxxmodule.hh
===================================================================
--- bse/bsecxxmodule.hh	(revision 4335)
+++ bse/bsecxxmodule.hh	(working copy)
@@ -159,6 +159,8 @@ protected:
                                                         BseTrans        *trans);
   unsigned int              block_size                 () const;
   unsigned int              max_block_size             () const;
+public: /* FIXME: make this protected as soon as the modules have their own current_musical_tuning() accessor */
+  BseMusicalTuningType      current_musical_tuning     () const;
 };
 /* implement Bse::Effect and Bse::SynthesisModule methods */
 #define BSE_EFFECT_INTEGRATE_MODULE(ObjectType,ModuleType,ParamType)            \
Index: plugins/ChangeLog
===================================================================
--- plugins/ChangeLog	(revision 4335)
+++ plugins/ChangeLog	(working copy)
@@ -1,3 +1,13 @@
+Tue Apr 24 18:28:27 2007  Stefan Westerfeld  <stefan@space.twc.de>
+
+	* Makefile.am:
+	* Makefile.plugins: Switch from the C implementation of DavOrgan to
+	the C++ implementation of DavOrgan.
+
+	* davorgan.cc: Ported C code from DavOrgan to C++.
+	
+	* davorgan.idl: Wrote a proper IDL file for the DavOrgan module.
+
 Mon Feb  5 22:16:01 2007  Stefan Westerfeld  <stefan@space.twc.de>
 
 	* bsenoise.cc: Nullify noise_table pointer after deleting it, so that
Index: plugins/Makefile.plugins
===================================================================
--- plugins/Makefile.plugins	(revision 4335)
+++ plugins/Makefile.plugins	(working copy)
@@ -107,6 +107,11 @@ $(srcdir)/davchorus.cc: davchorus.genidl
 plugins_built_sources      += davchorus.genidl.hh
 davplugins_FPU_la_SOURCES += davchorus.cc
 
+## C++ Plugin davorgan
+$(srcdir)/davorgan.cc: davorgan.genidl.hh # davplugins
+plugins_built_sources      += davorgan.genidl.hh
+davplugins_FPU_la_SOURCES += davorgan.cc
+
 
 ## C Plugin bsesimpleadsr
 EXTRA_HEADERS      += bsesimpleadsr.h
@@ -213,21 +218,6 @@ bsesequencer_SSE_la_LIBADD    = $(bseseq
 bsesequencer_SSE_la_CFLAGS    = $(SSE_PLUGIN_CFLAGS)
 
 
-## C Plugin davorgan
-EXTRA_HEADERS      += davorgan.h
-$(srcdir)/davorgan.c: davorgan.h
-plugin_FPU_ltlibs += davorgan.FPU.la
-davorgan_FPU_la_SOURCES = davorgan.c
-davorgan_FPU_la_LDFLAGS = -module $(plugins_ldflags)
-davorgan_FPU_la_LIBADD  = $(plugins_libs)
-davorgan_FPU_la_CFLAGS    = $(FPU_PLUGIN_CFLAGS)
-plugin_SSE_ltlibs   += davorgan.SSE.la
-davorgan_SSE_la_SOURCES   = $(davorgan_FPU_la_SOURCES)
-davorgan_SSE_la_LDFLAGS   = $(davorgan_FPU_la_LDFLAGS)
-davorgan_SSE_la_LIBADD    = $(davorgan_FPU_la_LIBADD)
-davorgan_SSE_la_CFLAGS    = $(SSE_PLUGIN_CFLAGS)
-
-
 ## C Plugin davxtalstrings
 EXTRA_HEADERS      += davxtalstrings.h
 $(srcdir)/davxtalstrings.c: davxtalstrings.h
Index: plugins/Makefile.am
===================================================================
--- plugins/Makefile.am	(revision 4335)
+++ plugins/Makefile.am	(working copy)
@@ -27,6 +27,7 @@ idl_plugins = $(strip			\
 	+++davplugins 			\
 	davbassfilter.idl		\
 	davchorus.idl			\
+	davorgan.idl			\
 )
 EXTRA_HEADERS += $(filter-out +++%, $(idl_plugins))
 # setup generation of C++ plugins from idl files
@@ -48,7 +49,6 @@ cglob_plugins = $(strip		\
 	bsemixer.[hc]		\
 	bsemult.[hc]		\
 	bsesequencer.[hc]	\
-	davorgan.[hc]		\
 	davxtalstrings.[hc]	\
 	davsyndrum.[hc]		\
 	davcanyondelay.[hc]	\
