From fe2759e55720c0927726cb4235e3e203b245998f Mon Sep 17 00:00:00 2001 From: Jonathan Aillet Date: Tue, 29 May 2018 14:00:43 +0200 Subject: Use a structure to store ctl hal specific data To avoid multiple variables at NULL in specific hal data, use a structure to store all controller hal specific data. These data won't be use if the hal is external (registered). Example of controller hal specific data : - Mixer api name - Mixer initialization json - Mixer streams names and card id ... Change-Id: Ifc4823d5ea21ed408b4ecc25b870cad74d3b2173 Signed-off-by: Jonathan Aillet --- 4a-hal/4a-hal-controllers/4a-hal-controllers-api-loader.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to '4a-hal/4a-hal-controllers/4a-hal-controllers-api-loader.c') diff --git a/4a-hal/4a-hal-controllers/4a-hal-controllers-api-loader.c b/4a-hal/4a-hal-controllers/4a-hal-controllers-api-loader.c index a20297b..bf7ccbe 100644 --- a/4a-hal/4a-hal-controllers/4a-hal-controllers-api-loader.c +++ b/4a-hal/4a-hal-controllers/4a-hal-controllers-api-loader.c @@ -86,7 +86,7 @@ static int HalCtlsInitOneApi(afb_dynapi *apiHandle) return -3; // Fill SpecificHalDatadata structure - currentCtlHalData->internal = true; + currentCtlHalData->internal = (unsigned int) true; currentCtlHalData->status = HAL_STATUS_UNAVAILABLE; currentCtlHalData->apiName = (char *) ctrlConfig->api; @@ -97,8 +97,8 @@ static int HalCtlsInitOneApi(afb_dynapi *apiHandle) currentCtlHalData->version = (char *) ctrlConfig->version; currentCtlHalData->date = (char *) ctrlConfig->date; - currentCtlHalData->apiHandle = apiHandle; - currentCtlHalData->ctrlConfig = ctrlConfig; + currentCtlHalData->ctlHalSpecificData->apiHandle = apiHandle; + currentCtlHalData->ctlHalSpecificData->ctrlConfig = ctrlConfig; // TODO JAI: Search for hw sndCard // TODO JAI: Update alsa command of HalCtl to use alsa-softmixer/alsa-core data @@ -160,12 +160,17 @@ int HalCtlsCreateApi(afb_dynapi *apiHandle, char *path, struct HalMgrData *HalMg return -3; } + // Allocation of current hal controller data currentCtlHalData = HalUtlAddHalApiToHalList(HalMgrGlobalData); if(! currentCtlHalData) return -4; + // Stores current hal controller data in controller config ctrlConfig->external = (void *) currentCtlHalData; + // Allocation of the structure that will be used to store specific hal controller data + currentCtlHalData->ctlHalSpecificData = calloc(1, sizeof(struct CtlHalSpecificData)); + // Create one API (Pre-V3 return code ToBeChanged) return afb_dynapi_new_api(apiHandle, ctrlConfig->api, ctrlConfig->info, 1, HalCtlsLoadOneApi, ctrlConfig); } -- cgit 1.2.3-korg