From 3f06ab60612edc3d98988de7964b81046830fd54 Mon Sep 17 00:00:00 2001 From: Phil Taylor Date: Thu, 30 Dec 2021 11:17:54 +0000 Subject: [PATCH] Allow dynamic restarting of server --- wfmain.cpp | 86 ++++++++++++++++++++++++++---------------- wfmain.h | 11 +++--- wfview.vcxproj.filters | 12 ------ 3 files changed, 58 insertions(+), 51 deletions(-) diff --git a/wfmain.cpp b/wfmain.cpp index ebb4634..fd2ebce 100644 --- a/wfmain.cpp +++ b/wfmain.cpp @@ -953,6 +953,14 @@ void wfmain::setServerToPrefs() // Start server if enabled in config ui->serverSetupGroup->setEnabled(serverConfig.enabled); + if (serverThread != Q_NULLPTR) { + serverThread->quit(); + serverThread->wait(); + serverThread = Q_NULLPTR; + udp = Q_NULLPTR; + ui->statusBar->showMessage(QString("Server disabled"), 1000); + } + if (serverConfig.enabled) { serverConfig.lan = prefs.enableLAN; @@ -974,6 +982,7 @@ void wfmain::setServerToPrefs() emit initServer(); connect(this, SIGNAL(sendRigCaps(rigCapabilities)), udp, SLOT(receiveRigCaps(rigCapabilities))); + ui->statusBar->showMessage(QString("Server enabled"), 1000); } } @@ -1876,10 +1885,6 @@ void wfmain::saveSettings() settings->beginGroup("Server"); - serverConfig.controlPort = ui->serverControlPortText->text().toInt(); - serverConfig.civPort = ui->serverCivPortText->text().toInt(); - serverConfig.audioPort = ui->serverAudioPortText->text().toInt(); - settings->setValue("ServerEnabled", serverConfig.enabled); settings->setValue("ServerControlPort", serverConfig.controlPort); settings->setValue("ServerCivPort", serverConfig.civPort); @@ -4551,35 +4556,6 @@ void wfmain::on_audioInputCombo_currentIndexChanged(int value) qDebug(logGui()) << "Changed default audio input to:" << txSetup.name; } - -void wfmain::on_serverRXAudioInputCombo_currentIndexChanged(int value) -{ -#if defined(RTAUDIO) - serverRxSetup.port = ui->serverRXAudioInputCombo->itemData(value).toInt(); -#elif defined(PORTAUDIO) - serverRxSetup.port = ui->serverRXAudioInputCombo->itemData(value).toInt(); -#else - QVariant v = ui->serverRXAudioInputCombo->itemData(value); - serverRxSetup.port = v.value(); -#endif - serverRxSetup.name = ui->serverRXAudioInputCombo->itemText(value); - qDebug(logGui()) << "Changed default server audio input to:" << serverRxSetup.name; -} - -void wfmain::on_serverTXAudioOutputCombo_currentIndexChanged(int value) -{ -#if defined(RTAUDIO) - serverTxSetup.port = ui->serverTXAudioOutputCombo->itemData(value).toInt(); -#elif defined(PORTAUDIO) - serverTxSetup.port = ui->serverTXAudioOutputCombo->itemData(value).toInt(); -#else - QVariant v = ui->serverTXAudioOutputCombo->itemData(value); - serverTxSetup.port = v.value(); -#endif - serverTxSetup.name = ui->serverTXAudioOutputCombo->itemText(value); - qDebug(logGui()) << "Changed default server audio output to:" << serverTxSetup.name; -} - void wfmain::on_audioSampleRateCombo_currentIndexChanged(QString text) { //udpPrefs.audioRXSampleRate = text.toInt(); @@ -5688,6 +5664,50 @@ void wfmain::on_serverEnableCheckbox_clicked(bool checked) { ui->serverSetupGroup->setEnabled(checked); serverConfig.enabled = checked; + setServerToPrefs(); +} + +void wfmain::on_serverControlPortText_textChanged(QString text) +{ + serverConfig.controlPort = ui->serverControlPortText->text().toInt(); +} + +void wfmain::on_serverCivPortText_textChanged(QString text) +{ + serverConfig.civPort = ui->serverCivPortText->text().toInt(); +} + +void wfmain::on_serverAudioPortText_textChanged(QString text) +{ + serverConfig.audioPort = ui->serverAudioPortText->text().toInt(); +} + +void wfmain::on_serverRXAudioInputCombo_currentIndexChanged(int value) +{ +#if defined(RTAUDIO) + serverRxSetup.port = ui->serverRXaudioInputCombo->itemData(value).toInt(); +#elif defined(PORTAUDIO) + serverRxSetup.port = ui->serverRXaudioInputCombo->itemData(value).toInt(); +#else + QVariant v = ui->serverRXAudioInputCombo->itemData(value); + serverRxSetup.port = v.value(); +#endif + serverRxSetup.name = ui->serverRXAudioInputCombo->itemText(value); + qDebug(logGui()) << "Changed default server audio input to:" << serverRxSetup.name; +} + +void wfmain::on_serverTXAudioOutputCombo_currentIndexChanged(int value) +{ +#if defined(RTAUDIO) + serverTxSetup.port = ui->serverTXAudioOutputCombo->itemData(value).toInt(); +#elif defined(PORTAUDIO) + serverTxSetup.port = ui->serverTXAudioOutputCombo->itemData(value).toInt(); +#else + QVariant v = ui->serverTXAudioOutputCombo->itemData(value); + serverTxSetup.port = v.value(); +#endif + serverTxSetup.name = ui->serverTXAudioOutputCombo->itemText(value); + qDebug(logGui()) << "Changed default server audio output to:" << serverTxSetup.name; } // --- DEBUG FUNCTION --- diff --git a/wfmain.h b/wfmain.h index 09a8b86..b9bd713 100644 --- a/wfmain.h +++ b/wfmain.h @@ -385,10 +385,6 @@ private slots: void on_audioInputCombo_currentIndexChanged(int value); - void on_serverTXAudioOutputCombo_currentIndexChanged(int value); - - void on_serverRXAudioInputCombo_currentIndexChanged(int value); - void on_toFixedBtn_clicked(); void on_connectBtn_clicked(); @@ -510,9 +506,12 @@ private slots: void on_setClockBtn_clicked(); void on_serverEnableCheckbox_clicked(bool checked); - void on_serverUsersTable_cellClicked(int row, int col); - + void on_serverControlPortText_textChanged(QString text); + void on_serverCivPortText_textChanged(QString text); + void on_serverAudioPortText_textChanged(QString text); + void on_serverTXAudioOutputCombo_currentIndexChanged(int value); + void on_serverRXAudioInputCombo_currentIndexChanged(int value); void onServerPasswordChanged(); void on_useRTSforPTTchk_clicked(bool checked); diff --git a/wfview.vcxproj.filters b/wfview.vcxproj.filters index 051ed7d..bfaabf2 100644 --- a/wfview.vcxproj.filters +++ b/wfview.vcxproj.filters @@ -120,9 +120,6 @@ Source Files - - Source Files - Source Files @@ -203,9 +200,6 @@ Header Files - - Header Files - Header Files @@ -375,7 +369,6 @@ Resource Files - @@ -391,9 +384,4 @@ - - - Generated Files - - \ No newline at end of file