variable plugin port config.
[ardour.git] / libs / ardour / plugin_manager.cc
index d98f5ccc45e6d92f5a01494d30731006bf3b5714..89ddc5ff19f303fb204bd979f96be89e362a3426 100644 (file)
@@ -798,55 +798,56 @@ static std::string dll_info (std::string path) {
        uint16_t type = 0;
        off_t pe_hdr_off = 0;
 
-       int fd = open(path.c_str(), O_RDONLY, 0444);
+       int fd = g_open(path.c_str(), O_RDONLY, 0444);
 
        if (fd < 0) {
-               return _("cannot open dll"); // TODO strerror()
+               return _("cannot open dll"); // TODO strerror()
        }
 
        if (68 != read (fd, buf, 68)) {
-               rv = _("invalid dll, file too small");
+               rv = _("invalid dll, file too small");
                goto errorout;
        }
        if (buf[0] != 'M' && buf[1] != 'Z') {
-               rv = _("not a dll");
+               rv = _("not a dll");
                goto errorout;
        }
 
        pe_hdr_off = *((int32_t*) &buf[60]);
        if (pe_hdr_off !=lseek (fd, pe_hdr_off, SEEK_SET)) {
-               rv = _("cannot determine dll type");
+               rv = _("cannot determine dll type");
                goto errorout;
        }
        if (6 != read (fd, buf, 6)) {
-               rv = _("cannot read dll PE header");
+               rv = _("cannot read dll PE header");
                goto errorout;
        }
 
        if (buf[0] != 'P' && buf[1] != 'E') {
-               rv = _("invalid dll PE header");
+               rv = _("invalid dll PE header");
                goto errorout;
        }
 
        type = *((uint16_t*) &buf[4]);
        switch (type) {
                case 0x014c:
-                       rv = _("- i386 (32bit)");
+                       rv = _("i386 (32-bit)");
                        break;
                case  0x0200:
-                       rv = _("Itanium");
+                       rv = _("Itanium");
                        break;
                case 0x8664:
-                       rv = _("- x64 (64bit)");
+                       rv = _("x64 (64-bit)");
                        break;
                case 0:
-                       rv = _("Native Architecture");
+                       rv = _("Native Architecture");
                        break;
                default:
-                       rv = _("Unknown Architecture");
+                       rv = _("Unknown Architecture");
                        break;
        }
 errorout:
+       assert (rv.length() > 0);
        close (fd);
        return rv;
 }
@@ -860,7 +861,7 @@ PluginManager::windows_vst_discover (string path, bool cache_only)
                if (cache_only) {
                        info << string_compose (_(" *  %1 (cache only)"), path) << endmsg;
                } else {
-                       info << string_compose (_(" *  %1 %2"), path, dll_info (path)) << endmsg;
+                       info << string_compose (_(" *  %1 %2"), path, dll_info (path)) << endmsg;
                }
        }
 
@@ -1101,6 +1102,10 @@ PluginManager::save_statuses ()
                case LXVST:
                        ofs << "LXVST";
                        break;
+               case Lua:
+                       assert (0);
+                       continue;
+                       break;
                }
 
                ofs << ' ';
@@ -1122,6 +1127,7 @@ PluginManager::save_statuses ()
                ofs << endl;
        }
        g_file_set_contents (path.c_str(), ofs.str().c_str(), -1, NULL);
+       PluginStatusesChanged (); /* EMIT SIGNAL */
 }
 
 void