annotate data/fileio/MatchFileReader.h @ 618:b1dc68507e46 sv-v1.7.1

* Layer data editor window: fix sorting for columns in region model, add Find feature * RDF import: assign names to layers based on event types, if no suitable labels are found in the RDF * Add label to status bar showing the last text that was passed in current layer (so e.g. counting 1, 2, 3, 4 if that's what beats are labelled) * Better layout of text labels for region layers in segmentation mode when they are close together * Give text layer the same method for finding "nearest point" as region and note layers, should improve its editability
author Chris Cannam
date Thu, 22 Oct 2009 15:54:21 +0000
parents c022976d18e8
children 06f13a3b9e9e
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@297 21
Chris@297 22 class QFile;
Chris@297 23 class Model;
Chris@297 24
Chris@297 25 class Alignment
Chris@297 26 {
Chris@297 27 public:
Chris@297 28 Alignment();
Chris@297 29
Chris@297 30 typedef std::vector<int> FrameArray;
Chris@297 31
Chris@297 32 double thisHopTime;
Chris@297 33 double refHopTime;
Chris@297 34
Chris@297 35 FrameArray thisIndex;
Chris@297 36 FrameArray refIndex;
Chris@297 37
Chris@297 38 double fromReference(double) const;
Chris@297 39 double toReference(double) const;
Chris@297 40
Chris@297 41 //!!! blah
Chris@297 42 void setMainModel(Model *m) { m_mainModel = m; }
Chris@297 43 bool isMainModel(Model *m) const { return m == m_mainModel; }
Chris@297 44
Chris@297 45 int search(const FrameArray &arr, int val) const;
Chris@297 46
Chris@297 47 protected:
Chris@297 48 Model *m_mainModel;
Chris@297 49 };
Chris@297 50
Chris@297 51 class MatchFileReader
Chris@297 52 {
Chris@297 53 public:
Chris@297 54 MatchFileReader(QString path);
Chris@297 55 virtual ~MatchFileReader();
Chris@297 56
Chris@297 57 virtual bool isOK() const;
Chris@297 58 virtual QString getError() const;
Chris@297 59 virtual Alignment load() const;
Chris@297 60
Chris@297 61 protected:
Chris@297 62 QFile *m_file;
Chris@297 63 QString m_error;
Chris@297 64 };
Chris@297 65
Chris@297 66 #endif
Chris@297 67