1 // Copyright 2005-2019 The Mumble Developers. All rights reserved. 2 // Use of this source code is governed by a BSD-style license 3 // that can be found in the LICENSE file at the root of the 4 // Mumble source tree or at <https://www.mumble.info/LICENSE>. 5 6 #ifndef MUMBLE_MUMBLE_AUDIOWIZARD_H_ 7 #define MUMBLE_MUMBLE_AUDIOWIZARD_H_ 8 9 #include <QtCore/QtGlobal> 10 #if QT_VERSION >= 0x050000 11 # include <QtWidgets/QWizard> 12 # include <QtWidgets/QWizardPage> 13 #else 14 # include <QtGui/QWizard> 15 # include <QtGui/QWizardPage> 16 #endif 17 18 #include "AudioStats.h" 19 #include "AudioOutput.h" 20 #include "GlobalShortcut.h" 21 #include "Settings.h" 22 23 class CompletablePage : public QWizardPage { 24 Q_OBJECT 25 protected: 26 bool bComplete; 27 public: 28 CompletablePage(QWizard *p = NULL); 29 void setComplete(bool); 30 bool isComplete() const Q_DECL_OVERRIDE; 31 }; 32 33 #include "ui_AudioWizard.h" 34 35 class AudioWizard: public QWizard, public Ui::AudioWizard { 36 private: 37 Q_OBJECT 38 Q_DISABLE_COPY(AudioWizard) 39 protected: 40 bool bTransmitChanged; 41 42 QGraphicsScene *qgsScene; 43 QGraphicsItem *qgiSource; 44 AudioOutputSample *aosSource; 45 float fAngle; 46 float fX, fY; 47 48 Settings sOldSettings; 49 50 QTimer *ticker; 51 52 bool bInit; 53 bool bDelay; 54 bool bLastActive; 55 56 QPixmap qpTalkingOn, qpTalkingOff; 57 58 int iMaxPeak; 59 int iTicks; 60 61 void restartAudio(); 62 void playChord(); 63 64 bool eventFilter(QObject *, QEvent *) Q_DECL_OVERRIDE; 65 public slots: 66 void on_qcbInput_activated(int); 67 void on_qcbInputDevice_activated(int); 68 void on_qcbOutput_activated(int); 69 void on_qcbOutputDevice_activated(int); 70 void on_qsOutputDelay_valueChanged(int); 71 void on_qsMaxAmp_valueChanged(int); 72 void on_Ticker_timeout(); 73 void on_qsVAD_valueChanged(int); 74 void on_qrAmplitude_clicked(bool); 75 void on_qrSNR_clicked(bool); 76 void on_qrPTT_clicked(bool); 77 void on_qcbEcho_clicked(bool); 78 void on_qcbHeadphone_clicked(bool); 79 void on_qcbPositional_clicked(bool); 80 void on_qcbAttenuateOthers_clicked(bool); 81 void on_qcbHighContrast_clicked(bool); 82 void on_skwPTT_keySet(bool, bool); 83 void on_qrbQualityUltra_clicked(); 84 void on_qrbQualityBalanced_clicked(); 85 void on_qrbQualityLow_clicked(); 86 void on_qrbQualityCustom_clicked(); 87 void showPage(int); 88 void updateTriggerWidgets(bool); 89 public: 90 AudioWizard(QWidget *parent); 91 void reject() Q_DECL_OVERRIDE; 92 void accept() Q_DECL_OVERRIDE; 93 bool validateCurrentPage() Q_DECL_OVERRIDE; 94 virtual int nextId() const Q_DECL_OVERRIDE; 95 }; 96 97 #endif 98