#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); }