annotate main/MainWindow.h @ 635:41e221cd740e

Update subrepos and adapt to new MainWindowBase API, ensuring that we don't get the recording permission dialog until we actually record
author Chris Cannam
date Wed, 16 Oct 2019 16:03:47 +0100
parents ef0778016c88
children a2c308bd5530
rev   line source
Chris@0 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@0 2
Chris@0 3 /*
Chris@0 4 Tony
Chris@0 5 An intonation analysis and annotation tool
Chris@0 6 Centre for Digital Music, Queen Mary, University of London.
Chris@0 7 This file copyright 2006-2012 Chris Cannam and QMUL.
Chris@0 8
Chris@0 9 This program is free software; you can redistribute it and/or
Chris@0 10 modify it under the terms of the GNU General Public License as
Chris@0 11 published by the Free Software Foundation; either version 2 of the
Chris@0 12 License, or (at your option) any later version. See the file
Chris@0 13 COPYING included with this distribution for more information.
Chris@0 14 */
Chris@0 15
Chris@0 16 #ifndef _MAIN_WINDOW_H_
Chris@0 17 #define _MAIN_WINDOW_H_
Chris@0 18
Chris@0 19 #include "framework/MainWindowBase.h"
Chris@192 20 #include "Analyser.h"
Chris@0 21
Chris@95 22 class VersionTester;
Chris@244 23 class ActivityLog;
Chris@414 24 class LevelPanToolButton;
Chris@6 25
Chris@0 26 class MainWindow : public MainWindowBase
Chris@0 27 {
Chris@0 28 Q_OBJECT
Chris@0 29
Chris@0 30 public:
Chris@635 31 MainWindow(AudioMode audioMode,
Chris@635 32 bool withSonification = true,
Chris@635 33 bool withSpectrogram = true);
Chris@0 34 virtual ~MainWindow();
Chris@0 35
Chris@224 36 signals:
Chris@244 37 void canExportPitchTrack(bool);
Chris@244 38 void canExportNotes(bool);
Chris@244 39 void canSnapNotes(bool);
Chris@291 40 void canPlayWaveform(bool);
Chris@291 41 void canPlayPitch(bool);
Chris@291 42 void canPlayNotes(bool);
Chris@224 43
Chris@0 44 public slots:
Chris@0 45 virtual bool commitData(bool mayAskUser); // on session shutdown
Chris@0 46
Chris@0 47 protected slots:
Chris@0 48 virtual void openFile();
Chris@0 49 virtual void openLocation();
Chris@0 50 virtual void openRecentFile();
Chris@0 51 virtual void saveSession();
matthiasm@310 52 virtual void saveSessionInAudioPath();
Chris@0 53 virtual void saveSessionAs();
Chris@85 54 virtual void exportPitchLayer();
Chris@85 55 virtual void exportNoteLayer();
Chris@174 56 virtual void importPitchLayer();
Chris@485 57 virtual void browseRecordedAudio();
Chris@0 58 virtual void newSession();
Chris@0 59 virtual void closeSession();
Chris@0 60
Chris@70 61 virtual void toolNavigateSelected();
Chris@70 62 virtual void toolEditSelected();
Chris@70 63 virtual void toolFreeEditSelected();
Chris@70 64
Chris@168 65 virtual void clearPitches();
Chris@184 66 virtual void togglePitchCandidates();
Chris@184 67 virtual void switchPitchUp();
Chris@184 68 virtual void switchPitchDown();
Chris@142 69
Chris@237 70 virtual void snapNotesToPitches();
Chris@240 71 virtual void splitNote();
Chris@238 72 virtual void mergeNotes();
matthiasm@292 73 virtual void deleteNotes();
Chris@240 74 virtual void formNoteFromSelection();
Chris@237 75
Chris@144 76 virtual void showAudioToggled();
Chris@145 77 virtual void showSpectToggled();
Chris@144 78 virtual void showPitchToggled();
Chris@144 79 virtual void showNotesToggled();
Chris@144 80
Chris@144 81 virtual void playAudioToggled();
Chris@144 82 virtual void playPitchToggled();
Chris@144 83 virtual void playNotesToggled();
Chris@128 84
Chris@227 85 virtual void editDisplayExtents();
Chris@227 86
Chris@323 87 virtual void analyseNow();
Chris@427 88 virtual void resetAnalyseOptions();
Chris@323 89 virtual void autoAnalysisToggled();
Chris@323 90 virtual void precisionAnalysisToggled();
matthiasm@345 91 virtual void lowampAnalysisToggled();
matthiasm@423 92 virtual void onsetAnalysisToggled();
matthiasm@423 93 virtual void pruneAnalysisToggled();
Chris@427 94 virtual void updateAnalyseStates();
Chris@323 95
Chris@399 96 virtual void doubleClickSelectInvoked(sv_frame_t);
Chris@194 97 virtual void abandonSelection();
Chris@139 98
Chris@0 99 virtual void paneAdded(Pane *);
Chris@0 100 virtual void paneHidden(Pane *);
Chris@0 101 virtual void paneAboutToBeDeleted(Pane *);
Chris@0 102
Chris@0 103 virtual void paneDropAccepted(Pane *, QStringList);
Chris@0 104 virtual void paneDropAccepted(Pane *, QString);
Chris@0 105
Chris@0 106 virtual void playSpeedChanged(int);
Chris@0 107 virtual void playSharpenToggled();
Chris@0 108 virtual void playMonoToggled();
Chris@0 109
Chris@0 110 virtual void speedUpPlayback();
Chris@0 111 virtual void slowDownPlayback();
Chris@0 112 virtual void restoreNormalPlayback();
Chris@0 113
Chris@521 114 virtual void monitoringLevelsChanged(float, float);
Chris@521 115
Chris@404 116 virtual void audioGainChanged(float);
Chris@404 117 virtual void pitchGainChanged(float);
Chris@404 118 virtual void notesGainChanged(float);
justin@159 119
Chris@404 120 virtual void audioPanChanged(float);
Chris@404 121 virtual void pitchPanChanged(float);
Chris@404 122 virtual void notesPanChanged(float);
justin@160 123
Chris@399 124 virtual void sampleRateMismatch(sv_samplerate_t, sv_samplerate_t, bool);
Chris@0 125 virtual void audioOverloadPluginDisabled();
Chris@0 126 virtual void audioTimeStretchMultiChannelDisabled();
Chris@0 127
Chris@0 128 virtual void documentModified();
Chris@0 129 virtual void documentRestored();
Chris@244 130 virtual void documentReplaced();
Chris@0 131
Chris@0 132 virtual void updateMenuStates();
Chris@0 133 virtual void updateDescriptionLabel();
Chris@144 134 virtual void updateLayerStatuses();
Chris@0 135
Chris@0 136 virtual void layerRemoved(Layer *);
Chris@0 137 virtual void layerInAView(Layer *, bool);
Chris@0 138
Chris@572 139 virtual void mainModelChanged(ModelId);
Chris@474 140 virtual void mainModelGainChanged(float);
Chris@572 141 virtual void modelAdded(ModelId);
Chris@0 142
Chris@0 143 virtual void modelGenerationFailed(QString, QString);
Chris@0 144 virtual void modelGenerationWarning(QString, QString);
Chris@0 145 virtual void modelRegenerationFailed(QString, QString, QString);
Chris@0 146 virtual void modelRegenerationWarning(QString, QString, QString);
Chris@520 147 virtual void alignmentFailed(QString);
Chris@0 148
Chris@0 149 virtual void rightButtonMenuRequested(Pane *, QPoint point);
Chris@0 150
Chris@0 151 virtual void setupRecentFilesMenu();
Chris@0 152
Chris@0 153 virtual void handleOSCMessage(const OSCMessage &);
Chris@0 154
Chris@0 155 virtual void mouseEnteredWidget();
Chris@0 156 virtual void mouseLeftWidget();
Chris@0 157
Chris@0 158 virtual void help();
Chris@0 159 virtual void about();
Chris@0 160 virtual void keyReference();
Chris@585 161 virtual void whatsNew();
Chris@0 162
Chris@609 163 virtual void betaReleaseWarning();
Chris@609 164
Chris@231 165 virtual void newerVersionAvailable(QString);
Chris@231 166
Chris@192 167 virtual void selectionChangedByUser();
Chris@192 168 virtual void regionOutlined(QRect);
Chris@164 169
Chris@260 170 virtual void analyseNewMainModel();
Chris@260 171
matthiasm@281 172 void moveOneNoteRight();
matthiasm@281 173 void moveOneNoteLeft();
matthiasm@283 174 void selectOneNoteRight();
matthiasm@283 175 void selectOneNoteLeft();
matthiasm@281 176
matthiasm@356 177 void ffwd();
matthiasm@356 178 void rewind();
matthiasm@356 179
Chris@0 180 protected:
Chris@6 181 Analyser *m_analyser;
Chris@0 182
Chris@6 183 Overview *m_overview;
Chris@6 184 Fader *m_fader;
Chris@6 185 AudioDial *m_playSpeed;
Chris@6 186 QPushButton *m_playSharpen;
Chris@6 187 QPushButton *m_playMono;
Chris@6 188 WaveformLayer *m_panLayer;
Chris@0 189
Chris@6 190 bool m_mainMenusCreated;
Chris@6 191 QMenu *m_playbackMenu;
Chris@6 192 QMenu *m_recentFilesMenu;
Chris@6 193 QMenu *m_rightButtonMenu;
Chris@6 194 QMenu *m_rightButtonPlaybackMenu;
Chris@0 195
Chris@6 196 QAction *m_deleteSelectedAction;
Chris@6 197 QAction *m_ffwdAction;
Chris@6 198 QAction *m_rwdAction;
gyorgyf@24 199 QAction *m_editSelectAction;
Chris@187 200 QAction *m_showCandidatesAction;
gyorgyf@45 201 QAction *m_toggleIntelligenceAction;
gyorgyf@45 202 bool m_intelligentActionOn; // GF: !!! temporary
Chris@128 203
Chris@427 204 QAction *m_autoAnalyse;
Chris@427 205 QAction *m_precise;
Chris@427 206 QAction *m_lowamp;
Chris@427 207 QAction *m_onset;
Chris@427 208 QAction *m_prune;
Chris@427 209
Chris@144 210 QAction *m_showAudio;
Chris@145 211 QAction *m_showSpect;
Chris@144 212 QAction *m_showPitch;
Chris@144 213 QAction *m_showNotes;
Chris@424 214 QAction *m_playAudio;
Chris@424 215 QAction *m_playPitch;
Chris@424 216 QAction *m_playNotes;
Chris@414 217 LevelPanToolButton *m_audioLPW;
Chris@414 218 LevelPanToolButton *m_pitchLPW;
Chris@414 219 LevelPanToolButton *m_notesLPW;
gyorgyf@45 220
Chris@244 221 ActivityLog *m_activityLog;
Chris@6 222 KeyReference *m_keyReference;
Chris@95 223 VersionTester *m_versionTester;
Chris@585 224 QString m_newerVersionIs;
Chris@0 225
Chris@399 226 sv_frame_t m_selectionAnchor;
matthiasm@296 227
matthiasm@364 228 bool m_withSonification;
matthiasm@364 229 bool m_withSpectrogram;
matthiasm@364 230
Chris@192 231 Analyser::FrequencyRange m_pendingConstraint;
Chris@192 232
Chris@85 233 QString exportToSVL(QString path, Layer *layer);
Chris@174 234 FileOpenStatus importPitchLayer(FileSource source);
Chris@85 235
Chris@598 236 QString getReleaseText() const;
Chris@598 237
Chris@0 238 virtual void setupMenus();
Chris@0 239 virtual void setupFileMenu();
Chris@0 240 virtual void setupEditMenu();
Chris@0 241 virtual void setupViewMenu();
matthiasm@317 242 virtual void setupAnalysisMenu();
Chris@0 243 virtual void setupHelpMenu();
Chris@0 244 virtual void setupToolbars();
Chris@0 245
Chris@142 246 virtual void octaveShift(bool up);
Chris@142 247
Chris@239 248 virtual void auxSnapNotes(Selection s);
Chris@239 249
Chris@0 250 virtual void closeEvent(QCloseEvent *e);
Chris@0 251 bool checkSaveModified();
Chris@314 252 bool waitForInitialAnalysis();
Chris@0 253
Chris@0 254 virtual void updateVisibleRangeDisplay(Pane *p) const;
Chris@0 255 virtual void updatePositionStatusDisplays() const;
matthiasm@281 256
matthiasm@296 257 void moveByOneNote(bool right, bool doSelect);
Chris@0 258 };
Chris@0 259
Chris@0 260
Chris@0 261 #endif