175 lines
6.1 KiB
C++
Executable file
175 lines
6.1 KiB
C++
Executable file
/******************************************************************************\
|
|
* Copyright (c) 2004-2006
|
|
*
|
|
* Author(s):
|
|
* Volker Fischer
|
|
*
|
|
******************************************************************************
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify it under
|
|
* the terms of the GNU General Public License as published by the Free Software
|
|
* Foundation; either version 2 of the License, or (at your option) any later
|
|
* version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful, but WITHOUT
|
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
|
* details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License along with
|
|
* this program; if not, write to the Free Software Foundation, Inc.,
|
|
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*
|
|
\******************************************************************************/
|
|
|
|
#include "clientsettingsdlg.h"
|
|
|
|
|
|
/* Implementation *************************************************************/
|
|
CClientSettingsDlg::CClientSettingsDlg ( CClient* pNCliP, QWidget* parent,
|
|
Qt::WindowFlags f ) : pClient ( pNCliP ), QDialog ( parent, f )
|
|
{
|
|
setupUi ( this );
|
|
|
|
// init timing jitter text label
|
|
TextLabelStdDevTimer->setText ( "" );
|
|
|
|
// init slider controls ---
|
|
// sound buffer in
|
|
SliderSndBufIn->setRange ( 2, AUD_SLIDER_LENGTH );
|
|
const int iCurNumInBuf = pClient->GetSndInterface()->GetInNumBuf();
|
|
SliderSndBufIn->setValue ( iCurNumInBuf );
|
|
TextSndBufIn->setText ( "In: " + QString().setNum ( iCurNumInBuf ) );
|
|
|
|
// sound buffer out
|
|
SliderSndBufOut->setRange ( 2, AUD_SLIDER_LENGTH );
|
|
const int iCurNumOutBuf = pClient->GetSndInterface()->GetOutNumBuf();
|
|
SliderSndBufOut->setValue ( iCurNumOutBuf );
|
|
TextSndBufOut->setText ( "Out: " + QString().setNum ( iCurNumOutBuf ) );
|
|
|
|
// network buffer
|
|
SliderNetBuf->setRange ( 0, MAX_NET_BUF_SIZE_NUM_BL );
|
|
const int iCurNumNetBuf = pClient->GetSockBufSize();
|
|
SliderNetBuf->setValue ( iCurNumNetBuf );
|
|
TextNetBuf->setText ( "Size: " + QString().setNum ( iCurNumNetBuf ) );
|
|
|
|
// network buffer size factor in
|
|
SliderNetBufSiFactIn->setRange ( 1, MAX_NET_BLOCK_SIZE_FACTOR );
|
|
const int iCurNetBufSiFactIn = pClient->GetNetwBufSizeFactIn();
|
|
SliderNetBufSiFactIn->setValue ( iCurNetBufSiFactIn );
|
|
TextNetBufSiFactIn->setText ( "In:\n" + QString().setNum (
|
|
double ( iCurNetBufSiFactIn * MIN_BLOCK_DURATION_MS ), 'f', 2 ) +
|
|
" ms" );
|
|
|
|
// network buffer size factor out
|
|
SliderNetBufSiFactOut->setRange ( 1, MAX_NET_BLOCK_SIZE_FACTOR );
|
|
const int iCurNetBufSiFactOut = pClient->GetNetwBufSizeFactOut();
|
|
SliderNetBufSiFactOut->setValue ( iCurNetBufSiFactOut );
|
|
TextNetBufSiFactOut->setText ( "Out:\n" + QString().setNum (
|
|
double ( iCurNetBufSiFactOut * MIN_BLOCK_DURATION_MS), 'f', 2 ) +
|
|
" ms" );
|
|
|
|
|
|
// Connections -------------------------------------------------------------
|
|
// timers
|
|
QObject::connect ( &TimerStatus, SIGNAL ( timeout() ),
|
|
this, SLOT ( OnTimerStatus() ) );
|
|
|
|
// sliders
|
|
QObject::connect ( SliderSndBufIn, SIGNAL ( valueChanged ( int ) ),
|
|
this, SLOT ( OnSliderSndBufInChange ( int ) ) );
|
|
QObject::connect ( SliderSndBufOut, SIGNAL ( valueChanged ( int ) ),
|
|
this, SLOT ( OnSliderSndBufOutChange ( int ) ) );
|
|
|
|
QObject::connect ( SliderNetBuf, SIGNAL ( valueChanged ( int ) ),
|
|
this, SLOT ( OnSliderNetBuf ( int ) ) );
|
|
|
|
QObject::connect ( SliderNetBufSiFactIn, SIGNAL ( valueChanged ( int ) ),
|
|
this, SLOT ( OnSliderNetBufSiFactIn ( int ) ) );
|
|
QObject::connect ( SliderNetBufSiFactOut, SIGNAL ( valueChanged ( int ) ),
|
|
this, SLOT ( OnSliderNetBufSiFactOut ( int ) ) );
|
|
|
|
|
|
// Timers ------------------------------------------------------------------
|
|
// start timer for status bar
|
|
TimerStatus.start ( DISPLAY_UPDATE_TIME );
|
|
}
|
|
|
|
void CClientSettingsDlg::OnSliderSndBufInChange ( int value )
|
|
{
|
|
pClient->GetSndInterface()->SetInNumBuf ( value );
|
|
TextSndBufIn->setText ( "In: " + QString().setNum ( value ) );
|
|
UpdateDisplay();
|
|
}
|
|
|
|
void CClientSettingsDlg::OnSliderSndBufOutChange ( int value )
|
|
{
|
|
pClient->GetSndInterface()->SetOutNumBuf ( value );
|
|
TextSndBufOut->setText ( "Out: " + QString().setNum ( value ) );
|
|
UpdateDisplay();
|
|
}
|
|
|
|
void CClientSettingsDlg::OnSliderNetBuf ( int value )
|
|
{
|
|
pClient->SetSockBufSize ( value );
|
|
TextNetBuf->setText ( "Size: " + QString().setNum ( value ) );
|
|
UpdateDisplay();
|
|
}
|
|
|
|
void CClientSettingsDlg::OnSliderNetBufSiFactIn ( int value )
|
|
{
|
|
pClient->SetNetwBufSizeFactIn ( value );
|
|
TextNetBufSiFactIn->setText ( "In:\n" + QString().setNum (
|
|
double ( value * MIN_BLOCK_DURATION_MS ), 'f', 2 ) +
|
|
" ms" );
|
|
UpdateDisplay();
|
|
}
|
|
|
|
void CClientSettingsDlg::OnSliderNetBufSiFactOut ( int value )
|
|
{
|
|
pClient->SetNetwBufSizeFactOut ( value );
|
|
TextNetBufSiFactOut->setText ( "Out:\n" + QString().setNum (
|
|
double ( value * MIN_BLOCK_DURATION_MS ), 'f', 2 ) +
|
|
" ms" );
|
|
UpdateDisplay();
|
|
}
|
|
|
|
void CClientSettingsDlg::UpdateDisplay()
|
|
{
|
|
// response time
|
|
TextLabelStdDevTimer->setText ( QString().
|
|
setNum ( pClient->GetTimingStdDev(), 'f', 2 ) + " ms" );
|
|
}
|
|
|
|
void CClientSettingsDlg::SetStatus ( const int iMessType, const int iStatus )
|
|
{
|
|
switch ( iMessType )
|
|
{
|
|
case MS_SOUND_IN:
|
|
CLEDSoundIn->SetLight ( iStatus );
|
|
break;
|
|
|
|
case MS_SOUND_OUT:
|
|
CLEDSoundOut->SetLight ( iStatus );
|
|
break;
|
|
|
|
case MS_JIT_BUF_PUT:
|
|
CLEDNetwPut->SetLight ( iStatus );
|
|
break;
|
|
|
|
case MS_JIT_BUF_GET:
|
|
CLEDNetwGet->SetLight ( iStatus );
|
|
break;
|
|
|
|
case MS_PROTOCOL:
|
|
CLEDProtocolStatus->SetLight ( iStatus );
|
|
|
|
case MS_RESET_ALL:
|
|
CLEDSoundIn->Reset();
|
|
CLEDSoundOut->Reset();
|
|
CLEDNetwPut->Reset();
|
|
CLEDNetwGet->Reset();
|
|
CLEDProtocolStatus->Reset();
|
|
break;
|
|
}
|
|
}
|