ardour
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
libs
pbd
openuri.cc
Go to the documentation of this file.
1
/*
2
Copyright (C) 2012 Paul Davis
3
4
This program is free software; you can redistribute it and/or modify
5
it under the terms of the GNU General Public License as published by
6
the Free Software Foundation; either version 2 of the License, or
7
(at your option) any later version.
8
9
This program is distributed in the hope that it will be useful,
10
but WITHOUT ANY WARRANTY; without even the implied warranty of
11
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
GNU General Public License for more details.
13
14
You should have received a copy of the GNU General Public License
15
along with this program; if not, write to the Free Software
16
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17
18
*/
19
20
#ifdef WAF_BUILD
21
#include "libpbd-config.h"
22
#endif
23
24
#include <boost/scoped_ptr.hpp>
25
#include <string>
26
#include <glibmm/spawn.h>
27
28
#include "
pbd/epa.h
"
29
#include "
pbd/openuri.h
"
30
31
#ifdef __APPLE__
32
extern
bool
cocoa_open_url
(
const
char
*);
33
#endif
34
35
#ifdef PLATFORM_WINDOWS
36
#include <windows.h>
37
#include <shellapi.h>
38
#endif
39
40
bool
41
PBD::open_uri
(
const
char
* uri)
42
{
43
#ifdef PLATFORM_WINDOWS
44
ShellExecute(NULL,
"open"
, uri, NULL, NULL, SW_SHOWNORMAL);
45
return
true
;
46
#elif __APPLE__
47
return
cocoa_open_url
(uri);
48
#else
49
EnvironmentalProtectionAgency
* global_epa = EnvironmentalProtectionAgency::get_global_epa ();
50
boost::scoped_ptr<EnvironmentalProtectionAgency> current_epa;
51
52
/* revert all environment settings back to whatever they were when ardour started
53
*/
54
55
if
(global_epa) {
56
current_epa.reset (
new
EnvironmentalProtectionAgency
(
true
));
/* will restore settings when we leave scope */
57
global_epa->
restore
();
58
}
59
60
std::string command =
"xdg-open "
;
61
command += uri;
62
command +=
" &"
;
63
(void) system (command.c_str());
64
65
return
true
;
66
#endif
67
}
68
69
bool
70
PBD::open_uri
(
const
std::string& uri)
71
{
72
return
open_uri
(uri.c_str());
73
}
cocoa_open_url
bool cocoa_open_url(const char *uri)
Definition:
cocoacarbon.mm:63
epa.h
PBD::EnvironmentalProtectionAgency::restore
void restore() const
Definition:
epa.cc:122
openuri.h
PBD::EnvironmentalProtectionAgency
Definition:
epa.h:30
PBD::open_uri
LIBPBD_API bool open_uri(const char *)
Definition:
openuri.cc:41
Generated on Sun May 24 2015 12:15:08 for ardour by
1.8.8