Loading include/media/AudioSystem.h +5 −2 Original line number Diff line number Diff line Loading @@ -31,7 +31,9 @@ namespace android { typedef void (*audio_error_callback)(status_t err); typedef void (*dynamic_policy_callback)(int event, String8 regId, int val); typedef void (*record_config_callback)(int event, int session, int source); typedef void (*record_config_callback)(int event, int session, int source, const audio_config_base_t *clientConfig, const audio_config_base_t *deviceConfig); class IAudioFlinger; class IAudioPolicyService; Loading Loading @@ -424,7 +426,8 @@ private: 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_source_t source, const audio_config_base_t *clientConfig, const audio_config_base_t *deviceConfig); private: Mutex mLock; Loading include/media/IAudioPolicyServiceClient.h +3 −1 Original line number Diff line number Diff line Loading @@ -39,7 +39,9 @@ public: virtual void onDynamicPolicyMixStateUpdate(String8 regId, int32_t state) = 0; // Notifies a change of audio recording configuration virtual void onRecordingConfigurationUpdate(int event, audio_session_t session, audio_source_t source) = 0; audio_source_t source, const audio_config_base_t *clientConfig, const audio_config_base_t *deviceConfig) = 0; }; Loading media/libmedia/AudioSystem.cpp +3 −2 Original line number Diff line number Diff line Loading @@ -1245,7 +1245,8 @@ void AudioSystem::AudioPolicyServiceClient::onDynamicPolicyMixStateUpdate( } void AudioSystem::AudioPolicyServiceClient::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) { record_config_callback cb = NULL; { Mutex::Autolock _l(AudioSystem::gLock); Loading @@ -1253,7 +1254,7 @@ void AudioSystem::AudioPolicyServiceClient::onRecordingConfigurationUpdate( } if (cb != NULL) { cb(event, session, source); cb(event, session, source, clientConfig, deviceConfig); } } Loading media/libmedia/IAudioPolicyServiceClient.cpp +24 −2 Original line number Diff line number Diff line Loading @@ -34,6 +34,21 @@ enum { RECORDING_CONFIGURATION_UPDATE }; // ---------------------------------------------------------------------- inline void readAudioConfigBaseFromParcel(const Parcel& data, audio_config_base_t *config) { config->sample_rate = data.readUint32(); config->channel_mask = (audio_channel_mask_t) data.readInt32(); config->format = (audio_format_t) data.readInt32(); } inline void writeAudioConfigBaseToParcel(Parcel& data, const audio_config_base_t *config) { data.writeUint32(config->sample_rate); data.writeInt32((int32_t) config->channel_mask); data.writeInt32((int32_t) config->format); } // ---------------------------------------------------------------------- class BpAudioPolicyServiceClient : public BpInterface<IAudioPolicyServiceClient> { public: Loading Loading @@ -66,12 +81,15 @@ public: } 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) { Parcel data, reply; data.writeInterfaceToken(IAudioPolicyServiceClient::getInterfaceDescriptor()); data.writeInt32(event); data.writeInt32(session); data.writeInt32(source); writeAudioConfigBaseToParcel(data, clientConfig); writeAudioConfigBaseToParcel(data, deviceConfig); remote()->transact(RECORDING_CONFIGURATION_UPDATE, data, &reply, IBinder::FLAG_ONEWAY); } }; Loading Loading @@ -106,7 +124,11 @@ status_t BnAudioPolicyServiceClient::onTransact( int event = (int) data.readInt32(); audio_session_t session = (audio_session_t) data.readInt32(); audio_source_t source = (audio_source_t) data.readInt32(); onRecordingConfigurationUpdate(event, session, source); audio_config_base_t clientConfig; audio_config_base_t deviceConfig; readAudioConfigBaseFromParcel(data, &clientConfig); readAudioConfigBaseFromParcel(data, &deviceConfig); onRecordingConfigurationUpdate(event, session, source, &clientConfig, &deviceConfig); return NO_ERROR; } break; default: Loading services/audiopolicy/AudioPolicyInterface.h +3 −1 Original line number Diff line number Diff line Loading @@ -337,7 +337,9 @@ public: virtual void onDynamicPolicyMixStateUpdate(String8 regId, int32_t state) = 0; virtual void onRecordingConfigurationUpdate(int event, audio_session_t session, audio_source_t source) = 0; audio_source_t source, const struct audio_config_base *clientConfig, const struct audio_config_base *deviceConfig) = 0; }; extern "C" AudioPolicyInterface* createAudioPolicyManager(AudioPolicyClientInterface *clientInterface); Loading Loading
include/media/AudioSystem.h +5 −2 Original line number Diff line number Diff line Loading @@ -31,7 +31,9 @@ namespace android { typedef void (*audio_error_callback)(status_t err); typedef void (*dynamic_policy_callback)(int event, String8 regId, int val); typedef void (*record_config_callback)(int event, int session, int source); typedef void (*record_config_callback)(int event, int session, int source, const audio_config_base_t *clientConfig, const audio_config_base_t *deviceConfig); class IAudioFlinger; class IAudioPolicyService; Loading Loading @@ -424,7 +426,8 @@ private: 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_source_t source, const audio_config_base_t *clientConfig, const audio_config_base_t *deviceConfig); private: Mutex mLock; Loading
include/media/IAudioPolicyServiceClient.h +3 −1 Original line number Diff line number Diff line Loading @@ -39,7 +39,9 @@ public: virtual void onDynamicPolicyMixStateUpdate(String8 regId, int32_t state) = 0; // Notifies a change of audio recording configuration virtual void onRecordingConfigurationUpdate(int event, audio_session_t session, audio_source_t source) = 0; audio_source_t source, const audio_config_base_t *clientConfig, const audio_config_base_t *deviceConfig) = 0; }; Loading
media/libmedia/AudioSystem.cpp +3 −2 Original line number Diff line number Diff line Loading @@ -1245,7 +1245,8 @@ void AudioSystem::AudioPolicyServiceClient::onDynamicPolicyMixStateUpdate( } void AudioSystem::AudioPolicyServiceClient::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) { record_config_callback cb = NULL; { Mutex::Autolock _l(AudioSystem::gLock); Loading @@ -1253,7 +1254,7 @@ void AudioSystem::AudioPolicyServiceClient::onRecordingConfigurationUpdate( } if (cb != NULL) { cb(event, session, source); cb(event, session, source, clientConfig, deviceConfig); } } Loading
media/libmedia/IAudioPolicyServiceClient.cpp +24 −2 Original line number Diff line number Diff line Loading @@ -34,6 +34,21 @@ enum { RECORDING_CONFIGURATION_UPDATE }; // ---------------------------------------------------------------------- inline void readAudioConfigBaseFromParcel(const Parcel& data, audio_config_base_t *config) { config->sample_rate = data.readUint32(); config->channel_mask = (audio_channel_mask_t) data.readInt32(); config->format = (audio_format_t) data.readInt32(); } inline void writeAudioConfigBaseToParcel(Parcel& data, const audio_config_base_t *config) { data.writeUint32(config->sample_rate); data.writeInt32((int32_t) config->channel_mask); data.writeInt32((int32_t) config->format); } // ---------------------------------------------------------------------- class BpAudioPolicyServiceClient : public BpInterface<IAudioPolicyServiceClient> { public: Loading Loading @@ -66,12 +81,15 @@ public: } 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) { Parcel data, reply; data.writeInterfaceToken(IAudioPolicyServiceClient::getInterfaceDescriptor()); data.writeInt32(event); data.writeInt32(session); data.writeInt32(source); writeAudioConfigBaseToParcel(data, clientConfig); writeAudioConfigBaseToParcel(data, deviceConfig); remote()->transact(RECORDING_CONFIGURATION_UPDATE, data, &reply, IBinder::FLAG_ONEWAY); } }; Loading Loading @@ -106,7 +124,11 @@ status_t BnAudioPolicyServiceClient::onTransact( int event = (int) data.readInt32(); audio_session_t session = (audio_session_t) data.readInt32(); audio_source_t source = (audio_source_t) data.readInt32(); onRecordingConfigurationUpdate(event, session, source); audio_config_base_t clientConfig; audio_config_base_t deviceConfig; readAudioConfigBaseFromParcel(data, &clientConfig); readAudioConfigBaseFromParcel(data, &deviceConfig); onRecordingConfigurationUpdate(event, session, source, &clientConfig, &deviceConfig); return NO_ERROR; } break; default: Loading
services/audiopolicy/AudioPolicyInterface.h +3 −1 Original line number Diff line number Diff line Loading @@ -337,7 +337,9 @@ public: virtual void onDynamicPolicyMixStateUpdate(String8 regId, int32_t state) = 0; virtual void onRecordingConfigurationUpdate(int event, audio_session_t session, audio_source_t source) = 0; audio_source_t source, const struct audio_config_base *clientConfig, const struct audio_config_base *deviceConfig) = 0; }; extern "C" AudioPolicyInterface* createAudioPolicyManager(AudioPolicyClientInterface *clientInterface); Loading