[beast/devel: 14/26] PLUGINS: compile BseSequencer as C++ resident type
- From: Tim Janik <timj src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [beast/devel: 14/26] PLUGINS: compile BseSequencer as C++ resident type
- Date: Tue, 18 Dec 2012 02:45:09 +0000 (UTC)
commit b5216c1999adc17c945253705c1604a1146c134a
Author: Tim Janik <timj gnu org>
Date: Tue Dec 18 02:18:11 2012 +0100
PLUGINS: compile BseSequencer as C++ resident type
plugins/Makefile.am | 5 +--
plugins/Makefile.plugins | 15 --------
plugins/{bsesequencer.c => bsesequencer.cc} | 49 ++++++++++++--------------
plugins/bsesequencer.h | 2 +-
po/POTSCAN | 2 +-
5 files changed, 27 insertions(+), 46 deletions(-)
---
diff --git a/plugins/Makefile.am b/plugins/Makefile.am
index 43d8377..8dfe482 100644
--- a/plugins/Makefile.am
+++ b/plugins/Makefile.am
@@ -35,8 +35,8 @@ 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
-cxx_plugin_sources = bseadder.cc bseatandistort.cc bsesimpleadsr.cc bsemixer.cc bsemult.cc
+cxx_plugin_headers = bseadder.h bseatandistort.h bsesimpleadsr.h bsemixer.h bsemult.h bsesequencer.h
+cxx_plugin_sources = bseadder.cc bseatandistort.cc bsesimpleadsr.cc bsemixer.cc bsemult.cc bsesequencer.cc
cxx_plugin_extra = bsesimpleadsr-aux.cc
EXTRA_DIST += $(cxx_plugin_headers) $(cxx_plugin_extra)
cxxplugins_FPU_la_SOURCES = $(cxx_plugin_sources)
@@ -57,7 +57,6 @@ UNPORTED = $(strip \
)
cglob_plugins = $(strip \
bseiirfilter.[hc] \
- bsesequencer.[hc] \
davxtalstrings.[hc] \
davsyndrum.[hc] \
davcanyondelay.[hc] \
diff --git a/plugins/Makefile.plugins b/plugins/Makefile.plugins
index 3fc2f09..b100642 100644
--- a/plugins/Makefile.plugins
+++ b/plugins/Makefile.plugins
@@ -128,21 +128,6 @@ bseiirfilter_SSE_la_LIBADD = $(bseiirfilter_FPU_la_LIBADD)
bseiirfilter_SSE_la_CFLAGS = $(SSE_PLUGIN_CFLAGS)
-## C Plugin bsesequencer
-EXTRA_HEADERS += bsesequencer.h
-$(srcdir)/bsesequencer.c: bsesequencer.h
-plugin_FPU_ltlibs += bsesequencer.FPU.la
-bsesequencer_FPU_la_SOURCES = bsesequencer.c
-bsesequencer_FPU_la_LDFLAGS = -module $(plugins_ldflags)
-bsesequencer_FPU_la_LIBADD = $(plugins_libs)
-bsesequencer_FPU_la_CFLAGS = $(FPU_PLUGIN_CFLAGS)
-plugin_SSE_ltlibs += bsesequencer.SSE.la
-bsesequencer_SSE_la_SOURCES = $(bsesequencer_FPU_la_SOURCES)
-bsesequencer_SSE_la_LDFLAGS = $(bsesequencer_FPU_la_LDFLAGS)
-bsesequencer_SSE_la_LIBADD = $(bsesequencer_FPU_la_LIBADD)
-bsesequencer_SSE_la_CFLAGS = $(SSE_PLUGIN_CFLAGS)
-
-
## C Plugin davxtalstrings
EXTRA_HEADERS += davxtalstrings.h
$(srcdir)/davxtalstrings.c: davxtalstrings.h
diff --git a/plugins/bsesequencer.c b/plugins/bsesequencer.cc
similarity index 90%
rename from plugins/bsesequencer.c
rename to plugins/bsesequencer.cc
index f977c49..4b1da39 100644
--- a/plugins/bsesequencer.c
+++ b/plugins/bsesequencer.cc
@@ -17,6 +17,7 @@
#include "bsesequencer.h"
#include <bse/bseengine.h>
+#include <bse/bsecxxplugin.hh>
enum {
@@ -30,7 +31,7 @@ enum {
/* --- prototypes --- */
static void bse_sequencer_init (BseSequencer *sequencer);
-static void bse_sequencer_class_init (BseSequencerClass *class);
+static void bse_sequencer_class_init (BseSequencerClass *klass);
static void bse_sequencer_finalize (GObject *object);
static void bse_sequencer_set_property (BseSequencer *sequencer,
guint param_id,
@@ -47,15 +48,11 @@ static void bse_sequencer_context_create (BseSource *source,
static void bse_sequencer_reset (BseSource *source);
static void bse_sequencer_update_modules (BseSequencer *seq);
-
-/* --- Export to BSE --- */
+// == Type Registration ==
#include "./icons/sequencer.c"
-BSE_REGISTER_OBJECT (BseSequencer, BseSource, "/Modules/Other Sources/Sequencer", "",
- "The Sequencer produces a frequency signal according to a sequence of notes",
- sequencer_icon,
- bse_sequencer_class_init, NULL, bse_sequencer_init);
-BSE_DEFINE_EXPORTS ();
-
+BSE_RESIDENT_TYPE_DEF (BseSequencer, bse_sequencer, N_("Other Sources/Sequencer"),
+ "The Sequencer produces a frequency signal according to a sequence of notes",
+ sequencer_icon);
/* --- variables --- */
static gpointer parent_class = NULL;
@@ -63,14 +60,14 @@ static gpointer parent_class = NULL;
/* --- functions --- */
static void
-bse_sequencer_class_init (BseSequencerClass *class)
+bse_sequencer_class_init (BseSequencerClass *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 ochannel;
- parent_class = g_type_class_peek_parent (class);
+ parent_class = g_type_class_peek_parent (klass);
gobject_class->set_property = (GObjectSetPropertyFunc) bse_sequencer_set_property;
gobject_class->get_property = (GObjectGetPropertyFunc) bse_sequencer_get_property;
@@ -139,16 +136,16 @@ bse_sequencer_set_property (BseSequencer *seq,
{
BseNoteSequence *sdata;
case PARAM_LENGTH:
- if (sfi_value_get_int (value) != bse_note_sequence_length (seq->sdata))
+ if (sfi_value_get_int (value) != (int) bse_note_sequence_length (seq->sdata))
{
bse_note_sequence_resize (seq->sdata, sfi_value_get_int (value));
bse_sequencer_update_modules (seq);
- g_object_notify (seq, "notes");
+ g_object_notify ((GObject*) seq, "notes");
}
break;
case PARAM_NOTES:
bse_note_sequence_free (seq->sdata);
- sdata = bse_value_get_boxed (value);
+ sdata = (BseNoteSequence*) bse_value_get_boxed (value);
if (sdata)
{
guint i, l, mnote = SFI_MAX_NOTE;
@@ -169,7 +166,7 @@ bse_sequencer_set_property (BseSequencer *seq,
seq->sdata->offset = SFI_NOTE_C (SFI_KAMMER_OCTAVE);
}
bse_sequencer_update_modules (seq);
- g_object_notify (seq, "length");
+ g_object_notify ((GObject*) seq, "length");
break;
case PARAM_COUNTER:
seq->counter = sfi_value_get_real (value);
@@ -250,9 +247,9 @@ static void
seq_access (BseModule *module,
gpointer data)
{
- SeqModule *smod = module->user_data;
- AccessData *d = data;
-
+ SeqModule *smod = (SeqModule*) module->user_data;
+ AccessData *d = (AccessData*) data;
+
smod->n_values = d->n_values;
smod->values = d->new_values;
smod->counter = d->counter;
@@ -265,8 +262,8 @@ seq_access (BseModule *module,
static void
seq_access_free (gpointer data)
{
- AccessData *d = data;
-
+ AccessData *d = (AccessData*) data;
+
g_free (d->old_values);
g_free (d);
}
@@ -298,7 +295,7 @@ static void
sequencer_process (BseModule *module,
guint n_values)
{
- SeqModule *smod = module->user_data;
+ SeqModule *smod = (SeqModule*) module->user_data;
gfloat *freq_out = BSE_MODULE_OBUFFER (module, BSE_SEQUENCER_OCHANNEL_FREQ);
gfloat *nsync_out = BSE_MODULE_OBUFFER (module, BSE_SEQUENCER_OCHANNEL_NOTE_SYNC);
gfloat *bound = freq_out + n_values;
@@ -347,13 +344,13 @@ bse_sequencer_context_create (BseSource *source,
sequencer_process, /* process */
NULL, /* process_defer */
NULL, /* reset */
- (gpointer) g_free, /* free */
+ (BseModuleFreeFunc) g_free, /* free */
BSE_COST_CHEAP, /* flags */
};
BseSequencer *seq = BSE_SEQUENCER (source);
SeqModule *smod = g_new0 (SeqModule, 1);
BseModule *module;
-
+
smod->n_values = seq->n_freq_values;
smod->values = seq->freq_values;
smod->counter = seq->counter / 1000.0 * bse_engine_sample_freq ();
diff --git a/plugins/bsesequencer.h b/plugins/bsesequencer.h
index 43131cf..fff112e 100644
--- a/plugins/bsesequencer.h
+++ b/plugins/bsesequencer.h
@@ -26,7 +26,7 @@ extern "C" {
/* --- object type macros --- */
-#define BSE_TYPE_SEQUENCER (BSE_EXPORT_TYPE_ID (BseSequencer))
+#define BSE_TYPE_SEQUENCER (bse_sequencer_get_type())
#define BSE_SEQUENCER(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_SEQUENCER, BseSequencer))
#define BSE_SEQUENCER_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), BSE_TYPE_SEQUENCER, BseSequencerClass))
#define BSE_IS_SEQUENCER(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), BSE_TYPE_SEQUENCER))
diff --git a/po/POTSCAN b/po/POTSCAN
index cd8ab18..67130eb 100644
--- a/po/POTSCAN
+++ b/po/POTSCAN
@@ -126,7 +126,7 @@ plugins/bsemixer.cc
plugins/bsemult.cc
plugins/bsenoise.idl
plugins/bsequantizer.idl
-plugins/bsesequencer.c
+plugins/bsesequencer.cc
plugins/bsesimpleadsr.cc
plugins/bsesummation.idl
plugins/davbassfilter.idl
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]