186 lines
3.8 KiB
C++
186 lines
3.8 KiB
C++
#include "AvReceiverData.h"
|
|
#include <QDataStream>
|
|
|
|
CAvReceiverMainStatus::CAvReceiverMainStatus()
|
|
{
|
|
mDataValid = false;
|
|
mReceiverOnline = false;
|
|
mSyncZonesVolumes = true;
|
|
}
|
|
|
|
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;
|
|
|
|
|
|
|
|
}
|
|
|
|
QByteArray CAvReceiverMainStatus::ToConsoleStatusByteArray()
|
|
{
|
|
QByteArray Output;
|
|
|
|
if(mMainPwrStatus == true) //0
|
|
Output.append(0x01);
|
|
else
|
|
Output.append((char)0x00);
|
|
|
|
if(mMainSleepStatus == true) //1
|
|
Output.append(0x01);
|
|
else
|
|
Output.append((char)0x00);
|
|
|
|
// int Volume = ((mMainVolume + 80.5) * 2);
|
|
// char VolArray[4];
|
|
// memcpy(VolArray,&Volume,4); //2-5
|
|
// Output.append(VolArray,4);
|
|
|
|
char Volume = ((mMainVolume + 80.5) * 2); //2
|
|
Output.append(Volume);
|
|
|
|
if(mIsMute == true) //3
|
|
Output.append(0x01);
|
|
else
|
|
Output.append((char)0x00);
|
|
|
|
|
|
if(mDataValid == true) //4
|
|
Output.append(0x01);
|
|
else
|
|
Output.append((char)0x00);
|
|
|
|
if(mReceiverOnline == true) //5
|
|
Output.append(0x01);
|
|
else
|
|
Output.append((char)0x00);
|
|
|
|
if(mSyncZonesVolumes == true) //6
|
|
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;
|
|
|
|
|
|
return RET_OK;
|
|
|
|
}
|
|
|
|
int CAvReceiverMainStatus::FromConsoleStatusByteArray(QByteArray Data)
|
|
{
|
|
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+7];
|
|
// }
|
|
// mInput.clear();
|
|
// mInput.append(String);
|
|
|
|
// for(int i= 0; i < 50; i++)
|
|
// {
|
|
// String[i] = Data[i+57];
|
|
// }
|
|
// mProgram.clear();
|
|
// mProgram.append(String);
|
|
|
|
if(Data.at(7) == 1)
|
|
mDataValid = true;
|
|
else
|
|
mDataValid = false;
|
|
|
|
if(Data.at(8) == 1)
|
|
mReceiverOnline = true;
|
|
else
|
|
mReceiverOnline = false;
|
|
|
|
if(Data.at(9) == 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;
|
|
}
|