From 2dfd1854943ba13ccff7ae9aa361b566dfb96a43 Mon Sep 17 00:00:00 2001 From: jfmartel Date: Sun, 4 Feb 2024 14:25:04 -0500 Subject: [PATCH] Transert de la gestion du Z2 lock au MasterCtrl --- Sources/AvReceiver/AvReceiver.cpp | 8 ++++++++ Sources/AvReceiver/AvReceiver.h | 1 + Sources/AvReceiver/AvReceiverData.cpp | 8 ++++++-- Sources/AvReceiver/AvReceiverData.h | 1 + Sources/AvReceiver/AvReceiverGui.cpp | 23 ++++++++++++++++------- Sources/ProtocolDefs.h | 2 ++ 6 files changed, 34 insertions(+), 9 deletions(-) diff --git a/Sources/AvReceiver/AvReceiver.cpp b/Sources/AvReceiver/AvReceiver.cpp index 413e406..41ab552 100644 --- a/Sources/AvReceiver/AvReceiver.cpp +++ b/Sources/AvReceiver/AvReceiver.cpp @@ -109,6 +109,14 @@ int CAvReceiver::Zone2VolumeChanged(float Value) return mNetworkInterface->SendMasterCtrlCommand(AV_RECEIVER_INTERFACE_SET_ZONE2_VOLUME_REQUEST,VolumeData); } +int CAvReceiver::SyncZonesVolumesChanged(bool Sync) +{ + QByteArray SyncData; + QDataStream Strm(&SyncData,QIODevice::WriteOnly); + Strm << Sync; + return mNetworkInterface->SendMasterCtrlCommand(AV_RECEIVER_INTERFACE_SET_SYNC_Z2_WITH_Z1_REQUEST,SyncData); +} + int CAvReceiver::Zone2InputSrcChanged(QString InputSrc) { QByteArray SourceData; diff --git a/Sources/AvReceiver/AvReceiver.h b/Sources/AvReceiver/AvReceiver.h index ed0d1f3..21bb8ba 100644 --- a/Sources/AvReceiver/AvReceiver.h +++ b/Sources/AvReceiver/AvReceiver.h @@ -25,6 +25,7 @@ public: int MainZoneVolumeChanged(float Value); int Zone2VolumeChanged(float Value); int Zone2InputSrcChanged(QString InputSrc); + int SyncZonesVolumesChanged(bool Sync); diff --git a/Sources/AvReceiver/AvReceiverData.cpp b/Sources/AvReceiver/AvReceiverData.cpp index 3196332..2a152f8 100644 --- a/Sources/AvReceiver/AvReceiverData.cpp +++ b/Sources/AvReceiver/AvReceiverData.cpp @@ -23,6 +23,7 @@ QByteArray CAvReceiverMainStatus::ToByteArray() Strm << mDataValid; Strm << mReceiverOnline; + Strm << mSyncZonesVolumes; return Output; @@ -42,6 +43,7 @@ int CAvReceiverMainStatus::FromByteArray(QByteArray Data) Strm >> mDataValid; Strm >> mReceiverOnline; + Strm >> mSyncZonesVolumes; return RET_OK; @@ -55,7 +57,8 @@ QDataStream &operator<<(QDataStream &out, const CAvReceiverMainStatus &source) << source.mInput << source.mProgram << source.mDataValid - << source.mReceiverOnline; + << source.mReceiverOnline + << source.mSyncZonesVolumes; return out; } @@ -69,6 +72,7 @@ QDataStream &operator>>(QDataStream &in, CAvReceiverMainStatus &dest) >> dest.mInput >> dest.mProgram >> dest.mDataValid - >> dest.mReceiverOnline; + >> dest.mReceiverOnline + >> dest.mSyncZonesVolumes; return in; } diff --git a/Sources/AvReceiver/AvReceiverData.h b/Sources/AvReceiver/AvReceiverData.h index 5ae9015..fb4d6a8 100644 --- a/Sources/AvReceiver/AvReceiverData.h +++ b/Sources/AvReceiver/AvReceiverData.h @@ -29,6 +29,7 @@ public: bool mIsMute; QString mInput; QString mProgram; + bool mSyncZonesVolumes; bool mDataValid; bool mReceiverOnline; diff --git a/Sources/AvReceiver/AvReceiverGui.cpp b/Sources/AvReceiver/AvReceiverGui.cpp index 7d46c55..d74382e 100644 --- a/Sources/AvReceiver/AvReceiverGui.cpp +++ b/Sources/AvReceiver/AvReceiverGui.cpp @@ -172,6 +172,11 @@ int CAvReceiverGui::UpdateReceiverStatus(CAvReceiverMainStatus Status, CAvReceiv mTrayVolumeCtrlGuiHandle->SetZone2Volume(SliderValue,Zone2Status.mMainVolume); } + if(Status.mSyncZonesVolumes) + ui->mZone2SyncVolumeChkBx->setCheckState(Qt::Checked); + else + ui->mZone2SyncVolumeChkBx->setCheckState(Qt::Unchecked); + return RET_OK; } @@ -219,11 +224,12 @@ void CAvReceiverGui::MainZoneVolumeSetChanged(int value) mProgramHandle->MainZoneVolumeChanged(Volume); - if(mLockZone2VolumeWithZone1 == true) +// if(mLockZone2VolumeWithZone1 == true) + if(ui->mZone2SyncVolumeChkBx->checkState() == Qt::Checked) { ui->mZone2VolumeSldBar->setValue(BarPosition); - mVolumeBarMovementTimer->start(); - //mProgramHandle->Zone2VolumeChanged(Volume); +// mVolumeBarMovementTimer->start(); +// //mProgramHandle->Zone2VolumeChanged(Volume); } } @@ -251,17 +257,20 @@ void CAvReceiverGui::Zone2LockVolumeChanged(bool checked) mLockZone2VolumeWithZone1 = checked; if(checked) { - //Set Zone 2 volume to main zone value - int BarPosition = ui->mMainZoneVolumeSldBar->value(); - float Volume = ConvertBarPositionToVolume(BarPosition); +// //Set Zone 2 volume to main zone value +// int BarPosition = ui->mMainZoneVolumeSldBar->value(); +// float Volume = ConvertBarPositionToVolume(BarPosition); - mProgramHandle->Zone2VolumeChanged(Volume); +// mProgramHandle->Zone2VolumeChanged(Volume); ui->mZone2VolumeSldBar->setEnabled(false); + + mProgramHandle->SyncZonesVolumesChanged(true); } else { ui->mZone2VolumeSldBar->setEnabled(true); + mProgramHandle->SyncZonesVolumesChanged(false); } } diff --git a/Sources/ProtocolDefs.h b/Sources/ProtocolDefs.h index bc8700a..0d10577 100644 --- a/Sources/ProtocolDefs.h +++ b/Sources/ProtocolDefs.h @@ -254,6 +254,8 @@ enum AV_RECEIVER_INTERFACE_CMDS AV_RECEIVER_INTERFACE_SET_ZONE2_VOLUME_RESPONSE, AV_RECEIVER_INTERFACE_SET_ZONE2_INPUT_REQUEST, AV_RECEIVER_INTERFACE_SET_ZONE2_INPUT_RESPONSE, + AV_RECEIVER_INTERFACE_SET_SYNC_Z2_WITH_Z1_REQUEST, + AV_RECEIVER_INTERFACE_SET_SYNC_Z2_WITH_Z1_RESPONSE, MAX_AV_RECEIVER_INTERFACE_CMD