Mercurial > hg > svcore
annotate base/Resampler.h @ 1315:af0ccbb3e3d7 3.0-integration
Further updates to tests and debug output for file reading on OSX
author | Chris Cannam <cannam@all-day-breakfast.com> |
---|---|
date | Fri, 02 Dec 2016 09:13:52 +0000 |
parents | cc27f35aa75c |
children |
rev | line source |
---|---|
Chris@297 | 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ |
Chris@297 | 2 |
Chris@297 | 3 /* |
Chris@297 | 4 Sonic Visualiser |
Chris@297 | 5 An audio file viewer and annotation editor. |
Chris@297 | 6 Centre for Digital Music, Queen Mary, University of London. |
Chris@297 | 7 |
Chris@297 | 8 This program is free software; you can redistribute it and/or |
Chris@297 | 9 modify it under the terms of the GNU General Public License as |
Chris@297 | 10 published by the Free Software Foundation; either version 2 of the |
Chris@297 | 11 License, or (at your option) any later version. See the file |
Chris@297 | 12 COPYING included with this distribution for more information. |
Chris@297 | 13 */ |
Chris@297 | 14 |
Chris@297 | 15 /* |
Chris@297 | 16 This is a modified version of a source file from the |
Chris@297 | 17 Rubber Band audio timestretcher library. |
Chris@297 | 18 This file copyright 2007 Chris Cannam. |
Chris@297 | 19 */ |
Chris@297 | 20 |
Chris@297 | 21 #ifndef _RESAMPLER_H_ |
Chris@297 | 22 #define _RESAMPLER_H_ |
Chris@297 | 23 |
Chris@1038 | 24 #include "BaseTypes.h" |
Chris@1038 | 25 |
Chris@297 | 26 #include <sys/types.h> |
Chris@297 | 27 |
Chris@297 | 28 class Resampler |
Chris@297 | 29 { |
Chris@297 | 30 public: |
Chris@297 | 31 enum Quality { Best, FastestTolerable, Fastest }; |
Chris@297 | 32 |
Chris@1038 | 33 Resampler(Quality quality, int channels, sv_frame_t chunkSize = 0); |
Chris@297 | 34 ~Resampler(); |
Chris@297 | 35 |
Chris@1038 | 36 sv_frame_t resample(float **in, float **out, |
Chris@1038 | 37 sv_frame_t incount, double ratio, |
Chris@1038 | 38 bool final = false); |
Chris@297 | 39 |
Chris@1038 | 40 sv_frame_t resampleInterleaved(float *in, float *out, |
Chris@1038 | 41 sv_frame_t incount, double ratio, |
Chris@1038 | 42 bool final = false); |
Chris@297 | 43 |
Chris@297 | 44 void reset(); |
Chris@297 | 45 |
Chris@297 | 46 protected: |
Chris@297 | 47 class D; |
Chris@297 | 48 D *m_d; |
Chris@297 | 49 }; |
Chris@297 | 50 |
Chris@297 | 51 #endif |