64
63
AUDIO_SOURCE_CAMCORDER = 5,
65
64
AUDIO_SOURCE_VOICE_RECOGNITION = 6,
66
65
AUDIO_SOURCE_VOICE_COMMUNICATION = 7,
67
AUDIO_SOURCE_REMOTE_SUBMIX = 8, /* Source for the mix to be presented remotely. */
68
/* An example of remote presentation is Wifi Display */
69
/* where a dongle attached to a TV can be used to */
70
/* play the mix captured by this audio source. */
72
68
AUDIO_SOURCE_MAX = AUDIO_SOURCE_CNT - 1,
142
138
AUDIO_FORMAT_HE_AAC_V1 = 0x05000000UL,
143
139
AUDIO_FORMAT_HE_AAC_V2 = 0x06000000UL,
144
140
AUDIO_FORMAT_VORBIS = 0x07000000UL,
146
AUDIO_FORMAT_EVRC = 0x08000000UL,
147
AUDIO_FORMAT_QCELP = 0x09000000UL,
148
AUDIO_FORMAT_AC3 = 0x0a000000UL,
149
AUDIO_FORMAT_AC3_PLUS = 0x0b000000UL,
150
AUDIO_FORMAT_DTS = 0x0c000000UL,
151
AUDIO_FORMAT_WMA = 0x0d000000UL,
152
AUDIO_FORMAT_WMA_PRO = 0x0e000000UL,
153
AUDIO_FORMAT_AAC_ADIF = 0x0f000000UL,
154
AUDIO_FORMAT_EVRCB = 0x10000000UL,
155
AUDIO_FORMAT_EVRCWB = 0x11000000UL,
156
AUDIO_FORMAT_EAC3 = 0x12000000UL,
157
AUDIO_FORMAT_DTS_LBR = 0x13000000UL,
158
AUDIO_FORMAT_AMR_WB_PLUS = 0x14000000UL,
159
AUDIO_FORMAT_MP2 = 0x15000000UL,
161
141
AUDIO_FORMAT_MAIN_MASK = 0xFF000000UL,
162
142
AUDIO_FORMAT_SUB_MASK = 0x00FFFFFFUL,
196
176
AUDIO_CHANNEL_OUT_MONO = AUDIO_CHANNEL_OUT_FRONT_LEFT,
197
177
AUDIO_CHANNEL_OUT_STEREO = (AUDIO_CHANNEL_OUT_FRONT_LEFT |
198
178
AUDIO_CHANNEL_OUT_FRONT_RIGHT),
200
AUDIO_CHANNEL_OUT_2POINT1 = (AUDIO_CHANNEL_OUT_FRONT_LEFT |
201
AUDIO_CHANNEL_OUT_FRONT_RIGHT |
202
AUDIO_CHANNEL_OUT_FRONT_CENTER),
204
179
AUDIO_CHANNEL_OUT_QUAD = (AUDIO_CHANNEL_OUT_FRONT_LEFT |
205
180
AUDIO_CHANNEL_OUT_FRONT_RIGHT |
206
181
AUDIO_CHANNEL_OUT_BACK_LEFT |
209
184
AUDIO_CHANNEL_OUT_FRONT_RIGHT |
210
185
AUDIO_CHANNEL_OUT_FRONT_CENTER |
211
186
AUDIO_CHANNEL_OUT_BACK_CENTER),
213
AUDIO_CHANNEL_OUT_PENTA = (AUDIO_CHANNEL_OUT_QUAD |
214
AUDIO_CHANNEL_OUT_FRONT_CENTER),
216
187
AUDIO_CHANNEL_OUT_5POINT1 = (AUDIO_CHANNEL_OUT_FRONT_LEFT |
217
188
AUDIO_CHANNEL_OUT_FRONT_RIGHT |
218
189
AUDIO_CHANNEL_OUT_FRONT_CENTER |
219
190
AUDIO_CHANNEL_OUT_LOW_FREQUENCY |
220
191
AUDIO_CHANNEL_OUT_BACK_LEFT |
221
192
AUDIO_CHANNEL_OUT_BACK_RIGHT),
223
AUDIO_CHANNEL_OUT_6POINT1 = (AUDIO_CHANNEL_OUT_FRONT_LEFT |
224
AUDIO_CHANNEL_OUT_FRONT_RIGHT |
225
AUDIO_CHANNEL_OUT_FRONT_CENTER |
226
AUDIO_CHANNEL_OUT_LOW_FREQUENCY |
227
AUDIO_CHANNEL_OUT_BACK_LEFT |
228
AUDIO_CHANNEL_OUT_BACK_RIGHT |
229
AUDIO_CHANNEL_OUT_BACK_CENTER),
231
193
// matches the correct AudioFormat.CHANNEL_OUT_7POINT1_SURROUND definition for 7.1
232
194
AUDIO_CHANNEL_OUT_7POINT1 = (AUDIO_CHANNEL_OUT_FRONT_LEFT |
233
195
AUDIO_CHANNEL_OUT_FRONT_RIGHT |
271
233
AUDIO_CHANNEL_IN_Z_AXIS = 0x2000,
272
234
AUDIO_CHANNEL_IN_VOICE_UPLINK = 0x4000,
273
235
AUDIO_CHANNEL_IN_VOICE_DNLINK = 0x8000,
275
AUDIO_CHANNEL_IN_FRONT_LEFT = 0x10000,
276
AUDIO_CHANNEL_IN_FRONT_RIGHT = 0x20000,
277
AUDIO_CHANNEL_IN_FRONT_CENTER = 0x40000,
278
AUDIO_CHANNEL_IN_LOW_FREQUENCY = 0x80000,
279
AUDIO_CHANNEL_IN_BACK_LEFT = 0x100000,
280
AUDIO_CHANNEL_IN_BACK_RIGHT = 0x200000,
283
237
AUDIO_CHANNEL_IN_MONO = AUDIO_CHANNEL_IN_FRONT,
284
238
AUDIO_CHANNEL_IN_STEREO = (AUDIO_CHANNEL_IN_LEFT | AUDIO_CHANNEL_IN_RIGHT),
286
AUDIO_CHANNEL_IN_5POINT1 = (AUDIO_CHANNEL_IN_FRONT_LEFT |
287
AUDIO_CHANNEL_IN_FRONT_RIGHT |
288
AUDIO_CHANNEL_IN_FRONT_CENTER |
289
AUDIO_CHANNEL_IN_LOW_FREQUENCY |
290
AUDIO_CHANNEL_IN_BACK_LEFT |
291
AUDIO_CHANNEL_IN_BACK_RIGHT),
292
AUDIO_CHANNEL_IN_VOICE_UPLINK_MONO = (AUDIO_CHANNEL_IN_VOICE_UPLINK | AUDIO_CHANNEL_IN_MONO),
293
AUDIO_CHANNEL_IN_VOICE_DNLINK_MONO = (AUDIO_CHANNEL_IN_VOICE_DNLINK | AUDIO_CHANNEL_IN_MONO),
294
AUDIO_CHANNEL_IN_VOICE_CALL_MONO = (AUDIO_CHANNEL_IN_VOICE_UPLINK_MONO | AUDIO_CHANNEL_IN_VOICE_DNLINK_MONO),
296
239
AUDIO_CHANNEL_IN_ALL = (AUDIO_CHANNEL_IN_LEFT |
297
240
AUDIO_CHANNEL_IN_RIGHT |
298
241
AUDIO_CHANNEL_IN_FRONT |
360
292
AUDIO_DEVICE_OUT_DGTL_DOCK_HEADSET = 0x1000,
361
293
AUDIO_DEVICE_OUT_USB_ACCESSORY = 0x2000,
362
294
AUDIO_DEVICE_OUT_USB_DEVICE = 0x4000,
363
AUDIO_DEVICE_OUT_REMOTE_SUBMIX = 0x8000,
365
AUDIO_DEVICE_OUT_ANC_HEADSET = 0x10000,
366
AUDIO_DEVICE_OUT_ANC_HEADPHONE = 0x20000,
367
AUDIO_DEVICE_OUT_PROXY = 0x40000,
368
AUDIO_DEVICE_OUT_FM = 0x80000,
369
AUDIO_DEVICE_OUT_FM_TX = 0x100000,
371
AUDIO_DEVICE_OUT_DEFAULT = AUDIO_DEVICE_BIT_DEFAULT,
295
AUDIO_DEVICE_OUT_DEFAULT = 0x8000,
372
296
AUDIO_DEVICE_OUT_ALL = (AUDIO_DEVICE_OUT_EARPIECE |
373
297
AUDIO_DEVICE_OUT_SPEAKER |
374
298
AUDIO_DEVICE_OUT_WIRED_HEADSET |
403
319
AUDIO_DEVICE_OUT_USB_DEVICE),
405
321
/* input devices */
406
#if defined(ICS_AUDIO_BLOB) || defined(MR0_AUDIO_BLOB)
407
AUDIO_DEVICE_IN_COMMUNICATION = AUDIO_DEVICE_BIT_IN * 0x1,
408
AUDIO_DEVICE_IN_AMBIENT = AUDIO_DEVICE_BIT_IN * 0x2,
409
AUDIO_DEVICE_IN_BUILTIN_MIC = AUDIO_DEVICE_BIT_IN * 0x4,
410
AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET = AUDIO_DEVICE_BIT_IN * 0x8,
411
AUDIO_DEVICE_IN_WIRED_HEADSET = AUDIO_DEVICE_BIT_IN * 0x10,
412
AUDIO_DEVICE_IN_AUX_DIGITAL = AUDIO_DEVICE_BIT_IN * 0x20,
413
AUDIO_DEVICE_IN_VOICE_CALL = AUDIO_DEVICE_BIT_IN * 0x40,
414
AUDIO_DEVICE_IN_BACK_MIC = AUDIO_DEVICE_BIT_IN * 0x80,
415
AUDIO_DEVICE_IN_REMOTE_SUBMIX = AUDIO_DEVICE_BIT_IN * 0x100,
416
AUDIO_DEVICE_IN_ANLG_DOCK_HEADSET = AUDIO_DEVICE_BIT_IN * 0x200,
417
AUDIO_DEVICE_IN_DGTL_DOCK_HEADSET = AUDIO_DEVICE_BIT_IN * 0x400,
418
AUDIO_DEVICE_IN_USB_ACCESSORY = AUDIO_DEVICE_BIT_IN * 0x800,
419
AUDIO_DEVICE_IN_USB_DEVICE = AUDIO_DEVICE_BIT_IN * 0x1000,
420
AUDIO_DEVICE_IN_DEFAULT = AUDIO_DEVICE_IN_BUILTIN_MIC,
422
AUDIO_DEVICE_IN_COMMUNICATION = AUDIO_DEVICE_BIT_IN | 0x1,
423
AUDIO_DEVICE_IN_AMBIENT = AUDIO_DEVICE_BIT_IN | 0x2,
424
AUDIO_DEVICE_IN_BUILTIN_MIC = AUDIO_DEVICE_BIT_IN | 0x4,
425
AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET = AUDIO_DEVICE_BIT_IN | 0x8,
426
AUDIO_DEVICE_IN_WIRED_HEADSET = AUDIO_DEVICE_BIT_IN | 0x10,
427
AUDIO_DEVICE_IN_AUX_DIGITAL = AUDIO_DEVICE_BIT_IN | 0x20,
428
AUDIO_DEVICE_IN_VOICE_CALL = AUDIO_DEVICE_BIT_IN | 0x40,
429
AUDIO_DEVICE_IN_BACK_MIC = AUDIO_DEVICE_BIT_IN | 0x80,
430
AUDIO_DEVICE_IN_REMOTE_SUBMIX = AUDIO_DEVICE_BIT_IN | 0x100,
431
AUDIO_DEVICE_IN_ANLG_DOCK_HEADSET = AUDIO_DEVICE_BIT_IN | 0x200,
432
AUDIO_DEVICE_IN_DGTL_DOCK_HEADSET = AUDIO_DEVICE_BIT_IN | 0x400,
433
AUDIO_DEVICE_IN_USB_ACCESSORY = AUDIO_DEVICE_BIT_IN | 0x800,
434
AUDIO_DEVICE_IN_USB_DEVICE = AUDIO_DEVICE_BIT_IN | 0x1000,
436
AUDIO_DEVICE_IN_ANC_HEADSET = AUDIO_DEVICE_BIT_IN | 0x2000,
437
AUDIO_DEVICE_IN_PROXY = AUDIO_DEVICE_BIT_IN | 0x4000,
438
AUDIO_DEVICE_IN_FM_RX = AUDIO_DEVICE_BIT_IN | 0x8000,
439
AUDIO_DEVICE_IN_FM_RX_A2DP = AUDIO_DEVICE_BIT_IN | 0x10000,
441
AUDIO_DEVICE_IN_DEFAULT = AUDIO_DEVICE_BIT_IN | AUDIO_DEVICE_BIT_DEFAULT,
322
AUDIO_DEVICE_IN_COMMUNICATION = 0x10000,
323
AUDIO_DEVICE_IN_AMBIENT = 0x20000,
324
AUDIO_DEVICE_IN_BUILTIN_MIC = 0x40000,
325
AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET = 0x80000,
326
AUDIO_DEVICE_IN_WIRED_HEADSET = 0x100000,
327
AUDIO_DEVICE_IN_AUX_DIGITAL = 0x200000,
328
AUDIO_DEVICE_IN_VOICE_CALL = 0x400000,
329
AUDIO_DEVICE_IN_BACK_MIC = 0x800000,
330
AUDIO_DEVICE_IN_DEFAULT = 0x80000000,
444
332
AUDIO_DEVICE_IN_ALL = (AUDIO_DEVICE_IN_COMMUNICATION |
445
333
AUDIO_DEVICE_IN_AMBIENT |
449
337
AUDIO_DEVICE_IN_AUX_DIGITAL |
450
338
AUDIO_DEVICE_IN_VOICE_CALL |
451
339
AUDIO_DEVICE_IN_BACK_MIC |
452
AUDIO_DEVICE_IN_REMOTE_SUBMIX |
453
AUDIO_DEVICE_IN_ANLG_DOCK_HEADSET |
454
AUDIO_DEVICE_IN_DGTL_DOCK_HEADSET |
455
AUDIO_DEVICE_IN_USB_ACCESSORY |
456
AUDIO_DEVICE_IN_USB_DEVICE |
458
AUDIO_DEVICE_IN_ANC_HEADSET |
459
AUDIO_DEVICE_IN_FM_RX |
460
AUDIO_DEVICE_IN_FM_RX_A2DP |
461
AUDIO_DEVICE_IN_PROXY |
463
340
AUDIO_DEVICE_IN_DEFAULT),
464
341
AUDIO_DEVICE_IN_ALL_SCO = AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET,
467
typedef uint32_t audio_devices_t;
469
344
/* the audio output flags serve two purposes:
470
345
* - when an AudioTrack is created they indicate a "wish" to be connected to an
486
361
// controls related to voice calls.
487
362
AUDIO_OUTPUT_FLAG_FAST = 0x4, // output supports "fast tracks",
488
363
// defined elsewhere
489
AUDIO_OUTPUT_FLAG_DEEP_BUFFER = 0x8,// use deep audio buffers
492
AUDIO_OUTPUT_FLAG_LPA = 0x1000, // use LPA
493
AUDIO_OUTPUT_FLAG_TUNNEL = 0x2000, // use Tunnel
494
AUDIO_OUTPUT_FLAG_VOIP_RX = 0x4000 // use this flag in combination with DIRECT to
495
// indicate HAL to activate EC & NS
496
// path for VOIP calls
364
AUDIO_OUTPUT_FLAG_DEEP_BUFFER = 0x8 // use deep audio buffers
498
365
} audio_output_flags_t;
500
367
static inline bool audio_is_output_device(audio_devices_t device)
502
if (((device & AUDIO_DEVICE_BIT_IN) == 0) &&
503
(popcount(device) == 1) && ((device & ~AUDIO_DEVICE_OUT_ALL) == 0))
369
if ((popcount(device) == 1) && ((device & ~AUDIO_DEVICE_OUT_ALL) == 0))