diff options
Diffstat (limited to 'src/4a-internals-hal/4a-internals-hal-api-loader.c')
-rw-r--r-- | src/4a-internals-hal/4a-internals-hal-api-loader.c | 33 |
1 files changed, 6 insertions, 27 deletions
diff --git a/src/4a-internals-hal/4a-internals-hal-api-loader.c b/src/4a-internals-hal/4a-internals-hal-api-loader.c index 34e82ef..71779d7 100644 --- a/src/4a-internals-hal/4a-internals-hal-api-loader.c +++ b/src/4a-internals-hal/4a-internals-hal-api-loader.c @@ -27,6 +27,8 @@ #include <ctl-config.h> +#include "4a-hal-utilities-hal-api-handler.h" + #include "4a-internals-hal-api-loader.h" #include "4a-internals-hal-alsacore-link.h" #include "4a-internals-hal-cb.h" @@ -166,8 +168,8 @@ static int InternalHalLoadOneApi(void *cbdata, afb_api_t apiHandle) int InternalHalCreateApi(afb_api_t apiHandle, char *path, struct HalMgrData *halMgrData) { + int err; CtlConfigT *ctrlConfig; - struct HalData *currentHalData; if(! apiHandle || ! path || ! halMgrData) return -1; @@ -184,35 +186,12 @@ int InternalHalCreateApi(afb_api_t apiHandle, char *path, struct HalMgrData *hal return -3; } - // Allocation of current internal hal data - currentHalData = HalUtlAddHalToHalList(&halMgrData->halDataListHead); - if(! currentHalData) { - AFB_API_ERROR(apiHandle, "Didn't succeed to add hal to hal list"); + err = HalUtlAddHalDataAndCreateHalApi(apiHandle, halMgrData, ctrlConfig, InternalHalLoadOneApi); + if(err) { + AFB_API_ERROR(apiHandle, "Error %i happened while trying to add hal api data and create new api", err); return -4; } - currentHalData->apiName = (char *) ctrlConfig->api; - - // Stores hal data in controller config - setExternalData(ctrlConfig, (void *) currentHalData); - - // Allocation of the structure that will be used to store internal hal data - currentHalData->internalHalData = calloc(1, sizeof(struct InternalHalData)); - if(! currentHalData->internalHalData) { - AFB_API_ERROR(apiHandle, "Didn't succeed to allocate internal hal data structure"); - return -5; - } - - CDS_INIT_LIST_HEAD(¤tHalData->internalHalData->probedDevicesListHead); - CDS_INIT_LIST_HEAD(¤tHalData->internalHalData->streamsDataListHead); - CDS_INIT_LIST_HEAD(¤tHalData->internalHalData->halMapListHead); - - // Create one API - if(! afb_api_new_api(apiHandle, ctrlConfig->api, ctrlConfig->info, 1, InternalHalLoadOneApi, ctrlConfig)) { - AFB_API_ERROR(apiHandle, "An error occurred at '%s' internal hal api creation", ctrlConfig->api); - return -6; - } - return 0; } |