summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2019-11-08 01:42:06 +0100
committerRobin Gareus <robin@gareus.org>2020-04-16 16:47:13 +0200
commit2d4e125802039a824dc6d295d76fe0e558b3960e (patch)
tree5d2154f9b44558c05380d07c94f410ff76f951d5 /libs
parentdaf9fe25509de4360296f711ad0359b01750f70f (diff)
Prefer std::string for `print_parameter` API
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/ardour/plugin.h2
-rw-r--r--libs/ardour/ardour/vst_plugin.h2
-rw-r--r--libs/ardour/plugin_insert.cc7
-rw-r--r--libs/ardour/vst_plugin.cc10
4 files changed, 11 insertions, 10 deletions
diff --git a/libs/ardour/ardour/plugin.h b/libs/ardour/ardour/plugin.h
index 7ffbc1fdf9..7396cb5299 100644
--- a/libs/ardour/ardour/plugin.h
+++ b/libs/ardour/ardour/plugin.h
@@ -110,7 +110,7 @@ public:
virtual std::string describe_parameter (Evoral::Parameter) = 0;
virtual std::string state_node_name () const = 0;
- virtual bool print_parameter (uint32_t, char*, uint32_t len) const { return false; }
+ virtual bool print_parameter (uint32_t, std::string&) const { return false; }
virtual bool parameter_is_audio (uint32_t) const = 0;
virtual bool parameter_is_control (uint32_t) const = 0;
diff --git a/libs/ardour/ardour/vst_plugin.h b/libs/ardour/ardour/vst_plugin.h
index 730084b36a..2f22095332 100644
--- a/libs/ardour/ardour/vst_plugin.h
+++ b/libs/ardour/ardour/vst_plugin.h
@@ -87,7 +87,7 @@ public:
const char * maker () const;
int32_t version () const;
uint32_t parameter_count () const;
- bool print_parameter (uint32_t, char*, uint32_t len) const;
+ bool print_parameter (uint32_t, std::string&) const;
bool has_editor () const;
diff --git a/libs/ardour/plugin_insert.cc b/libs/ardour/plugin_insert.cc
index 7a98b874e0..430fc181aa 100644
--- a/libs/ardour/plugin_insert.cc
+++ b/libs/ardour/plugin_insert.cc
@@ -3037,10 +3037,9 @@ PluginInsert::PluginControl::get_user_string () const
{
boost::shared_ptr<Plugin> plugin = _plugin->plugin (0);
if (plugin) {
- char buf[64];
- if (plugin->print_parameter (parameter().id(), buf, sizeof(buf))) {
- assert (strlen (buf) > 0);
- return std::string (buf);
+ std::string pp;
+ if (plugin->print_parameter (parameter().id(), pp) && pp.size () > 0) {
+ return pp;
}
}
return AutomationControl::get_user_string ();
diff --git a/libs/ardour/vst_plugin.cc b/libs/ardour/vst_plugin.cc
index 8d8d46e090..2d5579b965 100644
--- a/libs/ardour/vst_plugin.cc
+++ b/libs/ardour/vst_plugin.cc
@@ -810,9 +810,10 @@ VSTPlugin::has_editor () const
}
bool
-VSTPlugin::print_parameter (uint32_t param, char *buf, uint32_t len) const
+VSTPlugin::print_parameter (uint32_t param, std::string& rv) const
{
- char *first_nonws;
+ char buf[64];
+ size_t len = sizeof(buf);
assert (len > VestigeMaxShortLabelLen);
memset (buf, 0, len);
@@ -824,9 +825,9 @@ VSTPlugin::print_parameter (uint32_t param, char *buf, uint32_t len) const
buf[len - 1] = '\0';
- first_nonws = buf;
+ char* first_nonws = buf;
while (*first_nonws && isspace (*first_nonws)) {
- first_nonws++;
+ ++first_nonws;
}
if (*first_nonws == '\0') {
@@ -845,6 +846,7 @@ VSTPlugin::print_parameter (uint32_t param, char *buf, uint32_t len) const
strncat (buf, lbl.c_str(), strlen (buf) - 1);
}
+ rv = std::string (buf);
return true;
}