Send client / device format in recording callback
Bug 26798796
Change-Id: Ib4f64159c8371d87da49a8f0cad9317a87d843c4
diff --git a/services/audiopolicy/service/AudioPolicyClientImpl.cpp b/services/audiopolicy/service/AudioPolicyClientImpl.cpp
index 3d51f48..ce6b2dc 100644
--- a/services/audiopolicy/service/AudioPolicyClientImpl.cpp
+++ b/services/audiopolicy/service/AudioPolicyClientImpl.cpp
@@ -220,9 +220,11 @@
}
void AudioPolicyService::AudioPolicyClient::onRecordingConfigurationUpdate(
- int event, audio_session_t session, audio_source_t source)
+ int event, audio_session_t session, audio_source_t source,
+ const audio_config_base_t *clientConfig, const audio_config_base_t *deviceConfig)
{
- mAudioPolicyService->onRecordingConfigurationUpdate(event, session, source);
+ mAudioPolicyService->onRecordingConfigurationUpdate(event, session, source,
+ clientConfig, deviceConfig);
}
audio_unique_id_t AudioPolicyService::AudioPolicyClient::newAudioUniqueId()
diff --git a/services/audiopolicy/service/AudioPolicyService.cpp b/services/audiopolicy/service/AudioPolicyService.cpp
index 363968c..45f260a 100644
--- a/services/audiopolicy/service/AudioPolicyService.cpp
+++ b/services/audiopolicy/service/AudioPolicyService.cpp
@@ -239,17 +239,21 @@
}
void AudioPolicyService::onRecordingConfigurationUpdate(int event, audio_session_t session,
- audio_source_t source)
+ audio_source_t source, const audio_config_base_t *clientConfig,
+ const audio_config_base_t *deviceConfig)
{
- mOutputCommandThread->recordingConfigurationUpdateCommand(event, session, source);
+ mOutputCommandThread->recordingConfigurationUpdateCommand(event, session, source,
+ clientConfig, deviceConfig);
}
void AudioPolicyService::doOnRecordingConfigurationUpdate(int event, audio_session_t session,
- audio_source_t source)
+ audio_source_t source, const audio_config_base_t *clientConfig,
+ const audio_config_base_t *deviceConfig)
{
Mutex::Autolock _l(mNotificationClientsLock);
for (size_t i = 0; i < mNotificationClients.size(); i++) {
- mNotificationClients.valueAt(i)->onRecordingConfigurationUpdate(event, session, source);
+ mNotificationClients.valueAt(i)->onRecordingConfigurationUpdate(event, session, source,
+ clientConfig, deviceConfig);
}
}
@@ -316,10 +320,12 @@
}
void AudioPolicyService::NotificationClient::onRecordingConfigurationUpdate(
- int event, audio_session_t session, audio_source_t source)
+ int event, audio_session_t session, audio_source_t source,
+ const audio_config_base_t *clientConfig, const audio_config_base_t *deviceConfig)
{
if (mAudioPolicyServiceClient != 0) {
- mAudioPolicyServiceClient->onRecordingConfigurationUpdate(event, session, source);
+ mAudioPolicyServiceClient->onRecordingConfigurationUpdate(event, session, source,
+ clientConfig, deviceConfig);
}
}
@@ -601,7 +607,7 @@
}
mLock.unlock();
svc->doOnRecordingConfigurationUpdate(data->mEvent, data->mSession,
- data->mSource);
+ data->mSource, &data->mClientConfig, &data->mDeviceConfig);
mLock.lock();
} break;
default:
@@ -865,7 +871,8 @@
}
void AudioPolicyService::AudioCommandThread::recordingConfigurationUpdateCommand(
- int event, audio_session_t session, audio_source_t source)
+ int event, audio_session_t session, audio_source_t source,
+ const audio_config_base_t *clientConfig, const audio_config_base_t *deviceConfig)
{
sp<AudioCommand>command = new AudioCommand();
command->mCommand = RECORDING_CONFIGURATION_UPDATE;
@@ -873,6 +880,8 @@
data->mEvent = event;
data->mSession = session;
data->mSource = source;
+ data->mClientConfig = *clientConfig;
+ data->mDeviceConfig = *deviceConfig;
command->mParam = data;
ALOGV("AudioCommandThread() adding recording configuration update event %d, source %d",
event, source);
diff --git a/services/audiopolicy/service/AudioPolicyService.h b/services/audiopolicy/service/AudioPolicyService.h
index a91c560..7089014 100644
--- a/services/audiopolicy/service/AudioPolicyService.h
+++ b/services/audiopolicy/service/AudioPolicyService.h
@@ -229,9 +229,11 @@
void onDynamicPolicyMixStateUpdate(String8 regId, int32_t state);
void doOnDynamicPolicyMixStateUpdate(String8 regId, int32_t state);
void onRecordingConfigurationUpdate(int event, audio_session_t session,
- audio_source_t source);
+ audio_source_t source, const audio_config_base_t *clientConfig,
+ const audio_config_base_t *deviceConfig);
void doOnRecordingConfigurationUpdate(int event, audio_session_t session,
- audio_source_t source);
+ audio_source_t source, const audio_config_base_t *clientConfig,
+ const audio_config_base_t *deviceConfig);
private:
AudioPolicyService() ANDROID_API;
@@ -305,7 +307,9 @@
void dynamicPolicyMixStateUpdateCommand(String8 regId, int32_t state);
void recordingConfigurationUpdateCommand(
int event, audio_session_t session,
- audio_source_t source);
+ audio_source_t source,
+ const audio_config_base_t *clientConfig,
+ const audio_config_base_t *deviceConfig);
void insertCommand_l(AudioCommand *command, int delayMs = 0);
private:
@@ -401,6 +405,8 @@
int mEvent;
audio_session_t mSession;
audio_source_t mSource;
+ struct audio_config_base mClientConfig;
+ struct audio_config_base mDeviceConfig;
};
Mutex mLock;
@@ -510,7 +516,9 @@
virtual void onAudioPatchListUpdate();
virtual void onDynamicPolicyMixStateUpdate(String8 regId, int32_t state);
virtual void onRecordingConfigurationUpdate(int event,
- audio_session_t session, audio_source_t source);
+ audio_session_t session, audio_source_t source,
+ const audio_config_base_t *clientConfig,
+ const audio_config_base_t *deviceConfig);
virtual audio_unique_id_t newAudioUniqueId();
@@ -531,7 +539,9 @@
void onDynamicPolicyMixStateUpdate(String8 regId, int32_t state);
void onRecordingConfigurationUpdate(
int event, audio_session_t session,
- audio_source_t source);
+ audio_source_t source,
+ const audio_config_base_t *clientConfig,
+ const audio_config_base_t *deviceConfig);
void setAudioPortCallbacksEnabled(bool enabled);
// IBinder::DeathRecipient