[beast/devel: 22/26] PLUGINS: compile BseFreeVerbCpp as C++ resident type



commit 2d15e4963e510d33bd6d9ec30a6a1ee80830bea3
Author: Tim Janik <timj gnu org>
Date:   Tue Dec 18 03:14:01 2012 +0100

    PLUGINS: compile BseFreeVerbCpp as C++ resident type

 plugins/freeverb/Makefile.am                       |    2 +-
 plugins/freeverb/{bsefreeverb.c => bsefreeverb.cc} |   40 +++++++++----------
 plugins/freeverb/bsefreeverb.h                     |    2 +-
 po/POTSCAN                                         |    2 +-
 4 files changed, 22 insertions(+), 24 deletions(-)
---
diff --git a/plugins/freeverb/Makefile.am b/plugins/freeverb/Makefile.am
index 99f3164..7d32ce5 100644
--- a/plugins/freeverb/Makefile.am
+++ b/plugins/freeverb/Makefile.am
@@ -9,7 +9,7 @@ INCLUDES += -I$(top_srcdir) -I. $(BSE_CFLAGS) -DG_LOG_DOMAIN="\"$(strip $(basena
 # install plugins under:
 plugindir = $(bseplugindir)
 
-freeverb_la_SOURCES = allpass.cpp comb.cpp revmodel.cpp bsefreeverbcpp.cpp bsefreeverb.c
+freeverb_la_SOURCES = allpass.cpp comb.cpp revmodel.cpp bsefreeverbcpp.cpp bsefreeverb.cc
 freeverb_la_LDFLAGS = -module -avoid-version
 freeverb_la_LIBADD  = $(top_builddir)/bse/libbse.la $(BSE_LIBS) -lm
 
diff --git a/plugins/freeverb/bsefreeverb.c b/plugins/freeverb/bsefreeverb.cc
similarity index 89%
rename from plugins/freeverb/bsefreeverb.c
rename to plugins/freeverb/bsefreeverb.cc
index 4935700..982e2b1 100644
--- a/plugins/freeverb/bsefreeverb.c
+++ b/plugins/freeverb/bsefreeverb.cc
@@ -17,6 +17,7 @@
 #include "bsefreeverb.h"
 
 #include <bse/bseengine.h>
+#include <bse/bsecxxplugin.hh>
 
 
 /* --- properties --- */
@@ -33,7 +34,7 @@ enum
 
 /* --- prototypes --- */
 static void	bse_free_verb_init		(BseFreeVerb		*self);
-static void	bse_free_verb_class_init	(BseFreeVerbClass	*class);
+static void	bse_free_verb_class_init	(BseFreeVerbClass	*klass);
 static void	bse_free_verb_set_property	(GObject		*object,
 						 guint			 param_id,
 						 const GValue		*value,
@@ -47,16 +48,12 @@ static void	bse_free_verb_context_create	(BseSource		*source,
 						 BseTrans		*trans);
 static void	bse_free_verb_update_modules	(BseFreeVerb		*self);
 
-
-/* --- Export to BSE --- */
+// == Type Registration ==
 #include "../icons/reverb.c"
-BSE_REGISTER_OBJECT (BseFreeVerb, BseSource, "/Modules/Filters/Free Verb", "",
-                     "BseFreeVerb - Free, studio-quality reverb (SOURCE CODE in the public domain) "
-                     "Written by Jezar at Dreampoint - http://www.dreampoint.co.uk";,
-                     reverb_icon,
-                     bse_free_verb_class_init, NULL, bse_free_verb_init);
-BSE_DEFINE_EXPORTS ();
-
+BSE_RESIDENT_TYPE_DEF (BseFreeVerb, bse_free_verb, N_("Filters/Free Verb"),
+                       "BseFreeVerb - Free, studio-quality reverb (SOURCE CODE in the public domain) "
+                       "Written by Jezar at Dreampoint - http://www.dreampoint.co.uk";,
+                       reverb_icon);
 
 /* --- variables --- */
 static gpointer        parent_class = NULL;
@@ -64,16 +61,16 @@ static gpointer        parent_class = NULL;
 
 /* --- functions --- */
 static void
-bse_free_verb_class_init (BseFreeVerbClass *class)
+bse_free_verb_class_init (BseFreeVerbClass *klass)
 {
-  GObjectClass *gobject_class = G_OBJECT_CLASS (class);
-  BseObjectClass *object_class = BSE_OBJECT_CLASS (class);
-  BseSourceClass *source_class = BSE_SOURCE_CLASS (class);
-  BseFreeVerbConstants *constants = &class->constants;
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+  BseObjectClass *object_class = BSE_OBJECT_CLASS (klass);
+  BseSourceClass *source_class = BSE_SOURCE_CLASS (klass);
+  BseFreeVerbConstants *constants = &klass->constants;
   BseFreeVerbConfig defaults;
   guint channel;
   
-  parent_class = g_type_class_peek_parent (class);
+  parent_class = g_type_class_peek_parent (klass);
   
   gobject_class->set_property = bse_free_verb_set_property;
   gobject_class->get_property = bse_free_verb_get_property;
@@ -122,6 +119,7 @@ bse_free_verb_class_init (BseFreeVerbClass *class)
   channel = bse_source_class_add_ichannel (source_class, "right-audio-in", _("Right Audio In"), _("Right Input"));
   channel = bse_source_class_add_ochannel (source_class, "left-audio-out", _("Left Audio Out"), _("Left Output"));
   channel = bse_source_class_add_ochannel (source_class, "right-audio-out", _("Right Audio Out"), _("Right Output"));
+  (void) channel;
 }
 
 static void
@@ -203,8 +201,8 @@ static void
 free_verb_access (BseModule *module,
 		  gpointer   data)
 {
-  BseFreeVerbCpp *cpp = module->user_data;
-  BseFreeVerbConfig *config = data;
+  BseFreeVerbCpp *cpp = (BseFreeVerbCpp*) module->user_data;
+  BseFreeVerbConfig *config = (BseFreeVerbConfig*) data;
 
   /* this runs in the Gsl Engine threads */
   bse_free_verb_cpp_configure (cpp, config);
@@ -228,7 +226,7 @@ static void
 free_verb_process (BseModule *module,
 		   guint      n_values)
 {
-  BseFreeVerbCpp *cpp = module->user_data;
+  BseFreeVerbCpp *cpp = (BseFreeVerbCpp*) module->user_data;
   const gfloat *ileft = BSE_MODULE_IBUFFER (module, BSE_FREE_VERB_ICHANNEL_LEFT);
   const gfloat *iright = BSE_MODULE_IBUFFER (module, BSE_FREE_VERB_ICHANNEL_RIGHT);
   gfloat *oleft = BSE_MODULE_OBUFFER (module, BSE_FREE_VERB_OCHANNEL_LEFT);
@@ -240,7 +238,7 @@ free_verb_process (BseModule *module,
 static void
 free_verb_reset (BseModule *module)
 {
-  BseFreeVerbCpp *cpp = module->user_data;
+  BseFreeVerbCpp *cpp = (BseFreeVerbCpp*) module->user_data;
   BseFreeVerbConfig config;
 
   bse_free_verb_cpp_restore_config (cpp, &config);
@@ -254,7 +252,7 @@ static void
 free_verb_destroy (gpointer        data,
 		   const BseModuleClass *klass)
 {
-  BseFreeVerbCpp *cpp = data;
+  BseFreeVerbCpp *cpp = (BseFreeVerbCpp*) data;
 
   bse_free_verb_cpp_destroy (cpp);
   g_free (cpp);
diff --git a/plugins/freeverb/bsefreeverb.h b/plugins/freeverb/bsefreeverb.h
index f145635..52a6e4b 100644
--- a/plugins/freeverb/bsefreeverb.h
+++ b/plugins/freeverb/bsefreeverb.h
@@ -26,7 +26,7 @@
 G_BEGIN_DECLS
 
 /* --- type macros --- */
-#define BSE_TYPE_FREE_VERB              (BSE_EXPORT_TYPE_ID (BseFreeVerb))
+#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))
diff --git a/po/POTSCAN b/po/POTSCAN
index ed82cb5..3ffeb0f 100644
--- a/po/POTSCAN
+++ b/po/POTSCAN
@@ -136,7 +136,7 @@ plugins/davchorus.idl
 plugins/davorgan.idl
 plugins/davsyndrum.cc
 plugins/davxtalstrings.cc
-plugins/freeverb/bsefreeverb.c
+plugins/freeverb/bsefreeverb.cc
 plugins/standardguspatchenvelope.idl
 plugins/standardsaturator.idl
 sfi/sfidl-parser.hh



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