13
0

Prefer std::string for print_parameter API

This commit is contained in:
Robin Gareus 2019-11-08 01:42:06 +01:00
parent daf9fe2550
commit 2d4e125802
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04
4 changed files with 11 additions and 10 deletions

View File

@ -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;

View File

@ -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;

View File

@ -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 ();

View File

@ -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;
}