2020-08-12 00:21:40 +02:00
|
|
|
# Audio HAL
|
|
|
|
|
|
|
|
Directory structure of the audio HAL related code.
|
|
|
|
|
2022-07-29 01:21:17 +02:00
|
|
|
## Directory Structure for AIDL audio HAL
|
2020-08-12 00:21:40 +02:00
|
|
|
|
2022-07-29 01:21:17 +02:00
|
|
|
The AIDL version is located inside `aidl` directory. The tree below explains
|
|
|
|
the role of each subdirectory:
|
|
|
|
|
|
|
|
* `aidl_api` — snapshots of the API created each Android release. Every
|
|
|
|
release, the current version of the API becomes "frozen" and gets assigned
|
|
|
|
the next version number. If the API needs further modifications, they are
|
|
|
|
made on the "current" version. After making modifications, run
|
|
|
|
`m <package name>-update-api` to update the snapshot of the "current"
|
|
|
|
version.
|
|
|
|
* `android/hardware/audio/common` — data structures and interfaces shared
|
|
|
|
between various HALs: BT HAL, core and effects audio HALs.
|
|
|
|
* `android/hardware/audio/core` — data structures and interfaces of the
|
|
|
|
core audio HAL.
|
|
|
|
* `default` — the default, reference implementation of the audio HAL service.
|
|
|
|
* `vts` — VTS tests for the AIDL HAL.
|
|
|
|
|
|
|
|
## Directory Structure for HIDL audio HAL
|
|
|
|
|
|
|
|
Run `common/all-versions/copyHAL.sh` to create a new version of the HIDL audio
|
|
|
|
HAL based on an existing one. Note that this isn't possible since Android T
|
|
|
|
release. Android U and above uses AIDL audio HAL.
|
2020-08-12 00:21:40 +02:00
|
|
|
|
2021-01-15 20:05:04 +01:00
|
|
|
* `2.0` — version 2.0 of the core HIDL API. Note that `.hal` files
|
2020-08-12 00:21:40 +02:00
|
|
|
can not be moved into the `core` directory because that would change
|
|
|
|
its namespace and include path.
|
2021-01-15 20:05:04 +01:00
|
|
|
- `config` — the XSD schema for the Audio Policy Manager
|
2020-08-12 00:21:40 +02:00
|
|
|
configuration file.
|
2021-01-15 20:05:04 +01:00
|
|
|
* `4.0` — version 4.0 of the core HIDL API.
|
2020-08-12 00:21:40 +02:00
|
|
|
* ...
|
2021-01-15 20:05:04 +01:00
|
|
|
* `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.
|
2020-08-12 00:21:40 +02:00
|
|
|
- ...
|
2021-01-15 20:05:04 +01:00
|
|
|
- `7.0` — version 7.0.
|
|
|
|
- `example` — example implementation of the core and effect
|
2020-08-12 01:23:16 +02:00
|
|
|
V7.0 API. It represents a "fake" audio HAL that doesn't
|
|
|
|
actually communicate with hardware.
|
2021-01-15 20:05:04 +01:00
|
|
|
- `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
|
2020-08-12 00:21:40 +02:00
|
|
|
implementation.
|
2021-01-15 20:05:04 +01:00
|
|
|
- `test` — utilities used by tests.
|
|
|
|
- `util` — utilities used by both implementation and tests.
|
|
|
|
* `core` — VTS tests and the default implementation of the core API
|
2020-08-12 00:21:40 +02:00
|
|
|
(not HIDL API, it's in `audio/N.M`).
|
2021-01-15 20:05:04 +01:00
|
|
|
- `7.0` — code specific to version V7.0 of the core HIDL API
|
|
|
|
- `all-versions` — the code is common between all versions,
|
2020-08-12 00:21:40 +02:00
|
|
|
version-specific parts are enclosed into conditional directives
|
|
|
|
of preprocessor or reside in dedicated files.
|
2021-01-15 20:05:04 +01:00
|
|
|
- `default` — code that wraps the legacy API (from
|
2020-08-12 00:21:40 +02:00
|
|
|
`hardware/libhardware`).
|
2021-01-15 20:05:04 +01:00
|
|
|
- `util` — utilities for the default implementation.
|
2020-08-12 00:21:40 +02:00
|
|
|
- `vts` VTS tests for the core HIDL API.
|
2021-01-15 20:05:04 +01:00
|
|
|
* `effect` — same for the effect HIDL API.
|
2020-08-12 00:21:40 +02:00
|
|
|
- `2.0`
|
2021-01-15 20:05:04 +01:00
|
|
|
- `config` — the XSD schema for the Audio Effects configuration file.
|
2020-08-12 00:21:40 +02:00
|
|
|
- `4.0`
|
|
|
|
- ...
|
|
|
|
- `all-versions`
|
2021-01-15 20:05:04 +01:00
|
|
|
- `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
|
2020-08-12 00:21:40 +02:00
|
|
|
of audio HAL.
|
2021-01-15 20:05:04 +01:00
|
|
|
- `vts` — VTS tests for validating actual configuration files.
|
|
|
|
- `xml` — XSD schemas for CAP configuration files.
|