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 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); } void addAudioProfile(const sp<AudioProfile> &profile) { mProfiles.add(profile); }

@ -48,7 +48,7 @@ public:
// AudioPort // AudioPort
virtual void attach(const sp<HwModule>& module); virtual void attach(const sp<HwModule>& module);
virtual void toAudioPort(struct audio_port *port) const; 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; audio_port_handle_t getId() const;
status_t dump(int fd, int spaces, int index, bool verbose = true) 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; port->num_gains = i;
} }
void AudioPort::importAudioPort(const sp<AudioPort>& port) void AudioPort::importAudioPort(const sp<AudioPort>& port, bool force __unused)
{ {
size_t indexToImport; size_t indexToImport;
for (indexToImport = 0; indexToImport < port->mProfiles.size(); 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); 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); AudioPort::importAudioPort(port);
port->pickAudioProfile(mSamplingRate, mChannelMask, mFormat); port->pickAudioProfile(mSamplingRate, mChannelMask, mFormat);
} }

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

Loading…
Cancel
Save