3 * This file is part of the libCEC(R) library.
5 * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved.
6 * libCEC(R) is an original work, containing original code.
8 * libCEC(R) is a trademark of Pulse-Eight Limited.
10 * This program is dual-licensed; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version.
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
25 * Alternatively, you can license this library under a commercial license,
26 * please contact Pulse-Eight Licensing for more information.
28 * For more information contact:
29 * Pulse-Eight Licensing <license@pulse-eight.com>
30 * http://www.pulse-eight.com/
31 * http://www.pulse-eight.net/
34 #include "CECCommandHandler.h"
35 #include "lib/platform/threads/threads.h"
39 class CPHCommandHandler
;
41 class CImageViewOnCheck
: public PLATFORM::CThread
44 CImageViewOnCheck(CPHCommandHandler
* handler
):
46 virtual ~CImageViewOnCheck(void);
51 CPHCommandHandler
* m_handler
;
52 PLATFORM::CEvent m_event
;
55 class CPHCommandHandler
: public CCECCommandHandler
57 friend class CImageViewOnCheck
;
59 CPHCommandHandler(CCECBusDevice
*busDevice
,
60 int32_t iTransmitTimeout
= CEC_DEFAULT_TRANSMIT_TIMEOUT
,
61 int32_t iTransmitWait
= CEC_DEFAULT_TRANSMIT_WAIT
,
62 int8_t iTransmitRetries
= CEC_DEFAULT_TRANSMIT_RETRIES
,
63 int64_t iActiveSourcePending
= 0);
64 virtual ~CPHCommandHandler(void);
66 bool InitHandler(void);
69 virtual bool ActivateSource(bool bTransmitDelayedCommandsOnly
= false);
70 virtual int HandleUserControlPressed(const cec_command
& command
);
71 virtual int HandleUserControlRelease(const cec_command
& command
);
72 virtual bool TransmitVendorID(const cec_logical_address iInitiator
, const cec_logical_address iDestination
, uint64_t iVendorId
, bool bIsReply
);
73 virtual int HandleDeviceVendorId(const cec_command
& command
);
74 uint8_t m_iLastKeyCode
;
75 CImageViewOnCheck
* m_imageViewOnCheck
;