annotate data/fileio/MatchFileReader.h @ 1021:1888ca033a84

If the first column of a CSV file has zero or one non-empty values in it, during the first 5 rows, then ignore it by default
author Chris Cannam
date Mon, 01 Dec 2014 10:18:55 +0000
parents 06f13a3b9e9e
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 This file copyright 2007 QMUL.
Chris@297 8
Chris@297 9 This program is free software; you can redistribute it and/or
Chris@297 10 modify it under the terms of the GNU General Public License as
Chris@297 11 published by the Free Software Foundation; either version 2 of the
Chris@297 12 License, or (at your option) any later version. See the file
Chris@297 13 COPYING included with this distribution for more information.
Chris@297 14 */
Chris@297 15
Chris@297 16 #ifndef _MATCH_FILE_READER_H_
Chris@297 17 #define _MATCH_FILE_READER_H_
Chris@297 18
Chris@297 19 #include <vector>
Chris@297 20 #include <QString>
Chris@687 21 #include "base/Debug.h"
Chris@297 22
Chris@297 23 class QFile;
Chris@297 24 class Model;
Chris@297 25
Chris@297 26 class Alignment
Chris@297 27 {
Chris@297 28 public:
Chris@297 29 Alignment();
Chris@297 30
Chris@297 31 typedef std::vector<int> FrameArray;
Chris@297 32
Chris@297 33 double thisHopTime;
Chris@297 34 double refHopTime;
Chris@297 35
Chris@297 36 FrameArray thisIndex;
Chris@297 37 FrameArray refIndex;
Chris@297 38
Chris@297 39 double fromReference(double) const;
Chris@297 40 double toReference(double) const;
Chris@297 41
Chris@297 42 //!!! blah
Chris@297 43 void setMainModel(Model *m) { m_mainModel = m; }
Chris@297 44 bool isMainModel(Model *m) const { return m == m_mainModel; }
Chris@297 45
Chris@297 46 int search(const FrameArray &arr, int val) const;
Chris@297 47
Chris@297 48 protected:
Chris@297 49 Model *m_mainModel;
Chris@297 50 };
Chris@297 51
Chris@297 52 class MatchFileReader
Chris@297 53 {
Chris@297 54 public:
Chris@297 55 MatchFileReader(QString path);
Chris@297 56 virtual ~MatchFileReader();
Chris@297 57
Chris@297 58 virtual bool isOK() const;
Chris@297 59 virtual QString getError() const;
Chris@297 60 virtual Alignment load() const;
Chris@297 61
Chris@297 62 protected:
Chris@297 63 QFile *m_file;
Chris@297 64 QString m_error;
Chris@297 65 };
Chris@297 66
Chris@297 67 #endif
Chris@297 68