[SCM] calf/master: + LV2: String port - avoid redundant configure calls, remove printfs

js at users.alioth.debian.org js at users.alioth.debian.org
Tue May 7 15:38:44 UTC 2013


The following commit has been merged in the master branch:
commit 92cc0a370cd965bdc543fa175dcb94ad5fb072a5
Author: Krzysztof Foltman <wdev at foltman.com>
Date:   Mon Dec 8 22:32:45 2008 +0000

    + LV2: String port - avoid redundant configure calls, remove printfs

diff --git a/src/calf/lv2wrap.h b/src/calf/lv2wrap.h
index 7b794a5..79aad9e 100644
--- a/src/calf/lv2wrap.h
+++ b/src/calf/lv2wrap.h
@@ -61,7 +61,7 @@ struct lv2_instance: public plugin_ctl_iface, public Module
         set_srate = true;
         srate_to_set = 44100;
         get_message_context_parameters(message_params);
-        printf("message params %d\n", (int)message_params.size());
+        // printf("message params %d\n", (int)message_params.size());
     }
     virtual parameter_properties *get_param_props(int param_no)
     {
@@ -120,7 +120,8 @@ struct lv2_instance: public plugin_ctl_iface, public Module
         {
             int pn = message_params[i];
             parameter_properties &pp = *get_param_props(pn);
-            if ((pp.flags & PF_TYPEMASK) == PF_STRING) {
+            if ((pp.flags & PF_TYPEMASK) == PF_STRING
+                && (((LV2_String_Data *)Module::params[pn])->flags & LV2_STRING_DATA_CHANGED_FLAG)) {
                 printf("Calling configure on %s\n", pp.short_name);
                 configure(pp.short_name, ((LV2_String_Data *)Module::params[pn])->data);
             }
@@ -312,7 +313,6 @@ struct lv2_wrapper
         delete mod;
     }
     static const void *cb_ext_data(const char *URI) {
-        fprintf(stderr, "%s\n", URI);
         if (!strcmp(URI, "http://foltman.com/ns/calf-plugin-instance"))
             return &calf_descriptor;
         if (!strcmp(URI, LV2_CONTEXT_MESSAGE))
diff --git a/src/calf/modules_synths.h b/src/calf/modules_synths.h
index 775c58b..6b29b6a 100644
--- a/src/calf/modules_synths.h
+++ b/src/calf/modules_synths.h
@@ -248,6 +248,9 @@ public:
     
     char *configure(const char *key, const char *value);
     void send_configures(send_configure_iface *);
+    void message_run(uint32_t *output_ports) { 
+        // silence a default printf (which is kind of a warning about unhandled message_run)
+    }
 };
 
 };
diff --git a/src/lv2gui.cpp b/src/lv2gui.cpp
index ef54ee7..bc98bf7 100644
--- a/src/lv2gui.cpp
+++ b/src/lv2gui.cpp
@@ -120,6 +120,8 @@ struct plugin_proxy: public plugin_ctl_iface, public plugin_metadata_proxy
     
     virtual char *configure(const char *key, const char *value)
     {
+        if (!send)
+            return NULL;
         map<string, int>::iterator i = params_by_name.find(key);
         if (i == params_by_name.end())
         {
@@ -134,7 +136,6 @@ struct plugin_proxy: public plugin_ctl_iface, public plugin_metadata_proxy
         data.flags = 0;
         data.pad = 0;
         
-        printf("write port\n");
         int idx = i->second;
         if (string_port_uri) {
             write_function(controller, idx + get_param_port_offset(), sizeof(LV2_String_Data), string_port_uri, &data);
@@ -245,20 +246,20 @@ void gui_cleanup(LV2UI_Handle handle)
 void gui_port_event(LV2UI_Handle handle, uint32_t port, uint32_t buffer_size, uint32_t format, const void *buffer)
 {
     plugin_gui *gui = (plugin_gui *)handle;
+    plugin_proxy *proxy = dynamic_cast<plugin_proxy *>(gui->plugin);
+    assert(proxy);
     float v = *(float *)buffer;
     port -= gui->plugin->get_param_port_offset();
     if (port >= (uint32_t)gui->plugin->get_param_count())
         return;
     if ((gui->plugin->get_param_props(port)->flags & PF_TYPEMASK) == PF_STRING)
     {
-        printf("port event: %s\n", ((LV2_String_Data *)buffer)->data);
+        scope_assign<bool> _a_(proxy->send, false);
         gui->plugin->configure(gui->plugin->get_param_props(port)->short_name, ((LV2_String_Data *)buffer)->data);
         return;
     }
     if (fabs(gui->plugin->get_param_value(port) - v) < 0.00001)
         return;
-    plugin_proxy *proxy = dynamic_cast<plugin_proxy *>(gui->plugin);
-    assert(proxy);
     {
         scope_assign<bool> _a_(proxy->send, false);
         gui->set_param_value(port, v);

-- 
calf audio plugins packaging



More information about the pkg-multimedia-commits mailing list