platform_hardware_interfaces/audio
Mikhail Naganov cf824f65c8 audio: Implement the major functionality of the primary CF HAL
Core HAL changes:

1. Add StreamPrimary implemented via StreamAlsa.

2. Align the configuration with the HIDL HAL.

3. Fix position retrieval vs. standby call.

4. Fix sleeps in StreamAlsa.

VTS changes:

1. Use several bursts for stream I/O test scenarios that check
   observable position increase. This is because the position may
   not be available until a couple of transfers have been made.

2. Do not require position increase for the scenarios that do
   not make several bursts. As specified above, the position may
   not have been increased for the ALSA case. Whereas, using
   multiple bursts in all scenarios will increase test time, and
   make the state machine transitions graph more complicated.

3. Hook up the test config file to shut down audioserver during
   VTS tests, fix the test config file.

Bug: 286914845
Test: atest VtsHalAudioCoreTargetTest
Test: compare APM dumps for AIDL vs. HIDL
Change-Id: I85271564c664fa40008d60e82b32eaa66a99c68f
2023-08-07 13:38:50 -07:00
..
2.0 [LSC] Add LOCAL_LICENSE_KINDS to hardware/interfaces 2021-02-23 14:26:20 -08:00
4.0 [LSC] Add LOCAL_LICENSE_KINDS to hardware/interfaces 2021-02-23 14:26:20 -08:00
5.0 [LSC] Add LOCAL_LICENSE_KINDS to hardware/interfaces 2021-02-23 14:26:20 -08:00
6.0 [LSC] Add LOCAL_LICENSE_KINDS to hardware/interfaces 2021-02-23 14:26:20 -08:00
7.0 audio: Fix parsing of arguments in the APM config update script am: b9e244dfc7 am: 188d6412b0 2021-06-11 22:06:36 +00:00
7.1 Make AUDIO_USAGE_NOTIFICATION_EVENT available to HALs 2022-02-12 00:03:49 +00:00
aidl audio: Implement the major functionality of the primary CF HAL 2023-08-07 13:38:50 -07:00
common Remove duplcated static libgtest 2023-06-05 12:47:39 -07:00
core/all-versions audio VTS: Update 7.0/PolicyConfig 2023-05-08 13:17:08 -07:00
effect Effect: Move thread priority updates from threadLoop 2023-01-13 13:48:48 -08:00
policy/1.0 Audio: add system usage to audio policy engine schemas 2023-08-02 10:47:00 +02:00
OWNERS audio: clean up OWNERS 2022-12-29 23:22:02 +00:00
README.md audio: Update README.md to add info about the AIDL version 2023-01-20 21:54:17 +00:00

Audio HAL

Directory structure of the audio HAL related code.

Run common/all-versions/copyHAL.sh to create a new version of the audio HAL based on an existing one.

Directory Structure

  • 2.0 — version 2.0 of the core HIDL API. Note that .hal files can not be moved into the core directory because that would change its namespace and include path.
    • config — the XSD schema for the Audio Policy Manager configuration file.
  • 4.0 — version 4.0 of the core HIDL API.
  • ...
  • common — common types for audio core and effect HIDL API.
    • 2.0 — version 2.0 of the common types HIDL API.
    • 4.0 — version 4.0.
    • ...
    • 7.0 — version 7.0.
      • example — example implementation of the core and effect V7.0 API. It represents a "fake" audio HAL that doesn't actually communicate with hardware.
    • all-versions — code common to all version of both core and effect API.
      • default — shared code of the default implementation.
        • service — vendor HAL service for hosting the default implementation.
      • test — utilities used by tests.
      • util — utilities used by both implementation and tests.
  • core — VTS tests and the default implementation of the core API (not HIDL API, it's in audio/N.M).
    • 7.0 — code specific to version V7.0 of the core HIDL API
    • all-versions — the code is common between all versions, version-specific parts are enclosed into conditional directives of preprocessor or reside in dedicated files.
      • default — code that wraps the legacy API (from hardware/libhardware).
        • util — utilities for the default implementation.
      • vts VTS tests for the core HIDL API.
  • effect — same for the effect HIDL API.
    • 2.0
      • config — the XSD schema for the Audio Effects configuration file.
    • 4.0
    • ...
    • all-versions
      • default — code that wraps the legacy API (from hardware/libhardware).
        • util — utilities for the default implementation.
      • vts VTS tests for the effect HIDL API.
  • policy — Configurable Audio Policy schemes.
    • 1.0 — note that versions of CAP are not linked to the versions of audio HAL.
      • vts — VTS tests for validating actual configuration files.
      • xml — XSD schemas for CAP configuration files.