Chris@297: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ Chris@297: Chris@297: /* Chris@297: Sonic Visualiser Chris@297: An audio file viewer and annotation editor. Chris@297: Centre for Digital Music, Queen Mary, University of London. Chris@297: This file copyright 2007 QMUL. Chris@297: Chris@297: This program is free software; you can redistribute it and/or Chris@297: modify it under the terms of the GNU General Public License as Chris@297: published by the Free Software Foundation; either version 2 of the Chris@297: License, or (at your option) any later version. See the file Chris@297: COPYING included with this distribution for more information. Chris@297: */ Chris@297: Chris@297: #ifndef _MATCH_FILE_READER_H_ Chris@297: #define _MATCH_FILE_READER_H_ Chris@297: Chris@297: #include Chris@297: #include Chris@687: #include "base/Debug.h" Chris@297: Chris@297: class QFile; Chris@297: class Model; Chris@297: Chris@297: class Alignment Chris@297: { Chris@297: public: Chris@297: Alignment(); Chris@297: Chris@297: typedef std::vector FrameArray; Chris@297: Chris@297: double thisHopTime; Chris@297: double refHopTime; Chris@297: Chris@297: FrameArray thisIndex; Chris@297: FrameArray refIndex; Chris@297: Chris@297: double fromReference(double) const; Chris@297: double toReference(double) const; Chris@297: Chris@297: //!!! blah Chris@297: void setMainModel(Model *m) { m_mainModel = m; } Chris@297: bool isMainModel(Model *m) const { return m == m_mainModel; } Chris@297: Chris@297: int search(const FrameArray &arr, int val) const; Chris@297: Chris@297: protected: Chris@297: Model *m_mainModel; Chris@297: }; Chris@297: Chris@297: class MatchFileReader Chris@297: { Chris@297: public: Chris@297: MatchFileReader(QString path); Chris@297: virtual ~MatchFileReader(); Chris@297: Chris@297: virtual bool isOK() const; Chris@297: virtual QString getError() const; Chris@297: virtual Alignment load() const; Chris@297: Chris@297: protected: Chris@297: QFile *m_file; Chris@297: QString m_error; Chris@297: }; Chris@297: Chris@297: #endif Chris@297: