Masterctrl/Sources/AvReceiver/AVReceiverDevice.h
jfmartel d3d6e095d7 Réglé le problème de VOIP.ms Client.
Il a fallu que j'ajoute les DLL d'OPENSSL...
2020-07-12 12:09:38 -04:00

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