comparison main/MainWindow.h @ 580:f52766aa747b

Rename src -> main for consistency with SV/Sonic Lineup
author Chris Cannam
date Wed, 14 Aug 2019 11:57:06 +0100
parents src/MainWindow.h@5c14493026da
children d882f64e60db
comparison
equal deleted inserted replaced
579:47f96711069f 580:f52766aa747b
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2
3 /*
4 Tony
5 An intonation analysis and annotation tool
6 Centre for Digital Music, Queen Mary, University of London.
7 This file copyright 2006-2012 Chris Cannam and 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 _MAIN_WINDOW_H_
17 #define _MAIN_WINDOW_H_
18
19 #include "framework/MainWindowBase.h"
20 #include "Analyser.h"
21
22 class VersionTester;
23 class ActivityLog;
24 class LevelPanToolButton;
25
26 class MainWindow : public MainWindowBase
27 {
28 Q_OBJECT
29
30 public:
31 MainWindow(SoundOptions options, bool withSonification = true, bool withSpectrogram = true);
32 virtual ~MainWindow();
33
34 signals:
35 void canExportPitchTrack(bool);
36 void canExportNotes(bool);
37 void canSnapNotes(bool);
38 void canPlayWaveform(bool);
39 void canPlayPitch(bool);
40 void canPlayNotes(bool);
41
42 public slots:
43 virtual bool commitData(bool mayAskUser); // on session shutdown
44
45 protected slots:
46 virtual void openFile();
47 virtual void openLocation();
48 virtual void openRecentFile();
49 virtual void saveSession();
50 virtual void saveSessionInAudioPath();
51 virtual void saveSessionAs();
52 virtual void exportPitchLayer();
53 virtual void exportNoteLayer();
54 virtual void importPitchLayer();
55 virtual void browseRecordedAudio();
56 virtual void newSession();
57 virtual void closeSession();
58
59 virtual void toolNavigateSelected();
60 virtual void toolEditSelected();
61 virtual void toolFreeEditSelected();
62
63 virtual void clearPitches();
64 virtual void togglePitchCandidates();
65 virtual void switchPitchUp();
66 virtual void switchPitchDown();
67
68 virtual void snapNotesToPitches();
69 virtual void splitNote();
70 virtual void mergeNotes();
71 virtual void deleteNotes();
72 virtual void formNoteFromSelection();
73
74 virtual void showAudioToggled();
75 virtual void showSpectToggled();
76 virtual void showPitchToggled();
77 virtual void showNotesToggled();
78
79 virtual void playAudioToggled();
80 virtual void playPitchToggled();
81 virtual void playNotesToggled();
82
83 virtual void editDisplayExtents();
84
85 virtual void analyseNow();
86 virtual void resetAnalyseOptions();
87 virtual void autoAnalysisToggled();
88 virtual void precisionAnalysisToggled();
89 virtual void lowampAnalysisToggled();
90 virtual void onsetAnalysisToggled();
91 virtual void pruneAnalysisToggled();
92 virtual void updateAnalyseStates();
93
94 virtual void doubleClickSelectInvoked(sv_frame_t);
95 virtual void abandonSelection();
96
97 virtual void paneAdded(Pane *);
98 virtual void paneHidden(Pane *);
99 virtual void paneAboutToBeDeleted(Pane *);
100
101 virtual void paneDropAccepted(Pane *, QStringList);
102 virtual void paneDropAccepted(Pane *, QString);
103
104 virtual void playSpeedChanged(int);
105 virtual void playSharpenToggled();
106 virtual void playMonoToggled();
107
108 virtual void speedUpPlayback();
109 virtual void slowDownPlayback();
110 virtual void restoreNormalPlayback();
111
112 virtual void monitoringLevelsChanged(float, float);
113
114 virtual void audioGainChanged(float);
115 virtual void pitchGainChanged(float);
116 virtual void notesGainChanged(float);
117
118 virtual void audioPanChanged(float);
119 virtual void pitchPanChanged(float);
120 virtual void notesPanChanged(float);
121
122 virtual void sampleRateMismatch(sv_samplerate_t, sv_samplerate_t, bool);
123 virtual void audioOverloadPluginDisabled();
124 virtual void audioTimeStretchMultiChannelDisabled();
125
126 virtual void documentModified();
127 virtual void documentRestored();
128 virtual void documentReplaced();
129
130 virtual void updateMenuStates();
131 virtual void updateDescriptionLabel();
132 virtual void updateLayerStatuses();
133
134 virtual void layerRemoved(Layer *);
135 virtual void layerInAView(Layer *, bool);
136
137 virtual void mainModelChanged(ModelId);
138 virtual void mainModelGainChanged(float);
139 virtual void modelAdded(ModelId);
140
141 virtual void modelGenerationFailed(QString, QString);
142 virtual void modelGenerationWarning(QString, QString);
143 virtual void modelRegenerationFailed(QString, QString, QString);
144 virtual void modelRegenerationWarning(QString, QString, QString);
145 virtual void alignmentFailed(QString);
146
147 virtual void rightButtonMenuRequested(Pane *, QPoint point);
148
149 virtual void setupRecentFilesMenu();
150
151 virtual void handleOSCMessage(const OSCMessage &);
152
153 virtual void mouseEnteredWidget();
154 virtual void mouseLeftWidget();
155
156 virtual void website();
157 virtual void help();
158 virtual void about();
159 virtual void keyReference();
160
161 virtual void newerVersionAvailable(QString);
162
163 virtual void selectionChangedByUser();
164 virtual void regionOutlined(QRect);
165
166 virtual void analyseNewMainModel();
167
168 void moveOneNoteRight();
169 void moveOneNoteLeft();
170 void selectOneNoteRight();
171 void selectOneNoteLeft();
172
173 void ffwd();
174 void rewind();
175
176 protected:
177 Analyser *m_analyser;
178
179 Overview *m_overview;
180 Fader *m_fader;
181 AudioDial *m_playSpeed;
182 QPushButton *m_playSharpen;
183 QPushButton *m_playMono;
184 WaveformLayer *m_panLayer;
185
186 bool m_mainMenusCreated;
187 QMenu *m_playbackMenu;
188 QMenu *m_recentFilesMenu;
189 QMenu *m_rightButtonMenu;
190 QMenu *m_rightButtonPlaybackMenu;
191
192 QAction *m_deleteSelectedAction;
193 QAction *m_ffwdAction;
194 QAction *m_rwdAction;
195 QAction *m_editSelectAction;
196 QAction *m_showCandidatesAction;
197 QAction *m_toggleIntelligenceAction;
198 bool m_intelligentActionOn; // GF: !!! temporary
199
200 QAction *m_autoAnalyse;
201 QAction *m_precise;
202 QAction *m_lowamp;
203 QAction *m_onset;
204 QAction *m_prune;
205
206 QAction *m_showAudio;
207 QAction *m_showSpect;
208 QAction *m_showPitch;
209 QAction *m_showNotes;
210 QAction *m_playAudio;
211 QAction *m_playPitch;
212 QAction *m_playNotes;
213 LevelPanToolButton *m_audioLPW;
214 LevelPanToolButton *m_pitchLPW;
215 LevelPanToolButton *m_notesLPW;
216
217 ActivityLog *m_activityLog;
218 KeyReference *m_keyReference;
219 VersionTester *m_versionTester;
220
221 sv_frame_t m_selectionAnchor;
222
223 bool m_withSonification;
224 bool m_withSpectrogram;
225
226 Analyser::FrequencyRange m_pendingConstraint;
227
228 QString exportToSVL(QString path, Layer *layer);
229 FileOpenStatus importPitchLayer(FileSource source);
230
231 virtual void setupMenus();
232 virtual void setupFileMenu();
233 virtual void setupEditMenu();
234 virtual void setupViewMenu();
235 virtual void setupAnalysisMenu();
236 virtual void setupHelpMenu();
237 virtual void setupToolbars();
238
239 virtual void octaveShift(bool up);
240
241 virtual void auxSnapNotes(Selection s);
242
243 virtual void closeEvent(QCloseEvent *e);
244 bool checkSaveModified();
245 bool waitForInitialAnalysis();
246
247 virtual void updateVisibleRangeDisplay(Pane *p) const;
248 virtual void updatePositionStatusDisplays() const;
249
250 void moveByOneNote(bool right, bool doSelect);
251 };
252
253
254 #endif