Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 59ed83cc authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "audio policy: fix audio device properties loading"

parents 69545369 ed5b4342
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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); }

+1 −1
Original line number Diff line number Diff line
@@ -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;
+1 −1
Original line number Diff line number Diff line
@@ -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++) {
+4 −1
Original line number Diff line number Diff line
@@ -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);
}
+7 −3
Original line number Diff line number Diff line
@@ -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,