fix plugin-creator display for non LADSPA plugins

e.g. "u-he"
This commit is contained in:
Robin Gareus 2016-05-01 16:27:11 +02:00
parent e6b95a3d65
commit 13b9476f40

View file

@ -404,18 +404,23 @@ PluginSelector::refiller (const PluginInfoList& plugs, const::std::string& filte
string creator = (*i)->creator; string creator = (*i)->creator;
string::size_type pos = 0; string::size_type pos = 0;
/* stupid LADSPA creator strings */ if ((*i)->type == ARDOUR::LADSPA) {
/* stupid LADSPA creator strings */
#ifdef PLATFORM_WINDOWS #ifdef PLATFORM_WINDOWS
while (pos < creator.length() && creator[pos] > -2 && creator[pos] < 256 && (isalnum (creator[pos]) || isspace (creator[pos]))) ++pos; while (pos < creator.length() && creator[pos] > -2 && creator[pos] < 256 && (isalnum (creator[pos]) || isspace (creator[pos]))) ++pos;
#else #else
while (pos < creator.length() && (isalnum (creator[pos]) || isspace (creator[pos]))) ++pos; while (pos < creator.length() && (isalnum (creator[pos]) || isspace (creator[pos]))) ++pos;
#endif #endif
} else {
pos = creator.length ();
}
// If there were too few characters to create a // If there were too few characters to create a
// meaningful name, mark this creator as 'Unknown' // meaningful name, mark this creator as 'Unknown'
if (creator.length()<2 || pos<3) if (creator.length() < 2 || pos < 3) {
creator = "Unknown"; creator = "Unknown";
else } else{
creator = creator.substr (0, pos); creator = creator.substr (0, pos);
}
newrow[plugin_columns.creator] = creator; newrow[plugin_columns.creator] = creator;
@ -791,23 +796,25 @@ PluginSelector::create_by_creator_menu (ARDOUR::PluginInfoList& all_plugs)
if (manager.get_status (*i) == PluginManager::Hidden) continue; if (manager.get_status (*i) == PluginManager::Hidden) continue;
string creator = (*i)->creator; string creator = (*i)->creator;
/* stupid LADSPA creator strings */
string::size_type pos = 0; string::size_type pos = 0;
#ifdef PLATFORM_WINDOWS
while (pos < creator.length() && creator[pos]>(-2) && creator[pos]<256 && (isprint (creator[pos]))) ++pos;
#else
while (pos < creator.length() && (isalnum (creator[pos]) || isspace (creator[pos]))) ++pos;
#endif
// Check to see if we found any invalid characters. if ((*i)->type == ARDOUR::LADSPA) {
if (creator.length() != pos) { /* stupid LADSPA creator strings */
// If there were too few characters to create a #ifdef PLATFORM_WINDOWS
// meaningful name, mark this creator as 'Unknown' while (pos < creator.length() && creator[pos] > -2 && creator[pos] < 256 && (isalnum (creator[pos]) || isspace (creator[pos]))) ++pos;
if (pos<3) #else
creator = "Unknown?"; while (pos < creator.length() && (isalnum (creator[pos]) || isspace (creator[pos]))) ++pos;
else #endif
creator = creator.substr (0, pos); } else {
pos = creator.length ();
}
// If there were too few characters to create a
// meaningful name, mark this creator as 'Unknown'
if (creator.length() < 2 || pos < 3) {
creator = "Unknown";
} else{
creator = creator.substr (0, pos);
} }
SubmenuMap::iterator x; SubmenuMap::iterator x;