1 #ifndef _UAPI_MSM_AUDIO_VOICEMEMO_H
2 #define _UAPI_MSM_AUDIO_VOICEMEMO_H
3 
4 #include <linux/msm_audio.h>
5 
6 #define AUDIO_GET_VOICEMEMO_CONFIG  _IOW(AUDIO_IOCTL_MAGIC, \
7 	(AUDIO_MAX_COMMON_IOCTL_NUM+0), unsigned)
8 #define AUDIO_SET_VOICEMEMO_CONFIG  _IOR(AUDIO_IOCTL_MAGIC, \
9 	(AUDIO_MAX_COMMON_IOCTL_NUM+1), unsigned)
10 
11 /* rec_type */
12 enum rpc_voc_rec_dir_type {
13 	RPC_VOC_REC_NONE,
14 	RPC_VOC_REC_FORWARD,
15 	RPC_VOC_REC_REVERSE,
16 	RPC_VOC_REC_BOTH,
17 	RPC_VOC_MAX_REC_TYPE
18 };
19 
20 /* capability */
21 enum rpc_voc_capability_type {
22 	RPC_VOC_CAP_IS733 = 4,
23 	RPC_VOC_CAP_IS127 = 8,
24 	RPC_VOC_CAP_AMR = 64,
25 	RPC_VOC_CAP_32BIT_DUMMY = 2147483647
26 };
27 
28 /* Rate */
29 enum rpc_voc_rate_type {
30 	RPC_VOC_0_RATE = 0,
31 	RPC_VOC_8_RATE,
32 	RPC_VOC_4_RATE,
33 	RPC_VOC_2_RATE,
34 	RPC_VOC_1_RATE,
35 	RPC_VOC_ERASURE,
36 	RPC_VOC_ERR_RATE,
37 	RPC_VOC_AMR_RATE_475 = 0,
38 	RPC_VOC_AMR_RATE_515 = 1,
39 	RPC_VOC_AMR_RATE_590 = 2,
40 	RPC_VOC_AMR_RATE_670 = 3,
41 	RPC_VOC_AMR_RATE_740 = 4,
42 	RPC_VOC_AMR_RATE_795 = 5,
43 	RPC_VOC_AMR_RATE_1020 = 6,
44 	RPC_VOC_AMR_RATE_1220 = 7,
45 };
46 
47 /* frame_format */
48 enum rpc_voc_pb_len_rate_var_type {
49 	RPC_VOC_PB_NATIVE_QCP = 3,
50 	RPC_VOC_PB_AMR,
51 	RPC_VOC_PB_EVB
52 };
53 
54 struct msm_audio_voicememo_config {
55 	uint32_t rec_type;
56 	uint32_t rec_interval_ms;
57 	uint32_t auto_stop_ms;
58 	uint32_t capability;
59 	uint32_t max_rate;
60 	uint32_t min_rate;
61 	uint32_t frame_format;
62 	uint32_t dtx_enable;
63 	uint32_t data_req_ms;
64 };
65 
66 #endif /* _UAPI_MSM_AUDIO_VOICEMEMO_H */
67