Loading include/media/AudioSystem.h +2 −2 Original line number Diff line number Diff line Loading @@ -90,7 +90,7 @@ public: static void setErrorCallback(audio_error_callback cb); // helper function to obtain AudioFlinger service handle static const sp<IAudioFlinger>& get_audio_flinger(); static const sp<IAudioFlinger> get_audio_flinger(); static float linearToLog(int volume); static int logToLinear(float volume); Loading Loading @@ -270,7 +270,7 @@ public: // and output configuration cache (gOutputs) static void clearAudioConfigCache(); static const sp<IAudioPolicyService>& get_audio_policy_service(); static const sp<IAudioPolicyService> get_audio_policy_service(); // helpers for android.media.AudioManager.getProperty(), see description there for meaning static uint32_t getPrimaryOutputSamplingRate(); Loading media/libmedia/AudioSystem.cpp +58 −43 Original line number Diff line number Diff line Loading @@ -51,7 +51,10 @@ size_t AudioSystem::gInBuffSize = 0; // zero indicates cache is invalid sp<AudioSystem::AudioPortCallback> AudioSystem::gAudioPortCallback; // establish binder interface to AudioFlinger service const sp<IAudioFlinger>& AudioSystem::get_audio_flinger() const sp<IAudioFlinger> AudioSystem::get_audio_flinger() { sp<IAudioFlinger> af; sp<AudioFlingerClient> afc; { Mutex::Autolock _l(gLock); if (gAudioFlinger == 0) { Loading @@ -74,10 +77,14 @@ const sp<IAudioFlinger>& AudioSystem::get_audio_flinger() binder->linkToDeath(gAudioFlingerClient); gAudioFlinger = interface_cast<IAudioFlinger>(binder); LOG_ALWAYS_FATAL_IF(gAudioFlinger == 0); gAudioFlinger->registerClient(gAudioFlingerClient); afc = gAudioFlingerClient; } return gAudioFlinger; af = gAudioFlinger; } if (afc != 0) { af->registerClient(afc); } return af; } /* static */ status_t AudioSystem::checkAudioFlinger() Loading Loading @@ -546,7 +553,10 @@ sp<AudioSystem::AudioPolicyServiceClient> AudioSystem::gAudioPolicyServiceClient // establish binder interface to AudioPolicy service const sp<IAudioPolicyService>& AudioSystem::get_audio_policy_service() const sp<IAudioPolicyService> AudioSystem::get_audio_policy_service() { sp<IAudioPolicyService> ap; sp<AudioPolicyServiceClient> apc; { Mutex::Autolock _l(gLockAPS); if (gAudioPolicyService == 0) { Loading @@ -565,10 +575,15 @@ const sp<IAudioPolicyService>& AudioSystem::get_audio_policy_service() binder->linkToDeath(gAudioPolicyServiceClient); gAudioPolicyService = interface_cast<IAudioPolicyService>(binder); LOG_ALWAYS_FATAL_IF(gAudioPolicyService == 0); gAudioPolicyService->registerClient(gAudioPolicyServiceClient); apc = gAudioPolicyServiceClient; } ap = gAudioPolicyService; } if (apc != 0) { ap->registerClient(apc); } return gAudioPolicyService; return ap; } // --------------------------------------------------------------------------- Loading services/audiopolicy/AudioPolicyService.cpp +10 −7 Original line number Diff line number Diff line Loading @@ -149,7 +149,7 @@ AudioPolicyService::~AudioPolicyService() void AudioPolicyService::registerClient(const sp<IAudioPolicyServiceClient>& client) { Mutex::Autolock _l(mLock); Mutex::Autolock _l(mNotificationClientsLock); uid_t uid = IPCThreadState::self()->getCallingUid(); if (mNotificationClients.indexOfKey(uid) < 0) { Loading @@ -168,14 +168,17 @@ void AudioPolicyService::registerClient(const sp<IAudioPolicyServiceClient>& cli // removeNotificationClient() is called when the client process dies. void AudioPolicyService::removeNotificationClient(uid_t uid) { Mutex::Autolock _l(mLock); { Mutex::Autolock _l(mNotificationClientsLock); mNotificationClients.removeItem(uid); } #ifndef USE_LEGACY_AUDIO_POLICY { Mutex::Autolock _l(mLock); if (mAudioPolicyManager) { mAudioPolicyManager->clearAudioPatches(uid); } } #endif } Loading @@ -186,7 +189,7 @@ void AudioPolicyService::onAudioPortListUpdate() void AudioPolicyService::doOnAudioPortListUpdate() { Mutex::Autolock _l(mLock); Mutex::Autolock _l(mNotificationClientsLock); for (size_t i = 0; i < mNotificationClients.size(); i++) { mNotificationClients.valueAt(i)->onAudioPortListUpdate(); } Loading @@ -212,7 +215,7 @@ status_t AudioPolicyService::clientReleaseAudioPatch(audio_patch_handle_t handle void AudioPolicyService::doOnAudioPatchListUpdate() { Mutex::Autolock _l(mLock); Mutex::Autolock _l(mNotificationClientsLock); for (size_t i = 0; i < mNotificationClients.size(); i++) { mNotificationClients.valueAt(i)->onAudioPatchListUpdate(); } Loading services/audiopolicy/AudioPolicyService.h +1 −1 Original line number Diff line number Diff line Loading @@ -495,7 +495,7 @@ private: AudioPolicyClient *mAudioPolicyClient; DefaultKeyedVector< uid_t, sp<NotificationClient> > mNotificationClients; Mutex mNotificationClientsLock; // protects mNotificationClients // Manage all effects configured in audio_effects.conf sp<AudioPolicyEffects> mAudioPolicyEffects; audio_mode_t mPhoneState; Loading Loading
include/media/AudioSystem.h +2 −2 Original line number Diff line number Diff line Loading @@ -90,7 +90,7 @@ public: static void setErrorCallback(audio_error_callback cb); // helper function to obtain AudioFlinger service handle static const sp<IAudioFlinger>& get_audio_flinger(); static const sp<IAudioFlinger> get_audio_flinger(); static float linearToLog(int volume); static int logToLinear(float volume); Loading Loading @@ -270,7 +270,7 @@ public: // and output configuration cache (gOutputs) static void clearAudioConfigCache(); static const sp<IAudioPolicyService>& get_audio_policy_service(); static const sp<IAudioPolicyService> get_audio_policy_service(); // helpers for android.media.AudioManager.getProperty(), see description there for meaning static uint32_t getPrimaryOutputSamplingRate(); Loading
media/libmedia/AudioSystem.cpp +58 −43 Original line number Diff line number Diff line Loading @@ -51,7 +51,10 @@ size_t AudioSystem::gInBuffSize = 0; // zero indicates cache is invalid sp<AudioSystem::AudioPortCallback> AudioSystem::gAudioPortCallback; // establish binder interface to AudioFlinger service const sp<IAudioFlinger>& AudioSystem::get_audio_flinger() const sp<IAudioFlinger> AudioSystem::get_audio_flinger() { sp<IAudioFlinger> af; sp<AudioFlingerClient> afc; { Mutex::Autolock _l(gLock); if (gAudioFlinger == 0) { Loading @@ -74,10 +77,14 @@ const sp<IAudioFlinger>& AudioSystem::get_audio_flinger() binder->linkToDeath(gAudioFlingerClient); gAudioFlinger = interface_cast<IAudioFlinger>(binder); LOG_ALWAYS_FATAL_IF(gAudioFlinger == 0); gAudioFlinger->registerClient(gAudioFlingerClient); afc = gAudioFlingerClient; } return gAudioFlinger; af = gAudioFlinger; } if (afc != 0) { af->registerClient(afc); } return af; } /* static */ status_t AudioSystem::checkAudioFlinger() Loading Loading @@ -546,7 +553,10 @@ sp<AudioSystem::AudioPolicyServiceClient> AudioSystem::gAudioPolicyServiceClient // establish binder interface to AudioPolicy service const sp<IAudioPolicyService>& AudioSystem::get_audio_policy_service() const sp<IAudioPolicyService> AudioSystem::get_audio_policy_service() { sp<IAudioPolicyService> ap; sp<AudioPolicyServiceClient> apc; { Mutex::Autolock _l(gLockAPS); if (gAudioPolicyService == 0) { Loading @@ -565,10 +575,15 @@ const sp<IAudioPolicyService>& AudioSystem::get_audio_policy_service() binder->linkToDeath(gAudioPolicyServiceClient); gAudioPolicyService = interface_cast<IAudioPolicyService>(binder); LOG_ALWAYS_FATAL_IF(gAudioPolicyService == 0); gAudioPolicyService->registerClient(gAudioPolicyServiceClient); apc = gAudioPolicyServiceClient; } ap = gAudioPolicyService; } if (apc != 0) { ap->registerClient(apc); } return gAudioPolicyService; return ap; } // --------------------------------------------------------------------------- Loading
services/audiopolicy/AudioPolicyService.cpp +10 −7 Original line number Diff line number Diff line Loading @@ -149,7 +149,7 @@ AudioPolicyService::~AudioPolicyService() void AudioPolicyService::registerClient(const sp<IAudioPolicyServiceClient>& client) { Mutex::Autolock _l(mLock); Mutex::Autolock _l(mNotificationClientsLock); uid_t uid = IPCThreadState::self()->getCallingUid(); if (mNotificationClients.indexOfKey(uid) < 0) { Loading @@ -168,14 +168,17 @@ void AudioPolicyService::registerClient(const sp<IAudioPolicyServiceClient>& cli // removeNotificationClient() is called when the client process dies. void AudioPolicyService::removeNotificationClient(uid_t uid) { Mutex::Autolock _l(mLock); { Mutex::Autolock _l(mNotificationClientsLock); mNotificationClients.removeItem(uid); } #ifndef USE_LEGACY_AUDIO_POLICY { Mutex::Autolock _l(mLock); if (mAudioPolicyManager) { mAudioPolicyManager->clearAudioPatches(uid); } } #endif } Loading @@ -186,7 +189,7 @@ void AudioPolicyService::onAudioPortListUpdate() void AudioPolicyService::doOnAudioPortListUpdate() { Mutex::Autolock _l(mLock); Mutex::Autolock _l(mNotificationClientsLock); for (size_t i = 0; i < mNotificationClients.size(); i++) { mNotificationClients.valueAt(i)->onAudioPortListUpdate(); } Loading @@ -212,7 +215,7 @@ status_t AudioPolicyService::clientReleaseAudioPatch(audio_patch_handle_t handle void AudioPolicyService::doOnAudioPatchListUpdate() { Mutex::Autolock _l(mLock); Mutex::Autolock _l(mNotificationClientsLock); for (size_t i = 0; i < mNotificationClients.size(); i++) { mNotificationClients.valueAt(i)->onAudioPatchListUpdate(); } Loading
services/audiopolicy/AudioPolicyService.h +1 −1 Original line number Diff line number Diff line Loading @@ -495,7 +495,7 @@ private: AudioPolicyClient *mAudioPolicyClient; DefaultKeyedVector< uid_t, sp<NotificationClient> > mNotificationClients; Mutex mNotificationClientsLock; // protects mNotificationClients // Manage all effects configured in audio_effects.conf sp<AudioPolicyEffects> mAudioPolicyEffects; audio_mode_t mPhoneState; Loading