summaryrefslogtreecommitdiff
path: root/libs/ardour/reverse.cc
diff options
context:
space:
mode:
authorJesse Chappell <jesse@essej.net>2006-02-10 23:53:12 +0000
committerJesse Chappell <jesse@essej.net>2006-02-10 23:53:12 +0000
commit9ab70fb55284537228577d575f15aa03949bd678 (patch)
tree47a44c65846a46bb6bff1b49caa8edb68c2b8c13 /libs/ardour/reverse.cc
parent17cb448b1df0def4c1e09da615e11a64f6e692e3 (diff)
committed INCOMPLETE 24bit filesource support
git-svn-id: svn://localhost/trunk/ardour2@316 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/reverse.cc')
-rw-r--r--libs/ardour/reverse.cc12
1 files changed, 9 insertions, 3 deletions
diff --git a/libs/ardour/reverse.cc b/libs/ardour/reverse.cc
index 2474e0cb8d..335dacad6e 100644
--- a/libs/ardour/reverse.cc
+++ b/libs/ardour/reverse.cc
@@ -49,6 +49,7 @@ Reverse::run (AudioRegion& region)
AudioRegion::SourceList::iterator si;
const jack_nframes_t blocksize = 256 * 1048;
Sample buf[blocksize];
+ char * workbuf = 0;;
jack_nframes_t fpos;
jack_nframes_t fend;
jack_nframes_t fstart;
@@ -61,6 +62,8 @@ Reverse::run (AudioRegion& region)
goto out;
}
+ workbuf = new char[blocksize * 4];
+
fend = region.start() + region.length();
fstart = region.start();
@@ -82,7 +85,7 @@ Reverse::run (AudioRegion& region)
/* read it in */
- if (region.source (n).read (buf, fpos, to_read) != to_read) {
+ if (region.source (n).read (buf, fpos, to_read, workbuf) != to_read) {
goto out;
}
@@ -94,7 +97,7 @@ Reverse::run (AudioRegion& region)
/* write it out */
- if ((*si)->write (buf, to_read) != to_read) {
+ if ((*si)->write (buf, to_read, workbuf) != to_read) {
goto out;
}
}
@@ -120,6 +123,9 @@ Reverse::run (AudioRegion& region)
delete *si;
}
}
-
+ if (workbuf) {
+ delete [] workbuf;
+ }
+
return ret;
}