properly calculate requrired thread buffers
[ardour.git] / libs / ardour / export_timespan.cc
index d6996a5a48e3e619053f8fa8778ef335b10ffb77..3b2021355e1f9ecf7ce8c1a4ccad70709a25c9fd 100644 (file)
 
 */
 
-#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>
+#include "ardour/export_timespan.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 (ExportChannel const & 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, ExportChannel const & 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_ports (data, frames_to_read);
-               it->second->write (data, frames_to_read);
-       }
-       
-       delete [] data;
-
-       return 0;
-}
-
-
 } // namespace ARDOUR