The "remote submix" HAL uses a MonoPipe instance to "pipe" audio
from the sink of this virtual device HAL to its source.
The life-cycle of this pipe is:
- creation when either the input or output stream is open
- destruction when both input and output are closed.
Changes are:
Fix test for pipe destruction: destroy pipe when both
input and output streams are NULL.
Count how many read errors went into the logs and cap them
so as not to spam the logs when the pipe is not properly
set up. Less 'I' logs, 'D' logs instead.
When opening input stream, check for non-null sink before
checking if it's shutdown.
Bug 16653334
Bug 17111907
Change-Id: I634b4192b00f9b74a5109f42242423e9c8cb4c7c
tinyalsa fails to retrieve the correct value for the period count
from the f_audio_source driver and tries to use zero instead.
This wasn't a problem before because the usb audio HAL used hard coded values
that were compatible with the driver.
Bug: 16799652
Change-Id: I6f5b907a0699c58b071e9f419ed8e053a7d9dc77
Do not read the ALSA PCM device configuration when playback
or capture is active.
Do not force ALSA profile update if card and device passed
to out/in_set_parameters() do not change.
Hold the main HAL lock when closing or opening the
ALSA PCM device.
Bug: 15520724.
Change-Id: I2b6087ed46ce7433de0b6dd8b24ec10de2e55d21
The number of channels can be "forced" using k_force_channels.
If the channel count proposed by AudioFlinger is not permitted
by the device, it is emulated.
Change-Id: Ib20e680c8f95adb84616a4fe52977f659cf4d6ca
This HAL was intended to support doze mode but it is currently
unused and it's best for it to stay that way.
Bug: 16516536
Change-Id: I4f442e27d68f18ff322afd4c1debd2f392687e80
Pass device address (and audio source for inputs) to
open_output_stream() and open_input_stream() audio HAL functions.
Bug: 14815883.
Change-Id: I5535677db3f3027917a31a7ed5c0a4c6bc013639
Refactoring alsa device attributes to alsa_device_profile.h/.c
Refactoring alsa device state to alsa_device_proxy.h/.c
Refactoring format functions into format.h/.c
Refactoring logging functions into logging.h/.c
Sundry (and extensive) code cleanup
Reworked locking on out_write() and in_read() to allow
simultaneous input/output
Bug: 15986827, 15856702, 12833166
Change-Id: I82c8d0ef252b2f95ee23f263dc175f4c883bfd64
New start_recognition() prototype with recognition
configuration structure specifying:
- List of keyphrases to listen to.
- Recognition mode for each keyphrase
- List of users and min confidence levels for each users
New recognition event format with confidence level and user ID
for each user.
Bug: 12378680.
Change-Id: I95e998c735321ceb5c27f477d894b574a6eca860