Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
d3a2867
RDKEMW-11168, RDKEMW-4848: pass the proper handle to dsEnableHDCP (#182)
arun-madhavan-013 Dec 5, 2025
6abd424
RDKEMW-8587: consume the config variables using dlsym() in MW.
santoshcomcast Oct 30, 2025
59bbd5c
fix build issue
santoshcomcast Oct 30, 2025
b08a24d
fix build issue
santoshcomcast Oct 30, 2025
9cc6b5f
addressed review comments
santoshcomcast Nov 5, 2025
ade5a61
fix build issue
santoshcomcast Nov 5, 2025
6ac6e50
fix build issue
santoshcomcast Nov 5, 2025
2dc944b
fix build issue
santoshcomcast Nov 5, 2025
f6f3d48
fix build issue
santoshcomcast Nov 5, 2025
441361b
fix build issue
santoshcomcast Nov 5, 2025
8d36de9
fix coverity issue and removed unwanted code.
santoshcomcast Nov 5, 2025
c676229
Fix build issue.
santoshcomcast Nov 5, 2025
968901d
Addressed review comments.
santoshcomcast Nov 6, 2025
513b3c7
Addressed review comments.
santoshcomcast Nov 6, 2025
fb4785d
addressed review comments.
santoshcomcast Nov 10, 2025
35661b4
RDKEMW-8587: consume the config variables using dlsym() in MW.
santoshcomcast Nov 11, 2025
4c52eeb
RDKEMW-8587: consume the config variables using dlsym() in MW.
santoshcomcast Nov 12, 2025
e645685
fix build issue
santoshcomcast Nov 12, 2025
db4fa61
RDKEMW-8587: consume the config variables using dlsym() in MW.
santoshcomcast Nov 13, 2025
f5838f4
RDKEMW-8587: consume the config variables using dlsym() in MW.
santoshcomcast Nov 14, 2025
82e1bf4
RDKEMW-8587: consume the config variables using dlsym() in MW.
santoshcomcast Nov 17, 2025
2ee6669
RDKEMW-8587: consume the config variables using dlsym() in MW.
santoshcomcast Nov 17, 2025
f68259b
RDKEMW-8587: consume the config variables using dlsym() in MW.
santoshcomcast Nov 17, 2025
45e0530
RDKEMW-8587: consume the config variables using dlsym() in MW.
santoshcomcast Nov 20, 2025
43ad5ad
RDKEMW-8587: consume the config variables using dlsym() in MW.
santoshcomcast Nov 20, 2025
de32c1b
RDKEMW-8587: consume the config variables using dlsym() in MW.
santoshcomcast Nov 20, 2025
efe2f43
debug. disable dumpconfig and add logs
santoshcomcast Dec 9, 2025
a84c6eb
enable debugconfig
santoshcomcast Dec 10, 2025
2b96a08
move the debug prints within if condtion for all config dumpconfig
santoshcomcast Dec 10, 2025
703701e
added few more logs, lock_guard in searchconfig
santoshcomcast Dec 10, 2025
0ba55bf
add delay while every load
santoshcomcast Dec 10, 2025
b69cb63
RDKEMW-8587: Fix dl symbol crash issue
yuvaramachandran-gurusamy Dec 11, 2025
0b96ee2
RDKEMW-8587: Fix dl symbol crash issue
yuvaramachandran-gurusamy Dec 11, 2025
32d57fb
RDKEMW-8587: Fix dl symbol crash issue
yuvaramachandran-gurusamy Dec 11, 2025
7ae4eb6
RDKEMW-8587: Fix build error
yuvaramachandran-gurusamy Dec 11, 2025
cca3783
RDKEMW-8587: Fix FPD std::logical_error crash issue and enhanced the …
yuvaramachandran-gurusamy Dec 12, 2025
01776ad
RDKEMW-8587: Fixed the coverity issues
yuvaramachandran-gurusamy Dec 12, 2025
17564c6
RDKEMW-8587: consume the config variables using dlsym() in MW.
santoshcomcast Dec 16, 2025
b8cdf99
RDKEMW-8587: consume the config variables using dlsym() in MW.
santoshcomcast Dec 16, 2025
898b0bb
1.0.26 release change log updates
apatel859 Jan 8, 2026
a5b7a9f
Merge branch 'release/1.0.26'
apatel859 Jan 8, 2026
62858d9
Merge tag '1.0.26' into develop
apatel859 Jan 8, 2026
5dd27d7
RDKEMW-11232 getAudioFormatApi issue on Xione-UK (#188)
kiruba115 Jan 12, 2026
6594764
1.0.27 release change log updates
apatel859 Jan 12, 2026
3a73464
Merge branch 'release/1.0.27'
apatel859 Jan 12, 2026
56fabff
Merge tag '1.0.27' into develop
apatel859 Jan 12, 2026
8f0dd0f
RDKEMW-12054: Fix Coverity identified issues (#190)
dkumar798 Jan 13, 2026
f90a986
RDKEMW-9781: Video format issue on MTK (#199)
kiruba115 Jan 13, 2026
f11f7de
1.0.28 release change log updates
apatel859 Jan 13, 2026
5b50634
Merge branch 'release/1.0.28'
apatel859 Jan 13, 2026
05c2d95
Merge tag '1.0.28' into develop
apatel859 Jan 13, 2026
2540d79
RDKEMW-10899: Adding IARMBus dependency during Build Time (#205)
yuvaramachandran-gurusamy Jan 20, 2026
9e5074b
1.0.29 release change log updates
apatel859 Jan 21, 2026
edc8c70
Merge branch 'release/1.0.29'
apatel859 Jan 21, 2026
ab7a2df
Merge tag '1.0.29' into develop
apatel859 Jan 21, 2026
664fd4f
RDKEMW-8587: consume the config variables using dlsym() in MW.
santoshcomcast Feb 12, 2026
c1e17e4
RDKEMW-8587, RDKEMW-12193 : consume the config variables using dlsym(…
santoshcomcast Feb 16, 2026
e3b7b2b
Added missing dsConfigs.c file
santoshcomcast Feb 17, 2026
f8c568e
addressed internal review comments and cleanup code.
santoshcomcast Feb 17, 2026
901a227
fix build linking issue
santoshcomcast Feb 18, 2026
ef6597a
Fix run time errors.
santoshcomcast Feb 19, 2026
2a0902b
Add free() funcation while dsTerm and addressing review comments.
santoshcomcast Feb 23, 2026
b4a0fba
Add missing headrfile changes
santoshcomcast Feb 23, 2026
31735bd
Fix build errors.
santoshcomcast Feb 23, 2026
f2369dd
fix build issue
santoshcomcast Feb 23, 2026
ea8f943
Merge branch 'develop' into feature/RDKEMW-8587-dlsym
santoshcomcast Feb 24, 2026
4534399
addresss all review comments
santoshcomcast Feb 25, 2026
0cdf7e0
address copilt review and fix setresolution issue
santoshcomcast Feb 26, 2026
55f0c79
add use of orginal resolutions
santoshcomcast Feb 26, 2026
07a40d8
address all the review comments
santoshcomcast Mar 2, 2026
88716e5
address the copilot review
santoshcomcast Mar 2, 2026
d074e1d
fix native build issue
santoshcomcast Mar 3, 2026
0493378
address copilot review comments
santoshcomcast Mar 3, 2026
ffe1449
fix native build issue
santoshcomcast Mar 3, 2026
69f17ed
addressing copilot review
santoshcomcast Mar 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,42 @@ 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.29](https://github.com/rdkcentral/devicesettings/compare/1.0.28...1.0.29)

- RDKEMW-10899: Adding IARMBus dependency during Build Time [`#205`](https://github.com/rdkcentral/devicesettings/pull/205)
- Merge tag '1.0.28' into develop [`05c2d95`](https://github.com/rdkcentral/devicesettings/commit/05c2d95b7b413f3322c3a0b746fd9ccf260d3ad2)

#### [1.0.28](https://github.com/rdkcentral/devicesettings/compare/1.0.27...1.0.28)

> 13 January 2026

- RDKEMW-9781: Video format issue on MTK [`#199`](https://github.com/rdkcentral/devicesettings/pull/199)
- RDKEMW-12054: Fix Coverity identified issues [`#190`](https://github.com/rdkcentral/devicesettings/pull/190)
- 1.0.28 release change log updates [`f11f7de`](https://github.com/rdkcentral/devicesettings/commit/f11f7de47304fbf0a8669d1894c243dc86c76e02)
- Merge tag '1.0.27' into develop [`56fabff`](https://github.com/rdkcentral/devicesettings/commit/56fabffd8576c37eedb03dac31c3238fa318977d)

#### [1.0.27](https://github.com/rdkcentral/devicesettings/compare/1.0.26...1.0.27)

> 12 January 2026

- RDKEMW-11232 getAudioFormatApi issue on Xione-UK [`#188`](https://github.com/rdkcentral/devicesettings/pull/188)
- 1.0.27 release change log updates [`6594764`](https://github.com/rdkcentral/devicesettings/commit/6594764c3fde44fdb313576482cd7c2589fe1493)
- Merge tag '1.0.26' into develop [`62858d9`](https://github.com/rdkcentral/devicesettings/commit/62858d954e5871070b4e0433c9e06abaf8ff97d1)

#### [1.0.26](https://github.com/rdkcentral/devicesettings/compare/1.0.25...1.0.26)

> 8 January 2026

- RDKEMW-11168, RDKEMW-4848: pass the proper handle to dsEnableHDCP [`#182`](https://github.com/rdkcentral/devicesettings/pull/182)
- 1.0.26 release change log updates [`898b0bb`](https://github.com/rdkcentral/devicesettings/commit/898b0bbcbc5e16bd1c5f4bcf2e881b8ef037c8af)
- Merge tag '1.0.25' into develop [`ce8af83`](https://github.com/rdkcentral/devicesettings/commit/ce8af8303729b6a01fe4d8240de74fe365cdafe4)

#### [1.0.25](https://github.com/rdkcentral/devicesettings/compare/1.0.24...1.0.25)

> 20 November 2025

- Feature/rdkemw 7496 [`#134`](https://github.com/rdkcentral/devicesettings/pull/134)
- 1.0.25 release change log updates [`75b7563`](https://github.com/rdkcentral/devicesettings/commit/75b7563fc461eeaa31bd68140f29ccf0900a6655)
- Merge tag '1.0.24' into develop [`4e94421`](https://github.com/rdkcentral/devicesettings/commit/4e94421d193d4d5e7dea28ccf49198c7dc2bf1d4)

#### [1.0.24](https://github.com/rdkcentral/devicesettings/compare/1.0.23...1.0.24)
Expand Down
12 changes: 6 additions & 6 deletions ds/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -33,17 +33,17 @@ INCLUDE := -I$(PWD) \
-I$(PWD)/config \
-I$(PWD)/hal/include \
-I$(PWD)/hal/src \
-I$(PWD)/ds/include \
-I$(PWD)/ds \
-I$(PWD)/rpc/include \
-I$(PWD)/ds/include
-I$(PWD)/rpc/include
else
INCLUDE := -I$(PWD) \
-I$(LOG4C_INSTALL_DIR)/include \
-I$(PWD)/config \
-I$(PWD)/hal/include \
-I$(PWD)/ds/include \
-I$(PWD)/ds \
-I$(PWD)/rpc/include \
-I$(PWD)/ds/include
-I$(PWD)/rpc/include
endif


Expand All @@ -59,8 +59,8 @@ all: install

library: $(OBJS)
@echo "Building $(LIBNAMEFULL) ...."
$(CXX) $(OBJS) $(CFLAGS) $(DSHAL_LDFLAGS) -L$(INSTALL)/lib -ldshalcli -shared -o $(LIBNAMEFULL)
$(CXX) $(OBJS) $(CFLAGS) -L$(INSTALL)/lib -ldshalcli -shared -o $(LIBNAMECLI)
$(CXX) $(OBJS) $(CFLAGS) $(DSHAL_LDFLAGS) -L$(INSTALL)/lib -lIARMBus -ldshalcli -shared -o $(LIBNAMEFULL)
$(CXX) $(OBJS) $(CFLAGS) -L$(INSTALL)/lib -lIARMBus -ldshalcli -shared -o $(LIBNAMECLI)
Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This library now calls dlopen/dlsym (see ds/manager.cpp), but the link command here only adds -lIARMBus -ldshalcli. On many systems you must also link -ldl to resolve these symbols. Consider adding -ldl (or ensuring $(DSHAL_LDFLAGS) already includes it) to avoid link failures.

Suggested change
$(CXX) $(OBJS) $(CFLAGS) -L$(INSTALL)/lib -lIARMBus -ldshalcli -shared -o $(LIBNAMECLI)
$(CXX) $(OBJS) $(CFLAGS) $(DSHAL_LDFLAGS) -L$(INSTALL)/lib -lIARMBus -ldshalcli -shared -o $(LIBNAMECLI)

Copilot uses AI. Check for mistakes.

%.o: %.cpp
@echo "Building $@ ...."
Expand Down
8 changes: 4 additions & 4 deletions ds/audioOutputPort.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ AudioOutputPort::AudioOutputPort(const int type, const int index, const int id)
out << getType().getName() << _index;
_name = out.str();
}
printf ("\nAudioOutputPort init: _type:%d _index:%d _handle:%d\n", _type, _index, _handle);
printf ("\nAudioOutputPort init: _type:%d _index:%d _handle:%ld\n", _type, _index, (long)_handle);
if (dsERR_NONE == ret) {
//dsGetAudioCompression (_handle, (dsAudioCompression_t *)&_compression);
dsGetAudioEncoding (_handle, (dsAudioEncoding_t *)&_encoding);
Expand Down Expand Up @@ -184,7 +184,7 @@ dsError_t AudioOutputPort::reInitializeAudioOutputPort()
_name = out.str();
}

printf ("\nAudioOutputPort init: _type:%d _index:%d _handle:%d\n", _type, _index, _handle);
printf ("\nAudioOutputPort init: _type:%d _index:%d _handle:%ld\n", _type, _index,(long)_handle);
if (dsERR_NONE == ret) {
//dsGetAudioCompression>(_handle, (dsAudioCompression_t *)&_compression);
dsGetAudioEncoding(_handle, (dsAudioEncoding_t *)&_encoding);
Expand Down Expand Up @@ -1422,11 +1422,11 @@ void AudioOutputPort::setAudioDelay(const uint32_t audioDelayMs)
dsError_t ret = dsERR_NONE;
uint32_t ms = audioDelayMs;

INT_INFO("AudioOutputPort [%s], setting delay to [%lu] ms\n", _name.c_str(), audioDelayMs);
INT_INFO("AudioOutputPort [%s], setting delay to [%u] ms\n", _name.c_str(), audioDelayMs);

if (ms > audioDelayMsMax)
{
INT_ERROR("AudioOutputPort [%s], delay [%lu] ms, exceeds max [%lu]. Setting Max \n",
INT_ERROR("AudioOutputPort [%s], delay [%u] ms, exceeds max [%u]. Setting Max \n",
_name.c_str(),
audioDelayMs,
audioDelayMsMax);
Expand Down
213 changes: 150 additions & 63 deletions ds/audioOutputPortConfig.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*
* If not stated otherwise in this file or this component's LICENSE file the
* following copyright and licenses apply:

Check failure on line 3 in ds/audioOutputPortConfig.cpp

View workflow job for this annotation

GitHub Actions / call-fossid-workflow / Fossid Annotate PR

FossID License Issue Detected

Source code with 'Apache-2.0' license found in local file 'ds/audioOutputPortConfig.cpp' (Match: rdk/components/generic/devicesettings/rdk/components/generic/devicesettings/2.1-20161031, 278 lines, url: https://code.rdkcentral.com/r/plugins/gitiles/rdk/components/generic/devicesettings/+archive/2.1-20161031.tar.gz, file: ds/audioOutputPortConfig.cpp)
*
* Copyright 2016 RDK Management
*
Expand Down Expand Up @@ -34,6 +34,9 @@
#include "dsUtl.h"
#include "stdlib.h"
#include "dslogger.h"
#include <dlfcn.h>
#include "manager.hpp"


namespace device {

Expand Down Expand Up @@ -108,68 +111,155 @@
return supportedTypes;
}

void AudioOutputPortConfig::load()
void dumpconfig(audioConfigs_t *config)
{
try {
/*
* Load Constants First.
*/
for (int i = 0; i < dsAUDIO_ENC_MAX; i++) {
_aEncodings.push_back(AudioEncoding(i));
}

for (int i = 0; i < dsAUDIO_CMP_MAX; i++) {
_aCompressions.push_back(AudioCompression(i));

}

for (int i = 0; i < dsAUDIO_STEREO_MAX; i++) {
_aStereoModes.push_back(AudioStereoMode(i));

}

for (int i = 0; i < dsAUDIOPORT_TYPE_MAX; i++) {
_aPortTypes.push_back(AudioOutputPortType(i));

}

/*
* Initialize Audio portTypes (encodings, compressions etc.)
* and its port instances (db, level etc)
*/
for (size_t i = 0; i < dsUTL_DIM(kConfigs); i++) {
const dsAudioTypeConfig_t *typeCfg = &kConfigs[i];
AudioOutputPortType &aPortType = AudioOutputPortType::getInstance(typeCfg->typeId);
aPortType.enable();
for (size_t j = 0; j < typeCfg->numSupportedEncodings; j++) {
aPortType.addEncoding(AudioEncoding::getInstance(typeCfg->encodings[j]));
_aEncodings.at(typeCfg->encodings[j]).enable();
}
for (size_t j = 0; j < typeCfg->numSupportedCompressions; j++) {
aPortType.addCompression(typeCfg->compressions[j]);
_aCompressions.at(typeCfg->compressions[j]).enable();

}
for (size_t j = 0; j < typeCfg->numSupportedStereoModes; j++) {
aPortType.addStereoMode(typeCfg->stereoModes[j]);
_aStereoModes.at(typeCfg->stereoModes[j]).enable();

}
}

/*
* set up ports based on kPorts[]
*/
for (size_t i = 0; i < dsUTL_DIM(kPorts); i++) {
const dsAudioPortConfig_t *port = &kPorts[i];
_aPorts.push_back(AudioOutputPort((port->id.type), port->id.index, i));
_aPortTypes.at(port->id.type).addPort(_aPorts.at(i));
}
if (nullptr == config) {
INT_ERROR("Audio config is NULL");
return;
}
if ( -1 == access("/opt/dsMgrDumpDeviceConfigs", F_OK) ) {
INT_INFO("Dumping of Device configs is disabled");
return;
}

int configSize = -1, portSize = -1;
INT_INFO("\n=============== Starting to Dump Audio Configs ===============\n");
if( nullptr != config->pKConfigs )
{
configSize = (config->pKConfigSize) ? *(config->pKConfigSize) : -1;

for (int i = 0; i < configSize; i++) {
const dsAudioTypeConfig_t *typeCfg = &(config->pKConfigs[i]);
INT_INFO("typeCfg->typeId = %d", typeCfg->typeId);
INT_INFO("typeCfg->name = %s", typeCfg->name);
INT_INFO("typeCfg->numSupportedEncodings = %zu", typeCfg->numSupportedEncodings);
INT_INFO("typeCfg->numSupportedCompressions = %zu", typeCfg->numSupportedCompressions);
INT_INFO("typeCfg->numSupportedStereoModes = %zu", typeCfg->numSupportedStereoModes);
}
}
else
{
INT_ERROR("kAudioConfigs is NULL");
}

if( nullptr != config->pKPorts )
{
portSize = (config->pKPortSize) ? *(config->pKPortSize) : -1;
for (int i = 0; i < portSize; i++) {
const dsAudioPortConfig_t *portCfg = &(config->pKPorts[i]);
INT_INFO("portCfg->id.type = %d", portCfg->id.type);
INT_INFO("portCfg->id.index = %d", portCfg->id.index);
}
}
else
{
INT_ERROR("kAudioPorts is NULL");
}

INT_INFO("\n=============== Dump Audio Configs done ===============\n");
}

}
catch(const Exception &e) {
throw e;
}
void AudioOutputPortConfig::load(audioConfigs_t* dynamicAudioConfigs)
{
int configSize = -1, portSize = -1;
audioConfigs_t configuration = {0};

INT_INFO("Enter function");
try {
/*
* Load Constants First.
*/
for (int i = 0; i < dsAUDIO_ENC_MAX; i++) {
_aEncodings.push_back(AudioEncoding(i));
}

for (int i = 0; i < dsAUDIO_CMP_MAX; i++) {
_aCompressions.push_back(AudioCompression(i));

}

for (int i = 0; i < dsAUDIO_STEREO_MAX; i++) {
_aStereoModes.push_back(AudioStereoMode(i));

}

for (int i = 0; i < dsAUDIOPORT_TYPE_MAX; i++) {
_aPortTypes.push_back(AudioOutputPortType(i));

}

INT_INFO("Using '%s' config", dynamicAudioConfigs ? "dynamic" : "static");
if ( nullptr != dynamicAudioConfigs )
{
configuration = *dynamicAudioConfigs;
configSize = (configuration.pKConfigSize) ? *(configuration.pKConfigSize) : -1;
portSize = (configuration.pKPortSize) ? *(configuration.pKPortSize) : -1;
}
else {
configuration.pKConfigs = kConfigs;
configSize = dsUTL_DIM(kConfigs);
configuration.pKConfigSize = &configSize;
configuration.pKPorts = kPorts;
portSize = dsUTL_DIM(kPorts);
configuration.pKPortSize = &portSize;
}

INT_INFO("Audio Config[%p] ConfigSize[%d] Ports[%p] PortSize[%d]",
configuration.pKConfigs,
configSize,
configuration.pKPorts,
portSize);

dumpconfig(&configuration);

/*
* Check if configs are loaded properly
*/
if (( nullptr != configuration.pKConfigs ) && ( nullptr != configuration.pKPorts ))
{
/*
* Initialize Audio portTypes (encodings, compressions etc.)
* and its port instances (db, level etc)
*/
for (int i = 0; i < configSize; i++) {
const dsAudioTypeConfig_t *typeCfg = &(configuration.pKConfigs[i]);
AudioOutputPortType &aPortType = AudioOutputPortType::getInstance(typeCfg->typeId);
aPortType.enable();
for (int j = 0; j < typeCfg->numSupportedEncodings; j++) {
const dsAudioEncoding_t* encoding = &typeCfg->encodings[j];
aPortType.addEncoding(AudioEncoding::getInstance(*encoding));
_aEncodings.at(*encoding).enable();
}
for (int j = 0; j < typeCfg->numSupportedCompressions; j++) {
const dsAudioCompression_t* compression = &typeCfg->compressions[j];
aPortType.addCompression(*compression);
_aCompressions.at(*compression).enable();
}
for (int j = 0; j < typeCfg->numSupportedStereoModes; j++) {
const dsAudioStereoMode_t *stereoMode = &typeCfg->stereoModes[j];
aPortType.addStereoMode(*stereoMode);
_aStereoModes.at(*stereoMode).enable();
}
}

/*
* set up ports based on kPorts[]
*/
for (int i = 0; i < portSize; i++) {
const dsAudioPortConfig_t *portCfg = &configuration.pKPorts[i];
_aPorts.push_back(AudioOutputPort((portCfg->id.type), portCfg->id.index, i));
_aPortTypes.at(portCfg->id.type).addPort(_aPorts.at(i));
}
INT_INFO("Audio Configs loaded successfully");
}
else {
INT_ERROR("Audio Configs loading failed");
}
}
catch(const Exception &e) {
throw e;
}
INT_INFO("Exit function");
}

void AudioOutputPortConfig::release()
Expand All @@ -187,8 +277,5 @@

}
}



/** @} */
/** @} */
10 changes: 9 additions & 1 deletion ds/audioOutputPortConfig.hpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*
* If not stated otherwise in this file or this component's LICENSE file the
* following copyright and licenses apply:

Check failure on line 3 in ds/audioOutputPortConfig.hpp

View workflow job for this annotation

GitHub Actions / call-fossid-workflow / Fossid Annotate PR

FossID License Issue Detected

Source code with 'Apache-2.0' license found in local file 'ds/audioOutputPortConfig.hpp' (Match: rdk/components/generic/devicesettings/rdk/components/generic/devicesettings/2.1-20161031, 85 lines, url: https://code.rdkcentral.com/r/plugins/gitiles/rdk/components/generic/devicesettings/+archive/2.1-20161031.tar.gz, file: ds/audioOutputPortConfig.hpp)
*
* Copyright 2016 RDK Management
*
Expand Down Expand Up @@ -38,6 +38,14 @@
#include <list>
#include <string>

typedef struct audioConfigs
{
const dsAudioTypeConfig_t *pKConfigs;
const dsAudioPortConfig_t *pKPorts;
int *pKConfigSize;
int *pKPortSize;
}audioConfigs_t;
Comment on lines +41 to +47
Copy link

Copilot AI Feb 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Duplicate type definition. The audioConfigs_t type is defined both in audioOutputPortConfig.hpp (lines 41-47) and in manager.hpp through the included headers. This can lead to ODR violations. Consider using a shared header or forward declarations.

Suggested change
typedef struct audioConfigs
{
const dsAudioTypeConfig_t *pKConfigs;
const dsAudioPortConfig_t *pKPorts;
int *pKConfigSize;
int *pKPortSize;
}audioConfigs_t;
struct audioConfigs;
typedef struct audioConfigs audioConfigs_t;

Copilot uses AI. Check for mistakes.

namespace device {

class AudioOutputPortConfig {
Expand Down Expand Up @@ -66,7 +74,7 @@
List<AudioOutputPort> getPorts();
List<AudioOutputPortType> getSupportedTypes();

Copy link

Copilot AI Feb 12, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changing AudioOutputPortConfig::load() to load(audioConfigs_t*) is an API-breaking change. There are existing callers still using the no-arg form (e.g., test/testConfigAOP.cpp:59 and test/testConfigVOP.cpp:60 from repo search), which will fail to compile unless updated. Consider keeping a no-arg overload that forwards to load(nullptr) (or update all call sites in the same PR).

Suggested change
// Backward-compatible no-arg overload: delegates to pointer-based load.
void load() { load(nullptr); }

Copilot uses AI. Check for mistakes.
void load();
void load(audioConfigs_t* dynamicAudioConfigs);
void release();

};
Expand Down
Loading