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

Commit 5a61d2f2 authored by Dima Zavin's avatar Dima Zavin
Browse files

audioflinger: don't do work in constructor, instead do it in onFirstRef



Change-Id: I22d9e01821816c3beb52b014330386c7fd2f0411
Signed-off-by: default avatarDima Zavin <dima@android.com>
parent 799a70e7
Loading
Loading
Loading
Loading
+13 −2
Original line number Diff line number Diff line
@@ -171,6 +171,10 @@ static const char *audio_interfaces[] = {
AudioFlinger::AudioFlinger()
    : BnAudioFlinger(),
        mPrimaryHardwareDev(0), mMasterVolume(1.0f), mMasterMute(false), mNextUniqueId(1)
{
}

void AudioFlinger::onFirstRef()
{
    int rc = 0;

@@ -194,8 +198,7 @@ AudioFlinger::AudioFlinger()
        if (!mPrimaryHardwareDev) {
            mPrimaryHardwareDev = dev;
            LOGI("Using '%s' (%s.%s) as the primary audio interface",
                 AUDIO_HARDWARE_INTERFACE, mod->name, mod->id,
                 audio_interfaces[i]);
                 mod->name, mod->id, audio_interfaces[i]);
        }
    }

@@ -224,6 +227,14 @@ AudioFlinger::AudioFlinger()
    }
}

status_t AudioFlinger::initCheck() const
{
    Mutex::Autolock _l(mLock);
    if (mPrimaryHardwareDev == NULL || mAudioHwDevs.size() == 0)
        return NO_INIT;
    return NO_ERROR;
}

AudioFlinger::~AudioFlinger()
{
    int num_devs = mAudioHwDevs.size();
+2 −0
Original line number Diff line number Diff line
@@ -212,6 +212,8 @@ private:
                            AudioFlinger();
    virtual                 ~AudioFlinger();

    status_t                initCheck() const;
    virtual     void        onFirstRef();
    audio_hw_device_t*      findSuitableHwDev_l(uint32_t devices);

    // Internal dump utilites.