[beast/devel: 19/26] PLUGINS: compile DavXtalStrings as C++ resident type



commit f04f1e3dc2efe2931e10f288ee7723fbdf2b3d69
Author: Tim Janik <timj gnu org>
Date:   Tue Dec 18 03:01:47 2012 +0100

    PLUGINS: compile DavXtalStrings as C++ resident type

 plugins/Makefile.am                             |    5 +-
 plugins/Makefile.plugins                        |   15 -------
 plugins/{davxtalstrings.c => davxtalstrings.cc} |   46 ++++++++++-------------
 plugins/davxtalstrings.h                        |    2 +-
 po/POTSCAN                                      |    2 +-
 5 files changed, 24 insertions(+), 46 deletions(-)
---
diff --git a/plugins/Makefile.am b/plugins/Makefile.am
index 7b6e245..debe05a 100644
--- a/plugins/Makefile.am
+++ b/plugins/Makefile.am
@@ -36,9 +36,9 @@ SFIDL_INC = --nostdinc -I$(top_srcdir) -I$(top_builddir)
 
 # == C++ Plugins ==
 cxx_plugin_headers = bseadder.h  bseatandistort.h  bsesimpleadsr.h  bsemixer.h  bsemult.h  bsesequencer.h  bseiirfilter.h	\
-		     davcanyondelay.h  davsyndrum.h
+		     davcanyondelay.h  davsyndrum.h  davxtalstrings.h
 cxx_plugin_sources = bseadder.cc bseatandistort.cc bsesimpleadsr.cc bsemixer.cc bsemult.cc bsesequencer.cc bseiirfilter.cc	\
-		     davcanyondelay.cc davsyndrum.cc
+		     davcanyondelay.cc davsyndrum.cc davxtalstrings.cc
 cxx_plugin_extra   = bsesimpleadsr-aux.cc
 EXTRA_DIST        += $(cxx_plugin_headers) $(cxx_plugin_extra)
 cxxplugins_FPU_la_SOURCES  = $(cxx_plugin_sources)
@@ -58,7 +58,6 @@ UNPORTED = $(strip		\
 	davguitar.[hc]		\
 )
 cglob_plugins = $(strip		\
-	davxtalstrings.[hc]	\
 )
 EXTRA_DIST += $(strip \
         $(EXTRA_HEADERS) \
diff --git a/plugins/Makefile.plugins b/plugins/Makefile.plugins
index 655a531..11441cd 100644
--- a/plugins/Makefile.plugins
+++ b/plugins/Makefile.plugins
@@ -111,18 +111,3 @@ davplugins_FPU_la_SOURCES += davchorus.cc
 $(srcdir)/davorgan.cc: davorgan.genidl.hh # davplugins
 plugins_built_sources      += davorgan.genidl.hh
 davplugins_FPU_la_SOURCES += davorgan.cc
-
-
-## C Plugin davxtalstrings
-EXTRA_HEADERS      += davxtalstrings.h
-$(srcdir)/davxtalstrings.c: davxtalstrings.h
-plugin_FPU_ltlibs += davxtalstrings.FPU.la
-davxtalstrings_FPU_la_SOURCES = davxtalstrings.c
-davxtalstrings_FPU_la_LDFLAGS = -module $(plugins_ldflags)
-davxtalstrings_FPU_la_LIBADD  = $(plugins_libs)
-davxtalstrings_FPU_la_CFLAGS    = $(FPU_PLUGIN_CFLAGS)
-plugin_SSE_ltlibs   += davxtalstrings.SSE.la
-davxtalstrings_SSE_la_SOURCES   = $(davxtalstrings_FPU_la_SOURCES)
-davxtalstrings_SSE_la_LDFLAGS   = $(davxtalstrings_FPU_la_LDFLAGS)
-davxtalstrings_SSE_la_LIBADD    = $(davxtalstrings_FPU_la_LIBADD)
-davxtalstrings_SSE_la_CFLAGS    = $(SSE_PLUGIN_CFLAGS)
diff --git a/plugins/davxtalstrings.c b/plugins/davxtalstrings.cc
similarity index 94%
rename from plugins/davxtalstrings.c
rename to plugins/davxtalstrings.cc
index 0560e29..591a363 100644
--- a/plugins/davxtalstrings.c
+++ b/plugins/davxtalstrings.cc
@@ -23,7 +23,7 @@
  * expired in May of 2004.
  */
 #include "davxtalstrings.h"
-
+#include <bse/bsecxxplugin.hh>
 #include <bse/bseengine.h>
 #include <bse/bsemathsignal.h>
 #include <bse/bsemain.h>
@@ -49,7 +49,7 @@ enum
 
 /* --- prototypes --- */
 static void	   dav_xtal_strings_init	     (DavXtalStrings	   *self);
-static void	   dav_xtal_strings_class_init	     (DavXtalStringsClass  *class);
+static void	   dav_xtal_strings_class_init	     (DavXtalStringsClass  *klass);
 static void	   dav_xtal_strings_set_property     (GObject              *object,
 						      guint                 param_id,
 						      const GValue         *value,
@@ -65,17 +65,13 @@ static void	   dav_xtal_strings_context_create   (BseSource		   *source,
 static void	   dav_xtal_strings_update_modules   (DavXtalStrings	   *self,
 						      gboolean		    trigger_now);
 
-
-/* --- Export to BSE --- */
+// == Type Registration ==
 #include "./icons/strings.c"
-BSE_REGISTER_OBJECT (DavXtalStrings, BseSource, "/Modules/Audio Sources/XtalStrings", "",
-                     "DavXtalStrings is a plucked string synthesizer, using the "
-                     "Karplus-Strong Algorithm. Commercial use of this module "
-                     "until 2004 requires a license from Stanford University.",
-                     strings_icon,
-                     dav_xtal_strings_class_init, NULL, dav_xtal_strings_init);
-BSE_DEFINE_EXPORTS ();
-
+BSE_RESIDENT_TYPE_DEF (DavXtalStrings, dav_xtal_strings, N_("Audio Sources/XtalStrings"),
+                       "DavXtalStrings is a plucked string synthesizer, using the "
+                       "Karplus-Strong Algorithm. Commercial use of this module "
+                       "until 2004 requires a license from Stanford University.",
+                       strings_icon);
 
 /* --- variables --- */
 static gpointer	       parent_class = NULL;
@@ -83,14 +79,14 @@ static gpointer	       parent_class = NULL;
 
 /* --- functions --- */
 static void
-dav_xtal_strings_class_init (DavXtalStringsClass *class)
+dav_xtal_strings_class_init (DavXtalStringsClass *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_id;
   
-  parent_class = g_type_class_peek_parent (class);
+  parent_class = g_type_class_peek_parent (klass);
   
   gobject_class->set_property = dav_xtal_strings_set_property;
   gobject_class->get_property = dav_xtal_strings_get_property;
@@ -352,9 +348,6 @@ static inline void
 xmod_trigger (XtalStringsModule *xmod,
 	      gdouble            untransposed_trigger_freq)
 {
-  guint i;
-  guint pivot;
-
   /* calculate transposed trigger frequency; the "real frequency" that will
    * be played, including detuning and transpose operations
    */
@@ -372,7 +365,8 @@ xmod_trigger (XtalStringsModule *xmod,
   xmod->damping_factor = calc_factor (trigger_freq, xmod->tparams.note_decay);
   
   /* Create envelope. */
-  pivot = xmod->size / 5;
+  int pivot = xmod->size / 5;
+  int i;
   for (i = 0; i <= pivot; i++)
     xmod->string[i] = ((float) i) / pivot;
   for (; i < xmod->size; i++)
@@ -397,7 +391,7 @@ static void
 xmod_process (BseModule *module,
 	      guint      n_values)
 {
-  XtalStringsModule *xmod = module->user_data;
+  XtalStringsModule *xmod = (XtalStringsModule*) module->user_data;
   const gfloat *freq_in, *trigger_in = BSE_MODULE_IBUFFER (module, DAV_XTAL_STRINGS_ICHANNEL_TRIGGER);
   gfloat *wave_out = BSE_MODULE_OBUFFER (module, DAV_XTAL_STRINGS_OCHANNEL_MONO);
   gint32 pos2;
@@ -460,7 +454,7 @@ xmod_process (BseModule *module,
 static void
 xmod_reset (BseModule *module)
 {
-  XtalStringsModule *xmod = module->user_data;
+  XtalStringsModule *xmod = (XtalStringsModule*) module->user_data;
   
   /* this function is called whenever we need to start from scratch */
   memset (xmod->string, 0, STRING_LENGTH () * sizeof (xmod->string[0]));
@@ -477,7 +471,7 @@ static void
 xmod_free (gpointer        data,
 	   const BseModuleClass *klass)
 {
-  XtalStringsModule *xmod = data;
+  XtalStringsModule *xmod = (XtalStringsModule*) data;
   
   g_free (xmod->string);
   g_free (xmod);
@@ -523,8 +517,8 @@ static void
 xmod_access (BseModule *module,
 	     gpointer   data)
 {
-  XtalStringsModule *xmod = module->user_data;
-  DavXtalStringsParams *params = data;
+  XtalStringsModule *xmod = (XtalStringsModule*) module->user_data;
+  DavXtalStringsParams *params = (DavXtalStringsParams*) data;
   
   xmod->tparams = *params;
   if (params->trigger_now)
diff --git a/plugins/davxtalstrings.h b/plugins/davxtalstrings.h
index 54397b4..23a6033 100644
--- a/plugins/davxtalstrings.h
+++ b/plugins/davxtalstrings.h
@@ -25,7 +25,7 @@ extern "C" {
 #endif /* __cplusplus */
 
 /* --- object type macros --- */
-#define DAV_TYPE_XTAL_STRINGS		   (BSE_EXPORT_TYPE_ID (DavXtalStrings))
+#define DAV_TYPE_XTAL_STRINGS		   (dav_xtal_strings_get_type())
 #define DAV_XTAL_STRINGS(object)	   (G_TYPE_CHECK_INSTANCE_CAST ((object), DAV_TYPE_XTAL_STRINGS, DavXtalStrings))
 #define DAV_XTAL_STRINGS_CLASS(class)	   (G_TYPE_CHECK_CLASS_CAST ((class), DAV_TYPE_XTAL_STRINGS, DavXtalStringsClass))
 #define DAV_IS_XTAL_STRINGS(object)	   (G_TYPE_CHECK_INSTANCE_TYPE ((object), DAV_TYPE_XTAL_STRINGS))
diff --git a/po/POTSCAN b/po/POTSCAN
index a0a4728..ed82cb5 100644
--- a/po/POTSCAN
+++ b/po/POTSCAN
@@ -135,7 +135,7 @@ plugins/davchorus.idl
 # plugins/davguitar.c
 plugins/davorgan.idl
 plugins/davsyndrum.cc
-plugins/davxtalstrings.c
+plugins/davxtalstrings.cc
 plugins/freeverb/bsefreeverb.c
 plugins/standardguspatchenvelope.idl
 plugins/standardsaturator.idl



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