diff --git a/CHANGELOG.md b/CHANGELOG.md index 58dafc5a..37340e5b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,9 +4,18 @@ 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.19](https://github.com/rdkcentral/devicesettings/compare/1.0.18...1.0.19) + +- RDKEMW-7503: Volume level failed to persist post reboot (#119) [`#131`](https://github.com/rdkcentral/devicesettings/pull/131) +- RDKEMW-6595: Fix coverity issue in devicesettings [`#87`](https://github.com/rdkcentral/devicesettings/pull/87) +- Merge tag '1.0.18' into develop [`11fc3d8`](https://github.com/rdkcentral/devicesettings/commit/11fc3d8b43bb6120192c05087befdfa9e5d67059) + #### [1.0.18](https://github.com/rdkcentral/devicesettings/compare/1.0.17...1.0.18) +> 7 August 2025 + - RDKEMW-6380: Handled optical and ARC audio delay properly [`#91`](https://github.com/rdkcentral/devicesettings/pull/91) +- 1.0.18 release change log updates [`43ddc83`](https://github.com/rdkcentral/devicesettings/commit/43ddc83c1a31d1ea54808fb6952dc5afb02bad57) - Merge tag '1.0.17' into develop [`27c02cd`](https://github.com/rdkcentral/devicesettings/commit/27c02cd9589739bc15d9d466ce564d45c4de4578) #### [1.0.17](https://github.com/rdkcentral/devicesettings/compare/1.0.16...1.0.17) @@ -51,10 +60,21 @@ 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.11...1.0.12) +#### [1.0.12](https://github.com/rdkcentral/devicesettings/compare/1.0.12-hotfix.2...1.0.12) > 11 June 2025 +#### [1.0.12-hotfix.2](https://github.com/rdkcentral/devicesettings/compare/1.0.12-hotfix.1...1.0.12-hotfix.2) + +> 27 August 2025 + +- RDKEMW-7503: Volume level failed to persist post reboot [`#119`](https://github.com/rdkcentral/devicesettings/pull/119) + +#### [1.0.12-hotfix.1](https://github.com/rdkcentral/devicesettings/compare/1.0.11...1.0.12-hotfix.1) + +> 14 August 2025 + +- RDKEMW-6380: Handled optical and ARC audio delay properly (#91) [`#95`](https://github.com/rdkcentral/devicesettings/pull/95) - RDKEMW-4116: DS Generic Error Fix [`#64`](https://github.com/rdkcentral/devicesettings/pull/64) - MTK-991: DS Generic Changes for additiona framereate [`67ac80e`](https://github.com/rdkcentral/devicesettings/commit/67ac80eb4a9ae99c96a00623546ab124ae1fa8d9) - MTK-991: DS Generic Error Fix [`8b035e6`](https://github.com/rdkcentral/devicesettings/commit/8b035e6455d3ba8c44a15d742feec6c67bf45155) diff --git a/rpc/srv/dsAudio.c b/rpc/srv/dsAudio.c index 31083f8a..90b1504a 100755 --- a/rpc/srv/dsAudio.c +++ b/rpc/srv/dsAudio.c @@ -332,6 +332,28 @@ void AudioConfigInit() INT_DEBUG("dsSetAudioLevel_t(int, float ) is defined and loaded\r\n"); std::string _AudioLevel("0"); float m_audioLevel = 0; +//SPDIF init + handle = 0; + if(dsGetAudioPort(dsAUDIOPORT_TYPE_SPDIF,0,&handle) == dsERR_NONE) { + try { + _AudioLevel = device::HostPersistence::getInstance().getProperty("SPDIF0.audio.Level"); + } + catch(...) { + try { + INT_DEBUG("SPDIF0.audio.Level not found in persistence store. Try system default\n"); + _AudioLevel = device::HostPersistence::getInstance().getDefaultProperty("SPDIF0.audio.Level"); + } + catch(...) { + _AudioLevel = "40"; + } + } + m_audioLevel = atof(_AudioLevel.c_str()); + 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 handle = 0; if(dsGetAudioPort(dsAUDIOPORT_TYPE_SPEAKER,0,&handle) == dsERR_NONE) { @@ -348,6 +370,7 @@ 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); @@ -369,6 +392,7 @@ void AudioConfigInit() } } m_audioLevel = atof(_AudioLevel.c_str()); + audioLevel_cache_headphone = m_audioLevel; if (dsSetAudioLevelFunc(handle, m_audioLevel) == dsERR_NONE) { INT_INFO("Port %s: Initialized audio level : %f\n","HEADPHONE0", m_audioLevel); } @@ -389,11 +413,13 @@ void AudioConfigInit() } } m_audioLevel = atof(_AudioLevel.c_str()); + 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; } } + } else { INT_INFO("dsSetAudioLevel_t(int, float ) is not defined\r\n"); @@ -7050,7 +7076,7 @@ IARM_Result_t _dsGetHDMIARCPortId(void *arg) #ifdef DS_AUDIO_SETTINGS_PERSISTENCE static void* persist_audioLevel_timer_threadFunc(void* arg) { - float prev_audioLevel_spdif = 0.0, prev_audioLevel_speaker = 0.0, prev_audioLevel_hdmi = 0.0, prev_audioLevel_headphone = 0.0; + float prev_audioLevel_spdif = audioLevel_cache_spdif, prev_audioLevel_speaker = audioLevel_cache_speaker, prev_audioLevel_hdmi = audioLevel_cache_hdmi, prev_audioLevel_headphone = audioLevel_cache_headphone; INT_DEBUG("%s Audio level persistence update timer thread running...\n",__func__); struct timespec ts; while(1){