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@767
|
30 ModelId toAlign,
|
Chris@767
|
31 bool withTuningDifference);
|
Chris@767
|
32
|
Chris@767
|
33 //!!! pass in transform id
|
Chris@752
|
34
|
Chris@752
|
35 // Destroy the aligner, cleanly cancelling any ongoing alignment
|
Chris@752
|
36 ~TransformAligner();
|
Chris@752
|
37
|
Chris@761
|
38 void begin() override;
|
Chris@752
|
39
|
Chris@752
|
40 static bool isAvailable();
|
Chris@752
|
41
|
Chris@752
|
42 private slots:
|
Chris@752
|
43 void alignmentCompletionChanged(ModelId);
|
Chris@752
|
44 void tuningDifferenceCompletionChanged(ModelId);
|
Chris@752
|
45
|
Chris@752
|
46 private:
|
Chris@752
|
47 static QString getAlignmentTransformName();
|
Chris@752
|
48 static QString getTuningDifferenceTransformName();
|
Chris@752
|
49
|
Chris@752
|
50 bool beginAlignmentPhase();
|
Chris@752
|
51
|
Chris@752
|
52 Document *m_document;
|
Chris@752
|
53 ModelId m_reference;
|
Chris@752
|
54 ModelId m_toAlign;
|
Chris@752
|
55 ModelId m_aggregateModel; // an AggregateWaveModel
|
Chris@752
|
56 ModelId m_alignmentModel; // an AlignmentModel
|
Chris@752
|
57 ModelId m_tuningDiffOutputModel; // SparseTimeValueModel, unreg'd with doc
|
Chris@752
|
58 ModelId m_pathOutputModel; // SparseTimeValueModel, unreg'd with doc
|
Chris@767
|
59 bool m_withTuningDifference;
|
Chris@752
|
60 float m_tuningFrequency;
|
Chris@752
|
61 bool m_incomplete;
|
Chris@752
|
62 };
|
Chris@752
|
63
|
Chris@752
|
64 #endif
|