annotate data/fileio/MatchFileReader.h @ 297:c022976d18e8

* Merge from sv-match-alignment branch (excluding alignment-specific document). - add aggregate wave model (not yet complete enough to be added as a true model in a layer, but there's potential) - add play solo mode - add alignment model -- unused in plain SV - fix two plugin leaks - add m3u playlist support (opens all files at once, potentially hazardous) - fix retrieval of pre-encoded URLs - add ability to resample audio files on import, so as to match rates with other files previously loaded; add preference for same - add preliminary support in transform code for range and rate of transform input - reorganise preferences dialog, move dark-background option to preferences, add option for temporary directory location
author Chris Cannam
date Fri, 28 Sep 2007 13:56:38 +0000
parents
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