portable pthread_self() debug message
[ardour.git] / libs / pbd / openuri.cc
index 1d5f358732ce4a36607bc2dbb0abb1a3fd21a14a..5f4f1ab5461cd83306a51a65ee43b7229aade13f 100644 (file)
@@ -1,3 +1,22 @@
+/*
+    Copyright (C) 2012 Paul Davis
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
 #ifdef WAF_BUILD
 #include "libpbd-config.h"
 #endif
 #include "pbd/epa.h"
 #include "pbd/openuri.h"
 
+#ifdef __APPLE__
+       extern bool cocoa_open_url (const char*);
+#endif
+
+#ifdef PLATFORM_WINDOWS
+       #include <windows.h>
+       #include <shellapi.h>
+#endif
+
 bool
 PBD::open_uri (const char* uri)
 {
-#ifdef __APPLE__
-       extern bool cocoa_open_url (const char*);
+#ifdef PLATFORM_WINDOWS
+       ShellExecute(NULL, "open", uri, NULL, NULL, SW_SHOWNORMAL);
+       return true;
+#elif __APPLE__
        return cocoa_open_url (uri);
 #else
        EnvironmentalProtectionAgency* global_epa = EnvironmentalProtectionAgency::get_global_epa ();
@@ -30,9 +60,14 @@ PBD::open_uri (const char* uri)
        std::string command = "xdg-open ";
        command += uri;
        command += " &";
-       system (command.c_str());
+       (void) system (command.c_str());
 
        return true;
 #endif
 }
 
+bool
+PBD::open_uri (const std::string& uri)
+{
+       return open_uri (uri.c_str());
+}