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;