Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion ds/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ all: install

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

%.o: %.cpp
Expand Down
122 changes: 121 additions & 1 deletion 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, 311 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 @@ -35,6 +35,126 @@
#include "stdlib.h"
#include "dslogger.h"

//const dsAudioTypeConfig_t kConfig_audio ;
//const dsAudioPortConfig_t kPort_audio ;


/*
* Setup the supported configurations here.
*/
dsAudioPortType_t kSupportedPortTypes1[] = { dsAUDIOPORT_TYPE_SPDIF, dsAUDIOPORT_TYPE_SPEAKER, dsAUDIOPORT_TYPE_HDMI_ARC, dsAUDIOPORT_TYPE_HEADPHONE };

dsAudioEncoding_t kSupportedSPDIFEncodings1[] = { dsAUDIO_ENC_PCM, dsAUDIO_ENC_AC3, };
dsAudioCompression_t kSupportedSPDIFCompressions1[] = { dsAUDIO_CMP_NONE, dsAUDIO_CMP_LIGHT, dsAUDIO_CMP_MEDIUM, dsAUDIO_CMP_HEAVY, };
dsAudioStereoMode_t kSupportedSPDIFStereoModes1[] = { dsAUDIO_STEREO_STEREO, dsAUDIO_STEREO_SURROUND, dsAUDIO_STEREO_PASSTHRU };

dsAudioEncoding_t kSupportedHEADPHONEEncodings1[] = { dsAUDIO_ENC_PCM, };
dsAudioCompression_t kSupportedHEADPHONECompressions1[] = { dsAUDIO_CMP_NONE, dsAUDIO_CMP_LIGHT, dsAUDIO_CMP_MEDIUM, dsAUDIO_CMP_HEAVY, };
dsAudioStereoMode_t kSupportedHEADPHONEStereoModes1[] = { dsAUDIO_STEREO_STEREO, dsAUDIO_STEREO_SURROUND, };

dsAudioEncoding_t kSupportedSPEAKEREncodings1[] = { dsAUDIO_ENC_PCM, dsAUDIO_ENC_AC3, };
dsAudioCompression_t kSupportedSPEAKERCompressions1[] = { dsAUDIO_CMP_NONE, dsAUDIO_CMP_LIGHT, dsAUDIO_CMP_MEDIUM, dsAUDIO_CMP_HEAVY, };
dsAudioStereoMode_t kSupportedSPEAKERStereoModes1[] = { dsAUDIO_STEREO_STEREO, dsAUDIO_STEREO_SURROUND, };

dsAudioEncoding_t kSupportedARCEncodings1[] = { dsAUDIO_ENC_PCM, dsAUDIO_ENC_AC3, };
dsAudioCompression_t kSupportedARCCompressions1[] = { dsAUDIO_CMP_NONE, dsAUDIO_CMP_LIGHT, dsAUDIO_CMP_MEDIUM, dsAUDIO_CMP_HEAVY, };
dsAudioStereoMode_t kSupportedARCStereoModes1[] = { dsAUDIO_STEREO_STEREO, dsAUDIO_STEREO_SURROUND, dsAUDIO_STEREO_PASSTHRU };


dsAudioTypeConfig_t kConfig_audio[]= {

{
/*.typeId = */ dsAUDIOPORT_TYPE_SPDIF,
/*.name = */ "SPDIF", //SPDIF
/*.numSupportedCompressions = */dsUTL_DIM(kSupportedSPDIFCompressions1),
/*.compressions = */ kSupportedSPDIFCompressions1,
/*.numSupportedEncodings = */ dsUTL_DIM(kSupportedSPDIFEncodings1),
/*.encodings = */ kSupportedSPDIFEncodings1,
/*.numSupportedStereoModes = */ dsUTL_DIM(kSupportedSPDIFStereoModes1),
/*.stereoModes = */ kSupportedSPDIFStereoModes1,
},

{
/*.typeId = */ dsAUDIOPORT_TYPE_HEADPHONE,
/*.name = */ "HEADPHONE", //HEADPHONE
/*.numSupportedCompressions = */dsUTL_DIM(kSupportedHEADPHONECompressions1),
/*.compressions = */ kSupportedHEADPHONECompressions1,
/*.numSupportedEncodings = */ dsUTL_DIM(kSupportedHEADPHONEEncodings1),
/*.encodings = */ kSupportedHEADPHONEEncodings1,
/*.numSupportedStereoModes = */ dsUTL_DIM(kSupportedHEADPHONEStereoModes1),
/*.stereoModes = */ kSupportedHEADPHONEStereoModes1,
},

{
/*.typeId = */ dsAUDIOPORT_TYPE_SPEAKER,
/*.name = */ "SPEAKER", //SPEAKER
/*.numSupportedCompressions = */dsUTL_DIM(kSupportedSPEAKERCompressions1),
/*.compressions = */ kSupportedSPEAKERCompressions1,
/*.numSupportedEncodings = */ dsUTL_DIM(kSupportedSPEAKEREncodings1),
/*.encodings = */ kSupportedSPEAKEREncodings1,
/*.numSupportedStereoModes = */ dsUTL_DIM(kSupportedSPEAKERStereoModes1),
/*.stereoModes = */ kSupportedSPEAKERStereoModes1,
},
{
/*.typeId = */ dsAUDIOPORT_TYPE_HDMI_ARC,
/*.name = */ "HDMI_ARC", //ARC/eARC
/*.numSupportedCompressions = */dsUTL_DIM(kSupportedARCCompressions1),
/*.compressions = */ kSupportedARCCompressions1,
/*.numSupportedEncodings = */ dsUTL_DIM(kSupportedARCEncodings1),
/*.encodings = */ kSupportedARCEncodings1,
/*.numSupportedStereoModes = */ dsUTL_DIM(kSupportedARCStereoModes1),
/*.stereoModes = */ kSupportedARCStereoModes1,
}
};

dsVideoPortPortId_t connectedVOPs1[dsAUDIOPORT_TYPE_MAX][dsVIDEOPORT_TYPE_MAX] = {
{/*VOPs connected to LR Audio */

},
{/*VOPs connected to HDMI Audio */
},
{/*VOPs connected to SPDIF Audio */
{dsVIDEOPORT_TYPE_INTERNAL, 0},
},
{/*VOPs connected to SPEAKER Audio */
{dsVIDEOPORT_TYPE_INTERNAL, 0},
},
{/*VOPs connected to ARC Audio */
{dsVIDEOPORT_TYPE_INTERNAL, 0},
},
{/*VOPs connected to HEADPHONE Audio */
{dsVIDEOPORT_TYPE_INTERNAL, 0},
}
};

dsAudioPortConfig_t kPort_audio[] = {

{
/*.typeId = */ {dsAUDIOPORT_TYPE_SPDIF, 0},
/*.connectedVOPs = */ connectedVOPs1[dsAUDIOPORT_TYPE_SPDIF],
},



{
/*.typeId = */ {dsAUDIOPORT_TYPE_HEADPHONE, 0},
/*.connectedVOPs = */ connectedVOPs1[dsAUDIOPORT_TYPE_HEADPHONE],
},

{
/*.typeId = */ {dsAUDIOPORT_TYPE_SPEAKER, 0},
/*.connectedVOPs = */ connectedVOPs1[dsAUDIOPORT_TYPE_SPEAKER],
},
{
/*.typeId = */ {dsAUDIOPORT_TYPE_HDMI_ARC, 0},
/*.connectedVOPs = */ connectedVOPs1[dsAUDIOPORT_TYPE_HDMI_ARC],
}
};

int kConfig_size = sizeof(kConfig_audio) / sizeof(kConfig_audio[0]);
int kPort_size = sizeof(kPort_audio) / sizeof(kPort_audio[0]);


namespace device {

//To Make the instance as thread-safe, using = default, that can request special methods from the compiler. They are Special because only compiler can create them.
Expand Down Expand Up @@ -157,6 +277,7 @@
}
}


/*
* set up ports based on kPorts[]
*/
Expand All @@ -165,7 +286,6 @@
_aPorts.push_back(AudioOutputPort((port->id.type), port->id.index, i));
_aPortTypes.at(port->id.type).addPort(_aPorts.at(i));
}

}
catch(const Exception &e) {
throw e;
Expand Down
148 changes: 148 additions & 0 deletions rpc/srv/dsAudio.c
100755 → 100644
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 rpc/srv/dsAudio.c

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 'rpc/srv/dsAudio.c' (Match: rdk/components/generic/devicesettings/rdk/components/generic/devicesettings/b34ed54, 7206 lines, url: https://code.rdkcentral.com/r/plugins/gitiles/rdk/components/generic/devicesettings/+archive/b34ed545b533a0cf4d29d221cc23daad47f32644.tar.gz, file: rpc/srv/dsAudio.c)

Check failure on line 3 in rpc/srv/dsAudio.c

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 'rpc/srv/dsAudio.c' (Match: rdk/components/generic/devicesettings/rdk/components/generic/devicesettings/2003, 7206 lines, url: https://code.rdkcentral.com/r/plugins/gitiles/rdk/components/generic/devicesettings/+archive/rdk-dev-2003.tar.gz, file: rpc/srv/dsAudio.c)

Check failure on line 3 in rpc/srv/dsAudio.c

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 'rpc/srv/dsAudio.c' (Match: rdk/components/generic/devicesettings/rdk/components/generic/devicesettings/2009, 7206 lines, url: https://code.rdkcentral.com/r/plugins/gitiles/rdk/components/generic/devicesettings/+archive/rdk-dev-2009.tar.gz, file: rpc/srv/dsAudio.c)

Check failure on line 3 in rpc/srv/dsAudio.c

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 'rpc/srv/dsAudio.c' (Match: rdk/components/generic/devicesettings/rdk/components/generic/devicesettings/2102, 7206 lines, url: https://code.rdkcentral.com/r/plugins/gitiles/rdk/components/generic/devicesettings/+archive/rdk-dev-2102.tar.gz, file: rpc/srv/dsAudio.c)
*
* Copyright 2016 RDK Management
*
Expand Down Expand Up @@ -53,6 +53,29 @@

#include "safec_lib.h"

#if 0
#include <dlfcn.h>
#include "libIARM.h"
#include "libIBus.h"
#include "iarmUtil.h"
#include "dsAudioSettings.h"

#define IARM_BUS_Lock(lock) pthread_mutex_lock(&dsLock)
#define IARM_BUS_Unlock(lock) pthread_mutex_unlock(&dsLock)

static pthread_mutex_t dsLock = PTHREAD_MUTEX_INITIALIZER;
#endif

extern dsAudioTypeConfig_t kConfig_audio[dsAUDIOPORT_TYPE_MAX];
extern dsAudioPortConfig_t kPort_audio[dsAUDIOPORT_TYPE_MAX];
extern int kConfig_size, kPort_size;
static dsAudioTypeConfig_t *kConfigs1 = NULL;//, *kConfigs2 = kConfig_audio;
static dsAudioPortConfig_t *kPorts1 = NULL;//, *kPorts2 = kPort_audio;
int *pKConSize, *pKPortSize;
static int kConfig_size_local = -1, kPort_size_local = -1;



static int m_isInitialized = 0;
static int m_isPlatInitialized = 0;

Expand Down Expand Up @@ -2091,10 +2114,135 @@
#endif //DS_AUDIO_SETTINGS_PERSISTENCE
}

bool searchConfigs()
{
//int kConfig_size_local = -1, kPort_size_local = -1;

//IARM_BUS_Lock(lock);

//if ( kConfigs1 == NULL)
{
void *dllib = dlopen("libds.so", RTLD_LAZY);
if (dllib) {
kConfigs1 = (dsAudioTypeConfig_t *) dlsym(dllib, "kConfig_audio");
if (kConfigs1) {
INT_DEBUG("kConfig_audio is defined and loaded kConfigs1 = %p\r\n", kConfigs1);
printf("%d:%s: kConfig_audio is defined and loaded kConfigs1 = %p\n", __LINE__, __func__, kConfigs1);
}
else {
INT_INFO("kConfig_audio is not defined\r\n");
printf("%d:%s: kConfig_audio is not defined\n", __LINE__, __func__);
//IARM_BUS_Unlock(lock);
//dlclose(dllib);
//return IARM_RESULT_INVALID_STATE;
}

pKConSize = (int *) dlsym(dllib, "kConfig_size");
pKPortSize = (int *) dlsym(dllib, "kPort_size");
if(pKConSize)
{
kConfig_size_local = *pKConSize;
printf("%d:%s: pKConSize is defined and loaded kConfig_size_local = %d\n", __LINE__, __func__, kConfig_size_local);
}
else
{
printf("%d:%s: pKConSize is not defined\n", __LINE__, __func__);
kConfig_size_local = -1;
}
if(pKPortSize)
{
kPort_size_local = *pKPortSize;
printf("%d:%s: pKPortSize is defined and loaded kPort_size_local = %d\n", __LINE__, __func__, kPort_size_local);
}
else
{
printf("%d:%s: pKPortSize is not defined\n", __LINE__, __func__);
kPort_size_local = -1;
}
dlclose(dllib);
}
else {
INT_ERROR("Opening libdshalsrv.so failed\r\n");
printf("%d:%s: Opening libdshalsrv.so failed\n", __LINE__, __func__);
}
}

//if ( kPorts1 == NULL)
{
void *dllib = dlopen("libds.so", RTLD_LAZY);
if (dllib) {
kPorts1 = (dsAudioPortConfig_t *) dlsym(dllib, "kPort_audio");
if (kPorts1) {
INT_DEBUG("kPort_audio is defined and loaded kPorts1 = %p\r\n", kPorts1);
printf("%d:%s: kPort_audio is defined and loaded kPorts1 = %p\n", __LINE__, __func__, kPorts1);
}
else {
INT_INFO("kPort_audio is not defined\r\n");
printf("%d:%s: kPort_audio is not defined\n", __LINE__, __func__);
//IARM_BUS_Unlock(lock);
//dlclose(dllib);
//return IARM_RESULT_INVALID_STATE;
}
dlclose(dllib);
}
else {
INT_ERROR("Opening libdshalsrv.so failed\r\n");
printf("%d:%s: Opening libdshalsrv.so failed\n", __LINE__, __func__);
}
}
printf("\n\n=========================================================================================================================\n\n");
printf("\n%d:%s print configs using extern\n", __LINE__, __func__);
//printf("%d:%s: size of(kConfig_audio) = %d size of(kPort_audio) = %d\n", __LINE__, __func__, kConfig_size, kPort_size);
//kConfig_size_local = kConfig_size;
//kPort_size_local = kPort_size;

if(kConfigs1 != NULL)
{
for (size_t i = 0; i < kConfig_size_local; i++) {
//const dsAudioTypeConfig_t *typeCfg = &kConfig_audio[i];
const dsAudioTypeConfig_t *typeCfg = &kConfigs1[i];
//AudioOutputPortType &aPortType = AudioOutputPortType::getInstance(typeCfg->typeId);
//aPortType.enable();
printf("%d:%s: typeCfg->typeId = %d\n", __LINE__, __func__, typeCfg->typeId);
printf("%d:%s: typeCfg->name = %s\n", __LINE__, __func__, typeCfg->name);
printf("%d:%s: typeCfg->numSupportedEncodings = %zu\n", __LINE__, __func__, typeCfg->numSupportedEncodings);
printf("%d:%s: typeCfg->numSupportedCompressions = %zu\n", __LINE__, __func__, typeCfg->numSupportedCompressions);
printf("%d:%s: typeCfg->numSupportedStereoModes = %zu\n", __LINE__, __func__, typeCfg->numSupportedStereoModes);
}
}
else
{
printf("%d:%s: kConfig_audio is NULL\n", __LINE__, __func__);
}
if(kPorts1 != NULL)
{
/*
* set up ports based on kPorts[]
*/
for (size_t i = 0; i < kPort_size_local; i++) {
//const dsAudioPortConfig_t *port = &kPort_audio[i];
const dsAudioPortConfig_t *port = &kPorts1[i];
printf("%d:%s: port->id.type = %d\n", __LINE__, __func__, port->id.type);
printf("%d:%s: port->id.index = %d\n", __LINE__, __func__, port->id.index);
}
}
else
{
printf("%d:%s: kPort_audio is NULL\n", __LINE__, __func__);
}
printf("\n\n=========================================================================================================================\n\n");

return (kConfigs1 || kPorts1);
}

IARM_Result_t dsAudioMgr_init()
{
IARM_Bus_RegisterCall(IARM_BUS_DSMGR_API_dsAudioPortInit, _dsAudioPortInit);

INT_INFO("[%s]: Calling searchConfigs()\r\n", __FUNCTION__);
searchConfigs();
INT_INFO("[%s]: end searchConfigs()\r\n", __FUNCTION__);

IARM_BUS_Lock(lock);
try
{
Expand Down
Loading