Revert "audio policy: handle errors for usb broadcast device connection"
This reverts commit 572e61da59aa434ab0adc26063a6000a355e1980.
Reason for revert: Droidmonitor created revert due to b/362824918. Will be verifying through ABTD before submission.
Bug: 360284877
Bug: 362824918
Change-Id: I54331687af40351d2305b87885c6c4372d2ec792
diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
index d6338b5..811ca12 100644
--- a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
+++ b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
@@ -122,16 +122,17 @@
}
}
-status_t AudioPolicyManager::broadcastDeviceConnectionState(const sp<DeviceDescriptor> &device,
+void AudioPolicyManager::broadcastDeviceConnectionState(const sp<DeviceDescriptor> &device,
media::DeviceConnectedState state)
{
audio_port_v7 devicePort;
device->toAudioPort(&devicePort);
- status_t status = mpClientInterface->setDeviceConnectedState(&devicePort, state);
- ALOGE_IF(status != OK, "Error %d while setting connected state %d for device %s", status,
- static_cast<int>(state), device->getDeviceTypeAddr().toString(false).c_str());
-
- return status;
+ if (status_t status = mpClientInterface->setDeviceConnectedState(&devicePort, state);
+ status != OK) {
+ ALOGE("Error %d while setting connected state %d for device %s",
+ status, static_cast<int>(state),
+ device->getDeviceTypeAddr().toString(false).c_str());
+ }
}
status_t AudioPolicyManager::setDeviceConnectionStateInt(
@@ -212,14 +213,7 @@
// Before checking outputs, broadcast connect event to allow HAL to retrieve dynamic
// parameters on newly connected devices (instead of opening the outputs...)
- if (broadcastDeviceConnectionState(
- device, media::DeviceConnectedState::CONNECTED) != NO_ERROR) {
- mAvailableOutputDevices.remove(device);
- mHwModules.cleanUpForDevice(device);
- ALOGE("%s() device %s format %x connection failed", __func__,
- device->toString().c_str(), device->getEncodedFormat());
- return INVALID_OPERATION;
- }
+ broadcastDeviceConnectionState(device, media::DeviceConnectedState::CONNECTED);
if (checkOutputsForDevice(device, state, outputs) != NO_ERROR) {
mAvailableOutputDevices.remove(device);
@@ -404,14 +398,7 @@
// Before checking intputs, broadcast connect event to allow HAL to retrieve dynamic
// parameters on newly connected devices (instead of opening the inputs...)
- if (broadcastDeviceConnectionState(
- device, media::DeviceConnectedState::CONNECTED) != NO_ERROR) {
- mAvailableInputDevices.remove(device);
- mHwModules.cleanUpForDevice(device);
- ALOGE("%s() device %s format %x connection failed", __func__,
- device->toString().c_str(), device->getEncodedFormat());
- return INVALID_OPERATION;
- }
+ broadcastDeviceConnectionState(device, media::DeviceConnectedState::CONNECTED);
// Propagate device availability to Engine
setEngineDeviceConnectionState(device, state);
diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.h b/services/audiopolicy/managerdefault/AudioPolicyManager.h
index 257d328..c8cced6 100644
--- a/services/audiopolicy/managerdefault/AudioPolicyManager.h
+++ b/services/audiopolicy/managerdefault/AudioPolicyManager.h
@@ -1077,8 +1077,8 @@
// It can give a chance to HAL implementer to retrieve dynamic capabilities associated
// to this device for example.
// TODO avoid opening stream to retrieve capabilities of a profile.
- status_t broadcastDeviceConnectionState(const sp<DeviceDescriptor> &device,
- media::DeviceConnectedState state);
+ void broadcastDeviceConnectionState(const sp<DeviceDescriptor> &device,
+ media::DeviceConnectedState state);
// updates device caching and output for streams that can influence the
// routing of notifications
diff --git a/services/audiopolicy/tests/audiopolicymanager_tests.cpp b/services/audiopolicy/tests/audiopolicymanager_tests.cpp
index 5c0651c..b93f7e2 100644
--- a/services/audiopolicy/tests/audiopolicymanager_tests.cpp
+++ b/services/audiopolicy/tests/audiopolicymanager_tests.cpp
@@ -2648,29 +2648,8 @@
void setSimulateFailure(bool simulateFailure) { mSimulateFailure = simulateFailure; }
- void setSimulateBroadcastDeviceStatus(audio_devices_t device, status_t status) {
- if (status != NO_ERROR) {
- // simulate device connect status
- mSimulateBroadcastDeviceStatus[device] = status;
- } else {
- // remove device connection fixed status
- mSimulateBroadcastDeviceStatus.erase(device);
- }
- }
-
- status_t setDeviceConnectedState(const struct audio_port_v7* port,
- media::DeviceConnectedState state) override {
- if (mSimulateBroadcastDeviceStatus.find(port->ext.device.type) !=
- mSimulateBroadcastDeviceStatus.end()) {
- // If a simulated status exists, return a status value
- return mSimulateBroadcastDeviceStatus[port->ext.device.type];
- }
- return AudioPolicyManagerTestClient::setDeviceConnectedState(port, state);
- }
-
private:
bool mSimulateFailure = false;
- std::map<audio_devices_t, status_t> mSimulateBroadcastDeviceStatus;
};
} // namespace
@@ -2691,9 +2670,6 @@
void setSimulateOpenFailure(bool simulateFailure) {
mFullClient->setSimulateFailure(simulateFailure); }
- void setSimulateBroadcastDeviceStatus(audio_devices_t device, status_t status) {
- mFullClient->setSimulateBroadcastDeviceStatus(device, status); }
-
static const std::string sBluetoothConfig;
private:
@@ -2737,30 +2713,6 @@
}
}
-TEST_P(AudioPolicyManagerTestDeviceConnectionFailed, BroadcastDeviceFailure) {
- const audio_devices_t type = std::get<0>(GetParam());
- const std::string name = std::get<1>(GetParam());
- const std::string address = std::get<2>(GetParam());
- const audio_format_t format = std::get<3>(GetParam());
-
- // simulate broadcastDeviceConnectionState return failure
- setSimulateBroadcastDeviceStatus(type, INVALID_OPERATION);
- ASSERT_EQ(INVALID_OPERATION, mManager->setDeviceConnectionState(
- type, AUDIO_POLICY_DEVICE_STATE_AVAILABLE,
- address.c_str(), name.c_str(), format));
-
- // if broadcast is fail, device should not be added to available devices list
- if (audio_is_output_device(type)) {
- auto availableDevices = mManager->getAvailableOutputDevices();
- EXPECT_FALSE(availableDevices.containsDeviceWithType(type));
- } else if (audio_is_input_device(type)) {
- auto availableDevices = mManager->getAvailableInputDevices();
- EXPECT_FALSE(availableDevices.containsDeviceWithType(type));
- }
-
- setSimulateBroadcastDeviceStatus(type, NO_ERROR);
-}
-
INSTANTIATE_TEST_CASE_P(
DeviceConnectionFailure,
AudioPolicyManagerTestDeviceConnectionFailed,