Loading services/audioflinger/AudioFlinger.h +1 −3 Original line number Diff line number Diff line Loading @@ -160,6 +160,7 @@ class AudioFlinger : public AudioFlingerServerAdapter::Delegate { friend class sp<AudioFlinger>; friend class Client; // removeClient_l(); friend class PatchPanel; // TODO(b/291012167) replace the Thread friends with an interface. friend class DirectOutputThread; friend class MixerThread; Loading Loading @@ -578,7 +579,6 @@ private: class DeviceEffectManager; // TODO(b/288339104) these should be separate files public: class PatchPanel; class DeviceEffectManagerCallback; private: struct TeePatch; Loading @@ -586,8 +586,6 @@ public: using TeePatches = std::vector<TeePatch>; private: #include "PatchPanel.h" #include "PatchCommandThread.h" #include "DeviceEffectManager.h" Loading services/audioflinger/DeviceEffectManager.cpp +6 −7 Original line number Diff line number Diff line Loading @@ -35,14 +35,14 @@ using detail::AudioHalVersionInfo; using media::IEffectClient; void AudioFlinger::DeviceEffectManager::onCreateAudioPatch(audio_patch_handle_t handle, const PatchPanel::Patch& patch) { const IAfPatchPanel::Patch& patch) { ALOGV("%s handle %d mHalHandle %d device sink %08x", __func__, handle, patch.mHalHandle, patch.mAudioPatch.num_sinks > 0 ? patch.mAudioPatch.sinks[0].ext.device.type : 0); Mutex::Autolock _l(mLock); for (auto& effectProxies : mDeviceEffects) { for (auto& effect : effectProxies.second) { status_t status = effect->onCreatePatch(handle, &patch); // TODO(b/288339104) void* const status_t status = effect->onCreatePatch(handle, patch); ALOGV("%s Effect onCreatePatch status %d", __func__, status); ALOGW_IF(status == BAD_VALUE, "%s onCreatePatch error %d", __func__, status); } Loading @@ -60,15 +60,14 @@ void AudioFlinger::DeviceEffectManager::onReleaseAudioPatch(audio_patch_handle_t } void AudioFlinger::DeviceEffectManager::onUpdateAudioPatch(audio_patch_handle_t oldHandle, audio_patch_handle_t newHandle, const PatchPanel::Patch& patch) { audio_patch_handle_t newHandle, const IAfPatchPanel::Patch& patch) { ALOGV("%s oldhandle %d newHandle %d mHalHandle %d device sink %08x", __func__, oldHandle, newHandle, patch.mHalHandle, patch.mAudioPatch.num_sinks > 0 ? patch.mAudioPatch.sinks[0].ext.device.type : 0); Mutex::Autolock _l(mLock); for (auto& effectProxies : mDeviceEffects) { for (auto& effect : effectProxies.second) { // TODO(b/288339104) void* status_t status = effect->onUpdatePatch(oldHandle, newHandle, &patch); const status_t status = effect->onUpdatePatch(oldHandle, newHandle, patch); ALOGV("%s Effect onUpdatePatch status %d", __func__, status); ALOGW_IF(status != NO_ERROR, "%s onUpdatePatch error %d", __func__, status); } Loading @@ -81,7 +80,7 @@ sp<IAfEffectHandle> AudioFlinger::DeviceEffectManager::createEffect_l( const AudioDeviceTypeAddr& device, const sp<Client>& client, const sp<IEffectClient>& effectClient, const std::map<audio_patch_handle_t, PatchPanel::Patch>& patches, const std::map<audio_patch_handle_t, IAfPatchPanel::Patch>& patches, int *enabled, status_t *status, bool probe, Loading Loading @@ -123,7 +122,7 @@ sp<IAfEffectHandle> AudioFlinger::DeviceEffectManager::createEffect_l( if (lStatus == NO_ERROR) { lStatus = effect->addHandle(handle.get()); if (lStatus == NO_ERROR) { lStatus = effect->init(&patches); // TODO(b/288339104) void* lStatus = effect->init(patches); if (lStatus == NAME_NOT_FOUND) { lStatus = NO_ERROR; } Loading services/audioflinger/DeviceEffectManager.h +3 −3 Original line number Diff line number Diff line Loading @@ -34,7 +34,7 @@ public: const AudioDeviceTypeAddr& device, const sp<Client>& client, const sp<media::IEffectClient>& effectClient, const std::map<audio_patch_handle_t, PatchPanel::Patch>& patches, const std::map<audio_patch_handle_t, IAfPatchPanel::Patch>& patches, int *enabled, status_t *status, bool probe, Loading @@ -60,11 +60,11 @@ public: // PatchCommandThread::PatchCommandListener implementation void onCreateAudioPatch(audio_patch_handle_t handle, const PatchPanel::Patch& patch) override; const IAfPatchPanel::Patch& patch) override; void onReleaseAudioPatch(audio_patch_handle_t handle) override; void onUpdateAudioPatch(audio_patch_handle_t oldHandle, audio_patch_handle_t newHandle, const PatchPanel::Patch& patch) override; const IAfPatchPanel::Patch& patch) override; private: status_t checkEffectCompatibility(const effect_descriptor_t *desc); Loading services/audioflinger/Effects.cpp +4 −4 Original line number Diff line number Diff line Loading @@ -3289,7 +3289,7 @@ status_t DeviceEffectProxy::setEnabled(bool enabled, bool fromHandle) } status_t DeviceEffectProxy::init( const std::map <audio_patch_handle_t, AudioFlinger::PatchPanel::Patch>& patches) { const std::map <audio_patch_handle_t, IAfPatchPanel::Patch>& patches) { //For all audio patches //If src or sink device match //If the effect is HW accelerated Loading @@ -3313,7 +3313,7 @@ status_t DeviceEffectProxy::init( status_t DeviceEffectProxy::onUpdatePatch(audio_patch_handle_t oldPatchHandle, audio_patch_handle_t newPatchHandle, const AudioFlinger::PatchPanel::Patch& patch __unused) { const IAfPatchPanel::Patch& /* patch */) { status_t status = NAME_NOT_FOUND; ALOGV("%s", __func__); Mutex::Autolock _l(mProxyLock); Loading @@ -3329,7 +3329,7 @@ status_t DeviceEffectProxy::onUpdatePatch(audio_patch_handle_t oldPatchHandle, } status_t DeviceEffectProxy::onCreatePatch( audio_patch_handle_t patchHandle, const AudioFlinger::PatchPanel::Patch& patch) { audio_patch_handle_t patchHandle, const IAfPatchPanel::Patch& patch) { status_t status = NAME_NOT_FOUND; sp<IAfEffectHandle> handle; // only consider source[0] as this is the only "true" source of a patch Loading @@ -3352,7 +3352,7 @@ status_t DeviceEffectProxy::onCreatePatch( return status; } status_t DeviceEffectProxy::checkPort(const AudioFlinger::PatchPanel::Patch& patch, status_t DeviceEffectProxy::checkPort(const IAfPatchPanel::Patch& patch, const struct audio_port_config *port, sp<IAfEffectHandle> *handle) { ALOGV("%s type %d device type %d address %s device ID %d patch.isSoftware() %d", Loading services/audioflinger/Effects.h +6 −23 Original line number Diff line number Diff line Loading @@ -656,31 +656,14 @@ public: status_t setEnabled(bool enabled, bool fromHandle) final; sp<IAfDeviceEffectProxy> asDeviceEffectProxy() final { return this; } // TODO(b/288339104) type status_t init(const /* std::map<audio_patch_handle_t, PatchPanel::Patch>& */ void * patches) final { return init(*reinterpret_cast<const std::map< audio_patch_handle_t, AudioFlinger::PatchPanel::Patch> *>(patches)); } // TODO(b/288339104) type status_t onCreatePatch(audio_patch_handle_t patchHandle, /* const PatchPanel::Patch& */ const void * patch) final { return onCreatePatch(patchHandle, *reinterpret_cast<const AudioFlinger::PatchPanel::Patch *>(patch)); } // TODO(b/288339104) type status_t onUpdatePatch(audio_patch_handle_t oldPatchHandle, audio_patch_handle_t newPatchHandle, /* const PatchPanel::Patch& */ const void * patch) final { return onUpdatePatch(oldPatchHandle, newPatchHandle, *reinterpret_cast<const AudioFlinger::PatchPanel::Patch *>(patch)); } status_t init(const std::map<audio_patch_handle_t, IAfPatchPanel::Patch>& patches) final; status_t init(const std::map<audio_patch_handle_t, AudioFlinger::PatchPanel::Patch>& patches); status_t onCreatePatch( audio_patch_handle_t patchHandle, const AudioFlinger::PatchPanel::Patch& patch); status_t onCreatePatch(audio_patch_handle_t patchHandle, const IAfPatchPanel::Patch& patch) final; status_t onUpdatePatch(audio_patch_handle_t oldPatchHandle, audio_patch_handle_t newPatchHandle, const AudioFlinger::PatchPanel::Patch& patch); const IAfPatchPanel::Patch& patch) final; void onReleasePatch(audio_patch_handle_t patchHandle) final; Loading Loading @@ -763,7 +746,7 @@ private: const sp<AudioFlinger::DeviceEffectManagerCallback> mManagerCallback; }; status_t checkPort(const AudioFlinger::PatchPanel::Patch& patch, status_t checkPort(const IAfPatchPanel::Patch& patch, const struct audio_port_config *port, sp<IAfEffectHandle> *handle); const AudioDeviceTypeAddr mDevice; Loading Loading
services/audioflinger/AudioFlinger.h +1 −3 Original line number Diff line number Diff line Loading @@ -160,6 +160,7 @@ class AudioFlinger : public AudioFlingerServerAdapter::Delegate { friend class sp<AudioFlinger>; friend class Client; // removeClient_l(); friend class PatchPanel; // TODO(b/291012167) replace the Thread friends with an interface. friend class DirectOutputThread; friend class MixerThread; Loading Loading @@ -578,7 +579,6 @@ private: class DeviceEffectManager; // TODO(b/288339104) these should be separate files public: class PatchPanel; class DeviceEffectManagerCallback; private: struct TeePatch; Loading @@ -586,8 +586,6 @@ public: using TeePatches = std::vector<TeePatch>; private: #include "PatchPanel.h" #include "PatchCommandThread.h" #include "DeviceEffectManager.h" Loading
services/audioflinger/DeviceEffectManager.cpp +6 −7 Original line number Diff line number Diff line Loading @@ -35,14 +35,14 @@ using detail::AudioHalVersionInfo; using media::IEffectClient; void AudioFlinger::DeviceEffectManager::onCreateAudioPatch(audio_patch_handle_t handle, const PatchPanel::Patch& patch) { const IAfPatchPanel::Patch& patch) { ALOGV("%s handle %d mHalHandle %d device sink %08x", __func__, handle, patch.mHalHandle, patch.mAudioPatch.num_sinks > 0 ? patch.mAudioPatch.sinks[0].ext.device.type : 0); Mutex::Autolock _l(mLock); for (auto& effectProxies : mDeviceEffects) { for (auto& effect : effectProxies.second) { status_t status = effect->onCreatePatch(handle, &patch); // TODO(b/288339104) void* const status_t status = effect->onCreatePatch(handle, patch); ALOGV("%s Effect onCreatePatch status %d", __func__, status); ALOGW_IF(status == BAD_VALUE, "%s onCreatePatch error %d", __func__, status); } Loading @@ -60,15 +60,14 @@ void AudioFlinger::DeviceEffectManager::onReleaseAudioPatch(audio_patch_handle_t } void AudioFlinger::DeviceEffectManager::onUpdateAudioPatch(audio_patch_handle_t oldHandle, audio_patch_handle_t newHandle, const PatchPanel::Patch& patch) { audio_patch_handle_t newHandle, const IAfPatchPanel::Patch& patch) { ALOGV("%s oldhandle %d newHandle %d mHalHandle %d device sink %08x", __func__, oldHandle, newHandle, patch.mHalHandle, patch.mAudioPatch.num_sinks > 0 ? patch.mAudioPatch.sinks[0].ext.device.type : 0); Mutex::Autolock _l(mLock); for (auto& effectProxies : mDeviceEffects) { for (auto& effect : effectProxies.second) { // TODO(b/288339104) void* status_t status = effect->onUpdatePatch(oldHandle, newHandle, &patch); const status_t status = effect->onUpdatePatch(oldHandle, newHandle, patch); ALOGV("%s Effect onUpdatePatch status %d", __func__, status); ALOGW_IF(status != NO_ERROR, "%s onUpdatePatch error %d", __func__, status); } Loading @@ -81,7 +80,7 @@ sp<IAfEffectHandle> AudioFlinger::DeviceEffectManager::createEffect_l( const AudioDeviceTypeAddr& device, const sp<Client>& client, const sp<IEffectClient>& effectClient, const std::map<audio_patch_handle_t, PatchPanel::Patch>& patches, const std::map<audio_patch_handle_t, IAfPatchPanel::Patch>& patches, int *enabled, status_t *status, bool probe, Loading Loading @@ -123,7 +122,7 @@ sp<IAfEffectHandle> AudioFlinger::DeviceEffectManager::createEffect_l( if (lStatus == NO_ERROR) { lStatus = effect->addHandle(handle.get()); if (lStatus == NO_ERROR) { lStatus = effect->init(&patches); // TODO(b/288339104) void* lStatus = effect->init(patches); if (lStatus == NAME_NOT_FOUND) { lStatus = NO_ERROR; } Loading
services/audioflinger/DeviceEffectManager.h +3 −3 Original line number Diff line number Diff line Loading @@ -34,7 +34,7 @@ public: const AudioDeviceTypeAddr& device, const sp<Client>& client, const sp<media::IEffectClient>& effectClient, const std::map<audio_patch_handle_t, PatchPanel::Patch>& patches, const std::map<audio_patch_handle_t, IAfPatchPanel::Patch>& patches, int *enabled, status_t *status, bool probe, Loading @@ -60,11 +60,11 @@ public: // PatchCommandThread::PatchCommandListener implementation void onCreateAudioPatch(audio_patch_handle_t handle, const PatchPanel::Patch& patch) override; const IAfPatchPanel::Patch& patch) override; void onReleaseAudioPatch(audio_patch_handle_t handle) override; void onUpdateAudioPatch(audio_patch_handle_t oldHandle, audio_patch_handle_t newHandle, const PatchPanel::Patch& patch) override; const IAfPatchPanel::Patch& patch) override; private: status_t checkEffectCompatibility(const effect_descriptor_t *desc); Loading
services/audioflinger/Effects.cpp +4 −4 Original line number Diff line number Diff line Loading @@ -3289,7 +3289,7 @@ status_t DeviceEffectProxy::setEnabled(bool enabled, bool fromHandle) } status_t DeviceEffectProxy::init( const std::map <audio_patch_handle_t, AudioFlinger::PatchPanel::Patch>& patches) { const std::map <audio_patch_handle_t, IAfPatchPanel::Patch>& patches) { //For all audio patches //If src or sink device match //If the effect is HW accelerated Loading @@ -3313,7 +3313,7 @@ status_t DeviceEffectProxy::init( status_t DeviceEffectProxy::onUpdatePatch(audio_patch_handle_t oldPatchHandle, audio_patch_handle_t newPatchHandle, const AudioFlinger::PatchPanel::Patch& patch __unused) { const IAfPatchPanel::Patch& /* patch */) { status_t status = NAME_NOT_FOUND; ALOGV("%s", __func__); Mutex::Autolock _l(mProxyLock); Loading @@ -3329,7 +3329,7 @@ status_t DeviceEffectProxy::onUpdatePatch(audio_patch_handle_t oldPatchHandle, } status_t DeviceEffectProxy::onCreatePatch( audio_patch_handle_t patchHandle, const AudioFlinger::PatchPanel::Patch& patch) { audio_patch_handle_t patchHandle, const IAfPatchPanel::Patch& patch) { status_t status = NAME_NOT_FOUND; sp<IAfEffectHandle> handle; // only consider source[0] as this is the only "true" source of a patch Loading @@ -3352,7 +3352,7 @@ status_t DeviceEffectProxy::onCreatePatch( return status; } status_t DeviceEffectProxy::checkPort(const AudioFlinger::PatchPanel::Patch& patch, status_t DeviceEffectProxy::checkPort(const IAfPatchPanel::Patch& patch, const struct audio_port_config *port, sp<IAfEffectHandle> *handle) { ALOGV("%s type %d device type %d address %s device ID %d patch.isSoftware() %d", Loading
services/audioflinger/Effects.h +6 −23 Original line number Diff line number Diff line Loading @@ -656,31 +656,14 @@ public: status_t setEnabled(bool enabled, bool fromHandle) final; sp<IAfDeviceEffectProxy> asDeviceEffectProxy() final { return this; } // TODO(b/288339104) type status_t init(const /* std::map<audio_patch_handle_t, PatchPanel::Patch>& */ void * patches) final { return init(*reinterpret_cast<const std::map< audio_patch_handle_t, AudioFlinger::PatchPanel::Patch> *>(patches)); } // TODO(b/288339104) type status_t onCreatePatch(audio_patch_handle_t patchHandle, /* const PatchPanel::Patch& */ const void * patch) final { return onCreatePatch(patchHandle, *reinterpret_cast<const AudioFlinger::PatchPanel::Patch *>(patch)); } // TODO(b/288339104) type status_t onUpdatePatch(audio_patch_handle_t oldPatchHandle, audio_patch_handle_t newPatchHandle, /* const PatchPanel::Patch& */ const void * patch) final { return onUpdatePatch(oldPatchHandle, newPatchHandle, *reinterpret_cast<const AudioFlinger::PatchPanel::Patch *>(patch)); } status_t init(const std::map<audio_patch_handle_t, IAfPatchPanel::Patch>& patches) final; status_t init(const std::map<audio_patch_handle_t, AudioFlinger::PatchPanel::Patch>& patches); status_t onCreatePatch( audio_patch_handle_t patchHandle, const AudioFlinger::PatchPanel::Patch& patch); status_t onCreatePatch(audio_patch_handle_t patchHandle, const IAfPatchPanel::Patch& patch) final; status_t onUpdatePatch(audio_patch_handle_t oldPatchHandle, audio_patch_handle_t newPatchHandle, const AudioFlinger::PatchPanel::Patch& patch); const IAfPatchPanel::Patch& patch) final; void onReleasePatch(audio_patch_handle_t patchHandle) final; Loading Loading @@ -763,7 +746,7 @@ private: const sp<AudioFlinger::DeviceEffectManagerCallback> mManagerCallback; }; status_t checkPort(const AudioFlinger::PatchPanel::Patch& patch, status_t checkPort(const IAfPatchPanel::Patch& patch, const struct audio_port_config *port, sp<IAfEffectHandle> *handle); const AudioDeviceTypeAddr mDevice; Loading