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 |