13
0

Add an API to reset export-handler configs.

config_map.erase() is only called in ExportHandler::finish_timespan().

When an export fails (throw) or is aborted, the export-handler's
config remains as is and the next export will run it again.

The export-handler is global, per session and
ExportHandler::add_export_config() only ever inserts or ignores insert.

This is in preparation to fix:
1) export to invalid path -> fail, error is thrown
2) correct path -> new config is inserted in the map
3) try to export again, first runs the not-completed export from (1)
  -> constant errors.
This commit is contained in:
Robin Gareus 2018-07-25 18:19:19 +02:00
parent 16ef78ade0
commit 506863bf57
2 changed files with 9 additions and 0 deletions

View File

@ -124,6 +124,8 @@ class LIBARDOUR_API ExportHandler : public ExportElementFactory, public sigc::tr
bool soundcloud_open_page;
bool soundcloud_downloadable;
void reset ();
private:
void handle_duplicate_format_extensions();

View File

@ -465,6 +465,13 @@ ExportHandler::finish_timespan ()
start_timespan ();
}
void
ExportHandler::reset ()
{
config_map.clear ();
graph_builder->reset ();
}
/*** CD Marker stuff ***/
struct LocationSortByStart {