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
-
-
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