Loading services/audiopolicy/common/managerdefinitions/include/AudioPort.h +1 −1 Original line number Diff line number Diff line Loading @@ -42,7 +42,7 @@ public: virtual void toAudioPort(struct audio_port *port) const; void importAudioPort(const sp<AudioPort> port); virtual void importAudioPort(const sp<AudioPort> port); void clearCapabilities(); void loadSamplingRates(char *name); Loading services/audiopolicy/common/managerdefinitions/include/DeviceDescriptor.h +1 −0 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ public: virtual void attach(const sp<HwModule>& module); virtual void loadGains(cnode *root); virtual void toAudioPort(struct audio_port *port) const; virtual void importAudioPort(const sp<AudioPort> port); audio_port_handle_t getId() const; audio_devices_t type() const { return mDeviceType; } Loading services/audiopolicy/common/managerdefinitions/src/AudioPort.cpp +0 −16 Original line number Diff line number Diff line Loading @@ -151,28 +151,12 @@ void AudioPort::importAudioPort(const sp<AudioPort> port) { } } } for (size_t k = 0 ; k < port->mGains.size() ; k++) { sp<AudioGain> gain = port->mGains.itemAt(k); if (gain != 0) { bool hasGain = false; for (size_t l = 0 ; l < mGains.size() ; l++) { if (gain == mGains.itemAt(l)) { hasGain = true; break; } } if (!hasGain) { // never import a gain twice mGains.add(gain); } } } } void AudioPort::clearCapabilities() { mChannelMasks.clear(); mFormats.clear(); mSamplingRates.clear(); mGains.clear(); } void AudioPort::loadSamplingRates(char *name) Loading services/audiopolicy/common/managerdefinitions/src/DeviceDescriptor.cpp +7 −0 Original line number Diff line number Diff line Loading @@ -301,6 +301,13 @@ void DeviceDescriptor::toAudioPort(struct audio_port *port) const strncpy(port->ext.device.address, mAddress.string(), AUDIO_DEVICE_MAX_ADDRESS_LEN); } void DeviceDescriptor::importAudioPort(const sp<AudioPort> port) { AudioPort::importAudioPort(port); mSamplingRate = port->pickSamplingRate(); mFormat = port->pickFormat(); mChannelMask = port->pickChannelMask(); } status_t DeviceDescriptor::dump(int fd, int spaces, int index) const { const size_t SIZE = 256; Loading services/audiopolicy/managerdefault/AudioPolicyManager.cpp +11 −3 Original line number Diff line number Diff line Loading @@ -3140,8 +3140,11 @@ status_t AudioPolicyManager::checkOutputsForDevice(const sp<DeviceDescriptor> de { audio_devices_t device = devDesc->type(); sp<SwAudioOutputDescriptor> desc; if (audio_device_is_digital(device)) { // erase all current sample rates, formats and channel masks devDesc->clearCapabilities(); } if (state == AUDIO_POLICY_DEVICE_STATE_AVAILABLE) { // first list already open outputs that can be routed to this device Loading Loading @@ -3433,8 +3436,13 @@ status_t AudioPolicyManager::checkInputsForDevice(const sp<DeviceDescriptor> dev const String8 address) { audio_devices_t device = devDesc->type(); sp<AudioInputDescriptor> desc; if (audio_device_is_digital(device)) { // erase all current sample rates, formats and channel masks devDesc->clearCapabilities(); } if (state == AUDIO_POLICY_DEVICE_STATE_AVAILABLE) { // first list already open inputs that can be routed to this device for (size_t input_index = 0; input_index < mInputs.size(); input_index++) { Loading Loading
services/audiopolicy/common/managerdefinitions/include/AudioPort.h +1 −1 Original line number Diff line number Diff line Loading @@ -42,7 +42,7 @@ public: virtual void toAudioPort(struct audio_port *port) const; void importAudioPort(const sp<AudioPort> port); virtual void importAudioPort(const sp<AudioPort> port); void clearCapabilities(); void loadSamplingRates(char *name); Loading
services/audiopolicy/common/managerdefinitions/include/DeviceDescriptor.h +1 −0 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ public: virtual void attach(const sp<HwModule>& module); virtual void loadGains(cnode *root); virtual void toAudioPort(struct audio_port *port) const; virtual void importAudioPort(const sp<AudioPort> port); audio_port_handle_t getId() const; audio_devices_t type() const { return mDeviceType; } Loading
services/audiopolicy/common/managerdefinitions/src/AudioPort.cpp +0 −16 Original line number Diff line number Diff line Loading @@ -151,28 +151,12 @@ void AudioPort::importAudioPort(const sp<AudioPort> port) { } } } for (size_t k = 0 ; k < port->mGains.size() ; k++) { sp<AudioGain> gain = port->mGains.itemAt(k); if (gain != 0) { bool hasGain = false; for (size_t l = 0 ; l < mGains.size() ; l++) { if (gain == mGains.itemAt(l)) { hasGain = true; break; } } if (!hasGain) { // never import a gain twice mGains.add(gain); } } } } void AudioPort::clearCapabilities() { mChannelMasks.clear(); mFormats.clear(); mSamplingRates.clear(); mGains.clear(); } void AudioPort::loadSamplingRates(char *name) Loading
services/audiopolicy/common/managerdefinitions/src/DeviceDescriptor.cpp +7 −0 Original line number Diff line number Diff line Loading @@ -301,6 +301,13 @@ void DeviceDescriptor::toAudioPort(struct audio_port *port) const strncpy(port->ext.device.address, mAddress.string(), AUDIO_DEVICE_MAX_ADDRESS_LEN); } void DeviceDescriptor::importAudioPort(const sp<AudioPort> port) { AudioPort::importAudioPort(port); mSamplingRate = port->pickSamplingRate(); mFormat = port->pickFormat(); mChannelMask = port->pickChannelMask(); } status_t DeviceDescriptor::dump(int fd, int spaces, int index) const { const size_t SIZE = 256; Loading
services/audiopolicy/managerdefault/AudioPolicyManager.cpp +11 −3 Original line number Diff line number Diff line Loading @@ -3140,8 +3140,11 @@ status_t AudioPolicyManager::checkOutputsForDevice(const sp<DeviceDescriptor> de { audio_devices_t device = devDesc->type(); sp<SwAudioOutputDescriptor> desc; if (audio_device_is_digital(device)) { // erase all current sample rates, formats and channel masks devDesc->clearCapabilities(); } if (state == AUDIO_POLICY_DEVICE_STATE_AVAILABLE) { // first list already open outputs that can be routed to this device Loading Loading @@ -3433,8 +3436,13 @@ status_t AudioPolicyManager::checkInputsForDevice(const sp<DeviceDescriptor> dev const String8 address) { audio_devices_t device = devDesc->type(); sp<AudioInputDescriptor> desc; if (audio_device_is_digital(device)) { // erase all current sample rates, formats and channel masks devDesc->clearCapabilities(); } if (state == AUDIO_POLICY_DEVICE_STATE_AVAILABLE) { // first list already open inputs that can be routed to this device for (size_t input_index = 0; input_index < mInputs.size(); input_index++) { Loading