2525#include " host.hpp"
2626#include " UtilsgetRFCConfig.h"
2727
28- #include " dsMgr.h"
2928#include " dsRpc.h"
3029#include " dsDisplay.h"
3130#include " videoOutputPort.hpp"
3635#include " UtilsJsonRpc.h"
3736#include " UtilssyncPersistFile.h"
3837#include " UtilsSearchRDKProfile.h"
38+ #include " exception.hpp"
39+ #include " hdmiIn.hpp"
3940
4041#define HDMICECSINK_METHOD_SET_ENABLED " setEnabled"
4142#define HDMICECSINK_METHOD_GET_ENABLED " getEnabled"
@@ -765,14 +766,7 @@ namespace WPEFramework
765766 logicalAddress = 0xFF ;
766767 // load persistence setting
767768 loadSettings ();
768-
769- int err;
770- dsHdmiInGetNumberOfInputsParam_t hdmiInput;
771- #ifdef IO_HCEC_ENABLE_IARM
772- InitializeIARM ();
773- #else
774- device::Host::getInstance ().Register (baseInterface<device::Host::IHdmiInEvents>(), " WPE[HdmiCecSink]" );
775- #endif /* IO_HCEC_ENABLE_IARM */
769+ device::Host::getInstance ().Register (baseInterface<device::Host::IHdmiInEvents>(), " WPE::CecSink" );
776770 m_sendKeyEventThreadExit = false ;
777771 m_sendKeyEventThread = std::thread (threadSendKeyEvent);
778772
@@ -798,23 +792,8 @@ namespace WPEFramework
798792 }
799793 }
800794
801- #ifdef IO_HCEC_ENABLE_IARM
802- err = IARM_Bus_Call (IARM_BUS_DSMGR_NAME,
803- IARM_BUS_DSMGR_API_dsHdmiInGetNumberOfInputs,
804- (void *)&hdmiInput,
805- sizeof (hdmiInput));
806-
807- if (err == IARM_RESULT_SUCCESS && hdmiInput.result == dsERR_NONE)
808- {
809- LOGINFO (" Number of Inputs [%d] \n " , hdmiInput.numHdmiInputs );
810- m_numofHdmiInput = hdmiInput.numHdmiInputs ;
811- }else {
812- LOGINFO (" Not able to get Numebr of inputs so defaulting to 3 \n " );
813- m_numofHdmiInput = 3 ;
814- }
815- #else
816795 m_numofHdmiInput = device::HdmiInput::getInstance ().getNumberOfInputs ();
817- # endif /* IO_HCEC_ENABLE_IARM */
796+
818797 LOGINFO (" initalize inputs \n " );
819798
820799 for (int i = 0 ; i < m_numofHdmiInput; i++){
@@ -903,11 +882,7 @@ namespace WPEFramework
903882 }
904883
905884 HdmiCecSink::_instance = nullptr ;
906- #ifdef IO_HCEC_ENABLE_IARM
907- DeinitializeIARM ();
908- #else
909- device::Host::getInstance ().UnRegister (baseInterface<device::Host::IHdmiInEvents>());
910- #endif /* IO_HCEC_ENABLE_IARM */
885+ device::Host::getInstance ().UnRegister (baseInterface<device::Host::IHdmiInEvents>());
911886
912887 try
913888 {
@@ -923,24 +898,6 @@ namespace WPEFramework
923898 LOGWARN (" HdmiCecSink Deinitialize() Done" );
924899 }
925900
926- const void HdmiCecSink::InitializeIARM ()
927- {
928- if (Utils::IARM::init ())
929- {
930- IARM_Result_t res;
931- IARM_CHECK ( IARM_Bus_RegisterEventHandler (IARM_BUS_DSMGR_NAME,IARM_BUS_DSMGR_EVENT_HDMI_IN_HOTPLUG, dsHdmiEventHandler) );
932- }
933- }
934-
935- void HdmiCecSink::DeinitializeIARM ()
936- {
937- if (Utils::IARM::isConnected ())
938- {
939- IARM_Result_t res;
940- IARM_CHECK ( IARM_Bus_RemoveEventHandler (IARM_BUS_DSMGR_NAME,IARM_BUS_DSMGR_EVENT_HDMI_IN_HOTPLUG, dsHdmiEventHandler) );
941- }
942- }
943-
944901 void HdmiCecSink::InitializePowerManager (PluginHost::IShell *service)
945902 {
946903 _powerManagerPlugin = PowerManagerInterfaceBuilder (_T (" org.rdk.PowerManager" ))
@@ -960,31 +917,14 @@ namespace WPEFramework
960917 }
961918 }
962919
963- #ifdef IO_HCEC_ENABLE_IARM
964- void HdmiCecSink::dsHdmiEventHandler (const char *owner, IARM_EventId_t eventId, void *data, size_t len)
965- {
966- if (!HdmiCecSink::_instance)
967- return ;
968-
969- if (IARM_BUS_DSMGR_EVENT_HDMI_IN_HOTPLUG == eventId)
970- {
971- IARM_Bus_DSMgr_EventData_t *eventData = (IARM_Bus_DSMgr_EventData_t *)data;
972- bool isHdmiConnected = eventData->data .hdmi_in_connect .isPortConnected ;
973- dsHdmiInPort_t portId = eventData->data .hdmi_in_connect .port ;
974- LOGINFO (" Received IARM_BUS_DSMGR_EVENT_HDMI_IN_HOTPLUG event port: %d data:%d \r\n " ,portId, isHdmiConnected);
975- HdmiCecSink::_instance->onHdmiHotPlug (portId,isHdmiConnected);
976- }
977- }
978- #else
979920 void HdmiCecSink::OnHdmiInEventHotPlug (dsHdmiInPort_t port, bool isConnected)
980921 {
981922 if (!HdmiCecSink::_instance)
982923 return ;
983924
984- LOGINFO (" Received IARM_BUS_DSMGR_EVENT_HDMI_IN_HOTPLUG event port: %d isConnected: %d \r\n " , port, isConnected);
925+ LOGINFO (" Received HdmiCecSink::OnHdmiInEventHotPlug event port: %d isConnected: %d \r\n " , port, isConnected);
985926 HdmiCecSink::_instance->onHdmiHotPlug ((int ) port, isConnected);
986927 }
987- #endif /* IO_HCEC_ENABLE_IARM */
988928
989929 void HdmiCecSink::onPowerModeChanged (const PowerState currentState, const PowerState newState)
990930 {
@@ -2109,46 +2049,20 @@ namespace WPEFramework
21092049
21102050 void HdmiCecSink::CheckHdmiInState ()
21112051 {
2112- int err;
21132052 bool isAnyPortConnected = false ;
21142053
2115- #ifdef IO_HCEC_ENABLE_IARM
2116-
2117- dsHdmiInGetStatusParam_t params;
2118- err = IARM_Bus_Call (IARM_BUS_DSMGR_NAME,
2119- IARM_BUS_DSMGR_API_dsHdmiInGetStatus,
2120- (void *)¶ms,
2121- sizeof (params));
2122-
2123- if (err == IARM_RESULT_SUCCESS && params.result == dsERR_NONE )
2124- {
2125- for ( int i = 0 ; i < m_numofHdmiInput; i++ )
2126- {
2127- LOGINFO (" Is HDMI In Port [%d] connected [%d] \n " ,i, params.status .isPortConnected [i]);
2128- if ( params.status .isPortConnected [i] )
2129- {
2130- isAnyPortConnected = true ;
2131- }
2132-
2133- LOGINFO (" update Port Status [%d] \n " , i);
2134- hdmiInputs[i].update (params.status .isPortConnected [i]);
2135- }
2136- }
2137- #else
2138-
21392054 for ( int i = 0 ; i < m_numofHdmiInput; i++ )
21402055 {
2141- // LOGINFO("update Port Status [%d] \n", i);
2056+ LOGINFO (" update Port Status [%d] \n " , i);
21422057 hdmiInputs[i].update (device::HdmiInput::getInstance ().isPortConnected (i));
21432058
2144- // LOGINFO("Is HDMI In Port [%d] connected [%d] \n",i, params.status.isPortConnected [i]);
2059+ LOGINFO (" Is HDMI In Port [%d] connected [%d] \n " ,i, hdmiInputs [i]. m_isConnected );
21452060 if ( hdmiInputs[i].m_isConnected )
21462061 {
21472062 isAnyPortConnected = true ;
21482063 }
21492064 }
21502065
2151- #endif /* IO_HCEC_ENABLE_IARM */
21522066 if ( isAnyPortConnected ) {
21532067 m_isHdmiInConnected = true ;
21542068 } else {
@@ -3609,58 +3523,26 @@ namespace WPEFramework
36093523
36103524 }
36113525
3612- #ifdef IO_HCEC_ENABLE_IARM
3613- void HdmiCecSink::getHdmiArcPortID ()
3614- {
3615- int err;
3616- dsGetHDMIARCPortIdParam_t param;
3617- unsigned int retryCount = 1 ;
3618- do {
3619- usleep (50000 ); // Sleep for 50ms before retrying
3620- param.portId = -1 ; // Initialize to an invalid port ID
3621- err = IARM_Bus_Call (IARM_BUS_DSMGR_NAME,
3622- (char *)IARM_BUS_DSMGR_API_dsGetHDMIARCPortId,
3623- (void *)¶m,
3624- sizeof (param));
3625- if (IARM_RESULT_SUCCESS == err)
3626- {
3627- LOGINFO (" HDMI ARC port ID HdmiArcPortID[%d] on retry count[%d]" , param.portId , retryCount);
3628- HdmiArcPortID = param.portId ;
3629- break ;
3630- }
3631- else
3632- {
3633- LOGWARN (" IARM_Bus_Call failed with error[%d], retry count[%d]" , err, retryCount);
3634- }
3635- } while (retryCount++ <= 6 );
3636- }
3637- #else
3638- void HdmiCecSink::getHdmiArcPortID ()
3639- {
3640- int portId;
3641- unsigned int retryCount = 1 ;
3642- do {
3643- usleep (50000 ); // Sleep for 50ms before retrying
3644- portId = -1 ;
3645- #if 0 //just to verify compilation
3646- device::HdmiInput::getInstance().getHDMIARCPortId(&portId);
3647- #else
3648- portId = 0 ;
3649- #endif
3650- if (-1 != portId)
3651- {
3652- LOGINFO (" HDMI ARC port ID HdmiArcPortID[%d] on retry count[%d]" , portId, retryCount);
3653- HdmiArcPortID = portId;
3654- break ;
3655- }
3656- else
3657- {
3658- LOGWARN (" getHDMIARCPortId failed for retry count[%d]" , retryCount);
3659- }
3660- } while (retryCount++ <= 6 );
3661- }
3662- #endif /* IO_HCEC_ENABLE_IARM */
3663-
3526+ void HdmiCecSink::getHdmiArcPortID ()
3527+ {
3528+ int portId;
3529+ unsigned int retryCount = 1 ;
3530+ do {
3531+ usleep (50000 ); // Sleep for 50ms before retrying
3532+ portId = -1 ;
3533+ device::HdmiInput::getInstance ().getHDMIARCPortId (&portId);
3534+ if (-1 != portId)
3535+ {
3536+ LOGINFO (" HDMI ARC port ID HdmiArcPortID[%d] on retry count[%d]" , portId, retryCount);
3537+ HdmiArcPortID = portId;
3538+ break ;
3539+ }
3540+ else
3541+ {
3542+ LOGWARN (" getHDMIARCPortId failed for retry count[%d]" , retryCount);
3543+ }
3544+ } while (retryCount++ <= 6 );
3545+ }
36643546
36653547 void HdmiCecSink::getCecVersion ()
36663548 {
0 commit comments