Commit graph

181 commits

Author SHA1 Message Date
Bob Badour
9380e9875c [LSC] Add LOCAL_LICENSE_KINDS to hardware/libhardware_legacy
Added SPDX-license-identifier-Apache-2.0 to:
  Android.bp
  audio/Android.bp

Bug: 68860345
Bug: 151177513
Bug: 151953481

Test: m all

Exempt-From-Owner-Approval: janitorial work
Change-Id: Id879ff71929846da71ae2df96ab748a4ad464d82
2021-02-12 16:32:13 -08:00
Mikhail Naganov
0fb2f22696 Convert mask types from uint32_t to enum type
This applies to the following types:

- audio_gain_mode_t;
- audio_flags_mask_t;
- audio_channel_representation_t;
- audio_channel_mask_t;
- audio_devices_t.

Enum types are distinct thus proper overloading on the type
is possible in C++. Also, assignments to enum types are
less prone to errors.

Bug: 169889714
Test: basic audio functionality
Change-Id: I6366511b421ccab2782310ecc15a13e08d9c17af
Merged-In: I6366511b421ccab2782310ecc15a13e08d9c17af
2020-11-24 03:42:39 +00:00
Marco Nelissen
19c60b3e2a libaudiohw_legacy needs libaudioclient_headers
Test: build
Change-Id: I0ad1a777a0358a0f79d495747a7ca4bddf984d45
Merged-In: I0ad1a777a0358a0f79d495747a7ca4bddf984d45
2019-10-08 09:41:33 -07:00
Kevin Rocard
049b71876c Revert "Audio V4: Split system and vendor Audio.h"
This reverts commit c9eb1ead66.

Reason for revert: Breaks the build of multiple devices

Change-Id: I2a4fe487d60b484c19d8b07d1439af934b852913
2018-01-24 06:13:30 +00:00
Kevin Rocard
c9eb1ead66 Audio V4: Split system and vendor Audio.h
audio.h and its dependencies (audio-effect.h, sound_trigger.h...)
used to be shared between system and vendor code.

This led to multiple problems:

1) Such sharing contradicts the Treble policy of
strict independence of framework and vendor code.

2) When audio.h was changed, every vendor needed to update
its code in the next release. This meant that audio*.h
headers were mostly changed in backward compatible manner.
Nevertheless, for P the HIDL interface and thus the audio.h
interface are changed in backward incompatible way.
(Some enum are becoming 64 bit long).

3) As the headers were common, some API used only by the framework
needed to be visible to the vendors (mostly enum values).

4) Treble policy is to support at least one previous HAL version

As a result the audio*.h headers are now duplicated,
one set for the framework, and one for the vendor.

Each set will evolve independently. After this split,
the framework-only APIs will be removed from the vendor headers
and vice versa.

The split is implements as such:

 + for system code

    - NOT moving the libaudio_system_headers
      Eg: system/audio.h and system/audio_effects/effect_equalizer.h
          are still in system/media/audio

    - the legacy audio HAL API that were in libhardware headers
          are now in libaudiohal_legacy_headers
      Eg: hardware/audio.h and hardware/audio_effect.h
          are now in frameworks/av/media/libaudiohal/legacy/

 + for vendor code

    - moving libaudio_system_headers and the legacy audio HAL API
          that were in libhardware_headers in
          android.hardware.audio.common.legacy@2.0
      Note that those headers are now versioned, so migrating to a @4.0
          HIDL HAL will mean changing the legacy dependency too.
      Eg: system/audio.h, system/audio-effect.h, hardware/audio.h
          are now in hardware/interfaces/audio/common/2.0/legacy

    - the legacy audio effect HAL API that was in libaudioeffects
          is now moved in android.hardware.audio.effect.legacy@2.0
      Eg: audio_effects/effect*.h are now in
          hardware/interfaces/audio/effect/2.0/legacy

    - the legacy sound trigger HAL API that were in libhardware_headers
          is now moved in android.hardware.soundtrigger.legacy@2.0
      Eg: hardware/sound_trigger.h is now in
          hardware/interfaces/audio/effect/2.0/legacy

libaudioutil being used by both system and vendor, had
to be renamed for system to libaudioutil_system.

Vendor libs that now depend on the audio.h of a specific
version and are not extensively referenced in non google code,
append @2.0 to their name.

Note that headers that are not expected to change in the 4.0 HAL are
left in all-versions folder to avoid duplication.
This is an implementation detail as the versioned libraries export
the all-versions headers.

Note that strict vendor-system separation is enforced by the
build-system. The system headers are not available for vendor
libs and vice-versa.

Note that this patch is split between numerous git repository (>10),
all the commits having the same Change-id for searchability.

Note that audio_policy.h is no longer exposed to vendors
as the legacy audio policy HAL API was never officially supported.
As a result the audiopolicy stub implementation has been removed.

Test: compile taimen-userdebug walleye-userdebug
              sailfish-userdebug marlin-userdebug
              gce_x86_phone-userdebug gce_x86_phone
              full-eng aosp_arm aosp_x86-eng
Test: check that the emulator booted and played audio
Test: full QA on sailfish-userdebug and taimen-userdebug
Bug: 38184704
Change-Id: I950f4e0a55613d72e32eba31bd563cb5bafe2d1a
Signed-off-by: Kevin Rocard <krocard@google.com>
2018-01-20 21:39:40 -08:00
Chih-Hung Hsieh
3ba7298e95 Use -Werror in hardware/libhardware_legacy
* Remove unused local variable or suppress the warning.

Bug: 66996870
Test: build with WITH_TIDY=1
Change-Id: I4d7b4f2e9e7e6c60d8bfc209f47e6f1d33720165
2017-10-03 13:38:46 -07:00
Steven Moreland
4d4047b7e9 libhardware_legacy: Android.mk -> Android.bp
Test: builds with BOARD_VNDK_VERSION := current
Test: (sanity) Boots and works on internal marlin.
Bug: 33241851
Bug: 29915755
Change-Id: Ic355174a67860afa13377bc9d8f0a140f59ec34e
2017-04-14 16:05:25 +00:00
Colin Cross
a1f2ef4d6f Merge "libhardware_legacy: remove dead code in Android.mk" am: 955b796f36 am: fa192e08eb
am: 20107d1fc9

Change-Id: I4344edee0d02c8df684147bde83ab67bf95c9a99
2017-02-21 18:00:32 +00:00
Bin Chen
33c7ebd729 libhardware_legacy: remove dead code in Android.mk
The commneted code is the only place in AOSP that still reference
BOARD_HAVE_BLUETOOTH and BOARD_USES_GENERIC_AUDIO. Delete it
to make things cleaner.

Test: Build
Change-Id: I37e3135bf2db2c6d46eb59d5a0de49d02c1a036d
Signed-off-by: Bin Chen <bin.chen@linaro.org>
2017-02-13 16:55:19 +11:00
Eric Laurent
136bad9bf4 remove legacy audio policy
Test: make.

Change-Id: I8b04ba9e1ab3b3fc22cf1b1baba010664c47ecc6
2016-11-28 17:48:03 -08:00
Chih-Hung Hsieh
d0273aaaab Merge \"Fix google-explicit-constructor warnings in libhardware_legacy\"
am: a7355c3ab4

Change-Id: I0f4c805e27c1e51d15f63d7e6b9c0521fd9bd520
2016-06-30 22:24:38 +00:00
Chih-Hung Hsieh
04159bb35f Fix google-explicit-constructor warnings in libhardware_legacy
Bug: 28341362
Change-Id: I9b370ece9506591abfff46d5edb726a7fc993298
Test: build with clang-tidy
2016-06-30 14:20:59 -07:00
Treehugger Robot
3ca17191f3 Merge "Use libmedia header paths in legacy audio libs" am: 82cca69
am: 1e8f444

* commit '1e8f444a0fdf1134bab3f1cf8f06cbbea96da11f':
  Use libmedia header paths in legacy audio libs

Change-Id: Idfbf33afeb8f2689ee6374bc8b675c039fc31a83
2016-04-15 01:18:36 +00:00
Christopher Wiley
79a8b313a7 Use libmedia header paths in legacy audio libs
The headers for these libraries include headers from libmedia,
which means they need access to the full libmedia include path.

Bug: 27804373
Test: These libraries compile when libmedia's compilation path changes
      slightly.

Change-Id: I201c82c85a1513b4165c7565dfac4f4371d6fe5c
2016-04-14 10:13:05 -07:00
Glenn Kasten
b4c15199a9 Use audio_module_handle_t and audio_patch_handle_t consistently
Bug: 27814144
Change-Id: I54b7a73ec318779fd3addb060998f4d94141152d
2016-03-23 12:00:41 -07:00
Glenn Kasten
6a36ec43e6 Use audio_session_t consistently
Bug: 27562099
Change-Id: Id5af47af3e8e3404c575fbb0ec02cf25378b7089
2016-03-10 09:44:53 -08:00
Dan Albert
f2d9ad053a Make libhardware_legacy warning clean.
Fix some (note the fun infinite recursion bug from the dawn of time,
apparently no one has called that function), silence those that are
style choices.

Bug: http://b/26936282
Change-Id: I99fa342abf9d134fb729ed8d906e60c011120e89
2016-02-02 14:49:35 -08:00
Dan Willemsen
474bb8ac80 Prepare to remove libhardware_legacy from global include dirs
Bug: 18903857
Change-Id: I2a5fdb7f42ba46729e66ff08893183184edc3c97
2015-09-28 14:11:21 -07:00
Daniel Erat
accf5b4b62 Remove unused systemTime() and include utils/Timers.h.
Remove a systemTime() function from power/power.c that
doesn't appear to be called anywhere, and make several
audio/ files explicitly include utils/Timers.h for the
libutils version of systemTime(). (They appear to have been
transitively getting it via utils/threads.h's include of
utils/Condition.h.)

Change-Id: I432bb1cf1100f5829df307a146076acf035a0bdc
2015-08-05 10:38:37 -06:00
Eric Laurent
27b9f4b5bd am e714af92: audio policy: use legacy stream type definitions
* commit 'e714af927c1e87a488178315b78b0c12c0ec9db9':
  audio policy: use legacy stream type definitions
2014-11-26 12:01:47 +00:00
Eric Laurent
e714af927c audio policy: use legacy stream type definitions
New stream types have been added, so make sure that
legacy implementation uses legacy stream definitions

Bug: 18067208
Change-Id: I8042ebe9ac3e7eda380b8c91650f2ac16b44bc34
2014-11-11 14:01:13 -08:00
Glenn Kasten
e88fe4462e am b4b0608b: Merge "legacy audio policy: check string parameters before use" into lmp-mr1-dev
* commit 'b4b0608b0560a7cad27aeec0af8b1728b971aa3a':
  legacy audio policy: check string parameters before use
2014-11-07 16:13:56 +00:00
Glenn Kasten
2d2ea50df1 legacy audio policy: check string parameters before use
Bug: 18262893
Change-Id: Iee6e59db7ffae5612256ba1f74aba62bc8cf12db
2014-11-06 18:04:41 -08:00
Eric Laurent
b5c37e6748 am a311a983: audio HAL: add parameters to open stream functions
* commit 'a311a983eb4035b272033105119cb44d814fb2db':
  audio HAL: add parameters to open stream functions
2014-07-28 21:09:20 +00:00
Eric Laurent
a311a983eb audio HAL: add parameters to open stream functions
Pass device address (and audio source for inputs) to
open_output_stream() and open_input_stream() audio HAL functions.

Bug: 14815883.
Change-Id: Ib1c3e98518733fa5eab54cbca4220e388d3f6211
2014-07-27 17:30:34 -07:00
Eric Laurent
5ed5935328 am 39b3abc0: Merge "audio: add mechanism to re-route nullified audio"
* commit '39b3abc0ca227d72f66bb47a75cec2acfb4d6de0':
  audio: add mechanism to re-route nullified audio
2014-07-23 16:06:22 +00:00
Glenn Kasten
044bac40a1 Add audio_input_flags_t to HAL open_input_stream
Change-Id: I17db01e92bfa939c7a15e7f9f95197d0a0568033
2014-07-17 07:29:12 -07:00
Vincent Becker
31de680d56 audio: add mechanism to re-route nullified audio
Fixes a race condition whereby two requests attempt to change the audio stream
(and interrupt each other).  For example, a user space app makes a call through
the audio API and before completion, a kernel function such as jack removal is
detected and is serviced.  In this case, you have a nullified audio route that
needs to be re-routed.

In order to know a routing update is needed, a boolean member mForceRouting
has been introduced to enforce routing for the next attempt to set audio output
with a non-null device.

Change-Id: Ia0aa2f27fe63c39f0980dec2e1e79dbc26b81e56
Author: Vincent Becker <vincentx.becker@intel.com>
Signed-off-by: Vincent Becker <vincentx.becker@intel.com>
Signed-off-by: Zhi Jin <zhi.jin@intel.com>
Signed-off-by: Shuo Gao <shuo.gao@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
Signed-off-by: Jack Ren <jack.ren@intel.com>
Signed-off-by: Robert Beatty <robert.m.beatty@intel.com>
2014-07-16 17:45:43 -07:00
Eric Laurent
40508f66ca audio: fixed channel count determination from channel mask
Do not use popcount() to derive channel count from channel mask.

Bug: 15000850.
Change-Id: I5050ce7fd7884369eb0de37967e40052630006a9
2014-07-01 20:33:36 -07:00
Paul McLean
03d92f4a6e Enabling USB Device and Android Device Vol inc/dec functionality
for USB Audio Output

Bug: 13747844
Change-Id: I53b7db8102fd2ed24014c338ea5e7290cda8b2f3
2014-06-27 08:48:20 -07:00
Eric Laurent
d97aa170de audio policy: add parsing for more audio formats
Bug: 9428304.
Change-Id: Ie3c9827ed78703a1b2d9699e38ce628f3055138b
2014-06-19 10:10:54 -07:00
Eric Laurent
f466bfe146 Merge "handle in and out audio device connection separately" 2014-05-30 17:09:19 +00:00
Eric Laurent
806fab660a handle in and out audio device connection separately
AudioService now indicates in and out device connection
separately in case of combined devices like wired headset
or BT SCO headset.

Change-Id: Id20e02bb351cc732ceddccf597742ced049671a8
2014-05-29 16:14:44 -07:00
Mike Lockwood
33bf1b0fe3 AudioPolicyManagerBase: Add support for A2DP sink input
Change-Id: I500d1f2f8f2199c674b289cf671b7f863a7d02ee
2014-05-28 12:21:52 -07:00
Eric Laurent
9c599afbc0 am 62038fc4: am 2c388a44: am 8eb3354a: Merge "Audio: add an openOutputStreamWithFlags API"
* commit '62038fc4c5c596f04a87388bb42bdef13d359c39':
  Audio: add an openOutputStreamWithFlags API
2014-05-08 18:24:06 +00:00
Eric Laurent
8eb3354ad0 Merge "Audio: add an openOutputStreamWithFlags API" 2014-05-07 23:34:19 +00:00
Paul McLean
fd61179b64 Update policy handling for USB inputs
Change-Id: Ib2e531f115f8bd1d5f290094032f3f4a4753e726
2014-04-25 17:00:48 +00:00
Colin Cross
b10621c1f1 resolved conflicts for merge of 75402fdb to master
Change-Id: Ie85a3c7d498d7685738190267916e9a205cc469e
2014-04-24 08:39:41 -07:00
David Wagner
cc029e59f7 Audio: add an openOutputStreamWithFlags API
The existing openOutputStream API did not allow passing stream flags even
though its audio hardware interface's open_output_stream counterpart does take
a "flags" argument.  This means that, when the audio hw_module is implemented
using libhardware_legacy, the output flag was lost.

This commit adds an API in libhardware_legacy's audio module, allowing to pass
the flag, and updates the default wrapper in order to call this new API instead
of the old version that missed the flag.

Change-Id: I20c102d32b489f87fabbd7d02aa0b28fae13948b
Signed-off-by: David Wagner <david.wagner@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
Signed-off-by: Jack Ren <jack.ren@intel.com>
2014-04-23 14:42:21 +02:00
Colin Cross
c7b6e3c857 audio: allow compiling for 64-bit
Fix a few 64-bit warnings and set -Wno-unused-parameter, which makes
the directory warnings-clean on 32-bit and 64-bit.
Remove LOCAL_32_BIT_ONLY.

Change-Id: I688b31683f1a6598419866d9b7b6bc27a7056f4a
2014-04-18 15:48:06 -07:00
Paul McLean
c26f454f8d Initial implementation of USB Audio output.
Change-Id: I4e2517233487ca7487ed7948a974fc2cc6c41190
2014-03-28 10:34:25 -07:00
Glenn Kasten
67d562280d am fa8ad9fb: am 60089828: Merge "Audio policy is 32-bit only"
* commit 'fa8ad9fb544e01e663709e8dccd9b358e4d3ede9':
  Audio policy is 32-bit only
2014-03-17 23:32:53 +00:00
Glenn Kasten
a7b1bc9eda Audio policy is 32-bit only
Change-Id: I2eca0286d98bb5eebe9c68286d4ee7ed366f173d
2014-03-17 11:47:56 -07:00
Glenn Kasten
dcc6e9f299 am e6c7127e: am be39c1e4: Merge "audio policy : add AUDIO_DEVICE_IN_USB_DEVICE to sDeviceNameToEnumTable"
* commit 'e6c7127ef2491ddeb995ffb48843fda4e30ff9ff':
  audio policy : add AUDIO_DEVICE_IN_USB_DEVICE to sDeviceNameToEnumTable
2014-03-17 15:56:18 +00:00
Peter Yoon
26101ada7b audio policy : add AUDIO_DEVICE_IN_USB_DEVICE to sDeviceNameToEnumTable
This commit adds AUDIO_DEVICE_IN_USB_DEVICE to sDeviceNameToEnumTable[],
It had to be added here, when it was defined in system/core/include/system/audio.h

AudioPolicyManagerBase::loadHwModule() fails to parse device type of
AUDIO_DEVICE_IN_USB_DEVICE in audio_policy.conf.
By applying this commit, AUDIO_DEVICE_IN_USB_DEVICE can be used for
audio policy customization.

Change-Id: I0165956334d7105129dca4c746372dbca0d9e324
2014-03-17 13:10:04 +00:00
Glenn Kasten
9df8ecc68b Add more PCM formats to audio_policy.conf parser
In particular, we need AUDIO_FORMAT_PCM_24_BIT_PACKED.

Change-Id: I28abe8466024bdd4d1edbb4281c6472d45a2d94f
2014-03-07 10:21:40 -08:00
Glenn Kasten
316222fcd6 Rename setStreamOutput to invalidateStream
And simplify by removing the unused I/O handle parameter 'output'.

Change-Id: Ie9c4df17a7378066312d4ed8790fda7a9125c95e
2014-02-28 11:54:03 -08:00
Patrick Tjin
4387d30660 audio_policy: clean up dumpsys
Remove NUL characters from audio_policy's dump output

Change-Id: If591473dbe3e5adbc34dbbdb0d552b329f19eb6a
2014-02-06 09:11:50 -08:00
Colin Cross
1150598d80 am 3582b9b0: am 84b5cd7c: Merge "hardware/libhardware_legacy: convert LOCAL_MODULE_PATH to LOCAL_MODULE_RELATIVE_PATH"
* commit '3582b9b0e1caa4a43b8706e699903142e34ad5c0':
  hardware/libhardware_legacy: convert LOCAL_MODULE_PATH to LOCAL_MODULE_RELATIVE_PATH
2014-01-28 01:12:46 +00:00
Colin Cross
a13a2b960a hardware/libhardware_legacy: convert LOCAL_MODULE_PATH to LOCAL_MODULE_RELATIVE_PATH
LOCAL_MODULE_PATH doesn't work for multiarch builds, replace it
with LOCAL_MODULE_RELATIVE_PATH.

Change-Id: I4e4ceec61d026bbe74ba604554c06104bde42e5e
2014-01-24 21:00:32 -08:00