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

Commit 6a19bb95 authored by Andy Hung's avatar Andy Hung
Browse files

AudioFlinger: Update Client class includes

Test: atest AudioRecordTest AudioTrackTest
Test: Camera YouTube
Bug: 292018229
Merged-In: I80d3abcc7047adbc736773d3171d899238aaaebd
Change-Id: I80d3abcc7047adbc736773d3171d899238aaaebd
parent 3bca9e7c
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -149,6 +149,7 @@ cc_library_shared {

    srcs: [
        "AudioFlinger.cpp",
        "Client.cpp",
        "DeviceEffectManager.cpp",
        "Effects.cpp",
        "MelReporter.cpp",
+0 −21
Original line number Diff line number Diff line
@@ -2308,27 +2308,6 @@ sp<IAfThreadBase> AudioFlinger::getEffectThread_l(audio_session_t sessionId,
    return thread;
}



// ----------------------------------------------------------------------------

Client::Client(const sp<IAfClientCallback>& afClientCallback, pid_t pid)
    :   RefBase(),
        mAfClientCallback(afClientCallback),
        mPid(pid),
        mClientAllocator(AllocatorFactory::getClientAllocator()) {}

// Client destructor must be called with AudioFlinger::mClientLock held
Client::~Client()
{
    mAfClientCallback->removeClient_l(mPid);
}

AllocatorFactory::ClientAllocator& Client::allocator()
{
    return mClientAllocator;
}

// ----------------------------------------------------------------------------

AudioFlinger::NotificationClient::NotificationClient(const sp<AudioFlinger>& audioFlinger,
+37 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2023 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#include "Client.h"

namespace android {

Client::Client(const sp<IAfClientCallback>& afClientCallback, pid_t pid)
    : mAfClientCallback(afClientCallback)
    , mPid(pid)
    , mClientAllocator(AllocatorFactory::getClientAllocator()) {}

// Client destructor must be called with AudioFlinger::mClientLock held
Client::~Client()
{
    mAfClientCallback->removeClient_l(mPid);
}

AllocatorFactory::ClientAllocator& Client::allocator()
{
    return mClientAllocator;
}

}   // namespace android
 No newline at end of file
+6 −1
Original line number Diff line number Diff line
@@ -16,6 +16,11 @@

#pragma once

#include <afutils/AllocatorFactory.h>
#include <android-base/macros.h>  // DISALLOW_COPY_AND_ASSIGN
#include <utils/Mutex.h>
#include <utils/RefBase.h>        // avoid transitive dependency

// TODO(b/291318727) Move to nested namespace
namespace android {

@@ -29,7 +34,7 @@ public:
    virtual status_t moveAuxEffectToIo(
            int effectId,
            const sp<IAfPlaybackThread>& dstThread,
            sp<IAfPlaybackThread>* srcThread) = 0;
            sp<IAfPlaybackThread>* srcThread) = 0;  // used by indirectly by clients.
};

class Client : public RefBase {