View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002434 | ardour | bugs | public | 2008-10-28 12:05 | 2020-04-19 20:13 |
Reporter | nowhiskey | Assigned To | paul | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Product Version | SVN/2.0-ongoing | ||||
Summary | 0002434: plugins displayed twice in the plugin manager | ||||
Description | -create new session -open the plugin manager ( on the master track or any other created track, pre or post fader) -now try to brows for b.e. '4-band parametric filter' -in the search line type '4' -all the plugins whose name contains '4' are shown twice -now type '-' ( for 4-parametric...) -the plugin ('4-band parametric filter') is shown twice this happens with every other plugin too. cheers, doc | ||||
Tags | No tags attached. | ||||
|
This happens when the LADSPA_PATH environment variable refers to a directory that is also in the standard LADSPA path defined in libs/ardour/plugin_manager.cc. This was introduced by svn 3978, "make LADSPA_PATH augment the standard LADSPA search path, not replace it". Here's a patch that adds the standard locations to ladspa_path only if it doesn't already contain them, which cures the bug. |
2008-11-06 20:02
|
ladspa-path-dedupe.patch (1,513 bytes)
Index: libs/ardour/plugin_manager.cc =================================================================== --- libs/ardour/plugin_manager.cc (revision 4097) +++ libs/ardour/plugin_manager.cc (working copy) @@ -150,15 +150,40 @@ PluginManager::ladspa_refresh () { _ladspa_plugin_info.clear (); - static const char *standard_path = "/usr/local/lib64/ladspa:/usr/local/lib/ladspa:/usr/lib64/ladspa:/usr/lib/ladspa:/Library/Audio/Plug-Ins/LADSPA"; + static const char *standard_paths[] = { + "/usr/local/lib64/ladspa", + "/usr/local/lib/ladspa", + "/usr/lib64/ladspa", + "/usr/lib/ladspa", + "/Library/Audio/Plug-Ins/LADSPA", + "" + }; + /* allow LADSPA_PATH to augment, not override standard locations */ - if (ladspa_path.empty()) { - ladspa_path = standard_path; - } else { + /* Only add standard locations to ladspa_path if it doesn't + * already contain them. Check for trailing '/'s too. + */ + + int i; + for (i = 0; standard_paths[i][0]; i++) { + size_t found = ladspa_path.find(standard_paths[i]); + if (found != ladspa_path.npos) { + switch (ladspa_path[found + strlen(standard_paths[i])]) { + case ':' : + case '\0': + continue; + case '/' : + if (ladspa_path[found + strlen(standard_paths[i]) + 1] == ':' || + ladspa_path[found + strlen(standard_paths[i]) + 1] == '\0') { + continue; + } + } + } ladspa_path += ":"; - ladspa_path += standard_path; + ladspa_path += standard_paths[i]; + } ladspa_discover_from_path (ladspa_path); |
|
3.0 doesn't suffer from this bug, but it also doesn't have the "make LADSPA_PATH augment the standard LADSPA search path, not replace it" change. Anyway, here's another patch which makes that change for 3.0 and incorporates the fix for the bug as well. |
2008-11-06 20:07
|
ladspa-path-dedupe-3.0.patch (1,387 bytes)
Index: libs/ardour/plugin_manager.cc =================================================================== --- libs/ardour/plugin_manager.cc (revision 4022) +++ libs/ardour/plugin_manager.cc (working copy) @@ -155,8 +155,39 @@ { _ladspa_plugin_info.clear (); - if (ladspa_path.length() == 0) { - ladspa_path = "/usr/local/lib64/ladspa:/usr/local/lib/ladspa:/usr/lib64/ladspa:/usr/lib/ladspa:/Library/Audio/Plug-Ins/LADSPA"; + static const char *standard_paths[] = { + "/usr/local/lib64/ladspa", + "/usr/local/lib/ladspa", + "/usr/lib64/ladspa", + "/usr/lib/ladspa", + "/Library/Audio/Plug-Ins/LADSPA", + "" + }; + + /* allow LADSPA_PATH to augment, not override standard locations */ + + /* Only add standard locations to ladspa_path if it doesn't + * already contain them. Check for trailing '/'s too. + */ + + int i; + for (i = 0; standard_paths[i][0]; i++) { + size_t found = ladspa_path.find(standard_paths[i]); + if (found != ladspa_path.npos) { + switch (ladspa_path[found + strlen(standard_paths[i])]) { + case ':' : + case '\0': + continue; + case '/' : + if (ladspa_path[found + strlen(standard_paths[i]) + 1] == ':' || + ladspa_path[found + strlen(standard_paths[i]) + 1] == '\0') { + continue; + } + } + } + ladspa_path += ":"; + ladspa_path += standard_paths[i]; + } ladspa_discover_from_path (ladspa_path); |
|
applying this patch to ongoing-rev4098 makes ardour working in proper way again. cheers, doc |
2008-11-07 11:24
|
ladspa-path-dedupe2.patch (1,570 bytes)
Index: libs/ardour/plugin_manager.cc =================================================================== --- libs/ardour/plugin_manager.cc (revision 4104) +++ libs/ardour/plugin_manager.cc (working copy) @@ -150,15 +150,42 @@ PluginManager::ladspa_refresh () { _ladspa_plugin_info.clear (); - static const char *standard_path = "/usr/local/lib64/ladspa:/usr/local/lib/ladspa:/usr/lib64/ladspa:/usr/lib/ladspa:/Library/Audio/Plug-Ins/LADSPA"; + static const char *standard_paths[] = { + "/usr/local/lib64/ladspa", + "/usr/local/lib/ladspa", + "/usr/lib64/ladspa", + "/usr/lib/ladspa", + "/Library/Audio/Plug-Ins/LADSPA", + "" + }; + /* allow LADSPA_PATH to augment, not override standard locations */ - if (ladspa_path.empty()) { - ladspa_path = standard_path; - } else { - ladspa_path += ":"; - ladspa_path += standard_path; + /* Only add standard locations to ladspa_path if it doesn't + * already contain them. Check for trailing '/'s too. + */ + + int i; + for (i = 0; standard_paths[i][0]; i++) { + size_t found = ladspa_path.find(standard_paths[i]); + if (found != ladspa_path.npos) { + switch (ladspa_path[found + strlen(standard_paths[i])]) { + case ':' : + case '\0': + continue; + case '/' : + if (ladspa_path[found + strlen(standard_paths[i]) + 1] == ':' || + ladspa_path[found + strlen(standard_paths[i]) + 1] == '\0') { + continue; + } + } + } + if (!ladspa_path.empty()) + ladspa_path += ":"; + + ladspa_path += standard_paths[i]; + } ladspa_discover_from_path (ladspa_path); |
2008-11-07 11:25
|
ladspa-path-dedupe2-3.0.patch (1,419 bytes)
Index: libs/ardour/plugin_manager.cc =================================================================== --- libs/ardour/plugin_manager.cc (revision 4097) +++ libs/ardour/plugin_manager.cc (working copy) @@ -155,8 +155,41 @@ { _ladspa_plugin_info.clear (); - if (ladspa_path.length() == 0) { - ladspa_path = "/usr/local/lib64/ladspa:/usr/local/lib/ladspa:/usr/lib64/ladspa:/usr/lib/ladspa:/Library/Audio/Plug-Ins/LADSPA"; + static const char *standard_paths[] = { + "/usr/local/lib64/ladspa", + "/usr/local/lib/ladspa", + "/usr/lib64/ladspa", + "/usr/lib/ladspa", + "/Library/Audio/Plug-Ins/LADSPA", + "" + }; + + /* allow LADSPA_PATH to augment, not override standard locations */ + + /* Only add standard locations to ladspa_path if it doesn't + * already contain them. Check for trailing '/'s too. + */ + + int i; + for (i = 0; standard_paths[i][0]; i++) { + size_t found = ladspa_path.find(standard_paths[i]); + if (found != ladspa_path.npos) { + switch (ladspa_path[found + strlen(standard_paths[i])]) { + case ':' : + case '\0': + continue; + case '/' : + if (ladspa_path[found + strlen(standard_paths[i]) + 1] == ':' || + ladspa_path[found + strlen(standard_paths[i]) + 1] == '\0') { + continue; + } + } + } + if (!ladspa_path.empty()) + ladspa_path += ":"; + + ladspa_path += standard_paths[i]; + } ladspa_discover_from_path (ladspa_path); |
|
And here's a patch that should actually work when LADSPA_PATH is empty, too... |
|
Assigned to Paul to check the patches. Seablade |
|
2.0 patch committed at rev 4253. |
|
Issue has been closed automatically, by Trigger Close Plugin. Feel free to re-open with additional information if you think the issue is not resolved. |
Date Modified | Username | Field | Change |
---|---|---|---|
2008-10-28 12:05 | nowhiskey | New Issue | |
2008-11-06 20:02 | colinf | Note Added: 0005223 | |
2008-11-06 20:02 | colinf | File Added: ladspa-path-dedupe.patch | |
2008-11-06 20:07 | colinf | Note Added: 0005224 | |
2008-11-06 20:07 | colinf | File Added: ladspa-path-dedupe-3.0.patch | |
2008-11-06 20:41 | nowhiskey | Note Added: 0005225 | |
2008-11-07 11:24 | colinf | File Added: ladspa-path-dedupe2.patch | |
2008-11-07 11:25 | colinf | File Added: ladspa-path-dedupe2-3.0.patch | |
2008-11-07 11:26 | colinf | Note Added: 0005227 | |
2008-11-24 11:05 | seablade | Status | new => assigned |
2008-11-24 11:05 | seablade | Assigned To | => paul |
2008-11-24 11:05 | seablade | Note Added: 0005323 | |
2008-11-25 11:53 | paul | cost | => 0.00 |
2008-11-25 11:53 | paul | Status | assigned => resolved |
2008-11-25 11:53 | paul | Resolution | open => fixed |
2008-11-25 11:53 | paul | Note Added: 0005366 | |
2010-04-24 10:28 | cth103 | Category | bugs => bugs2 |
2010-04-24 10:31 | cth103 | Category | bugs2 => bugs |
2020-04-19 20:13 | system | Note Added: 0021808 | |
2020-04-19 20:13 | system | Status | resolved => closed |