#pragma once
#include "env.h"
#include "CECCommandHandler.h"
#include "p8-platform/threads/threads.h"
namespace CEC
{
class CAQPowerStatusCheck;
class CAQCommandHandler : public CCECCommandHandler
{
friend class CAQPowerStatusCheck;
public:
CAQCommandHandler(CCECBusDevice *busDevice,
int32_t iTransmitTimeout = CEC_DEFAULT_TRANSMIT_TIMEOUT,
int32_t iTransmitWait = CEC_DEFAULT_TRANSMIT_WAIT,
int8_t iTransmitRetries = CEC_DEFAULT_TRANSMIT_RETRIES,
int64_t iActiveSourcePending = 0);
virtual ~CAQCommandHandler(void);
protected:
virtual bool PowerOn(const cec_logical_address iInitiator, const cec_logical_address iDestination);
private:
CAQPowerStatusCheck* m_powerOnCheck;
};
class CAQPowerStatusCheck : public P8PLATFORM::CThread
{
public:
CAQPowerStatusCheck(CAQCommandHandler* handler, cec_logical_address iInitiator, cec_logical_address iDestination) :
m_handler(handler),
m_iInitiator(iInitiator),
m_iDestination(iDestination) {}
virtual ~CAQPowerStatusCheck(void) {}
private:
void* Process(void);
CAQCommandHandler* m_handler;
cec_logical_address m_iInitiator;
cec_logical_address m_iDestination;
};
};