[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