#include "ardour/export_handler.h"
+#include <glib/gstdio.h>
#include <glibmm.h>
#include <glibmm/convert.h>
timespan_bounds = config_map.equal_range (current_timespan);
graph_builder->reset ();
graph_builder->set_current_timespan (current_timespan);
+ handle_duplicate_format_extensions();
for (ConfigMap::iterator it = timespan_bounds.first; it != timespan_bounds.second; ++it) {
// Filenames can be shared across timespans
FileSpec & spec = it->second;
session.start_audio_export (process_position);
}
+void
+ExportHandler::handle_duplicate_format_extensions()
+{
+ typedef std::map<std::string, int> ExtCountMap;
+
+ ExtCountMap counts;
+ for (ConfigMap::iterator it = timespan_bounds.first; it != timespan_bounds.second; ++it) {
+ counts[it->second.format->extension()]++;
+ }
+
+ bool duplicates_found = false;
+ for (ExtCountMap::iterator it = counts.begin(); it != counts.end(); ++it) {
+ if (it->second > 1) { duplicates_found = true; }
+ }
+
+ // Set this always, as the filenames are shared...
+ for (ConfigMap::iterator it = timespan_bounds.first; it != timespan_bounds.second; ++it) {
+ it->second.filename->include_format_name = duplicates_found;
+ }
+}
+
int
ExportHandler::process (framecnt_t frames)
{
} catch (std::exception& e) {
error << string_compose (_("an error occured while writing a TOC/CUE file: %1"), e.what()) << endmsg;
- ::unlink (filepath.c_str());
+ ::g_unlink (filepath.c_str());
} catch (Glib::Exception& e) {
error << string_compose (_("an error occured while writing a TOC/CUE file: %1"), e.what()) << endmsg;
- ::unlink (filepath.c_str());
+ ::g_unlink (filepath.c_str());
}
}