2006-12-18 15:39:33 +01:00
|
|
|
/******************************************************************************\
|
2011-02-22 19:56:52 +01:00
|
|
|
* Copyright (c) 2004-2011
|
2006-12-18 15:39:33 +01:00
|
|
|
*
|
|
|
|
* 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
|
|
|
|
*
|
|
|
|
\******************************************************************************/
|
|
|
|
|
2007-09-08 12:45:14 +02:00
|
|
|
#if !defined ( MIXERBOARD_H__FD6B49E1606C2AC__INCLUDED_ )
|
2006-12-18 15:39:33 +01:00
|
|
|
#define MIXERBOARD_H__FD6B49E1606C2AC__INCLUDED_
|
|
|
|
|
2009-05-08 06:34:06 +02:00
|
|
|
#include <qgroupbox.h>
|
2008-01-20 19:07:13 +01:00
|
|
|
#include <qlabel.h>
|
2009-05-08 05:54:12 +02:00
|
|
|
#include <qcheckbox.h>
|
2008-01-20 19:07:13 +01:00
|
|
|
#include <qlayout.h>
|
|
|
|
#include <qstring.h>
|
|
|
|
#include <qslider.h>
|
|
|
|
#include <qsizepolicy.h>
|
2008-01-22 22:15:04 +01:00
|
|
|
#include <qhostaddress.h>
|
2006-12-09 16:00:24 +01:00
|
|
|
#include "global.h"
|
2006-12-18 15:39:33 +01:00
|
|
|
#include "util.h"
|
|
|
|
|
2006-12-09 16:00:24 +01:00
|
|
|
|
|
|
|
/* Definitions ****************************************************************/
|
|
|
|
// audio mixer fader range
|
|
|
|
#define AUD_MIX_FADER_MAX 100
|
|
|
|
|
2006-12-18 15:39:33 +01:00
|
|
|
|
2006-12-09 16:00:24 +01:00
|
|
|
/* Classes ********************************************************************/
|
2006-12-09 19:37:40 +01:00
|
|
|
class CChannelFader : public QObject
|
2006-12-09 16:00:24 +01:00
|
|
|
{
|
2006-12-09 19:37:40 +01:00
|
|
|
Q_OBJECT
|
|
|
|
|
2006-12-09 16:00:24 +01:00
|
|
|
public:
|
2009-05-08 05:54:12 +02:00
|
|
|
CChannelFader ( QWidget* pNW, QHBoxLayout* pParentLayout );
|
2006-12-09 16:00:24 +01:00
|
|
|
~CChannelFader()
|
|
|
|
{
|
|
|
|
pLabel->close();
|
2009-05-08 05:54:12 +02:00
|
|
|
pcbMute->close();
|
|
|
|
pcbSolo->close();
|
2006-12-09 16:00:24 +01:00
|
|
|
pFader->close();
|
|
|
|
|
|
|
|
// TODO get rid of pMainGrid
|
|
|
|
}
|
|
|
|
|
2008-01-22 22:15:04 +01:00
|
|
|
void SetText ( const QString sText );
|
2009-05-08 05:54:12 +02:00
|
|
|
void Show() { pLabel->show(); pcbMute->show(); pcbSolo->show(); pFader->show(); }
|
|
|
|
void Hide() { pLabel->hide(); pcbMute->hide(); pcbSolo->hide(); pFader->hide(); }
|
2006-12-09 19:37:40 +01:00
|
|
|
bool IsVisible() { return pLabel->isVisible(); }
|
2009-09-19 10:28:24 +02:00
|
|
|
void SetGUIDesign ( const EGUIDesign eNewDesign );
|
2006-12-09 19:37:40 +01:00
|
|
|
|
2009-05-08 23:14:33 +02:00
|
|
|
void ResetSoloState();
|
|
|
|
void SetOtherSoloState ( const bool bState );
|
|
|
|
|
2009-05-08 05:54:12 +02:00
|
|
|
void Reset();
|
2006-12-09 16:00:24 +01:00
|
|
|
|
|
|
|
protected:
|
2009-05-08 05:54:12 +02:00
|
|
|
double CalcFaderGain ( const int value );
|
2009-05-08 23:14:33 +02:00
|
|
|
void SetMute ( const bool bState );
|
2009-05-08 05:54:12 +02:00
|
|
|
|
2011-04-01 22:06:14 +02:00
|
|
|
QVBoxLayout* pMainGrid;
|
|
|
|
QSlider* pFader;
|
|
|
|
QCheckBox* pcbMute;
|
|
|
|
QCheckBox* pcbSolo;
|
|
|
|
QLabel* pLabel;
|
2006-12-09 16:00:24 +01:00
|
|
|
|
2011-04-01 22:06:14 +02:00
|
|
|
bool bOtherChannelIsSolo;
|
2009-05-08 23:14:33 +02:00
|
|
|
|
2006-12-09 19:37:40 +01:00
|
|
|
public slots:
|
2009-05-08 23:14:33 +02:00
|
|
|
void OnGainValueChanged ( int value );
|
2009-05-08 05:54:12 +02:00
|
|
|
void OnMuteStateChanged ( int value );
|
2006-12-09 19:37:40 +01:00
|
|
|
|
|
|
|
signals:
|
2009-05-08 23:14:33 +02:00
|
|
|
void gainValueChanged ( double value );
|
|
|
|
void soloStateChanged ( int value );
|
2006-12-09 16:00:24 +01:00
|
|
|
};
|
|
|
|
|
2006-12-18 15:39:33 +01:00
|
|
|
|
2009-05-08 06:34:06 +02:00
|
|
|
class CAudioMixerBoard : public QGroupBox
|
2006-12-18 15:39:33 +01:00
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
|
2006-12-09 16:00:24 +01:00
|
|
|
public:
|
2008-01-14 23:14:17 +01:00
|
|
|
CAudioMixerBoard ( QWidget* parent = 0, Qt::WindowFlags f = 0 );
|
2006-12-09 16:00:24 +01:00
|
|
|
|
2006-12-09 19:37:40 +01:00
|
|
|
void HideAll();
|
2006-12-09 16:00:24 +01:00
|
|
|
void ApplyNewConClientList ( CVector<CChannelShortInfo>& vecChanInfo );
|
2009-09-19 10:28:24 +02:00
|
|
|
void SetGUIDesign ( const EGUIDesign eNewDesign );
|
2006-12-09 16:00:24 +01:00
|
|
|
|
|
|
|
protected:
|
2008-01-22 22:15:04 +01:00
|
|
|
QString GenFaderText ( CChannelShortInfo& ChanInfo );
|
2009-05-08 23:14:33 +02:00
|
|
|
void OnChSoloStateChanged ( const int iChannelIdx, const int iValue );
|
2006-12-09 19:37:40 +01:00
|
|
|
|
2006-12-09 16:00:24 +01:00
|
|
|
CVector<CChannelFader*> vecpChanFader;
|
|
|
|
QHBoxLayout* pMainLayout;
|
|
|
|
|
2006-12-09 19:37:40 +01:00
|
|
|
public slots:
|
|
|
|
// CODE TAG: MAX_NUM_CHANNELS_TAG
|
|
|
|
// make sure we have MAX_NUM_CHANNELS connections!!!
|
2011-04-01 22:06:14 +02:00
|
|
|
void OnGainValueChangedCh0 ( double dValue ) { emit ChangeChanGain ( 0, dValue ); }
|
|
|
|
void OnGainValueChangedCh1 ( double dValue ) { emit ChangeChanGain ( 1, dValue ); }
|
|
|
|
void OnGainValueChangedCh2 ( double dValue ) { emit ChangeChanGain ( 2, dValue ); }
|
|
|
|
void OnGainValueChangedCh3 ( double dValue ) { emit ChangeChanGain ( 3, dValue ); }
|
|
|
|
void OnGainValueChangedCh4 ( double dValue ) { emit ChangeChanGain ( 4, dValue ); }
|
|
|
|
void OnGainValueChangedCh5 ( double dValue ) { emit ChangeChanGain ( 5, dValue ); }
|
|
|
|
void OnGainValueChangedCh6 ( double dValue ) { emit ChangeChanGain ( 6, dValue ); }
|
|
|
|
void OnGainValueChangedCh7 ( double dValue ) { emit ChangeChanGain ( 7, dValue ); }
|
|
|
|
void OnGainValueChangedCh8 ( double dValue ) { emit ChangeChanGain ( 8, dValue ); }
|
|
|
|
void OnGainValueChangedCh9 ( double dValue ) { emit ChangeChanGain ( 9, dValue ); }
|
|
|
|
void OnGainValueChangedCh10 ( double dValue ) { emit ChangeChanGain ( 10, dValue ); }
|
|
|
|
void OnGainValueChangedCh11 ( double dValue ) { emit ChangeChanGain ( 11, dValue ); }
|
|
|
|
|
|
|
|
void OnChSoloStateChangedCh0 ( int value ) { OnChSoloStateChanged ( 0, value ); }
|
|
|
|
void OnChSoloStateChangedCh1 ( int value ) { OnChSoloStateChanged ( 1, value ); }
|
|
|
|
void OnChSoloStateChangedCh2 ( int value ) { OnChSoloStateChanged ( 2, value ); }
|
|
|
|
void OnChSoloStateChangedCh3 ( int value ) { OnChSoloStateChanged ( 3, value ); }
|
|
|
|
void OnChSoloStateChangedCh4 ( int value ) { OnChSoloStateChanged ( 4, value ); }
|
|
|
|
void OnChSoloStateChangedCh5 ( int value ) { OnChSoloStateChanged ( 5, value ); }
|
|
|
|
void OnChSoloStateChangedCh6 ( int value ) { OnChSoloStateChanged ( 6, value ); }
|
|
|
|
void OnChSoloStateChangedCh7 ( int value ) { OnChSoloStateChanged ( 7, value ); }
|
|
|
|
void OnChSoloStateChangedCh8 ( int value ) { OnChSoloStateChanged ( 8, value ); }
|
|
|
|
void OnChSoloStateChangedCh9 ( int value ) { OnChSoloStateChanged ( 9, value ); }
|
|
|
|
void OnChSoloStateChangedCh10 ( int value ) { OnChSoloStateChanged ( 10, value ); }
|
|
|
|
void OnChSoloStateChangedCh11 ( int value ) { OnChSoloStateChanged ( 11, value ); }
|
2006-12-09 19:37:40 +01:00
|
|
|
|
2006-12-09 16:00:24 +01:00
|
|
|
signals:
|
|
|
|
void ChangeChanGain ( int iId, double dGain );
|
2009-10-19 09:58:22 +02:00
|
|
|
void NumClientsChanged ( int iNewNumClients );
|
2006-12-18 15:39:33 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif // MIXERBOARD_H__FD6B49E1606C2AC__INCLUDED_
|