Loading services/audiopolicy/common/managerdefinitions/src/DeviceDescriptor.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -40,7 +40,7 @@ DeviceDescriptor::DeviceDescriptor(audio_devices_t type, const FormatVector &enc mTagName(tagName), mDeviceType(type), mEncodedFormats(encodedFormats) { mCurrentEncodedFormat = AUDIO_FORMAT_DEFAULT; if (type == AUDIO_DEVICE_IN_REMOTE_SUBMIX || type == AUDIO_DEVICE_OUT_REMOTE_SUBMIX ) { if (audio_is_remote_submix_device(type)) { mAddress = String8("0"); } /* If framework runs against a pre 5.0 Audio HAL, encoded formats are absent from the config. Loading services/audiopolicy/managerdefault/AudioPolicyManager.cpp +19 −12 Original line number Diff line number Diff line Loading @@ -169,8 +169,6 @@ status_t AudioPolicyManager::setDeviceConnectionStateInt(audio_devices_t deviceT broadcastDeviceConnectionState(device, AUDIO_POLICY_DEVICE_STATE_UNAVAILABLE); return INVALID_OPERATION; } // Propagate device availability to Engine mEngine->setDeviceConnectionState(device, state); // outputs should never be empty here ALOG_ASSERT(outputs.size() != 0, "setDeviceConnectionState():" Loading Loading @@ -200,8 +198,6 @@ status_t AudioPolicyManager::setDeviceConnectionStateInt(audio_devices_t deviceT // Reset active device codec device->setEncodedFormat(AUDIO_FORMAT_DEFAULT); // Propagate device availability to Engine mEngine->setDeviceConnectionState(device, state); } break; default: Loading @@ -209,6 +205,9 @@ status_t AudioPolicyManager::setDeviceConnectionStateInt(audio_devices_t deviceT return BAD_VALUE; } // Propagate device availability to Engine setEngineDeviceConnectionState(device, state); // No need to evaluate playback routing when connecting a remote submix // output device used by a dynamic policy of type recorder as no // playback use case is affected. Loading Loading @@ -318,9 +317,6 @@ status_t AudioPolicyManager::setDeviceConnectionStateInt(audio_devices_t deviceT if (mAvailableInputDevices.add(device) < 0) { return NO_MEMORY; } // Propagate device availability to Engine mEngine->setDeviceConnectionState(device, state); } break; // handle input device disconnection Loading @@ -337,9 +333,6 @@ status_t AudioPolicyManager::setDeviceConnectionStateInt(audio_devices_t deviceT checkInputsForDevice(device, state, inputs); mAvailableInputDevices.remove(device); // Propagate device availability to Engine mEngine->setDeviceConnectionState(device, state); } break; default: Loading @@ -347,6 +340,9 @@ status_t AudioPolicyManager::setDeviceConnectionStateInt(audio_devices_t deviceT return BAD_VALUE; } // Propagate device availability to Engine setEngineDeviceConnectionState(device, state); closeAllInputs(); // As the input device list can impact the output device selection, update // getDeviceForStrategy() cache Loading @@ -369,6 +365,17 @@ status_t AudioPolicyManager::setDeviceConnectionStateInt(audio_devices_t deviceT return BAD_VALUE; } void AudioPolicyManager::setEngineDeviceConnectionState(const sp<DeviceDescriptor> device, audio_policy_dev_state_t state) { // the Engine does not have to know about remote submix devices used by dynamic audio policies if (audio_is_remote_submix_device(device->type()) && device->address() != "0") { return; } mEngine->setDeviceConnectionState(device, state); } audio_policy_dev_state_t AudioPolicyManager::getDeviceConnectionState(audio_devices_t device, const char *device_address) { Loading Loading @@ -4399,7 +4406,7 @@ status_t AudioPolicyManager::initialize() { continue; } // Device is now validated and can be appended to the available devices of the engine mEngine->setDeviceConnectionState(device, AUDIO_POLICY_DEVICE_STATE_AVAILABLE); setEngineDeviceConnectionState(device, AUDIO_POLICY_DEVICE_STATE_AVAILABLE); i++; } }; Loading services/audiopolicy/managerdefault/AudioPolicyManager.h +4 −0 Original line number Diff line number Diff line Loading @@ -847,6 +847,10 @@ private: const char *device_address, const char *device_name, audio_format_t encodedFormat); void setEngineDeviceConnectionState(const sp<DeviceDescriptor> device, audio_policy_dev_state_t state); void updateMono(audio_io_handle_t output) { AudioParameter param; param.addInt(String8(AudioParameter::keyMonoOutput), (int)mMasterMono); Loading Loading
services/audiopolicy/common/managerdefinitions/src/DeviceDescriptor.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -40,7 +40,7 @@ DeviceDescriptor::DeviceDescriptor(audio_devices_t type, const FormatVector &enc mTagName(tagName), mDeviceType(type), mEncodedFormats(encodedFormats) { mCurrentEncodedFormat = AUDIO_FORMAT_DEFAULT; if (type == AUDIO_DEVICE_IN_REMOTE_SUBMIX || type == AUDIO_DEVICE_OUT_REMOTE_SUBMIX ) { if (audio_is_remote_submix_device(type)) { mAddress = String8("0"); } /* If framework runs against a pre 5.0 Audio HAL, encoded formats are absent from the config. Loading
services/audiopolicy/managerdefault/AudioPolicyManager.cpp +19 −12 Original line number Diff line number Diff line Loading @@ -169,8 +169,6 @@ status_t AudioPolicyManager::setDeviceConnectionStateInt(audio_devices_t deviceT broadcastDeviceConnectionState(device, AUDIO_POLICY_DEVICE_STATE_UNAVAILABLE); return INVALID_OPERATION; } // Propagate device availability to Engine mEngine->setDeviceConnectionState(device, state); // outputs should never be empty here ALOG_ASSERT(outputs.size() != 0, "setDeviceConnectionState():" Loading Loading @@ -200,8 +198,6 @@ status_t AudioPolicyManager::setDeviceConnectionStateInt(audio_devices_t deviceT // Reset active device codec device->setEncodedFormat(AUDIO_FORMAT_DEFAULT); // Propagate device availability to Engine mEngine->setDeviceConnectionState(device, state); } break; default: Loading @@ -209,6 +205,9 @@ status_t AudioPolicyManager::setDeviceConnectionStateInt(audio_devices_t deviceT return BAD_VALUE; } // Propagate device availability to Engine setEngineDeviceConnectionState(device, state); // No need to evaluate playback routing when connecting a remote submix // output device used by a dynamic policy of type recorder as no // playback use case is affected. Loading Loading @@ -318,9 +317,6 @@ status_t AudioPolicyManager::setDeviceConnectionStateInt(audio_devices_t deviceT if (mAvailableInputDevices.add(device) < 0) { return NO_MEMORY; } // Propagate device availability to Engine mEngine->setDeviceConnectionState(device, state); } break; // handle input device disconnection Loading @@ -337,9 +333,6 @@ status_t AudioPolicyManager::setDeviceConnectionStateInt(audio_devices_t deviceT checkInputsForDevice(device, state, inputs); mAvailableInputDevices.remove(device); // Propagate device availability to Engine mEngine->setDeviceConnectionState(device, state); } break; default: Loading @@ -347,6 +340,9 @@ status_t AudioPolicyManager::setDeviceConnectionStateInt(audio_devices_t deviceT return BAD_VALUE; } // Propagate device availability to Engine setEngineDeviceConnectionState(device, state); closeAllInputs(); // As the input device list can impact the output device selection, update // getDeviceForStrategy() cache Loading @@ -369,6 +365,17 @@ status_t AudioPolicyManager::setDeviceConnectionStateInt(audio_devices_t deviceT return BAD_VALUE; } void AudioPolicyManager::setEngineDeviceConnectionState(const sp<DeviceDescriptor> device, audio_policy_dev_state_t state) { // the Engine does not have to know about remote submix devices used by dynamic audio policies if (audio_is_remote_submix_device(device->type()) && device->address() != "0") { return; } mEngine->setDeviceConnectionState(device, state); } audio_policy_dev_state_t AudioPolicyManager::getDeviceConnectionState(audio_devices_t device, const char *device_address) { Loading Loading @@ -4399,7 +4406,7 @@ status_t AudioPolicyManager::initialize() { continue; } // Device is now validated and can be appended to the available devices of the engine mEngine->setDeviceConnectionState(device, AUDIO_POLICY_DEVICE_STATE_AVAILABLE); setEngineDeviceConnectionState(device, AUDIO_POLICY_DEVICE_STATE_AVAILABLE); i++; } }; Loading
services/audiopolicy/managerdefault/AudioPolicyManager.h +4 −0 Original line number Diff line number Diff line Loading @@ -847,6 +847,10 @@ private: const char *device_address, const char *device_name, audio_format_t encodedFormat); void setEngineDeviceConnectionState(const sp<DeviceDescriptor> device, audio_policy_dev_state_t state); void updateMono(audio_io_handle_t output) { AudioParameter param; param.addInt(String8(AudioParameter::keyMonoOutput), (int)mMasterMono); Loading