From 04997080a427566f9a325831192e4c0a6f6f15ae Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Tue, 7 Jun 2016 16:57:17 +0200 Subject: add meta-data placeholders for post-export command needs testing on windows with UTF8 --- libs/ardour/export_handler.cc | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) (limited to 'libs/ardour/export_handler.cc') 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 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 subs; - subs.insert (std::pair ('f', filename)); - subs.insert (std::pair ('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 ('a', metadata.artist ())); subs.insert (std::pair ('b', PBD::basename_nosuffix (filename))); - subs.insert (std::pair ('s', session.path ())); + subs.insert (std::pair ('d', Glib::path_get_dirname (filename) + G_DIR_SEPARATOR)); + subs.insert (std::pair ('f', filename)); subs.insert (std::pair ('n', session.name ())); + subs.insert (std::pair ('s', session.path ())); + subs.insert (std::pair ('t', metadata.title ())); + subs.insert (std::pair ('A', metadata.album ())); + subs.insert (std::pair ('C', metadata.comment ())); + subs.insert (std::pair ('E', metadata.engineer ())); + subs.insert (std::pair ('G', metadata.genre ())); + subs.insert (std::pair ('N', current_timespan->name())); // =?= config_map.begin()->first->name () + subs.insert (std::pair ('P', metadata.producer ())); + subs.insert (std::pair ('T', track_number.str ())); + subs.insert (std::pair ('Y', year.str ())); ARDOUR::SystemExec *se = new ARDOUR::SystemExec(fmt->command(), subs); info << "Post-export command line : {" << se->to_s () << "}" << endmsg; -- cgit v1.2.3