SystemGui/Sources/AvReceiver/AvReceiver.cpp
2022-12-11 13:50:51 -05:00

82 lines
1.8 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;
}