diff options
-rw-r--r-- | libs/ardour/ardour/export_handler.h | 31 | ||||
-rw-r--r-- | libs/ardour/export_handler.cc | 5 |
2 files changed, 26 insertions, 10 deletions
diff --git a/libs/ardour/ardour/export_handler.h b/libs/ardour/ardour/export_handler.h index 526d32b4c6..3d92888d60 100644 --- a/libs/ardour/ardour/export_handler.h +++ b/libs/ardour/ardour/export_handler.h @@ -22,17 +22,20 @@ #define __ardour_export_handler_h__ #include <map> -#include <fstream> #include <boost/operators.hpp> #include <boost/shared_ptr.hpp> +#include "pbd/gstdio_compat.h" + #include "ardour/export_pointers.h" #include "ardour/session.h" #include "ardour/libardour_visibility.h" #include "ardour/types.h" #include "pbd/signals.h" +#include "i18n.h" + namespace AudioGrapher { class BroadcastInfo; } @@ -156,13 +159,31 @@ class LIBARDOUR_API ExportHandler : public ExportElementFactory, public sigc::tr struct CDMarkerStatus { CDMarkerStatus (std::string out_file, ExportTimespanPtr timespan, ExportFormatSpecPtr format, std::string filename) - : out (out_file.c_str()), timespan (timespan), format (format), filename (filename), marker(0) - , track_number (1), track_position (0), track_duration (0), track_start_frame (0) - , index_number (1), index_position (0) + : path (out_file) + , timespan (timespan) + , format (format) + , filename (filename) + , marker(0) + , track_number (1) + , track_position (0) + , track_duration (0) + , track_start_frame (0) + , index_number (1) + , index_position (0) {} + ~CDMarkerStatus () { + if (!g_file_set_contents (path.c_str(), out.str().c_str(), -1, NULL)) { + PBD::error << string_compose(_("Editor: cannot open \"%1\" as export file for CD marker file"), path) << endmsg; + } + + } + + /* I/O */ + std::string path; + std::stringstream out; + /* General info */ - std::ofstream out; ExportTimespanPtr timespan; ExportFormatSpecPtr format; std::string filename; diff --git a/libs/ardour/export_handler.cc b/libs/ardour/export_handler.cc index a9066ee6e7..f53f270918 100644 --- a/libs/ardour/export_handler.cc +++ b/libs/ardour/export_handler.cc @@ -425,11 +425,6 @@ ExportHandler::export_cd_marker_file (ExportTimespanPtr timespan, ExportFormatSp CDMarkerStatus status (filepath, timespan, file_format, filename); - if (!status.out) { - error << string_compose(_("Editor: cannot open \"%1\" as export file for CD marker file"), filepath) << endmsg; - return; - } - (this->*header_func) (status); /* Get locations and sort */ |