[SCM] calf/master: + Framework: change the way default values of configure variables are passed (via a static method returning a static array instead of a reset function) + DSSI: clear configure variables before loading the new preset (in case it's an old preset without variables)

js at users.alioth.debian.org js at users.alioth.debian.org
Tue May 7 15:37:30 UTC 2013


The following commit has been merged in the master branch:
commit 986b6fb40c82b516cf57de5e6204bd135912ffb1
Author: kfoltman <kfoltman at 78b06b96-2940-0410-b7fc-879d825d01d8>
Date:   Fri Aug 8 21:48:24 2008 +0000

    + Framework: change the way default values of configure variables are passed (via a static method returning a static array instead of a reset function)
    + DSSI: clear configure variables before loading the new preset (in case it's an old preset without variables)
    
    
    git-svn-id: https://calf.svn.sourceforge.net/svnroot/calf/trunk@263 78b06b96-2940-0410-b7fc-879d825d01d8

diff --git a/src/calf/giface.h b/src/calf/giface.h
index 28567b7..55004dd 100644
--- a/src/calf/giface.h
+++ b/src/calf/giface.h
@@ -317,7 +317,12 @@ struct ladspa_instance: public Module, public plugin_ctl_iface
     virtual void clear_preset() {
         for (int i=0; i < Module::param_count; i++)
             *Module::params[i] = Module::param_props[i].def_value;
-        Module::clear_configure_vars();
+        const char **p = Module::get_default_configure_vars();
+        if (p)
+        {
+            for(; p[0]; p += 2)
+                configure(p[0], p[1]);
+        }
     }
 };
 
diff --git a/src/calf/jackhost.h b/src/calf/jackhost.h
index baca210..96a7f5d 100644
--- a/src/calf/jackhost.h
+++ b/src/calf/jackhost.h
@@ -423,7 +423,13 @@ public:
     virtual void clear_preset() {
         for (int i=0; i < Module::param_count; i++)
             *module.params[i] = Module::param_props[i].def_value;
-        module.clear_configure_vars();
+        // This is never called in practice, at least for now
+        const char **p = Module::get_default_configure_vars();
+        if (p)
+        {
+            for(; p[0]; p += 2)
+                configure(p[0], p[1]);
+        }
     }
 };
 
diff --git a/src/calf/lv2wrap.h b/src/calf/lv2wrap.h
index b847e66..04534e7 100644
--- a/src/calf/lv2wrap.h
+++ b/src/calf/lv2wrap.h
@@ -87,9 +87,18 @@ struct lv2_instance: public Module, public plugin_ctl_iface
         Module::send_configures(sci);
     }
     virtual void clear_preset() {
+        // This is never called in practice, at least for now
+        // However, it will change when presets are implemented
         for (int i=0; i < Module::param_count; i++)
             *Module::params[i] = Module::param_props[i].def_value;
-        Module::clear_configure_vars();
+        /*
+        const char **p = Module::get_default_configure_vars();
+        if (p)
+        {
+            for(; p[0]; p += 2)
+                configure(p[0], p[1]);
+        }
+        */
     }
 };
 
diff --git a/src/calf/modules.h b/src/calf/modules.h
index 84680f6..d11b260 100644
--- a/src/calf/modules.h
+++ b/src/calf/modules.h
@@ -75,8 +75,8 @@ public:
     inline char *configure(const char *key, const char *value) { return NULL; }
     /// Send all understood configure vars
     inline void send_configures(send_configure_iface *sci) {}
-    /// Reset all configure vars to initial values
-    inline void clear_configure_vars() {}
+    /// Get all configure vars that are supposed to be set to initialize a preset
+    static inline const char **get_default_configure_vars() { return NULL; }
     /// Reset parameter values for epp:trigger type parameters (ones activated by oneshot push button instead of check box)
     inline void params_reset() {}
 };
diff --git a/src/calf/modules_synths.h b/src/calf/modules_synths.h
index 5bbdc85..47943bc 100644
--- a/src/calf/modules_synths.h
+++ b/src/calf/modules_synths.h
@@ -232,8 +232,6 @@ public:
     organ_audio_module()
     : drawbar_organ(&par_values)
     {
-        // that might be a bit early, but shouldn't matter in this particular case
-        clear_configure_vars();
     }
     static parameter_properties param_props[];
     static const char *get_gui_xml();
@@ -279,7 +277,7 @@ public:
     static plugin_command_info *get_commands();
     char *configure(const char *key, const char *value);
     void send_configures(send_configure_iface *);
-    void clear_configure_vars() { configure("map_curve", "2\n0 1\n1 1\n"); }
+    static const char **get_default_configure_vars();
 };
 
 };
diff --git a/src/dssigui.cpp b/src/dssigui.cpp
index 3fb9801..1536930 100644
--- a/src/dssigui.cpp
+++ b/src/dssigui.cpp
@@ -182,7 +182,12 @@ struct plugin_proxy: public plugin_proxy_base, public line_graph_iface
             sci->send_configure(i->first.c_str(), i->second.c_str());
     }
     void clear_preset() {
-        fprintf(stderr, "TODO: clear_preset (reset to init state) not implemented in DSSI GUIs\n");
+        const char **p = Module::get_default_configure_vars();
+        if (p)
+        {
+            for(; p[0]; p += 2)
+                configure(p[0], p[1]);
+        }
     }
 };
 
diff --git a/src/organ.cpp b/src/organ.cpp
index dcf37ab..241bd6b 100644
--- a/src/organ.cpp
+++ b/src/organ.cpp
@@ -1283,7 +1283,13 @@ void organ_audio_module::send_configures(send_configure_iface *sci)
 {
     sci->send_configure("map_curve", var_map_curve.c_str());
 }
-    
+
+const char **organ_audio_module::get_default_configure_vars()
+{
+    static const char *data[] = { "map_curve", "2\n0 1\n1 1\n", NULL };
+    return data;
+}
+
 plugin_command_info *organ_audio_module::get_commands()
 {
     static plugin_command_info cmds[] = {

-- 
calf audio plugins packaging



More information about the pkg-multimedia-commits mailing list