Merge "audio policy: fix audio device properties loading"

gugelfrei
Treehugger Robot 7 years ago committed by Gerrit Code Review
commit 59ed83cc16

@ -71,7 +71,7 @@ public:
virtual void toAudioPort(struct audio_port *port) const;
virtual void importAudioPort(const sp<AudioPort>& port);
virtual void importAudioPort(const sp<AudioPort>& port, bool force = false);
void addAudioProfile(const sp<AudioProfile> &profile) { mProfiles.add(profile); }

@ -48,7 +48,7 @@ public:
// AudioPort
virtual void attach(const sp<HwModule>& module);
virtual void toAudioPort(struct audio_port *port) const;
virtual void importAudioPort(const sp<AudioPort>& port);
virtual void importAudioPort(const sp<AudioPort>& port, bool force = false);
audio_port_handle_t getId() const;
status_t dump(int fd, int spaces, int index, bool verbose = true) const;

@ -128,7 +128,7 @@ void AudioPort::toAudioPort(struct audio_port *port) const
port->num_gains = i;
}
void AudioPort::importAudioPort(const sp<AudioPort>& port)
void AudioPort::importAudioPort(const sp<AudioPort>& port, bool force __unused)
{
size_t indexToImport;
for (indexToImport = 0; indexToImport < port->mProfiles.size(); indexToImport++) {

@ -263,7 +263,10 @@ 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) {
void DeviceDescriptor::importAudioPort(const sp<AudioPort>& port, bool force) {
if (!force && !port->hasDynamicAudioProfile()) {
return;
}
AudioPort::importAudioPort(port);
port->pickAudioProfile(mSamplingRate, mChannelMask, mFormat);
}

@ -3647,7 +3647,7 @@ AudioPolicyManager::AudioPolicyManager(AudioPolicyClientInterface *clientInterfa
sp<DeviceDescriptor> devDesc = mAvailableInputDevices[index];
if (!devDesc->isAttached()) {
devDesc->attach(mHwModules[i]);
devDesc->importAudioPort(inProfile);
devDesc->importAudioPort(inProfile, true);
}
}
}
@ -4010,8 +4010,8 @@ status_t AudioPolicyManager::checkOutputsForDevice(const sp<DeviceDescriptor>& d
continue;
}
ALOGV("opening output for device %08x with params %s profile %p",
device, address.string(), profile.get());
ALOGV("opening output for device %08x with params %s profile %p name %s",
device, address.string(), profile.get(), profile->getName().string());
desc = new SwAudioOutputDescriptor(profile, mpClientInterface);
desc->mDevice = device;
audio_config_t config = AUDIO_CONFIG_INITIALIZER;
@ -4260,6 +4260,10 @@ status_t AudioPolicyManager::checkInputsForDevice(const sp<DeviceDescriptor>& de
config.channel_mask = desc->mChannelMask;
config.format = desc->mFormat;
audio_io_handle_t input = AUDIO_IO_HANDLE_NONE;
ALOGV("opening inputput for device %08x with params %s profile %p name %s",
desc->mDevice, address.string(), profile.get(), profile->getName().string());
status_t status = mpClientInterface->openInput(profile->getModuleHandle(),
&input,
&config,

Loading…
Cancel
Save