comparison 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
comparison
equal deleted inserted replaced
296:2b6c99b607f1 297:c022976d18e8
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2
3 /*
4 Sonic Visualiser
5 An audio file viewer and annotation editor.
6 Centre for Digital Music, Queen Mary, University of London.
7 This file copyright 2007 QMUL.
8
9 This program is free software; you can redistribute it and/or
10 modify it under the terms of the GNU General Public License as
11 published by the Free Software Foundation; either version 2 of the
12 License, or (at your option) any later version. See the file
13 COPYING included with this distribution for more information.
14 */
15
16 #ifndef _MATCH_FILE_READER_H_
17 #define _MATCH_FILE_READER_H_
18
19 #include <vector>
20 #include <QString>
21
22 class QFile;
23 class Model;
24
25 class Alignment
26 {
27 public:
28 Alignment();
29
30 typedef std::vector<int> FrameArray;
31
32 double thisHopTime;
33 double refHopTime;
34
35 FrameArray thisIndex;
36 FrameArray refIndex;
37
38 double fromReference(double) const;
39 double toReference(double) const;
40
41 //!!! blah
42 void setMainModel(Model *m) { m_mainModel = m; }
43 bool isMainModel(Model *m) const { return m == m_mainModel; }
44
45 int search(const FrameArray &arr, int val) const;
46
47 protected:
48 Model *m_mainModel;
49 };
50
51 class MatchFileReader
52 {
53 public:
54 MatchFileReader(QString path);
55 virtual ~MatchFileReader();
56
57 virtual bool isOK() const;
58 virtual QString getError() const;
59 virtual Alignment load() const;
60
61 protected:
62 QFile *m_file;
63 QString m_error;
64 };
65
66 #endif
67