summaryrefslogtreecommitdiff
path: root/libs/ardour/export_handler.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/export_handler.cc')
-rw-r--r--libs/ardour/export_handler.cc25
1 files changed, 16 insertions, 9 deletions
diff --git a/libs/ardour/export_handler.cc b/libs/ardour/export_handler.cc
index 0c7a2e8d48..7bf231acd2 100644
--- a/libs/ardour/export_handler.cc
+++ b/libs/ardour/export_handler.cc
@@ -98,15 +98,15 @@ ExportElementFactory::add_filename_copy (FilenamePtr other)
/*** ExportHandler ***/
-ExportHandler::ExportHandler (Session & session) :
- ExportElementFactory (session),
- session (session),
- export_status (session.get_export_status ()),
- realtime (false)
+ExportHandler::ExportHandler (Session & session)
+ : ExportElementFactory (session)
+ , session (session)
+ , export_status (session.get_export_status ())
+ , realtime (false)
{
processor.reset (new ExportProcessor (session));
- files_written_connection = ExportProcessor::WritingFile.connect (sigc::mem_fun (files_written, &std::list<Glib::ustring>::push_back));
+ files_written_connection = ExportProcessor::WritingFile.connect (boost::bind (&ExportHandler::add_file, this, _1));
}
ExportHandler::~ExportHandler ()
@@ -121,6 +121,12 @@ ExportHandler::~ExportHandler ()
files_written_connection.disconnect();
}
+void
+ExportHandler::add_file (const Glib::ustring& str)
+{
+ files_written.push_back (str);
+}
+
bool
ExportHandler::add_export_config (TimespanPtr timespan, ChannelConfigPtr channel_config, FormatPtr format, FilenamePtr filename)
{
@@ -162,7 +168,7 @@ ExportHandler::do_export (bool rt)
realtime = rt;
- session.ExportReadFinished.connect (sigc::mem_fun (*this, &ExportHandler::finish_timespan));
+ export_read_finished_connection = session.ExportReadFinished.connect (boost::bind (&ExportHandler::finish_timespan, this));
start_timespan ();
}
@@ -499,7 +505,7 @@ ExportHandler::start_timespan ()
/* connect stuff and start export */
- current_timespan->process_connection = session.ProcessExport.connect (sigc::mem_fun (*current_timespan, &ExportTimespan::process));
+ current_timespan->process_connection = session.ProcessExport.connect (boost::bind (&ExportTimespan::process, current_timespan, _1));
session.start_audio_export (current_timespan->get_start(), realtime);
}
@@ -538,6 +544,7 @@ void
ExportHandler::timespan_thread_finished ()
{
channel_config_connection.disconnect();
+ export_read_finished_connection.disconnect ();
if (current_map_it != timespan_bounds.second) {
@@ -559,7 +566,7 @@ ExportHandler::timespan_thread_finished ()
cc = current_map_it->second.channel_config;
}
- channel_config_connection = cc->FilesWritten.connect (sigc::mem_fun (*this, &ExportHandler::timespan_thread_finished));
+ channel_config_connection = cc->FilesWritten.connect (boost::bind (&ExportHandler::timespan_thread_finished, this));
++current_map_it;
} else { /* All files are written from current timespan, reset timespan and start new */