Loading include/media/AudioSystem.h +2 −2 Original line number Diff line number Diff line Loading @@ -408,8 +408,8 @@ private: AudioPolicyServiceClient() { } status_t addAudioPortCallback(const sp<AudioPortCallback>& callback); status_t removeAudioPortCallback(const sp<AudioPortCallback>& callback); int addAudioPortCallback(const sp<AudioPortCallback>& callback); int removeAudioPortCallback(const sp<AudioPortCallback>& callback); // DeathRecipient virtual void binderDied(const wp<IBinder>& who); Loading include/media/IAudioPolicyService.h +2 −0 Original line number Diff line number Diff line Loading @@ -149,6 +149,8 @@ public: virtual void registerClient(const sp<IAudioPolicyServiceClient>& client) = 0; virtual void setAudioPortCallbacksEnabled(bool enabled) = 0; virtual status_t acquireSoundTriggerSession(audio_session_t *session, audio_io_handle_t *ioHandle, audio_devices_t *device) = 0; Loading media/libmedia/AudioSystem.cpp +16 −8 Original line number Diff line number Diff line Loading @@ -1043,7 +1043,11 @@ status_t AudioSystem::addAudioPortCallback(const sp<AudioPortCallback>& callback if (gAudioPolicyServiceClient == 0) { return NO_INIT; } return gAudioPolicyServiceClient->addAudioPortCallback(callback); int ret = gAudioPolicyServiceClient->addAudioPortCallback(callback); if (ret == 1) { aps->setAudioPortCallbacksEnabled(true); } return (ret < 0) ? INVALID_OPERATION : NO_ERROR; } /*static*/ Loading @@ -1056,7 +1060,11 @@ status_t AudioSystem::removeAudioPortCallback(const sp<AudioPortCallback>& callb if (gAudioPolicyServiceClient == 0) { return NO_INIT; } return gAudioPolicyServiceClient->removeAudioPortCallback(callback); int ret = gAudioPolicyServiceClient->removeAudioPortCallback(callback); if (ret == 0) { aps->setAudioPortCallbacksEnabled(false); } return (ret < 0) ? INVALID_OPERATION : NO_ERROR; } status_t AudioSystem::addAudioDeviceCallback( Loading Loading @@ -1138,20 +1146,20 @@ status_t AudioSystem::stopAudioSource(audio_io_handle_t handle) // --------------------------------------------------------------------------- status_t AudioSystem::AudioPolicyServiceClient::addAudioPortCallback( int AudioSystem::AudioPolicyServiceClient::addAudioPortCallback( const sp<AudioPortCallback>& callback) { Mutex::Autolock _l(mLock); for (size_t i = 0; i < mAudioPortCallbacks.size(); i++) { if (mAudioPortCallbacks[i] == callback) { return INVALID_OPERATION; return -1; } } mAudioPortCallbacks.add(callback); return NO_ERROR; return mAudioPortCallbacks.size(); } status_t AudioSystem::AudioPolicyServiceClient::removeAudioPortCallback( int AudioSystem::AudioPolicyServiceClient::removeAudioPortCallback( const sp<AudioPortCallback>& callback) { Mutex::Autolock _l(mLock); Loading @@ -1162,10 +1170,10 @@ status_t AudioSystem::AudioPolicyServiceClient::removeAudioPortCallback( } } if (i == mAudioPortCallbacks.size()) { return INVALID_OPERATION; return -1; } mAudioPortCallbacks.removeAt(i); return NO_ERROR; return mAudioPortCallbacks.size(); } Loading media/libmedia/IAudioPolicyService.cpp +16 −1 Original line number Diff line number Diff line Loading @@ -72,7 +72,8 @@ enum { GET_PHONE_STATE, REGISTER_POLICY_MIXES, START_AUDIO_SOURCE, STOP_AUDIO_SOURCE STOP_AUDIO_SOURCE, SET_AUDIO_PORT_CALLBACK_ENABLED, }; #define MAX_ITEMS_PER_LIST 1024 Loading Loading @@ -646,6 +647,14 @@ public: remote()->transact(REGISTER_CLIENT, data, &reply); } virtual void setAudioPortCallbacksEnabled(bool enabled) { Parcel data, reply; data.writeInterfaceToken(IAudioPolicyService::getInterfaceDescriptor()); data.writeInt32(enabled ? 1 : 0); remote()->transact(SET_AUDIO_PORT_CALLBACK_ENABLED, data, &reply); } virtual status_t acquireSoundTriggerSession(audio_session_t *session, audio_io_handle_t *ioHandle, audio_devices_t *device) Loading Loading @@ -1219,6 +1228,12 @@ status_t BnAudioPolicyService::onTransact( return NO_ERROR; } break; case SET_AUDIO_PORT_CALLBACK_ENABLED: { CHECK_INTERFACE(IAudioPolicyService, data, reply); setAudioPortCallbacksEnabled(data.readInt32() == 1); return NO_ERROR; } break; case ACQUIRE_SOUNDTRIGGER_SESSION: { CHECK_INTERFACE(IAudioPolicyService, data, reply); sp<IAudioPolicyServiceClient> client = interface_cast<IAudioPolicyServiceClient>( Loading services/audioflinger/Threads.cpp +12 −3 Original line number Diff line number Diff line Loading @@ -530,7 +530,7 @@ AudioFlinger::ThreadBase::ThreadBase(const sp<AudioFlinger>& audioFlinger, audio // RecordThread::readInputParameters_l() //FIXME: mStandby should be true here. Is this some kind of hack? mStandby(false), mOutDevice(outDevice), mInDevice(inDevice), mAudioSource(AUDIO_SOURCE_DEFAULT), mId(id), mPrevInDevice(AUDIO_DEVICE_NONE), mAudioSource(AUDIO_SOURCE_DEFAULT), mId(id), // mName will be set by concrete (non-virtual) subclass mDeathRecipient(new PMDeathRecipient(this)), mSystemReady(systemReady) Loading Loading @@ -3131,6 +3131,7 @@ status_t AudioFlinger::PlaybackThread::createAudioPatch_l(const struct audio_pat for (size_t i = 0; i < mEffectChains.size(); i++) { mEffectChains[i]->setDevice_l(type); } bool configChanged = mOutDevice != type; mOutDevice = type; mPatch = *patch; Loading Loading @@ -3159,7 +3160,9 @@ status_t AudioFlinger::PlaybackThread::createAudioPatch_l(const struct audio_pat param.toString().string()); *handle = AUDIO_PATCH_HANDLE_NONE; } if (configChanged) { sendIoConfigEvent_l(AUDIO_OUTPUT_CONFIG_CHANGED); } return status; } Loading Loading @@ -6796,6 +6799,9 @@ bool AudioFlinger::RecordThread::checkForNewParameter_l(const String8& keyValueP status = BAD_VALUE; } else { mInDevice = value; if (value != AUDIO_DEVICE_NONE) { mPrevInDevice = value; } // disable AEC and NS if the device is a BT SCO headset supporting those // pre processings if (mTracks.size() > 0) { Loading Loading @@ -7079,7 +7085,10 @@ status_t AudioFlinger::RecordThread::createAudioPatch_l(const struct audio_patch *handle = AUDIO_PATCH_HANDLE_NONE; } if (mInDevice != mPrevInDevice) { sendIoConfigEvent_l(AUDIO_INPUT_CONFIG_CHANGED); mPrevInDevice = mInDevice; } return status; } Loading Loading
include/media/AudioSystem.h +2 −2 Original line number Diff line number Diff line Loading @@ -408,8 +408,8 @@ private: AudioPolicyServiceClient() { } status_t addAudioPortCallback(const sp<AudioPortCallback>& callback); status_t removeAudioPortCallback(const sp<AudioPortCallback>& callback); int addAudioPortCallback(const sp<AudioPortCallback>& callback); int removeAudioPortCallback(const sp<AudioPortCallback>& callback); // DeathRecipient virtual void binderDied(const wp<IBinder>& who); Loading
include/media/IAudioPolicyService.h +2 −0 Original line number Diff line number Diff line Loading @@ -149,6 +149,8 @@ public: virtual void registerClient(const sp<IAudioPolicyServiceClient>& client) = 0; virtual void setAudioPortCallbacksEnabled(bool enabled) = 0; virtual status_t acquireSoundTriggerSession(audio_session_t *session, audio_io_handle_t *ioHandle, audio_devices_t *device) = 0; Loading
media/libmedia/AudioSystem.cpp +16 −8 Original line number Diff line number Diff line Loading @@ -1043,7 +1043,11 @@ status_t AudioSystem::addAudioPortCallback(const sp<AudioPortCallback>& callback if (gAudioPolicyServiceClient == 0) { return NO_INIT; } return gAudioPolicyServiceClient->addAudioPortCallback(callback); int ret = gAudioPolicyServiceClient->addAudioPortCallback(callback); if (ret == 1) { aps->setAudioPortCallbacksEnabled(true); } return (ret < 0) ? INVALID_OPERATION : NO_ERROR; } /*static*/ Loading @@ -1056,7 +1060,11 @@ status_t AudioSystem::removeAudioPortCallback(const sp<AudioPortCallback>& callb if (gAudioPolicyServiceClient == 0) { return NO_INIT; } return gAudioPolicyServiceClient->removeAudioPortCallback(callback); int ret = gAudioPolicyServiceClient->removeAudioPortCallback(callback); if (ret == 0) { aps->setAudioPortCallbacksEnabled(false); } return (ret < 0) ? INVALID_OPERATION : NO_ERROR; } status_t AudioSystem::addAudioDeviceCallback( Loading Loading @@ -1138,20 +1146,20 @@ status_t AudioSystem::stopAudioSource(audio_io_handle_t handle) // --------------------------------------------------------------------------- status_t AudioSystem::AudioPolicyServiceClient::addAudioPortCallback( int AudioSystem::AudioPolicyServiceClient::addAudioPortCallback( const sp<AudioPortCallback>& callback) { Mutex::Autolock _l(mLock); for (size_t i = 0; i < mAudioPortCallbacks.size(); i++) { if (mAudioPortCallbacks[i] == callback) { return INVALID_OPERATION; return -1; } } mAudioPortCallbacks.add(callback); return NO_ERROR; return mAudioPortCallbacks.size(); } status_t AudioSystem::AudioPolicyServiceClient::removeAudioPortCallback( int AudioSystem::AudioPolicyServiceClient::removeAudioPortCallback( const sp<AudioPortCallback>& callback) { Mutex::Autolock _l(mLock); Loading @@ -1162,10 +1170,10 @@ status_t AudioSystem::AudioPolicyServiceClient::removeAudioPortCallback( } } if (i == mAudioPortCallbacks.size()) { return INVALID_OPERATION; return -1; } mAudioPortCallbacks.removeAt(i); return NO_ERROR; return mAudioPortCallbacks.size(); } Loading
media/libmedia/IAudioPolicyService.cpp +16 −1 Original line number Diff line number Diff line Loading @@ -72,7 +72,8 @@ enum { GET_PHONE_STATE, REGISTER_POLICY_MIXES, START_AUDIO_SOURCE, STOP_AUDIO_SOURCE STOP_AUDIO_SOURCE, SET_AUDIO_PORT_CALLBACK_ENABLED, }; #define MAX_ITEMS_PER_LIST 1024 Loading Loading @@ -646,6 +647,14 @@ public: remote()->transact(REGISTER_CLIENT, data, &reply); } virtual void setAudioPortCallbacksEnabled(bool enabled) { Parcel data, reply; data.writeInterfaceToken(IAudioPolicyService::getInterfaceDescriptor()); data.writeInt32(enabled ? 1 : 0); remote()->transact(SET_AUDIO_PORT_CALLBACK_ENABLED, data, &reply); } virtual status_t acquireSoundTriggerSession(audio_session_t *session, audio_io_handle_t *ioHandle, audio_devices_t *device) Loading Loading @@ -1219,6 +1228,12 @@ status_t BnAudioPolicyService::onTransact( return NO_ERROR; } break; case SET_AUDIO_PORT_CALLBACK_ENABLED: { CHECK_INTERFACE(IAudioPolicyService, data, reply); setAudioPortCallbacksEnabled(data.readInt32() == 1); return NO_ERROR; } break; case ACQUIRE_SOUNDTRIGGER_SESSION: { CHECK_INTERFACE(IAudioPolicyService, data, reply); sp<IAudioPolicyServiceClient> client = interface_cast<IAudioPolicyServiceClient>( Loading
services/audioflinger/Threads.cpp +12 −3 Original line number Diff line number Diff line Loading @@ -530,7 +530,7 @@ AudioFlinger::ThreadBase::ThreadBase(const sp<AudioFlinger>& audioFlinger, audio // RecordThread::readInputParameters_l() //FIXME: mStandby should be true here. Is this some kind of hack? mStandby(false), mOutDevice(outDevice), mInDevice(inDevice), mAudioSource(AUDIO_SOURCE_DEFAULT), mId(id), mPrevInDevice(AUDIO_DEVICE_NONE), mAudioSource(AUDIO_SOURCE_DEFAULT), mId(id), // mName will be set by concrete (non-virtual) subclass mDeathRecipient(new PMDeathRecipient(this)), mSystemReady(systemReady) Loading Loading @@ -3131,6 +3131,7 @@ status_t AudioFlinger::PlaybackThread::createAudioPatch_l(const struct audio_pat for (size_t i = 0; i < mEffectChains.size(); i++) { mEffectChains[i]->setDevice_l(type); } bool configChanged = mOutDevice != type; mOutDevice = type; mPatch = *patch; Loading Loading @@ -3159,7 +3160,9 @@ status_t AudioFlinger::PlaybackThread::createAudioPatch_l(const struct audio_pat param.toString().string()); *handle = AUDIO_PATCH_HANDLE_NONE; } if (configChanged) { sendIoConfigEvent_l(AUDIO_OUTPUT_CONFIG_CHANGED); } return status; } Loading Loading @@ -6796,6 +6799,9 @@ bool AudioFlinger::RecordThread::checkForNewParameter_l(const String8& keyValueP status = BAD_VALUE; } else { mInDevice = value; if (value != AUDIO_DEVICE_NONE) { mPrevInDevice = value; } // disable AEC and NS if the device is a BT SCO headset supporting those // pre processings if (mTracks.size() > 0) { Loading Loading @@ -7079,7 +7085,10 @@ status_t AudioFlinger::RecordThread::createAudioPatch_l(const struct audio_patch *handle = AUDIO_PATCH_HANDLE_NONE; } if (mInDevice != mPrevInDevice) { sendIoConfigEvent_l(AUDIO_INPUT_CONFIG_CHANGED); mPrevInDevice = mInDevice; } return status; } Loading