created audio mixer board GUI control
This commit is contained in:
parent
d3644c447d
commit
d0bb262193
13 changed files with 353 additions and 240 deletions
|
@ -16,6 +16,7 @@ llcon_SOURCES = ../src/buffer.cpp \
|
|||
../src/settings.cpp \
|
||||
../src/protocol.cpp \
|
||||
../src/multicolorled.cpp \
|
||||
../src/audiomixerboard.cpp \
|
||||
sound.cpp \
|
||||
../src/buffer.h \
|
||||
../src/global.h \
|
||||
|
@ -30,6 +31,7 @@ llcon_SOURCES = ../src/buffer.cpp \
|
|||
../src/settings.h \
|
||||
../src/protocol.h \
|
||||
../src/multicolorled.h \
|
||||
../src/audiomixerboard.h \
|
||||
../src/llconserverdlg.h \
|
||||
../src/llconclientdlg.h \
|
||||
../src/clientsettingsdlg.h \
|
||||
|
@ -46,6 +48,7 @@ BUILT_SOURCES=moc/moc_server.cpp \
|
|||
moc/moc_channel.cpp \
|
||||
moc/moc_socket.cpp \
|
||||
moc/moc_multicolorled.cpp \
|
||||
moc/moc_audiomixerboard.cpp \
|
||||
moc/moc_util.cpp \
|
||||
moc/moc_llconclientdlg.cpp moc/moc_llconclientdlgbase.cpp moc/llconclientdlgbase.h moc/llconclientdlgbase.cpp \
|
||||
moc/moc_clientsettingsdlg.cpp moc/moc_clientsettingsdlgbase.cpp moc/clientsettingsdlgbase.h moc/clientsettingsdlgbase.cpp \
|
||||
|
@ -72,6 +75,9 @@ moc/moc_socket.cpp: ../src/socket.h
|
|||
moc/moc_multicolorled.cpp: ../src/multicolorled.h
|
||||
$(MOC) ../src/multicolorled.h -o moc/moc_multicolorled.cpp
|
||||
|
||||
moc/moc_audiomixerboard.cpp: ../src/audiomixerboard.h
|
||||
$(MOC) ../src/audiomixerboard.h -o moc/moc_audiomixerboard.cpp
|
||||
|
||||
moc/moc_util.cpp: ../src/util.h
|
||||
$(MOC) ../src/util.h -o moc/moc_util.cpp
|
||||
|
||||
|
|
157
src/audiomixerboard.cpp
Executable file
157
src/audiomixerboard.cpp
Executable file
|
@ -0,0 +1,157 @@
|
|||
/******************************************************************************\
|
||||
* Copyright (c) 2004-2006
|
||||
*
|
||||
* Author(s):
|
||||
* Volker Fischer
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
*
|
||||
******************************************************************************
|
||||
*
|
||||
* 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 "audiomixerboard.h"
|
||||
|
||||
|
||||
/* Implementation *************************************************************/
|
||||
CChannelFader::CChannelFader ( QWidget* pNW,
|
||||
QHBoxLayout* pNPtLy,
|
||||
QString sName ) :
|
||||
pParentLayout ( pNPtLy )
|
||||
{
|
||||
// create new GUI control objects and store pointers to them
|
||||
pMainGrid = new QGridLayout ( pNW, 2, 1 );
|
||||
pFader = new QSlider ( Qt::Vertical, pNW );
|
||||
pLabel = new QLabel ( "", pNW );
|
||||
|
||||
// setup slider
|
||||
pFader->setPageStep ( 1 );
|
||||
pFader->setTickmarks ( QSlider::Both );
|
||||
pFader->setRange ( 0, AUD_MIX_FADER_MAX );
|
||||
pFader->setTickInterval ( AUD_MIX_FADER_MAX / 9 );
|
||||
|
||||
// TEST set value and make read only
|
||||
pFader->setValue ( 0 );
|
||||
pFader->setEnabled ( FALSE );
|
||||
|
||||
// set label text
|
||||
pLabel->setText ( sName );
|
||||
|
||||
// add slider to grid as position 0 / 0
|
||||
pMainGrid->addWidget( pFader, 0, 0, Qt::AlignHCenter );
|
||||
|
||||
// add label to grid as position 1 / 0
|
||||
pMainGrid->addWidget( pLabel, 1, 0, Qt::AlignHCenter );
|
||||
|
||||
pParentLayout->insertLayout ( 0, pMainGrid );
|
||||
}
|
||||
|
||||
void CChannelFader::SetText ( const std::string sText )
|
||||
{
|
||||
const int iBreakPos = 6;
|
||||
|
||||
// break text at predefined position
|
||||
QString sModText = sText.c_str();
|
||||
|
||||
if ( sModText.length() > iBreakPos )
|
||||
{
|
||||
sModText.insert ( iBreakPos, QString ( "<br>" ) );
|
||||
}
|
||||
|
||||
// use bold text
|
||||
sModText.prepend ( "<b>" );
|
||||
sModText.append ( "</b>" );
|
||||
|
||||
pLabel->setText ( sModText );
|
||||
}
|
||||
|
||||
CAudioMixerBoard::CAudioMixerBoard ( QWidget* parent,
|
||||
const char* name,
|
||||
WFlags f ) :
|
||||
QFrame ( parent, name, f )
|
||||
{
|
||||
// set modified style
|
||||
setFrameShape ( QFrame::StyledPanel );
|
||||
setFrameShadow ( QFrame::Sunken );
|
||||
|
||||
// add hboxlayout with horizontal spacer
|
||||
pMainLayout = new QHBoxLayout ( this, 11, 6 );
|
||||
pMainLayout->addItem ( new QSpacerItem ( 0, 0, QSizePolicy::Expanding ) );
|
||||
|
||||
// create all mixer controls and make them invisible
|
||||
vecpChanFader.Init ( MAX_NUM_CHANNELS );
|
||||
for ( int i = 0; i < MAX_NUM_CHANNELS; i++ )
|
||||
{
|
||||
vecpChanFader[i] = new CChannelFader ( this,
|
||||
pMainLayout, "test" );
|
||||
|
||||
vecpChanFader[i]->Hide();
|
||||
}
|
||||
|
||||
|
||||
// TEST
|
||||
//vecpChanFader.Init(0);
|
||||
//vecpChanFader.Add(new CLlconClientDlg::CChannelFader(FrameAudioFaders, FrameAudioFadersLayout, "test"));
|
||||
|
||||
//FrameAudioFadersLayout->addWidget(new QLabel ( "test", FrameAudioFaders ));
|
||||
/*
|
||||
for ( int z = 0; z < 100; z++)
|
||||
{
|
||||
CLlconClientDlg::CChannelFader* pTest = new CLlconClientDlg::CChannelFader(FrameAudioFaders, FrameAudioFadersLayout);
|
||||
delete pTest;
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
}
|
||||
|
||||
void CAudioMixerBoard::Clear()
|
||||
{
|
||||
// make old controls invisible
|
||||
for ( int i = 0; i < MAX_NUM_CHANNELS; i++ )
|
||||
{
|
||||
vecpChanFader[i]->Hide();
|
||||
}
|
||||
}
|
||||
|
||||
void CAudioMixerBoard::ApplyNewConClientList ( CVector<CChannelShortInfo>& vecChanInfo )
|
||||
{
|
||||
int i;
|
||||
|
||||
|
||||
// TODO
|
||||
|
||||
// make old controls invisible
|
||||
Clear();
|
||||
|
||||
|
||||
// TEST add current faders
|
||||
for ( i = 0; i < vecChanInfo.Size(); i++ )
|
||||
{
|
||||
QHostAddress addrTest ( vecChanInfo[i].veciIpAddr );
|
||||
|
||||
vecpChanFader[i]->SetText ( addrTest.toString().latin1() );
|
||||
vecpChanFader[i]->Show();
|
||||
|
||||
|
||||
|
||||
// vecpChanFader[i] = new CLlconClientDlg::CChannelFader ( FrameAudioFaders,
|
||||
// FrameAudioFadersLayout, addrTest.toString() );
|
||||
}
|
||||
|
||||
}
|
91
src/audiomixerboard.h
Executable file
91
src/audiomixerboard.h
Executable file
|
@ -0,0 +1,91 @@
|
|||
/******************************************************************************\
|
||||
* Copyright (c) 2004-2006
|
||||
*
|
||||
* Author(s):
|
||||
* Volker Fischer
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
*
|
||||
******************************************************************************
|
||||
*
|
||||
* 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
|
||||
*
|
||||
\******************************************************************************/
|
||||
|
||||
#if !defined(MIXERBOARD_H__FD6B49E1606C2AC__INCLUDED_)
|
||||
#define MIXERBOARD_H__FD6B49E1606C2AC__INCLUDED_
|
||||
|
||||
#include <qframe.h>
|
||||
#include <qlabel.h>
|
||||
#include <qlayout.h>
|
||||
#include <qstring.h>
|
||||
#include <qslider.h>
|
||||
#include <qsizepolicy.h>
|
||||
#include "global.h"
|
||||
#include "util.h"
|
||||
|
||||
|
||||
/* Definitions ****************************************************************/
|
||||
// audio mixer fader range
|
||||
#define AUD_MIX_FADER_MAX 100
|
||||
|
||||
|
||||
/* Classes ********************************************************************/
|
||||
class CChannelFader
|
||||
{
|
||||
public:
|
||||
CChannelFader ( QWidget* pNW, QHBoxLayout* pNPtLy, QString sName );
|
||||
~CChannelFader()
|
||||
{
|
||||
pLabel->close();
|
||||
pFader->close();
|
||||
|
||||
// TODO get rid of pMainGrid
|
||||
}
|
||||
|
||||
void SetText ( const std::string sText );
|
||||
void Show() { pLabel->show(); pFader->show(); }
|
||||
void Hide() { pLabel->hide(); pFader->hide(); }
|
||||
|
||||
protected:
|
||||
QGridLayout* pMainGrid;
|
||||
QSlider* pFader;
|
||||
QLabel* pLabel;
|
||||
|
||||
QHBoxLayout* pParentLayout;
|
||||
};
|
||||
|
||||
|
||||
class CAudioMixerBoard : public QFrame
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
CAudioMixerBoard ( QWidget* parent = 0, const char* name = 0, WFlags f = 0 );
|
||||
|
||||
void Clear();
|
||||
void ApplyNewConClientList ( CVector<CChannelShortInfo>& vecChanInfo );
|
||||
|
||||
protected:
|
||||
CVector<CChannelFader*> vecpChanFader;
|
||||
QHBoxLayout* pMainLayout;
|
||||
|
||||
signals:
|
||||
void ChangeChanGain ( int iId, double dGain );
|
||||
};
|
||||
|
||||
|
||||
#endif // MIXERBOARD_H__FD6B49E1606C2AC__INCLUDED_
|
|
@ -428,6 +428,9 @@ CChannel::CChannel() : sName ( "" ),
|
|||
QObject::connect ( &Protocol,
|
||||
SIGNAL ( ChangeNetwBlSiFact ( int ) ),
|
||||
this, SLOT ( OnNetwBlSiFactChange ( int ) ) );
|
||||
|
||||
QObject::connect( &Protocol, SIGNAL ( ChangeChanGain ( int, double ) ),
|
||||
this, SLOT ( OnChangeChanGain ( int, double ) ) );
|
||||
}
|
||||
|
||||
void CChannel::SetEnable ( const bool bNEnStat )
|
||||
|
|
|
@ -41,10 +41,6 @@
|
|||
// correction is implemented)
|
||||
#define CON_TIME_OUT_SEC_MAX 5 // seconds
|
||||
|
||||
// maximum number of internet connections (channels)
|
||||
// if you want to change this paramter, change the connections in this class, too!
|
||||
#define MAX_NUM_CHANNELS 10 /* max number channels for server */
|
||||
|
||||
// no valid channel number
|
||||
#define INVALID_CHANNEL_ID (MAX_NUM_CHANNELS + 1)
|
||||
|
||||
|
@ -97,6 +93,9 @@ public:
|
|||
void SetGain ( const int iNID, const double dNG ) { vecdGains[iNID] = dNG; }
|
||||
double GetGain( const int iNID ) { return vecdGains[iNID]; }
|
||||
|
||||
void SetRemoteChanGain ( const int iId, const double dGain )
|
||||
{ Protocol.CreateChanGainMes ( iId, dGain ); }
|
||||
|
||||
void SetSockBufSize ( const int iNumBlocks );
|
||||
int GetSockBufSize() { return iCurSockBufSize; }
|
||||
|
||||
|
|
|
@ -46,9 +46,6 @@
|
|||
// audio in fader range
|
||||
#define AUD_FADER_IN_MAX 100
|
||||
|
||||
// audio mixer fader range
|
||||
#define AUD_MIX_FADER_MAX 100
|
||||
|
||||
// audio reverberation range
|
||||
#define AUD_REVERB_MAX 100
|
||||
|
||||
|
@ -113,6 +110,9 @@ public:
|
|||
}
|
||||
int GetNetwBufSizeFactOut() { return Channel.GetNetwBufSizeFactOut(); }
|
||||
|
||||
void SetRemoteChanGain ( const int iId, const double dGain )
|
||||
{ Channel.SetRemoteChanGain ( iId, dGain ); }
|
||||
|
||||
|
||||
CSound* GetSndInterface() { return &Sound; }
|
||||
CChannel* GetChannel() { return &Channel; }
|
||||
|
|
|
@ -82,6 +82,10 @@
|
|||
# define AUD_SLIDER_LENGTH 6
|
||||
#endif
|
||||
|
||||
// maximum number of internet connections (channels)
|
||||
// if you want to change this paramter, change the connections in channel class, too!
|
||||
#define MAX_NUM_CHANNELS 10 /* max number channels for server */
|
||||
|
||||
/* sample rate offset estimation algorithm */
|
||||
/* time interval for sample rate offset estimation */
|
||||
#define TIME_INT_SAM_OFFS_EST 60 /* s */
|
||||
|
|
|
@ -29,8 +29,7 @@
|
|||
CLlconClientDlg::CLlconClientDlg ( CClient* pNCliP, QWidget* parent,
|
||||
const char* name, bool modal, WFlags f) : pClient ( pNCliP ),
|
||||
CLlconClientDlgBase ( parent, name, modal, f ),
|
||||
ClientSettingsDlg ( pNCliP, 0, 0, FALSE, Qt::WStyle_MinMax ),
|
||||
vecpChanFader ( 0 )
|
||||
ClientSettingsDlg ( pNCliP, 0, 0, FALSE, Qt::WStyle_MinMax )
|
||||
{
|
||||
/* add help text to controls */
|
||||
QString strInpLevH = tr("<b>Input level meter:</b> Shows the level of the "
|
||||
|
@ -76,7 +75,7 @@ CLlconClientDlg::CLlconClientDlg ( CClient* pNCliP, QWidget* parent,
|
|||
QWhatsThis::add ( RadioButtonRevSelL, strRevChanSel );
|
||||
QWhatsThis::add ( RadioButtonRevSelR, strRevChanSel );
|
||||
|
||||
QWhatsThis::add ( CLEDOverallStatus, tr ( "<b>Overall Status:</b> "
|
||||
QWhatsThis::add ( LEDOverallStatus, tr ( "<b>Overall Status:</b> "
|
||||
"The overall status of the software is shown. If either the "
|
||||
"network or sound interface has bad status, this LED will show "
|
||||
"red color." ) );
|
||||
|
@ -143,19 +142,7 @@ CLlconClientDlg::CLlconClientDlg ( CClient* pNCliP, QWidget* parent,
|
|||
CLlconClientDlgBaseLayout->setMenuBar ( pMenu );
|
||||
|
||||
|
||||
// mixer board -------------------------------------------------------------
|
||||
// create all mixer controls and make them invisible
|
||||
vecpChanFader.Init ( MAX_NUM_CHANNELS );
|
||||
for ( int i = 0; i < MAX_NUM_CHANNELS; i++ )
|
||||
{
|
||||
vecpChanFader[i] = new CLlconClientDlg::CChannelFader ( FrameAudioFaders,
|
||||
FrameAudioFadersLayout, "test" );
|
||||
|
||||
vecpChanFader[i]->Hide();
|
||||
}
|
||||
|
||||
|
||||
/* connections ---------------------------------------------------------- */
|
||||
// connections -------------------------------------------------------------
|
||||
// push-buttons
|
||||
QObject::connect(PushButtonConnect, SIGNAL(clicked()),
|
||||
this, SLOT(OnConnectDisconBut()));
|
||||
|
@ -179,30 +166,16 @@ CLlconClientDlg::CLlconClientDlg ( CClient* pNCliP, QWidget* parent,
|
|||
this, SLOT(OnRevSelR()));
|
||||
|
||||
// other
|
||||
QObject::connect(pClient, SIGNAL ( ConClientListMesReceived ( CVector<CChannelShortInfo> ) ),
|
||||
QObject::connect ( pClient,
|
||||
SIGNAL ( ConClientListMesReceived ( CVector<CChannelShortInfo> ) ),
|
||||
this, SLOT ( OnConClientListMesReceived ( CVector<CChannelShortInfo> ) ) );
|
||||
QObject::connect ( MainMixerBoard, SIGNAL ( ChangeChanGain ( int, double ) ),
|
||||
this, SLOT ( OnChangeChanGain ( int, double ) ) );
|
||||
|
||||
|
||||
/* timers --------------------------------------------------------------- */
|
||||
// timers ------------------------------------------------------------------
|
||||
// start timer for status bar
|
||||
TimerStatus.start(STATUSBAR_UPDATE_TIME);
|
||||
|
||||
|
||||
|
||||
// TEST
|
||||
//vecpChanFader.Init(0);
|
||||
//vecpChanFader.Add(new CLlconClientDlg::CChannelFader(FrameAudioFaders, FrameAudioFadersLayout, "test"));
|
||||
|
||||
//FrameAudioFadersLayout->addWidget(new QLabel ( "test", FrameAudioFaders ));
|
||||
/*
|
||||
for ( int z = 0; z < 100; z++)
|
||||
{
|
||||
CLlconClientDlg::CChannelFader* pTest = new CLlconClientDlg::CChannelFader(FrameAudioFaders, FrameAudioFadersLayout);
|
||||
delete pTest;
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
}
|
||||
|
||||
CLlconClientDlg::~CLlconClientDlg()
|
||||
|
@ -225,35 +198,26 @@ void CLlconClientDlg::closeEvent ( QCloseEvent * Event )
|
|||
|
||||
void CLlconClientDlg::OnConnectDisconBut()
|
||||
{
|
||||
/* start/stop client, set button text */
|
||||
// start/stop client, set button text
|
||||
if ( pClient->IsRunning() )
|
||||
{
|
||||
pClient->Stop();
|
||||
PushButtonConnect->setText ( CON_BUT_CONNECTTEXT );
|
||||
|
||||
/* stop timer for level meter bars and reset them */
|
||||
// stop timer for level meter bars and reset them
|
||||
TimerSigMet.stop();
|
||||
ProgressBarInputLevelL->setProgress ( 0 );
|
||||
ProgressBarInputLevelR->setProgress ( 0 );
|
||||
|
||||
/* immediately update status bar */
|
||||
// immediately update status bar
|
||||
OnTimerStatus();
|
||||
|
||||
|
||||
|
||||
// TEST
|
||||
// make old controls invisible
|
||||
for ( int i = 0; i < MAX_NUM_CHANNELS; i++ )
|
||||
{
|
||||
vecpChanFader[i]->Hide();
|
||||
}
|
||||
|
||||
|
||||
|
||||
// clear mixer board (remove all faders)
|
||||
MainMixerBoard->Clear();
|
||||
}
|
||||
else
|
||||
{
|
||||
/* set address and check if address is valid */
|
||||
// set address and check if address is valid
|
||||
if ( pClient->SetServerAddr ( LineEditServerAddr->text() ) )
|
||||
{
|
||||
#if ( QT_VERSION > 300 )
|
||||
|
@ -263,16 +227,16 @@ for ( int i = 0; i < MAX_NUM_CHANNELS; i++ )
|
|||
#endif
|
||||
PushButtonConnect->setText ( CON_BUT_DISCONNECTTEXT );
|
||||
|
||||
/* start timer for level meter bar */
|
||||
// start timer for level meter bar
|
||||
TimerSigMet.start ( LEVELMETER_UPDATE_TIME );
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Restart timer to ensure that the text is visible at
|
||||
least the time for one complete interval */
|
||||
// Restart timer to ensure that the text is visible at
|
||||
// least the time for one complete interval
|
||||
TimerStatus.changeInterval ( STATUSBAR_UPDATE_TIME );
|
||||
|
||||
/* show the error in the status bar */
|
||||
// show the error in the status bar
|
||||
TextLabelStatus->setText ( tr ( "invalid address" ) );
|
||||
}
|
||||
}
|
||||
|
@ -317,37 +281,6 @@ void CLlconClientDlg::OnTimerSigMet ()
|
|||
ProgressBarInputLevelR->setProgress ( (int) ceil ( dCurSigLevelR ) );
|
||||
}
|
||||
|
||||
void CLlconClientDlg::OnConClientListMesReceived ( CVector<CChannelShortInfo> vecChanInfo )
|
||||
{
|
||||
int i;
|
||||
|
||||
|
||||
// TODO
|
||||
|
||||
// make old controls invisible
|
||||
for ( i = 0; i < MAX_NUM_CHANNELS; i++ )
|
||||
{
|
||||
vecpChanFader[i]->Hide();
|
||||
}
|
||||
|
||||
|
||||
// TEST add current faders
|
||||
for ( i = 0; i < vecChanInfo.Size(); i++ )
|
||||
{
|
||||
QHostAddress addrTest ( vecChanInfo[i].veciIpAddr );
|
||||
|
||||
vecpChanFader[i]->SetText ( addrTest.toString().latin1() );
|
||||
vecpChanFader[i]->Show();
|
||||
|
||||
|
||||
|
||||
// vecpChanFader[i] = new CLlconClientDlg::CChannelFader ( FrameAudioFaders,
|
||||
// FrameAudioFadersLayout, addrTest.toString() );
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
void CLlconClientDlg::UpdateDisplay()
|
||||
{
|
||||
/* show connection status in status bar */
|
||||
|
@ -376,11 +309,11 @@ void CLlconClientDlg::customEvent ( QCustomEvent* Event )
|
|||
case MS_JIT_BUF_GET:
|
||||
|
||||
// show overall status -> if any LED goes red, this LED will go red
|
||||
CLEDOverallStatus->SetLight ( iStatus );
|
||||
LEDOverallStatus->SetLight ( iStatus );
|
||||
break;
|
||||
|
||||
case MS_RESET_ALL:
|
||||
CLEDOverallStatus->Reset();
|
||||
LEDOverallStatus->Reset();
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -388,56 +321,3 @@ void CLlconClientDlg::customEvent ( QCustomEvent* Event )
|
|||
ClientSettingsDlg.SetStatus ( iMessType, iStatus );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Help classes ---------------------------------------------------------------
|
||||
CLlconClientDlg::CChannelFader::CChannelFader ( QWidget* pNW,
|
||||
QHBoxLayout* pNPtLy,
|
||||
QString sName ) :
|
||||
pParentLayout ( pNPtLy )
|
||||
{
|
||||
// create new GUI control objects and store pointers to them
|
||||
pMainGrid = new QGridLayout ( pNW, 2, 1 );
|
||||
pFader = new QSlider ( Qt::Vertical, pNW );
|
||||
pLabel = new QLabel ( "", pNW );
|
||||
|
||||
// setup slider
|
||||
pFader->setPageStep ( 1 );
|
||||
pFader->setTickmarks ( QSlider::Both );
|
||||
pFader->setRange ( 0, AUD_MIX_FADER_MAX );
|
||||
pFader->setTickInterval ( AUD_MIX_FADER_MAX / 9 );
|
||||
|
||||
// TEST set value and make read only
|
||||
pFader->setValue ( 0 );
|
||||
pFader->setEnabled ( FALSE );
|
||||
|
||||
// set label text
|
||||
pLabel->setText ( sName );
|
||||
|
||||
// add slider to grid as position 0 / 0
|
||||
pMainGrid->addWidget( pFader, 0, 0, Qt::AlignHCenter );
|
||||
|
||||
// add label to grid as position 1 / 0
|
||||
pMainGrid->addWidget( pLabel, 1, 0, Qt::AlignHCenter );
|
||||
|
||||
pParentLayout->insertLayout ( 0, pMainGrid );
|
||||
}
|
||||
|
||||
void CLlconClientDlg::CChannelFader::SetText ( const std::string sText )
|
||||
{
|
||||
const int iBreakPos = 6;
|
||||
|
||||
// break text at predefined position
|
||||
QString sModText = sText.c_str();
|
||||
|
||||
if ( sModText.length() > iBreakPos )
|
||||
{
|
||||
sModText.insert ( iBreakPos, QString ( "<br>" ) );
|
||||
}
|
||||
|
||||
// use bold text
|
||||
sModText.prepend ( "<b>" );
|
||||
sModText.append ( "</b>" );
|
||||
|
||||
pLabel->setText ( sModText );
|
||||
}
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
#include "global.h"
|
||||
#include "client.h"
|
||||
#include "multicolorled.h"
|
||||
#include "audiomixerboard.h"
|
||||
#include "clientsettingsdlg.h"
|
||||
#ifdef _WIN32
|
||||
# include "../windows/moc/llconclientdlgbase.h"
|
||||
|
@ -73,30 +74,6 @@ public:
|
|||
virtual ~CLlconClientDlg ();
|
||||
|
||||
protected:
|
||||
class CChannelFader
|
||||
{
|
||||
public:
|
||||
CChannelFader ( QWidget* pNW, QHBoxLayout* pNPtLy, QString sName );
|
||||
~CChannelFader()
|
||||
{
|
||||
pLabel->close();
|
||||
pFader->close();
|
||||
|
||||
// TODO get rid of pMainGrid
|
||||
}
|
||||
|
||||
void SetText ( const std::string sText );
|
||||
void Show() { pLabel->show(); pFader->show(); }
|
||||
void Hide() { pLabel->hide(); pFader->hide(); }
|
||||
|
||||
protected:
|
||||
QGridLayout* pMainGrid;
|
||||
QSlider* pFader;
|
||||
QLabel* pLabel;
|
||||
|
||||
QHBoxLayout* pParentLayout;
|
||||
};
|
||||
|
||||
CClient* pClient;
|
||||
bool bConnected;
|
||||
QTimer TimerSigMet;
|
||||
|
@ -111,8 +88,6 @@ protected:
|
|||
|
||||
CClientSettingsDlg ClientSettingsDlg;
|
||||
|
||||
CVector<CChannelFader*> vecpChanFader;
|
||||
|
||||
public slots:
|
||||
void OnConnectDisconBut();
|
||||
void OnTimerSigMet();
|
||||
|
@ -123,5 +98,8 @@ public slots:
|
|||
{ pClient->SetReverbLevel ( AUD_REVERB_MAX - value ); }
|
||||
void OnRevSelL() { pClient->SetReverbOnLeftChan(true); }
|
||||
void OnRevSelR() { pClient->SetReverbOnLeftChan(false); }
|
||||
void OnConClientListMesReceived ( CVector<CChannelShortInfo> vecChanInfo );
|
||||
void OnConClientListMesReceived ( CVector<CChannelShortInfo> vecChanInfo )
|
||||
{ MainMixerBoard->ApplyNewConClientList ( vecChanInfo ); }
|
||||
void OnChangeChanGain ( int iId, double dGain )
|
||||
{ pClient->SetRemoteChanGain ( iId, dGain ); }
|
||||
};
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>597</width>
|
||||
<width>586</width>
|
||||
<height>289</height>
|
||||
</rect>
|
||||
</property>
|
||||
|
@ -401,7 +401,7 @@
|
|||
<class>CMultiColorLED</class>
|
||||
<property stdset="1">
|
||||
<name>name</name>
|
||||
<cstring>CLEDOverallStatus</cstring>
|
||||
<cstring>LEDOverallStatus</cstring>
|
||||
</property>
|
||||
<property stdset="1">
|
||||
<name>minimumSize</name>
|
||||
|
@ -612,50 +612,18 @@ Fader</string>
|
|||
</vbox>
|
||||
</widget>
|
||||
<widget>
|
||||
<class>QFrame</class>
|
||||
<class>CAudioMixerBoard</class>
|
||||
<property stdset="1">
|
||||
<name>name</name>
|
||||
<cstring>FrameAudioFaders</cstring>
|
||||
<cstring>MainMixerBoard</cstring>
|
||||
</property>
|
||||
<property stdset="1">
|
||||
<name>frameShape</name>
|
||||
<enum>StyledPanel</enum>
|
||||
<name>sizePolicy</name>
|
||||
<sizepolicy>
|
||||
<hsizetype>7</hsizetype>
|
||||
<vsizetype>5</vsizetype>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property stdset="1">
|
||||
<name>frameShadow</name>
|
||||
<enum>Sunken</enum>
|
||||
</property>
|
||||
<hbox>
|
||||
<property stdset="1">
|
||||
<name>margin</name>
|
||||
<number>11</number>
|
||||
</property>
|
||||
<property stdset="1">
|
||||
<name>spacing</name>
|
||||
<number>6</number>
|
||||
</property>
|
||||
<spacer>
|
||||
<property>
|
||||
<name>name</name>
|
||||
<cstring>Spacer2</cstring>
|
||||
</property>
|
||||
<property>
|
||||
<name>orientation</name>
|
||||
<enum>Horizontal</enum>
|
||||
</property>
|
||||
<property>
|
||||
<name>sizeType</name>
|
||||
<enum>Expanding</enum>
|
||||
</property>
|
||||
<property>
|
||||
<name>sizeHint</name>
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</hbox>
|
||||
</widget>
|
||||
</hbox>
|
||||
</widget>
|
||||
|
@ -676,6 +644,20 @@ Fader</string>
|
|||
</sizepolicy>
|
||||
<pixmap>image2</pixmap>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>CAudioMixerBoard</class>
|
||||
<header location="local">audiomixerboard.h</header>
|
||||
<sizehint>
|
||||
<width>-1</width>
|
||||
<height>-1</height>
|
||||
</sizehint>
|
||||
<container>0</container>
|
||||
<sizepolicy>
|
||||
<hordata>5</hordata>
|
||||
<verdata>5</verdata>
|
||||
</sizepolicy>
|
||||
<pixmap>image2</pixmap>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<images>
|
||||
<image>
|
||||
|
|
|
@ -175,7 +175,7 @@ void CMultiColorLEDbase::SetUpdateTime(int iNUTi)
|
|||
CMultiColorLED::CMultiColorLED(QWidget* parent, const char* name, WFlags f) :
|
||||
QLabel(parent, name, f)
|
||||
{
|
||||
/* Set modified style */
|
||||
// set modified style
|
||||
setFrameShape(QFrame::Panel);
|
||||
setFrameShadow(QFrame::Sunken);
|
||||
setIndent(0);
|
||||
|
|
|
@ -28,6 +28,7 @@ rem\****************************************************************************
|
|||
rem .h --------------
|
||||
%qtdir%\bin\moc.exe ..\src\util.h -o moc\moc_util.cpp
|
||||
%qtdir%\bin\moc.exe ..\src\multicolorled.h -o moc\moc_multicolorled.cpp
|
||||
%qtdir%\bin\moc.exe ..\src\audiomixerboard.h -o moc\moc_audiomixerboard.cpp
|
||||
%qtdir%\bin\moc.exe ..\src\llconclientdlg.h -o moc\moc_llconclientdlg.cpp
|
||||
%qtdir%\bin\moc.exe ..\src\clientsettingsdlg.h -o moc\moc_clientsettingsdlg.cpp
|
||||
%qtdir%\bin\moc.exe ..\src\llconserverdlg.h -o moc\moc_llconserverdlg.cpp
|
||||
|
|
|
@ -117,6 +117,10 @@ SOURCE=.\moc\moc_aboutdlgbase.cpp
|
|||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\moc\moc_audiomixerboard.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\moc\moc_channel.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
@ -174,6 +178,10 @@ SOURCE=..\src\audiocompr.cpp
|
|||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\src\audiomixerboard.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\src\buffer.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
@ -242,6 +250,10 @@ SOURCE=..\src\audiocompr.h
|
|||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\src\audiomixerboard.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\src\buffer.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
|
Loading…
Reference in a new issue