[beast/devel: 17/26] PLUGINS: compile DavCanyonDelay as C++ resident type



commit fc193ae330babb2dea17ce4dbee57af57968a372
Author: Tim Janik <timj gnu org>
Date:   Tue Dec 18 02:48:10 2012 +0100

    PLUGINS: compile DavCanyonDelay as C++ resident type

 plugins/Makefile.am                             |    7 ++--
 plugins/Makefile.plugins                        |   15 ---------
 plugins/{davcanyondelay.c => davcanyondelay.cc} |   39 ++++++++++------------
 plugins/davcanyondelay.h                        |    2 +-
 po/POTSCAN                                      |    2 +-
 5 files changed, 24 insertions(+), 41 deletions(-)
---
diff --git a/plugins/Makefile.am b/plugins/Makefile.am
index d0a427e..857a414 100644
--- a/plugins/Makefile.am
+++ b/plugins/Makefile.am
@@ -35,8 +35,10 @@ SFIDL_INC = --nostdinc -I$(top_srcdir) -I$(top_builddir)
 	$(SFIDL) --plugin  --macro $(<F) $(SFIDL_INC) -I$(top_builddir) $< > $@ || (rm $@ ; exit 1 )
 
 # == C++ Plugins ==
-cxx_plugin_headers = bseadder.h  bseatandistort.h  bsesimpleadsr.h  bsemixer.h  bsemult.h  bsesequencer.h  bseiirfilter.h
-cxx_plugin_sources = bseadder.cc bseatandistort.cc bsesimpleadsr.cc bsemixer.cc bsemult.cc bsesequencer.cc bseiirfilter.cc
+cxx_plugin_headers = bseadder.h  bseatandistort.h  bsesimpleadsr.h  bsemixer.h  bsemult.h  bsesequencer.h  bseiirfilter.h	\
+		     davcanyondelay.h
+cxx_plugin_sources = bseadder.cc bseatandistort.cc bsesimpleadsr.cc bsemixer.cc bsemult.cc bsesequencer.cc bseiirfilter.cc	\
+		     davcanyondelay.cc
 cxx_plugin_extra   = bsesimpleadsr-aux.cc
 EXTRA_DIST        += $(cxx_plugin_headers) $(cxx_plugin_extra)
 cxxplugins_FPU_la_SOURCES  = $(cxx_plugin_sources)
@@ -58,7 +60,6 @@ UNPORTED = $(strip		\
 cglob_plugins = $(strip		\
 	davxtalstrings.[hc]	\
 	davsyndrum.[hc]		\
-	davcanyondelay.[hc]	\
 )
 EXTRA_DIST += $(strip \
         $(EXTRA_HEADERS) \
diff --git a/plugins/Makefile.plugins b/plugins/Makefile.plugins
index 681a7f1..e812ae5 100644
--- a/plugins/Makefile.plugins
+++ b/plugins/Makefile.plugins
@@ -141,18 +141,3 @@ davsyndrum_SSE_la_SOURCES   = $(davsyndrum_FPU_la_SOURCES)
 davsyndrum_SSE_la_LDFLAGS   = $(davsyndrum_FPU_la_LDFLAGS)
 davsyndrum_SSE_la_LIBADD    = $(davsyndrum_FPU_la_LIBADD)
 davsyndrum_SSE_la_CFLAGS    = $(SSE_PLUGIN_CFLAGS)
-
-
-## C Plugin davcanyondelay
-EXTRA_HEADERS      += davcanyondelay.h
-$(srcdir)/davcanyondelay.c: davcanyondelay.h
-plugin_FPU_ltlibs += davcanyondelay.FPU.la
-davcanyondelay_FPU_la_SOURCES = davcanyondelay.c
-davcanyondelay_FPU_la_LDFLAGS = -module $(plugins_ldflags)
-davcanyondelay_FPU_la_LIBADD  = $(plugins_libs)
-davcanyondelay_FPU_la_CFLAGS    = $(FPU_PLUGIN_CFLAGS)
-plugin_SSE_ltlibs   += davcanyondelay.SSE.la
-davcanyondelay_SSE_la_SOURCES   = $(davcanyondelay_FPU_la_SOURCES)
-davcanyondelay_SSE_la_LDFLAGS   = $(davcanyondelay_FPU_la_LDFLAGS)
-davcanyondelay_SSE_la_LIBADD    = $(davcanyondelay_FPU_la_LIBADD)
-davcanyondelay_SSE_la_CFLAGS    = $(SSE_PLUGIN_CFLAGS)
diff --git a/plugins/davcanyondelay.c b/plugins/davcanyondelay.cc
similarity index 93%
rename from plugins/davcanyondelay.c
rename to plugins/davcanyondelay.cc
index cc6fbd2..046be31 100644
--- a/plugins/davcanyondelay.c
+++ b/plugins/davcanyondelay.cc
@@ -18,6 +18,7 @@
 #include "davcanyondelay.h"
 
 #include <bse/bseengine.h>
+#include <bse/bsecxxplugin.hh>
 #include <bse/bsemathsignal.h>
 #include <string.h>
 
@@ -37,7 +38,7 @@ enum
 
 /* --- prototypes --- */
 static void dav_canyon_delay_init           (DavCanyonDelay      *self);
-static void dav_canyon_delay_class_init     (DavCanyonDelayClass *class);
+static void dav_canyon_delay_class_init     (DavCanyonDelayClass *klass);
 static void dav_canyon_delay_set_property   (GObject             *object,
                                              guint                param_id,
                                              const GValue        *value,
@@ -52,15 +53,11 @@ static void dav_canyon_delay_context_create (BseSource           *source,
                                              BseTrans            *trans);
 static void dav_canyon_delay_update_modules (DavCanyonDelay      *self);
 
-
-/* --- Export to DAV --- */
+// == Type Registration ==
 #include "./icons/canyon.c"
-BSE_REGISTER_OBJECT (DavCanyonDelay, BseSource, "/Modules/Enhance/CanyonDelay", "",
-                     "DavCanyonDelay adds deep and long canyon-alike echos to stereo signals.",
-                     canyon_icon,
-                     dav_canyon_delay_class_init, NULL, dav_canyon_delay_init);
-BSE_DEFINE_EXPORTS ();
-
+BSE_RESIDENT_TYPE_DEF (DavCanyonDelay, dav_canyon_delay, N_("Enhance/CanyonDelay"),
+                       "DavCanyonDelay adds deep and long canyon-alike echos to stereo signals.",
+                       canyon_icon);
 
 /* --- variables --- */
 static gpointer          parent_class = NULL;
@@ -68,14 +65,14 @@ static gpointer          parent_class = NULL;
 
 /* --- functions --- */
 static void
-dav_canyon_delay_class_init (DavCanyonDelayClass *class)
+dav_canyon_delay_class_init (DavCanyonDelayClass *klass)
 {
-  GObjectClass *gobject_class = G_OBJECT_CLASS (class);
-  BseObjectClass *object_class = BSE_OBJECT_CLASS (class);
-  BseSourceClass *source_class = BSE_SOURCE_CLASS (class);
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+  BseObjectClass *object_class = BSE_OBJECT_CLASS (klass);
+  BseSourceClass *source_class = BSE_SOURCE_CLASS (klass);
   guint channel;
 
-  parent_class = g_type_class_peek_parent (class);
+  parent_class = g_type_class_peek_parent (klass);
   
   gobject_class->set_property = dav_canyon_delay_set_property;
   gobject_class->get_property = dav_canyon_delay_get_property;
@@ -158,11 +155,11 @@ dav_canyon_delay_set_property (GObject             *object,
       break;
     case PROP_FILTER_FREQ:
       self->filter_freq = sfi_value_get_real (value);
-      g_object_notify (self, "filter-note");
+      g_object_notify ((GObject*) self, "filter-note");
       break;
     case PROP_FILTER_NOTE:
       self->filter_freq = bse_note_to_freq (bse_item_current_musical_tuning (BSE_ITEM (self)), sfi_value_get_note (value));
-      g_object_notify (self, "filter-freq");
+      g_object_notify ((GObject*) self, "filter-freq");
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (self, param_id, pspec);
@@ -220,7 +217,7 @@ static void
 canyon_delay_process (BseModule *module,
                       guint      n_values)
 {
-  DavCanyonDelayModule *cmod = module->user_data;
+  DavCanyonDelayModule *cmod = (DavCanyonDelayModule*) module->user_data;
   const gfloat *left_in = BSE_MODULE_IBUFFER (module, DAV_CANYON_DELAY_ICHANNEL_LEFT);
   const gfloat *right_in = BSE_MODULE_IBUFFER (module, DAV_CANYON_DELAY_ICHANNEL_RIGHT);
   gfloat *left_out = BSE_MODULE_OBUFFER (module, DAV_CANYON_DELAY_OCHANNEL_LEFT);
@@ -272,7 +269,7 @@ canyon_delay_process (BseModule *module,
 static void
 canyon_delay_reset (BseModule *module)
 {
-  DavCanyonDelayModule *cmod = module->user_data;
+  DavCanyonDelayModule *cmod = (DavCanyonDelayModule*) module->user_data;
   cmod->pos = 0;
   cmod->accum_l = 0;
   cmod->accum_r = 0;
@@ -284,7 +281,7 @@ static void
 canyon_delay_free (gpointer        data,
                    const BseModuleClass *klass)
 {
-  DavCanyonDelayModule *cmod = data;
+  DavCanyonDelayModule *cmod = (DavCanyonDelayModule*) data;
   /* Free tables */
   g_free (cmod->data_l);
   g_free (cmod->data_r);
@@ -331,8 +328,8 @@ static void
 canyon_delay_access (BseModule *module,
                      gpointer   data)
 {
-  DavCanyonDelayModule *cmod = module->user_data;
-  DavCanyonDelayParams *params = data;
+  DavCanyonDelayModule *cmod = (DavCanyonDelayModule*) module->user_data;
+  DavCanyonDelayParams *params = (DavCanyonDelayParams*) data;
 
   cmod->params = *params;
 }
diff --git a/plugins/davcanyondelay.h b/plugins/davcanyondelay.h
index 7b2a26a..a15211e 100644
--- a/plugins/davcanyondelay.h
+++ b/plugins/davcanyondelay.h
@@ -23,7 +23,7 @@
 G_BEGIN_DECLS
 
 /* --- object type macros --- */
-#define DAV_TYPE_CANYON_DELAY              (BSE_EXPORT_TYPE_ID (DavCanyonDelay))
+#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))
diff --git a/po/POTSCAN b/po/POTSCAN
index 35d82e2..4073915 100644
--- a/po/POTSCAN
+++ b/po/POTSCAN
@@ -130,7 +130,7 @@ plugins/bsesequencer.cc
 plugins/bsesimpleadsr.cc
 plugins/bsesummation.idl
 plugins/davbassfilter.idl
-plugins/davcanyondelay.c
+plugins/davcanyondelay.cc
 plugins/davchorus.idl
 # plugins/davguitar.c
 plugins/davorgan.idl



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