Commit graph

32 commits

Author SHA1 Message Date
Mike Lockwood
2d4d96574e audio: add AUDIO_PARAMETER_A2DP_SOURCE_ADDRESS parameter name
Change-Id: I6eedc25ed16be82a7a875d13774f31a47f0f9443
2014-05-28 11:09:54 -07:00
Eric Laurent
73b8a7414a audio: audio HAL extension for routing and volume control
Added audio HAL functions to control audio routing and audio gain.
Audio HALs above version 3.0 must implement these functions.
These functions will be used by the framework instead of
out_set_parameters("routing"=XXX) for device selection on an output
or input stream.
They will also allow direct connection of input devices to output devices
as well as gain control on devices or streams.

The gain or routing capabilities are exposed in audio_polciy.conf file.

Change-Id: Ic293fd41d492e38e86bdc35e3ad93aa5deb0b48f
2014-05-22 18:24:02 -07:00
Eric Laurent
447cae749c audio HAL: add minimum supported version
Add a definition for the minimum audio HAL version supported
by the audio framework.

Change-Id: Id7df440cc9fcc23b27b61c81bacb569599a20c13
2014-05-22 14:33:55 -07:00
Stewart Miles
84d35492b1 Described restrictions for common HAL object methods.
Inheritance of HAL object is performed by composing a child structure of a
single parent structure located at offset 0 followed by new data members
and function pointers in the child structure.

For example,

struct child {
  struct parent common;
  int a_data_member;
  void (*a_method)(struct child *c, int v);
};

HAL code assumes this layout when accessing child structures given a pointer
to a parent structure such that users write code like the following...

void child_method(struct *parent, int v) {
  struct child * c = (struct child*)parent;
  // do stuff with c
}

Code above will break if a member is added before "common" in "struct child".

This change adds comments that describe the restriction on the location of
parent HAL objects within a derived HAL object.  HAL objects that already
have comments that describe the required location of parent objects are not
modified.

Change-Id: Ibe4300275286ef275b2097534c84f1029d761d87
2014-05-12 12:35:37 -07:00
Glenn Kasten
d930d92c97 Add symbol AUDIO_PARAMETER_KEY_BT_SCO_WB
Change-Id: Ib2cfef74a57467cb01b5e0c44af335f53791e348
2014-04-29 13:35:57 -07:00
Glenn Kasten
22a06b752f Clarify return values of get_presentation_position
Change-Id: I495d7abd7e366849308c66bcaee99554dcd244aa
2013-09-10 09:23:48 -07:00
Glenn Kasten
e25f9ed346 get_presentation_position
Change-Id: Iedc4df9018321d7273eaa862e913ad6d9a844618
2013-08-29 12:05:12 -07:00
Richard Fitzgerald
f37f187bba Add defines and support for audio offload
- Add non-blocking write support, set_callback() function
- Add pause, resume, flush, drain functions to audio output stream
- Add audio parameter defines for compressed audio metadata
- Extend audio_config_t to include an audio_offload_info_t field
- Add is_offload_supported() function to test whether there is
    hardware decode support for a given compressed audio format
- Change audio_stream_frame_size() to handle offloaded streams.
    For an offloaded stream the size is always counted in bytes
    (frame size == 1) and the number of channels is irrelevant.

Change-Id: I5b82c3fdcfa1456502d0042888f166bf02d8d54b
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Signed-off-by: Eric Laurent <elaurent@google.com>
2013-06-27 17:16:24 -07:00
Eric Laurent
85e08e2625 audio: new audio devices enums
Changed audio device API version to 2.0 because of
new enums for audio input and output devices.

Removed implementations of get_supported_devices() in
stub and usb audio modules.

Change-Id: I09345d38929d931e5015e36d18259f5a5f950298
2012-09-07 10:32:57 -07:00
Jean-Michel Trivi
88b79cb001 Add audio module for remote submix
New definitions of audio devices for remote submix: one representing
  a sink for writing the audio buffers that won't be played directly
  locally, another representing the audio source that can be read from
  to obtain the audio mix.

New audio hardware module encapsulating the submix loop functionality.
  Create a Pipe to serve as non-blocking audio ring buffer between
  the output device (the sink) and the input device (the source).

Change-Id: I527f4721a69ced0430a99ebba3b4db7d419f2bb2
2012-09-06 18:33:04 -07:00
John Grossman
47bf3d7ea5 Extend the audio HAL interface to support get/set master mute
(cherry picked from commit d245968b7ef0be5c776c9aefff3eca9e293d1b35)

> Extend the audio HAL interface to support get/set master mute
>
> Hand merge from ics-aah
>
> > Extend the audio HAL interface to support get/set master mute: DO NOT MERGE
> >
> > Extend the audio HAL interface to allow HALs to optionally support HW
> > level master mute.  This follows the same pattern as master volume and
> > is part of the fix for bug 6828363.  Because of the divergences
> > between ICS and master, this change will need to be merged by hand.
> >
> > Signed-off-by: John Grossman <johngro@google.com>
> > Change-Id: Ica6f5e37e13d13dde60463966f41f271ffa104fd
>
> Change-Id: I5e7aea6d7da0012dcc077281f9077fc04cfb9889
> Signed-off-by: John Grossman <johngro@google.com>

Change-Id: I2011cc5bc41ca7081ce255a4bfba65f36f899bc4
Signed-off-by: John Grossman <johngro@google.com>
2012-08-07 15:59:07 -07:00
Glenn Kasten
48915acb39 struct effect_descriptor_s const correctness
Also struct audio_stream in audio_stream_frame_size

Change-Id: Ie0de708e38a1850c186a8b4eb5f491adc44b3275
2012-07-24 07:53:14 -07:00
Glenn Kasten
34afb68c0c Add screen state parameter
Change-Id: Iead23e0d91dac34d40e9e55f525916b73c31bcb5
2012-06-08 10:49:34 -07:00
Eric Laurent
41eeb4fe9f audio HAL: add definitions for capabilities query
Added definitions for querying supported channel masks, sampling rates and
format with out_get_parameters().

Change-Id: Icb28fcef504c7e0a0b2daeb1bc7e704d20d3b738
2012-06-04 14:18:16 -07:00
Eric Laurent
55786bcf3c audio: updated audio HAL device API
Modified open output and input stream functions to add new
parameters needed by audio HAL. Also grouped parameters
in a config structure for clarity.

Change-Id: I60832d8e5b5e4a48f209a6d83f5ca9c044be61f1
2012-04-17 16:02:48 -07:00
Eric Laurent
b934784bbe Merge "audio: added definitions for audio HAL modules" 2012-04-03 16:46:46 -07:00
Eric Laurent
431fc78c11 audio: added definitions for audio HAL modules
Change-Id: I16f8b42ab5de503d38086413b83e934ac9aa1f24
2012-04-03 16:01:17 -07:00
Glenn Kasten
0cacd8d44b Update comments
Change-Id: I123d9baeceda13608cc01eda6a19e13822258dc0
2012-04-01 13:43:02 -07:00
Eric Laurent
a70c5d0caf audio HAL : added string for A2DP address
Added a definition for A2DP sink address parameter.
It was previously defined at several places.

Change-Id: I757208e99db395f3d88c17e0de5ae303c71a85ec
2012-03-07 18:59:47 -08:00
Mike J. Chen
5ad38a901d Modifications to audio_hal for Android@Home.
This is a squashed merge of the following changes:

Commit f560da61a5e128ca9f82f7fe939afcf1f09188c7
Author: John Grossman <johngro@google.com>
Date:   Thu Aug 11 15:34:55 2011 -0700

    Fill out a missing entry in the audio HAL function table.

    The entry for get_initial_master_volume was missing from the non-legacy audio
    HAL and needs to be filled out.  Also fix up the order of the comments
    describing the get_initial_master_volume method.

    Change-Id: I87d5415ef92611497a6dab4c657fc00367c4d80b

commit cea82facb63fd237a4ea6fb770605fcb500850ff
Author: Jason Simmons <jsimmons@google.com>
Date:   Thu Jun 16 14:24:24 2011 -0700

    Define a replacement for getSampleDelta that returns a DMA start time and count of samples queued

    Change-Id: I2d13f57b5a8c5b97fb3aa0a90834ce91c56864ef

commit 60a9acd7eee470a8d870218e8be618bfa3be15a5
Author: Mike J. Chen <mjchen@google.com>
Date:   Tue Jun 7 09:13:23 2011 -0700

    Add Android@Home extensions to new Audio HAL interface.

    Change-Id: I3ea4676d4b7d2afd78a5a7a7003ad5c437276d05
    Signed-off-by: Mike J. Chen <mjchen@google.com>

Change-Id: I09f3756d12a1ce4f9af39610ed857890742a72df
Signed-off-by: Mike J. Chen <mjchen@google.com>
Signed-off-by: John Grossman <johngro@google.com>

Conflicts:

	include/hardware/audio.h
	modules/audio/audio_hw.c
2012-02-10 08:58:32 -08:00
Glenn Kasten
ea84c55f2c Merge "Use audio_format_t consistently" 2012-01-20 14:50:29 -08:00
Glenn Kasten
fad1f606a2 Merge "set_mode and set_phone_state now take audio_mode_t" 2012-01-17 11:33:22 -08:00
Glenn Kasten
a26cbac8a0 Use size_t for frame size
Change-Id: Ib96808544ee6fd76d0c8ff42e27b9c05518e8415
2012-01-13 14:53:35 -08:00
Glenn Kasten
fe79eb3f06 Use audio_format_t consistently
Was sometimes int or uint32_t

Change-Id: Ib3d82f5aefeda371c0439e43e72737a54882f519
2012-01-12 14:55:57 -08:00
Glenn Kasten
6df641e269 set_mode and set_phone_state now take audio_mode_t
Change-Id: I12a3a5ad6c3cadc6b9de8281f78edfef53908e2d
2012-01-12 10:06:24 -08:00
Glenn Kasten
af320d7500 Add comment about actual type of set_mode
Change-Id: Ie50a66894831763b6e9eb6aa490441d7759cbeef
2012-01-05 15:34:27 -08:00
Eric Laurent
70e8110fcf audio HAL: add support for TTY mode selection
Change-Id: I680e008a091e31e6c0b11adb26f6b232829baacb
2011-08-07 10:05:40 -07:00
Eric Laurent
ed9928c76d audio HAL: add defines for BT NREC parameter
Added definitions of keys and values used to enable or disable
AEC and NS via set_parameters according to BT headset capabilities.

Change-Id: Id3fba06edfe77e2832b8256c0c4c46eeef17b816
2011-08-02 19:30:37 -07:00
Eric Laurent
f3008aa707 Audio HAL: added interface for audio preprocessing
Change-Id: I032f6dd8f9ad11283a3f0a6721018dabfd12236d
2011-07-08 09:59:52 -07:00
Dima Zavin
3bc15860a9 hardware: drop the _hal suffixes from audio.h and audio_policy.h
Change-Id: Ib9bfc4049cf350f72af3ee577ce4756ac4118cfc
Signed-off-by: Dima Zavin <dima@android.com>
2011-06-13 18:12:17 -07:00
Dima Zavin
aa21172bcd audio: move audio.h to system/core/include/system/audio.h
Change-Id: I523dfb361b1b3862cf8bc41c1691c607b2c815b0
Signed-off-by: Dima Zavin <dima@android.com>
2011-05-12 14:10:06 -07:00
Dima Zavin
f1504dbca3 libhardware: add audio defines and HAL headers
Change-Id: Iae523059834c252f0d39f7efc6e15832e6273101
Signed-off-by: Dima Zavin <dima@android.com>
2011-04-27 14:08:57 -07:00