SystemGui/Sources/AvReceiver/AvReceiver.cpp
2022-12-20 12:58:37 -05:00

105 lines
2.6 KiB
C++

#include "AvReceiver.h"
#include "AvReceiverNetworkCtrlInterface.h"
CAvReceiver::CAvReceiver(CAvReceiverGui *ReceiverGui)
{
mReceiverGui = ReceiverGui;
ReceiverGui->mProgramHandle = this;
mNetworkInterface = new CAvReceiverNetworkCtrlInterface(this);
mReceiverPollTimer = new QTimer();
mReceiverPollTimer->setSingleShot(false);
mReceiverPollTimer->setInterval(1000);
connect(mReceiverPollTimer,SIGNAL(timeout()),this,SLOT(PollTimerExpired()));
}
CAvReceiver::~CAvReceiver()
{
delete mNetworkInterface;
delete mReceiverPollTimer;
}
int CAvReceiver::Start()
{
mNetworkInterface->ConnectToMasterCtrl();
mReceiverPollTimer->start();
return RET_OK;
}
int CAvReceiver::Zone2ToggleSwitchPressed(bool state)
{
QByteArray ZoneState;
ZoneState.clear();
if(state)
{
ZoneState.append((char)0x01);
}
else
{
ZoneState.append((char)0x00);
}
return mNetworkInterface->SendMasterCtrlCommand(AV_RECEIVER_INTERFACE_SET_ZONE2_REQUEST,ZoneState);
}
int CAvReceiver::MainUnitToggleSwitchPressed(bool state)
{
QByteArray ZoneState;
ZoneState.clear();
if(state)
{
ZoneState.append((char)0x01);
}
else
{
ZoneState.append((char)0x00);
}
return mNetworkInterface->SendMasterCtrlCommand(AV_RECEIVER_INTERFACE_SET_MAIN_ZONE_REQUEST,ZoneState);
}
void CAvReceiver::PollTimerExpired()
{
mNetworkInterface->SendMasterCtrlCommand(AV_RECEIVER_INTERFACE_GENERAL_STATUS_REQUEST,QByteArray());
}
int CAvReceiver::ReceiverGeneralStatusReceived(QByteArray StatusData)
{
QDataStream Strm(&StatusData,QIODevice::ReadOnly | QIODevice::Unbuffered);
Strm.device()->seek(0);
Strm >> mReceiverStatus;
Strm >> mZone2Status;
mReceiverGui->UpdateReceiverStatus(mReceiverStatus, mZone2Status);
return RET_OK;
}
int CAvReceiver::SelectScenePressed(char Zone, char Scene)
{
QByteArray SceneData;
SceneData.append(Zone).append(Scene);
return mNetworkInterface->SendMasterCtrlCommand(AV_RECEIVER_INTERFACE_SELECT_SCENE_REQUEST,SceneData);
}
int CAvReceiver::MainZoneVolumeChanged(float Value)
{
QByteArray VolumeData;
QDataStream Strm(&VolumeData,QIODevice::WriteOnly);
Strm << Value;
return mNetworkInterface->SendMasterCtrlCommand(AV_RECEIVER_INTERFACE_SET_MAIN_VOLUME_REQUEST,VolumeData);
}
int CAvReceiver::Zone2VolumeChanged(float Value)
{
QByteArray VolumeData;
QDataStream Strm(&VolumeData,QIODevice::WriteOnly);
Strm << Value;
return mNetworkInterface->SendMasterCtrlCommand(AV_RECEIVER_INTERFACE_SET_ZONE2_VOLUME_REQUEST,VolumeData);
}