From 466dc8ed6ca6b7f585104806c48613dd34e608c9 Mon Sep 17 00:00:00 2001 From: Paul McLean Date: Fri, 17 Apr 2015 13:15:36 -0600 Subject: Explicit routing in AudioRecord Change-Id: I9cc5d54883a3e5c75d553fabb619fc8e49f4f9e5 --- include/media/AudioRecord.h | 14 ++++++++++++++ include/media/AudioSystem.h | 3 ++- include/media/AudioTrack.h | 2 +- include/media/IAudioPolicyService.h | 13 +++++++------ 4 files changed, 24 insertions(+), 8 deletions(-) (limited to 'include') diff --git a/include/media/AudioRecord.h b/include/media/AudioRecord.h index dbe2788..c24a28d 100644 --- a/include/media/AudioRecord.h +++ b/include/media/AudioRecord.h @@ -374,6 +374,16 @@ public: status_t obtainBuffer(Buffer* audioBuffer, int32_t waitCount, size_t *nonContig = NULL); + // Explicit Routing + /** + * TODO Document this method. + */ + status_t setInputDevice(audio_port_handle_t deviceId); + + /** + * TODO Document this method. + */ + audio_port_handle_t getInputDevice(); private: /* If nonContig is non-NULL, it is an output parameter that will be set to the number of * additional non-contiguous frames that are predicted to be available immediately, @@ -560,6 +570,10 @@ private: sp mDeathNotifier; uint32_t mSequence; // incremented for each new IAudioRecord attempt audio_attributes_t mAttributes; + + // For Device Selection API + // a value of AUDIO_PORT_HANDLE_NONE indicated default (AudioPolicyManager) routing. + audio_port_handle_t mSelectedDeviceId; }; }; // namespace android diff --git a/include/media/AudioSystem.h b/include/media/AudioSystem.h index 182133c..a454481 100644 --- a/include/media/AudioSystem.h +++ b/include/media/AudioSystem.h @@ -248,7 +248,8 @@ public: uint32_t samplingRate, audio_format_t format, audio_channel_mask_t channelMask, - audio_input_flags_t flags); + audio_input_flags_t flags, + audio_port_handle_t selectedDeviceId = AUDIO_PORT_HANDLE_NONE); static status_t startInput(audio_io_handle_t input, audio_session_t session); diff --git a/include/media/AudioTrack.h b/include/media/AudioTrack.h index 2d34c02..e7ee0ce 100644 --- a/include/media/AudioTrack.h +++ b/include/media/AudioTrack.h @@ -859,7 +859,7 @@ protected: // For Device Selection API // a value of AUDIO_PORT_HANDLE_NONE indicated default (AudioPolicyManager) routing. - int mSelectedDeviceId; + audio_port_handle_t mSelectedDeviceId; private: class DeathNotifier : public IBinder::DeathRecipient { diff --git a/include/media/IAudioPolicyService.h b/include/media/IAudioPolicyService.h index 413267b..56a1dc6 100644 --- a/include/media/IAudioPolicyService.h +++ b/include/media/IAudioPolicyService.h @@ -78,12 +78,13 @@ public: audio_stream_type_t stream, audio_session_t session) = 0; virtual status_t getInputForAttr(const audio_attributes_t *attr, - audio_io_handle_t *input, - audio_session_t session, - uint32_t samplingRate, - audio_format_t format, - audio_channel_mask_t channelMask, - audio_input_flags_t flags) = 0; + audio_io_handle_t *input, + audio_session_t session, + uint32_t samplingRate, + audio_format_t format, + audio_channel_mask_t channelMask, + audio_input_flags_t flags, + audio_port_handle_t selectedDeviceId = AUDIO_PORT_HANDLE_NONE) = 0; virtual status_t startInput(audio_io_handle_t input, audio_session_t session) = 0; virtual status_t stopInput(audio_io_handle_t input, -- cgit v1.1