From dde0848a984e06cbc1d4117d9cffa75c191f3b39 Mon Sep 17 00:00:00 2001 From: Sakari Bergen Date: Sun, 27 Dec 2009 14:46:23 +0000 Subject: Re-integrate export-optimization branch. Export now happens directly to file (unless normalizing is required), and can be easily optimized even further. The Session process connection is still broken during export (as it was before this commit also). git-svn-id: svn://localhost/ardour2/branches/3.0@6401 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/export_timespan.cc | 62 ------------------------------------------ 1 file changed, 62 deletions(-) (limited to 'libs/ardour/export_timespan.cc') diff --git a/libs/ardour/export_timespan.cc b/libs/ardour/export_timespan.cc index d638c84b16..948bf768d5 100644 --- a/libs/ardour/export_timespan.cc +++ b/libs/ardour/export_timespan.cc @@ -22,7 +22,6 @@ #include "ardour/export_channel_configuration.h" #include "ardour/export_filename.h" -#include "ardour/export_file_io.h" #include "ardour/export_failed.h" namespace ARDOUR @@ -41,33 +40,6 @@ ExportTimespan::~ExportTimespan () { } -void -ExportTimespan::register_channel (ExportChannelPtr channel) -{ - TempFilePtr ptr (new ExportTempFile (1, frame_rate)); - ChannelFilePair pair (channel, ptr); - filemap.insert (pair); -} - -void -ExportTimespan::rewind () -{ - for (TempFileMap::iterator it = filemap.begin(); it != filemap.end(); ++it) { - it->second->reset_read (); - } -} - -nframes_t -ExportTimespan::get_data (float * data, nframes_t frames, ExportChannelPtr channel) -{ - TempFileMap::iterator it = filemap.find (channel); - if (it == filemap.end()) { - throw ExportFailed (X_("Trying to get data from ExportTimespan for channel that was never registered!")); - } - - return it->second->read (data, frames); -} - void ExportTimespan::set_range (nframes_t start, nframes_t end) { @@ -76,38 +48,4 @@ ExportTimespan::set_range (nframes_t start, nframes_t end) end_frame = end; } -int -ExportTimespan::process (nframes_t frames) -{ - status->stage = export_ReadTimespan; - - /* update position */ - - nframes_t frames_to_read; - - if (position + frames <= end_frame) { - frames_to_read = frames; - } else { - frames_to_read = end_frame - position; - status->stop = true; - } - - position += frames_to_read; - status->progress = (float) (position - start_frame) / (end_frame - start_frame); - - /* Read channels from ports and save to tempfiles */ - - float * data = new float[frames_to_read]; - - for (TempFileMap::iterator it = filemap.begin(); it != filemap.end(); ++it) { - it->first->read (data, frames_to_read); - it->second->write (data, frames_to_read); - } - - delete [] data; - - return 0; -} - - } // namespace ARDOUR -- cgit v1.2.3