SystemGui/Sources/AvReceiver/AvReceiverData.cpp
2025-07-10 18:13:04 -04:00

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