283 lines
8.2 KiB
C++
283 lines
8.2 KiB
C++
#include "AvReceiverGui.h"
|
|
#include "ui_AvReceiverGui.h"
|
|
#include "TrayVolumeCtrl.h"
|
|
|
|
#include "AvReceiver.h"
|
|
|
|
CAvReceiverGui::CAvReceiverGui(QWidget *parent) :
|
|
QWidget(parent),
|
|
ui(new Ui::CAvReceiverGui)
|
|
{
|
|
ui->setupUi(this);
|
|
mVolumeBarMovementTimer = new QTimer();
|
|
mVolumeBarMovementTimer->setInterval(500);
|
|
mVolumeBarMovementTimer->setSingleShot(true);
|
|
mLockZone2VolumeWithZone1 = false;
|
|
|
|
mTrayVolumeCtrlGuiHandle = 0;
|
|
|
|
|
|
ui->mZone2InputComboBx->addItems(QStringList() << "AUDIO1" << "AUDIO2" << "AUDIO3" << "AUDIO4" << "AUDIO5" << "PHONO" << "TUNER" << "SERVER" << "Main Zone Sync");
|
|
ui->mZone2InputComboBx->setEditable(false);
|
|
|
|
connect(mVolumeBarMovementTimer,SIGNAL(timeout()),this,SLOT(VolumeBarMovementTimerExpired()));
|
|
connect(ui->mSpkBCheckBox,SIGNAL(clicked(bool)),this,SLOT(SpeakerBRadioClicked(bool)));
|
|
connect(ui->mSpkACheckBox,SIGNAL(clicked(bool)),this,SLOT(SpeakerARadioClicked(bool)));
|
|
connect(ui->MainZoneScene1Btn,SIGNAL(clicked(bool)),this,SLOT(MainZoneScene1BtnClicked(bool)));
|
|
connect(ui->MainZoneScene2Btn,SIGNAL(clicked(bool)),this,SLOT(MainZoneScene2BtnClicked(bool)));
|
|
connect(ui->MainZoneScene3Btn,SIGNAL(clicked(bool)),this,SLOT(MainZoneScene3BtnClicked(bool)));
|
|
connect(ui->MainZoneScene4Btn,SIGNAL(clicked(bool)),this,SLOT(MainZoneScene4BtnClicked(bool)));
|
|
connect(ui->mMainZoneVolumeSldBar,SIGNAL(valueChanged(int)),this,SLOT(MainZoneVolumeSetChanged(int)));
|
|
connect(ui->mZone2VolumeSldBar,SIGNAL(valueChanged(int)),this,SLOT(Zone2VolumeSetChanged(int)));
|
|
connect(ui->mZone2InputComboBx,&QComboBox::currentTextChanged,this,&CAvReceiverGui::Zone2InputSelectionChanged);
|
|
connect(ui->mZone2SyncVolumeChkBx,&QCheckBox::clicked,this,&CAvReceiverGui::Zone2LockVolumeChanged);
|
|
}
|
|
|
|
CAvReceiverGui::~CAvReceiverGui()
|
|
{
|
|
delete ui;
|
|
delete mVolumeBarMovementTimer;
|
|
}
|
|
|
|
void CAvReceiverGui::SpeakerBRadioClicked(bool checked)
|
|
{
|
|
mProgramHandle->Zone2ToggleSwitchPressed(checked);
|
|
}
|
|
|
|
void CAvReceiverGui::SpeakerARadioClicked(bool checked)
|
|
{
|
|
mProgramHandle->MainUnitToggleSwitchPressed(checked);
|
|
}
|
|
|
|
int CAvReceiverGui::UpdateReceiverStatus(CAvReceiverMainStatus Status, CAvReceiverMainStatus Zone2Status)
|
|
{
|
|
QString StatusText;
|
|
|
|
StatusText.clear();
|
|
StatusText += "Main Receiver Status:\n\n";
|
|
|
|
StatusText += "Power: ";
|
|
if(Status.mMainPwrStatus == true)
|
|
{
|
|
StatusText += "ON\n";
|
|
ui->mSpkACheckBox->setChecked(true);
|
|
}
|
|
else
|
|
{
|
|
StatusText += "OFF\n";
|
|
ui->mSpkACheckBox->setChecked(false);
|
|
}
|
|
|
|
StatusText += "Mute: ";
|
|
if(Status.mIsMute == true)
|
|
{
|
|
StatusText += "ON\n";
|
|
}
|
|
else
|
|
{
|
|
StatusText += "OFF\n";
|
|
}
|
|
|
|
StatusText += "Main sleep: ";
|
|
if(Status.mMainSleepStatus == true)
|
|
{
|
|
StatusText += "ON\n";
|
|
}
|
|
else
|
|
{
|
|
StatusText += "OFF\n";
|
|
}
|
|
|
|
StatusText += "Volume: ";
|
|
StatusText += QString("%1").arg(Status.mMainVolume);
|
|
StatusText +="\n";
|
|
StatusText += "Input: ";
|
|
StatusText +=Status.mInput;
|
|
StatusText += "\n";
|
|
StatusText += "Program: ";
|
|
StatusText +=Status.mProgram;
|
|
StatusText += "\n";
|
|
|
|
ui->mRcvrStatusLabel->setText(StatusText);
|
|
|
|
if(/*ui->mMainZoneVolumeSldBar->isSliderDown() == false && */mVolumeBarMovementTimer->isActive() == false)
|
|
{
|
|
int SliderValue = ConvertVolumeToBarPosition(Status.mMainVolume);
|
|
disconnect(ui->mMainZoneVolumeSldBar,SIGNAL(valueChanged(int)),this,SLOT(MainZoneVolumeSetChanged(int)));
|
|
ui->mMainZoneVolumeSldBar->setValue(SliderValue);
|
|
connect(ui->mMainZoneVolumeSldBar,SIGNAL(valueChanged(int)),this,SLOT(MainZoneVolumeSetChanged(int)));
|
|
ui->mMainZoneSliderValueLbl->setText("");
|
|
mTrayVolumeCtrlGuiHandle->SetMainZoneVolume(SliderValue,Status.mMainVolume);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
StatusText = "Zone2 Status\n\n";
|
|
|
|
StatusText += "Power: ";
|
|
if(Zone2Status.mMainPwrStatus == true)
|
|
{
|
|
StatusText += "ON\n";
|
|
ui->mSpkBCheckBox->setChecked(true);
|
|
}
|
|
else
|
|
{
|
|
StatusText += "OFF\n";
|
|
ui->mSpkBCheckBox->setChecked(false);
|
|
}
|
|
|
|
StatusText += "Mute: ";
|
|
if(Zone2Status.mIsMute == true)
|
|
{
|
|
StatusText += "ON\n";
|
|
}
|
|
else
|
|
{
|
|
StatusText += "OFF\n";
|
|
}
|
|
|
|
StatusText += "Main sleep: ";
|
|
if(Zone2Status.mMainSleepStatus == true)
|
|
{
|
|
StatusText += "ON\n";
|
|
|
|
}
|
|
else
|
|
{
|
|
StatusText += "OFF\n";
|
|
}
|
|
|
|
StatusText += "Volume: ";
|
|
StatusText += QString("%1").arg(Zone2Status.mMainVolume);
|
|
StatusText +="\n";
|
|
StatusText += "Input: ";
|
|
StatusText +=Zone2Status.mInput;
|
|
StatusText += "\n";
|
|
StatusText += "Program: ";
|
|
StatusText +=Zone2Status.mProgram;
|
|
StatusText += "\n";
|
|
|
|
ui->mZone2StatusLabel->setText(StatusText);
|
|
ui->mZone2InputComboBx->setCurrentText(Zone2Status.mInput);
|
|
|
|
if(/*ui->mZone2VolumeSldBar->isSliderDown() == false && */mVolumeBarMovementTimer->isActive() == false)
|
|
{
|
|
int SliderValue = ConvertVolumeToBarPosition(Zone2Status.mMainVolume);
|
|
disconnect(ui->mZone2VolumeSldBar,SIGNAL(valueChanged(int)),this,SLOT(Zone2VolumeSetChanged(int)));
|
|
ui->mZone2VolumeSldBar->setValue(SliderValue);
|
|
connect(ui->mZone2VolumeSldBar,SIGNAL(valueChanged(int)),this,SLOT(Zone2VolumeSetChanged(int)));
|
|
ui->mZone2SliderValueLbl->setText("");
|
|
mTrayVolumeCtrlGuiHandle->SetZone2Volume(SliderValue,Zone2Status.mMainVolume);
|
|
}
|
|
|
|
if(Status.mSyncZonesVolumes)
|
|
ui->mZone2SyncVolumeChkBx->setCheckState(Qt::Checked);
|
|
else
|
|
ui->mZone2SyncVolumeChkBx->setCheckState(Qt::Unchecked);
|
|
|
|
return RET_OK;
|
|
}
|
|
|
|
void CAvReceiverGui::MainZoneScene1BtnClicked(bool)
|
|
{
|
|
mProgramHandle->SelectScenePressed(AV_RECEIVER_MAIN_ZONE,1);
|
|
}
|
|
|
|
void CAvReceiverGui::MainZoneScene2BtnClicked(bool)
|
|
{
|
|
mProgramHandle->SelectScenePressed(AV_RECEIVER_MAIN_ZONE,2);
|
|
}
|
|
void CAvReceiverGui::MainZoneScene3BtnClicked(bool)
|
|
{
|
|
mProgramHandle->SelectScenePressed(AV_RECEIVER_MAIN_ZONE,3);
|
|
}
|
|
void CAvReceiverGui::MainZoneScene4BtnClicked(bool)
|
|
{
|
|
mProgramHandle->SelectScenePressed(AV_RECEIVER_MAIN_ZONE,4);
|
|
}
|
|
|
|
int CAvReceiverGui::ConvertVolumeToBarPosition(float Volume)
|
|
{
|
|
int Pos;
|
|
Pos = (int)((Volume + 80.5) *2);
|
|
return Pos;
|
|
}
|
|
|
|
float CAvReceiverGui::ConvertBarPositionToVolume(int position)
|
|
{
|
|
float Volume;
|
|
Volume = (float)position;
|
|
Volume = ((Volume/2) - 80.5);
|
|
|
|
return Volume;
|
|
}
|
|
|
|
void CAvReceiverGui::MainZoneVolumeSetChanged(int value)
|
|
{
|
|
// int BarPosition = ui->mMainZoneVolumeSldBar->value();
|
|
int BarPosition = value;
|
|
float Volume = ConvertBarPositionToVolume(BarPosition);
|
|
|
|
ui->mMainZoneSliderValueLbl->setText(QString("%1").arg(Volume));
|
|
mProgramHandle->MainZoneVolumeChanged(Volume);
|
|
|
|
|
|
// if(mLockZone2VolumeWithZone1 == true)
|
|
if(ui->mZone2SyncVolumeChkBx->checkState() == Qt::Checked)
|
|
{
|
|
ui->mZone2VolumeSldBar->setValue(BarPosition);
|
|
// mVolumeBarMovementTimer->start();
|
|
// //mProgramHandle->Zone2VolumeChanged(Volume);
|
|
}
|
|
}
|
|
|
|
void CAvReceiverGui::Zone2VolumeSetChanged(int value)
|
|
{
|
|
// int BarPosition = ui->mZone2VolumeSldBar->value();
|
|
int BarPosition = value;
|
|
float Volume = ConvertBarPositionToVolume(BarPosition);
|
|
|
|
ui->mZone2SliderValueLbl->setText(QString("%1").arg(Volume));
|
|
mProgramHandle->Zone2VolumeChanged(Volume);
|
|
// mVolumeBarMovementTimer->start();
|
|
|
|
}
|
|
|
|
void CAvReceiverGui::VolumeBarMovementTimerExpired()
|
|
{
|
|
int BarPosition = ui->mMainZoneVolumeSldBar->value();
|
|
float Volume = ConvertBarPositionToVolume(BarPosition);
|
|
mProgramHandle->Zone2VolumeChanged(Volume);
|
|
}
|
|
|
|
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);
|
|
|
|
// mProgramHandle->Zone2VolumeChanged(Volume);
|
|
|
|
ui->mZone2VolumeSldBar->setEnabled(false);
|
|
|
|
mProgramHandle->SyncZonesVolumesChanged(true);
|
|
}
|
|
else
|
|
{
|
|
ui->mZone2VolumeSldBar->setEnabled(true);
|
|
mProgramHandle->SyncZonesVolumesChanged(false);
|
|
}
|
|
|
|
}
|
|
|
|
void CAvReceiverGui::Zone2InputSelectionChanged()
|
|
{
|
|
QString Src = ui->mZone2InputComboBx->currentText();
|
|
mProgramHandle->Zone2InputSrcChanged(Src);
|
|
}
|