From 2d4e125802039a824dc6d295d76fe0e558b3960e Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Fri, 8 Nov 2019 01:42:06 +0100 Subject: Prefer std::string for `print_parameter` API --- libs/ardour/ardour/plugin.h | 2 +- libs/ardour/ardour/vst_plugin.h | 2 +- libs/ardour/plugin_insert.cc | 7 +++---- libs/ardour/vst_plugin.cc | 10 ++++++---- 4 files changed, 11 insertions(+), 10 deletions(-) (limited to 'libs') 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 (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; } -- cgit v1.2.3