diff options
author | Jesse Chappell <jesse@essej.net> | 2006-02-10 23:53:12 +0000 |
---|---|---|
committer | Jesse Chappell <jesse@essej.net> | 2006-02-10 23:53:12 +0000 |
commit | 9ab70fb55284537228577d575f15aa03949bd678 (patch) | |
tree | 47a44c65846a46bb6bff1b49caa8edb68c2b8c13 /libs/ardour/reverse.cc | |
parent | 17cb448b1df0def4c1e09da615e11a64f6e692e3 (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.cc | 12 |
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; } |