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/IAfEffect.h b/services/audioflinger/IAfEffect.h
index 7c3be0f..75112ca 100644
--- a/services/audioflinger/IAfEffect.h
+++ b/services/audioflinger/IAfEffect.h
@@ -307,7 +307,7 @@
 public:
     static sp<IAfEffectHandle> create(
             const sp<IAfEffectBase>& effect,
-            const sp<RefBase /*AudioFlinger::Client */>& client,  // TODO(b/288339104) type
+            const sp<Client>& client,
             const sp<media::IEffectClient>& effectClient,
             int32_t priority, bool notifyFramesProcessed);
 
@@ -316,8 +316,7 @@
     virtual int id() const = 0;
     virtual wp<IAfEffectBase> effect() const = 0;
     virtual sp<android::media::IEffect> asIEffect() = 0;
-    // TODO(b/288339104) type
-    virtual sp<RefBase /* AudioFlinger::Client */> client() const = 0;
+    virtual const sp<Client>& client() const = 0;
 
 private:
     virtual void setControl(bool hasControl, bool signal, bool enabled) = 0;