diff options
author | Robin Gareus <robin@gareus.org> | 2016-06-07 16:57:17 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-06-07 16:57:17 +0200 |
commit | 04997080a427566f9a325831192e4c0a6f6f15ae (patch) | |
tree | ed984c35b8d372cd30d6eb5dd9be87dd69f10fa3 /libs/ardour/export_handler.cc | |
parent | 78ad42fd88791da359640329874e2abf2acbebc9 (diff) |
add meta-data placeholders for post-export command
needs testing on windows with UTF8
Diffstat (limited to 'libs/ardour/export_handler.cc')
-rw-r--r-- | libs/ardour/export_handler.cc | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/libs/ardour/export_handler.cc b/libs/ardour/export_handler.cc index 5e3509167d..1be2ad0682 100644 --- a/libs/ardour/export_handler.cc +++ b/libs/ardour/export_handler.cc @@ -339,8 +339,9 @@ ExportHandler::finish_timespan () } if (!fmt->command().empty()) { + SessionMetadata const & metadata (*SessionMetadata::Metadata()); -#if 0 // would be nicer with C++11 initialiser... +#if 0 // would be nicer with C++11 initialiser... std::map<char, std::string> subs { { 'f', filename }, { 'd', Glib::path_get_dirname(filename) + G_DIR_SEPARATOR }, @@ -351,11 +352,27 @@ ExportHandler::finish_timespan () export_status->active_job = ExportStatus::Command; 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) + G_DIR_SEPARATOR)); + + std::stringstream track_number; + track_number << metadata.track_number (); + std::stringstream year; + year << metadata.year (); + + subs.insert (std::pair<char, std::string> ('a', metadata.artist ())); 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> ('d', Glib::path_get_dirname (filename) + G_DIR_SEPARATOR)); + subs.insert (std::pair<char, std::string> ('f', filename)); subs.insert (std::pair<char, std::string> ('n', session.name ())); + subs.insert (std::pair<char, std::string> ('s', session.path ())); + subs.insert (std::pair<char, std::string> ('t', metadata.title ())); + subs.insert (std::pair<char, std::string> ('A', metadata.album ())); + subs.insert (std::pair<char, std::string> ('C', metadata.comment ())); + subs.insert (std::pair<char, std::string> ('E', metadata.engineer ())); + subs.insert (std::pair<char, std::string> ('G', metadata.genre ())); + subs.insert (std::pair<char, std::string> ('N', current_timespan->name())); // =?= config_map.begin()->first->name () + subs.insert (std::pair<char, std::string> ('P', metadata.producer ())); + subs.insert (std::pair<char, std::string> ('T', track_number.str ())); + subs.insert (std::pair<char, std::string> ('Y', year.str ())); ARDOUR::SystemExec *se = new ARDOUR::SystemExec(fmt->command(), subs); info << "Post-export command line : {" << se->to_s () << "}" << endmsg; |