blob: cbbea73ff91e49534e929afeadea2372c70fbc7b [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001#ifndef __AUDIO_PROTOCOL_H__
2#define __AUDIO_PROTOCOL_H__
3
4#include <stdint.h>
5
6// Audio path handler clients
7#define INVALID_CLIENT_TYPE 0xFFFFFFFF
8#define HIFI_CLIENT 0x00000001
9#define VOICE_CLIENT 0x00000002
10#define PHONE_CLIENT 0x00000003
11#define FMRADIO_CLIENT 0x00000004
12#define VOIP_CLIENT 0x00000005
13#define VT_CLIENT 0x00000006
14
15// Plugin operation methods
16#define PLUGIN_CTL_WRITE 0x00000001
17#define PLUGIN_CTL_READ 0x00000002
18#define PLUGIN_PCM_WRITE 0x00000003
19#define PLUGIN_PCM_READ 0x00000004
20
21// Audio path operation methods
22#define INVALID_METHOD_ID 0xFFFFFFFF
23#define METHOD_ENABLE 0x00000001
24#define METHOD_DISABLE 0x00000002
25#define METHOD_MUTE 0x00000003
26#define METHOD_VOLUME_SET 0x00000004
27#define METHOD_SWITCH 0x00000005
28#define METHOD_GET_MSA_GAIN 0x0000000f
29
30// amixer ctl devices
31#define INVALID_DEVICE 0xFFFFFFFF
32#define EARPIECE_DEVICE 0x00000001
33#define SPEAKER_DEVICE 0x00000002
34#define BLUETOOTH_DEVICE 0x00000003
35#define HEADSET_DEVICE 0x00000004
36#define HEADPHONE_DEVICE 0x00000008
37#define BT_NREC_DEVICE 0x00000009
38#define FORCE_SPEAKER_DEVICE 0x0000000a
39
40/*amixer ctl value (32bit)
41----------------------------------------------------------
42| Bit | Description
43----------------------------------------------------------
44|31~29 | reserved
45| 28 | 1:voip/vt WB 0:voip/vt NB
46| 27 | 1:Extra volume path 0:default path
47| 26 | 1:sidetone enable, 0:sidetone disable
48| 25 | 1:loopback enable, 0:loopback disable
49| 24 | 1:codec rate is 16 kHz, 0:codec rate is 8 kHz
50| 23 | EC path enable
51| 22 | 1:mic2 is used, 0:mic2 is not used
52| 21 | 1:mic1 is used, 0:mic1 is not used
53| 20 | 1:stereo speaker, 0:mono speaker
54| 19 | 1:built-in mic is DMIC, 0:built-in mic is AMIC
55| 18 | 1:codec mode is slave, 0:codec mode is master
56| 17 | path direction is input
57| 16 | path direction is output
58| 15:0 | path volume
59----------------------------------------------------------
60*/
61#define OUTPUT 0x00010000
62#define INPUT 0x00020000
63#define CODEC_SLAVE 0x00040000
64#define USE_DMIC 0x00080000
65#define STEREO_SPKR 0x00100000
66#define USE_MIC1 0x00200000
67#define USE_MIC2 0x00400000
68#define ECENABLE 0x00800000
69#define CODEC_RATE_WB 0x01000000
70#define LOOPBACKTEST 0x02000000
71#define SIDETONE 0x04000000
72/* increase the voice call volume */
73#define EXTRA_VOLUME 0x08000000
74#define VOIP_WB 0x10000000
75#define VT_WB 0x10000000
76#define RECOGNITION 0x20000000
77#define CODEC_LOOPTEST 0x40000000
78
79#define VOLUME_MASK 0x0000ffff
80#define PARAM_MASK 0xffff0000
81
82#endif