171 lines
3.5 KiB
C++
171 lines
3.5 KiB
C++
#include "AvReceiverData.h"
|
|
#include <QDataStream>
|
|
|
|
CAvReceiverMainStatus::CAvReceiverMainStatus()
|
|
{
|
|
mDataValid = false;
|
|
mReceiverOnline = false;
|
|
}
|
|
|
|
QByteArray CAvReceiverMainStatus::ToByteArray()
|
|
{
|
|
|
|
QByteArray Output;
|
|
Output.clear();
|
|
QDataStream Strm(&Output,QIODevice::WriteOnly);
|
|
|
|
// Strm << mMainPwrStatus;
|
|
// Strm << mMainSleepStatus;
|
|
// Strm << mMainVolume;
|
|
// Strm << mIsMute;
|
|
// Strm << mInput;
|
|
// Strm << mProgram;
|
|
|
|
// Strm << mDataValid;
|
|
// Strm << mReceiverOnline;
|
|
// Strm << mSyncZonesVolumes;
|
|
|
|
if(mMainPwrStatus == true)
|
|
Output.append(0x01);
|
|
else
|
|
Output.append((char)0x00);
|
|
|
|
if(mMainSleepStatus == true)
|
|
Output.append(0x01);
|
|
else
|
|
Output.append((char)0x00);
|
|
|
|
char VolArray[4];
|
|
memcpy(VolArray,&mMainVolume,4);
|
|
Output.append(VolArray);
|
|
|
|
if(mIsMute == true)
|
|
Output.append(0x01);
|
|
else
|
|
Output.append((char)0x00);
|
|
|
|
char String[50];
|
|
strcpy(String,mInput.toUtf8().data());
|
|
Output.append(String,50);
|
|
strcpy(String,mProgram.toUtf8().data());
|
|
Output.append(String,50);
|
|
|
|
if(mDataValid == true)
|
|
Output.append(0x01);
|
|
else
|
|
Output.append((char)0x00);
|
|
|
|
if(mReceiverOnline == true)
|
|
Output.append(0x01);
|
|
else
|
|
Output.append((char)0x00);
|
|
|
|
if(mSyncZonesVolumes == true)
|
|
Output.append(0x01);
|
|
else
|
|
Output.append((char)0x00);
|
|
|
|
return Output;
|
|
|
|
}
|
|
|
|
int CAvReceiverMainStatus::FromByteArray(QByteArray Data)
|
|
{
|
|
QDataStream Strm(Data);
|
|
Strm.device()->seek(0);
|
|
|
|
// Strm >> mMainPwrStatus;
|
|
// Strm >> mMainSleepStatus;
|
|
// Strm >> mMainVolume;
|
|
// Strm >> mIsMute;
|
|
// Strm >> mInput;
|
|
// Strm >> mProgram;
|
|
|
|
// Strm >> mDataValid;
|
|
// Strm >> mReceiverOnline;
|
|
// Strm >> mSyncZonesVolumes;
|
|
|
|
if(Data.at(0) == 1)
|
|
mMainPwrStatus = true;
|
|
else
|
|
mMainPwrStatus = false;
|
|
|
|
if(Data.at(1) == 1)
|
|
mMainSleepStatus = true;
|
|
else
|
|
mMainSleepStatus = false;
|
|
|
|
char VolArray[4];
|
|
VolArray[0] = Data[2];
|
|
VolArray[1] = Data[3];
|
|
VolArray[2] = Data[4];
|
|
VolArray[3] = Data[5];
|
|
memcpy(&mMainVolume,VolArray,4);
|
|
|
|
if(Data.at(6) == 1)
|
|
mIsMute = true;
|
|
else
|
|
mIsMute = false;
|
|
|
|
char String[50];
|
|
for(int i= 0; i < 50; i++)
|
|
{
|
|
String[i] = Data[i+6];
|
|
}
|
|
mInput.clear();
|
|
mInput.append(String);
|
|
|
|
for(int i= 0; i < 50; i++)
|
|
{
|
|
String[i] = Data[i+56];
|
|
}
|
|
mProgram.clear();
|
|
mProgram.append(String);
|
|
|
|
if(Data.at(107) == 1)
|
|
mDataValid = true;
|
|
else
|
|
mDataValid = false;
|
|
|
|
if(Data.at(108) == 1)
|
|
mReceiverOnline = true;
|
|
else
|
|
mReceiverOnline = false;
|
|
|
|
if(Data.at(109) == 1)
|
|
mSyncZonesVolumes = true;
|
|
else
|
|
mSyncZonesVolumes = false;
|
|
|
|
return RET_OK;
|
|
|
|
}
|
|
QDataStream &operator<<(QDataStream &out, const CAvReceiverMainStatus &source)
|
|
{
|
|
out << source.mMainPwrStatus
|
|
<< source.mMainSleepStatus
|
|
<< source.mMainVolume
|
|
<< source.mIsMute
|
|
<< source.mInput
|
|
<< source.mProgram
|
|
<< source.mDataValid
|
|
<< source.mReceiverOnline
|
|
<< source.mSyncZonesVolumes;
|
|
|
|
return out;
|
|
}
|
|
|
|
QDataStream &operator>>(QDataStream &in, CAvReceiverMainStatus &dest)
|
|
{
|
|
in >> dest.mMainPwrStatus
|
|
>> dest.mMainSleepStatus
|
|
>> dest.mMainVolume
|
|
>> dest.mIsMute
|
|
>> dest.mInput
|
|
>> dest.mProgram
|
|
>> dest.mDataValid
|
|
>> dest.mReceiverOnline
|
|
>> dest.mSyncZonesVolumes;
|
|
return in;
|
|
}
|