From 5fa641b973806749d85e73b7821ac8098d6607f6 Mon Sep 17 00:00:00 2001 From: Jonathan Aillet Date: Wed, 23 May 2018 20:43:00 +0200 Subject: Get Hal controller api structure fields properly Because of a recent change in the app-controller, change the way that metadata was get. Avoid to parse json again and use only CtlConfigT strcuture fields to fill Hal controller api structure. Add a fields info in Hal controller api structure. Change-Id: I17ff00bfd6d0991bed47831a92bf81ddcf3fb4c9 Signed-off-by: Jonathan Aillet --- .../4a-hal-controllers-api-loader.c | 30 +++++----------------- .../4a-hal-controllers-api-loader.h | 8 ------ 4a-hal/4a-hal-utilities/4a-hal-utilities-data.h | 1 + 3 files changed, 7 insertions(+), 32 deletions(-) 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 3401c93..18cf781 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 @@ -68,10 +68,6 @@ static struct HalUtlApiVerb CtlHalDynApiStaticVerbs[] = static int HalCtlsInitOneApi(afb_dynapi *apiHandle) { - int apiMetadataUnpackErr, apiHalmetadataUnpackErr; - - json_object *apiMetadata, *apiHalmetadata; - CtlConfigT *ctrlConfig; struct SpecificHalData *currentCtlHalData; @@ -94,27 +90,13 @@ static int HalCtlsInitOneApi(afb_dynapi *apiHandle) currentCtlHalData->internal = true; currentCtlHalData->status = HAL_STATUS_UNAVAILABLE; - if(! json_object_object_get_ex(ctrlConfig->configJ, "metadata", &apiMetadata)) - return -4; + currentCtlHalData->name = (char *) ctrlConfig->api; + currentCtlHalData->sndCard = (char *) ctrlConfig->uid; + currentCtlHalData->info = (char *) ctrlConfig->info; - if(! json_object_object_get_ex(ctrlConfig->configJ, "hal-metadata", &apiHalmetadata)) - return -5; - - apiMetadataUnpackErr = wrap_json_unpack(apiMetadata, "{s:s s?:s s?:s s?:o s?:o !}", - "uid", NULL, - "version", ¤tCtlHalData->version, - "api", ¤tCtlHalData->name, - "info", NULL, - "require", NULL); - if(apiMetadataUnpackErr) - return -6; - - apiHalmetadataUnpackErr = wrap_json_unpack(apiHalmetadata, "{s:s s:s s:s !}", - "sndcard", ¤tCtlHalData->sndCard, - "author", ¤tCtlHalData->author, - "date", ¤tCtlHalData->date); - if(apiHalmetadataUnpackErr) - return -7; + currentCtlHalData->author = (char *) ctrlConfig->author; + currentCtlHalData->version = (char *) ctrlConfig->version; + currentCtlHalData->date = (char *) ctrlConfig->date; currentCtlHalData->apiHandle = apiHandle; currentCtlHalData->ctrlConfig = ctrlConfig; diff --git a/4a-hal/4a-hal-controllers/4a-hal-controllers-api-loader.h b/4a-hal/4a-hal-controllers/4a-hal-controllers-api-loader.h index b2b42f3..e3d449c 100644 --- a/4a-hal/4a-hal-controllers/4a-hal-controllers-api-loader.h +++ b/4a-hal/4a-hal-controllers/4a-hal-controllers-api-loader.h @@ -25,14 +25,6 @@ #include "../4a-hal-utilities/4a-hal-utilities-data.h" -// Api info definitions -#define HAL_CTLS_API_NAME_MAX_SIZE 32 -#define HAL_CTLS_API_INFO_MAX_SIZE 64 -#define HAL_CTLS_API_SNDCARD_MAX_SIZE 128 -#define HAL_CTLS_API_AUTHOR_MAX_SIZE 32 -#define HAL_CTLS_API_VERSION_MAX_SIZE 16 -#define HAL_CTLS_API_DATE_MAX_SIZE 16 - // Verbs that can be use to create api int HalCtlsCreateApi(afb_dynapi *apiHandle, char *path, struct HalMgrData *HalMgrGlobalData); int HalCtlsCreateAllApi(afb_dynapi *apiHandle, struct HalMgrData *HalMgrGlobalData); diff --git a/4a-hal/4a-hal-utilities/4a-hal-utilities-data.h b/4a-hal/4a-hal-utilities/4a-hal-utilities-data.h index 75653e4..3ae16db 100644 --- a/4a-hal/4a-hal-utilities/4a-hal-utilities-data.h +++ b/4a-hal/4a-hal-utilities/4a-hal-utilities-data.h @@ -36,6 +36,7 @@ struct SpecificHalData { char *name; enum HalStatus status; char *sndCard; + char *info; uint8_t internal; char *author; -- cgit 1.2.3-korg