annotate main/MainWindow.h @ 698:ee97c742d184 tip

Default branch is now named default on git as well as hg, in case we ever want to switch to mirroring in the other direction
author Chris Cannam
date Thu, 27 Aug 2020 15:58:43 +0100
parents 0a78db6145b2
children
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
Chris@0 127 virtual void documentModified();
Chris@0 128 virtual void documentRestored();
Chris@244 129 virtual void documentReplaced();
Chris@0 130
Chris@0 131 virtual void updateMenuStates();
Chris@0 132 virtual void updateDescriptionLabel();
Chris@144 133 virtual void updateLayerStatuses();
Chris@0 134
Chris@0 135 virtual void layerRemoved(Layer *);
Chris@0 136 virtual void layerInAView(Layer *, bool);
Chris@0 137
Chris@572 138 virtual void mainModelChanged(ModelId);
Chris@474 139 virtual void mainModelGainChanged(float);
Chris@572 140 virtual void modelAdded(ModelId);
Chris@0 141
Chris@0 142 virtual void modelGenerationFailed(QString, QString);
Chris@0 143 virtual void modelGenerationWarning(QString, QString);
Chris@0 144 virtual void modelRegenerationFailed(QString, QString, QString);
Chris@0 145 virtual void modelRegenerationWarning(QString, QString, QString);
Chris@697 146 virtual void alignmentFailed(ModelId, QString);
Chris@0 147
Chris@688 148 virtual void paneRightButtonMenuRequested(Pane *, QPoint point);
Chris@688 149 virtual void panePropertiesRightButtonMenuRequested(Pane *, QPoint point);
Chris@688 150 virtual void layerPropertiesRightButtonMenuRequested(Pane *, Layer *, QPoint point);
Chris@0 151
Chris@0 152 virtual void setupRecentFilesMenu();
Chris@0 153
Chris@0 154 virtual void handleOSCMessage(const OSCMessage &);
Chris@0 155
Chris@0 156 virtual void mouseEnteredWidget();
Chris@0 157 virtual void mouseLeftWidget();
Chris@0 158
Chris@0 159 virtual void help();
Chris@0 160 virtual void about();
Chris@0 161 virtual void keyReference();
Chris@585 162 virtual void whatsNew();
Chris@0 163
Chris@609 164 virtual void betaReleaseWarning();
Chris@609 165
Chris@231 166 virtual void newerVersionAvailable(QString);
Chris@231 167
Chris@192 168 virtual void selectionChangedByUser();
Chris@192 169 virtual void regionOutlined(QRect);
Chris@164 170
Chris@260 171 virtual void analyseNewMainModel();
Chris@260 172
matthiasm@281 173 void moveOneNoteRight();
matthiasm@281 174 void moveOneNoteLeft();
matthiasm@283 175 void selectOneNoteRight();
matthiasm@283 176 void selectOneNoteLeft();
matthiasm@281 177
matthiasm@356 178 void ffwd();
matthiasm@356 179 void rewind();
matthiasm@356 180
Chris@0 181 protected:
Chris@6 182 Analyser *m_analyser;
Chris@0 183
Chris@6 184 Overview *m_overview;
Chris@6 185 Fader *m_fader;
Chris@6 186 AudioDial *m_playSpeed;
Chris@6 187 QPushButton *m_playSharpen;
Chris@6 188 QPushButton *m_playMono;
Chris@6 189 WaveformLayer *m_panLayer;
Chris@0 190
Chris@6 191 bool m_mainMenusCreated;
Chris@6 192 QMenu *m_playbackMenu;
Chris@6 193 QMenu *m_recentFilesMenu;
Chris@6 194 QMenu *m_rightButtonMenu;
Chris@6 195 QMenu *m_rightButtonPlaybackMenu;
Chris@0 196
Chris@6 197 QAction *m_deleteSelectedAction;
Chris@6 198 QAction *m_ffwdAction;
Chris@6 199 QAction *m_rwdAction;
gyorgyf@24 200 QAction *m_editSelectAction;
Chris@187 201 QAction *m_showCandidatesAction;
gyorgyf@45 202 QAction *m_toggleIntelligenceAction;
gyorgyf@45 203 bool m_intelligentActionOn; // GF: !!! temporary
Chris@128 204
Chris@427 205 QAction *m_autoAnalyse;
Chris@427 206 QAction *m_precise;
Chris@427 207 QAction *m_lowamp;
Chris@427 208 QAction *m_onset;
Chris@427 209 QAction *m_prune;
Chris@427 210
Chris@144 211 QAction *m_showAudio;
Chris@145 212 QAction *m_showSpect;
Chris@144 213 QAction *m_showPitch;
Chris@144 214 QAction *m_showNotes;
Chris@424 215 QAction *m_playAudio;
Chris@424 216 QAction *m_playPitch;
Chris@424 217 QAction *m_playNotes;
Chris@414 218 LevelPanToolButton *m_audioLPW;
Chris@414 219 LevelPanToolButton *m_pitchLPW;
Chris@414 220 LevelPanToolButton *m_notesLPW;
gyorgyf@45 221
Chris@244 222 ActivityLog *m_activityLog;
Chris@6 223 KeyReference *m_keyReference;
Chris@95 224 VersionTester *m_versionTester;
Chris@585 225 QString m_newerVersionIs;
Chris@0 226
Chris@399 227 sv_frame_t m_selectionAnchor;
matthiasm@296 228
matthiasm@364 229 bool m_withSonification;
matthiasm@364 230 bool m_withSpectrogram;
matthiasm@364 231
Chris@192 232 Analyser::FrequencyRange m_pendingConstraint;
Chris@192 233
Chris@85 234 QString exportToSVL(QString path, Layer *layer);
Chris@174 235 FileOpenStatus importPitchLayer(FileSource source);
Chris@85 236
Chris@598 237 QString getReleaseText() const;
Chris@598 238
Chris@0 239 virtual void setupMenus();
Chris@0 240 virtual void setupFileMenu();
Chris@0 241 virtual void setupEditMenu();
Chris@0 242 virtual void setupViewMenu();
matthiasm@317 243 virtual void setupAnalysisMenu();
Chris@0 244 virtual void setupHelpMenu();
Chris@0 245 virtual void setupToolbars();
Chris@0 246
Chris@142 247 virtual void octaveShift(bool up);
Chris@142 248
Chris@239 249 virtual void auxSnapNotes(Selection s);
Chris@239 250
Chris@0 251 virtual void closeEvent(QCloseEvent *e);
Chris@0 252 bool checkSaveModified();
Chris@314 253 bool waitForInitialAnalysis();
Chris@0 254
Chris@0 255 virtual void updateVisibleRangeDisplay(Pane *p) const;
Chris@0 256 virtual void updatePositionStatusDisplays() const;
matthiasm@281 257
matthiasm@296 258 void moveByOneNote(bool right, bool doSelect);
Chris@0 259 };
Chris@0 260
Chris@0 261
Chris@0 262 #endif