X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fexport_timespan.cc;h=3b2021355e1f9ecf7ce8c1a4ccad70709a25c9fd;hb=b880a381523b2cfdb7ebd17c27fff1adf90fa028;hp=60654cf06af34d7581f588e8995ac693a3b30c0e;hpb=e0aaed6d65f160c328cb8b56d7c6552ee15d65e2;p=ardour.git diff --git a/libs/ardour/export_timespan.cc b/libs/ardour/export_timespan.cc index 60654cf06a..3b2021355e 100644 --- a/libs/ardour/export_timespan.cc +++ b/libs/ardour/export_timespan.cc @@ -20,94 +20,29 @@ #include "ardour/export_timespan.h" -#include "ardour/export_channel_configuration.h" -#include "ardour/export_filename.h" -#include "ardour/export_file_io.h" -#include "ardour/export_failed.h" - namespace ARDOUR { -ExportTimespan::ExportTimespan (ExportStatusPtr status, nframes_t frame_rate) : - status (status), - start_frame (0), - end_frame (0), - position (0), - frame_rate (frame_rate) -{ -} - -ExportTimespan::~ExportTimespan () +ExportTimespan::ExportTimespan (ExportStatusPtr status, framecnt_t frame_rate) : + status (status), + start_frame (0), + end_frame (0), + position (0), + frame_rate (frame_rate) { -} -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) +ExportTimespan::~ExportTimespan () { - 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) +ExportTimespan::set_range (framepos_t start, framepos_t end) { start_frame = start; position = start_frame; 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