Send audio patch in recording callback
Remove direct access to patch handle in AudioInputDescriptor, replace with
set / get functions.
Add interface for AudioSession to query configuration from enclosing
input descriptor.
When input descriptor's patch handle changes during a recording, propagate
the change through the recording notification callback.
Bug 26798796
Change-Id: Ia1395d44da7ccfe69ca46877638d1eb49b3935ad
diff --git a/services/audiopolicy/service/AudioPolicyService.h b/services/audiopolicy/service/AudioPolicyService.h
index 7089014..8d15eac 100644
--- a/services/audiopolicy/service/AudioPolicyService.h
+++ b/services/audiopolicy/service/AudioPolicyService.h
@@ -230,10 +230,10 @@
void doOnDynamicPolicyMixStateUpdate(String8 regId, int32_t state);
void onRecordingConfigurationUpdate(int event, audio_session_t session,
audio_source_t source, const audio_config_base_t *clientConfig,
- const audio_config_base_t *deviceConfig);
+ const audio_config_base_t *deviceConfig, audio_patch_handle_t patchHandle);
void doOnRecordingConfigurationUpdate(int event, audio_session_t session,
audio_source_t source, const audio_config_base_t *clientConfig,
- const audio_config_base_t *deviceConfig);
+ const audio_config_base_t *deviceConfig, audio_patch_handle_t patchHandle);
private:
AudioPolicyService() ANDROID_API;
@@ -309,7 +309,8 @@
int event, audio_session_t session,
audio_source_t source,
const audio_config_base_t *clientConfig,
- const audio_config_base_t *deviceConfig);
+ const audio_config_base_t *deviceConfig,
+ audio_patch_handle_t patchHandle);
void insertCommand_l(AudioCommand *command, int delayMs = 0);
private:
@@ -407,6 +408,7 @@
audio_source_t mSource;
struct audio_config_base mClientConfig;
struct audio_config_base mDeviceConfig;
+ audio_patch_handle_t mPatchHandle;
};
Mutex mLock;
@@ -518,7 +520,7 @@
virtual void onRecordingConfigurationUpdate(int event,
audio_session_t session, audio_source_t source,
const audio_config_base_t *clientConfig,
- const audio_config_base_t *deviceConfig);
+ const audio_config_base_t *deviceConfig, audio_patch_handle_t patchHandle);
virtual audio_unique_id_t newAudioUniqueId();
@@ -541,7 +543,8 @@
int event, audio_session_t session,
audio_source_t source,
const audio_config_base_t *clientConfig,
- const audio_config_base_t *deviceConfig);
+ const audio_config_base_t *deviceConfig,
+ audio_patch_handle_t patchHandle);
void setAudioPortCallbacksEnabled(bool enabled);
// IBinder::DeathRecipient