1 #pragma once 2 /* 3 * This file is part of the libCEC(R) library. 4 * 5 * libCEC(R) is Copyright (C) 2011-2015 Pulse-Eight Limited. All rights reserved. 6 * libCEC(R) is an original work, containing original code. 7 * 8 * libCEC(R) is a trademark of Pulse-Eight Limited. 9 * 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. 14 * 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. 19 * 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., 51 Franklin Street, Fifth Floor, Boston, MA 23 * 02110-1301 USA 24 * 25 * 26 * Alternatively, you can license this library under a commercial license, 27 * please contact Pulse-Eight Licensing for more information. 28 * 29 * For more information contact: 30 * Pulse-Eight Licensing <license@pulse-eight.com> 31 * http://www.pulse-eight.com/ 32 * http://www.pulse-eight.net/ 33 */ 34 35 #include "env.h" 36 #include "CECCommandHandler.h" 37 38 namespace CEC 39 { 40 class CSLCommandHandler : public CCECCommandHandler 41 { 42 public: 43 CSLCommandHandler(CCECBusDevice *busDevice, 44 int32_t iTransmitTimeout = CEC_DEFAULT_TRANSMIT_TIMEOUT, 45 int32_t iTransmitWait = CEC_DEFAULT_TRANSMIT_WAIT, 46 int8_t iTransmitRetries = CEC_DEFAULT_TRANSMIT_RETRIES, 47 int64_t iActiveSourcePending = 0); ~CSLCommandHandler(void)48 virtual ~CSLCommandHandler(void) {}; 49 50 bool InitHandler(void); 51 bool ActivateSource(bool bTransmitDelayedCommandsOnly = false); 52 53 protected: 54 int HandleVendorCommand(const cec_command &command); 55 56 void HandleVendorCommandSLInit(const cec_command &command); 57 void TransmitVendorCommandSLAckInit(const cec_logical_address iSource, const cec_logical_address iDestination); 58 59 void HandleVendorCommandPowerOn(const cec_command &command, bool activateSource); 60 void HandleVendorCommandPowerOnStatus(const cec_command &command); 61 62 void HandleVendorCommandSLConnect(const cec_command &command); 63 void TransmitVendorCommandSetDeviceMode(const cec_logical_address iSource, const cec_logical_address iDestination, const cec_device_type type); 64 65 int HandleGiveDevicePowerStatus(const cec_command &command); 66 int HandleGiveDeckStatus(const cec_command &command); 67 int HandleRequestActiveSource(const cec_command &command); 68 int HandleFeatureAbort(const cec_command &command); 69 int HandleStandby(const cec_command &command); TransmitMenuState(const cec_logical_address UNUSED (iInitiator),const cec_logical_address UNUSED (iDestination),cec_menu_state UNUSED (menuState),bool UNUSED (bIsReply))70 bool TransmitMenuState(const cec_logical_address UNUSED(iInitiator), const cec_logical_address UNUSED(iDestination), cec_menu_state UNUSED(menuState), bool UNUSED(bIsReply)) { return true; } 71 bool PowerOn(const cec_logical_address iInitiator, const cec_logical_address iDestination); 72 73 void ResetSLState(void); 74 bool SLInitialised(void); 75 void SetSLInitialised(void); 76 77 bool m_bSLEnabled; 78 P8PLATFORM::CTimeout m_resetPowerState; 79 P8PLATFORM::CMutex m_SLMutex; 80 }; 81 }; 82