summaryrefslogtreecommitdiff
path: root/libs/ardour/capturing_processor.cc
diff options
context:
space:
mode:
authorSakari Bergen <sakari.bergen@beatwaves.net>2011-01-16 19:41:11 +0000
committerSakari Bergen <sakari.bergen@beatwaves.net>2011-01-16 19:41:11 +0000
commita406d9183adc67075a4e802fd8254c2560df9964 (patch)
tree2bb5cfa9a25f5951e37a1a9e8c041cca6c960925 /libs/ardour/capturing_processor.cc
parent113e6b505a27b3cbdb26f96b96c92cf35fe311dd (diff)
Make stem export export from right before any processors.
The dialog does not support exporting from the outputs anymore, sorry. Will add options later... git-svn-id: svn://localhost/ardour2/branches/3.0@8520 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/capturing_processor.cc')
-rw-r--r--libs/ardour/capturing_processor.cc75
1 files changed, 75 insertions, 0 deletions
diff --git a/libs/ardour/capturing_processor.cc b/libs/ardour/capturing_processor.cc
new file mode 100644
index 0000000000..2fa83ace81
--- /dev/null
+++ b/libs/ardour/capturing_processor.cc
@@ -0,0 +1,75 @@
+/*
+ Copyright (C) 2011 Paul Davis
+ Author: Sakari Bergen
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
+#include "ardour/capturing_processor.h"
+#include "ardour/session.h"
+#include "ardour/audioengine.h"
+
+namespace ARDOUR {
+
+CapturingProcessor::CapturingProcessor (Session & session)
+ : Processor (session, X_("capture point"))
+ , block_size (session.engine().frames_per_cycle())
+{
+ realloc_buffers ();
+}
+
+CapturingProcessor::~CapturingProcessor()
+{
+}
+
+int
+CapturingProcessor::set_block_size (pframes_t nframes)
+{
+ block_size = nframes;
+ realloc_buffers();
+ return 0;
+}
+
+void
+CapturingProcessor::run (BufferSet& bufs, framepos_t, framepos_t, pframes_t nframes, bool)
+{
+ if (active()) {
+ capture_buffers.read_from (bufs, nframes);
+ }
+}
+
+bool
+CapturingProcessor::configure_io (ChanCount in, ChanCount out)
+{
+ Processor::configure_io (in, out);
+ realloc_buffers();
+ return true;
+}
+
+bool
+CapturingProcessor::can_support_io_configuration (const ChanCount& in, ChanCount& out) const
+{
+ out = in;
+ return true;
+}
+
+void
+CapturingProcessor::realloc_buffers()
+{
+ capture_buffers.ensure_buffers (_configured_input, block_size);
+}
+
+} // namespace ARDOUR