diff options
author | Eric Laurent <elaurent@google.com> | 2015-04-03 15:57:54 -0700 |
---|---|---|
committer | Eric Laurent <elaurent@google.com> | 2015-04-08 12:37:35 -0700 |
commit | 322b4d25387a04c9afebe998326d005bbdf17ede (patch) | |
tree | 3cf0c2912dc7cb75acb60526bef382dd90e9a51d /services/audiopolicy/common/managerdefinitions/src/DeviceDescriptor.cpp | |
parent | 6dc4dc4ad23dc82eca9af3112292f3e6d5b17b15 (diff) | |
download | frameworks_av-322b4d25387a04c9afebe998326d005bbdf17ede.zip frameworks_av-322b4d25387a04c9afebe998326d005bbdf17ede.tar.gz frameworks_av-322b4d25387a04c9afebe998326d005bbdf17ede.tar.bz2 |
audio policy: fix unique audio port ID.
Remove mId member from AudioPort as it was shadowed
by mId in DeviceDescriptor.
Add getters for Id, and HW module name and version to device,
output and input descriptors.
Fix DeviceDescriptor name initialization.
Change-Id: I4a69f385e40330954d9dad5f2926c521f60b2ec1
Diffstat (limited to 'services/audiopolicy/common/managerdefinitions/src/DeviceDescriptor.cpp')
-rw-r--r-- | services/audiopolicy/common/managerdefinitions/src/DeviceDescriptor.cpp | 31 |
1 files changed, 22 insertions, 9 deletions
diff --git a/services/audiopolicy/common/managerdefinitions/src/DeviceDescriptor.cpp b/services/audiopolicy/common/managerdefinitions/src/DeviceDescriptor.cpp index 9249d47..9573583 100644 --- a/services/audiopolicy/common/managerdefinitions/src/DeviceDescriptor.cpp +++ b/services/audiopolicy/common/managerdefinitions/src/DeviceDescriptor.cpp @@ -29,13 +29,23 @@ String8 DeviceDescriptor::emptyNameStr = String8(""); DeviceDescriptor::DeviceDescriptor(const String8& name, audio_devices_t type) : AudioPort(name, AUDIO_PORT_TYPE_DEVICE, audio_is_output_device(type) ? AUDIO_PORT_ROLE_SINK : - AUDIO_PORT_ROLE_SOURCE, - NULL), - mAddress(""), mDeviceType(type) + AUDIO_PORT_ROLE_SOURCE), + mAddress(""), mDeviceType(type), mId(0) { } +audio_port_handle_t DeviceDescriptor::getId() const +{ + return mId; +} + +void DeviceDescriptor::attach(const sp<HwModule>& module) +{ + AudioPort::attach(module); + mId = getNextUniqueId(); +} + bool DeviceDescriptor::equals(const sp<DeviceDescriptor>& other) const { // Devices are considered equal if they: @@ -139,11 +149,14 @@ void DeviceVector::loadDevicesFromName(char *name, char *devName = strtok(name, "|"); while (devName != NULL) { if (strlen(devName) != 0) { - audio_devices_t type = ConfigParsingUtils::stringToEnum(sDeviceNameToEnumTable, - ARRAY_SIZE(sDeviceNameToEnumTable), + audio_devices_t type = ConfigParsingUtils::stringToEnum(sDeviceTypeToEnumTable, + ARRAY_SIZE(sDeviceTypeToEnumTable), devName); if (type != AUDIO_DEVICE_NONE) { - sp<DeviceDescriptor> dev = new DeviceDescriptor(String8(name), type); + devName = (char *)ConfigParsingUtils::enumToString(sDeviceNameToEnumTable, + ARRAY_SIZE(sDeviceNameToEnumTable), + type); + sp<DeviceDescriptor> dev = new DeviceDescriptor(String8(devName), type); if (type == AUDIO_DEVICE_IN_REMOTE_SUBMIX || type == AUDIO_DEVICE_OUT_REMOTE_SUBMIX ) { dev->mAddress = String8("0"); @@ -183,7 +196,7 @@ sp<DeviceDescriptor> DeviceVector::getDeviceFromId(audio_port_handle_t id) const { sp<DeviceDescriptor> device; for (size_t i = 0; i < size(); i++) { - if (itemAt(i)->getHandle() == id) { + if (itemAt(i)->getId() == id) { device = itemAt(i); break; } @@ -303,8 +316,8 @@ status_t DeviceDescriptor::dump(int fd, int spaces, int index) const result.append(buffer); } snprintf(buffer, SIZE, "%*s- type: %-48s\n", spaces, "", - ConfigParsingUtils::enumToString(sDeviceNameToEnumTable, - ARRAY_SIZE(sDeviceNameToEnumTable), + ConfigParsingUtils::enumToString(sDeviceTypeToEnumTable, + ARRAY_SIZE(sDeviceTypeToEnumTable), mDeviceType)); result.append(buffer); if (mAddress.size() != 0) { |