Chris@752
|
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
|
Chris@752
|
2
|
Chris@752
|
3 /*
|
Chris@752
|
4 Sonic Visualiser
|
Chris@752
|
5 An audio file viewer and annotation editor.
|
Chris@752
|
6 Centre for Digital Music, Queen Mary, University of London.
|
Chris@752
|
7
|
Chris@752
|
8 This program is free software; you can redistribute it and/or
|
Chris@752
|
9 modify it under the terms of the GNU General Public License as
|
Chris@752
|
10 published by the Free Software Foundation; either version 2 of the
|
Chris@752
|
11 License, or (at your option) any later version. See the file
|
Chris@752
|
12 COPYING included with this distribution for more information.
|
Chris@752
|
13 */
|
Chris@752
|
14
|
Chris@777
|
15 #ifndef SV_MATCH_ALIGNER_H
|
Chris@777
|
16 #define SV_MATCH_ALIGNER_H
|
Chris@752
|
17
|
Chris@753
|
18 #include "Aligner.h"
|
Chris@752
|
19
|
Chris@752
|
20 class AlignmentModel;
|
Chris@752
|
21 class Document;
|
Chris@752
|
22
|
Chris@777
|
23 class MATCHAligner : public Aligner
|
Chris@752
|
24 {
|
Chris@752
|
25 Q_OBJECT
|
Chris@752
|
26
|
Chris@752
|
27 public:
|
Chris@777
|
28 MATCHAligner(Document *doc,
|
Chris@777
|
29 ModelId reference,
|
Chris@777
|
30 ModelId toAlign,
|
Chris@777
|
31 bool withTuningDifference);
|
Chris@752
|
32
|
Chris@752
|
33 // Destroy the aligner, cleanly cancelling any ongoing alignment
|
Chris@777
|
34 ~MATCHAligner();
|
Chris@752
|
35
|
Chris@761
|
36 void begin() override;
|
Chris@752
|
37
|
Chris@752
|
38 static bool isAvailable();
|
Chris@752
|
39
|
Chris@752
|
40 private slots:
|
Chris@752
|
41 void alignmentCompletionChanged(ModelId);
|
Chris@752
|
42 void tuningDifferenceCompletionChanged(ModelId);
|
Chris@752
|
43
|
Chris@752
|
44 private:
|
Chris@752
|
45 static QString getAlignmentTransformName();
|
Chris@752
|
46 static QString getTuningDifferenceTransformName();
|
Chris@752
|
47
|
Chris@752
|
48 bool beginAlignmentPhase();
|
Chris@752
|
49
|
Chris@752
|
50 Document *m_document;
|
Chris@752
|
51 ModelId m_reference;
|
Chris@752
|
52 ModelId m_toAlign;
|
Chris@752
|
53 ModelId m_aggregateModel; // an AggregateWaveModel
|
Chris@752
|
54 ModelId m_alignmentModel; // an AlignmentModel
|
Chris@752
|
55 ModelId m_tuningDiffOutputModel; // SparseTimeValueModel, unreg'd with doc
|
Chris@752
|
56 ModelId m_pathOutputModel; // SparseTimeValueModel, unreg'd with doc
|
Chris@767
|
57 bool m_withTuningDifference;
|
Chris@752
|
58 float m_tuningFrequency;
|
Chris@752
|
59 bool m_incomplete;
|
Chris@752
|
60 };
|
Chris@752
|
61
|
Chris@752
|
62 #endif
|