[SCM] gsequencer/master: added wishlist patches to enabled built-in effects in automation editor

jkraehemann-guest at users.alioth.debian.org jkraehemann-guest at users.alioth.debian.org
Thu Feb 2 07:08:42 UTC 2017


The following commit has been merged in the master branch:
commit 9e5c2972b8be250753be0e71cfb9cb27127eeedb
Author: Joël Krähemann <jkraehemann-guest at users.alioth.debian.org>
Date:   Thu Feb 2 08:07:28 2017 +0100

    added wishlist patches to enabled built-in effects in automation editor

diff --git a/debian/patches/series b/debian/patches/series
index bf4f16f..5b88c21 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,8 @@
+wish-volume-channel.patch
+wish-volume-audio-signal.patch
+wish-mute-channel.patch
+wish-mute-audio.patch
+wish-mute-audio-signal.patch
 fix-jack-midiin.patch
 fix-xorg-application-context.patch
 fix-thread-posix.patch
diff --git a/debian/patches/wish-mute-audio-signal.patch b/debian/patches/wish-mute-audio-signal.patch
new file mode 100644
index 0000000..3183188
--- /dev/null
+++ b/debian/patches/wish-mute-audio-signal.patch
@@ -0,0 +1,33 @@
+Description: This is a wishlist patch. It uses the modified AgsPort type of 
+ ags-mute recall in order to use the built-in effect by automation.
+Author: Joël Krähmann <jkraehemann at gmail.com>
+Applied-Upstream: 0.7.122.x, http://git.savannah.gnu.org/cgit/gsequencer.git
+Last-Update: 2017-02-02
+--- a/ags/audio/recall/ags_mute_audio_signal.c
++++ b/ags/audio/recall/ags_mute_audio_signal.c
+@@ -245,21 +245,21 @@
+   /* check channel */
+   mute_channel = AGS_MUTE_CHANNEL(AGS_RECALL_CHANNEL_RUN(recall->parent->parent)->recall_channel);
+ 
+-  g_value_init(&channel_value, G_TYPE_BOOLEAN);
++  g_value_init(&channel_value, G_TYPE_FLOAT);
+   ags_port_safe_read(mute_channel->muted,
+ 		     &channel_value);
+ 
+-  channel_muted = g_value_get_boolean(&channel_value);
++  channel_muted = (gboolean) g_value_get_float(&channel_value);
+   g_value_unset(&channel_value);
+ 
+   /* check audio */
+   mute_audio = AGS_MUTE_AUDIO(AGS_RECALL_CONTAINER(AGS_RECALL(mute_channel)->container)->recall_audio);
+ 
+-  g_value_init(&audio_value, G_TYPE_BOOLEAN);
++  g_value_init(&audio_value, G_TYPE_FLOAT);
+   ags_port_safe_read(mute_audio->muted,
+ 		     &audio_value);
+ 
+-  audio_muted = g_value_get_boolean(&audio_value);
++  audio_muted = (gboolean) g_value_get_float(&audio_value);
+   g_value_unset(&audio_value);
+ 
+   /* if not muted return */
diff --git a/debian/patches/wish-mute-audio.patch b/debian/patches/wish-mute-audio.patch
new file mode 100644
index 0000000..a03766f
--- /dev/null
+++ b/debian/patches/wish-mute-audio.patch
@@ -0,0 +1,128 @@
+Description: This is a wishlist patch. It modifies AgsPort type of ags-mute recall
+ in order to use the built-in effect by automation. Further it loads the automation
+ port during ags_automation_connect().
+Author: Joël Krähmann <jkraehemann at gmail.com>
+Applied-Upstream: 0.7.122.x, http://git.savannah.gnu.org/cgit/gsequencer.git
+Last-Update: 2017-02-02
+--- a/ags/audio/recall/ags_mute_audio.c
++++ b/ags/audio/recall/ags_mute_audio.c
+@@ -23,6 +23,8 @@
+ #include <ags/object/ags_mutable.h>
+ #include <ags/object/ags_plugin.h>
+ 
++#include <ags/plugin/ags_base_plugin.h>
++
+ void ags_mute_audio_class_init(AgsMuteAudioClass *mute_audio);
+ void ags_mute_audio_connectable_interface_init(AgsConnectableInterface *connectable);
+ void ags_mute_audio_mutable_interface_init(AgsMutableInterface *mutable);
+@@ -43,6 +45,8 @@
+ 
+ void ags_mute_audio_set_muted(AgsMutable *mutable, gboolean muted);
+ 
++static AgsPortDescriptor* ags_mute_audio_get_muted_port_descriptor();
++
+ /**
+  * SECTION:ags_mute_audio
+  * @short_description: mute audio 
+@@ -181,20 +185,26 @@
+ 
+   port = NULL;
+ 
++  /* muted */
+   mute_audio->muted = g_object_new(AGS_TYPE_PORT,
+ 				   "plugin-name\0", "ags-mute\0",
+ 				   "specifier\0", "./muted[0]\0",
+ 				   "control-port\0", "1/1\0",
+ 				   "port-value-is-pointer\0", FALSE,
+-				   "port-value-type\0", G_TYPE_BOOLEAN,
+-				   "port-value-size\0", sizeof(gboolean),
++				   "port-value-type\0", G_TYPE_FLOAT,
++				   "port-value-size\0", sizeof(gfloat),
+ 				   "port-value-length\0", 1,
+ 				   NULL);
+-  mute_audio->muted->port_value.ags_port_boolean = FALSE;
++  
++  mute_audio->muted->port_value.ags_port_float = (float) FALSE;
+ 
++  /* port descriptor */
++  mute_audio->muted->port_descriptor = ags_mute_audio_get_muted_port_descriptor();
++
++  /* add to port */
+   port = g_list_prepend(port, mute_audio->muted);
+ 
+-  /*  */
++  /* set port */
+   AGS_RECALL(mute_audio)->port = port;
+ }
+ 
+@@ -262,9 +272,20 @@
+ void
+ ags_mute_audio_connect(AgsConnectable *connectable)
+ {
+-  ags_mute_audio_parent_connectable_interface->connect(connectable);
++  AgsRecall *recall;
++  
++  recall = AGS_RECALL(connectable);
++  
++  if((AGS_RECALL_CONNECTED & (recall->flags)) != 0){
++    return;
++  }
+ 
+-  /* empty */
++  /* load automation */
++  ags_recall_load_automation(recall,
++			     g_list_copy(recall->port));
++
++  /* call parent */
++  ags_mute_audio_parent_connectable_interface->connect(connectable);
+ }
+ 
+ void
+@@ -311,12 +332,45 @@
+ {
+   GValue value = {0,};
+ 
+-  g_value_init(&value, G_TYPE_BOOLEAN);
+-  g_value_set_boolean(&value, muted);
++  g_value_init(&value, G_TYPE_FLOAT);
++  g_value_set_float(&value, (float) muted);
+ 
+   ags_port_safe_write(AGS_MUTE_AUDIO(mutable)->muted, &value);
+ }
+ 
++static AgsPortDescriptor*
++ags_mute_audio_get_muted_port_descriptor()
++{
++  static AgsPortDescriptor *port_descriptor = NULL;
++
++  if(port_descriptor == NULL){
++    port_descriptor = ags_port_descriptor_alloc();
++
++    port_descriptor->flags |= (AGS_PORT_DESCRIPTOR_INPUT |
++			       AGS_PORT_DESCRIPTOR_CONTROL |
++			       AGS_PORT_DESCRIPTOR_TOGGLED);
++
++    port_descriptor->port_index = 0;
++
++    /* range */
++    g_value_init(port_descriptor->default_value,
++		 G_TYPE_FLOAT);
++    g_value_init(port_descriptor->lower_value,
++		 G_TYPE_FLOAT);
++    g_value_init(port_descriptor->upper_value,
++		 G_TYPE_FLOAT);
++
++    g_value_set_float(port_descriptor->default_value,
++		      0.0);
++    g_value_set_float(port_descriptor->lower_value,
++		      0.0);
++    g_value_set_float(port_descriptor->upper_value,
++		      1.0);
++  }
++  
++  return(port_descriptor);
++}
++
+ /**
+  * ags_mute_audio_new:
+  *
diff --git a/debian/patches/wish-mute-channel.patch b/debian/patches/wish-mute-channel.patch
new file mode 100644
index 0000000..cd16244
--- /dev/null
+++ b/debian/patches/wish-mute-channel.patch
@@ -0,0 +1,127 @@
+Description: This is a wishlist patch. It modifies AgsPort type of ags-mute recall
+ in order to use the built-in effect by automation. Further it loads the automation
+ port during ags_automation_connect().
+Author: Joël Krähmann <jkraehemann at gmail.com>
+Applied-Upstream: 0.7.122.x, http://git.savannah.gnu.org/cgit/gsequencer.git
+Last-Update: 2017-02-02
+--- a/ags/audio/recall/ags_mute_channel.c
++++ b/ags/audio/recall/ags_mute_channel.c
+@@ -23,6 +23,8 @@
+ #include <ags/object/ags_mutable.h>
+ #include <ags/object/ags_plugin.h>
+ 
++#include <ags/plugin/ags_base_plugin.h>
++
+ void ags_mute_channel_class_init(AgsMuteChannelClass *mute_channel);
+ void ags_mute_channel_connectable_interface_init(AgsConnectableInterface *connectable);
+ void ags_mute_channel_mutable_interface_init(AgsMutableInterface *mutable);
+@@ -43,6 +45,8 @@
+ 
+ void ags_mute_channel_set_muted(AgsMutable *mutable, gboolean muted);
+ 
++static AgsPortDescriptor* ags_mute_channel_get_muted_port_descriptor();
++
+ /**
+  * SECTION:ags_mute_channel
+  * @short_description: mutes channel
+@@ -181,19 +185,26 @@
+ 
+   port = NULL;
+ 
++  /* muted */
+   mute_channel->muted = g_object_new(AGS_TYPE_PORT,
+ 				     "plugin-name\0", "ags-mute\0",
+ 				     "specifier\0", "./muted[0]\0",
+ 				     "control-port\0", "1/1\0",
+ 				     "port-value-is-pointer\0", FALSE,
+-				     "port-value-type\0", G_TYPE_BOOLEAN,
+-				     "port-value-size\0", sizeof(gboolean),
++				     "port-value-type\0", G_TYPE_FLOAT,
++				     "port-value-size\0", sizeof(gfloat),
+ 				     "port-value-length\0", 1,
+ 				     NULL);
+-  mute_channel->muted->port_value.ags_port_boolean = FALSE;
+ 
++  mute_channel->muted->port_value.ags_port_float = (float) FALSE;
++
++  /* port descriptor */
++  mute_channel->muted->port_descriptor = ags_mute_channel_get_muted_port_descriptor();
++
++  /* add to port */
+   port = g_list_prepend(port, mute_channel->muted);
+ 
++  /* set port */
+   AGS_RECALL(mute_channel)->port = port;
+ }
+ 
+@@ -260,9 +271,20 @@
+ void
+ ags_mute_channel_connect(AgsConnectable *connectable)
+ {
+-  ags_mute_channel_parent_connectable_interface->connect(connectable);
++  AgsRecall *recall;
++  
++  recall = AGS_RECALL(connectable);
++  
++  if((AGS_RECALL_CONNECTED & (recall->flags)) != 0){
++    return;
++  }
+ 
+-  /* empty */
++  /* load automation */
++  ags_recall_load_automation(recall,
++			     g_list_copy(recall->port));
++
++  /* call parent */
++  ags_mute_channel_parent_connectable_interface->connect(connectable);
+ }
+ 
+ void
+@@ -309,12 +331,45 @@
+ {
+   GValue value = {0,};
+ 
+-  g_value_init(&value, G_TYPE_BOOLEAN);
+-  g_value_set_boolean(&value, muted);
++  g_value_init(&value, G_TYPE_FLOAT);
++  g_value_set_float(&value, (float) muted);
+ 
+   ags_port_safe_write(AGS_MUTE_CHANNEL(mutable)->muted, &value);
+ }
+ 
++static AgsPortDescriptor*
++ags_mute_channel_get_muted_port_descriptor()
++{
++  static AgsPortDescriptor *port_descriptor = NULL;
++
++  if(port_descriptor == NULL){
++    port_descriptor = ags_port_descriptor_alloc();
++
++    port_descriptor->flags |= (AGS_PORT_DESCRIPTOR_INPUT |
++			       AGS_PORT_DESCRIPTOR_CONTROL |
++			       AGS_PORT_DESCRIPTOR_TOGGLED);
++
++    port_descriptor->port_index = 0;
++
++    /* range */
++    g_value_init(port_descriptor->default_value,
++		 G_TYPE_FLOAT);
++    g_value_init(port_descriptor->lower_value,
++		 G_TYPE_FLOAT);
++    g_value_init(port_descriptor->upper_value,
++		 G_TYPE_FLOAT);
++
++    g_value_set_float(port_descriptor->default_value,
++		      0.0);
++    g_value_set_float(port_descriptor->lower_value,
++		      0.0);
++    g_value_set_float(port_descriptor->upper_value,
++		      1.0);
++  }
++  
++  return(port_descriptor);
++}
++
+ /**
+  * ags_mute_channel_new:
+  *
diff --git a/debian/patches/wish-volume-audio-signal.patch b/debian/patches/wish-volume-audio-signal.patch
new file mode 100644
index 0000000..f04b570
--- /dev/null
+++ b/debian/patches/wish-volume-audio-signal.patch
@@ -0,0 +1,20 @@
+Description: This is a wishlist patch. It uses the modified AgsPort type of 
+ ags-volume recall in order to use the built-in effect by automation.
+Author: Joël Krähmann <jkraehemann at gmail.com>
+Applied-Upstream: 0.7.122.x, http://git.savannah.gnu.org/cgit/gsequencer.git
+Last-Update: 2017-02-02
+--- a/ags/audio/recall/ags_volume_audio_signal.c
++++ b/ags/audio/recall/ags_volume_audio_signal.c
+@@ -231,10 +231,10 @@
+     buffer = (signed short *) AGS_RECALL_AUDIO_SIGNAL(recall)->source->stream_current->data;
+     buffer_size = AGS_RECALL_AUDIO_SIGNAL(recall)->source->buffer_size;
+ 
+-    g_value_init(&value, G_TYPE_DOUBLE);
++    g_value_init(&value, G_TYPE_FLOAT);
+     ags_port_safe_read(volume_channel->volume, &value);
+ 
+-    volume = g_value_get_double(&value);
++    volume = g_value_get_float(&value);
+ 
+     for(i = 0; i < buffer_size; i++){
+       switch(AGS_RECALL_AUDIO_SIGNAL(recall)->source->format){
diff --git a/debian/patches/wish-volume-channel.patch b/debian/patches/wish-volume-channel.patch
new file mode 100644
index 0000000..1f74972
--- /dev/null
+++ b/debian/patches/wish-volume-channel.patch
@@ -0,0 +1,115 @@
+Description: This is a wishlist patch. It modifies AgsPort type of ags-volume recall
+ in order to use the built-in effect by automation. Further it loads the automation
+ port during ags_automation_connect().
+Author: Joël Krähmann <jkraehemann at gmail.com>
+Applied-Upstream: 0.7.122.x, http://git.savannah.gnu.org/cgit/gsequencer.git
+Last-Update: 2017-02-02
+--- a/ags/audio/recall/ags_volume_channel.c
++++ b/ags/audio/recall/ags_volume_channel.c
+@@ -20,9 +20,10 @@
+ #include <ags/audio/recall/ags_volume_channel.h>
+ 
+ #include <ags/object/ags_connectable.h>
+-
+ #include <ags/object/ags_plugin.h>
+ 
++#include <ags/plugin/ags_base_plugin.h>
++
+ void ags_volume_channel_class_init(AgsVolumeChannelClass *volume_channel);
+ void ags_volume_channel_connectable_interface_init(AgsConnectableInterface *connectable);
+ void ags_volume_channel_plugin_interface_init(AgsPluginInterface *plugin);
+@@ -40,6 +41,8 @@
+ void ags_volume_channel_set_ports(AgsPlugin *plugin, GList *port);
+ void ags_volume_channel_finalize(GObject *gobject);
+ 
++static AgsPortDescriptor* ags_volume_channel_get_volume_port_descriptor();
++
+ /**
+  * SECTION:ags_volume_channel
+  * @short_description: volumes channel
+@@ -174,15 +177,20 @@
+ 					"specifier\0", "./volume[0]\0",
+ 					"control-port\0", "1/1\0",
+ 					"port-value-is-pointer\0", FALSE,
+-					"port-value-type\0", G_TYPE_DOUBLE,
+-					"port-value-size\0", sizeof(gdouble),
++					"port-value-type\0", G_TYPE_FLOAT,
++					"port-value-size\0", sizeof(gfloat),
+ 					"port-value-length", 1,
+ 					NULL);
+ 
+-  volume_channel->volume->port_value.ags_port_double = 1.0;
++  volume_channel->volume->port_value.ags_port_float = 1.0;
++
++  /* port descriptor */
++  volume_channel->volume->port_descriptor = ags_volume_channel_get_volume_port_descriptor();
+ 
++  /* add to port */  
+   port = g_list_prepend(port, volume_channel->volume);
+ 
++  /* set port */
+   AGS_RECALL(volume_channel)->port = port;
+ }
+ 
+@@ -249,9 +257,20 @@
+ void
+ ags_volume_channel_connect(AgsConnectable *connectable)
+ {
+-  ags_volume_channel_parent_connectable_interface->connect(connectable);
++  AgsRecall *recall;
++  
++  recall = AGS_RECALL(connectable);
++  
++  if((AGS_RECALL_CONNECTED & (recall->flags)) != 0){
++    return;
++  }
+ 
+-  /* empty */
++  /* load automation */
++  ags_recall_load_automation(recall,
++			     g_list_copy(recall->port));
++
++  /* call parent */
++  ags_volume_channel_parent_connectable_interface->connect(connectable);
+ }
+ 
+ void
+@@ -293,6 +312,38 @@
+   G_OBJECT_CLASS(ags_volume_channel_parent_class)->finalize(gobject);
+ }
+ 
++static AgsPortDescriptor*
++ags_volume_channel_get_volume_port_descriptor()
++{
++  static AgsPortDescriptor *port_descriptor = NULL;
++
++  if(port_descriptor == NULL){
++    port_descriptor = ags_port_descriptor_alloc();
++
++    port_descriptor->flags |= (AGS_PORT_DESCRIPTOR_INPUT |
++			       AGS_PORT_DESCRIPTOR_CONTROL);
++
++    port_descriptor->port_index = 0;
++
++    /* range */
++    g_value_init(port_descriptor->default_value,
++		 G_TYPE_FLOAT);
++    g_value_init(port_descriptor->lower_value,
++		 G_TYPE_FLOAT);
++    g_value_init(port_descriptor->upper_value,
++		 G_TYPE_FLOAT);
++
++    g_value_set_float(port_descriptor->default_value,
++		      1.0);
++    g_value_set_float(port_descriptor->lower_value,
++		      0.0);
++    g_value_set_float(port_descriptor->upper_value,
++		      2.0);
++  }
++  
++  return(port_descriptor);
++}
++
+ /**
+  * ags_volume_channel_new:
+  *

-- 
gsequencer packaging



More information about the pkg-multimedia-commits mailing list