refactor MIDISceneChange color property addition by moving it into SceneChange to...
[ardour.git] / libs / ardour / export_handler.cc
index c9f20d182e7bc4dce63a82be58d39f4d8cdd2bcd..38086bd273884cf7f40cd50a8a8b0438246dd5ad 100644 (file)
@@ -27,6 +27,7 @@
 #include "pbd/convert.h"
 
 #include "ardour/audiofile_tagger.h"
+#include "ardour/debug.h"
 #include "ardour/export_graph_builder.h"
 #include "ardour/export_timespan.h"
 #include "ardour/export_channel_configuration.h"
@@ -313,62 +314,56 @@ ExportHandler::finish_timespan ()
 #if 0                  // would be nicer with C++11 initialiser...
                        std::map<char, std::string> subs {
                                { 'f', filename },
-                               { 'd', Glib::path_get_dirname(filename) },
+                               { 'd', Glib::path_get_dirname(filename)  + G_DIR_SEPARATOR },
                                { 'b', PBD::basename_nosuffix(filename) },
-                               { 'u', upload_username },
-                               { 'p', upload_password}
+                               ...
                        };
 #endif
 
                        PBD::ScopedConnection command_connection;
                        std::map<char, std::string> subs;
                        subs.insert (std::pair<char, std::string> ('f', filename));
-                       subs.insert (std::pair<char, std::string> ('d', Glib::path_get_dirname(filename)));
-                       subs.insert (std::pair<char, std::string> ('b', PBD::basename_nosuffix(filename)));
-                       subs.insert (std::pair<char, std::string> ('u', upload_username));
-                       subs.insert (std::pair<char, std::string> ('p', upload_password));
+                       subs.insert (std::pair<char, std::string> ('d', Glib::path_get_dirname (filename) + G_DIR_SEPARATOR));
+                       subs.insert (std::pair<char, std::string> ('b', PBD::basename_nosuffix (filename)));
+                       subs.insert (std::pair<char, std::string> ('s', session.path ()));
+                       subs.insert (std::pair<char, std::string> ('n', session.name ()));
 
-
-                       std::cerr << "running command: " << fmt->command() << "..." << std::endl;
                        ARDOUR::SystemExec *se = new ARDOUR::SystemExec(fmt->command(), subs);
                        se->ReadStdout.connect_same_thread(command_connection, boost::bind(&ExportHandler::command_output, this, _1, _2));
                        if (se->start (2) == 0) {
                                // successfully started
-                               std::cerr << "started!" << std::endl;
                                while (se->is_running ()) {
                                        // wait for system exec to terminate
-                                       // std::cerr << "waiting..." << std::endl;
-                                       usleep (1000);
+                                       Glib::usleep (1000);
                                }
+                       } else {
+                               error << "post-export hook failed! " << fmt->command() << endmsg;
                        }
-                       std::cerr << "done! deleting..." << std::endl;
                        delete (se);
                }
 
-               if (fmt->upload()) {
+               if (fmt->soundcloud_upload()) {
                        SoundcloudUploader *soundcloud_uploader = new SoundcloudUploader;
-                       std::string token = soundcloud_uploader->Get_Auth_Token(upload_username, upload_password);
-                       std::cerr
-                               << "uploading "
-                               << filename << std::endl
-                               << "username = " << upload_username
-                               << ", password = " << upload_password
-                               << " - token = " << token << " ..."
-                               << std::endl;
+                       std::string token = soundcloud_uploader->Get_Auth_Token(soundcloud_username, soundcloud_password);
+                       DEBUG_TRACE (DEBUG::Soundcloud, string_compose(
+                                               "uploading %1 - username=%2, password=%3, token=%4",
+                                               filename, soundcloud_username, soundcloud_password, token) );
                        std::string path = soundcloud_uploader->Upload (
                                        filename,
                                        PBD::basename_nosuffix(filename), // title
                                        token,
-                                       upload_public,
+                                       soundcloud_make_public,
+                                       soundcloud_downloadable,
                                        this);
 
                        if (path.length() != 0) {
-                               if (upload_open) {
-                               std::cerr << "opening " << path << " ..." << std::endl;
-                               open_uri(path.c_str());  // open the soundcloud website to the new file
+                               info << string_compose ( _("File %1 uploaded to %2"), filename, path) << endmsg;
+                               if (soundcloud_open_page) {
+                                       DEBUG_TRACE (DEBUG::Soundcloud, string_compose ("opening %1", path) );
+                                       open_uri(path.c_str());  // open the soundcloud website to the new file
                                }
                        } else {
-                               error << _("upload to Soundcloud failed.  Perhaps your email or password are incorrect?\n") << endmsg;
+                               error << _("upload to Soundcloud failed. Perhaps your email or password are incorrect?\n") << endmsg;
                        }
                        delete soundcloud_uploader;
                }