summaryrefslogtreecommitdiffstats
path: root/include/media
diff options
context:
space:
mode:
authorPaul McLean <pmclean@google.com>2015-04-08 17:08:01 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-04-08 17:08:01 +0000
commit6dc4dc4ad23dc82eca9af3112292f3e6d5b17b15 (patch)
tree2ebe8fb3630e8e33baa66be39305df86eab83c7d /include/media
parente41b5f31148f9cfb7316295c900c7d3c695510b2 (diff)
parentaa9811945f575614b3482d09e4d969792701cebb (diff)
downloadframeworks_av-6dc4dc4ad23dc82eca9af3112292f3e6d5b17b15.zip
frameworks_av-6dc4dc4ad23dc82eca9af3112292f3e6d5b17b15.tar.gz
frameworks_av-6dc4dc4ad23dc82eca9af3112292f3e6d5b17b15.tar.bz2
Merge "Adding explicit routing API to AudioTrack"
Diffstat (limited to 'include/media')
-rw-r--r--include/media/AudioSystem.h17
-rw-r--r--include/media/AudioTrack.h24
-rw-r--r--include/media/IAudioPolicyService.h1
3 files changed, 34 insertions, 8 deletions
diff --git a/include/media/AudioSystem.h b/include/media/AudioSystem.h
index f5db1bb..3b6db8c 100644
--- a/include/media/AudioSystem.h
+++ b/include/media/AudioSystem.h
@@ -221,14 +221,15 @@ public:
audio_output_flags_t flags = AUDIO_OUTPUT_FLAG_NONE,
const audio_offload_info_t *offloadInfo = NULL);
static status_t getOutputForAttr(const audio_attributes_t *attr,
- audio_io_handle_t *output,
- audio_session_t session,
- audio_stream_type_t *stream,
- uint32_t samplingRate = 0,
- audio_format_t format = AUDIO_FORMAT_DEFAULT,
- audio_channel_mask_t channelMask = AUDIO_CHANNEL_OUT_STEREO,
- audio_output_flags_t flags = AUDIO_OUTPUT_FLAG_NONE,
- const audio_offload_info_t *offloadInfo = NULL);
+ audio_io_handle_t *output,
+ audio_session_t session,
+ audio_stream_type_t *stream,
+ uint32_t samplingRate = 0,
+ audio_format_t format = AUDIO_FORMAT_DEFAULT,
+ audio_channel_mask_t channelMask = AUDIO_CHANNEL_OUT_STEREO,
+ audio_output_flags_t flags = AUDIO_OUTPUT_FLAG_NONE,
+ audio_port_handle_t selectedDeviceId = AUDIO_PORT_HANDLE_NONE,
+ const audio_offload_info_t *offloadInfo = NULL);
static status_t startOutput(audio_io_handle_t output,
audio_stream_type_t stream,
audio_session_t session);
diff --git a/include/media/AudioTrack.h b/include/media/AudioTrack.h
index d9b7057..e7e0703 100644
--- a/include/media/AudioTrack.h
+++ b/include/media/AudioTrack.h
@@ -477,6 +477,26 @@ private:
audio_io_handle_t getOutput() const;
public:
+ /* Selects the audio device to use for output of this AudioTrack. A value of
+ * AUDIO_PORT_HANDLE_NONE indicates default (AudioPolicyManager) routing.
+ *
+ * Parameters:
+ * The device ID of the selected device (as returned by the AudioDevicesManager API).
+ *
+ * Returned value:
+ * - NO_ERROR: successful operation
+ * TODO: what else can happen here?
+ */
+ status_t setOutputDevice(audio_port_handle_t deviceId);
+
+ /* Returns the ID of the audio device used for output of this AudioTrack.
+ * A value of AUDIO_PORT_HANDLE_NONE indicates default (AudioPolicyManager) routing.
+ *
+ * Parameters:
+ * none.
+ */
+ audio_port_handle_t getOutputDevice();
+
/* Returns the unique session ID associated with this track.
*
* Parameters:
@@ -817,6 +837,10 @@ protected:
bool mInUnderrun; // whether track is currently in underrun state
uint32_t mPausedPosition;
+ // For Device Selection API
+ // a value of AUDIO_PORT_HANDLE_NONE indicated default (AudioPolicyManager) routing.
+ int mSelectedDeviceId;
+
private:
class DeathNotifier : public IBinder::DeathRecipient {
public:
diff --git a/include/media/IAudioPolicyService.h b/include/media/IAudioPolicyService.h
index fecc6f1..7506153 100644
--- a/include/media/IAudioPolicyService.h
+++ b/include/media/IAudioPolicyService.h
@@ -66,6 +66,7 @@ public:
audio_format_t format = AUDIO_FORMAT_DEFAULT,
audio_channel_mask_t channelMask = 0,
audio_output_flags_t flags = AUDIO_OUTPUT_FLAG_NONE,
+ audio_port_handle_t selectedDeviceId = AUDIO_PORT_HANDLE_NONE,
const audio_offload_info_t *offloadInfo = NULL) = 0;
virtual status_t startOutput(audio_io_handle_t output,
audio_stream_type_t stream,