AudioFlinger: Add Track interfaces

Add new interfaces

IAfTrackBase
IAfTrack
IAfOutputTrack
IAfMmapTrack
IAfRecordTrack

Test: atest audiorecord_tests audiotrack_tests audiorouting_tests trackplayerbase_tests audiosystem_tests
Test: atest AudioTrackTest AudioRecordTest
Test: YouTube Camera
Bug: 288339104
Bug: 288468076
Change-Id: Iee8fd68fcd1c430da09b11d68a57fc62ba4c6f75
diff --git a/services/audioflinger/AudioFlinger.h b/services/audioflinger/AudioFlinger.h
index d459e62..b66154f 100644
--- a/services/audioflinger/AudioFlinger.h
+++ b/services/audioflinger/AudioFlinger.h
@@ -122,6 +122,7 @@
 
 // include AudioFlinger component interfaces
 #include "IAfEffect.h"
+#include "IAfTrack.h"
 
 namespace android {
 
@@ -398,7 +399,7 @@
                                         audio_session_t triggerSession,
                                         audio_session_t listenerSession,
                                         const audioflinger::SyncEventCallback& callBack,
-                                        const wp<RefBase>& cookie);
+                                        const wp<IAfTrackBase>& cookie);
 
     bool        btNrecIsOff() const { return mBtNrecIsOff.load(); }
 
@@ -733,7 +734,7 @@
               ThreadBase *hapticPlaybackThread_l() const;
 
               void updateSecondaryOutputsForTrack_l(
-                      PlaybackThread::Track* track,
+                      IAfTrack* track,
                       PlaybackThread* thread,
                       const std::vector<audio_io_handle_t>& secondaryOutputs) const;