AudioFlinger: Extract inner Client class

Test: atest audiorecord_tests audiotrack_tests audiorouting_tests trackplayerbase_tests audiosystem_tests
Test: atest AudioTrackTest AudioRecordTest
Test: YouTube and Camera
Bug: 288339104
Bug: 289135349
Change-Id: I5b2973c12b3d36663fadd2e5ed362602785e1447
diff --git a/services/audioflinger/Effects.h b/services/audioflinger/Effects.h
index 2d8775b..07790be 100644
--- a/services/audioflinger/Effects.h
+++ b/services/audioflinger/Effects.h
@@ -290,7 +290,7 @@
 public:
 
     EffectHandle(const sp<IAfEffectBase>& effect,
-            const sp<AudioFlinger::Client>& client,
+            const sp<Client>& client,
             const sp<media::IEffectClient>& effectClient,
             int32_t priority, bool notifyFramesProcessed);
     ~EffectHandle() override;
@@ -311,8 +311,7 @@
     android::binder::Status getConfig(media::EffectConfig* _config,
                                       int32_t* _aidl_return) final;
 
-    // TODO(b/288339104) type
-    sp<RefBase /* AudioFlinger::Client */> client() const final { return mClient; }
+    const sp<Client>& client() const final { return mClient; }
 
     sp<android::media::IEffect> asIEffect() final {
         return sp<android::media::IEffect>::fromExisting(this);
@@ -357,7 +356,7 @@
     Mutex mLock;                             // protects IEffect method calls
     const wp<IAfEffectBase> mEffect;               // pointer to controlled EffectModule
     const sp<media::IEffectClient> mEffectClient;  // callback interface for client notifications
-    /*const*/ sp<AudioFlinger::Client> mClient;    // client for shared memory allocation, see
+    /*const*/ sp<Client> mClient;            // client for shared memory allocation, see
                                              //   disconnect()
     sp<IMemory> mCblkMemory;                 // shared memory for control block
     effect_param_cblk_t* mCblk;              // control block for deferred parameter setting via