cannam@0: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ cannam@0: /* cannam@0: Vamp feature extraction plugin using the MATCH audio alignment cannam@0: algorithm. cannam@0: cannam@0: Centre for Digital Music, Queen Mary, University of London. cannam@0: This file copyright 2007 Simon Dixon, Chris Cannam and QMUL. cannam@0: cannam@0: This program is free software; you can redistribute it and/or cannam@0: modify it under the terms of the GNU General Public License as cannam@0: published by the Free Software Foundation; either version 2 of the cannam@0: License, or (at your option) any later version. See the file cannam@0: COPYING included with this distribution for more information. cannam@0: */ cannam@0: cannam@0: #ifndef _MATCH_FEEDER_H_ cannam@0: #define _MATCH_FEEDER_H_ cannam@0: cannam@0: #include "Matcher.h" cannam@0: #include "Finder.h" cannam@0: cannam@0: #include cannam@0: cannam@0: class MatchFeeder cannam@0: { cannam@0: public: cannam@0: MatchFeeder(Matcher *m1, Matcher *m2); cannam@0: ~MatchFeeder(); cannam@0: cannam@0: void feed(const float *const *input); cannam@0: cannam@0: Finder *getFinder() { return finder; } cannam@0: cannam@0: protected: cannam@0: void feedBlock(); cannam@0: void feed1(); cannam@0: void feed2(); cannam@0: cannam@0: Finder *finder; cannam@0: Matcher *pm1; cannam@0: Matcher *pm2; cannam@0: cannam@0: size_t fftSize; cannam@0: double *reBuffer; cannam@0: double *imBuffer; cannam@0: cannam@0: std::queue q1; cannam@0: std::queue q2; cannam@0: }; cannam@0: cannam@0: #endif