20 #ifndef _libpbd_system_exec_h_
21 #define _libpbd_system_exec_h_
24 #define STDIN_FILENO 0
27 #define STDOUT_FILENO 1
30 #define STDERR_FILENO 2
33 #ifdef PLATFORM_WINDOWS
37 #undef interface // VKamyshniy: to avoid "include/giomm-2.4/giomm/dbusmessage.h:270:94: error: expected ',' or '...' before 'struct'"
48 #include <sigc++/bind.h>
49 #include <sigc++/signal.h>
86 SystemExec (std::string c, std::string a =
"");
114 SystemExec (std::string command,
const std::map<char, std::string> subs);
129 int start (
int stderr_mode,
const char *_vfork_exec_wrapper);
153 int wait (
int options=0);
167 int write_to_stdin (std::string d,
size_t len=0);
174 sigc::signal<void, std::string,size_t> ReadStdout;
181 sigc::signal<void> Terminated;
197 void output_interposer ();
203 void make_argp(std::string);
204 void make_argp_escaped(std::string command,
const std::map<char, std::string> subs);
211 #ifdef PLATFORM_WINDOWS
212 PROCESS_INFORMATION *pid;
217 void make_wargs(
char **);
PBD::Signal0< void > Terminated
std::string cmd
path to command - set when creating the class
LIBARDOUR_API PBD::PropertyDescriptor< framepos_t > start
pthread_mutex_t write_lock
int nicelevel
process nice level - defaults to 0
execute an external command
PBD::Signal2< void, std::string, size_t > ReadStdout