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@752
|
15 #ifndef SV_TRANSFORM_ALIGNER_H
|
Chris@752
|
16 #define SV_TRANSFORM_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@753
|
23 class TransformAligner : public Aligner
|
Chris@752
|
24 {
|
Chris@752
|
25 Q_OBJECT
|
Chris@752
|
26
|
Chris@752
|
27 public:
|
Chris@752
|
28 TransformAligner(Document *doc,
|
Chris@752
|
29 ModelId reference,
|
Chris@752
|
30 ModelId toAlign);
|
Chris@752
|
31
|
Chris@752
|
32 // Destroy the aligner, cleanly cancelling any ongoing alignment
|
Chris@752
|
33 ~TransformAligner();
|
Chris@752
|
34
|
Chris@761
|
35 void begin() override;
|
Chris@752
|
36
|
Chris@752
|
37 static bool isAvailable();
|
Chris@752
|
38
|
Chris@752
|
39 private slots:
|
Chris@752
|
40 void alignmentCompletionChanged(ModelId);
|
Chris@752
|
41 void tuningDifferenceCompletionChanged(ModelId);
|
Chris@752
|
42
|
Chris@752
|
43 private:
|
Chris@752
|
44 static QString getAlignmentTransformName();
|
Chris@752
|
45 static QString getTuningDifferenceTransformName();
|
Chris@752
|
46
|
Chris@752
|
47 bool beginAlignmentPhase();
|
Chris@752
|
48
|
Chris@752
|
49 Document *m_document;
|
Chris@752
|
50 ModelId m_reference;
|
Chris@752
|
51 ModelId m_toAlign;
|
Chris@752
|
52 ModelId m_aggregateModel; // an AggregateWaveModel
|
Chris@752
|
53 ModelId m_alignmentModel; // an AlignmentModel
|
Chris@752
|
54 ModelId m_tuningDiffProgressModel; // SparseTimeValueModel, unreg'd with doc
|
Chris@752
|
55 ModelId m_tuningDiffOutputModel; // SparseTimeValueModel, unreg'd with doc
|
Chris@752
|
56 ModelId m_pathOutputModel; // SparseTimeValueModel, unreg'd with doc
|
Chris@752
|
57 float m_tuningFrequency;
|
Chris@752
|
58 bool m_incomplete;
|
Chris@752
|
59 };
|
Chris@752
|
60
|
Chris@752
|
61 #endif
|