blob: a9e38dac78e7dfc41dceffa96d6e404c0ededdeb [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,
cheng tong7d907882020-09-04 18:53:04 +080020 AML_EFFECT_MAX,
21} aml_audio_effect_type_e;
22
23typedef struct audio_effect_s {
24 void *handle;
25 int (*set_parameters)(aml_audio_effect_type_e type,
26 uint32_t cmdSize,
27 void *pCmdData,
28 uint32_t *replySize,
29 void *pReplyData);
30 int (*get_parameters)(aml_audio_effect_type_e type,
31 uint32_t cmdSize,
32 void *pCmdData,
33 uint32_t *replySize,
34 void *pReplyData);
35}audio_effect_t;
36
37//-------------Effect API--------------------------
38int audio_effect_load_interface(audio_hw_device_t *dev, audio_effect_t **effect);
39void audio_effect_unload_interface(audio_hw_device_t *dev);
40int audio_effect_set_parameters(aml_audio_effect_type_e type, effect_param_t *param);
41int audio_effect_get_parameters(aml_audio_effect_type_e type, effect_param_t *param);
42
43#ifdef __cplusplus
44}
45#endif
46
47#endif /* __AUDIO_EFFECT_IF_H_ */