Sound Open Firmware
Loading...
Searching...
No Matches
igo_lib.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-3-Clause
2 *
3 * Copyright(c) 2021 Intelligo Technology Inc. All rights reserved.
4 *
5 * Author: Fu-Yun TSUO <fy.tsuo@intelli-go.com>
6 */
7
8/*******************************************************************************
9 * [2017] - [2021] Copyright (c) Intelligo Technology Inc.
10 *
11 * This unpublished material is proprietary to Intelligo Technology Inc.
12 * All rights reserved. The methods and techniques described herein are
13 * considered trade secrets and/or confidential. Reproduction or
14 * distribution, in whole or in part, is forbidden except by express written
15 * permission of Intelligo Technology Inc.
16 *
17 *******************************************************************************/
18
19#ifndef _IGO_LIB_H_
20#define _IGO_LIB_H_
21
22#include <stdint.h>
23
43
49
54struct IgoLibInfo {
55 uint32_t major_version; /* Major version */
56 uint32_t minor_version; /* Minor version */
57 uint32_t build_version; /* Build version */
58 uint32_t ext_version; /* Extension version */
59 uint32_t handle_size; /* Size of handle structure */
60};
61
67 void *data; /* Data array */
68 enum IgoDataWidth data_width; /* Specify audio data bit width */
69 uint16_t sample_num; /* Sample number in this data bulk */
70 uint16_t sampling_rate; /* Sampling rate for the data stream */
71};
72
79 const char *algo_name; /* Algorithm name */
80 uint8_t in_ch_num; /* Input channel number for the algo instance */
81 uint8_t ref_ch_num; /* Reference channel number for the algo instance */
82 uint8_t out_ch_num; /* Output channel number for the algo instance */
83};
84
85#ifdef __cplusplus
86extern "C" {
87#endif
88
97enum IgoRet IgoLibGetInfo(struct IgoLibInfo *info);
98
112enum IgoRet IgoLibInit(void *handle,
113 const struct IgoLibConfig *config,
114 void *param);
115
134enum IgoRet IgoLibProcess(void *handle,
135 const struct IgoStreamData *in,
136 const struct IgoStreamData *ref,
137 const struct IgoStreamData *out);
138
139#ifdef __cplusplus
140}
141#endif
142
143#endif
enum IgoRet IgoLibGetInfo(struct IgoLibInfo *info)
IgoLibGetInfo() - Retrieve the lib information.
IgoDataWidth
Definition igo_lib.h:44
@ IGO_DATA_16BIT
Definition igo_lib.h:45
@ IGO_DATA_LAST
Definition igo_lib.h:47
@ IGO_DATA_24BIT
Definition igo_lib.h:46
IgoRet
Definition igo_lib.h:24
@ IGO_RET_IN_DATA_ERR
Definition igo_lib.h:34
@ IGO_RET_PARAM_NOT_FOUND
Definition igo_lib.h:37
@ IGO_RET_PARAM_READ_ONLY
Definition igo_lib.h:38
@ IGO_RET_OUT_DATA_ERR
Definition igo_lib.h:36
@ IGO_RET_ALGO_NAME_NOT_FOUND
Definition igo_lib.h:31
@ IGO_RET_INVL_ARG
Definition igo_lib.h:28
@ IGO_RET_SAMPLING_RATE_NOT_SUPPORT
Definition igo_lib.h:33
@ IGO_RET_REF_DATA_ERR
Definition igo_lib.h:35
@ IGO_RET_ERR
Definition igo_lib.h:26
@ IGO_RET_PARAM_WRITE_ONLY
Definition igo_lib.h:39
@ IGO_RET_CH_NUM_ERR
Definition igo_lib.h:32
@ IGO_RET_NO_SERVICE
Definition igo_lib.h:27
@ IGO_RET_LAST
Definition igo_lib.h:41
@ IGO_RET_OK
Definition igo_lib.h:25
@ IGO_RET_NO_MEMORY
Definition igo_lib.h:29
@ IGO_RET_NOT_SUPPORT
Definition igo_lib.h:30
@ IGO_RET_PARAM_INVALID_VAL
Definition igo_lib.h:40
enum IgoRet IgoLibInit(void *handle, const struct IgoLibConfig *config, void *param)
IgoLibInit() - Initialize iGo lib instance.
enum IgoRet IgoLibProcess(void *handle, const struct IgoStreamData *in, const struct IgoStreamData *ref, const struct IgoStreamData *out)
IgoLibProcess() - Process audio stream.
IgoLibConfig is used to keep lib configuration for lib instance initialization.
Definition igo_lib.h:78
const char * algo_name
Definition igo_lib.h:79
uint8_t in_ch_num
Definition igo_lib.h:80
uint8_t out_ch_num
Definition igo_lib.h:82
uint8_t ref_ch_num
Definition igo_lib.h:81
IgoLibInfo is used to keep information for iGo library.
Definition igo_lib.h:54
uint32_t build_version
Definition igo_lib.h:57
uint32_t minor_version
Definition igo_lib.h:56
uint32_t major_version
Definition igo_lib.h:55
uint32_t handle_size
Definition igo_lib.h:59
uint32_t ext_version
Definition igo_lib.h:58
IgoStreamData is used to keep audio data for iGo library.
Definition igo_lib.h:66
uint16_t sampling_rate
Definition igo_lib.h:70
uint16_t sample_num
Definition igo_lib.h:69
void * data
Definition igo_lib.h:67
enum IgoDataWidth data_width
Definition igo_lib.h:68