[beast: 6/12] BSE: move BseSNet::auto-activate (and from BseSong) to SNet.auto_activate



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]