1 /*
2  * Copyright (C) 2014 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef __EXYNOS_AUDIOHAL_TABLE_H__
18 #define __EXYNOS_AUDIOHAL_TABLE_H__
19 
20 /*
21  * Audio Streams Table for readable log messages
22  */
23 char * stream_table[ASTREAM_CNT] = {
24     [ASTREAM_PLAYBACK_PRIMARY]       = "primary_out",
25     [ASTREAM_PLAYBACK_FAST]          = "fast_out",
26     [ASTREAM_PLAYBACK_DEEP_BUFFER]   = "deep_out",
27     [ASTREAM_PLAYBACK_LOW_LATENCY]   = "low_out",
28     [ASTREAM_PLAYBACK_COMPR_OFFLOAD] = "offload_out",
29     [ASTREAM_PLAYBACK_MMAP]          = "mmap_out",
30     [ASTREAM_PLAYBACK_USB_DEVICE]    = "usb_out",
31     [ASTREAM_PLAYBACK_AUX_DIGITAL]   = "aux_out",
32 
33     [ASTREAM_CAPTURE_PRIMARY]        = "primary_in",
34     [ASTREAM_CAPTURE_CALL]           = "callrec_in",
35     [ASTREAM_CAPTURE_LOW_LATENCY]    = "low_in",
36     [ASTREAM_CAPTURE_MMAP]           = "mmap_in",
37     [ASTREAM_CAPTURE_USB_DEVICE]     = "usb_in",
38     [ASTREAM_CAPTURE_FM]             = "fmrec_in",
39 #ifdef SUPPORT_STHAL_INTERFACE
40     [ASTREAM_CAPTURE_HOTWORD]        = "hotword_in",
41 #endif
42 
43     [ASTREAM_NONE]                   = "none"
44 };
45 
46 /**
47  ** Audio Usage Table for readable log messages
48  **/
49 char * usage_table[AUSAGE_CNT] = {
50     [AUSAGE_MEDIA]                  = "media",
51     [AUSAGE_RECORDING]              = "recording",
52     [AUSAGE_CAMCORDER]              = "camcoder",
53 
54     [AUSAGE_VOICE_CALL_NB]          = "voice_call_nb",
55     [AUSAGE_VOICE_CALL_WB]          = "voice_call_wb",
56     [AUSAGE_VOLTE_CALL_NB]          = "volte_call_nb",
57     [AUSAGE_VOLTE_CALL_WB]          = "volte_call_wb",
58     [AUSAGE_VOLTE_CALL_SWB]         = "volte_vt_call_swb",
59     [AUSAGE_VOLTE_VT_CALL_NB]       = "volte_vt_call_nb",
60     [AUSAGE_VOLTE_VT_CALL_WB]       = "volte_vt_call_wb",
61     [AUSAGE_VOLTE_VT_CALL_SWB]      = "volte_call_swb",
62     [AUSAGE_TTY]                    = "tty_mode",
63 
64     [AUSAGE_WIFI_CALL_NB]           = "vowifi_call_nb",
65     [AUSAGE_WIFI_CALL_WB]           = "vowifi_call_wb",
66     [AUSAGE_WIFI_CALL_SWB]          = "vowifi_call_swb",
67     [AUSAGE_VIDEO_CALL]             = "video_call",
68     [AUSAGE_VOIP_CALL]              = "voip_call",
69     [AUSAGE_COMMUNICATION]          = "voip_call",
70     [AUSAGE_AP_TTY]                 = "ap_tty_mode",
71 
72     [AUSAGE_INCALL_UPLINK]          = "callrecord_uplink",
73     [AUSAGE_INCALL_DOWNLINK]        = "callrecord_downlink",
74     [AUSAGE_INCALL_UPLINK_DOWNLINK] = "callrecord",
75 
76     [AUSAGE_RECOGNITION]            = "recognition",
77 
78     [AUSAGE_FM_RADIO]               = "fm_radio",
79 
80 #ifdef SUPPORT_STHAL_INTERFACE
81     [AUSAGE_HOTWORD_SEAMLESS]       = "hotword_seamless",
82     [AUSAGE_HOTWORD_RECORD]         = "hotword_record",
83 #endif
84 
85     [AUSAGE_LOOPBACK]               = "factory_loopback",
86     [AUSAGE_LOOPBACK_NODELAY]       = "factory_loopback_nodelay",
87     [AUSAGE_LOOPBACK_REALTIME]      = "factory_loopback_realtime",
88     [AUSAGE_LOOPBACK_CODEC]         = "factory_loopback_codec",
89     [AUSAGE_RMS]                    = "factory_rms",
90 
91     [AUSAGE_NONE]                   = "none",
92 };
93 
94 /**
95  ** Usage Path(AP/CP to Codec) Configuration based on Audio Usage
96  **/
97 char * usage_path_table[AUSAGE_CNT] = {
98     [AUSAGE_MEDIA]                  = "media",
99     [AUSAGE_RECORDING]              = "recording",
100     [AUSAGE_CAMCORDER]              = "camcorder",
101 
102     [AUSAGE_VOICE_CALL_NB]          = "incall_nb",
103     [AUSAGE_VOICE_CALL_WB]          = "incall_wb",
104     [AUSAGE_VOLTE_CALL_NB]          = "volte_cp_nb",
105     [AUSAGE_VOLTE_CALL_WB]          = "volte_cp_wb",
106     [AUSAGE_VOLTE_CALL_SWB]         = "volte_cp_evs",
107     [AUSAGE_VOLTE_VT_CALL_NB]       = "volte_vt_cp_nb",
108     [AUSAGE_VOLTE_VT_CALL_WB]       = "volte_vt_cp_wb",
109     [AUSAGE_VOLTE_VT_CALL_SWB]      = "volte_vt_cp_evs",
110     [AUSAGE_TTY]                    = "tty_mode",
111 
112     [AUSAGE_WIFI_CALL_NB]           = "wificall_nb",
113     [AUSAGE_WIFI_CALL_WB]           = "wificall_wb",
114     [AUSAGE_WIFI_CALL_SWB]          = "wificall_evs",
115     [AUSAGE_VIDEO_CALL]             = "video_call",
116     [AUSAGE_VOIP_CALL]              = "voip",
117     [AUSAGE_COMMUNICATION]          = "communication",
118     [AUSAGE_AP_TTY]                 = "ap_tty_mode",
119 
120     [AUSAGE_INCALL_UPLINK]          = "callrecord_uplink",
121     [AUSAGE_INCALL_DOWNLINK]        = "callrecord_downlink",
122     [AUSAGE_INCALL_UPLINK_DOWNLINK] = "callrecord",
123 
124     [AUSAGE_RECOGNITION]            = "recognition",
125 
126     [AUSAGE_FM_RADIO]               = "fm_radio",
127 
128 #ifdef SUPPORT_STHAL_INTERFACE
129     [AUSAGE_HOTWORD_SEAMLESS]       = "hotword_seamless",    //dummy definition not used
130     [AUSAGE_HOTWORD_RECORD]         = "hotword_record",    //dummy definition not used
131 #endif
132 
133     [AUSAGE_LOOPBACK]               = "loopback_packet",
134     [AUSAGE_LOOPBACK_NODELAY]       = "loopback",
135     [AUSAGE_LOOPBACK_REALTIME]      = "realtimeloopback",
136     [AUSAGE_LOOPBACK_CODEC]         = "loopback_codec",
137     [AUSAGE_RMS]                    = "echo_test",
138 
139     [AUSAGE_NONE]                   = "none",
140 };
141 
142 /**
143  ** Device Path(Codec to Device) Configuration based on Audio Input/Output Device
144  **/
145 char * device_table[DEVICE_CNT] = {
146     // Playback Devices
147     [DEVICE_EARPIECE]               = "handset",
148     [DEVICE_SPEAKER]                = "speaker",
149     [DEVICE_HEADSET]                = "headset",
150     [DEVICE_HEADPHONE]              = "headphone",
151     [DEVICE_SPEAKER_AND_HEADSET]    = "speaker-headset",
152     [DEVICE_SPEAKER_AND_HEADPHONE]  = "speaker-headphone",
153     [DEVICE_BT_HEADSET]             = "bt-sco-headset",
154     [DEVICE_FM_EXTERNAL]            = "external",
155     [DEVICE_SPEAKER_AND_BT_HEADSET] = "speaker-bt-sco-headset",
156     [DEVICE_USB_HEADSET]            = "usb-headset",
157     [DEVICE_AUX_DIGITAL]            = "aux-digital",
158 
159     // Special Playback Devices
160     [DEVICE_CALL_FWD]               = "",
161 
162     // Capture Devices
163     [DEVICE_MAIN_MIC]               = "mic",
164     [DEVICE_HEADSET_MIC]            = "headset-mic",
165     [DEVICE_HEADSET_MAIN_MIC]       = "headset-main-mic",
166     [DEVICE_BT_HEADSET_MIC]         = "bt-sco-headset-in",
167     [DEVICE_BT_NREC_HEADSET_MIC]    = "bt-sco-nrec-headset-in",
168     [DEVICE_USB_HEADSET_MIC]        = "usb-headset-mic",
169 
170     [DEVICE_HANDSET_MIC]            = "handset-mic",
171     [DEVICE_SPEAKER_MIC]            = "speaker-mic",
172     [DEVICE_HEADPHONE_MIC]          = "headphone-mic",
173 
174     [DEVICE_SUB_MIC]                = "2nd-mic",
175     [DEVICE_FULL_MIC]               = "full-mic",
176     [DEVICE_HCO_MIC]                = "hco-mic",
177     [DEVICE_VCO_MIC]                = "vco-mic",
178 
179     [DEVICE_FM_TUNER]               = "fm-tuner",
180 
181     [DEVICE_NONE]                   = "none",
182 };
183 
184 /**
185  ** Sampling Rate Modifier Configuration based on Audio Input/Output Device
186  **/
187 char * modifier_table[MODIFIER_MAX] = {
188     /* RX modifier */
189     [MODIFIER_BT_SCO_RX_NB]  = "set-bt-sco-rx-rate-nb",
190     [MODIFIER_BT_SCO_RX_WB]  = "set-bt-sco-rx-rate-wb",
191 
192     /* TX modifier */
193     [MODIFIER_BT_SCO_TX_NB]  = "set-bt-sco-tx-rate-nb",
194     [MODIFIER_BT_SCO_TX_WB]  = "set-bt-sco-tx-rate-wb",
195 
196     [MODIFIER_NONE]            = "none",
197 };
198 
199 /**
200  ** Offload Message Table for readable log messages
201  **/
202 char * offload_msg_table[OFFLOAD_MSG_MAX] = {
203     [OFFLOAD_MSG_INVALID]            = "Offload Message_Invalid",
204     [OFFLOAD_MSG_WAIT_WRITE]         = "Offload Message_Wait to write",
205     [OFFLOAD_MSG_WAIT_DRAIN]         = "Offload Message_Wait to drain",
206     [OFFLOAD_MSG_WAIT_PARTIAL_DRAIN] = "Offload Message_Wait to drain partially",
207     [OFFLOAD_MSG_EXIT]               = "Offload Message_Wait to exit",
208 };
209 
210 
211 #endif  // __EXYNOS_AUDIOHAL_TABLE_H__
212