95 lines
1.8 KiB
C++
95 lines
1.8 KiB
C++
#ifndef AVRECEIVERDEVICE_H
|
|
#define AVRECEIVERDEVICE_H
|
|
|
|
#include <QTcpSocket>
|
|
#include <QHash>
|
|
#include "NetworkDevice.h"
|
|
#include <QString>
|
|
#include <QTimer>
|
|
#include "AvReceiverData.h"
|
|
|
|
#define RECEIVER_PORT 50000
|
|
#define RECEIVER_IP_ADDRESS "192.168.50.101"
|
|
#define RECEIVER_STATE_UPDATE_TIMEOUT 3000
|
|
|
|
enum eReceiverSpkStatus
|
|
{
|
|
RECEIVER_OFF_SPK_STATUS,
|
|
RECEIVER_A_ON_SPK_STATUS,
|
|
RECEIVER_B_ON_SPK_STATUS,
|
|
RECEIVER_A_B_ON_SPK_STATUS,
|
|
RECEIVER_UNKNOWN_SPK_STATUS
|
|
};
|
|
|
|
enum eSpkSetStateCmds
|
|
{
|
|
RECEIVER_SET_SPK_OFF,
|
|
RECEIVER_SET_SPK_ON,
|
|
RECEVIVER_TOGGLE_SPK,
|
|
RECEIVER_DONT_CHANGE_SPK
|
|
};
|
|
|
|
enum eReceiverSubUnits
|
|
{
|
|
SYS,
|
|
MAIN,
|
|
TUN,
|
|
SIRIUS,
|
|
IPOD,
|
|
BT,
|
|
UAW,
|
|
RHAP,
|
|
SIRIUSIR,
|
|
PANDORA,
|
|
NAPSTER,
|
|
PC,
|
|
NETRADIO,
|
|
USB,
|
|
IPODUSB
|
|
};
|
|
|
|
class CAVReceiverDevice : QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
CAVReceiverDevice();
|
|
~CAVReceiverDevice();
|
|
int Start();
|
|
|
|
|
|
private:
|
|
int ConnectToReceiver();
|
|
int DisconnectReceiver();
|
|
int DisconnectReceiverDelayed(int Delay = 500);
|
|
int SendReceiverCommand(QString Command);
|
|
int UpdateReceiverStateParam(QString SubUnit, QString Fcn, QString Param);
|
|
|
|
public:
|
|
//Network Interface Implementation
|
|
int SetSpeakerB(bool OnOff);
|
|
int SetSpeakerA(bool OnOff);
|
|
int SetSpeakers(int SpeakerA, int SpeakerB);
|
|
int SendRawCommand(QString Cmd);
|
|
CAvReceiverMainStatus GetReceiverStatus(){return mReceiverStatus;}
|
|
|
|
private:
|
|
QTcpSocket *mReceiverSocket;
|
|
int AnalyseRxData(QByteArray data);
|
|
QTimer *mDisconnectTimer, *mStateRequestTimer;
|
|
CAvReceiverMainStatus mReceiverStatus;
|
|
|
|
bool mIsConnected;
|
|
QString mPendingCommand;
|
|
|
|
|
|
public slots:
|
|
void SocketConnected();
|
|
void SocketDisconnected();
|
|
void SocketRX();
|
|
void DisconnectTimerExpired();
|
|
void StateRequestTimerExpired();
|
|
};
|
|
|
|
#endif // AVRECEIVERDEVICE_H
|