Mercurial > hg > tony
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main/MainWindow.h Wed Aug 14 11:57:06 2019 +0100 @@ -0,0 +1,254 @@ +/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ + +/* + Tony + An intonation analysis and annotation tool + Centre for Digital Music, Queen Mary, University of London. + This file copyright 2006-2012 Chris Cannam and QMUL. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. See the file + COPYING included with this distribution for more information. +*/ + +#ifndef _MAIN_WINDOW_H_ +#define _MAIN_WINDOW_H_ + +#include "framework/MainWindowBase.h" +#include "Analyser.h" + +class VersionTester; +class ActivityLog; +class LevelPanToolButton; + +class MainWindow : public MainWindowBase +{ + Q_OBJECT + +public: + MainWindow(SoundOptions options, bool withSonification = true, bool withSpectrogram = true); + virtual ~MainWindow(); + +signals: + void canExportPitchTrack(bool); + void canExportNotes(bool); + void canSnapNotes(bool); + void canPlayWaveform(bool); + void canPlayPitch(bool); + void canPlayNotes(bool); + +public slots: + virtual bool commitData(bool mayAskUser); // on session shutdown + +protected slots: + virtual void openFile(); + virtual void openLocation(); + virtual void openRecentFile(); + virtual void saveSession(); + virtual void saveSessionInAudioPath(); + virtual void saveSessionAs(); + virtual void exportPitchLayer(); + virtual void exportNoteLayer(); + virtual void importPitchLayer(); + virtual void browseRecordedAudio(); + virtual void newSession(); + virtual void closeSession(); + + virtual void toolNavigateSelected(); + virtual void toolEditSelected(); + virtual void toolFreeEditSelected(); + + virtual void clearPitches(); + virtual void togglePitchCandidates(); + virtual void switchPitchUp(); + virtual void switchPitchDown(); + + virtual void snapNotesToPitches(); + virtual void splitNote(); + virtual void mergeNotes(); + virtual void deleteNotes(); + virtual void formNoteFromSelection(); + + virtual void showAudioToggled(); + virtual void showSpectToggled(); + virtual void showPitchToggled(); + virtual void showNotesToggled(); + + virtual void playAudioToggled(); + virtual void playPitchToggled(); + virtual void playNotesToggled(); + + virtual void editDisplayExtents(); + + virtual void analyseNow(); + virtual void resetAnalyseOptions(); + virtual void autoAnalysisToggled(); + virtual void precisionAnalysisToggled(); + virtual void lowampAnalysisToggled(); + virtual void onsetAnalysisToggled(); + virtual void pruneAnalysisToggled(); + virtual void updateAnalyseStates(); + + virtual void doubleClickSelectInvoked(sv_frame_t); + virtual void abandonSelection(); + + virtual void paneAdded(Pane *); + virtual void paneHidden(Pane *); + virtual void paneAboutToBeDeleted(Pane *); + + virtual void paneDropAccepted(Pane *, QStringList); + virtual void paneDropAccepted(Pane *, QString); + + virtual void playSpeedChanged(int); + virtual void playSharpenToggled(); + virtual void playMonoToggled(); + + virtual void speedUpPlayback(); + virtual void slowDownPlayback(); + virtual void restoreNormalPlayback(); + + virtual void monitoringLevelsChanged(float, float); + + virtual void audioGainChanged(float); + virtual void pitchGainChanged(float); + virtual void notesGainChanged(float); + + virtual void audioPanChanged(float); + virtual void pitchPanChanged(float); + virtual void notesPanChanged(float); + + virtual void sampleRateMismatch(sv_samplerate_t, sv_samplerate_t, bool); + virtual void audioOverloadPluginDisabled(); + virtual void audioTimeStretchMultiChannelDisabled(); + + virtual void documentModified(); + virtual void documentRestored(); + virtual void documentReplaced(); + + virtual void updateMenuStates(); + virtual void updateDescriptionLabel(); + virtual void updateLayerStatuses(); + + virtual void layerRemoved(Layer *); + virtual void layerInAView(Layer *, bool); + + virtual void mainModelChanged(ModelId); + virtual void mainModelGainChanged(float); + virtual void modelAdded(ModelId); + + virtual void modelGenerationFailed(QString, QString); + virtual void modelGenerationWarning(QString, QString); + virtual void modelRegenerationFailed(QString, QString, QString); + virtual void modelRegenerationWarning(QString, QString, QString); + virtual void alignmentFailed(QString); + + virtual void rightButtonMenuRequested(Pane *, QPoint point); + + virtual void setupRecentFilesMenu(); + + virtual void handleOSCMessage(const OSCMessage &); + + virtual void mouseEnteredWidget(); + virtual void mouseLeftWidget(); + + virtual void website(); + virtual void help(); + virtual void about(); + virtual void keyReference(); + + virtual void newerVersionAvailable(QString); + + virtual void selectionChangedByUser(); + virtual void regionOutlined(QRect); + + virtual void analyseNewMainModel(); + + void moveOneNoteRight(); + void moveOneNoteLeft(); + void selectOneNoteRight(); + void selectOneNoteLeft(); + + void ffwd(); + void rewind(); + +protected: + Analyser *m_analyser; + + Overview *m_overview; + Fader *m_fader; + AudioDial *m_playSpeed; + QPushButton *m_playSharpen; + QPushButton *m_playMono; + WaveformLayer *m_panLayer; + + bool m_mainMenusCreated; + QMenu *m_playbackMenu; + QMenu *m_recentFilesMenu; + QMenu *m_rightButtonMenu; + QMenu *m_rightButtonPlaybackMenu; + + QAction *m_deleteSelectedAction; + QAction *m_ffwdAction; + QAction *m_rwdAction; + QAction *m_editSelectAction; + QAction *m_showCandidatesAction; + QAction *m_toggleIntelligenceAction; + bool m_intelligentActionOn; // GF: !!! temporary + + QAction *m_autoAnalyse; + QAction *m_precise; + QAction *m_lowamp; + QAction *m_onset; + QAction *m_prune; + + QAction *m_showAudio; + QAction *m_showSpect; + QAction *m_showPitch; + QAction *m_showNotes; + QAction *m_playAudio; + QAction *m_playPitch; + QAction *m_playNotes; + LevelPanToolButton *m_audioLPW; + LevelPanToolButton *m_pitchLPW; + LevelPanToolButton *m_notesLPW; + + ActivityLog *m_activityLog; + KeyReference *m_keyReference; + VersionTester *m_versionTester; + + sv_frame_t m_selectionAnchor; + + bool m_withSonification; + bool m_withSpectrogram; + + Analyser::FrequencyRange m_pendingConstraint; + + QString exportToSVL(QString path, Layer *layer); + FileOpenStatus importPitchLayer(FileSource source); + + virtual void setupMenus(); + virtual void setupFileMenu(); + virtual void setupEditMenu(); + virtual void setupViewMenu(); + virtual void setupAnalysisMenu(); + virtual void setupHelpMenu(); + virtual void setupToolbars(); + + virtual void octaveShift(bool up); + + virtual void auxSnapNotes(Selection s); + + virtual void closeEvent(QCloseEvent *e); + bool checkSaveModified(); + bool waitForInitialAnalysis(); + + virtual void updateVisibleRangeDisplay(Pane *p) const; + virtual void updatePositionStatusDisplays() const; + + void moveByOneNote(bool right, bool doSelect); +}; + + +#endif