127 lines
2.1 KiB
C
127 lines
2.1 KiB
C
#ifndef _AUEQ_H
|
|
#define _AUEQ_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
|
|
/**
|
|
* @brief AUEQ ioctl_cmd type
|
|
*/
|
|
enum aueq_ioctl_cmd {
|
|
|
|
/*!
|
|
* @brief:
|
|
*
|
|
*/
|
|
AUEQ_IOCTL_CMD_NONE,
|
|
};
|
|
|
|
|
|
/*!
|
|
* @brief coefficient configuration
|
|
* @note
|
|
* a example of coefficient for 5 band:
|
|
* struct aueq_cfg cfg[5];
|
|
* cfg[0].b[0] = 0.1;
|
|
* cfg[0].b[1] = 0.3;
|
|
* ...
|
|
* cfg[1].b[1] = 0.6;
|
|
*/
|
|
struct aueq_cfg{
|
|
double b[3];
|
|
double a[2];
|
|
};
|
|
|
|
|
|
/* AUEQ api for user */
|
|
|
|
struct aueq_device {
|
|
struct dev_obj dev;
|
|
};
|
|
|
|
struct aueq_hal_ops {
|
|
struct devobj_ops ops;
|
|
int32(*open)(struct aueq_device *aueq, struct aueq_cfg *p_cfg);
|
|
int32(*close)(struct aueq_device *aueq);
|
|
int32(*run)(struct aueq_device *aueq, void* dat_buf, uint32 bytes);
|
|
int32(*ioctl)(struct aueq_device *aueq, enum aueq_ioctl_cmd ioctl_cmd, uint32 param1, uint32 param2);
|
|
};
|
|
|
|
|
|
|
|
/* AUEQ API functions */
|
|
|
|
|
|
|
|
/**
|
|
* @brief aueq_open
|
|
*
|
|
*
|
|
* @note .
|
|
*
|
|
* @param aueq The address of aueq device in the RTOS.
|
|
* @param .
|
|
* @param .
|
|
*
|
|
* @return
|
|
* - RET_OK Success
|
|
* - RET_ERR Fail
|
|
*/
|
|
int32 aueq_open(struct aueq_device *aueq, struct aueq_cfg *p_cfg);
|
|
|
|
/**
|
|
* @brief aueq_close
|
|
*
|
|
*
|
|
* @note .
|
|
*
|
|
* @param aueq The address of aueq device in the RTOS.
|
|
* @param .
|
|
* @param .
|
|
*
|
|
* @return
|
|
* - RET_OK Success
|
|
* - RET_ERR Fail
|
|
*/
|
|
int32 aueq_close(struct aueq_device *aueq);
|
|
|
|
/**
|
|
* @brief aueq_encode
|
|
*
|
|
*
|
|
* @note .
|
|
*
|
|
* @param aueq The address of aueq device in the RTOS.
|
|
* @param .
|
|
* @param .
|
|
*
|
|
* @return
|
|
* - RET_OK Success
|
|
* - RET_ERR Fail
|
|
*/
|
|
int32 aueq_run(struct aueq_device *aueq, void* dat_buf, uint32 bytes);
|
|
|
|
|
|
/**
|
|
* @brief aueq_ioctl
|
|
*
|
|
*
|
|
* @note .
|
|
*
|
|
* @param aueq The address of aueq device in the RTOS.
|
|
* @param .
|
|
* @param .
|
|
*
|
|
* @return
|
|
* - RET_OK Success
|
|
* - RET_ERR Fail
|
|
*/
|
|
int32 aueq_ioctl(struct aueq_device *aueq, enum aueq_ioctl_cmd ioctl_cmd, uint32 param1, uint32 param2);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif
|