support storing group state
This commit is contained in:
parent
6df966a757
commit
f22762d7ef
8 changed files with 88 additions and 56 deletions
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
3.5.9git
|
3.5.9git
|
||||||
|
|
||||||
- bug fix: grouping faders in the client should be proportional (see discussion in #202)
|
- bug fix: grouping faders in the client should be proportional (see discussion in #202, #419)
|
||||||
|
|
||||||
|
|
||||||
TODO bug fix: incorrect selection of UI language (#408) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
TODO bug fix: incorrect selection of UI language (#408) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
|
|
|
@ -379,11 +379,6 @@ void CChannelFader::SetPanValue ( const int iPan )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CChannelFader::SetFaderIsSelect ( const bool bIsSelected )
|
|
||||||
{
|
|
||||||
pcbGroup->setChecked ( bIsSelected );
|
|
||||||
}
|
|
||||||
|
|
||||||
void CChannelFader::SetFaderIsSolo ( const bool bIsSolo )
|
void CChannelFader::SetFaderIsSolo ( const bool bIsSolo )
|
||||||
{
|
{
|
||||||
// changing the state automatically emits the signal, too
|
// changing the state automatically emits the signal, too
|
||||||
|
@ -659,19 +654,20 @@ double CChannelFader::CalcFaderGain ( const double dValue )
|
||||||
* CAudioMixerBoard *
|
* CAudioMixerBoard *
|
||||||
\******************************************************************************/
|
\******************************************************************************/
|
||||||
CAudioMixerBoard::CAudioMixerBoard ( QWidget* parent, Qt::WindowFlags ) :
|
CAudioMixerBoard::CAudioMixerBoard ( QWidget* parent, Qt::WindowFlags ) :
|
||||||
QGroupBox ( parent ),
|
QGroupBox ( parent ),
|
||||||
vecStoredFaderTags ( MAX_NUM_STORED_FADER_SETTINGS, "" ),
|
vecStoredFaderTags ( MAX_NUM_STORED_FADER_SETTINGS, "" ),
|
||||||
vecStoredFaderLevels ( MAX_NUM_STORED_FADER_SETTINGS, AUD_MIX_FADER_MAX ),
|
vecStoredFaderLevels ( MAX_NUM_STORED_FADER_SETTINGS, AUD_MIX_FADER_MAX ),
|
||||||
vecStoredPanValues ( MAX_NUM_STORED_FADER_SETTINGS, AUD_MIX_PAN_MAX / 2 ),
|
vecStoredPanValues ( MAX_NUM_STORED_FADER_SETTINGS, AUD_MIX_PAN_MAX / 2 ),
|
||||||
vecStoredFaderIsSolo ( MAX_NUM_STORED_FADER_SETTINGS, false ),
|
vecStoredFaderIsSolo ( MAX_NUM_STORED_FADER_SETTINGS, false ),
|
||||||
vecStoredFaderIsMute ( MAX_NUM_STORED_FADER_SETTINGS, false ),
|
vecStoredFaderIsMute ( MAX_NUM_STORED_FADER_SETTINGS, false ),
|
||||||
iNewClientFaderLevel ( 100 ),
|
vecStoredFaderGroupID ( MAX_NUM_STORED_FADER_SETTINGS, INVALID_INDEX ),
|
||||||
bDisplayPans ( false ),
|
iNewClientFaderLevel ( 100 ),
|
||||||
bIsPanSupported ( false ),
|
bDisplayPans ( false ),
|
||||||
bNoFaderVisible ( true ),
|
bIsPanSupported ( false ),
|
||||||
iMyChannelID ( INVALID_INDEX ),
|
bNoFaderVisible ( true ),
|
||||||
strServerName ( "" ),
|
iMyChannelID ( INVALID_INDEX ),
|
||||||
eRecorderState ( RS_UNDEFINED )
|
strServerName ( "" ),
|
||||||
|
eRecorderState ( RS_UNDEFINED )
|
||||||
{
|
{
|
||||||
// add group box and hboxlayout
|
// add group box and hboxlayout
|
||||||
QHBoxLayout* pGroupBoxLayout = new QHBoxLayout ( this );
|
QHBoxLayout* pGroupBoxLayout = new QHBoxLayout ( this );
|
||||||
|
@ -967,17 +963,20 @@ void CAudioMixerBoard::ApplyNewConClientList ( CVector<CChannelInfo>& vecChanInf
|
||||||
int iStoredPanValue;
|
int iStoredPanValue;
|
||||||
bool bStoredFaderIsSolo;
|
bool bStoredFaderIsSolo;
|
||||||
bool bStoredFaderIsMute;
|
bool bStoredFaderIsMute;
|
||||||
|
int iGroupID;
|
||||||
|
|
||||||
if ( GetStoredFaderSettings ( vecChanInfo[j],
|
if ( GetStoredFaderSettings ( vecChanInfo[j],
|
||||||
iStoredFaderLevel,
|
iStoredFaderLevel,
|
||||||
iStoredPanValue,
|
iStoredPanValue,
|
||||||
bStoredFaderIsSolo,
|
bStoredFaderIsSolo,
|
||||||
bStoredFaderIsMute ) )
|
bStoredFaderIsMute,
|
||||||
|
iGroupID ) )
|
||||||
{
|
{
|
||||||
vecpChanFader[i]->SetFaderLevel ( iStoredFaderLevel );
|
vecpChanFader[i]->SetFaderLevel ( iStoredFaderLevel );
|
||||||
vecpChanFader[i]->SetPanValue ( iStoredPanValue );
|
vecpChanFader[i]->SetPanValue ( iStoredPanValue );
|
||||||
vecpChanFader[i]->SetFaderIsSolo ( bStoredFaderIsSolo );
|
vecpChanFader[i]->SetFaderIsSolo ( bStoredFaderIsSolo );
|
||||||
vecpChanFader[i]->SetFaderIsMute ( bStoredFaderIsMute );
|
vecpChanFader[i]->SetFaderIsMute ( bStoredFaderIsMute );
|
||||||
|
vecpChanFader[i]->SetGroupID ( iGroupID ); // Must be the last to be set in the fader!
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1076,13 +1075,13 @@ void CAudioMixerBoard::UpdateGainValue ( const int iChannelIdx,
|
||||||
// if this fader is selected, all other in the group must be updated as
|
// if this fader is selected, all other in the group must be updated as
|
||||||
// well (note that we do not have to update if this is already a group update
|
// well (note that we do not have to update if this is already a group update
|
||||||
// to avoid an infinite loop)
|
// to avoid an infinite loop)
|
||||||
if ( vecpChanFader[iChannelIdx]->IsSelect() && !bIsGroupUpdate )
|
if ( ( vecpChanFader[iChannelIdx]->GetGroupID() != INVALID_INDEX ) && !bIsGroupUpdate )
|
||||||
{
|
{
|
||||||
for ( int i = 0; i < MAX_NUM_CHANNELS; i++ )
|
for ( int i = 0; i < MAX_NUM_CHANNELS; i++ )
|
||||||
{
|
{
|
||||||
// update rest of faders selected
|
// update rest of faders selected
|
||||||
if ( vecpChanFader[i]->IsVisible() &&
|
if ( vecpChanFader[i]->IsVisible() &&
|
||||||
vecpChanFader[i]->IsSelect() &&
|
( vecpChanFader[i]->GetGroupID() == vecpChanFader[iChannelIdx]->GetGroupID() ) &&
|
||||||
( i != iChannelIdx ) &&
|
( i != iChannelIdx ) &&
|
||||||
( dLevelRatio >= 0 ) )
|
( dLevelRatio >= 0 ) )
|
||||||
{
|
{
|
||||||
|
@ -1106,10 +1105,11 @@ void CAudioMixerBoard::StoreFaderSettings ( CChannelFader* pChanFader )
|
||||||
if ( pChanFader->IsVisible() &&
|
if ( pChanFader->IsVisible() &&
|
||||||
!pChanFader->GetReceivedName().isEmpty() )
|
!pChanFader->GetReceivedName().isEmpty() )
|
||||||
{
|
{
|
||||||
CVector<int> viOldStoredFaderLevels ( vecStoredFaderLevels );
|
CVector<int> viOldStoredFaderLevels ( vecStoredFaderLevels );
|
||||||
CVector<int> viOldStoredPanValues ( vecStoredPanValues );
|
CVector<int> viOldStoredPanValues ( vecStoredPanValues );
|
||||||
CVector<int> vbOldStoredFaderIsSolo ( vecStoredFaderIsSolo );
|
CVector<int> vbOldStoredFaderIsSolo ( vecStoredFaderIsSolo );
|
||||||
CVector<int> vbOldStoredFaderIsMute ( vecStoredFaderIsMute );
|
CVector<int> vbOldStoredFaderIsMute ( vecStoredFaderIsMute );
|
||||||
|
CVector<int> vbOldStoredFaderGroupID ( vecStoredFaderGroupID );
|
||||||
|
|
||||||
// init temporary list count (may be overwritten later on)
|
// init temporary list count (may be overwritten later on)
|
||||||
int iTempListCnt = 0;
|
int iTempListCnt = 0;
|
||||||
|
@ -1120,11 +1120,12 @@ void CAudioMixerBoard::StoreFaderSettings ( CChannelFader* pChanFader )
|
||||||
true );
|
true );
|
||||||
|
|
||||||
// current fader level and solo state is at the top of the list
|
// current fader level and solo state is at the top of the list
|
||||||
vecStoredFaderLevels[0] = pChanFader->GetFaderLevel();
|
vecStoredFaderLevels[0] = pChanFader->GetFaderLevel();
|
||||||
vecStoredPanValues[0] = pChanFader->GetPanValue();
|
vecStoredPanValues[0] = pChanFader->GetPanValue();
|
||||||
vecStoredFaderIsSolo[0] = pChanFader->IsSolo();
|
vecStoredFaderIsSolo[0] = pChanFader->IsSolo();
|
||||||
vecStoredFaderIsMute[0] = pChanFader->IsMute();
|
vecStoredFaderIsMute[0] = pChanFader->IsMute();
|
||||||
iTempListCnt = 1;
|
vecStoredFaderGroupID[0] = pChanFader->GetGroupID();
|
||||||
|
iTempListCnt = 1;
|
||||||
|
|
||||||
for ( int iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ )
|
for ( int iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ )
|
||||||
{
|
{
|
||||||
|
@ -1136,10 +1137,11 @@ void CAudioMixerBoard::StoreFaderSettings ( CChannelFader* pChanFader )
|
||||||
// index in case the entry was not present in the vector before
|
// index in case the entry was not present in the vector before
|
||||||
if ( iIdx != iOldIdx )
|
if ( iIdx != iOldIdx )
|
||||||
{
|
{
|
||||||
vecStoredFaderLevels[iTempListCnt] = viOldStoredFaderLevels[iIdx];
|
vecStoredFaderLevels[iTempListCnt] = viOldStoredFaderLevels[iIdx];
|
||||||
vecStoredPanValues[iTempListCnt] = viOldStoredPanValues[iIdx];
|
vecStoredPanValues[iTempListCnt] = viOldStoredPanValues[iIdx];
|
||||||
vecStoredFaderIsSolo[iTempListCnt] = vbOldStoredFaderIsSolo[iIdx];
|
vecStoredFaderIsSolo[iTempListCnt] = vbOldStoredFaderIsSolo[iIdx];
|
||||||
vecStoredFaderIsMute[iTempListCnt] = vbOldStoredFaderIsMute[iIdx];
|
vecStoredFaderIsMute[iTempListCnt] = vbOldStoredFaderIsMute[iIdx];
|
||||||
|
vecStoredFaderGroupID[iTempListCnt] = vbOldStoredFaderGroupID[iIdx];
|
||||||
|
|
||||||
iTempListCnt++;
|
iTempListCnt++;
|
||||||
}
|
}
|
||||||
|
@ -1152,7 +1154,8 @@ bool CAudioMixerBoard::GetStoredFaderSettings ( const CChannelInfo& ChanInfo,
|
||||||
int& iStoredFaderLevel,
|
int& iStoredFaderLevel,
|
||||||
int& iStoredPanValue,
|
int& iStoredPanValue,
|
||||||
bool& bStoredFaderIsSolo,
|
bool& bStoredFaderIsSolo,
|
||||||
bool& bStoredFaderIsMute )
|
bool& bStoredFaderIsMute,
|
||||||
|
int& iGroupID )
|
||||||
{
|
{
|
||||||
// only do the check if the name string is not empty
|
// only do the check if the name string is not empty
|
||||||
if ( !ChanInfo.strName.isEmpty() )
|
if ( !ChanInfo.strName.isEmpty() )
|
||||||
|
@ -1167,6 +1170,7 @@ bool CAudioMixerBoard::GetStoredFaderSettings ( const CChannelInfo& ChanInfo,
|
||||||
iStoredPanValue = vecStoredPanValues[iIdx];
|
iStoredPanValue = vecStoredPanValues[iIdx];
|
||||||
bStoredFaderIsSolo = vecStoredFaderIsSolo[iIdx] != 0;
|
bStoredFaderIsSolo = vecStoredFaderIsSolo[iIdx] != 0;
|
||||||
bStoredFaderIsMute = vecStoredFaderIsMute[iIdx] != 0;
|
bStoredFaderIsMute = vecStoredFaderIsMute[iIdx] != 0;
|
||||||
|
iGroupID = vecStoredFaderGroupID[iIdx];
|
||||||
|
|
||||||
// values found and copied, return OK
|
// values found and copied, return OK
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -50,25 +50,25 @@ public:
|
||||||
CChannelFader ( QWidget* pNW );
|
CChannelFader ( QWidget* pNW );
|
||||||
|
|
||||||
QString GetReceivedName() { return cReceivedChanInfo.strName; }
|
QString GetReceivedName() { return cReceivedChanInfo.strName; }
|
||||||
int GetReceivedInstrument() { return cReceivedChanInfo.iInstrument; }
|
int GetReceivedInstrument() { return cReceivedChanInfo.iInstrument; }
|
||||||
void SetChannelInfos ( const CChannelInfo& cChanInfo );
|
void SetChannelInfos ( const CChannelInfo& cChanInfo );
|
||||||
void Show() { pFrame->show(); }
|
void Show() { pFrame->show(); }
|
||||||
void Hide() { pFrame->hide(); }
|
void Hide() { pFrame->hide(); }
|
||||||
bool IsVisible() { return !pFrame->isHidden(); }
|
bool IsVisible() { return !pFrame->isHidden(); }
|
||||||
bool IsSolo() { return pcbSolo->isChecked(); }
|
bool IsSolo() { return pcbSolo->isChecked(); }
|
||||||
bool IsMute() { return pcbMute->isChecked(); }
|
bool IsMute() { return pcbMute->isChecked(); }
|
||||||
bool IsSelect() { return pcbGroup->isChecked(); }
|
int GetGroupID() { return pcbGroup->isChecked() ? 0 : INVALID_INDEX; }
|
||||||
void SetGUIDesign ( const EGUIDesign eNewDesign );
|
void SetGUIDesign ( const EGUIDesign eNewDesign );
|
||||||
void SetDisplayChannelLevel ( const bool eNDCL );
|
void SetDisplayChannelLevel ( const bool eNDCL );
|
||||||
bool GetDisplayChannelLevel();
|
bool GetDisplayChannelLevel();
|
||||||
void SetDisplayPans ( const bool eNDP );
|
void SetDisplayPans ( const bool eNDP );
|
||||||
QFrame* GetMainWidget() { return pFrame; }
|
QFrame* GetMainWidget() { return pFrame; }
|
||||||
|
|
||||||
void SetPanValue ( const int iPan );
|
void SetPanValue ( const int iPan );
|
||||||
void SetFaderIsSolo ( const bool bIsSolo );
|
void SetFaderIsSolo ( const bool bIsSolo );
|
||||||
void SetFaderIsMute ( const bool bIsMute );
|
void SetFaderIsMute ( const bool bIsMute );
|
||||||
|
void SetGroupID ( const int iGroupID ) { pcbGroup->setChecked ( iGroupID != INVALID_INDEX ); }
|
||||||
void SetRemoteFaderIsMute ( const bool bIsMute );
|
void SetRemoteFaderIsMute ( const bool bIsMute );
|
||||||
void SetFaderIsSelect ( const bool bIsMute );
|
|
||||||
void SetFaderLevel ( const double dLevel,
|
void SetFaderLevel ( const double dLevel,
|
||||||
const bool bIsGroupUpdate = false );
|
const bool bIsGroupUpdate = false );
|
||||||
|
|
||||||
|
@ -203,6 +203,7 @@ public:
|
||||||
CVector<int> vecStoredPanValues;
|
CVector<int> vecStoredPanValues;
|
||||||
CVector<int> vecStoredFaderIsSolo;
|
CVector<int> vecStoredFaderIsSolo;
|
||||||
CVector<int> vecStoredFaderIsMute;
|
CVector<int> vecStoredFaderIsMute;
|
||||||
|
CVector<int> vecStoredFaderGroupID;
|
||||||
int iNewClientFaderLevel;
|
int iNewClientFaderLevel;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -225,7 +226,8 @@ protected:
|
||||||
int& iStoredFaderLevel,
|
int& iStoredFaderLevel,
|
||||||
int& iStoredPanValue,
|
int& iStoredPanValue,
|
||||||
bool& bStoredFaderIsSolo,
|
bool& bStoredFaderIsSolo,
|
||||||
bool& bStoredFaderIsMute );
|
bool& bStoredFaderIsMute,
|
||||||
|
int& iGroupID );
|
||||||
|
|
||||||
void StoreFaderSettings ( CChannelFader* pChanFader );
|
void StoreFaderSettings ( CChannelFader* pChanFader );
|
||||||
void UpdateSoloStates();
|
void UpdateSoloStates();
|
||||||
|
|
|
@ -38,6 +38,7 @@ CClient::CClient ( const quint16 iPortNumber,
|
||||||
vecStoredPanValues ( MAX_NUM_STORED_FADER_SETTINGS, AUD_MIX_PAN_MAX / 2 ),
|
vecStoredPanValues ( MAX_NUM_STORED_FADER_SETTINGS, AUD_MIX_PAN_MAX / 2 ),
|
||||||
vecStoredFaderIsSolo ( MAX_NUM_STORED_FADER_SETTINGS, false ),
|
vecStoredFaderIsSolo ( MAX_NUM_STORED_FADER_SETTINGS, false ),
|
||||||
vecStoredFaderIsMute ( MAX_NUM_STORED_FADER_SETTINGS, false ),
|
vecStoredFaderIsMute ( MAX_NUM_STORED_FADER_SETTINGS, false ),
|
||||||
|
vecStoredFaderGroupID ( MAX_NUM_STORED_FADER_SETTINGS, INVALID_INDEX ),
|
||||||
iNewClientFaderLevel ( 100 ),
|
iNewClientFaderLevel ( 100 ),
|
||||||
bConnectDlgShowAllMusicians ( true ),
|
bConnectDlgShowAllMusicians ( true ),
|
||||||
strClientName ( strNClientName ),
|
strClientName ( strNClientName ),
|
||||||
|
|
|
@ -285,6 +285,7 @@ public:
|
||||||
CVector<int> vecStoredPanValues;
|
CVector<int> vecStoredPanValues;
|
||||||
CVector<int> vecStoredFaderIsSolo;
|
CVector<int> vecStoredFaderIsSolo;
|
||||||
CVector<int> vecStoredFaderIsMute;
|
CVector<int> vecStoredFaderIsMute;
|
||||||
|
CVector<int> vecStoredFaderGroupID;
|
||||||
int iNewClientFaderLevel;
|
int iNewClientFaderLevel;
|
||||||
bool bConnectDlgShowAllMusicians;
|
bool bConnectDlgShowAllMusicians;
|
||||||
QString strClientName;
|
QString strClientName;
|
||||||
|
|
|
@ -189,12 +189,13 @@ CClientDlg::CClientDlg ( CClient* pNCliP,
|
||||||
MainMixerBoard->SetDisplayChannelLevels ( pClient->GetDisplayChannelLevels() );
|
MainMixerBoard->SetDisplayChannelLevels ( pClient->GetDisplayChannelLevels() );
|
||||||
|
|
||||||
// restore fader settings
|
// restore fader settings
|
||||||
MainMixerBoard->vecStoredFaderTags = pClient->vecStoredFaderTags;
|
MainMixerBoard->vecStoredFaderTags = pClient->vecStoredFaderTags;
|
||||||
MainMixerBoard->vecStoredFaderLevels = pClient->vecStoredFaderLevels;
|
MainMixerBoard->vecStoredFaderLevels = pClient->vecStoredFaderLevels;
|
||||||
MainMixerBoard->vecStoredPanValues = pClient->vecStoredPanValues;
|
MainMixerBoard->vecStoredPanValues = pClient->vecStoredPanValues;
|
||||||
MainMixerBoard->vecStoredFaderIsSolo = pClient->vecStoredFaderIsSolo;
|
MainMixerBoard->vecStoredFaderIsSolo = pClient->vecStoredFaderIsSolo;
|
||||||
MainMixerBoard->vecStoredFaderIsMute = pClient->vecStoredFaderIsMute;
|
MainMixerBoard->vecStoredFaderIsMute = pClient->vecStoredFaderIsMute;
|
||||||
MainMixerBoard->iNewClientFaderLevel = pClient->iNewClientFaderLevel;
|
MainMixerBoard->vecStoredFaderGroupID = pClient->vecStoredFaderGroupID;
|
||||||
|
MainMixerBoard->iNewClientFaderLevel = pClient->iNewClientFaderLevel;
|
||||||
|
|
||||||
// init status label
|
// init status label
|
||||||
OnTimerStatus();
|
OnTimerStatus();
|
||||||
|
@ -602,6 +603,7 @@ void CClientDlg::closeEvent ( QCloseEvent* Event )
|
||||||
pClient->vecStoredPanValues = MainMixerBoard->vecStoredPanValues;
|
pClient->vecStoredPanValues = MainMixerBoard->vecStoredPanValues;
|
||||||
pClient->vecStoredFaderIsSolo = MainMixerBoard->vecStoredFaderIsSolo;
|
pClient->vecStoredFaderIsSolo = MainMixerBoard->vecStoredFaderIsSolo;
|
||||||
pClient->vecStoredFaderIsMute = MainMixerBoard->vecStoredFaderIsMute;
|
pClient->vecStoredFaderIsMute = MainMixerBoard->vecStoredFaderIsMute;
|
||||||
|
pClient->vecStoredFaderGroupID = MainMixerBoard->vecStoredFaderGroupID;
|
||||||
pClient->iNewClientFaderLevel = MainMixerBoard->iNewClientFaderLevel;
|
pClient->iNewClientFaderLevel = MainMixerBoard->iNewClientFaderLevel;
|
||||||
pClient->bConnectDlgShowAllMusicians = ConnectDlg.GetShowAllMusicians();
|
pClient->bConnectDlgShowAllMusicians = ConnectDlg.GetShowAllMusicians();
|
||||||
|
|
||||||
|
|
|
@ -152,6 +152,9 @@ LED bar: lbr
|
||||||
#define AUD_MIX_FADER_MAX 100
|
#define AUD_MIX_FADER_MAX 100
|
||||||
#define AUD_MIX_PAN_MAX 100
|
#define AUD_MIX_PAN_MAX 100
|
||||||
|
|
||||||
|
// maximum number of fader groups
|
||||||
|
#define MAX_NUM_FADER_GROUPS 10
|
||||||
|
|
||||||
// maximum number of recognized sound cards installed in the system
|
// maximum number of recognized sound cards installed in the system
|
||||||
#define MAX_NUMBER_SOUND_CARDS 129 // e.g. 16 inputs, 8 outputs + default entry (MacOS)
|
#define MAX_NUMBER_SOUND_CARDS 129 // e.g. 16 inputs, 8 outputs + default entry (MacOS)
|
||||||
|
|
||||||
|
|
|
@ -278,6 +278,17 @@ void CClientSettings::ReadFromXML ( const QDomDocument& IniXMLDocument )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// stored fader group ID
|
||||||
|
for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ )
|
||||||
|
{
|
||||||
|
if ( GetNumericIniSet ( IniXMLDocument, "client",
|
||||||
|
QString ( "storedgroupid%1" ).arg ( iIdx ),
|
||||||
|
0, MAX_NUM_FADER_GROUPS, iValue ) )
|
||||||
|
{
|
||||||
|
pClient->vecStoredFaderGroupID[iIdx] = iValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// new client level
|
// new client level
|
||||||
if ( GetNumericIniSet ( IniXMLDocument, "client", "newclientlevel",
|
if ( GetNumericIniSet ( IniXMLDocument, "client", "newclientlevel",
|
||||||
0, 100, iValue ) )
|
0, 100, iValue ) )
|
||||||
|
@ -585,6 +596,14 @@ void CClientSettings::WriteToXML ( QDomDocument& IniXMLDocument )
|
||||||
pClient->vecStoredFaderIsMute[iIdx] != 0 );
|
pClient->vecStoredFaderIsMute[iIdx] != 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// stored fader group ID
|
||||||
|
for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ )
|
||||||
|
{
|
||||||
|
SetNumericIniSet ( IniXMLDocument, "client",
|
||||||
|
QString ( "storedgroupid%1" ).arg ( iIdx ),
|
||||||
|
pClient->vecStoredFaderGroupID[iIdx] );
|
||||||
|
}
|
||||||
|
|
||||||
// new client level
|
// new client level
|
||||||
SetNumericIniSet ( IniXMLDocument, "client", "newclientlevel",
|
SetNumericIniSet ( IniXMLDocument, "client", "newclientlevel",
|
||||||
pClient->iNewClientFaderLevel );
|
pClient->iNewClientFaderLevel );
|
||||||
|
|
Loading…
Reference in a new issue