summaryrefslogtreecommitdiffstats
path: root/lib/4a-hal-utilities/4a-hal-utilities-alsa-data.c
diff options
context:
space:
mode:
authorJonathan Aillet <jonathan.aillet@iot.bzh>2019-06-18 18:00:13 +0200
committerJonathan Aillet <jonathan.aillet@iot.bzh>2019-06-25 11:17:11 +0200
commitf29775f7da003bbadb44dd82d8b3974aa1e59274 (patch)
tree8da03e19eddce80fa065c1f16cbf428542f7da63 /lib/4a-hal-utilities/4a-hal-utilities-alsa-data.c
parentbdec00ada0634d039b91ec6d5b9793be2b68823c (diff)
Use of linked list for 'halmap' data
Use of linked list for 'halmap' data instead of a fixed array. It uses the same mechanism already implemented for other linked list. BUG-AGL: SPEC-2329 Change-Id: I2ff9c9a797a5547cd74f0240c5b7573a02c90781 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
Diffstat (limited to 'lib/4a-hal-utilities/4a-hal-utilities-alsa-data.c')
-rw-r--r--lib/4a-hal-utilities/4a-hal-utilities-alsa-data.c117
1 files changed, 0 insertions, 117 deletions
diff --git a/lib/4a-hal-utilities/4a-hal-utilities-alsa-data.c b/lib/4a-hal-utilities/4a-hal-utilities-alsa-data.c
deleted file mode 100644
index 5d37c0a..0000000
--- a/lib/4a-hal-utilities/4a-hal-utilities-alsa-data.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Copyright (C) 2019 "IoT.bzh"
- * Author Jonathan Aillet <jonathan.aillet@iot.bzh>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#define _GNU_SOURCE
-
-#include <stdio.h>
-
-#include <wrap-json.h>
-
-#include <afb/afb-binding.h>
-
-#include "4a-hal-utilities-alsa-data.h"
-
-/*******************************************************************************
- * Internal Hal - ALSA controls data handling functions *
- ******************************************************************************/
-
-json_object *HalUtGetJsonArrayForSpecificControl(afb_api_t apiHandle, struct InternalHalAlsaMap *currentAlsaMapData)
-{
- int wrapRet;
-
- json_object *currentAlsaMapDataJ;
-
- if(! apiHandle) {
- AFB_API_ERROR(apiHandle, "Can't get current internal hal api handle");
- return NULL;
- }
-
- if(! currentAlsaMapData) {
- AFB_API_ERROR(apiHandle, "ALSA control data to use to generate json object are empty");
- return NULL;
- }
-
- wrapRet = wrap_json_pack(&currentAlsaMapDataJ,
- "{s:s s:s}",
- "name", currentAlsaMapData->uid,
- "info", currentAlsaMapData->info ? currentAlsaMapData->info : "none");
- if(wrapRet) {
- AFB_API_ERROR(apiHandle, "Didn't succeed to allocate current streams json object");
- return NULL;
- }
-
- return currentAlsaMapDataJ;
-}
-
-json_object *HalUtGetJsonArrayForAllControls(afb_api_t apiHandle, struct InternalHalAlsaMapT *currentAlsaMapDataT)
-{
- unsigned int idx;
-
- json_object *alsaMapDataArrayJ, *currentAlsaMapDataJ;
-
- if(! apiHandle) {
- AFB_API_ERROR(apiHandle, "Can't get current internal hal api handle");
- return NULL;
- }
-
- if(! currentAlsaMapDataT) {
- AFB_API_ERROR(apiHandle, "Can't get Alsa map data table to handle");
- return NULL;
- }
-
- alsaMapDataArrayJ = json_object_new_array();
- if(! alsaMapDataArrayJ) {
- AFB_API_ERROR(apiHandle, "Didn't succeed to allocate ALSA controls data json array");
- return NULL;
- }
-
- for(idx = 0; idx < currentAlsaMapDataT->ctlsCount; idx++) {
- currentAlsaMapDataJ = HalUtGetJsonArrayForSpecificControl(apiHandle, &currentAlsaMapDataT->ctls[idx]);
- if(! currentAlsaMapDataJ) {
- AFB_API_ERROR(apiHandle, "Didn't succeed to generate current ALSA control data json object");
- json_object_put(alsaMapDataArrayJ);
- return NULL;
- }
-
- json_object_array_add(alsaMapDataArrayJ, currentAlsaMapDataJ);
- }
-
- return alsaMapDataArrayJ;
-}
-
-int HalUtlFreeAlsaCtlsMap(struct InternalHalAlsaMapT *alsaCtlsMap)
-{
- int idx;
-
- if(! alsaCtlsMap)
- return -1;
-
- if(alsaCtlsMap->ctlsCount > 0 && ! alsaCtlsMap->ctls)
- return -2;
-
- for(idx = 0; idx < alsaCtlsMap->ctlsCount; idx++) {
- free(alsaCtlsMap->ctls[idx].action);
- free(alsaCtlsMap->ctls[idx].ctl.alsaCtlProperties.enums);
- free(alsaCtlsMap->ctls[idx].ctl.alsaCtlProperties.dbscale);
- }
-
- free(alsaCtlsMap->ctls);
-
- free(alsaCtlsMap);
-
- return 0;
-} \ No newline at end of file