diff --git a/Jamulus.pro b/Jamulus.pro index 39ce276416..78a8adf0ad 100644 --- a/Jamulus.pro +++ b/Jamulus.pro @@ -732,6 +732,8 @@ DISTFILES += ChangeLog \ src/res/IndicatorGreen.png \ src/res/IndicatorYellow.png \ src/res/IndicatorRed.png \ + src/res/IndicatorYellowFancy.png \ + src/res/IndicatorRedFancy.png \ src/res/faderbackground.png \ src/res/faderhandle.png \ src/res/faderhandlesmall.png \ @@ -1130,3 +1132,4 @@ contains(CONFIG, "disable_version_check") { } ANDROID_ABIS = armeabi-v7a arm64-v8a x86 x86_64 + diff --git a/src/clientdlg.cpp b/src/clientdlg.cpp index 25eb8b09f5..b34d9e741c 100644 --- a/src/clientdlg.cpp +++ b/src/clientdlg.cpp @@ -181,6 +181,34 @@ CClientDlg::CClientDlg ( CClient* pNCliP, ledBuffers->setAccessibleName ( tr ( "Buffers status LED indicator" ) ); + // current connection status parameter + QString strConnStats = "" + + tr ( "Current Connection Status " + "Parameter" ) + + ": " + + tr ( "The Ping Time is the time required for the audio " + "stream to travel from the client to the server and back again. This " + "delay is introduced by the network and should be about " + "20-30 ms. If this delay is higher than about 50 ms, your distance to " + "the server is too large or your internet connection is not " + "sufficient." ) + + "
" + + tr ( "Overall Delay is calculated from the current Ping Time and the " + "delay introduced by the current buffer settings." ); + + lblPing->setWhatsThis ( strConnStats ); + lblPingVal->setWhatsThis ( strConnStats ); + lblDelay->setWhatsThis ( strConnStats ); + lblDelayVal->setWhatsThis ( strConnStats ); + ledDelay->setWhatsThis ( strConnStats ); + ledDelay->setToolTip ( tr ( "If this LED indicator turns red, " + "you will not have much fun using the " ) + + APP_NAME + tr ( " software." ) + TOOLTIP_COM_END_TEXT ); + lblPingVal->setText ( "---" ); + lblPingUnit->setText ( "" ); + lblDelayVal->setText ( "---" ); + lblDelayUnit->setText ( "" ); + // init GUI design SetGUIDesign ( pClient->GetGUIDesign() ); @@ -1035,7 +1063,6 @@ void CClientDlg::OnTimerBuffersLED() // update the buffer LED and the general settings dialog, too ledBuffers->SetLight ( eCurStatus ); - ClientSettingsDlg.SetStatus ( eCurStatus ); } void CClientDlg::OnTimerPing() @@ -1073,8 +1100,9 @@ void CClientDlg::OnPingTimeResult ( int iPingTime ) if ( ClientSettingsDlg.isVisible() ) { // set ping time result to general settings dialog - ClientSettingsDlg.SetPingTimeResult ( iPingTime, iOverallDelayMs, eOverallDelayLEDColor ); + ClientSettingsDlg.UpdateUploadRate(); } + SetPingTime ( iPingTime, iOverallDelayMs, eOverallDelayLEDColor ); // update delay LED on the main window ledDelay->SetLight ( eOverallDelayLEDColor ); @@ -1224,7 +1252,12 @@ OnTimerStatus(); // reset LEDs ledBuffers->Reset(); ledDelay->Reset(); - ClientSettingsDlg.ResetStatusAndPingLED(); + + // clear text labels with client parameters + lblPingVal->setText ( "---" ); + lblPingUnit->setText ( "" ); + lblDelayVal->setText ( "---" ); + lblDelayUnit->setText ( "" ); // clear mixer board (remove all faders) MainMixerBoard->HideAll(); @@ -1378,3 +1411,25 @@ void CClientDlg::SetMixerBoardDeco ( const ERecorderState newRecorderState, cons } } } + +void CClientDlg::SetPingTime ( const int iPingTime, const int iOverallDelayMs, const CMultiColorLED::ELightColor eOverallDelayLEDColor ) +{ + // apply values to GUI labels, take special care if ping time exceeds + // a certain value + if ( iPingTime > 500 ) + { + const QString sErrorText = ">500"; + lblPingVal->setText ( sErrorText ); + lblDelayVal->setText ( sErrorText ); + } + else + { + lblPingVal->setText ( QString().setNum ( iPingTime ) ); + lblDelayVal->setText ( QString().setNum ( iOverallDelayMs ) ); + } + lblPingUnit->setText ( "ms" ); + lblDelayUnit->setText ( "ms" ); + + // set current LED status + ledDelay->SetLight ( eOverallDelayLEDColor ); +} diff --git a/src/clientdlg.h b/src/clientdlg.h index 479f07c072..4d2ce7e182 100644 --- a/src/clientdlg.h +++ b/src/clientdlg.h @@ -95,6 +95,7 @@ class CClientDlg : public CBaseDlg, private Ui_CClientDlgBase void Connect ( const QString& strSelectedAddress, const QString& strMixerBoardLabel ); void Disconnect(); void ManageDragNDrop ( QDropEvent* Event, const bool bCheckAccept ); + void SetPingTime ( const int iPingTime, const int iOverallDelayMs, const CMultiColorLED::ELightColor eOverallDelayLEDColor ); CClient* pClient; CClientSettings* pSettings; diff --git a/src/clientdlgbase.ui b/src/clientdlgbase.ui index 63d7f7062b..0c652d7325 100644 --- a/src/clientdlgbase.ui +++ b/src/clientdlgbase.ui @@ -53,437 +53,502 @@ QFrame::Plain - + - + - + + + 6 + - + + + 3 + - - - 3 - - - - - Qt::Vertical - - - - 20 - 10 - - - - + - - - - 0 - 0 - - - - :/png/main/res/fronticon.png - - - Qt::AlignCenter - - - false - - - - - - - Qt::Vertical - - - - 10 - 10 - - - - - - + - - - 3 + + + + 0 + 0 + + + :/png/main/res/fronticon.png + + + Qt::AlignCenter + + + false + + + + + + + Qt::Vertical + + + QSizePolicy::Expanding + + + + 13 + 10 + + + + + + - - - Reverb + + + 3 - - Qt::AlignCenter - - - - - - - - Qt::Horizontal - - - QSizePolicy::Minimum + + + Reverb - - - 0 - 20 - + + Qt::AlignCenter - + - - - - 0 - 100 - - - - 1 - - - Qt::Vertical - - - QSlider::TicksBothSides + + + + + Qt::Horizontal + + + QSizePolicy::Minimum + + + + 0 + 20 + + + + + + + + + 0 + 0 + + + + + 0 + 125 + + + + + 16777215 + 300 + + + + 1 + + + Qt::Vertical + + + QSlider::TicksBothSides + + + + + + + Qt::Horizontal + + + QSizePolicy::Minimum + + + + 0 + 20 + + + + + + + + + + + + 3 + + + + + Left - - - Qt::Horizontal - - - QSizePolicy::Minimum + + + Right - - - 0 - 20 - - - + - - - 3 + + + Qt::Vertical - - - - Left - - - - - - - Right - - - - - - - - - - - Qt::Vertical - - - - 10 - 0 - - - - - - - - - - Delay - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - false - - - - - - - - 0 - 0 - - - - - 14 - 14 - + + QSizePolicy::Expanding - + - 14 - 14 + 13 + 10 - + - + Qt::Vertical - - QSizePolicy::Fixed - - - - 10 - 5 - - - + - + - + - Buffers + Input - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - false + Qt::AlignCenter - - - - 0 - 0 - - - - - 14 - 14 - - - - - 14 - 14 - - - + + + + + + 0 + 0 + + + + + 19 + 88 + + + + + + + + + 0 + 0 + + + + + 19 + 88 + + + + + + + + + + + + L + + + Qt::AlignCenter + + + + + + + R + + + Qt::AlignCenter + + + + - - - - Qt::Vertical - - - - 10 - 0 - - - - - + - Qt::Vertical + Qt::Horizontal - - - + + + - Input + Jitter - Qt::AlignCenter + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + false - - - - - - - 0 - 0 - - - - - 19 - 88 - - - - - - - - - 0 - 0 - - - - - 19 - 88 - - - - - + + + + Delay + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + false + + - - - - - - L - - - Qt::AlignCenter - - - - - - - R - - - Qt::AlignCenter - - - - + + + + Ping + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + false + + + + + + + + 34 + 0 + + + + Qt::LeftToRight + + + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 22 + 0 + + + + + 22 + 16777215 + + + + ms + + + + + + + + 34 + 0 + + + + Qt::LeftToRight + + + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 22 + 0 + + + + + 22 + 16777215 + + + + ms + + + + + + + + 0 + 0 + + + + + 14 + 14 + + + + + 14 + 14 + + + + + + + + + 0 + 0 + + + + + 14 + 14 + + + + + 14 + 14 + + + - + Qt::Horizontal - - QSizePolicy::Minimum + + + + + + &Mute Myself + + + + + + + &Settings + + + + + + + &Chat - + + + + + + + 0 + 0 + + + - 0 - 20 + 120 + 45 - + + C&onnect + + + false + + + false + + - + - Qt::Horizontal - - - - - - - &Mute Myself - - - - - - - &Settings - - - - - - - &Chat - - - - - - - - 0 - 45 - - - - C&onnect - - - false - - - false + Qt::Vertical - - - - Qt::Vertical - - - diff --git a/src/clientsettingsdlg.cpp b/src/clientsettingsdlg.cpp index 21cb0f8d28..4faf0b1884 100644 --- a/src/clientsettingsdlg.cpp +++ b/src/clientsettingsdlg.cpp @@ -104,8 +104,6 @@ CClientSettingsDlg::CClientSettingsDlg ( CClient* pNCliP, CClientSettings* pNSet sldNetBufServer->setToolTip ( strJitterBufferSizeTT ); chbAutoJitBuf->setAccessibleName ( tr ( "Auto jitter buffer switch" ) ); chbAutoJitBuf->setToolTip ( strJitterBufferSizeTT ); - ledNetw->setAccessibleName ( tr ( "Jitter buffer status LED indicator" ) ); - ledNetw->setToolTip ( strJitterBufferSizeTT ); // sound card device lblSoundcardDevice->setWhatsThis ( "" + tr ( "Sound Card Device" ) + ": " + tr ( "The ASIO driver (sound card) can be selected using " ) + @@ -337,35 +335,13 @@ CClientSettingsDlg::CClientSettingsDlg ( CClient* pNCliP, CClientSettings* pNSet cbxCentralServerAddress->setAccessibleName ( tr ( "Directory server address combo box" ) ); // current connection status parameter - QString strConnStats = "" + - tr ( "Current Connection Status " - "Parameter" ) + - ": " + - tr ( "The Ping Time is the time required for the audio " - "stream to travel from the client to the server and back again. This " - "delay is introduced by the network and should be about " - "20-30 ms. If this delay is higher than about 50 ms, your distance to " - "the server is too large or your internet connection is not " - "sufficient." ) + - "
" + - tr ( "Overall Delay is calculated from the current Ping Time and the " - "delay introduced by the current buffer settings." ) + - "
" + - tr ( "Audio Upstream Rate depends on the current audio packet size and " + QString strConnStats = tr ( "Audio Upstream Rate depends on the current audio packet size and " "compression setting. Make sure that the upstream rate is not " "higher than your available internet upload speed (check this with a " "service such as speedtest.net)." ); - lblPingTime->setWhatsThis ( strConnStats ); - lblPingTimeValue->setWhatsThis ( strConnStats ); - lblOverallDelay->setWhatsThis ( strConnStats ); - lblOverallDelayValue->setWhatsThis ( strConnStats ); - lblUpstream->setWhatsThis ( strConnStats ); lblUpstreamValue->setWhatsThis ( strConnStats ); - ledOverallDelay->setWhatsThis ( strConnStats ); - ledOverallDelay->setToolTip ( tr ( "If this LED indicator turns red, " - "you will not have much fun using the " ) + - APP_NAME + tr ( " software." ) + TOOLTIP_COM_END_TEXT ); + grbUpstreamValue->setWhatsThis ( strConnStats ); QString strNumMixerPanelRows = "" + tr ( "Number of Mixer Panel Rows" ) + ": " + tr ( "Adjust the number of rows used to arrange the mixer panel." ); @@ -394,16 +370,8 @@ CClientSettingsDlg::CClientSettingsDlg ( CClient* pNCliP, CClientSettings* pNSet UpdateAudioFaderSlider(); // init delay and other information controls - ledNetw->Reset(); - ledOverallDelay->Reset(); - ledNetw->SetType ( CMultiColorLED::MT_INDICATOR ); - ledOverallDelay->SetType ( CMultiColorLED::MT_INDICATOR ); lblUpstreamValue->setText ( "---" ); lblUpstreamUnit->setText ( "" ); - lblPingTimeValue->setText ( "---" ); - lblPingTimeUnit->setText ( "" ); - lblOverallDelayValue->setText ( "---" ); - lblOverallDelayUnit->setText ( "" ); edtNewClientLevel->setValidator ( new QIntValidator ( 0, 100, this ) ); // % range from 0-100 // init slider controls --- @@ -1003,32 +971,11 @@ void CClientSettingsDlg::OnSndCrdBufferDelayButtonGroupClicked ( QAbstractButton UpdateDisplay(); } -void CClientSettingsDlg::SetPingTimeResult ( const int iPingTime, const int iOverallDelayMs, const CMultiColorLED::ELightColor eOverallDelayLEDColor ) +void CClientSettingsDlg::UpdateUploadRate() { - // apply values to GUI labels, take special care if ping time exceeds - // a certain value - if ( iPingTime > 500 ) - { - const QString sErrorText = ">500 ms"; - lblPingTimeValue->setText ( sErrorText ); - lblOverallDelayValue->setText ( sErrorText ); - } - else - { - lblPingTimeValue->setText ( QString().setNum ( iPingTime ) ); - lblPingTimeUnit->setText ( "ms" ); - lblOverallDelayValue->setText ( QString().setNum ( iOverallDelayMs ) ); - lblOverallDelayUnit->setText ( "ms" ); - } - - // update upstream rate information label (note that we update this together - // with the ping time since the network packet sequence number feature might - // be enabled at any time which has influence on the upstream rate) + // update upstream rate information label lblUpstreamValue->setText ( QString().setNum ( pClient->GetUploadRateKbps() ) ); lblUpstreamUnit->setText ( "kbps" ); - - // set current LED status - ledOverallDelay->SetLight ( eOverallDelayLEDColor ); } void CClientSettingsDlg::UpdateDisplay() @@ -1040,10 +987,6 @@ void CClientSettingsDlg::UpdateDisplay() if ( !pClient->IsRunning() ) { // clear text labels with client parameters - lblPingTimeValue->setText ( "---" ); - lblPingTimeUnit->setText ( "" ); - lblOverallDelayValue->setText ( "---" ); - lblOverallDelayUnit->setText ( "" ); lblUpstreamValue->setText ( "---" ); lblUpstreamUnit->setText ( "" ); } diff --git a/src/clientsettingsdlg.h b/src/clientsettingsdlg.h index 555923d4d7..53e05fd1bb 100644 --- a/src/clientsettingsdlg.h +++ b/src/clientsettingsdlg.h @@ -56,16 +56,7 @@ class CClientSettingsDlg : public CBaseDlg, private Ui_CClientSettingsDlgBase public: CClientSettingsDlg ( CClient* pNCliP, CClientSettings* pNSetP, QWidget* parent = nullptr ); - void SetStatus ( const CMultiColorLED::ELightColor eStatus ) { ledNetw->SetLight ( eStatus ); } - - void ResetStatusAndPingLED() - { - ledNetw->Reset(); - ledOverallDelay->Reset(); - } - - void SetPingTimeResult ( const int iPingTime, const int iOverallDelayMs, const CMultiColorLED::ELightColor eOverallDelayLEDColor ); - + void UpdateUploadRate(); void UpdateDisplay(); void UpdateSoundDeviceChannelSelectionFrame(); diff --git a/src/clientsettingsdlgbase.ui b/src/clientsettingsdlgbase.ui index 2eff17d99b..70e091f195 100644 --- a/src/clientsettingsdlgbase.ui +++ b/src/clientsettingsdlgbase.ui @@ -30,7 +30,7 @@ - 0 + 1 true @@ -640,22 +640,6 @@
- - - - Qt::Vertical - - - QSizePolicy::Expanding - - - - 17 - 10 - - - -
@@ -846,9 +830,9 @@ - + - Measurements + Audio Stream Rate @@ -856,30 +840,20 @@ - - - - Audio Stream Rate - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - - val - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + Qt::Horizontal - - 2 + + + 1 + 5 + - + - + kbps @@ -889,45 +863,8 @@ - - - - Ping Time - - - - - - - val - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - 2 - - - - - - - ms - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - - Overall Delay - - - - - + + val @@ -939,66 +876,18 @@ - - - - ms - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - - 20 - 20 - - - - - 20 - 20 - - - - - - - - Local Jitter Buffer - - - - - - - - 0 - 0 - - - - - 20 - 20 - + + + + Qt::Horizontal - + - 20 - 20 + 1 + 5 - + @@ -1368,11 +1257,6 @@ - - CMultiColorLED - QWidget -
multicolorled.h
-
CLanguageComboBox QComboBox diff --git a/src/multicolorled.cpp b/src/multicolorled.cpp index 2d21fb0270..aad3c4b090 100644 --- a/src/multicolorled.cpp +++ b/src/multicolorled.cpp @@ -33,8 +33,8 @@ CMultiColorLED::CMultiColorLED ( QWidget* parent ) : BitmCubeDisabled ( QString::fromUtf8 ( ":/png/LEDs/res/CLEDDisabledSmall.png" ) ), BitmCubeGrey ( QString::fromUtf8 ( ":/png/LEDs/res/CLEDGreySmall.png" ) ), BitmCubeGreen ( QString::fromUtf8 ( ":/png/LEDs/res/CLEDGreenSmall.png" ) ), - BitmCubeYellow ( QString::fromUtf8 ( ":/png/LEDs/res/CLEDYellowSmall.png" ) ), - BitmCubeRed ( QString::fromUtf8 ( ":/png/LEDs/res/CLEDRedSmall.png" ) ), + BitmCubeYellow ( QString::fromUtf8 ( ":/png/LEDs/res/IndicatorYellowFancy.png" ) ), + BitmCubeRed ( QString::fromUtf8 ( ":/png/LEDs/res/IndicatorRedFancy.png" ) ), BitmIndicatorGreen ( QString::fromUtf8 ( ":/png/LEDs/res/IndicatorGreen.png" ) ), BitmIndicatorYellow ( QString::fromUtf8 ( ":/png/LEDs/res/IndicatorYellow.png" ) ), BitmIndicatorRed ( QString::fromUtf8 ( ":/png/LEDs/res/IndicatorRed.png" ) ) diff --git a/src/res/IndicatorRedFancy.png b/src/res/IndicatorRedFancy.png new file mode 100644 index 0000000000..56154bc1f2 Binary files /dev/null and b/src/res/IndicatorRedFancy.png differ diff --git a/src/res/IndicatorYellowFancy.png b/src/res/IndicatorYellowFancy.png new file mode 100644 index 0000000000..25d5fb6897 Binary files /dev/null and b/src/res/IndicatorYellowFancy.png differ diff --git a/src/resources.qrc b/src/resources.qrc index bbc1d6f5ad..e6acbcba85 100644 --- a/src/resources.qrc +++ b/src/resources.qrc @@ -45,6 +45,8 @@ res/HLEDBlackSmall.png res/HLEDRedSmall.png res/HLEDYellowSmall.png + res/IndicatorRedFancy.png + res/IndicatorYellowFancy.png res/faderbackground.png