summaryrefslogtreecommitdiff
path: root/libs/ardour/export_handler.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-06-07 16:57:17 +0200
committerRobin Gareus <robin@gareus.org>2016-06-07 16:57:17 +0200
commit04997080a427566f9a325831192e4c0a6f6f15ae (patch)
treeed984c35b8d372cd30d6eb5dd9be87dd69f10fa3 /libs/ardour/export_handler.cc
parent78ad42fd88791da359640329874e2abf2acbebc9 (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.cc25
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;