@@ -756,7 +756,7 @@ namespace WPEFramework
756
756
#ifdef IO_HCEC_ENABLE_IARM
757
757
InitializeIARM ();
758
758
#else
759
- device::Host::getInstance ().Register (this , " WPE[HdmiCecSink]" );
759
+ device::Host::getInstance ().Register (baseInterface<device::Host::IHdmiInEvents>() , " WPE[HdmiCecSink]" );
760
760
#endif /* IO_HCEC_ENABLE_IARM */
761
761
m_sendKeyEventThreadExit = false ;
762
762
m_sendKeyEventThread = std::thread (threadSendKeyEvent);
@@ -783,6 +783,7 @@ namespace WPEFramework
783
783
}
784
784
}
785
785
786
+ #ifdef IO_HCEC_ENABLE_IARM
786
787
err = IARM_Bus_Call (IARM_BUS_DSMGR_NAME,
787
788
IARM_BUS_DSMGR_API_dsHdmiInGetNumberOfInputs,
788
789
(void *)&hdmiInput,
@@ -796,7 +797,9 @@ namespace WPEFramework
796
797
LOGINFO (" Not able to get Numebr of inputs so defaulting to 3 \n " );
797
798
m_numofHdmiInput = 3 ;
798
799
}
799
-
800
+ #else
801
+ m_numofHdmiInput = device::HdmiInput::getInstance ().getNumberOfInputs ();
802
+ #endif /* IO_HCEC_ENABLE_IARM */
800
803
LOGINFO (" initalize inputs \n " );
801
804
802
805
for (int i = 0 ; i < m_numofHdmiInput; i++){
@@ -886,7 +889,7 @@ namespace WPEFramework
886
889
#ifdef IO_HCEC_ENABLE_IARM
887
890
DeinitializeIARM ();
888
891
#else
889
- device::Host::getInstance ().UnRegister (this );
892
+ device::Host::getInstance ().UnRegister (baseInterface<device::Host::IHdmiInEvents>() );
890
893
#endif /* IO_HCEC_ENABLE_IARM */
891
894
892
895
LOGWARN (" HdmiCecSink Deinitialize() Done" );
@@ -2081,6 +2084,8 @@ namespace WPEFramework
2081
2084
int err;
2082
2085
bool isAnyPortConnected = false ;
2083
2086
2087
+ #ifdef IO_HCEC_ENABLE_IARM
2088
+
2084
2089
dsHdmiInGetStatusParam_t params;
2085
2090
err = IARM_Bus_Call (IARM_BUS_DSMGR_NAME,
2086
2091
IARM_BUS_DSMGR_API_dsHdmiInGetStatus,
@@ -2101,7 +2106,21 @@ namespace WPEFramework
2101
2106
hdmiInputs[i].update (params.status .isPortConnected [i]);
2102
2107
}
2103
2108
}
2109
+ #else
2110
+
2111
+ for ( int i = 0 ; i < m_numofHdmiInput; i++ )
2112
+ {
2113
+ // LOGINFO("update Port Status [%d] \n", i);
2114
+ hdmiInputs[i].update (device::HdmiInput::getInstance ().isPortConnected (i));
2115
+
2116
+ // LOGINFO("Is HDMI In Port [%d] connected [%d] \n",i, params.status.isPortConnected[i]);
2117
+ if ( hdmiInputs[i].m_isConnected )
2118
+ {
2119
+ isAnyPortConnected = true ;
2120
+ }
2121
+ }
2104
2122
2123
+ #endif /* IO_HCEC_ENABLE_IARM */
2105
2124
if ( isAnyPortConnected ) {
2106
2125
m_isHdmiInConnected = true ;
2107
2126
} else {
@@ -3562,6 +3581,7 @@ namespace WPEFramework
3562
3581
3563
3582
}
3564
3583
3584
+ #ifdef IO_HCEC_ENABLE_IARM
3565
3585
void HdmiCecSink::getHdmiArcPortID ()
3566
3586
{
3567
3587
int err;
@@ -3586,6 +3606,50 @@ namespace WPEFramework
3586
3606
}
3587
3607
} while (retryCount++ <= 6 );
3588
3608
}
3609
+ #else
3610
+
3611
+ #ifdef TBD_IN_DS_CLIENT
3612
+ void HdmiInput::getHDMIARCPortId (int *portId)
3613
+ {
3614
+ if (NULL != portId)
3615
+ {
3616
+ dsError_t error = dsERR_GENERAL;
3617
+ error = dsGetHDMIARCPortId (portId);
3618
+ if (dsERR_NONE != error)
3619
+ {
3620
+ *portId = -1 ;
3621
+ }
3622
+ }
3623
+ }
3624
+ #endif /* TBD_IN_DS_CLIENT */
3625
+
3626
+ void HdmiCecSink::getHdmiArcPortID ()
3627
+ {
3628
+ int portId;
3629
+ unsigned int retryCount = 1 ;
3630
+ do {
3631
+ usleep (50000 ); // Sleep for 50ms before retrying
3632
+ portId = -1 ;
3633
+ #ifdef TBD_IN_DS_CLIENT
3634
+ device::HdmiInput::getInstance ().getHDMIARCPortId (&portId);
3635
+ #else
3636
+ portId = 0 ; // just for compilation & testing
3637
+ #endif /* TBD_IN_DS_CLIENT */
3638
+ if (-1 != portId)
3639
+ {
3640
+ LOGINFO (" HDMI ARC port ID HdmiArcPortID[%d] on retry count[%d]" , portId, retryCount);
3641
+ HdmiArcPortID = portId;
3642
+ break ;
3643
+ }
3644
+ else
3645
+ {
3646
+ LOGWARN (" getHDMIARCPortId failed for retry count[%d]" , retryCount);
3647
+ }
3648
+ } while (retryCount++ <= 6 );
3649
+ }
3650
+
3651
+ #endif /* IO_HCEC_ENABLE_IARM */
3652
+
3589
3653
3590
3654
void HdmiCecSink::getCecVersion ()
3591
3655
{
0 commit comments