'session_option_editor.cc',
'sfdb_ui.cc',
'shuttle_control.cc',
- 'simpleline.cc',
- 'simplerect.cc',
+ 'soundcloud_export_selector.cc',
'splash.cc',
'speaker_dialog.cc',
'startup.cc',
#include "ardour/export_pointers.h"
#include "ardour/session.h"
+#include "ardour/libardour_visibility.h"
#include "ardour/types.h"
+ #include "pbd/signals.h"
namespace AudioGrapher {
class BroadcastInfo;
Session & session;
};
- class LIBARDOUR_API ExportHandler : public ExportElementFactory
-class ExportHandler : public ExportElementFactory, public sigc::trackable
++class LIBARDOUR_API ExportHandler : public ExportElementFactory, public sigc::trackable
{
public:
struct FileSpec {
#include <string>
#include <pthread.h>
#include <signal.h>
-#ifdef NOPBD /* outside ardour */
+ #include <map>
+
+#ifdef NOPBD /* unit-test outside ardour */
#include <sigc++/bind.h>
#include <sigc++/signal.h>
#else
*
*/
SystemExec (std::string c, char ** a);
+
+ /** similar to \ref SystemExec but expects a whole command line, and
+ * handles some simple escape sequences.
+ *
+ * @param command complete command-line to be executed
+ * @param subs a map of <char, std::string> listing the % substitutions to
+ * be made.
+ *
+ * creates an argv array from the given command string, splitting into
+ * parameters at spaces.
+ * "\ " is non-splitting space, "\\" (and "\" at end of command) as "\",
+ * for "%<char>", <char> is looked up in subs and the corresponding string
+ * substituted. "%%" (and "%" at end of command)
+ * returns an argv array suitable for creating a new SystemExec with
+ */
+ SystemExec (std::string command, const std::map<char, std::string> subs);
+
virtual ~SystemExec ();
-
/** fork and execute the given program
*
* @param stderr_mode select what to do with program's standard error
return 0;
}
-#endif /* not on windows */
+#endif /* not on windows, nor vfork */
-
- SystemExec::SystemExec (std::string c, std::string a)
- : cmd(c)
+ void
+ SystemExec::init ()
{
pthread_mutex_init(&write_lock, NULL);
thread_active=false;
pin[1] = -1;
nicelevel = 0;
envp = NULL;
- argp = NULL;
-#ifdef __WIN32__
+#ifdef PLATFORM_WINDOWS
stdinP[0] = stdinP[1] = INVALID_HANDLE_VALUE;
stdoutP[0] = stdoutP[1] = INVALID_HANDLE_VALUE;
stderrP[0] = stderrP[1] = INVALID_HANDLE_VALUE;
SystemExec::SystemExec (std::string c, char **a)
: cmd(c) , argp(a)
{
- pthread_mutex_init(&write_lock, NULL);
- thread_active=false;
- pid = 0;
- pin[1] = -1;
- nicelevel = 0;
- envp = NULL;
+ init ();
+
-#ifdef __WIN32__
+#ifdef PLATFORM_WINDOWS
- stdinP[0] = stdinP[1] = INVALID_HANDLE_VALUE;
- stdoutP[0] = stdoutP[1] = INVALID_HANDLE_VALUE;
- stderrP[0] = stderrP[1] = INVALID_HANDLE_VALUE;
make_wargs(a);
#endif
make_envp();