summaryrefslogtreecommitdiffstats
path: root/audio/audio_policy_hal.cpp
diff options
context:
space:
mode:
authorRichard Fitzgerald <rf@opensource.wolfsonmicro.com>2013-03-25 16:18:26 +0000
committerEric Laurent <elaurent@google.com>2013-06-27 17:16:25 -0700
commitb4d07b97d23cfaffe22c7859ad7c45e168a7df0e (patch)
tree1f36a97d335c3d7b597a43f89434e8e4691267ad /audio/audio_policy_hal.cpp
parent324157de1a8dd109bcc2fb2e8163939dfbf1e860 (diff)
downloadhardware_libhardware_legacy-b4d07b97d23cfaffe22c7859ad7c45e168a7df0e.zip
hardware_libhardware_legacy-b4d07b97d23cfaffe22c7859ad7c45e168a7df0e.tar.gz
hardware_libhardware_legacy-b4d07b97d23cfaffe22c7859ad7c45e168a7df0e.tar.bz2
Add audio policy API changes for audio offload
Changes to the API of audio policy for audio offload support: - Add isOffloadSupported() function - Add OUTPUT_FLAG_OFFLOAD - Extend AudioOutputDescriptor to include a sharing count for direct outputs - Pass audio_offload_info_t when opening output streams Change-Id: I5ad26418fdb286eb7ae299d586dd1fd525d48ab9 Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com> Signed-off-by: Eric Laurent <elaurent@google.com>
Diffstat (limited to 'audio/audio_policy_hal.cpp')
-rw-r--r--audio/audio_policy_hal.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/audio/audio_policy_hal.cpp b/audio/audio_policy_hal.cpp
index 1604809..0e03358 100644
--- a/audio/audio_policy_hal.cpp
+++ b/audio/audio_policy_hal.cpp
@@ -138,14 +138,16 @@ static audio_io_handle_t ap_get_output(struct audio_policy *pol,
uint32_t sampling_rate,
audio_format_t format,
audio_channel_mask_t channelMask,
- audio_output_flags_t flags)
+ audio_output_flags_t flags,
+ const audio_offload_info_t *offloadInfo)
{
struct legacy_audio_policy *lap = to_lap(pol);
ALOGV("%s: tid %d", __func__, gettid());
return lap->apm->getOutput((AudioSystem::stream_type)stream,
sampling_rate, (int) format, channelMask,
- (AudioSystem::output_flags)flags);
+ (AudioSystem::output_flags)flags,
+ offloadInfo);
}
static int ap_start_output(struct audio_policy *pol, audio_io_handle_t output,
@@ -321,6 +323,13 @@ static int ap_dump(const struct audio_policy *pol, int fd)
return lap->apm->dump(fd);
}
+static bool ap_is_offload_supported(const struct audio_policy *pol,
+ const audio_offload_info_t *info)
+{
+ const struct legacy_audio_policy *lap = to_clap(pol);
+ return lap->apm->isOffloadSupported(*info);
+}
+
static int create_legacy_ap(const struct audio_policy_device *device,
struct audio_policy_service_ops *aps_ops,
void *service,
@@ -368,6 +377,7 @@ static int create_legacy_ap(const struct audio_policy_device *device,
lap->policy.is_stream_active_remotely = ap_is_stream_active_remotely;
lap->policy.is_source_active = ap_is_source_active;
lap->policy.dump = ap_dump;
+ lap->policy.is_offload_supported = ap_is_offload_supported;
lap->service = service;
lap->aps_ops = aps_ops;