diff options
Diffstat (limited to 'src/gui/virtualstudio.h')
-rw-r--r-- | src/gui/virtualstudio.h | 53 |
1 files changed, 47 insertions, 6 deletions
diff --git a/src/gui/virtualstudio.h b/src/gui/virtualstudio.h index 428ffa9..693b911 100644 --- a/src/gui/virtualstudio.h +++ b/src/gui/virtualstudio.h @@ -49,6 +49,9 @@ #include "../JackTrip.h" #include "../Meter.h" +#include "../Volume.h" +#include "vsAudioInterface.h" +#include "vsConstants.h" #include "vsDevice.h" #include "vsQuickView.h" #include "vsServerInfo.h" @@ -96,6 +99,7 @@ class VirtualStudio : public QObject Q_PROPERTY(float fontScale READ fontScale CONSTANT) Q_PROPERTY(float uiScale READ uiScale WRITE setUiScale NOTIFY uiScaleChanged) Q_PROPERTY(bool darkMode READ darkMode WRITE setDarkMode NOTIFY darkModeChanged) + Q_PROPERTY(bool testMode READ testMode WRITE setTestMode NOTIFY testModeChanged) Q_PROPERTY(bool showDeviceSetup READ showDeviceSetup WRITE setShowDeviceSetup NOTIFY showDeviceSetupChanged) Q_PROPERTY(bool showWarnings READ showWarnings WRITE setShowWarnings NOTIFY @@ -105,6 +109,12 @@ class VirtualStudio : public QObject Q_PROPERTY(QString failedMessage READ failedMessage NOTIFY failedMessageChanged) Q_PROPERTY( bool shouldJoin READ shouldJoin WRITE setShouldJoin NOTIFY shouldJoinChanged) + Q_PROPERTY( + float inputVolume READ inputVolume WRITE setInputVolume NOTIFY updatedInputVolume) + Q_PROPERTY(float outputVolume READ outputVolume WRITE setOutputVolume NOTIFY + updatedOutputVolume) + Q_PROPERTY( + bool inputMuted READ inputMuted WRITE setInputMuted NOTIFY updatedInputMuted) public: explicit VirtualStudio(bool firstRun = false, QObject* parent = nullptr); @@ -149,6 +159,8 @@ class VirtualStudio : public QObject void setUiScale(float scale); bool darkMode(); void setDarkMode(bool dark); + bool testMode(); + void setTestMode(bool test); QUrl studioToJoin(); void setStudioToJoin(const QUrl& url); bool showDeviceSetup(); @@ -160,6 +172,10 @@ class VirtualStudio : public QObject QString failedMessage(); bool shouldJoin(); void setShouldJoin(bool join); + float inputVolume(); + float outputVolume(); + bool inputMuted(); + bool outputMuted(); public slots: void toStandard(); @@ -168,6 +184,7 @@ class VirtualStudio : public QObject void logout(); void refreshStudios(int index, bool signalRefresh = false); void refreshDevices(); + void playOutputAudio(); void revertSettings(); void applySettings(); void connectToStudio(int studioIndex); @@ -177,6 +194,12 @@ class VirtualStudio : public QObject void createStudio(); void editProfile(); void showAbout(); + void updatedInputVuMeasurements(const QVector<float>& valuesInDecibels); + void updatedOutputVuMeasurements(const QVector<float>& valuesInDecibels); + void setInputVolume(float multiplier); + void setOutputVolume(float multiplier); + void setInputMuted(bool muted); + void setOutputMuted(bool muted); void exit(); signals: @@ -189,9 +212,12 @@ class VirtualStudio : public QObject void showFirstRunChanged(); void hasRefreshTokenChanged(); void logoSectionChanged(); - void audioBackendChanged(); - void inputDeviceChanged(); - void outputDeviceChanged(); + void audioBackendChanged(bool useRtAudio); + void inputDeviceChanged(QString device); + void outputDeviceChanged(QString device); + void inputDeviceSelected(QString device); + void outputDeviceSelected(QString device); + void triggerPlayOutputAudio(); void bufferSizeChanged(); void bufferStrategyChanged(); void currentStudioChanged(); @@ -208,10 +234,15 @@ class VirtualStudio : public QObject void uiScaleChanged(); void newScale(); void darkModeChanged(); + void testModeChanged(); void signalExit(); void periodicRefresh(); void failedMessageChanged(); void shouldJoinChanged(); + void updatedInputVolume(float multiplier); + void updatedOutputVolume(float multiplier); + void updatedInputMuted(bool muted); + void updatedOutputMuted(bool muted); private slots: void slotAuthSucceded(); @@ -224,8 +255,6 @@ class VirtualStudio : public QObject void launchBrowser(const QUrl& url); void joinStudio(); void updatedStats(const QJsonObject& stats); - void updatedInputVuMeasurements(const QVector<float> valuesInDecibels); - void updatedOutputVuMeasurements(const QVector<float> valuesInDecibels); private: void setupAuthenticator(); @@ -281,7 +310,7 @@ class VirtualStudio : public QObject bool m_onConnectedScreen = false; bool m_isExiting = false; - bool m_showInactive = false; + bool m_showInactive = true; bool m_showSelfHosted = false; bool m_showCreateStudio = false; bool m_showDeviceSetup = true; @@ -290,19 +319,31 @@ class VirtualStudio : public QObject float m_uiScale; float m_previousUiScale; int m_bufferStrategy = 0; + QString m_apiHost = PROD_API_HOST; bool m_darkMode = false; + bool m_testMode = false; QString m_failedMessage = ""; QUrl m_studioToJoin; bool m_authenticated = false; Meter* m_inputMeter; Meter* m_outputMeter; + Meter* m_inputTestMeter; + Volume* m_inputVolumePlugin; + Volume* m_outputVolumePlugin; QTimer m_inputClipTimer; QTimer m_outputClipTimer; float m_meterMax = 0.0; float m_meterMin = -64.0; + float m_inMultiplier = 1.0; + float m_outMultiplier = 1.0; + bool m_inMuted = false; + bool m_outMuted = false; + + QSharedPointer<VsAudioInterface> m_vsAudioInterface; + #ifdef RT_AUDIO QStringList m_inputDeviceList; QStringList m_outputDeviceList; |