annotate src/MainWindow.h @ 198:bb391844e2aa

Switching pitch candidate no longer wraps around: you can't go higher than the highest or lower than the lowest (though you can go either "up" or "down" if none of the alternate candidates has been selected yet, regardless of whether the candidates are higher or lower than the actual pitch track)
author Chris Cannam
date Wed, 05 Mar 2014 11:39:28 +0000
parents 34797795a76c
children e79f63161b41
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@6 23
Chris@0 24 class MainWindow : public MainWindowBase
Chris@0 25 {
Chris@0 26 Q_OBJECT
Chris@0 27
Chris@0 28 public:
Chris@0 29 MainWindow(bool withAudioOutput = true,
Chris@0 30 bool withOSCSupport = true);
Chris@0 31 virtual ~MainWindow();
Chris@0 32
Chris@187 33 signals:
Chris@187 34 virtual void canChangePitchCandidate(bool);
Chris@198 35 virtual void canChangeToHigherCandidate(bool);
Chris@198 36 virtual void canChangeToLowerCandidate(bool);
Chris@187 37
Chris@0 38 public slots:
Chris@0 39 virtual bool commitData(bool mayAskUser); // on session shutdown
Chris@0 40
Chris@0 41 protected slots:
Chris@0 42 virtual void openFile();
Chris@0 43 virtual void openLocation();
Chris@0 44 virtual void openRecentFile();
Chris@0 45 virtual void saveSession();
Chris@0 46 virtual void saveSessionAs();
Chris@85 47 virtual void exportPitchLayer();
Chris@85 48 virtual void exportNoteLayer();
Chris@174 49 virtual void importPitchLayer();
Chris@0 50 virtual void newSession();
Chris@0 51 virtual void closeSession();
Chris@0 52
Chris@70 53 virtual void toolNavigateSelected();
Chris@70 54 virtual void toolEditSelected();
Chris@70 55 virtual void toolFreeEditSelected();
Chris@70 56
Chris@168 57 virtual void clearPitches();
Chris@142 58 virtual void octaveShiftUp();
Chris@142 59 virtual void octaveShiftDown();
Chris@184 60 virtual void togglePitchCandidates();
Chris@184 61 virtual void switchPitchUp();
Chris@184 62 virtual void switchPitchDown();
Chris@142 63
Chris@144 64 virtual void showAudioToggled();
Chris@145 65 virtual void showSpectToggled();
Chris@144 66 virtual void showPitchToggled();
Chris@144 67 virtual void showNotesToggled();
Chris@144 68
Chris@144 69 virtual void playAudioToggled();
Chris@144 70 virtual void playPitchToggled();
Chris@144 71 virtual void playNotesToggled();
Chris@128 72
Chris@139 73 virtual void doubleClickSelectInvoked(size_t);
Chris@194 74 virtual void abandonSelection();
Chris@139 75
Chris@0 76 virtual void paneAdded(Pane *);
Chris@0 77 virtual void paneHidden(Pane *);
Chris@0 78 virtual void paneAboutToBeDeleted(Pane *);
Chris@0 79
Chris@0 80 virtual void paneDropAccepted(Pane *, QStringList);
Chris@0 81 virtual void paneDropAccepted(Pane *, QString);
Chris@0 82
Chris@0 83 virtual void playSpeedChanged(int);
Chris@0 84 virtual void playSharpenToggled();
Chris@0 85 virtual void playMonoToggled();
Chris@0 86
Chris@0 87 virtual void speedUpPlayback();
Chris@0 88 virtual void slowDownPlayback();
Chris@0 89 virtual void restoreNormalPlayback();
Chris@0 90
justin@159 91 virtual void audioGainChanged(int);
justin@159 92 virtual void increaseAudioGain();
justin@159 93 virtual void decreaseAudioGain();
justin@159 94 virtual void restoreNormalAudioGain();
justin@159 95
Chris@158 96 virtual void pitchGainChanged(int);
Chris@158 97 virtual void increasePitchGain();
Chris@158 98 virtual void decreasePitchGain();
Chris@158 99 virtual void restoreNormalPitchGain();
justin@157 100
justin@159 101 virtual void notesGainChanged(int);
justin@159 102 virtual void increaseNotesGain();
justin@159 103 virtual void decreaseNotesGain();
justin@159 104 virtual void restoreNormalNotesGain();
justin@159 105
justin@160 106 virtual void audioPanChanged(int);
justin@160 107 virtual void increaseAudioPan();
justin@160 108 virtual void decreaseAudioPan();
justin@160 109 virtual void restoreNormalAudioPan();
justin@160 110
justin@160 111 virtual void pitchPanChanged(int);
justin@160 112 virtual void increasePitchPan();
justin@160 113 virtual void decreasePitchPan();
justin@160 114 virtual void restoreNormalPitchPan();
justin@160 115
justin@160 116 virtual void notesPanChanged(int);
justin@160 117 virtual void increaseNotesPan();
justin@160 118 virtual void decreaseNotesPan();
justin@160 119 virtual void restoreNormalNotesPan();
justin@160 120
Chris@0 121 virtual void sampleRateMismatch(size_t, size_t, bool);
Chris@0 122 virtual void audioOverloadPluginDisabled();
Chris@0 123 virtual void audioTimeStretchMultiChannelDisabled();
Chris@0 124
Chris@0 125 virtual void outputLevelsChanged(float, float);
Chris@0 126
Chris@0 127 virtual void documentModified();
Chris@0 128 virtual void documentRestored();
Chris@0 129
Chris@0 130 virtual void updateMenuStates();
Chris@0 131 virtual void updateDescriptionLabel();
Chris@144 132 virtual void updateLayerStatuses();
Chris@0 133
Chris@0 134 virtual void layerRemoved(Layer *);
Chris@0 135 virtual void layerInAView(Layer *, bool);
Chris@0 136
Chris@0 137 virtual void mainModelChanged(WaveFileModel *);
Chris@0 138 virtual void modelAdded(Model *);
Chris@0 139 virtual void modelAboutToBeDeleted(Model *);
Chris@0 140
Chris@0 141 virtual void modelGenerationFailed(QString, QString);
Chris@0 142 virtual void modelGenerationWarning(QString, QString);
Chris@0 143 virtual void modelRegenerationFailed(QString, QString, QString);
Chris@0 144 virtual void modelRegenerationWarning(QString, QString, QString);
Chris@0 145 virtual void alignmentFailed(QString, QString);
Chris@0 146
Chris@0 147 virtual void rightButtonMenuRequested(Pane *, QPoint point);
Chris@0 148
Chris@0 149 virtual void setupRecentFilesMenu();
Chris@0 150
Chris@0 151 virtual void handleOSCMessage(const OSCMessage &);
Chris@0 152
Chris@0 153 virtual void mouseEnteredWidget();
Chris@0 154 virtual void mouseLeftWidget();
Chris@0 155
Chris@0 156 virtual void website();
Chris@0 157 virtual void help();
Chris@0 158 virtual void about();
Chris@0 159 virtual void keyReference();
Chris@0 160
Chris@192 161 virtual void selectionChangedByUser();
Chris@192 162 virtual void regionOutlined(QRect);
Chris@164 163
Chris@0 164 protected:
Chris@6 165 Analyser *m_analyser;
Chris@0 166
Chris@6 167 Overview *m_overview;
Chris@6 168 Fader *m_fader;
Chris@6 169 AudioDial *m_playSpeed;
Chris@6 170 QPushButton *m_playSharpen;
Chris@6 171 QPushButton *m_playMono;
Chris@6 172 WaveformLayer *m_panLayer;
Chris@0 173
Chris@6 174 bool m_mainMenusCreated;
Chris@6 175 QMenu *m_playbackMenu;
Chris@6 176 QMenu *m_recentFilesMenu;
Chris@6 177 QMenu *m_rightButtonMenu;
Chris@6 178 QMenu *m_rightButtonPlaybackMenu;
Chris@0 179
Chris@6 180 QAction *m_deleteSelectedAction;
Chris@6 181 QAction *m_ffwdAction;
Chris@6 182 QAction *m_rwdAction;
gyorgyf@24 183 QAction *m_editSelectAction;
Chris@187 184 QAction *m_showCandidatesAction;
gyorgyf@45 185 QAction *m_toggleIntelligenceAction;
gyorgyf@45 186 bool m_intelligentActionOn; // GF: !!! temporary
Chris@128 187
Chris@144 188 QAction *m_showAudio;
Chris@145 189 QAction *m_showSpect;
Chris@144 190 QAction *m_showPitch;
Chris@144 191 QAction *m_showNotes;
Chris@144 192 QAction *m_playAudio;
Chris@144 193 QAction *m_playPitch;
Chris@144 194 QAction *m_playNotes;
Chris@158 195 AudioDial *m_gainAudio;
Chris@158 196 AudioDial *m_gainPitch;
Chris@158 197 AudioDial *m_gainNotes;
justin@160 198 AudioDial *m_panAudio;
justin@160 199 AudioDial *m_panPitch;
justin@160 200 AudioDial *m_panNotes;
Chris@144 201
Chris@128 202 QLabel *m_waveformStatus;
Chris@128 203 QLabel *m_pitchStatus;
Chris@128 204 QLabel *m_notesStatus;
gyorgyf@45 205
Chris@6 206 KeyReference *m_keyReference;
Chris@95 207 VersionTester *m_versionTester;
Chris@0 208
Chris@192 209 Analyser::FrequencyRange m_pendingConstraint;
Chris@192 210
Chris@85 211 QString exportToSVL(QString path, Layer *layer);
Chris@174 212 FileOpenStatus importPitchLayer(FileSource source);
Chris@85 213
Chris@0 214 virtual void setupMenus();
Chris@0 215 virtual void setupFileMenu();
Chris@0 216 virtual void setupEditMenu();
Chris@0 217 virtual void setupViewMenu();
Chris@0 218 virtual void setupHelpMenu();
Chris@0 219 virtual void setupToolbars();
Chris@0 220
Chris@142 221 virtual void octaveShift(bool up);
Chris@142 222
Chris@0 223 virtual void closeEvent(QCloseEvent *e);
Chris@0 224 bool checkSaveModified();
Chris@0 225
Chris@0 226 virtual void updateVisibleRangeDisplay(Pane *p) const;
Chris@0 227 virtual void updatePositionStatusDisplays() const;
Chris@0 228 };
Chris@0 229
Chris@0 230
Chris@0 231 #endif