AudioFlinger: Extract MelReporter 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: I4bd74a19d3ca95ea1dc45a80bca6eb242a11fe3c
diff --git a/services/audioflinger/AudioFlinger.h b/services/audioflinger/AudioFlinger.h
index 09edb29..8b29837 100644
--- a/services/audioflinger/AudioFlinger.h
+++ b/services/audioflinger/AudioFlinger.h
@@ -132,6 +132,7 @@
 // Classes that depend on IAf* interfaces but are not cross-dependent.
 #include "PatchCommandThread.h"
 #include "DeviceEffectManager.h"
+#include "MelReporter.h"
 
 namespace android {
 
@@ -166,6 +167,7 @@
     friend class Client; // removeClient_l();
     friend class DeviceEffectManager;
     friend class DeviceEffectManagerCallback;
+    friend class MelReporter;
     friend class PatchPanel;
     // TODO(b/291012167) replace the Thread friends with an interface.
     friend class DirectOutputThread;
@@ -588,8 +590,6 @@
     using TeePatches = std::vector<TeePatch>;
 private:
 
-#include "MelReporter.h"
-
     // Find io handle by session id.
     // Preference is given to an io handle with a matching effect chain to session id.
     // If none found, AUDIO_IO_HANDLE_NONE is returned.