AudioFlinger: Extract DeviceEffectManager class

Test: atest audiorecord_tests audiotrack_tests audiorouting_tests trackplayerbase_tests audiosystem_tests
Test: atest AAudioTests AudioTrackOffloadTest
Test: atest AudioTrackTest AudioRecordTest
Test: YouTube Camera
Bug: 288339104
Change-Id: Ica9b4df3dc148310d1dc03d0dab86db56c20475d
diff --git a/services/audioflinger/AudioFlinger.h b/services/audioflinger/AudioFlinger.h
index 1672658..09edb29 100644
--- a/services/audioflinger/AudioFlinger.h
+++ b/services/audioflinger/AudioFlinger.h
@@ -131,6 +131,7 @@
 
 // Classes that depend on IAf* interfaces but are not cross-dependent.
 #include "PatchCommandThread.h"
+#include "DeviceEffectManager.h"
 
 namespace android {
 
@@ -163,6 +164,8 @@
 {
     friend class sp<AudioFlinger>;
     friend class Client; // removeClient_l();
+    friend class DeviceEffectManager;
+    friend class DeviceEffectManagerCallback;
     friend class PatchPanel;
     // TODO(b/291012167) replace the Thread friends with an interface.
     friend class DirectOutputThread;
@@ -579,18 +582,12 @@
     void requestLogMerge();
 
     // TODO(b/288339104) replace these forward declaration classes with interfaces.
-    class DeviceEffectManager;
-    // TODO(b/288339104) these should be separate files
-public:
-    class DeviceEffectManagerCallback;
 private:
     struct TeePatch;
 public:
     using TeePatches = std::vector<TeePatch>;
 private:
 
-#include "DeviceEffectManager.h"
-
 #include "MelReporter.h"
 
     // Find io handle by session id.