[haiku-commits] Re: haiku: hrev49096 - src/add-ons/media/media-add-ons/vst_host

  • From: Jessica Hamilton <jessica.l.hamilton@xxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Thu, 23 Apr 2015 22:12:03 +0000

On Thu, Apr 23, 2015 at 11:39 PM Gerasim Troeglazov <3deyes@xxxxxxxxx>
wrote:

Revision: hrev49096
Commit: 6653e748736ad95dd8e13f9f36cb802753741ea7
URL: http://cgit.haiku-os.org/haiku/commit/?id=6653e748736a
Author: Gerasim Troeglazov <3dEyes@xxxxxxxxx>
Date: Thu Apr 23 11:36:52 2015 UTC


----------------------------------------------------------------------------

1 file changed, 15 insertions(+), 16 deletions(-)
.../media/media-add-ons/vst_host/VSTAddOn.cpp | 31 ++++++++++----------


----------------------------------------------------------------------------

diff --git a/src/add-ons/media/media-add-ons/vst_host/VSTAddOn.cpp
b/src/add-ons/media/media-add-ons/vst_host/VSTAddOn.cpp
index 1484f1e..92dc0f6 100644
--- a/src/add-ons/media/media-add-ons/vst_host/VSTAddOn.cpp
+++ b/src/add-ons/media/media-add-ons/vst_host/VSTAddOn.cpp
@@ -20,26 +20,24 @@ VSTAddOn::VSTAddOn(image_id image)
:
BMediaAddOn(image)
{
- const char vst_subdir[]={"media/vstplugins"};
-
- BPath addons_dir;
fPluginsList.MakeEmpty();

- find_directory(B_USER_NONPACKAGED_ADDONS_DIRECTORY, &addons_dir);
- addons_dir.Append(vst_subdir);
- ScanPluginsFolders(addons_dir.Path(), true);
+ directory_which dataDirectories[] = {
+ B_SYSTEM_ADDONS_DIRECTORY,
+ B_SYSTEM_NONPACKAGED_ADDONS_DIRECTORY,
+ B_USER_ADDONS_DIRECTORY,
+ B_USER_NONPACKAGED_ADDONS_DIRECTORY,
+ };

- find_directory(B_USER_ADDONS_DIRECTORY, &addons_dir);
- addons_dir.Append(vst_subdir);
- ScanPluginsFolders(addons_dir.Path() ,true);
+ for (uint i = 0; i <
sizeof(dataDirectories)/sizeof(directory_which); i++) {
+ BPath path;
+ if (find_directory(dataDirectories[i], &path) != B_OK)
+ continue;

- find_directory(B_SYSTEM_NONPACKAGED_ADDONS_DIRECTORY, &addons_dir);
- addons_dir.Append(vst_subdir);
- ScanPluginsFolders(addons_dir.Path());
+ path.Append("media/vstplugins");

- find_directory(B_SYSTEM_ADDONS_DIRECTORY, &addons_dir);
- addons_dir.Append(vst_subdir);
- ScanPluginsFolders(addons_dir.Path());
+ ScanPluginsFolders(path.Path());
+ }
}

VSTAddOn::~VSTAddOn()
@@ -112,7 +110,8 @@ VSTAddOn::ScanPluginsFolders(const char* path, bool
make_dir)

BDirectory dir(path);
if (dir.InitCheck() != B_OK) {
- create_directory(path, 0755);
+ if (make_dir == true)
+ create_directory(path, 0755);
return 0;
}


The FindPaths API should be preferred in most cases. Something like the
following should achieve the same effect:

BStringList paths;
BPathFinder::FindPaths(B_FIND_PATH_ADD_ONS_DIRECTORY,
"media/vstplugins/", paths);
for (uint32 i = 0; i < paths.CountStrings(); ++i)
ScanPluginsFolders(paths[i]);

See http://api.haiku-os.org/classBPathFinder.html for more details.

Also, ScanPluginsFolders should be renamed to ScanPluginsFolder, as it only
scans a single folder.

Other related posts: