blob: d9c305d510b9cdb671b90463bd49902f486834c4 [file] [log] [blame]
cheng tong7d907882020-09-04 18:53:04 +08001#ifndef __AUDIO_EFFECT_IF_H_
2#define __AUDIO_EFFECT_IF_H_
3
4#include <hardware/hardware.h>
5#include <hardware/audio.h>
6
7#ifdef __cplusplus
8extern "C"
9{
10#endif
11
cheng tong7d907882020-09-04 18:53:04 +080012//-------------Effect type typedef--------------------------
13typedef enum AML_AUDIO_EFFECT_TYPE {
14 AML_EFFECT_BALANCE = 0,
15 AML_EFFECT_VIRTUALSURROUND,
16 AML_EFFECT_TREBLEBASS,
17 AML_EFFECT_HPEQ,
18 AML_EFFECT_AVL,
wei.wang132f7bb12023-05-24 08:23:32 +000019 AML_EFFECT_VIRTUALX,
hui.liucbbc7cc2024-03-22 07:50:49 +000020 AML_EFFECT_VIRTUALX_v4,
cheng tong7d907882020-09-04 18:53:04 +080021 AML_EFFECT_MAX,
22} aml_audio_effect_type_e;
23
24typedef struct audio_effect_s {
25 void *handle;
26 int (*set_parameters)(aml_audio_effect_type_e type,
27 uint32_t cmdSize,
28 void *pCmdData,
29 uint32_t *replySize,
30 void *pReplyData);
31 int (*get_parameters)(aml_audio_effect_type_e type,
32 uint32_t cmdSize,
33 void *pCmdData,
34 uint32_t *replySize,
35 void *pReplyData);
36}audio_effect_t;
37
38//-------------Effect API--------------------------
39int audio_effect_load_interface(audio_hw_device_t *dev, audio_effect_t **effect);
40void audio_effect_unload_interface(audio_hw_device_t *dev);
41int audio_effect_set_parameters(aml_audio_effect_type_e type, effect_param_t *param);
42int audio_effect_get_parameters(aml_audio_effect_type_e type, effect_param_t *param);
43
44#ifdef __cplusplus
45}
46#endif
47
48#endif /* __AUDIO_EFFECT_IF_H_ */