diff --git a/CHANGELOG.md b/CHANGELOG.md index 74c35ec5..5248c630 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,10 +4,26 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). -#### [1.0.21](https://github.com/rdkcentral/devicesettings/compare/1.0.21...1.0.21) +#### [1.0.24](https://github.com/rdkcentral/devicesettings/compare/1.0.23...1.0.24) + +- RDKEMW-10107: Speaker volume level do not persist after reboot [`#169`](https://github.com/rdkcentral/devicesettings/pull/169) +- Merge tag '1.0.23' into develop [`0fa742c`](https://github.com/rdkcentral/devicesettings/commit/0fa742ce90128f321551ecd9007fbc83a8ef9202) + +#### [1.0.23](https://github.com/rdkcentral/devicesettings/compare/1.0.22...1.0.23) + +> 10 November 2025 + +- RDKEMW-9408: Refactored the code to avoid duplicated lines [`#160`](https://github.com/rdkcentral/devicesettings/pull/160) +- 1.0.23 release change log updates [`7659e1f`](https://github.com/rdkcentral/devicesettings/commit/7659e1f4e0a241bec376b2ba945b9af9b9517fcb) +- Merge tag '1.0.22' into develop [`07dfc36`](https://github.com/rdkcentral/devicesettings/commit/07dfc36c5451cec8841e06746f4c234189c0d127) + +#### [1.0.22](https://github.com/rdkcentral/devicesettings/compare/1.0.21...1.0.22) + +> 15 October 2025 - RDKEMW-9411:TV information not telemetry friendly [`#163`](https://github.com/rdkcentral/devicesettings/pull/163) - Update CODEOWNERS [`#161`](https://github.com/rdkcentral/devicesettings/pull/161) +- 1.0.22 release change log updates [`828258b`](https://github.com/rdkcentral/devicesettings/commit/828258b4c1fbc4385b2437b845d754e7ab0dce05) - Merge tag '1.0.21' into develop [`2c97d46`](https://github.com/rdkcentral/devicesettings/commit/2c97d46c936691b45c3265b05da65976ddb6aef0) #### [1.0.21](https://github.com/rdkcentral/devicesettings/compare/1.0.20...1.0.21) @@ -23,10 +39,21 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). - 1.0.21 release change log updates [`e2e586c`](https://github.com/rdkcentral/devicesettings/commit/e2e586cb43068363fd7a8236f97ba7b760e31e8e) - Merge tag '1.0.20' into develop [`b8246d2`](https://github.com/rdkcentral/devicesettings/commit/b8246d21e1fdd0774739553db5cc576a0df10399) -#### [1.0.20](https://github.com/rdkcentral/devicesettings/compare/1.0.19...1.0.20) +#### [1.0.20](https://github.com/rdkcentral/devicesettings/compare/1.0.20-hotfix.2...1.0.20) > 17 September 2025 +#### [1.0.20-hotfix.2](https://github.com/rdkcentral/devicesettings/compare/1.0.20-hotfix.1...1.0.20-hotfix.2) + +> 5 November 2025 + +- RDKEMW-9411:TV information not telemetry friendly [`#163`](https://github.com/rdkcentral/devicesettings/pull/163) + +#### [1.0.20-hotfix.1](https://github.com/rdkcentral/devicesettings/compare/1.0.19...1.0.20-hotfix.1) + +> 29 October 2025 + +- RDKEMW-8665: Init time reference for cond wait API call [`#156`](https://github.com/rdkcentral/devicesettings/pull/156) - RDKEMW-7967: Adding retry logic for dsFPInit [`#144`](https://github.com/rdkcentral/devicesettings/pull/144) - RDKEMW-6149: Implementation of IARM libds event notification APIs [`#121`](https://github.com/rdkcentral/devicesettings/pull/121) - 1.0.20 release change log updates [`8c82428`](https://github.com/rdkcentral/devicesettings/commit/8c82428087b9221d7d46af2baef470c541cb3827) @@ -91,10 +118,16 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). - 1.0.13 release change log updates [`46313cd`](https://github.com/rdkcentral/devicesettings/commit/46313cdef42716cfec368f6dd8a71508dd9773ba) - RDKEMW-4128 Coverity Integration [`d6306c5`](https://github.com/rdkcentral/devicesettings/commit/d6306c5712f7212794cd29994dd1dda5091bf81d) -#### [1.0.12](https://github.com/rdkcentral/devicesettings/compare/1.0.12-hotfix.3...1.0.12) +#### [1.0.12](https://github.com/rdkcentral/devicesettings/compare/1.0.12-hotfix.4...1.0.12) > 11 June 2025 +#### [1.0.12-hotfix.4](https://github.com/rdkcentral/devicesettings/compare/1.0.12-hotfix.3...1.0.12-hotfix.4) + +> 15 October 2025 + +- Update dsDisplay.c [`#166`](https://github.com/rdkcentral/devicesettings/pull/166) + #### [1.0.12-hotfix.3](https://github.com/rdkcentral/devicesettings/compare/1.0.12-hotfix.2...1.0.12-hotfix.3) > 11 September 2025 diff --git a/rpc/srv/dsAudio.c b/rpc/srv/dsAudio.c index b41b8874..f96017b9 100755 --- a/rpc/srv/dsAudio.c +++ b/rpc/srv/dsAudio.c @@ -60,7 +60,6 @@ static bool m_MS12DAPV2Enabled = 0; static bool m_MS12DEEnabled = 0; static bool m_LEEnabled = 0; static int m_volumeDuckingLevel = 0; -static float m_volumeLevel = 0; static int m_MuteStatus = false; static int m_isDuckingInProgress = false; static bool m_AudioPortEnabled[dsAUDIOPORT_TYPE_MAX] = {false}; @@ -351,7 +350,6 @@ void AudioConfigInit() audioLevel_cache_spdif = m_audioLevel; if (dsSetAudioLevelFunc(handle, m_audioLevel) == dsERR_NONE) { INT_INFO("Port %s: Initialized audio level : %f\n","SPDIF0", m_audioLevel); - m_volumeLevel = m_audioLevel; } } //SPEAKER init @@ -372,7 +370,6 @@ void AudioConfigInit() m_audioLevel = atof(_AudioLevel.c_str()); audioLevel_cache_speaker = m_audioLevel; if (dsSetAudioLevelFunc(handle, m_audioLevel) == dsERR_NONE) { - m_volumeLevel = m_audioLevel; INT_INFO("Port %s: Initialized audio level : %f\n","SPEAKER0", m_audioLevel); } } @@ -416,7 +413,6 @@ void AudioConfigInit() audioLevel_cache_hdmi = m_audioLevel; if (dsSetAudioLevelFunc(handle, m_audioLevel) == dsERR_NONE) { INT_INFO("Port %s: Initialized audio level : %f\n","HDMI0", m_audioLevel); - m_volumeLevel = m_audioLevel; } } @@ -2790,28 +2786,36 @@ IARM_Result_t _dsSetAudioDucking(void *arg) IARM_BUS_Lock(lock); int volume = 0; + float volumeLevel = 0; bool portEnabled = false; dsAudioSetDuckingParam_t *param = (dsAudioSetDuckingParam_t *)arg; IARM_Bus_DSMgr_EventData_t eventData; - INT_DEBUG("%s action : %d type :%d val :%d m_volumeLevel:%f \n",__FUNCTION__,param->action,param->type,param->level,m_volumeLevel ); + INT_DEBUG("%s action : %d type :%d val :%d \n",__FUNCTION__,param->action,param->type,param->level); dsError_t ret = dsIsAudioPortEnabled(param->handle, &portEnabled); if (ret != dsERR_NONE) { INT_INFO("%s failed dsIsAudioPortEnabled\n",__FUNCTION__); } + ret = dsGetAudioLevel (param->handle, &volumeLevel); + if (ret != dsERR_NONE) { + INT_ERROR("%s failed dsGetAudioLevel\n",__FUNCTION__); + } + + INT_DEBUG("%s volumeLevel:%f \n",__FUNCTION__, volumeLevel); + if(param->action == dsAUDIO_DUCKINGACTION_START) { m_isDuckingInProgress = true; if(param->type == dsAUDIO_DUCKINGTYPE_RELATIVE ) { - volume = (m_volumeLevel * param->level) / 100; + volume = (volumeLevel * param->level) / 100; } else { - if(param->level > m_volumeLevel) + if(param->level > volumeLevel) { - volume = m_volumeLevel; + volume = volumeLevel; } else { @@ -2822,7 +2826,7 @@ IARM_Result_t _dsSetAudioDucking(void *arg) else { m_isDuckingInProgress = false; - volume = m_volumeLevel; + volume = volumeLevel; } if(m_MuteStatus || !portEnabled) @@ -3113,11 +3117,9 @@ IARM_Result_t _dsSetAudioLevel(void *arg) if(m_isDuckingInProgress && currlevel != m_volumeDuckingLevel ) { dsSetAudioLevelFunc(param->handle, m_volumeDuckingLevel); - m_volumeLevel = (int) param->level; } else if (m_isDuckingInProgress || dsSetAudioLevelFunc(param->handle, param->level) == dsERR_NONE) { - m_volumeLevel = (int) param->level; result = IARM_RESULT_SUCCESS; } } else if( dsSetAudioLevelFunc(param->handle, param->level) == dsERR_NONE) { @@ -3190,7 +3192,11 @@ static IARM_Result_t setAudioDuckingAudioLevel(intptr_t handle) } else { - volume = m_volumeLevel; + dsError_t ret = dsGetAudioLevel (handle, &volume); + if (ret != dsERR_NONE) { + INT_ERROR("%s dsGetAudioLevel\n",__FUNCTION__); + } + INT_DEBUG("%s: audio level %f\n", __FUNCTION__, volume); } if (dsSetAudioLevelFunc == 0) { diff --git a/rpc/srv/dsHdmiIn.c b/rpc/srv/dsHdmiIn.c index e4b66ca6..7b8693be 100755 --- a/rpc/srv/dsHdmiIn.c +++ b/rpc/srv/dsHdmiIn.c @@ -89,6 +89,7 @@ static tv_hdmi_edid_version_t m_edidversion[dsHDMI_IN_PORT_MAX]; static bool m_edidallmsupport[dsHDMI_IN_PORT_MAX]; static bool m_vrrsupport[dsHDMI_IN_PORT_MAX]; static bool m_hdmiPortVrrCaps[dsHDMI_IN_PORT_MAX]; +static uint8_t noOfSupportedHdmiInputs; IARM_Result_t dsHdmiInMgr_init(); IARM_Result_t dsHdmiInMgr_term(); IARM_Result_t _dsHdmiInInit(void *arg); @@ -278,27 +279,25 @@ static dsError_t setEdidVersion (dsHdmiInPort_t iHdmiPort, tv_hdmi_edid_version_ if (0 != dsSetEdidVersionFunc) { eRet = dsSetEdidVersionFunc (iHdmiPort, iEdidVersion); if (eRet == dsERR_NONE) { - switch (iHdmiPort) { - case dsHDMI_IN_PORT_0: - device::HostPersistence::getInstance().persistHostProperty("HDMI0.edidversion", edidVer); - INT_DEBUG("Port %s: Persist EDID Version: %d\n", "HDMI0", iEdidVersion); - break; - case dsHDMI_IN_PORT_1: - device::HostPersistence::getInstance().persistHostProperty("HDMI1.edidversion", edidVer); - INT_DEBUG("Port %s: Persist EDID Version: %d\n", "HDMI1", iEdidVersion); - break; - case dsHDMI_IN_PORT_2: - device::HostPersistence::getInstance().persistHostProperty("HDMI2.edidversion", edidVer); - INT_DEBUG("Port %s: Persist EDID Version: %d\n", "HDMI2", iEdidVersion); - break; + int port_no = (int)iHdmiPort; + if((port_no >= 0) && (port_no < noOfSupportedHdmiInputs)) + { + std::string port_edidVer = "HDMI"+std::to_string(port_no)+".edidversion"; + device::HostPersistence::getInstance().persistHostProperty(port_edidVer, edidVer); + INT_INFO("Port HDMI%d: Persist EDID Version: %d\n", port_no, iEdidVersion); + } + else + { + INT_INFO("Invalid port number to update in persistence\n"); + } + + // Whenever there is a change in edid version to 2.0, ensure the edid allm and vrr support is updated with latest value + if(iEdidVersion == HDMI_EDID_VER_20) + { + INT_INFO("As the version is changed to 2.0, we are updating the allm and vrr bit in edid\n"); + setEdid2AllmSupport(iHdmiPort,m_edidallmsupport[iHdmiPort]); + setVRRSupport(iHdmiPort,m_vrrsupport[iHdmiPort]); } - // Whenever there is a change in edid version to 2.0, ensure the edid allm support and edid vrr support is updated with latest value - if(iEdidVersion == HDMI_EDID_VER_20) - { - INT_INFO("As the version is changed to 2.0, we are updating the allm bit and the vrr bit in edid\n"); - setEdid2AllmSupport(iHdmiPort,m_edidallmsupport[iHdmiPort]); - setVRRSupport(iHdmiPort,m_vrrsupport[iHdmiPort]); - } } INT_INFO("[srv] %s: dsSetEdidVersionFunc eRet: %d \r\n", __FUNCTION__, eRet); } @@ -669,7 +668,11 @@ IARM_Result_t _dsHdmiInInit(void *arg) int itr = 0; bool isARCCapable = false; - for (itr = 0; itr < dsHDMI_IN_PORT_MAX; itr++) { + + dsHdmiInGetNumberOfInputs(&noOfSupportedHdmiInputs); + INT_INFO("Number of Inputs:%d \n",noOfSupportedHdmiInputs); + + for (itr = 0; itr < noOfSupportedHdmiInputs; itr++) { isARCCapable = false; isHdmiARCPort (itr, &isARCCapable); hdmiInCap_gs.isPortArcCapable[itr] = isARCCapable; @@ -677,157 +680,85 @@ IARM_Result_t _dsHdmiInInit(void *arg) // Getting the edidallmEnable value from persistence upon bootup std::string _EdidAllmSupport("TRUE"); - try { - _EdidAllmSupport = device::HostPersistence::getInstance().getProperty("HDMI0.edidallmEnable"); - if(_EdidAllmSupport == "TRUE") - m_edidallmsupport[dsHDMI_IN_PORT_0] = true; - else - m_edidallmsupport[dsHDMI_IN_PORT_0] = false; - - INT_INFO("Port %s: _EdidAllmSupport: %s , m_edidallmsupport: %d\n", "HDMI0", _EdidAllmSupport.c_str(), m_edidallmsupport[0]); - } - catch(...) { - INT_INFO("Port %s: Exception in Getting the HDMI0 EDID allm support from persistence storage..... \r\n", "HDMI0"); - m_edidallmsupport[dsHDMI_IN_PORT_0] = true; - } - - try { - _EdidAllmSupport = device::HostPersistence::getInstance().getProperty("HDMI1.edidallmEnable"); - if(_EdidAllmSupport == "TRUE") - m_edidallmsupport[dsHDMI_IN_PORT_1] = true; - else - m_edidallmsupport[dsHDMI_IN_PORT_1] = false; - - INT_INFO("Port %s: _EdidAllmSupport: %s , m_edidallmsupport: %d\n", "HDMI1", _EdidAllmSupport.c_str(), m_edidallmsupport[1]); - } - catch(...) { - INT_INFO("Port %s: Exception in Getting the HDMI1 EDID allm support from persistence storage..... \r\n", "HDMI1"); - m_edidallmsupport[dsHDMI_IN_PORT_1] = true; - } - - try { - _EdidAllmSupport = device::HostPersistence::getInstance().getProperty("HDMI2.edidallmEnable"); - if(_EdidAllmSupport == "TRUE") - m_edidallmsupport[dsHDMI_IN_PORT_2] = true; - else - m_edidallmsupport[dsHDMI_IN_PORT_2] = false; - INT_INFO("Port %s: _EdidAllmSupport: %s , m_edidallmsupport: %d\n", "HDMI2", _EdidAllmSupport.c_str(), m_edidallmsupport[2]); - } - catch(...) { - INT_INFO("Port %s: Exception in Getting the HDMI2 EDID allm support from persistence storage..... \r\n", "HDMI2"); - m_edidallmsupport[dsHDMI_IN_PORT_2] = true; - } - // Getting the edidvrrEnable value from persistence upon bootup - std::string _VRRSupport("TRUE"); - try { - _VRRSupport = device::HostPersistence::getInstance().getProperty("HDMI0.vrrEnable"); - if(_VRRSupport == "TRUE") - m_vrrsupport[dsHDMI_IN_PORT_0] = true; - else - m_vrrsupport[dsHDMI_IN_PORT_0] = false; - - INT_INFO("Port %s: _VRRSupport: %s , m_vrrsupport: %d\n", "HDMI0", _VRRSupport.c_str(), m_vrrsupport[0]); - } - catch(...) { - INT_INFO("Port %s: Exception in Getting the HDMI0 EDID VRR support from persistence storage..... \r\n", "HDMI0"); - m_vrrsupport[dsHDMI_IN_PORT_0] = false; - } - - try { - _VRRSupport = device::HostPersistence::getInstance().getProperty("HDMI1.vrrEnable"); - if(_VRRSupport == "TRUE") - m_vrrsupport[dsHDMI_IN_PORT_1] = true; - else - m_vrrsupport[dsHDMI_IN_PORT_1] = false; - - INT_INFO("Port %s: _VRRSupport: %s , m_vrrsupport: %d\n", "HDMI1", _VRRSupport.c_str(), m_vrrsupport[1]); - } - catch(...) { - INT_INFO("Port %s: Exception in Getting the HDMI1 EDID VRR support from persistence storage..... \r\n", "HDMI1"); - m_vrrsupport[dsHDMI_IN_PORT_1] = false; - } - - try { - _VRRSupport = device::HostPersistence::getInstance().getProperty("HDMI2.vrrEnable"); - if(_VRRSupport == "TRUE") - m_vrrsupport[dsHDMI_IN_PORT_2] = true; - else - m_vrrsupport[dsHDMI_IN_PORT_2] = false; - - INT_INFO("Port %s: _vrrSupport: %s , m_vrrsupport: %d\n", "HDMI2", _VRRSupport.c_str(), m_vrrsupport[2]); - } - catch(...) { - INT_INFO("Port %s: Exception in Getting the HDMI2 EDID VRR support from persistence storage..... \r\n", "HDMI2"); - m_vrrsupport[dsHDMI_IN_PORT_2] = true; - } - try { - _VRRSupport = device::HostPersistence::getInstance().getProperty("HDMI3.vrrEnable"); - if(_VRRSupport == "TRUE") - m_vrrsupport[dsHDMI_IN_PORT_3] = true; - else - m_vrrsupport[dsHDMI_IN_PORT_3] = false; - - INT_INFO("Port %s: _vrrSupport: %s , m_vrrsupport: %d\n", "HDMI3", _VRRSupport.c_str(), m_vrrsupport[3]); - } - catch(...) { - INT_INFO("Port %s: Exception in Getting the HDMI3 EDID VRR support from persistence storage..... \r\n", "HDMI3"); - m_vrrsupport[dsHDMI_IN_PORT_3] = true; - } - - std::string _EdidVersion("1"); - try { - _EdidVersion = device::HostPersistence::getInstance().getProperty("HDMI0.edidversion"); - m_edidversion[dsHDMI_IN_PORT_0] = static_cast(atoi (_EdidVersion.c_str())); - } - catch(...) { + for (int i = 0 ; i < noOfSupportedHdmiInputs; i++) + { + std::string port_edidAllmSupport = "HDMI"+std::to_string(i)+".edidallmEnable"; try { - INT_INFO("Port %s: Exception in Getting the HDMI0 EDID version from persistence storage. Try system default...\r\n", "HDMI0"); - _EdidVersion = device::HostPersistence::getInstance().getDefaultProperty("HDMI0.edidversion"); - m_edidversion[dsHDMI_IN_PORT_0] = static_cast(atoi (_EdidVersion.c_str())); - } + _EdidAllmSupport = device::HostPersistence::getInstance().getProperty(port_edidAllmSupport); + if(_EdidAllmSupport == "TRUE") + m_edidallmsupport[i] = true; + else + m_edidallmsupport[i] = false; + } catch(...) { - INT_INFO("Port %s: Exception in Getting the HDMI0 EDID version from system default..... \r\n", "HDMI0"); - m_edidversion[dsHDMI_IN_PORT_0] = HDMI_EDID_VER_20; + try { + INT_INFO("Port %d: Exception in Getting the HDMI%d EDID allm support from persistence storage. Try system default...\r\n", i,i); + _EdidAllmSupport = device::HostPersistence::getInstance().getDefaultProperty(port_edidAllmSupport); + if(_EdidAllmSupport == "TRUE") + m_edidallmsupport[i] = true; + else + m_edidallmsupport[i] = false; } + catch(...) { + INT_INFO("Port %d: Exception in Getting the HDMI%d EDID allm support from system default..... \r\n", i,i); + m_edidallmsupport[i] = true; + } } } - try { - _EdidVersion = device::HostPersistence::getInstance().getProperty("HDMI1.edidversion"); - m_edidversion[dsHDMI_IN_PORT_1] = static_cast(atoi (_EdidVersion.c_str())); - } - catch(...) { + + std::string _EdidVersion("1"); + for (int i = 0 ; i < noOfSupportedHdmiInputs; i++) + { + std::string port_edidVer = "HDMI"+std::to_string(i)+".edidversion"; try { - INT_INFO("Port %s: Exception in Getting the HDMI1 EDID version from persistence storage. Try system default...\r\n", "HDMI1"); - _EdidVersion = device::HostPersistence::getInstance().getDefaultProperty("HDMI1.edidversion"); - m_edidversion[dsHDMI_IN_PORT_1] = static_cast(atoi (_EdidVersion.c_str())); + _EdidVersion = device::HostPersistence::getInstance().getProperty(port_edidVer); + m_edidversion[i] = static_cast(atoi (_EdidVersion.c_str())); } catch(...) { - INT_INFO("Port %s: Exception in Getting the HDMI1 EDID version from system default..... \r\n", "HDMI1"); - m_edidversion[dsHDMI_IN_PORT_1] = HDMI_EDID_VER_20; + try { + INT_INFO("Port %d: Exception in Getting the HDMI%d EDID version from persistence storage. Try system default...\r\n", i,i); + _EdidVersion = device::HostPersistence::getInstance().getDefaultProperty(port_edidVer); + m_edidversion[i] = static_cast(atoi (_EdidVersion.c_str())); + } + catch(...) { + INT_INFO("Port %d: Exception in Getting the HDMI%d EDID version from system default..... \r\n", i,i); + m_edidversion[i] = HDMI_EDID_VER_20; + } } } - try { - _EdidVersion = device::HostPersistence::getInstance().getProperty("HDMI2.edidversion"); - m_edidversion[dsHDMI_IN_PORT_2] = static_cast((atoi (_EdidVersion.c_str()))); - } - catch(...) { + + // Getting the edidvrrEnable value from persistence upon bootup + std::string _VRRSupport("TRUE"); + + for (int i = 0 ; i < noOfSupportedHdmiInputs; i++) + { + std::string port_vrrSupport = "HDMI"+std::to_string(i)+".vrrEnable"; try { - INT_INFO("Port %s: Exception in Getting the HDMI2 EDID version from persistence storage. Try system default...\r\n", "HDMI2"); - _EdidVersion = device::HostPersistence::getInstance().getDefaultProperty("HDMI2.edidversion"); - m_edidversion[dsHDMI_IN_PORT_2] = static_cast(atoi (_EdidVersion.c_str())); + _VRRSupport = device::HostPersistence::getInstance().getProperty(port_vrrSupport); + if(_VRRSupport == "TRUE") + m_vrrsupport[i] = true; + else + m_vrrsupport[i] = false; } catch(...) { - INT_INFO("Port %s: Exception in Getting the HDMI2 EDID version from system default..... \r\n", "HDMI2"); - m_edidversion[dsHDMI_IN_PORT_2] = HDMI_EDID_VER_20; + try { + INT_INFO("Port %d: Exception in Getting the HDMI%d VRR support from persistence storage. Try system default...\r\n", i,i); + _VRRSupport = device::HostPersistence::getInstance().getDefaultProperty(port_vrrSupport); + if(_VRRSupport == "TRUE") + m_vrrsupport[i] = true; + else + m_vrrsupport[i] = false; } + catch(...) { + INT_INFO("Port %d: Exception in Getting the HDMI%d VRR support from system default..... \r\n", i,i); + m_vrrsupport[i] = false; + } } } - for (itr = 0; itr < dsHDMI_IN_PORT_MAX; itr++) { + for (itr = 0; itr < noOfSupportedHdmiInputs; itr++) { if (getVRRSupport(static_cast(itr), &m_hdmiPortVrrCaps[itr]) >= 0) { INT_INFO("Port HDMI%d: VRR capability : %d\n", itr, m_hdmiPortVrrCaps[itr]); } - } - for (itr = 0; itr < dsHDMI_IN_PORT_MAX; itr++) { if (setEdidVersion (static_cast(itr), m_edidversion[itr]) >= 0) { INT_INFO("Port HDMI%d: Initialized EDID Version : %d\n", itr, m_edidversion[itr]); } @@ -1253,20 +1184,18 @@ IARM_Result_t _dsGetAVLatency (void *arg) void updateEdidAllmBitValuesInPersistence(dsHdmiInPort_t iHdmiPort, bool allmSupport) { INT_INFO("[srv]: Updating values of edid allm bit in persistence\n"); - switch(iHdmiPort){ - case dsHDMI_IN_PORT_0: - device::HostPersistence::getInstance().persistHostProperty("HDMI0.edidallmEnable", allmSupport ? "TRUE" : "FALSE"); - INT_INFO("Port %s: Persist EDID Allm Bit: %d\n", "HDMI0", allmSupport); - break; - case dsHDMI_IN_PORT_1: - device::HostPersistence::getInstance().persistHostProperty("HDMI1.edidallmEnable", allmSupport ? "TRUE" : "FALSE"); - INT_INFO("Port %s: Persist EDID Allm Bit: %d\n", "HDMI1", allmSupport); - break; - case dsHDMI_IN_PORT_2: - device::HostPersistence::getInstance().persistHostProperty("HDMI2.edidallmEnable", allmSupport ? "TRUE" : "FALSE"); - INT_INFO("Port %s: Persist EDID Allm Bit: %d\n", "HDMI2", allmSupport); - break; - } + int port_no = (int)iHdmiPort; + if((port_no >= 0) && (port_no < noOfSupportedHdmiInputs)) + { + std::string port_edidAllmSupport = "HDMI"+std::to_string(port_no)+".edidallmEnable"; + device::HostPersistence::getInstance().persistHostProperty(port_edidAllmSupport, allmSupport ? "TRUE" : "FALSE"); + INT_INFO("Port HDMI%d: Persist EDID Allm Bit: %d\n", port_no, allmSupport); + } + else + { + INT_INFO("Invalid port number to update in persistence\n"); + } + } static dsError_t setEdid2AllmSupport (dsHdmiInPort_t iHdmiPort, bool allmSupport) { @@ -1342,24 +1271,17 @@ IARM_Result_t _dsGetEdid2AllmSupport (void *arg) void updateVRRBitValuesInPersistence(dsHdmiInPort_t iHdmiPort, bool vrrSupport) { INT_INFO("[srv]: Updating values of vrr bit in persistence\n"); - switch(iHdmiPort){ - case dsHDMI_IN_PORT_0: - device::HostPersistence::getInstance().persistHostProperty("HDMI0.vrrEnable", vrrSupport ? "TRUE" : "FALSE"); - INT_INFO("Port %s: Persist EDID VRR Bit: %d\n", "HDMI0", vrrSupport); - break; - case dsHDMI_IN_PORT_1: - device::HostPersistence::getInstance().persistHostProperty("HDMI1.vrrEnable", vrrSupport ? "TRUE" : "FALSE"); - INT_INFO("Port %s: Persist EDID VRR Bit: %d\n", "HDMI1", vrrSupport); - break; - case dsHDMI_IN_PORT_2: - device::HostPersistence::getInstance().persistHostProperty("HDMI2.vrrEnable", vrrSupport ? "TRUE" : "FALSE"); - INT_INFO("Port %s: Persist EDID VRR Bit: %d\n", "HDMI2", vrrSupport); - break; - case dsHDMI_IN_PORT_3: - device::HostPersistence::getInstance().persistHostProperty("HDMI3.vrrEnable", vrrSupport ? "TRUE" : "FALSE"); - INT_INFO("Port %s: Persist EDID VRR Bit: %d\n", "HDMI3", vrrSupport); - break; - } + int port_no = (int)iHdmiPort; + if((port_no >= 0) && (port_no < noOfSupportedHdmiInputs)) + { + std::string port_vrrSupport = "HDMI"+std::to_string(port_no)+".vrrEnable"; + device::HostPersistence::getInstance().persistHostProperty(port_vrrSupport, vrrSupport ? "TRUE" : "FALSE"); + INT_INFO("Port HDMI%d: Persist EDID VRR Bit: %d\n", port_no, vrrSupport); + } + else + { + INT_INFO("Invalid port number to update in persistence\n"); + } } static dsError_t setVRRSupport (dsHdmiInPort_t iHdmiPort, bool vrrSupport) { @@ -1411,7 +1333,7 @@ IARM_Result_t _dsSetVRRSupport (void *arg) param->result = setVRRSupport (param->iHdmiPort, param->vrrSupport); } INT_INFO("[srv] %s: dsSetVRRSupport Port: %d vrrSupport: %d eRet: %d\r\n", __FUNCTION__, param->iHdmiPort, param->vrrSupport, param->result); - if(param->result == dsERR_NONE) + if(param->result == dsERR_NONE && m_hdmiPortVrrCaps[param->iHdmiPort])// update the persistence only for VRR supported ports { updateVRRBitValuesInPersistence(param->iHdmiPort,param->vrrSupport); m_vrrsupport[param->iHdmiPort] = param->vrrSupport;