aboutsummaryrefslogtreecommitdiffstats
path: root/src/4a-internals-hal/4a-internals-hal-api-loader.c
diff options
context:
space:
mode:
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.c33
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(&currentHalData->internalHalData->probedDevicesListHead);
- CDS_INIT_LIST_HEAD(&currentHalData->internalHalData->streamsDataListHead);
- CDS_INIT_LIST_HEAD(&currentHalData->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;
}