[beast: 6/12] BSE: move BseSNet::auto-activate (and from BseSong) to SNet.auto_activate
- From: Tim Janik <timj src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [beast: 6/12] BSE: move BseSNet::auto-activate (and from BseSong) to SNet.auto_activate
- Date: Thu, 24 Sep 2015 20:09:45 +0000 (UTC)
commit 9f5af840975467435393ece43856debf84945e4c
Author: Tim Janik <timj gnu org>
Date: Tue Sep 22 19:36:30 2015 +0200
BSE: move BseSNet::auto-activate (and from BseSong) to SNet.auto_activate
bse/bseapi.idl | 7 ++++-
bse/bsesnet.cc | 77 +++++++++++++------------------------------------------
bse/bsesnet.hh | 2 +
bse/bsesong.cc | 6 ----
4 files changed, 26 insertions(+), 66 deletions(-)
---
diff --git a/bse/bseapi.idl b/bse/bseapi.idl
index 7e9b591..70a4695 100644
--- a/bse/bseapi.idl
+++ b/bse/bseapi.idl
@@ -456,6 +456,12 @@ interface SNet : Super {
Source create_source (String module_type); ///< Insert a new module into a synthesis network.
ErrorType remove_source (Source module); ///< Remove an existing module from its synthesis
network.
signal void port_unregistered (); ///< Signal that notifies when a named output port is
unregistered.
+ group _("Playback Settings") {
+ bool auto_activate = Bool (_("Auto Activate"),
+ _("Automatic activation only needs to be enabled for synthesis networks
that don't "
+ "use virtual ports for their input and output"),
+ STANDARD, false);
+ };
};
/// Customizable synthesis (filter) network container.
@@ -573,7 +579,6 @@ interface Song : SNet {
// group _("MIDI Instrument") {
// CSynth pnet = Object ("Postprocessor", "Synthesis network to be used as postprocessor",
STANDARD);
// };
- // bool auto_activate = Bool ("Auto Activate", "", STORAGE, TRUE);
// bool loop_enabled = Bool ("Loop Enabled", "", STORAGE, FALSE);
// int32 loop_left = Range ("Loop Left", "", STORAGE, -1, MAXINT31, 384, -1);
// int32 loop_right = Range ("Loop Right", "", STORAGE, -1, MAXINT31, 384, -1);
diff --git a/bse/bsesnet.cc b/bse/bsesnet.cc
index 19ab6f2..84bf69a 100644
--- a/bse/bsesnet.cc
+++ b/bse/bsesnet.cc
@@ -26,14 +26,6 @@ typedef struct
guint parent_context;
} ContextData;
-/* --- parameters --- */
-enum
-{
- PARAM_0,
- PARAM_AUTO_ACTIVATE
-};
-
-
/* --- prototypes --- */
static void bse_snet_add_item (BseContainer *container,
BseItem *item);
@@ -172,47 +164,6 @@ bse_snet_queue_port_unregistered (BseSNet *snet)
}
static void
-bse_snet_set_property (GObject *object,
- guint param_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- BseSNet *self = BSE_SNET (object);
-
- switch (param_id)
- {
- case PARAM_AUTO_ACTIVATE:
- if (sfi_value_get_bool (value))
- BSE_OBJECT_SET_FLAGS (self, BSE_SUPER_FLAG_NEEDS_CONTEXT);
- else
- BSE_OBJECT_UNSET_FLAGS (self, BSE_SUPER_FLAG_NEEDS_CONTEXT);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (self, param_id, pspec);
- break;
- }
-}
-
-static void
-bse_snet_get_property (GObject *object,
- guint param_id,
- GValue *value,
- GParamSpec *pspec)
-{
- BseSNet *self = BSE_SNET (object);
-
- switch (param_id)
- {
- case PARAM_AUTO_ACTIVATE:
- sfi_value_set_bool (value, BSE_SUPER_NEEDS_CONTEXT (self));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (self, param_id, pspec);
- break;
- }
-}
-
-static void
bse_snet_add_item (BseContainer *container,
BseItem *item)
{
@@ -906,8 +857,6 @@ bse_snet_class_init (BseSNetClass *klass)
parent_class = (GTypeClass*) g_type_class_peek_parent (klass);
- gobject_class->set_property = bse_snet_set_property;
- gobject_class->get_property = bse_snet_get_property;
gobject_class->dispose = bse_snet_dispose;
gobject_class->finalize = bse_snet_finalize;
@@ -923,14 +872,7 @@ bse_snet_class_init (BseSNetClass *klass)
container_class->context_children = snet_context_children;
container_class->release_children = bse_snet_release_children;
- bse_object_class_add_param (object_class, "Playback Settings",
- PARAM_AUTO_ACTIVATE,
- sfi_pspec_bool ("auto_activate", "Auto Activate",
- "Automatic activation only needs to be enabled for synthesis
networks "
- "that don't use virtual ports for their input and output",
- FALSE, SFI_PARAM_STANDARD ":skip-default"));
- signal_port_unregistered = bse_object_class_add_signal (object_class, "port_unregistered",
- G_TYPE_NONE, 0);
+ signal_port_unregistered = bse_object_class_add_signal (object_class, "port_unregistered", G_TYPE_NONE, 0);
}
BSE_BUILTIN_TYPE (BseSNet)
@@ -966,6 +908,23 @@ SNetImpl::supports_user_synths ()
return BSE_SNET_USER_SYNTH (self);
}
+bool
+SNetImpl::auto_activate () const
+{
+ BseSNet *self = const_cast<SNetImpl*> (this)->as<BseSNet*>();
+ return BSE_SUPER_NEEDS_CONTEXT (self);
+}
+
+void
+SNetImpl::auto_activate (bool v)
+{
+ BseSNet *self = as<BseSNet*>();
+ if (v)
+ BSE_OBJECT_SET_FLAGS (self, BSE_SUPER_FLAG_NEEDS_CONTEXT);
+ else
+ BSE_OBJECT_UNSET_FLAGS (self, BSE_SUPER_FLAG_NEEDS_CONTEXT);
+}
+
ErrorType
SNetImpl::can_create_source (const String &module_type)
{
diff --git a/bse/bsesnet.hh b/bse/bsesnet.hh
index 8dc99fe..2020398 100644
--- a/bse/bsesnet.hh
+++ b/bse/bsesnet.hh
@@ -112,6 +112,8 @@ protected:
public:
explicit SNetImpl (BseObject*);
virtual bool supports_user_synths () override;
+ virtual bool auto_activate () const override;
+ virtual void auto_activate (bool) override;
virtual ErrorType can_create_source (const String &module_type) override;
virtual SourceIfaceP create_source (const String &module_type) override;
virtual ErrorType remove_source (SourceIface &module) override;
diff --git a/bse/bsesong.cc b/bse/bsesong.cc
index 5dbc6a5..a539b79 100644
--- a/bse/bsesong.cc
+++ b/bse/bsesong.cc
@@ -25,7 +25,6 @@ enum
PROP_NUMERATOR,
PROP_DENOMINATOR,
PROP_PNET,
- PROP_AUTO_ACTIVATE,
PROP_LOOP_ENABLED,
PROP_LOOP_LEFT,
PROP_LOOP_RIGHT,
@@ -756,11 +755,6 @@ bse_song_class_init (BseSongClass *klass)
PROP_PNET,
bse_param_spec_object ("pnet", _("Postprocessor"), _("Synthesis network to be
used as postprocessor"),
BSE_TYPE_CSYNTH, SFI_PARAM_STANDARD ":unprepared"));
- bse_object_class_add_param (object_class, _("Playback Settings"),
- PROP_AUTO_ACTIVATE,
- sfi_pspec_bool ("auto_activate", NULL, NULL,
- TRUE, /* change default */
- /* override parent property: 0 */ "w"));
bse_object_class_add_param (object_class, _("Looping"),
PROP_LOOP_ENABLED,
sfi_pspec_bool ("loop_enabled", NULL, NULL,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]