From c6844fe7698f3518a50fc9cd0d599fa917fa037a Mon Sep 17 00:00:00 2001 From: Dosakayala Nagalakshmi Date: Thu, 4 Sep 2025 23:55:27 +0530 Subject: [PATCH 01/14] Supported below apis.. dsSetStandbyVideoState dsGetStandbyVideoState dsSetAvPortState dsSetLEDStatus dsSetRebootConfig --- ds/frontPanelTextDisplay.cpp | 17 ++++++- ds/host.cpp | 10 ++++ ds/include/frontPanelTextDisplay.hpp | 2 +- ds/include/host.hpp | 1 + ds/include/videoOutputPort.hpp | 9 ++++ ds/videoOutputPort.cpp | 46 ++++++++++++++---- rpc/cli/dsFPD.c | 19 ++++++++ rpc/cli/dsHost.cpp | 25 ++++++++++ rpc/cli/dsVideoPort.c | 72 ++++++++++++++++++++++++++++ rpc/include/dsRpc.h | 6 +++ rpc/srv/dsFPD.c | 10 +++- rpc/srv/dsHost.cpp | 14 ++++-- rpc/srv/dsVideoPort.c | 31 +++++++++++- 13 files changed, 246 insertions(+), 16 deletions(-) diff --git a/ds/frontPanelTextDisplay.cpp b/ds/frontPanelTextDisplay.cpp index 3943934c..1eb64d5d 100644 --- a/ds/frontPanelTextDisplay.cpp +++ b/ds/frontPanelTextDisplay.cpp @@ -208,7 +208,22 @@ void FrontPanelTextDisplay::enableDisplay(const int enable) } } - +/** + * @fn FrontPanelTextDisplay::SetLEDStatus + * @brief This function is used to Set LED status on front panel. + * + * @param[in] fpdIndicator. + * @param[in] fpdState. + * + * @return None + */ + void SetLEDStatus(const dsFPDIndicator_t fpdIndicator, const dsFPDState_t fpdState); + { + dsError_t ret = dsSetLEDStatus(fpdIndicator, fpdState); + if (ret != dsERR_NONE) { + throw Exception(ret); + } + } /** * @fn FrontPanelTextDisplay::setTextBrightness(const int &brightness) * @brief This API sets the brightness value for the front panel LED. diff --git a/ds/host.cpp b/ds/host.cpp index 335765aa..f534c7af 100644 --- a/ds/host.cpp +++ b/ds/host.cpp @@ -765,6 +765,16 @@ Host::~Host() printf ("%s:%d - Set Audio Mixer levels for audio input: %d with volume = %d\n", __PRETTY_FUNCTION__, __LINE__,aInput, volume); } + +bool Host::SetRebootConfig(string rebootReasonCustom, uint8_t powerState) +{ + dsError_t ret = dsSetRebootConfig(rebootReasonCustom, powerState); + if (ret == dsERR_NONE) + return true; + else + return false; +} + DefaultImpl& Host::impl() { /* lazy instantiation */ diff --git a/ds/include/frontPanelTextDisplay.hpp b/ds/include/frontPanelTextDisplay.hpp index 588a3352..e3a28be3 100644 --- a/ds/include/frontPanelTextDisplay.hpp +++ b/ds/include/frontPanelTextDisplay.hpp @@ -142,7 +142,7 @@ class FrontPanelTextDisplay : public FrontPanelIndicator { int getTextColorMode(); void setTextBrightness(const int &brightness); void enableDisplay(const int enable); - + void SetLEDStatus(const dsFPDIndicator_t fpdIndicator, const dsFPDState_t fpdState); /** * @fn Scroll getScroll() const diff --git a/ds/include/host.hpp b/ds/include/host.hpp index 7fcd58a7..2aaaaa8c 100644 --- a/ds/include/host.hpp +++ b/ds/include/host.hpp @@ -327,6 +327,7 @@ class Host { void getCurrentAudioFormat(dsAudioFormat_t& audioFormat); void getMS12ConfigDetails(std::string& configType); void setAudioMixerLevels(dsAudioInput_t aInput, int volume); + void SetRebootConfig(dsMgrRebootConfigParam_t param); private: std::unique_ptr m_impl; diff --git a/ds/include/videoOutputPort.hpp b/ds/include/videoOutputPort.hpp index a9b71ade..95939cb0 100644 --- a/ds/include/videoOutputPort.hpp +++ b/ds/include/videoOutputPort.hpp @@ -284,6 +284,15 @@ class VideoOutputPort : public Enumerable { void setPreferredColorDepth(const unsigned int colordepth, bool persist = true); void getColorDepthCapabilities (unsigned int *capabilities) const; +// static IARM_Result_t _SetStandbyVideoState(void *arg) + void SetStandbyVideoState(); + +// static IARM_Result_t _GetStandbyVideoState(void *arg) + void GetStandbyVideoState(); + +// static IARM_Result_t _SetAvPortState(void *arg) + void SetAvPortState(); + private: Display _display; diff --git a/ds/videoOutputPort.cpp b/ds/videoOutputPort.cpp index c77aa5c4..3ab30784 100644 --- a/ds/videoOutputPort.cpp +++ b/ds/videoOutputPort.cpp @@ -911,18 +911,48 @@ int VideoOutputPort::GetHdmiPreference() return hdcpProtocol; } +bool VideoOutputPort::SetStandbyVideoState(const string port , const bool enable) +{ + dsError_t ret = dsSetStandbyVideoState(port, enable); + if (ret != dsERR_NONE) { + return false; + } + return true; + +} + +bool VideoOutputPort::GetStandbyVideoState(const string port, bool isEnabled) +{ + dsError_t ret = dsGetStandbyVideoState(port, isEnabled); + if (ret != dsERR_NONE) { + return false; + } + return true; + +} + +bool VideoOutputPort::SetAvPortState(const uint8_t powerState) +{ + dsError_t ret = dsSetAvPortState(powerState); + if (ret != dsERR_NONE) { + return false; + } + return true; + +} + /** * @fn void setAllmEnabled(bool enable); * @brief Enables/Disables ALLM mode for connected HDMI display. */ - void VideoOutputPort::Display::setAllmEnabled(bool enable) const - { - printf("VideoOutputPort::Display::setAllmEnabled \r\n"); - dsError_t ret = dsSetAllmEnabled(_handle,enable); - if (ret != dsERR_NONE) { - throw Exception(ret); - } - } +void VideoOutputPort::Display::setAllmEnabled(bool enable) const +{ + printf("VideoOutputPort::Display::setAllmEnabled \r\n"); + dsError_t ret = dsSetAllmEnabled(_handle,enable); + if (ret != dsERR_NONE) { + throw Exception(ret); + } +} /** * @fn void setAVIContentType(dsAviContentType_t contentType); diff --git a/rpc/cli/dsFPD.c b/rpc/cli/dsFPD.c index 6724cdb6..7e9e761a 100644 --- a/rpc/cli/dsFPD.c +++ b/rpc/cli/dsFPD.c @@ -449,8 +449,27 @@ dsError_t dsSetFPState (dsFPDIndicator_t eIndicator, dsFPDState_t state) return dsERR_GENERAL ; } +dsError_t dsSetLEDStatus(dsFPDIndicator_t eIndicator, dsFPDState_t state) +{ + _DEBUG_ENTER(); + dsFPDStateParam_t param ; + + param.eIndicator = eIndicator; + param.state = state; + IARM_Result_t rpcRet = IARM_RESULT_SUCCESS; + + rpcRet = IARM_Bus_Call(IARM_BUS_DSMGR_NAME, + (char *)IARM_BUS_DSMGR_API_dsSetLEDStatus, + (void *)¶m, + sizeof(param)); + if (IARM_RESULT_SUCCESS == rpcRet) + { + return dsERR_NONE; + } + return dsERR_GENERAL ; +} dsError_t dsGetFPTimeFormat (dsFPDTimeFormat_t *pTimeFormat) { diff --git a/rpc/cli/dsHost.cpp b/rpc/cli/dsHost.cpp index 799f4698..7b45ef1f 100644 --- a/rpc/cli/dsHost.cpp +++ b/rpc/cli/dsHost.cpp @@ -225,6 +225,31 @@ dsError_t dsGetMS12ConfigType(const char *ms12ConfigType) return ret; } +dsError_t dsSetRebootConfig(string rebootReasonCustom, uint8_t powerState) +{ + dsError_t ret = dsERR_GENERAL; + _DEBUG_ENTER(); + + if (!rebootReasonCustom.empty()) + { + dsMgrRebootConfigParam_t param; + param.powerState = powerState; + param.reboot_reason_custom = rebootReasonCustom; + param.result = 0; + + IARM_Result_t rpcRet = IARM_RESULT_SUCCESS; + rpcRet = IARM_Bus_Call(IARM_BUS_DSMGR_NAME, + (char *)IARM_BUS_DSMGR_API_dsSetRebootConfig, + (void *)¶m, + sizeof(param)); + if (IARM_RESULT_SUCCESS == rpcRet) + { + ret = dsERR_NONE; + } + } + return ret; +} + /** @} */ /** @} */ diff --git a/rpc/cli/dsVideoPort.c b/rpc/cli/dsVideoPort.c index 5ff4c9e4..517c8f15 100644 --- a/rpc/cli/dsVideoPort.c +++ b/rpc/cli/dsVideoPort.c @@ -965,6 +965,78 @@ dsError_t dsSetForceHDRMode(intptr_t handle, dsHDRStandard_t mode) return dsERR_GENERAL ; } +dsError_t dsSetStandbyVideoState(string port , const bool enable) +{ + dsError_t dsErr = dsERR_GENERAL; + _DEBUG_ENTER(); + + if(!port.empty()) + { + dsMgrStandbyVideoStateParam_t param; + param.port = port; + param.isEnabled = enable; + param.result = 0; + + IARM_Result_t rpcRet = IARM_Bus_Call(IARM_BUS_DSMGR_NAME, + (char *)IARM_BUS_DSMGR_API_dsSetStandbyVideoState, + (void *)¶m, sizeof(param)); + + if (IARM_RESULT_SUCCESS == rpcRet) + { + dsErr = dsERR_NONE; + } + } + return dsErr ; +} + +dsError_t dsGetStandbyVideoState(string port , bool enable) +{ + dsError_t dsErr = dsERR_GENERAL; + _DEBUG_ENTER(); + + if(!port.empty()) + { + dsMgrStandbyVideoStateParam_t param; + param.port = port; + param.result = 0; + + IARM_Result_t rpcRet = IARM_Bus_Call(IARM_BUS_DSMGR_NAME, + (char *)IARM_BUS_DSMGR_API_dsGetStandbyVideoState, + (void *)¶m, + sizeof(param)); + + if (IARM_RESULT_SUCCESS == rpcRet) + { + enable = param.isEnabled; + dsErr = dsERR_NONE; + } + } + return dsErr ; +} + + +dsError_t dsSetAvPortState(const int powerState) +{ + dsError_t dsErr = dsERR_GENERAL; + dsMgrAVPortStateParam_t param; + + _DEBUG_ENTER(); + + param.avPortPowerState = powerState; + param.result = 0; + + IARM_Result_t rpcRet = IARM_Bus_Call(IARM_BUS_DSMGR_NAME, + (char *)IARM_BUS_DSMGR_API_dsSetAvPortState, + (void *)¶m, + sizeof(param)); + + if (IARM_RESULT_SUCCESS == rpcRet) + { + dsErr = dsERR_NONE; + } + + return dsErr ; +} /** @} */ /** @} */ diff --git a/rpc/include/dsRpc.h b/rpc/include/dsRpc.h index 96b3a086..9b932eb1 100644 --- a/rpc/include/dsRpc.h +++ b/rpc/include/dsRpc.h @@ -195,6 +195,12 @@ extern "C" { #define IARM_BUS_DSMGR_API_dsSetBackgroundColor "dsSetBackgroundColor" #define IARM_BUS_DSMGR_API_dsSetForceHDRMode "dsSetForceHDRMode" #define IARM_BUS_DSMGR_API_dsSetAllmEnabled "dsSetAllmEnabled" +#define IARM_BUS_DSMGR_API_dsSetStandbyVideoState "dsSetStandbyVideoState" +#define IARM_BUS_DSMGR_API_dsGetStandbyVideoState "dsGetStandbyVideoState" +#define IARM_BUS_DSMGR_API_dsSetAvPortState "dsSetAvPortState" +#define IARM_BUS_DSMGR_API_dsSetLEDStatus "dsSetLEDStatus" +#define IARM_BUS_DSMGR_API_dsSetRebootConfig "dsSetRebootConfig" + /* * Declare RPC FP API names */ diff --git a/rpc/srv/dsFPD.c b/rpc/srv/dsFPD.c index b2c592c5..529b3592 100644 --- a/rpc/srv/dsFPD.c +++ b/rpc/srv/dsFPD.c @@ -73,7 +73,8 @@ IARM_Result_t _dsSetFPScroll(void *arg); IARM_Result_t _dsSetFPBlink(void *arg); IARM_Result_t _dsGetFPBrightness(void *arg); IARM_Result_t _dsSetFPBrightness(void *arg); -IARM_Result_t _dsSetFPState(void *arg); +IARM_Result_t _dsSetLEDStatus(void *arg); +IARM_Result_t _dsSetLEDState(void *arg); IARM_Result_t _dsGetFPState(void *arg); IARM_Result_t _dsSetFPColor(void *arg); IARM_Result_t _dsGetFPColor(void *arg); @@ -254,6 +255,7 @@ IARM_Result_t _dsFPInit(void *arg) IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsSetFPBlink,_dsSetFPBlink); IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsGetFPBrightness,_dsGetFPBrightness); IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsSetFPState,_dsSetFPState); + IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsSetLEDStatus,_dsSetLEDStatus); IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsGetFPState,_dsGetFPState); IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsSetFPBrightness,_dsSetFPBrightness); IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsSetFPColor,_dsSetFPColor); @@ -689,7 +691,11 @@ IARM_Result_t _dsSetFPState(void *arg) return ret; } - +IARM_Result_t _dsSetLEDStatus(void *arg) +{ + IARM_Result_t ret = IARM_RESULT_SUCCESS; + return ret; +} IARM_Result_t _dsGetTimeFormat(void *arg) diff --git a/rpc/srv/dsHost.cpp b/rpc/srv/dsHost.cpp index 3215b94e..70889986 100644 --- a/rpc/srv/dsHost.cpp +++ b/rpc/srv/dsHost.cpp @@ -65,6 +65,7 @@ IARM_Result_t _dsGetVersion(void *arg); IARM_Result_t _dsGetSocIDFromSDK(void *arg); IARM_Result_t _dsGetHostEDID(void *arg); IARM_Result_t _dsGetMS12ConfigType(void *arg); +IARM_Result_t _dsSetRebootConfig(void *arg); static dsSleepMode_t _SleepMode = dsHOST_SLEEP_MODE_LIGHT; @@ -100,10 +101,10 @@ IARM_Result_t dsHostMgr_init() IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsGetCPUTemperature,_dsGetCPUTemperature); IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsGetVersion,_dsGetVersion); IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsGetSocIDFromSDK,_dsGetSocIDFromSDK); - IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsGetHostEDID,_dsGetHostEDID); - IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsGetMS12ConfigType,_dsGetMS12ConfigType); + IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsGetHostEDID,_dsGetHostEDID); + IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsGetMS12ConfigType,_dsGetMS12ConfigType); + IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsSetRebootConfig,_dsSetRebootConfig); - uint32_t halVersion = 0x10000; halVersion = dsHAL_APIVER(DSHAL_API_VERSION_MAJOR_DEFAULT, DSHAL_API_VERSION_MINOR_DEFAULT); INT_INFO("DS HAL Version is - %d.%d \r\n",dsHAL_APIVER_MAJOR(halVersion),dsHAL_APIVER_MINOR(halVersion)); @@ -267,6 +268,13 @@ IARM_Result_t _dsGetMS12ConfigType(void *arg) } return ret; } + +IARM_Result_t _dsSetRebootConfig(void *arg) +{ + IARM_Result_t ret = IARM_RESULT_SUCCESS; + return ret; +} + IARM_Result_t _dsGetSocIDFromSDK(void *arg) { dsGetSocIDFromSDKParam_t *param = (dsGetSocIDFromSDKParam_t*) arg; diff --git a/rpc/srv/dsVideoPort.c b/rpc/srv/dsVideoPort.c index d29966d2..91f99900 100644 --- a/rpc/srv/dsVideoPort.c +++ b/rpc/srv/dsVideoPort.c @@ -317,7 +317,10 @@ IARM_Result_t _dsVideoPortInit(void *arg) IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsColorDepthCapabilities,_dsColorDepthCapabilities); IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsGetPreferredColorDepth,_dsGetPreferredColorDepth); IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsSetPreferredColorDepth,_dsSetPreferredColorDepth); - + IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsSetStandbyVideoState,_dsSetStandbyVideoState); + IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsGetStandbyVideoState,_dsGetStandbyVideoState); + IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsSetAvPortState,_dsSetAvPortState); + dsError_t eRet = _dsVideoFormatUpdateRegisterCB (_dsVideoFormatUpdateCB) ; if (dsERR_NONE != eRet) { INT_DEBUG("%s: _dsVideoFormatUpdateRegisterCB eRet:%04x", __FUNCTION__, eRet); @@ -1195,6 +1198,32 @@ IARM_Result_t _dsSetPreferredColorDepth(void *arg) } +IARM_Result_t _dsSetStandbyVideoState(void *arg) +{ + _DEBUG_ENTER(); + + IARM_Result_t ret = IARM_RESULT_SUCCESS; + return ret; + + +} + +IARM_Result_t _dsSetPreferredColorDepth(void *arg) +{ + _DEBUG_ENTER(); + + IARM_Result_t ret = IARM_RESULT_SUCCESS; + return ret; +} + +IARM_Result_t _dsSetAvPortState(void *arg) +{ + _DEBUG_ENTER(); + + IARM_Result_t ret = IARM_RESULT_SUCCESS; + return ret; +} + dsError_t handleDsColorDepthCapabilities(intptr_t handle, unsigned int *colorDepthCapability ) { #ifndef RDK_DSHAL_NAME From 7ee7d1832f21418223e70c7183a83df28c42cb4c Mon Sep 17 00:00:00 2001 From: Dosakayala Nagalakshmi Date: Tue, 9 Sep 2025 11:38:09 +0530 Subject: [PATCH 02/14] removed unwanted apis... --- ds/frontPanelTextDisplay.cpp | 17 +- ds/host.cpp | 203 +++++++++++++---------- ds/include/frontPanelTextDisplay.hpp | 2 +- ds/include/host.hpp | 235 ++++++++++++++++++++------- ds/videoOutputPort.cpp | 10 -- rpc/cli/dsFPD.c | 19 --- rpc/cli/dsHost.cpp | 25 --- rpc/cli/dsVideoPort.c | 24 --- rpc/include/dsRpc.h | 3 - rpc/srv/dsFPD.c | 10 +- rpc/srv/dsHost.cpp | 14 +- rpc/srv/dsVideoPort.c | 97 +++++++++-- 12 files changed, 377 insertions(+), 282 deletions(-) diff --git a/ds/frontPanelTextDisplay.cpp b/ds/frontPanelTextDisplay.cpp index 1eb64d5d..3943934c 100644 --- a/ds/frontPanelTextDisplay.cpp +++ b/ds/frontPanelTextDisplay.cpp @@ -208,22 +208,7 @@ void FrontPanelTextDisplay::enableDisplay(const int enable) } } -/** - * @fn FrontPanelTextDisplay::SetLEDStatus - * @brief This function is used to Set LED status on front panel. - * - * @param[in] fpdIndicator. - * @param[in] fpdState. - * - * @return None - */ - void SetLEDStatus(const dsFPDIndicator_t fpdIndicator, const dsFPDState_t fpdState); - { - dsError_t ret = dsSetLEDStatus(fpdIndicator, fpdState); - if (ret != dsERR_NONE) { - throw Exception(ret); - } - } + /** * @fn FrontPanelTextDisplay::setTextBrightness(const int &brightness) * @brief This API sets the brightness value for the front panel LED. diff --git a/ds/host.cpp b/ds/host.cpp index f534c7af..e2475e14 100644 --- a/ds/host.cpp +++ b/ds/host.cpp @@ -40,7 +40,7 @@ #include "unsupportedOperationException.hpp" #include "dsInternal.h" -#include "iarm/IarmHostImpl.hpp" +#include "iarm/IarmImpl.hpp" /** * @file host.cpp @@ -52,10 +52,6 @@ using namespace std; namespace device { -const int Host::kPowerOn = dsPOWER_ON; -const int Host::kPowerOff = dsPOWER_OFF; -const int Host::kPowerStandby = dsPOWER_STANDBY; - Host::Host() : m_impl(nullptr) { @@ -106,7 +102,7 @@ Host::~Host() * * @return None */ - bool Host::setPowerMode(int mode) + bool Host::setPowerMode(int) { throw UnsupportedOperationException(); } @@ -455,7 +451,7 @@ Host::~Host() void Host::getMS12ConfigDetails(std::string &configType) { dsError_t ret = dsERR_NONE; - char type[MS12_CONFIG_BUF_SIZE]; + char type[MS12_CONFIG_BUF_SIZE] = { 0 }; ret = dsGetMS12ConfigType(type); if (ret == dsERR_NONE) { @@ -765,195 +761,230 @@ Host::~Host() printf ("%s:%d - Set Audio Mixer levels for audio input: %d with volume = %d\n", __PRETTY_FUNCTION__, __LINE__,aInput, volume); } - -bool Host::SetRebootConfig(string rebootReasonCustom, uint8_t powerState) -{ - dsError_t ret = dsSetRebootConfig(rebootReasonCustom, powerState); - if (ret == dsERR_NONE) - return true; - else - return false; -} - DefaultImpl& Host::impl() { - /* lazy instantiation */ + // lazy instantiation if (!m_impl) { m_impl = std::unique_ptr(new DefaultImpl()); } return *m_impl; } +/* virtual */ void Host::IHdmiInEvents::OnHdmiInEventHotPlug(dsHdmiInPort_t port, bool isConnected) +{ + // If client needs to handle this event, they should override this method + INT_DEBUG("Base impl of OnHdmiInEventHotPlug called. port: %d, isConnected: %d", port, isConnected); +} + +/* virtual */ void Host::IHdmiInEvents::OnHdmiInEventSignalStatus(dsHdmiInPort_t port, dsHdmiInSignalStatus_t signalStatus) +{ + // If client needs to handle this event, they should override this method + INT_DEBUG("Base impl of OnHdmiInEventSignalStatus called. port: %d, signalStatus: %d", port, signalStatus); +} + +/* virtual */ void Host::IHdmiInEvents::OnHdmiInEventStatus(dsHdmiInPort_t activePort, bool isPresented) +{ + // If client needs to handle this event, they should override this method + INT_DEBUG("Base impl of OnHdmiInEventStatus called. activePort: %d, isPresented: %d", activePort, isPresented); +} + +/* virtual */ void Host::IHdmiInEvents::OnHdmiInVideoModeUpdate(dsHdmiInPort_t port, const dsVideoPortResolution_t& videoPortResolution) +{ + // If client needs to handle this event, they should override this method + INT_DEBUG("Base impl of OnHdmiInVideoModeUpdate called. port: %d, interlaced: %d", port, videoPortResolution.interlaced); +} + +/* virtual */ void Host::IHdmiInEvents::OnHdmiInAllmStatus(dsHdmiInPort_t port, bool allmStatus) +{ + // If client needs to handle this event, they should override this method + INT_DEBUG("Base impl of OnHdmiInAllmStatus called. port: %d, allmStatus: %d", port, allmStatus); +} + +/* virtual */ void Host::IHdmiInEvents::OnHdmiInAVIContentType(dsHdmiInPort_t port, dsAviContentType_t aviContentType) +{ + // If client needs to handle this event, they should override this method + INT_DEBUG("Base impl of OnHdmiInAVIContentType called. port: %d, aviContentType: %d", port, aviContentType); +} + +/* virtual */ void Host::IHdmiInEvents::OnHdmiInVRRStatus(dsHdmiInPort_t port, dsVRRType_t vrrType) +{ + // If client needs to handle this event, they should override this method + INT_DEBUG("Base impl of OnHdmiInVRRStatus called. port: %d, vrrType: %d", port, vrrType); +} + +/* virtual */ void Host::IHdmiInEvents::OnHdmiInAVLatency(int audioDelay, int videoDelay) +{ + // If client needs to handle this event, they should override this method + INT_DEBUG("Base impl of OnHdmiInAVLatency called. audioDelay: %d, videoDelay: %d", audioDelay, videoDelay); +} + /* virtual */ void Host::IVideoDeviceEvents::OnDisplayFrameratePreChange(const std::string& frameRate) { - /* If client needs to handle this event, they should override this method */ - INT_WARN("Base impl of OnDisplayFrameratePreChange called. frameRate: %s", frameRate.c_str()); + // If client needs to handle this event, they should override this method + INT_DEBUG("Base impl of OnDisplayFrameratePreChange called. frameRate: %s", frameRate.c_str()); } /* virtual */ void Host::IVideoDeviceEvents::OnDisplayFrameratePostChange(const std::string& frameRate) { - /* If client needs to handle this event, they should override this method */ - INT_WARN("Base impl of OnDisplayFrameratePostChange called. frameRate: %s", frameRate.c_str()); + // If client needs to handle this event, they should override this method + INT_DEBUG("Base impl of OnDisplayFrameratePostChange called. frameRate: %s", frameRate.c_str()); } /* virtual */ void Host::IVideoDeviceEvents::OnZoomSettingsChanged(dsVideoZoom_t zoomSetting) { - /* If client needs to handle this event, they should override this method */ - INT_WARN("Base impl of OnZoomSettingsChanged called. zoomSetting: %d", zoomSetting); + // If client needs to handle this event, they should override this method + INT_DEBUG("Base impl of OnZoomSettingsChanged called. zoomSetting: %d", zoomSetting); } /* virtual */ void Host::IVideoOutputPortEvents::OnResolutionPreChange(int width, int height) { - /* If client needs to handle this event, they should override this method */ - INT_WARN("Base impl of OnResolutionPreChange called. width: %d, height: %d", width, height); + // If client needs to handle this event, they should override this method + INT_DEBUG("Base impl of OnResolutionPreChange called. width: %d, height: %d", width, height); } /* virtual */ void Host::IVideoOutputPortEvents::OnResolutionPostChange(int width, int height) { - /* If client needs to handle this event, they should override this method */ - INT_WARN("Base impl of OnResolutionPostChange called. width: %d, height: %d", width, height); + // If client needs to handle this event, they should override this method + INT_DEBUG("Base impl of OnResolutionPostChange called. width: %d, height: %d", width, height); } /* virtual */ void Host::IVideoOutputPortEvents::OnHDCPStatusChange(dsHdcpStatus_t hdcpStatus) { - /* If client needs to handle this event, they should override this method */ - INT_WARN("Base impl of OnHDCPStatusChange called. hdcpStatus: %d", hdcpStatus); + // If client needs to handle this event, they should override this method + INT_DEBUG("Base impl of OnHDCPStatusChange called. hdcpStatus: %d", hdcpStatus); } -/* virtual */ void Host::IVideoOutputPortEvents::OnVideoFormatUpdate(dsHDRStandard_t videoFormatHDR) +/* virtual */ void Host::IVideoOutputPortEvents::OnVideoFormatUpdate(dsHDRStandard_t videoFormatHDR) { - /* If client needs to handle this event, they should override this method */ - INT_WARN("Base impl of OnVideoFormatUpdate called. videoFormatHDR: %d", videoFormatHDR); + // If client needs to handle this event, they should override this method + INT_DEBUG("Base impl of OnVideoFormatUpdate called. videoFormatHDR: %d", videoFormatHDR); } /* virtual */ void Host::IAudioOutputPortEvents::OnAssociatedAudioMixingChanged(bool mixing) { - /* If client needs to handle this event, they should override this method */ - INT_WARN("Base impl of OnAssociatedAudioMixingChanged called. mixing: %d", mixing); + // If client needs to handle this event, they should override this method + INT_DEBUG("Base impl of OnAssociatedAudioMixingChanged called. mixing: %d", mixing); } /* virtual */ void Host::IAudioOutputPortEvents::OnAudioFaderControlChanged(int mixerBalance) { - /* If client needs to handle this event, they should override this method */ - INT_WARN("Base impl of OnAudioFaderControlChanged called. mixerBalance: %d", mixerBalance); + // If client needs to handle this event, they should override this method + INT_DEBUG("Base impl of OnAudioFaderControlChanged called. mixerBalance: %d", mixerBalance); } /* virtual */ void Host::IAudioOutputPortEvents::OnAudioPrimaryLanguageChanged(const std::string& primaryLanguage) { - /* If client needs to handle this event, they should override this method */ - INT_WARN("Base impl of OnAudioPrimaryLanguageChanged called. primaryLanguage: %s", primaryLanguage.c_str()); + // If client needs to handle this event, they should override this method + INT_DEBUG("Base impl of OnAudioPrimaryLanguageChanged called. primaryLanguage: %s", primaryLanguage.c_str()); } /* virtual */ void Host::IAudioOutputPortEvents::OnAudioSecondaryLanguageChanged(const std::string& secondaryLanguage) { - /* If client needs to handle this event, they should override this method */ - INT_WARN("Base impl of OnAudioSecondaryLanguageChanged called. secondaryLanguage: %s", secondaryLanguage.c_str()); + // If client needs to handle this event, they should override this method + INT_DEBUG("Base impl of OnAudioSecondaryLanguageChanged called. secondaryLanguage: %s", secondaryLanguage.c_str()); } /* virtual */ void Host::IAudioOutputPortEvents::OnAudioOutHotPlug(dsAudioPortType_t portType, uint32_t uiPortNumber, bool isPortConnected) { - /* If client needs to handle this event, they should override this method */ - INT_WARN("Base impl of OnAudioOutHotPlug called. portType: %d, uiPortNumber: %d, isPortConnected: %d", portType, uiPortNumber, isPortConnected); + // If client needs to handle this event, they should override this method + INT_DEBUG("Base impl of OnAudioOutHotPlug called. portType: %d, uiPortNumber: %d, isPortConnected: %d", portType, uiPortNumber, isPortConnected); } /* virtual */ void Host::IAudioOutputPortEvents::OnDolbyAtmosCapabilitiesChanged(dsATMOSCapability_t atmosCapability, bool status) { - /* If client needs to handle this event, they should override this method */ - INT_WARN("Base impl of OnDolbyAtmosCapabilitiesChanged called. atmosCapability: %d, status: %d", atmosCapability, status); + // If client needs to handle this event, they should override this method + INT_DEBUG("Base impl of OnDolbyAtmosCapabilitiesChanged called. atmosCapability: %d, status: %d", atmosCapability, status); } -// TODO: requires dsMgr.h header include ?? -// void Host::IAudioOutputPortEvents::OnAudioPortStateChanged(dsAudioPortState_t audioPortState) { } +/* virtual */ void Host::IAudioOutputPortEvents::OnAudioPortStateChanged(dsAudioPortState_t audioPortState) +{ + // If client needs to handle this event, they should override this method + INT_DEBUG("Base impl of OnAudioPortStateChanged called. audioPortState: %d", audioPortState); +} /* virtual */ void Host::IAudioOutputPortEvents::OnAudioModeEvent(dsAudioPortType_t audioPortType, dsAudioStereoMode_t audioStereoMode) { - /* If client needs to handle this event, they should override this method */ - INT_WARN("Base impl of OnAudioModeEvent called. audioPortType: %d, audioStereoMode: %d", audioPortType, audioStereoMode); + // If client needs to handle this event, they should override this method + INT_DEBUG("Base impl of OnAudioModeEvent called. audioPortType: %d, audioStereoMode: %d", audioPortType, audioStereoMode); } /* virtual */ void Host::IAudioOutputPortEvents::OnAudioLevelChangedEvent(int audioLevel) { - /* If client needs to handle this event, they should override this method */ - INT_WARN("Base impl of OnAudioLevelChangedEvent called. audioLevel: %d", audioLevel); + // If client needs to handle this event, they should override this method + INT_DEBUG("Base impl of OnAudioLevelChangedEvent called. audioLevel: %d", audioLevel); } /* virtual */ void Host::IAudioOutputPortEvents::OnAudioFormatUpdate(dsAudioFormat_t audioFormat) { - /* If client needs to handle this event, they should override this method */ - INT_WARN("Base impl of OnAudioFormatUpdate called. audioFormat: %d", audioFormat); + // If client needs to handle this event, they should override this method + INT_DEBUG("Base impl of OnAudioFormatUpdate called. audioFormat: %d", audioFormat); } /* virtual */ void Host::IDisplayDeviceEvents::OnDisplayHDMIHotPlug(dsDisplayEvent_t displayEvent) { - /* If client needs to handle this event, they should override this method */ - INT_WARN("Base impl of OnDisplayHDMIHotPlug called. displayEvent: %d", displayEvent); + // If client needs to handle this event, they should override this method + INT_DEBUG("Base impl of OnDisplayHDMIHotPlug called. displayEvent: %d", displayEvent); } /* virtual */ void Host::ICompositeInEvents::OnCompositeInHotPlug(dsCompositeInPort_t port, bool isConnected) { /* If client needs to handle this event, they should override this method */ - INT_WARN("Base impl of OnCompositeInHotPlug called. port: %d isConnected %d", port, isConnected); + INT_DEBUG("Base impl of OnCompositeInHotPlug called. port: %d isConnected %d", port, isConnected); } /* virtual */ void Host::ICompositeInEvents::OnCompositeInSignalStatus(dsCompositeInPort_t port, dsCompInSignalStatus_t signalStatus) { /* If client needs to handle this event, they should override this method */ - INT_WARN("Base impl of OnCompositeInSignalStatus called. port: %d signalStatus %d", port, signalStatus); + INT_DEBUG("Base impl of OnCompositeInSignalStatus called. port: %d signalStatus %d", port, signalStatus); } /* virtual */ void Host::ICompositeInEvents::OnCompositeInStatus(dsCompositeInPort_t activePort, bool isPresented) { /* If client needs to handle this event, they should override this method */ - INT_WARN("Base impl of OnCompositeInStatus called. activePort: %d isPresented %d", activePort, isPresented); + INT_DEBUG("Base impl of OnCompositeInStatus called. activePort: %d isPresented %d", activePort, isPresented); } /* virtual */ void Host::ICompositeInEvents::OnCompositeInVideoModeUpdate(dsCompositeInPort_t activePort, dsVideoPortResolution_t videoResolution) { /* If client needs to handle this event, they should override this method */ - INT_WARN("Base impl of OnCompositeInVideoModeUpdate called. activePort: %d videoResolution %d", activePort, videoResolution.pixelResolution); + INT_DEBUG("Base impl of OnCompositeInVideoModeUpdate called. activePort: %d videoResolution %d", activePort, videoResolution.pixelResolution); } -/* virtual */ void Host::IDisplayEvents::OnDisplayRxSense(dsDisplayEvent_t displayEvent) +/* virtual */ void Host::IDisplayEvents::OnDisplayRxSense(dsDisplayEvent_t displayEvent) { /* If client needs to handle this event, they should override this method */ - INT_WARN("Base impl of OnDisplayRxSense called. displayEvent: %d ", displayEvent); -} -/* virtual */ void Host::IDisplayEvents::OnDisplayHDCPStatus() -{ - /* If client needs to handle this event, they should override this method */ - INT_WARN("Base impl of OnDisplayHDCPStatus called. "); + INT_DEBUG("Base impl of OnDisplayRxSense called. displayEvent: %d ", displayEvent); } - -dsError_t Host::Register(IHDMIInEvents *listener) +dsError_t Host::Register(IHdmiInEvents* listener, const std::string& clientName) { - return impl().Register(listener); + return impl().Register(listener, clientName); } -dsError_t Host::UnRegister(IHDMIInEvents *listener) +dsError_t Host::UnRegister(IHdmiInEvents* listener) { return impl().UnRegister(listener); } -dsError_t Host::Register(ICompositeInEvents *listener) +dsError_t Host::Register(ICompositeInEvents* listener, const std::string& clientName) { - return impl().Register(listener); + return impl().Register(listener, clientName); } -dsError_t Host::UnRegister(ICompositeInEvents *listener) +dsError_t Host::UnRegister(ICompositeInEvents* listener) { return impl().UnRegister(listener); } -dsError_t Host::Register(IDisplayEvents *listener) +dsError_t Host::Register(IDisplayEvents* listener, const std::string& clientName) { - return impl().Register(listener); + return impl().Register(listener, clientName); } -dsError_t Host::UnRegister(IDisplayEvents *listener) +dsError_t Host::UnRegister(IDisplayEvents* listener) { return impl().UnRegister(listener); } -dsError_t Host::Register(IVideoDeviceEvents* listener) +dsError_t Host::Register(IVideoDeviceEvents* listener, const std::string& clientName) { - return impl().Register(listener); + return impl().Register(listener, clientName); } dsError_t Host::UnRegister(IVideoDeviceEvents* listener) @@ -961,9 +992,9 @@ dsError_t Host::UnRegister(IVideoDeviceEvents* listener) return impl().UnRegister(listener); } -dsError_t Host::Register(IVideoOutputPortEvents* listener) +dsError_t Host::Register(IVideoOutputPortEvents* listener, const std::string& clientName) { - return impl().Register(listener); + return impl().Register(listener, clientName); } dsError_t Host::UnRegister(IVideoOutputPortEvents* listener) @@ -971,9 +1002,9 @@ dsError_t Host::UnRegister(IVideoOutputPortEvents* listener) return impl().UnRegister(listener); } -dsError_t Host::Register(IAudioOutputPortEvents* listener) +dsError_t Host::Register(IAudioOutputPortEvents* listener, const std::string& clientName) { - return impl().Register(listener); + return impl().Register(listener, clientName); } dsError_t Host::UnRegister(IAudioOutputPortEvents* listener) @@ -981,11 +1012,13 @@ dsError_t Host::UnRegister(IAudioOutputPortEvents* listener) return impl().UnRegister(listener); } -dsError_t Host::Register(IDisplayDeviceEvents* listener) { - return impl().Register(listener); +dsError_t Host::Register(IDisplayDeviceEvents* listener, const std::string& clientName) +{ + return impl().Register(listener, clientName); } -dsError_t Host::UnRegister(IDisplayDeviceEvents* listener) { +dsError_t Host::UnRegister(IDisplayDeviceEvents* listener) +{ return impl().UnRegister(listener); } diff --git a/ds/include/frontPanelTextDisplay.hpp b/ds/include/frontPanelTextDisplay.hpp index e3a28be3..588a3352 100644 --- a/ds/include/frontPanelTextDisplay.hpp +++ b/ds/include/frontPanelTextDisplay.hpp @@ -142,7 +142,7 @@ class FrontPanelTextDisplay : public FrontPanelIndicator { int getTextColorMode(); void setTextBrightness(const int &brightness); void enableDisplay(const int enable); - void SetLEDStatus(const dsFPDIndicator_t fpdIndicator, const dsFPDState_t fpdState); + /** * @fn Scroll getScroll() const diff --git a/ds/include/host.hpp b/ds/include/host.hpp index 2aaaaa8c..02adbfa8 100644 --- a/ds/include/host.hpp +++ b/ds/include/host.hpp @@ -24,6 +24,72 @@ * @{ **/ +/** + * This file provides all the devicesettings notifications for the usage of the various plugin clients. + * The notifications are classified in to various blocks. + * + * The Clients have to register for the respective required blocks like IHdmiInEvents, ICompositeInEvents, + * IVideoOutputPortEvents, IVideoDeviceEvents etc through the Register API Call. + * The Clients have to unregister for the respective required blocks like IHdmiInEvents, + * ICompositeInEvents, IVideoOutputPortEvents, IVideoDeviceEvents etc through the UnRegister API Call + * when the activity is completed. + * + * The clients need to implement the required notification handler functions for the respective blocks + * which they have registered. If clients don't need to handle some notifications in a block, they + * need not implement those functions. + * + * Example: A client can choose to register for IHdmiInEvents block of events and implement only + * required notification function OnHdmiInEventHotPlug and can ignore other functions in the same event + * block like OnHdmiInEventSignalStatus. + * + * The Client will receive the event notification for which it has registered and implemented the notification. + * This will happen when the respective action has taken place in the device. + * + * IHdmiInEvents + * OnHdmiInEventHotPlug : Will notify the HDMI Hot Plug IN/OUT Event + * OnHdmiInEventSignalStatus : Will notify the HDMI Signal Status + * OnHdmiInEventStatus : Will notify the port specific HDMI status + * OnHdmiInVideoModeUpdate : Will notify the HDMI video resolution changes + * OnHdmiInAllmStatus : Will notify the HDMI Auto Low Latency Mode + * OnHdmiInAVIContentType : Will notify the HDMI AVI info like Gaming, Cinema, Photo etc + * OnHdmiInVRRStatus : Will notify the HDMI VRR info(Variable Refresh Rate) + * OnHdmiInAVLatency : Will notify about the HDMI AV Latency info. + * + * ICompositeInEvents + * OnCompositeInHotPlug : Will notify about the Hotplug in Composite Mode. + * OnCompositeInSignalStatus : Will notify about the Signal Status in Composite Mode. + * OnCompositeInStatus : Will notify about the Composite Status in Composite Mode. + * OnCompositeInVideoModeUpdate : Will notify about the Update in video Mode in Composite Mode. + * + * IDisplayEvents + * OnDisplayRxSense : Will notify about the RX Sense + * + * IVideoDeviceEvents + * OnDisplayFrameratePreChange : Will notify about the Frame Rate Before Change. + * OnDisplayFrameratePostChange : Will notify about the Frame rate After change. + * OnZoomSettingsChanged : Will notify about the zoom settings changed + * + * IVideoOutputPortEvents + * OnResolutionPreChange : Will notify about the Resolution Pre Change + * OnHDCPStatusChange : Will notify about the HDCP status Change + * OnVideoFormatUpdate : Will notify about the Video Format Change. + * + * IAudioOutputPortEvents + * OnAssociatedAudioMixingChanged : Will notify about the Audio Mixer Change. + * OnAudioFaderControlChanged : Will notify about the Fader Control Change. + * OnAudioPrimaryLanguageChanged : Will notify about the Primary Language Change. + * OnAudioSecondaryLanguageChanged : Will notify about the Secondary Language Change. + * OnAudioOutHotPlug : Will notify about the Audio Out Hot Plug Change. + * OnDolbyAtmosCapabilitiesChanged : Will notify about the ATMOS capability Change. + * OnAudioPortStateChanged : Will notify about the Audio Port State Change. + * OnAudioModeEvent : Will notify about the Audio Mode Event Change. + * OnAudioLevelChangedEvent : Will notify about the Audio Level Change. + * OnAudioFormatUpdate : Will notify about the Audio Format Change. + * + * IDisplayDeviceEvents + * OnDisplayHDMIHotPlug : Will notify about the HDMI Hot Plug Change + **/ + #ifndef _DS_HOST_HPP_ #define _DS_HOST_HPP_ #include @@ -38,6 +104,25 @@ #include "videoDevice.hpp" #include "videoOutputPort.hpp" +// dsMgr.h cannot be exposed to clients as we plan to deprecate it +// this is only temporary until dsAudioPortState_t is moved to ds halif headers +#ifndef HAVE_DSAUDIOPORT_STATE_TYPE +#define HAVE_DSAUDIOPORT_STATE_TYPE +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum _dsAudioPortState { + dsAUDIOPORT_STATE_UNINITIALIZED, + dsAUDIOPORT_STATE_INITIALIZED, + dsAUDIOPORT_STATE_MAX +} dsAudioPortState_t; + +#ifdef __cplusplus +} +#endif +#endif // HAVE_DSAUDIOPORT_STATE_TYPE + /** * @file host.hpp * @brief It contains class, structures referenced by host.cpp file. @@ -47,9 +132,9 @@ using namespace std; namespace device { // Forward declaration of the implementation class -class IarmHostImpl; +class IarmImpl; // In future add a conditional to choose implementation class based on build configuration -using DefaultImpl = IarmHostImpl; +using DefaultImpl = IarmImpl; /** * @class Host @@ -62,59 +147,64 @@ class Host { static const int kPowerOff; static const int kPowerStandby; - struct IHDMIInEvents { - // @brief HDMI Event Hot Plug - // @param port: port 0 or 1 et al - // @param isConnected: is it connected (true) or not (false) - virtual void OnHDMIInEventHotPlug(dsHdmiInPort_t port, bool isConnected) { }; - - // @brief HDMI Event Signal status - // @param port: port 0 or 1 et al - // @param signalStatus: Signal Status - virtual void OnHDMIInEventSignalStatus(dsHdmiInPort_t port, dsHdmiInSignalStatus_t signalStatus) { }; - - // @brief HDMI Event Signal status - // @param activePort: port 0 or 1 et al - // @param isPresented: is it presented or not - virtual void OnHDMIInEventStatus(dsHdmiInPort_t activePort, bool isPresented) { }; - - // @brief HDMI Video Mode update - // @param port: port 0 or 1 et al - // @param videoPortResolution: Video port resolution - virtual void OnHDMIInVideoModeUpdate(dsHdmiInPort_t port, const dsVideoPortResolution_t& videoPortResolution) { }; - - // @brief HDMI ALLM (Auto Low Latency Mode) status - // @param port: port 0 or 1 et al - // @param allmStatus: allm status - virtual void OnHDMIInAllmStatus(dsHdmiInPort_t port, bool allmStatus) { }; - - // @brief HDMI Event AVI content type - // @param port: port 0 or 1 et al - // @param aviContentType: AVI content type - virtual void OnHDMIInAVIContentType(dsHdmiInPort_t port, dsAviContentType_t aviContentType) { }; - - // @brief HDMI VRR status - // @param port: port 0 or 1 et al - // @param vrrType: VRR type - virtual void OnHDMIInVRRStatus(dsHdmiInPort_t port, dsVRRType_t vrrType) { }; - - // @brief HDMI Event AV Latency - // @param audioDelay: audio delay (in millisecs) - // @param videoDelay: video delay (in millisecs) - virtual void OnHDMIInAVLatency(int audioDelay, int videoDelay) { }; - + struct IHdmiInEvents { + virtual ~IHdmiInEvents() = default; + + // @brief HDMI Event Hot Plug + // @param port: port 0 or 1 et al + // @param isConnected: is it connected (true) or not (false) + virtual void OnHdmiInEventHotPlug(dsHdmiInPort_t port, bool isConnected); + + // @brief HDMI Event Signal status + // @param port: port 0 or 1 et al + // @param signalStatus: Signal Status + virtual void OnHdmiInEventSignalStatus(dsHdmiInPort_t port, dsHdmiInSignalStatus_t signalStatus); + + // @brief HDMI Event Signal status + // @param activePort: port 0 or 1 et al + // @param isPresented: is it presented or not + virtual void OnHdmiInEventStatus(dsHdmiInPort_t activePort, bool isPresented); + + // @brief HDMI Video Mode update + // @param port: port 0 or 1 et al + // @param videoPortResolution: Video port resolution + virtual void OnHdmiInVideoModeUpdate(dsHdmiInPort_t port, const dsVideoPortResolution_t& videoPortResolution); + + // @brief HDMI ALLM (Auto Low Latency Mode) status + // @param port: port 0 or 1 et al + // @param allmStatus: allm status + virtual void OnHdmiInAllmStatus(dsHdmiInPort_t port, bool allmStatus); + + // @brief HDMI Event AVI content type + // @param port: port 0 or 1 et al + // @param aviContentType: AVI content type + virtual void OnHdmiInAVIContentType(dsHdmiInPort_t port, dsAviContentType_t aviContentType); + + // @brief HDMI VRR status + // @param port: port 0 or 1 et al + // @param vrrType: VRR type + virtual void OnHdmiInVRRStatus(dsHdmiInPort_t port, dsVRRType_t vrrType); + + // @brief HDMI Event AV Latency + // @param audioDelay: audio delay (in millisecs) + // @param videoDelay: video delay (in millisecs) + virtual void OnHdmiInAVLatency(int audioDelay, int videoDelay); }; // @brief Register a listener for HDMI device events // @param listener: class object implementing the listener - dsError_t Register(IHDMIInEvents *listener); + // @param clientName: Optional (but highly recommended) name of the client registering for events + // clientName is used for logging purposes only + // @return dsERR_NONE on success, appropriate dsError_t on failure + dsError_t Register(IHdmiInEvents* listener, const std::string& clientName = ""); // @brief UnRegister a listener for HDMI device events // @param listener: class object implementing the listener - dsError_t UnRegister(IHDMIInEvents *listener); + dsError_t UnRegister(IHdmiInEvents* listener); struct ICompositeInEvents { virtual ~ICompositeInEvents() = default; + // @brief Composite In Hotplug event // @param port: Port of the hotplug // @param isConnected: Is it connected (true) or not(false) @@ -138,11 +228,15 @@ class Host { // @brief Register a listener for composite events // @param listener: class object implementing the listener - dsError_t Register(ICompositeInEvents *listener); - + // @param clientName: Optional (but highly recommended) name of the client registering for events + // clientName is used for logging purposes only + // @return dsERR_NONE on success, appropriate dsError_t on failure + dsError_t Register(ICompositeInEvents* listener, const std::string& clientName = ""); + // @brief UnRegister a listener for composite events // @param listener: class object implementing the listener - dsError_t UnRegister(ICompositeInEvents *listener); + // @return dsERR_NONE on success, appropriate dsError_t on failure + dsError_t UnRegister(ICompositeInEvents* listener); struct IDisplayEvents { virtual ~IDisplayEvents() = default; @@ -150,19 +244,19 @@ class Host { // @brief Display RX Sense event // @param displayEvent: DS_DISPLAY_RXSENSE_ON or DS_DISPLAY_RXSENSE_OFF virtual void OnDisplayRxSense(dsDisplayEvent_t displayEvent); - - // @brief Display HDCP Status - virtual void OnDisplayHDCPStatus(); }; - + // @brief Register a listener for display events // @param listener: class object implementing the listener - dsError_t Register(IDisplayEvents *listener); - + // @param clientName: Optional (but highly recommended) name of the client registering for events + // clientName is used for logging purposes only + // @return dsERR_NONE on success, appropriate dsError_t on failure + dsError_t Register(IDisplayEvents* listener, const std::string& clientName = ""); + // @brief UnRegister a listener for display events // @param listener: class object implementing the listener - dsError_t UnRegister(IDisplayEvents *listener); - + // @return dsERR_NONE on success, appropriate dsError_t on failure + dsError_t UnRegister(IDisplayEvents* listener); struct IVideoDeviceEvents { virtual ~IVideoDeviceEvents() = default; @@ -182,10 +276,14 @@ class Host { // @brief Register a listener for video device events // @param listener: class object implementing the listener - dsError_t Register(IVideoDeviceEvents* listener); + // @param clientName: Optional (but highly recommended) name of the client registering for events + // clientName is used for logging purposes only + // @return dsERR_NONE on success, appropriate dsError_t on failure + dsError_t Register(IVideoDeviceEvents* listener, const std::string& clientName = ""); // @brief UnRegister a listener for video device events // @param listener: class object implementing the listener + // @return dsERR_NONE on success, appropriate dsError_t on failure dsError_t UnRegister(IVideoDeviceEvents* listener); struct IVideoOutputPortEvents { @@ -212,10 +310,14 @@ class Host { // @brief Register a listener for video port events // @param listener: class object implementing the listener - dsError_t Register(IVideoOutputPortEvents* listener); + // @param clientName: Optional (but highly recommended) name of the client registering for events + // clientName is used for logging purposes only + // @return dsERR_NONE on success, appropriate dsError_t on failure + dsError_t Register(IVideoOutputPortEvents* listener, const std::string& clientName = ""); // @brief UnRegister a listener for video port events // @param listener: class object implementing the listener + // @return dsERR_NONE on success, appropriate dsError_t on failure dsError_t UnRegister(IVideoOutputPortEvents* listener); struct IAudioOutputPortEvents { @@ -250,8 +352,7 @@ class Host { // @brief Audio port state changed // @param audioPortState: audio port state - // TODO: requires dsMgr.h header include ?? - // virtual void OnAudioPortStateChanged(dsAudioPortState_t audioPortState); + virtual void OnAudioPortStateChanged(dsAudioPortState_t audioPortState); // @brief Audio mode for the respective audio port - raised for every type of port // @param audioPortType: audio port type see dsAudioPortType_t @@ -269,10 +370,14 @@ class Host { // @brief Register a listener for audio port events // @param listener: class object implementing the listener - dsError_t Register(IAudioOutputPortEvents* listener); + // @param clientName: Optional (but highly recommended) name of the client registering for events + // clientName is used for logging purposes only + // @return dsERR_NONE on success, appropriate dsError_t on failure + dsError_t Register(IAudioOutputPortEvents* listener, const std::string& clientName = ""); // @brief UnRegister a listener for audio port events // @param listener: class object implementing the listener + // @return dsERR_NONE on success, appropriate dsError_t on failure dsError_t UnRegister(IAudioOutputPortEvents* listener); struct IDisplayDeviceEvents { @@ -285,10 +390,14 @@ class Host { // @brief Register a listener for display device events // @param listener: class object implementing the listener - dsError_t Register(IDisplayDeviceEvents* listener); + // @param clientName: Optional (but highly recommended) name of the client registering for events + // clientName is used for logging purposes only + // @return dsERR_NONE on success, appropriate dsError_t on failure + dsError_t Register(IDisplayDeviceEvents* listener, const std::string& clientName = ""); // @brief UnRegister a listener for display device events // @param listener: class object implementing the listener + // @return dsERR_NONE on success, appropriate dsError_t on failure dsError_t UnRegister(IDisplayDeviceEvents* listener); bool setPowerMode(int mode); @@ -327,10 +436,10 @@ class Host { void getCurrentAudioFormat(dsAudioFormat_t& audioFormat); void getMS12ConfigDetails(std::string& configType); void setAudioMixerLevels(dsAudioInput_t aInput, int volume); - void SetRebootConfig(dsMgrRebootConfigParam_t param); private: std::unique_ptr m_impl; + Host(); virtual ~Host(); // Avoid copies diff --git a/ds/videoOutputPort.cpp b/ds/videoOutputPort.cpp index 3ab30784..bedc90c2 100644 --- a/ds/videoOutputPort.cpp +++ b/ds/videoOutputPort.cpp @@ -931,16 +931,6 @@ bool VideoOutputPort::GetStandbyVideoState(const string port, bool isEnabled) } -bool VideoOutputPort::SetAvPortState(const uint8_t powerState) -{ - dsError_t ret = dsSetAvPortState(powerState); - if (ret != dsERR_NONE) { - return false; - } - return true; - -} - /** * @fn void setAllmEnabled(bool enable); * @brief Enables/Disables ALLM mode for connected HDMI display. diff --git a/rpc/cli/dsFPD.c b/rpc/cli/dsFPD.c index 7e9e761a..6724cdb6 100644 --- a/rpc/cli/dsFPD.c +++ b/rpc/cli/dsFPD.c @@ -449,27 +449,8 @@ dsError_t dsSetFPState (dsFPDIndicator_t eIndicator, dsFPDState_t state) return dsERR_GENERAL ; } -dsError_t dsSetLEDStatus(dsFPDIndicator_t eIndicator, dsFPDState_t state) -{ - _DEBUG_ENTER(); - dsFPDStateParam_t param ; - - param.eIndicator = eIndicator; - param.state = state; - IARM_Result_t rpcRet = IARM_RESULT_SUCCESS; - - rpcRet = IARM_Bus_Call(IARM_BUS_DSMGR_NAME, - (char *)IARM_BUS_DSMGR_API_dsSetLEDStatus, - (void *)¶m, - sizeof(param)); - if (IARM_RESULT_SUCCESS == rpcRet) - { - return dsERR_NONE; - } - return dsERR_GENERAL ; -} dsError_t dsGetFPTimeFormat (dsFPDTimeFormat_t *pTimeFormat) { diff --git a/rpc/cli/dsHost.cpp b/rpc/cli/dsHost.cpp index 7b45ef1f..799f4698 100644 --- a/rpc/cli/dsHost.cpp +++ b/rpc/cli/dsHost.cpp @@ -225,31 +225,6 @@ dsError_t dsGetMS12ConfigType(const char *ms12ConfigType) return ret; } -dsError_t dsSetRebootConfig(string rebootReasonCustom, uint8_t powerState) -{ - dsError_t ret = dsERR_GENERAL; - _DEBUG_ENTER(); - - if (!rebootReasonCustom.empty()) - { - dsMgrRebootConfigParam_t param; - param.powerState = powerState; - param.reboot_reason_custom = rebootReasonCustom; - param.result = 0; - - IARM_Result_t rpcRet = IARM_RESULT_SUCCESS; - rpcRet = IARM_Bus_Call(IARM_BUS_DSMGR_NAME, - (char *)IARM_BUS_DSMGR_API_dsSetRebootConfig, - (void *)¶m, - sizeof(param)); - if (IARM_RESULT_SUCCESS == rpcRet) - { - ret = dsERR_NONE; - } - } - return ret; -} - /** @} */ /** @} */ diff --git a/rpc/cli/dsVideoPort.c b/rpc/cli/dsVideoPort.c index 517c8f15..36c81280 100644 --- a/rpc/cli/dsVideoPort.c +++ b/rpc/cli/dsVideoPort.c @@ -1014,29 +1014,5 @@ dsError_t dsGetStandbyVideoState(string port , bool enable) return dsErr ; } - -dsError_t dsSetAvPortState(const int powerState) -{ - dsError_t dsErr = dsERR_GENERAL; - dsMgrAVPortStateParam_t param; - - _DEBUG_ENTER(); - - param.avPortPowerState = powerState; - param.result = 0; - - IARM_Result_t rpcRet = IARM_Bus_Call(IARM_BUS_DSMGR_NAME, - (char *)IARM_BUS_DSMGR_API_dsSetAvPortState, - (void *)¶m, - sizeof(param)); - - if (IARM_RESULT_SUCCESS == rpcRet) - { - dsErr = dsERR_NONE; - } - - return dsErr ; -} - /** @} */ /** @} */ diff --git a/rpc/include/dsRpc.h b/rpc/include/dsRpc.h index 9b932eb1..f7b7f14e 100644 --- a/rpc/include/dsRpc.h +++ b/rpc/include/dsRpc.h @@ -197,9 +197,6 @@ extern "C" { #define IARM_BUS_DSMGR_API_dsSetAllmEnabled "dsSetAllmEnabled" #define IARM_BUS_DSMGR_API_dsSetStandbyVideoState "dsSetStandbyVideoState" #define IARM_BUS_DSMGR_API_dsGetStandbyVideoState "dsGetStandbyVideoState" -#define IARM_BUS_DSMGR_API_dsSetAvPortState "dsSetAvPortState" -#define IARM_BUS_DSMGR_API_dsSetLEDStatus "dsSetLEDStatus" -#define IARM_BUS_DSMGR_API_dsSetRebootConfig "dsSetRebootConfig" /* * Declare RPC FP API names diff --git a/rpc/srv/dsFPD.c b/rpc/srv/dsFPD.c index 529b3592..b2c592c5 100644 --- a/rpc/srv/dsFPD.c +++ b/rpc/srv/dsFPD.c @@ -73,8 +73,7 @@ IARM_Result_t _dsSetFPScroll(void *arg); IARM_Result_t _dsSetFPBlink(void *arg); IARM_Result_t _dsGetFPBrightness(void *arg); IARM_Result_t _dsSetFPBrightness(void *arg); -IARM_Result_t _dsSetLEDStatus(void *arg); -IARM_Result_t _dsSetLEDState(void *arg); +IARM_Result_t _dsSetFPState(void *arg); IARM_Result_t _dsGetFPState(void *arg); IARM_Result_t _dsSetFPColor(void *arg); IARM_Result_t _dsGetFPColor(void *arg); @@ -255,7 +254,6 @@ IARM_Result_t _dsFPInit(void *arg) IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsSetFPBlink,_dsSetFPBlink); IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsGetFPBrightness,_dsGetFPBrightness); IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsSetFPState,_dsSetFPState); - IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsSetLEDStatus,_dsSetLEDStatus); IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsGetFPState,_dsGetFPState); IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsSetFPBrightness,_dsSetFPBrightness); IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsSetFPColor,_dsSetFPColor); @@ -691,11 +689,7 @@ IARM_Result_t _dsSetFPState(void *arg) return ret; } -IARM_Result_t _dsSetLEDStatus(void *arg) -{ - IARM_Result_t ret = IARM_RESULT_SUCCESS; - return ret; -} + IARM_Result_t _dsGetTimeFormat(void *arg) diff --git a/rpc/srv/dsHost.cpp b/rpc/srv/dsHost.cpp index 70889986..3215b94e 100644 --- a/rpc/srv/dsHost.cpp +++ b/rpc/srv/dsHost.cpp @@ -65,7 +65,6 @@ IARM_Result_t _dsGetVersion(void *arg); IARM_Result_t _dsGetSocIDFromSDK(void *arg); IARM_Result_t _dsGetHostEDID(void *arg); IARM_Result_t _dsGetMS12ConfigType(void *arg); -IARM_Result_t _dsSetRebootConfig(void *arg); static dsSleepMode_t _SleepMode = dsHOST_SLEEP_MODE_LIGHT; @@ -101,10 +100,10 @@ IARM_Result_t dsHostMgr_init() IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsGetCPUTemperature,_dsGetCPUTemperature); IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsGetVersion,_dsGetVersion); IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsGetSocIDFromSDK,_dsGetSocIDFromSDK); - IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsGetHostEDID,_dsGetHostEDID); - IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsGetMS12ConfigType,_dsGetMS12ConfigType); - IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsSetRebootConfig,_dsSetRebootConfig); + IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsGetHostEDID,_dsGetHostEDID); + IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsGetMS12ConfigType,_dsGetMS12ConfigType); + uint32_t halVersion = 0x10000; halVersion = dsHAL_APIVER(DSHAL_API_VERSION_MAJOR_DEFAULT, DSHAL_API_VERSION_MINOR_DEFAULT); INT_INFO("DS HAL Version is - %d.%d \r\n",dsHAL_APIVER_MAJOR(halVersion),dsHAL_APIVER_MINOR(halVersion)); @@ -268,13 +267,6 @@ IARM_Result_t _dsGetMS12ConfigType(void *arg) } return ret; } - -IARM_Result_t _dsSetRebootConfig(void *arg) -{ - IARM_Result_t ret = IARM_RESULT_SUCCESS; - return ret; -} - IARM_Result_t _dsGetSocIDFromSDK(void *arg) { dsGetSocIDFromSDKParam_t *param = (dsGetSocIDFromSDKParam_t*) arg; diff --git a/rpc/srv/dsVideoPort.c b/rpc/srv/dsVideoPort.c index 91f99900..7f580109 100644 --- a/rpc/srv/dsVideoPort.c +++ b/rpc/srv/dsVideoPort.c @@ -319,7 +319,6 @@ IARM_Result_t _dsVideoPortInit(void *arg) IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsSetPreferredColorDepth,_dsSetPreferredColorDepth); IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsSetStandbyVideoState,_dsSetStandbyVideoState); IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsGetStandbyVideoState,_dsGetStandbyVideoState); - IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsSetAvPortState,_dsSetAvPortState); dsError_t eRet = _dsVideoFormatUpdateRegisterCB (_dsVideoFormatUpdateCB) ; if (dsERR_NONE != eRet) { @@ -1200,28 +1199,92 @@ IARM_Result_t _dsSetPreferredColorDepth(void *arg) IARM_Result_t _dsSetStandbyVideoState(void *arg) { - _DEBUG_ENTER(); - - IARM_Result_t ret = IARM_RESULT_SUCCESS; - return ret; - - -} + dsMgrStandbyVideoStateParam_t *param = (dsMgrStandbyVideoStateParam_t *)arg; + if(NULL == param->port) + { + param->result = -1; + INT_DEBUG("[%s] empty port name. Cannot proceed.\n", __FUNCTION__); + return IARM_RESULT_SUCCESS; + } + else + param->result = 0; -IARM_Result_t _dsSetPreferredColorDepth(void *arg) -{ - _DEBUG_ENTER(); + int i = 0; + for(i = 0; i < MAX_NUM_VIDEO_PORTS; i++) + { + if(0 == strncasecmp(param->port, g_standby_video_port_setting[i].port, DSMGR_MAX_VIDEO_PORT_NAME_LENGTH)) + { + /*Found a match. Update it*/ + g_standby_video_port_setting[i].isEnabled = ((0 == param->isEnabled) ? false : true); + break; + } + } + if(MAX_NUM_VIDEO_PORTS == i) + { + /*No matching entries are present. Add one.*/ + for(i = 0; i < MAX_NUM_VIDEO_PORTS; i++) + { + if('\0' == g_standby_video_port_setting[i].port[0]) + { + strncpy(g_standby_video_port_setting[i].port, param->port, (DSMGR_MAX_VIDEO_PORT_NAME_LENGTH - 1)); + g_standby_video_port_setting[i].isEnabled = ((0 == param->isEnabled) ? false : true); + break; + } + } + } + if(MAX_NUM_VIDEO_PORTS == i) + { + INT_DEBUG("[%s] Error! Out of room to write new video port setting for standby mode.\n", __FUNCTION__); + } - IARM_Result_t ret = IARM_RESULT_SUCCESS; - return ret; + try + { + device::VideoOutputPort &vPort = device::Host::getInstance().getVideoOutputPort(param->port); + if((POWER_STATE_ON != curState) && (POWER_STATE_OFF != curState)) + { + /*We're currently in one of the standby states. This new setting needs to be applied right away.*/ + INT_DEBUG("[%s] Setting standby %s port status to %s.\n", __FUNCTION__, param->port, ((1 == param->isEnabled)? "enabled" : "disabled")); + if(1 == param->isEnabled) + vPort.enable(); + else + vPort.disable(); + } + else + { + INT_DEBUG("[%s] video port %s will be %s when going into standby mode.\n", __FUNCTION__, param->port, ((1 == param->isEnabled)? "enabled" : "disabled")); + } + } + catch (...) + { + INT_DEBUG("Exception Caught during [%s]. Possible bad video port.\n", __FUNCTION__); + param->result = -1; + } + return IARM_RESULT_SUCCESS; } -IARM_Result_t _dsSetAvPortState(void *arg) +IARM_Result_t _dsGetStandbyVideoState(void *arg) { - _DEBUG_ENTER(); + INT_INFO("Entering [%s]\r\n", __FUNCTION__); + dsMgrStandbyVideoStateParam_t *param = (dsMgrStandbyVideoStateParam_t *)arg; + if(NULL == param->port) + { + INT_DEBUG("[%s]Bad port name. Cannot get state.\n", __FUNCTION__); + return IARM_RESULT_SUCCESS; + } - IARM_Result_t ret = IARM_RESULT_SUCCESS; - return ret; + try + { + device::VideoOutputPort &vPort = device::Host::getInstance().getVideoOutputPort(param->port); + } + catch (...) + { + INT_DEBUG("Exception Caught during [%s]. Possible bad video port.\n", __FUNCTION__); + param->result = -1; + return IARM_RESULT_SUCCESS; + } + param->isEnabled = ((true == get_video_port_standby_setting(param->port))? 1 : 0); + param->result = 0; + return IARM_RESULT_SUCCESS; } dsError_t handleDsColorDepthCapabilities(intptr_t handle, unsigned int *colorDepthCapability ) From 395a94141ec8f2deb5bed4259584f0b6631a7ba2 Mon Sep 17 00:00:00 2001 From: Dosakayala Nagalakshmi Date: Tue, 9 Sep 2025 11:54:15 +0530 Subject: [PATCH 03/14] removed unwanted apis... --- rpc/srv/dsVideoPort.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/rpc/srv/dsVideoPort.c b/rpc/srv/dsVideoPort.c index 7f580109..022ac0f8 100644 --- a/rpc/srv/dsVideoPort.c +++ b/rpc/srv/dsVideoPort.c @@ -61,9 +61,14 @@ #define DEFAULT_RESOLUTION "720p" #define DEFAULT_RESOLUTION_1080P "1080p" #define DEFAULT_RESOLUTION_2160P "2160p" - +#define MAX_NUM_VIDEO_PORTS 5 #define DEFAULT_SD_RESOLUTION "480i" +typedef struct{ + char port[DSMGR_MAX_VIDEO_PORT_NAME_LENGTH]; + bool isEnabled; +}DSMgr_Standby_Video_State_t; + static int m_isInitialized = 0; static int m_isPlatInitialized = 0; static pthread_mutex_t dsLock = PTHREAD_MUTEX_INITIALIZER; @@ -75,6 +80,8 @@ static dsHdcpStatus_t _hdcpStatus = dsHDCP_STATUS_UNAUTHENTICATED; static bool force_disable_4K = false; static const dsDisplayColorDepth_t DEFAULT_COLOR_DEPTH = dsDISPLAY_COLORDEPTH_AUTO; static dsDisplayColorDepth_t hdmiColorDept = DEFAULT_COLOR_DEPTH; +static DSMgr_Standby_Video_State_t g_standby_video_port_setting[MAX_NUM_VIDEO_PORTS]; + #define NULL_HANDLE 0 #define IARM_BUS_Lock(lock) pthread_mutex_lock(&dsLock) #define IARM_BUS_Unlock(lock) pthread_mutex_unlock(&dsLock) From 0a3aff7f8e5ad5555d147fc63275a0e24f67827f Mon Sep 17 00:00:00 2001 From: Dosakaya <110212899+Dosakaya@users.noreply.github.com> Date: Tue, 9 Sep 2025 12:01:59 +0530 Subject: [PATCH 04/14] Update videoOutputPort.hpp --- ds/include/videoOutputPort.hpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/ds/include/videoOutputPort.hpp b/ds/include/videoOutputPort.hpp index 95939cb0..a705cdcd 100644 --- a/ds/include/videoOutputPort.hpp +++ b/ds/include/videoOutputPort.hpp @@ -290,9 +290,6 @@ class VideoOutputPort : public Enumerable { // static IARM_Result_t _GetStandbyVideoState(void *arg) void GetStandbyVideoState(); -// static IARM_Result_t _SetAvPortState(void *arg) - void SetAvPortState(); - private: Display _display; From 5d713e9a20322a58c215ed1ec4cde1e63c8a09af Mon Sep 17 00:00:00 2001 From: Dosakayala Nagalakshmi Date: Tue, 9 Sep 2025 12:19:11 +0530 Subject: [PATCH 05/14] removed src code --- ds/include/videoOutputPort.hpp | 3 ++ rpc/cli/dsVideoPort.c | 4 +- rpc/include/dsRpc.h | 2 - rpc/srv/dsVideoPort.c | 99 ---------------------------------- 4 files changed, 5 insertions(+), 103 deletions(-) diff --git a/ds/include/videoOutputPort.hpp b/ds/include/videoOutputPort.hpp index a705cdcd..95939cb0 100644 --- a/ds/include/videoOutputPort.hpp +++ b/ds/include/videoOutputPort.hpp @@ -290,6 +290,9 @@ class VideoOutputPort : public Enumerable { // static IARM_Result_t _GetStandbyVideoState(void *arg) void GetStandbyVideoState(); +// static IARM_Result_t _SetAvPortState(void *arg) + void SetAvPortState(); + private: Display _display; diff --git a/rpc/cli/dsVideoPort.c b/rpc/cli/dsVideoPort.c index 36c81280..7322ae88 100644 --- a/rpc/cli/dsVideoPort.c +++ b/rpc/cli/dsVideoPort.c @@ -978,7 +978,7 @@ dsError_t dsSetStandbyVideoState(string port , const bool enable) param.result = 0; IARM_Result_t rpcRet = IARM_Bus_Call(IARM_BUS_DSMGR_NAME, - (char *)IARM_BUS_DSMGR_API_dsSetStandbyVideoState, + (char *)IARM_BUS_DSMGR_API_SetStandbyVideoState, (void *)¶m, sizeof(param)); if (IARM_RESULT_SUCCESS == rpcRet) @@ -1001,7 +1001,7 @@ dsError_t dsGetStandbyVideoState(string port , bool enable) param.result = 0; IARM_Result_t rpcRet = IARM_Bus_Call(IARM_BUS_DSMGR_NAME, - (char *)IARM_BUS_DSMGR_API_dsGetStandbyVideoState, + (char *)IARM_BUS_DSMGR_API_GetStandbyVideoState, (void *)¶m, sizeof(param)); diff --git a/rpc/include/dsRpc.h b/rpc/include/dsRpc.h index f7b7f14e..3317c9e4 100644 --- a/rpc/include/dsRpc.h +++ b/rpc/include/dsRpc.h @@ -195,8 +195,6 @@ extern "C" { #define IARM_BUS_DSMGR_API_dsSetBackgroundColor "dsSetBackgroundColor" #define IARM_BUS_DSMGR_API_dsSetForceHDRMode "dsSetForceHDRMode" #define IARM_BUS_DSMGR_API_dsSetAllmEnabled "dsSetAllmEnabled" -#define IARM_BUS_DSMGR_API_dsSetStandbyVideoState "dsSetStandbyVideoState" -#define IARM_BUS_DSMGR_API_dsGetStandbyVideoState "dsGetStandbyVideoState" /* * Declare RPC FP API names diff --git a/rpc/srv/dsVideoPort.c b/rpc/srv/dsVideoPort.c index 022ac0f8..b2c3602e 100644 --- a/rpc/srv/dsVideoPort.c +++ b/rpc/srv/dsVideoPort.c @@ -61,14 +61,8 @@ #define DEFAULT_RESOLUTION "720p" #define DEFAULT_RESOLUTION_1080P "1080p" #define DEFAULT_RESOLUTION_2160P "2160p" -#define MAX_NUM_VIDEO_PORTS 5 #define DEFAULT_SD_RESOLUTION "480i" -typedef struct{ - char port[DSMGR_MAX_VIDEO_PORT_NAME_LENGTH]; - bool isEnabled; -}DSMgr_Standby_Video_State_t; - static int m_isInitialized = 0; static int m_isPlatInitialized = 0; static pthread_mutex_t dsLock = PTHREAD_MUTEX_INITIALIZER; @@ -80,7 +74,6 @@ static dsHdcpStatus_t _hdcpStatus = dsHDCP_STATUS_UNAUTHENTICATED; static bool force_disable_4K = false; static const dsDisplayColorDepth_t DEFAULT_COLOR_DEPTH = dsDISPLAY_COLORDEPTH_AUTO; static dsDisplayColorDepth_t hdmiColorDept = DEFAULT_COLOR_DEPTH; -static DSMgr_Standby_Video_State_t g_standby_video_port_setting[MAX_NUM_VIDEO_PORTS]; #define NULL_HANDLE 0 #define IARM_BUS_Lock(lock) pthread_mutex_lock(&dsLock) @@ -324,8 +317,6 @@ IARM_Result_t _dsVideoPortInit(void *arg) IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsColorDepthCapabilities,_dsColorDepthCapabilities); IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsGetPreferredColorDepth,_dsGetPreferredColorDepth); IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsSetPreferredColorDepth,_dsSetPreferredColorDepth); - IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsSetStandbyVideoState,_dsSetStandbyVideoState); - IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsGetStandbyVideoState,_dsGetStandbyVideoState); dsError_t eRet = _dsVideoFormatUpdateRegisterCB (_dsVideoFormatUpdateCB) ; if (dsERR_NONE != eRet) { @@ -1204,96 +1195,6 @@ IARM_Result_t _dsSetPreferredColorDepth(void *arg) } -IARM_Result_t _dsSetStandbyVideoState(void *arg) -{ - dsMgrStandbyVideoStateParam_t *param = (dsMgrStandbyVideoStateParam_t *)arg; - if(NULL == param->port) - { - param->result = -1; - INT_DEBUG("[%s] empty port name. Cannot proceed.\n", __FUNCTION__); - return IARM_RESULT_SUCCESS; - } - else - param->result = 0; - - int i = 0; - for(i = 0; i < MAX_NUM_VIDEO_PORTS; i++) - { - if(0 == strncasecmp(param->port, g_standby_video_port_setting[i].port, DSMGR_MAX_VIDEO_PORT_NAME_LENGTH)) - { - /*Found a match. Update it*/ - g_standby_video_port_setting[i].isEnabled = ((0 == param->isEnabled) ? false : true); - break; - } - } - if(MAX_NUM_VIDEO_PORTS == i) - { - /*No matching entries are present. Add one.*/ - for(i = 0; i < MAX_NUM_VIDEO_PORTS; i++) - { - if('\0' == g_standby_video_port_setting[i].port[0]) - { - strncpy(g_standby_video_port_setting[i].port, param->port, (DSMGR_MAX_VIDEO_PORT_NAME_LENGTH - 1)); - g_standby_video_port_setting[i].isEnabled = ((0 == param->isEnabled) ? false : true); - break; - } - } - } - if(MAX_NUM_VIDEO_PORTS == i) - { - INT_DEBUG("[%s] Error! Out of room to write new video port setting for standby mode.\n", __FUNCTION__); - } - - try - { - device::VideoOutputPort &vPort = device::Host::getInstance().getVideoOutputPort(param->port); - if((POWER_STATE_ON != curState) && (POWER_STATE_OFF != curState)) - { - /*We're currently in one of the standby states. This new setting needs to be applied right away.*/ - INT_DEBUG("[%s] Setting standby %s port status to %s.\n", __FUNCTION__, param->port, ((1 == param->isEnabled)? "enabled" : "disabled")); - if(1 == param->isEnabled) - vPort.enable(); - else - vPort.disable(); - } - else - { - INT_DEBUG("[%s] video port %s will be %s when going into standby mode.\n", __FUNCTION__, param->port, ((1 == param->isEnabled)? "enabled" : "disabled")); - } - } - catch (...) - { - INT_DEBUG("Exception Caught during [%s]. Possible bad video port.\n", __FUNCTION__); - param->result = -1; - } - return IARM_RESULT_SUCCESS; -} - -IARM_Result_t _dsGetStandbyVideoState(void *arg) -{ - INT_INFO("Entering [%s]\r\n", __FUNCTION__); - dsMgrStandbyVideoStateParam_t *param = (dsMgrStandbyVideoStateParam_t *)arg; - if(NULL == param->port) - { - INT_DEBUG("[%s]Bad port name. Cannot get state.\n", __FUNCTION__); - return IARM_RESULT_SUCCESS; - } - - try - { - device::VideoOutputPort &vPort = device::Host::getInstance().getVideoOutputPort(param->port); - } - catch (...) - { - INT_DEBUG("Exception Caught during [%s]. Possible bad video port.\n", __FUNCTION__); - param->result = -1; - return IARM_RESULT_SUCCESS; - } - param->isEnabled = ((true == get_video_port_standby_setting(param->port))? 1 : 0); - param->result = 0; - return IARM_RESULT_SUCCESS; -} - dsError_t handleDsColorDepthCapabilities(intptr_t handle, unsigned int *colorDepthCapability ) { #ifndef RDK_DSHAL_NAME From 98003a080bbe9006aca42c74ee02b05877b1e975 Mon Sep 17 00:00:00 2001 From: Dosakaya <110212899+Dosakaya@users.noreply.github.com> Date: Tue, 9 Sep 2025 12:23:44 +0530 Subject: [PATCH 06/14] Update videoOutputPort.hpp --- ds/include/videoOutputPort.hpp | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/ds/include/videoOutputPort.hpp b/ds/include/videoOutputPort.hpp index 95939cb0..3734abbc 100644 --- a/ds/include/videoOutputPort.hpp +++ b/ds/include/videoOutputPort.hpp @@ -283,15 +283,8 @@ class VideoOutputPort : public Enumerable { unsigned int getPreferredColorDepth(bool persist = true) ; void setPreferredColorDepth(const unsigned int colordepth, bool persist = true); void getColorDepthCapabilities (unsigned int *capabilities) const; - -// static IARM_Result_t _SetStandbyVideoState(void *arg) - void SetStandbyVideoState(); - -// static IARM_Result_t _GetStandbyVideoState(void *arg) - void GetStandbyVideoState(); - -// static IARM_Result_t _SetAvPortState(void *arg) - void SetAvPortState(); + void SetStandbyVideoState(const string port , const bool enable); + void GetStandbyVideoState(const string port , bool enable); private: Display _display; From fdc8c6f6b9a520c0559ad5d48eb88061752df12d Mon Sep 17 00:00:00 2001 From: Dosakayala Nagalakshmi Date: Tue, 9 Sep 2025 12:35:04 +0530 Subject: [PATCH 07/14] HDMIIn ARC api added. --- ds/hdmiIn.cpp | 13 +++++++++++++ ds/include/hdmiIn.hpp | 1 + rpc/include/dsRpc.h | 1 - rpc/srv/dsVideoPort.c | 4 ++-- 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/ds/hdmiIn.cpp b/ds/hdmiIn.cpp index 18b2ac97..f40ce67d 100755 --- a/ds/hdmiIn.cpp +++ b/ds/hdmiIn.cpp @@ -678,6 +678,19 @@ void HdmiInput::getHdmiVersion (int iHdmiPort, dsHdmiMaxCapabilityVersion_t *cap printf ("%s:%d - HDMI Compatibility Version = %d\n", __PRETTY_FUNCTION__, __LINE__, *capversion); } +void HdmiInput::getHDMIARCPortId(int *portId) +{ + if(NULL != portId) + { + dsError_t error = dsERR_GENERAL; + error = dsGetHDMIARCPortId(portId); + if(dsERR_NONE != error) + { + *portId = -1; + } + } +} + } diff --git a/ds/include/hdmiIn.hpp b/ds/include/hdmiIn.hpp index eb2da3dc..792a5b2b 100755 --- a/ds/include/hdmiIn.hpp +++ b/ds/include/hdmiIn.hpp @@ -101,6 +101,7 @@ class HdmiInput void getVRRSupport (int iHdmiPort, bool *vrr_suppport); void getVRRStatus (int iHdmiPort, dsHdmiInVrrStatus_t *vrrStatus); void getHdmiVersion (int iHdmiPort, dsHdmiMaxCapabilityVersion_t *capversion); + void getHDMIARCPortId(int *portId); private: HdmiInput (); /* default constructor */ virtual ~HdmiInput (); /* destructor */ diff --git a/rpc/include/dsRpc.h b/rpc/include/dsRpc.h index 3317c9e4..96b3a086 100644 --- a/rpc/include/dsRpc.h +++ b/rpc/include/dsRpc.h @@ -195,7 +195,6 @@ extern "C" { #define IARM_BUS_DSMGR_API_dsSetBackgroundColor "dsSetBackgroundColor" #define IARM_BUS_DSMGR_API_dsSetForceHDRMode "dsSetForceHDRMode" #define IARM_BUS_DSMGR_API_dsSetAllmEnabled "dsSetAllmEnabled" - /* * Declare RPC FP API names */ diff --git a/rpc/srv/dsVideoPort.c b/rpc/srv/dsVideoPort.c index b2c3602e..d29966d2 100644 --- a/rpc/srv/dsVideoPort.c +++ b/rpc/srv/dsVideoPort.c @@ -61,6 +61,7 @@ #define DEFAULT_RESOLUTION "720p" #define DEFAULT_RESOLUTION_1080P "1080p" #define DEFAULT_RESOLUTION_2160P "2160p" + #define DEFAULT_SD_RESOLUTION "480i" static int m_isInitialized = 0; @@ -74,7 +75,6 @@ static dsHdcpStatus_t _hdcpStatus = dsHDCP_STATUS_UNAUTHENTICATED; static bool force_disable_4K = false; static const dsDisplayColorDepth_t DEFAULT_COLOR_DEPTH = dsDISPLAY_COLORDEPTH_AUTO; static dsDisplayColorDepth_t hdmiColorDept = DEFAULT_COLOR_DEPTH; - #define NULL_HANDLE 0 #define IARM_BUS_Lock(lock) pthread_mutex_lock(&dsLock) #define IARM_BUS_Unlock(lock) pthread_mutex_unlock(&dsLock) @@ -317,7 +317,7 @@ IARM_Result_t _dsVideoPortInit(void *arg) IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsColorDepthCapabilities,_dsColorDepthCapabilities); IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsGetPreferredColorDepth,_dsGetPreferredColorDepth); IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsSetPreferredColorDepth,_dsSetPreferredColorDepth); - + dsError_t eRet = _dsVideoFormatUpdateRegisterCB (_dsVideoFormatUpdateCB) ; if (dsERR_NONE != eRet) { INT_DEBUG("%s: _dsVideoFormatUpdateRegisterCB eRet:%04x", __FUNCTION__, eRet); From 4b0ed8571fc69decdf61485b0930e4e3f2ff7d23 Mon Sep 17 00:00:00 2001 From: Dosakayala Nagalakshmi Date: Tue, 9 Sep 2025 14:15:36 +0530 Subject: [PATCH 08/14] fixed comments --- ds/videoOutputPort.cpp | 2 -- rpc/cli/dsVideoPort.c | 25 +++++++++++++++---------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/ds/videoOutputPort.cpp b/ds/videoOutputPort.cpp index bedc90c2..d0dba075 100644 --- a/ds/videoOutputPort.cpp +++ b/ds/videoOutputPort.cpp @@ -918,7 +918,6 @@ bool VideoOutputPort::SetStandbyVideoState(const string port , const bool enable return false; } return true; - } bool VideoOutputPort::GetStandbyVideoState(const string port, bool isEnabled) @@ -928,7 +927,6 @@ bool VideoOutputPort::GetStandbyVideoState(const string port, bool isEnabled) return false; } return true; - } /** diff --git a/rpc/cli/dsVideoPort.c b/rpc/cli/dsVideoPort.c index 7322ae88..d6afe99c 100644 --- a/rpc/cli/dsVideoPort.c +++ b/rpc/cli/dsVideoPort.c @@ -972,40 +972,45 @@ dsError_t dsSetStandbyVideoState(string port , const bool enable) if(!port.empty()) { - dsMgrStandbyVideoStateParam_t param; - param.port = port; + dsMgrStandbyVideoStateParam_t param = {0}; + int n = port.length(); + strcpy(param.port, port.c_str()); + param.port[n+1] = '\n'; param.isEnabled = enable; - param.result = 0; + param->result = -1; IARM_Result_t rpcRet = IARM_Bus_Call(IARM_BUS_DSMGR_NAME, (char *)IARM_BUS_DSMGR_API_SetStandbyVideoState, (void *)¶m, sizeof(param)); - if (IARM_RESULT_SUCCESS == rpcRet) + if (IARM_RESULT_SUCCESS == rpcRet && param.result == 0) { dsErr = dsERR_NONE; } } - return dsErr ; + return dsErr; } -dsError_t dsGetStandbyVideoState(string port , bool enable) +dsError_t dsGetStandbyVideoState(string port , bool &enable) { dsError_t dsErr = dsERR_GENERAL; _DEBUG_ENTER(); if(!port.empty()) { - dsMgrStandbyVideoStateParam_t param; - param.port = port; - param.result = 0; + dsMgrStandbyVideoStateParam_t param = {0}; + + int n = port.length(); + strcpy(param.port, port.c_str()); + param.port[n+1] = '\n'; + param->result = -1; IARM_Result_t rpcRet = IARM_Bus_Call(IARM_BUS_DSMGR_NAME, (char *)IARM_BUS_DSMGR_API_GetStandbyVideoState, (void *)¶m, sizeof(param)); - if (IARM_RESULT_SUCCESS == rpcRet) + if (IARM_RESULT_SUCCESS == rpcRet && param.result == 0) { enable = param.isEnabled; dsErr = dsERR_NONE; From d8729a31b54c23e67e15fc18db4c35b33b772b9f Mon Sep 17 00:00:00 2001 From: Dosakayala Nagalakshmi Date: Tue, 9 Sep 2025 14:26:12 +0530 Subject: [PATCH 09/14] fixed comments --- ds/hdmiIn.cpp | 15 ++++++--------- ds/include/hdmiIn.hpp | 2 +- ds/videoOutputPort.cpp | 10 ++++------ 3 files changed, 11 insertions(+), 16 deletions(-) diff --git a/ds/hdmiIn.cpp b/ds/hdmiIn.cpp index f40ce67d..a00cc703 100755 --- a/ds/hdmiIn.cpp +++ b/ds/hdmiIn.cpp @@ -678,16 +678,13 @@ void HdmiInput::getHdmiVersion (int iHdmiPort, dsHdmiMaxCapabilityVersion_t *cap printf ("%s:%d - HDMI Compatibility Version = %d\n", __PRETTY_FUNCTION__, __LINE__, *capversion); } -void HdmiInput::getHDMIARCPortId(int *portId) -{ - if(NULL != portId) +void HdmiInput::getHDMIARCPortId(int &portId) { + + dsError_t error = dsERR_GENERAL; + error = dsGetHDMIARCPortId(portId); + if(dsERR_NONE != error) { - dsError_t error = dsERR_GENERAL; - error = dsGetHDMIARCPortId(portId); - if(dsERR_NONE != error) - { - *portId = -1; - } + *portId = -1; } } diff --git a/ds/include/hdmiIn.hpp b/ds/include/hdmiIn.hpp index 792a5b2b..c35b0d88 100755 --- a/ds/include/hdmiIn.hpp +++ b/ds/include/hdmiIn.hpp @@ -101,7 +101,7 @@ class HdmiInput void getVRRSupport (int iHdmiPort, bool *vrr_suppport); void getVRRStatus (int iHdmiPort, dsHdmiInVrrStatus_t *vrrStatus); void getHdmiVersion (int iHdmiPort, dsHdmiMaxCapabilityVersion_t *capversion); - void getHDMIARCPortId(int *portId); + void getHDMIARCPortId(int &portId); private: HdmiInput (); /* default constructor */ virtual ~HdmiInput (); /* destructor */ diff --git a/ds/videoOutputPort.cpp b/ds/videoOutputPort.cpp index d0dba075..ddfb41ac 100644 --- a/ds/videoOutputPort.cpp +++ b/ds/videoOutputPort.cpp @@ -911,22 +911,20 @@ int VideoOutputPort::GetHdmiPreference() return hdcpProtocol; } -bool VideoOutputPort::SetStandbyVideoState(const string port , const bool enable) +void VideoOutputPort::SetStandbyVideoState(const string port , const bool enable) { dsError_t ret = dsSetStandbyVideoState(port, enable); if (ret != dsERR_NONE) { - return false; + throw Exception(ret); } - return true; } -bool VideoOutputPort::GetStandbyVideoState(const string port, bool isEnabled) +void VideoOutputPort::GetStandbyVideoState(const string port, bool isEnabled) { dsError_t ret = dsGetStandbyVideoState(port, isEnabled); if (ret != dsERR_NONE) { - return false; + throw Exception(ret); } - return true; } /** From 5215f2604c0c791fe2ee27ed9fbf13d60e71498e Mon Sep 17 00:00:00 2001 From: Dosakayala Nagalakshmi Date: Tue, 9 Sep 2025 14:41:59 +0530 Subject: [PATCH 10/14] fixed comments --- ds/videoOutputPort.cpp | 4 ++-- rpc/cli/dsVideoPort.c | 13 ++++--------- rpc/include/dsRpc.h | 2 +- 3 files changed, 7 insertions(+), 12 deletions(-) diff --git a/ds/videoOutputPort.cpp b/ds/videoOutputPort.cpp index ddfb41ac..9f63f57a 100644 --- a/ds/videoOutputPort.cpp +++ b/ds/videoOutputPort.cpp @@ -913,7 +913,7 @@ int VideoOutputPort::GetHdmiPreference() void VideoOutputPort::SetStandbyVideoState(const string port , const bool enable) { - dsError_t ret = dsSetStandbyVideoState(port, enable); + dsError_t ret = dsSetStandbyVideoState(port.c_str(), enable); if (ret != dsERR_NONE) { throw Exception(ret); } @@ -921,7 +921,7 @@ void VideoOutputPort::SetStandbyVideoState(const string port , const bool enable void VideoOutputPort::GetStandbyVideoState(const string port, bool isEnabled) { - dsError_t ret = dsGetStandbyVideoState(port, isEnabled); + dsError_t ret = dsGetStandbyVideoState(port.c_str(), isEnabled); if (ret != dsERR_NONE) { throw Exception(ret); } diff --git a/rpc/cli/dsVideoPort.c b/rpc/cli/dsVideoPort.c index d6afe99c..938c9c72 100644 --- a/rpc/cli/dsVideoPort.c +++ b/rpc/cli/dsVideoPort.c @@ -965,7 +965,7 @@ dsError_t dsSetForceHDRMode(intptr_t handle, dsHDRStandard_t mode) return dsERR_GENERAL ; } -dsError_t dsSetStandbyVideoState(string port , const bool enable) +dsError_t dsSetStandbyVideoState(char *port, const bool enable) { dsError_t dsErr = dsERR_GENERAL; _DEBUG_ENTER(); @@ -973,9 +973,7 @@ dsError_t dsSetStandbyVideoState(string port , const bool enable) if(!port.empty()) { dsMgrStandbyVideoStateParam_t param = {0}; - int n = port.length(); - strcpy(param.port, port.c_str()); - param.port[n+1] = '\n'; + strcpy(param.port, port); param.isEnabled = enable; param->result = -1; @@ -991,7 +989,7 @@ dsError_t dsSetStandbyVideoState(string port , const bool enable) return dsErr; } -dsError_t dsGetStandbyVideoState(string port , bool &enable) +dsError_t dsGetStandbyVideoState(char *port, bool &enable) { dsError_t dsErr = dsERR_GENERAL; _DEBUG_ENTER(); @@ -999,10 +997,7 @@ dsError_t dsGetStandbyVideoState(string port , bool &enable) if(!port.empty()) { dsMgrStandbyVideoStateParam_t param = {0}; - - int n = port.length(); - strcpy(param.port, port.c_str()); - param.port[n+1] = '\n'; + strcpy(param.port, port); param->result = -1; IARM_Result_t rpcRet = IARM_Bus_Call(IARM_BUS_DSMGR_NAME, diff --git a/rpc/include/dsRpc.h b/rpc/include/dsRpc.h index 96b3a086..1b23d553 100644 --- a/rpc/include/dsRpc.h +++ b/rpc/include/dsRpc.h @@ -289,7 +289,7 @@ extern "C" { #define MS12_CONFIG_BUF_SIZE 16 typedef struct _dsMgrStandbyVideoStateParam_t{ - char port[DSMGR_MAX_VIDEO_PORT_NAME_LENGTH]; + char port[DSMGR_MAX_VIDEO_PORT_NAME_LENGTH]; int isEnabled; int result; } dsMgrStandbyVideoStateParam_t; From d2f414c8b76f27efa059f7f684fc36a17896182b Mon Sep 17 00:00:00 2001 From: Dosakaya <110212899+Dosakaya@users.noreply.github.com> Date: Tue, 9 Sep 2025 14:45:35 +0530 Subject: [PATCH 11/14] Update hdmiIn.cpp --- ds/hdmiIn.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ds/hdmiIn.cpp b/ds/hdmiIn.cpp index a00cc703..9608593b 100755 --- a/ds/hdmiIn.cpp +++ b/ds/hdmiIn.cpp @@ -684,7 +684,7 @@ void HdmiInput::getHDMIARCPortId(int &portId) { error = dsGetHDMIARCPortId(portId); if(dsERR_NONE != error) { - *portId = -1; + portId = -1; } } From 78a558040641e199b9c6631f9771797a58670a56 Mon Sep 17 00:00:00 2001 From: Dosakayala Nagalakshmi Date: Tue, 9 Sep 2025 15:02:10 +0530 Subject: [PATCH 12/14] fixed comments --- ds/include/videoOutputPort.hpp | 2 +- rpc/include/dsRpc.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ds/include/videoOutputPort.hpp b/ds/include/videoOutputPort.hpp index 3734abbc..2ec03cc9 100644 --- a/ds/include/videoOutputPort.hpp +++ b/ds/include/videoOutputPort.hpp @@ -284,7 +284,7 @@ class VideoOutputPort : public Enumerable { void setPreferredColorDepth(const unsigned int colordepth, bool persist = true); void getColorDepthCapabilities (unsigned int *capabilities) const; void SetStandbyVideoState(const string port , const bool enable); - void GetStandbyVideoState(const string port , bool enable); + void GetStandbyVideoState(const string port , bool &enable); private: Display _display; diff --git a/rpc/include/dsRpc.h b/rpc/include/dsRpc.h index 1b23d553..96b3a086 100644 --- a/rpc/include/dsRpc.h +++ b/rpc/include/dsRpc.h @@ -289,7 +289,7 @@ extern "C" { #define MS12_CONFIG_BUF_SIZE 16 typedef struct _dsMgrStandbyVideoStateParam_t{ - char port[DSMGR_MAX_VIDEO_PORT_NAME_LENGTH]; + char port[DSMGR_MAX_VIDEO_PORT_NAME_LENGTH]; int isEnabled; int result; } dsMgrStandbyVideoStateParam_t; From 7989c4e2ca767b2b7493c05a2a5ffec6dc645629 Mon Sep 17 00:00:00 2001 From: Dosakayala Nagalakshmi Date: Tue, 9 Sep 2025 16:25:29 +0530 Subject: [PATCH 13/14] fixed compilation errors --- ds/hdmiIn.cpp | 3 ++- ds/include/hdmiIn.hpp | 2 +- ds/include/videoOutputPort.hpp | 4 ++-- ds/videoOutputPort.cpp | 14 ++++---------- rpc/cli/dsVideoPort.c | 8 ++++---- 5 files changed, 13 insertions(+), 18 deletions(-) diff --git a/ds/hdmiIn.cpp b/ds/hdmiIn.cpp index 9608593b..927df499 100755 --- a/ds/hdmiIn.cpp +++ b/ds/hdmiIn.cpp @@ -678,7 +678,7 @@ void HdmiInput::getHdmiVersion (int iHdmiPort, dsHdmiMaxCapabilityVersion_t *cap printf ("%s:%d - HDMI Compatibility Version = %d\n", __PRETTY_FUNCTION__, __LINE__, *capversion); } -void HdmiInput::getHDMIARCPortId(int &portId) { +dsError_t HdmiInput::getHDMIARCPortId(int &portId) { dsError_t error = dsERR_GENERAL; error = dsGetHDMIARCPortId(portId); @@ -686,6 +686,7 @@ void HdmiInput::getHDMIARCPortId(int &portId) { { portId = -1; } + return error; } } diff --git a/ds/include/hdmiIn.hpp b/ds/include/hdmiIn.hpp index c35b0d88..4840245e 100755 --- a/ds/include/hdmiIn.hpp +++ b/ds/include/hdmiIn.hpp @@ -101,7 +101,7 @@ class HdmiInput void getVRRSupport (int iHdmiPort, bool *vrr_suppport); void getVRRStatus (int iHdmiPort, dsHdmiInVrrStatus_t *vrrStatus); void getHdmiVersion (int iHdmiPort, dsHdmiMaxCapabilityVersion_t *capversion); - void getHDMIARCPortId(int &portId); + dsError_t getHDMIARCPortId(int &portId); private: HdmiInput (); /* default constructor */ virtual ~HdmiInput (); /* destructor */ diff --git a/ds/include/videoOutputPort.hpp b/ds/include/videoOutputPort.hpp index 2ec03cc9..3815ade2 100644 --- a/ds/include/videoOutputPort.hpp +++ b/ds/include/videoOutputPort.hpp @@ -283,8 +283,8 @@ class VideoOutputPort : public Enumerable { unsigned int getPreferredColorDepth(bool persist = true) ; void setPreferredColorDepth(const unsigned int colordepth, bool persist = true); void getColorDepthCapabilities (unsigned int *capabilities) const; - void SetStandbyVideoState(const string port , const bool enable); - void GetStandbyVideoState(const string port , bool &enable); + dsError_t SetStandbyVideoState(const string port , const bool enable); + dsError_t GetStandbyVideoState(const string port , bool &enable); private: Display _display; diff --git a/ds/videoOutputPort.cpp b/ds/videoOutputPort.cpp index 9f63f57a..b1431056 100644 --- a/ds/videoOutputPort.cpp +++ b/ds/videoOutputPort.cpp @@ -911,20 +911,14 @@ int VideoOutputPort::GetHdmiPreference() return hdcpProtocol; } -void VideoOutputPort::SetStandbyVideoState(const string port , const bool enable) +dsError_t VideoOutputPort::SetStandbyVideoState(const string port , const bool enable) { - dsError_t ret = dsSetStandbyVideoState(port.c_str(), enable); - if (ret != dsERR_NONE) { - throw Exception(ret); - } + return dsSetStandbyVideoState(port.c_str(), enable); } -void VideoOutputPort::GetStandbyVideoState(const string port, bool isEnabled) +dsError_t VideoOutputPort::GetStandbyVideoState(const string port, bool &isEnabled) { - dsError_t ret = dsGetStandbyVideoState(port.c_str(), isEnabled); - if (ret != dsERR_NONE) { - throw Exception(ret); - } + return dsGetStandbyVideoState(port.c_str(), isEnabled); } /** diff --git a/rpc/cli/dsVideoPort.c b/rpc/cli/dsVideoPort.c index 938c9c72..bab1aabd 100644 --- a/rpc/cli/dsVideoPort.c +++ b/rpc/cli/dsVideoPort.c @@ -970,12 +970,12 @@ dsError_t dsSetStandbyVideoState(char *port, const bool enable) dsError_t dsErr = dsERR_GENERAL; _DEBUG_ENTER(); - if(!port.empty()) + if(NULL != port) { dsMgrStandbyVideoStateParam_t param = {0}; strcpy(param.port, port); param.isEnabled = enable; - param->result = -1; + param.result = -1; IARM_Result_t rpcRet = IARM_Bus_Call(IARM_BUS_DSMGR_NAME, (char *)IARM_BUS_DSMGR_API_SetStandbyVideoState, @@ -994,11 +994,11 @@ dsError_t dsGetStandbyVideoState(char *port, bool &enable) dsError_t dsErr = dsERR_GENERAL; _DEBUG_ENTER(); - if(!port.empty()) + if(NULL != port) { dsMgrStandbyVideoStateParam_t param = {0}; strcpy(param.port, port); - param->result = -1; + param.result = -1; IARM_Result_t rpcRet = IARM_Bus_Call(IARM_BUS_DSMGR_NAME, (char *)IARM_BUS_DSMGR_API_GetStandbyVideoState, From 67b69a55d27cd266e3104e7c80ccea12ad51a162 Mon Sep 17 00:00:00 2001 From: Dosakayala Nagalakshmi Date: Tue, 9 Sep 2025 17:18:33 +0530 Subject: [PATCH 14/14] fixing compilation errors --- ds/include/hdmiIn.hpp | 2 +- ds/include/videoOutputPort.hpp | 1 + sample/hdmiIn.cpp | 1 - 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ds/include/hdmiIn.hpp b/ds/include/hdmiIn.hpp index 4840245e..0aeb9e25 100755 --- a/ds/include/hdmiIn.hpp +++ b/ds/include/hdmiIn.hpp @@ -52,7 +52,7 @@ #include #include "dsTypes.h" - +#include "dsError.h" /** * @file hdmiIn.hpp diff --git a/ds/include/videoOutputPort.hpp b/ds/include/videoOutputPort.hpp index 3815ade2..291af68a 100644 --- a/ds/include/videoOutputPort.hpp +++ b/ds/include/videoOutputPort.hpp @@ -38,6 +38,7 @@ #include #include "dsTypes.h" +#include "dsError.h" /** * @file videoOutputPort.hpp diff --git a/sample/hdmiIn.cpp b/sample/hdmiIn.cpp index 819eb919..c1e49a39 100644 --- a/sample/hdmiIn.cpp +++ b/sample/hdmiIn.cpp @@ -32,7 +32,6 @@ #include "hdmiIn.hpp" #include "manager.hpp" #include "dsUtl.h" -#include "dsError.h" #include #include #include