AudioFlinger: allow shared record audio history for fast capture

Enable shared audio history when a fast capture thread is present.
In this case, the fast capture thread is preserved but no fast record client
is allowed.

Bug: 186894758
Bug: 185972521
Test: atest AudioRecordSharedAudioTest
Change-Id: I78b11a35513c771e6966c533c2fd094c05a48ead
diff --git a/services/audioflinger/Threads.h b/services/audioflinger/Threads.h
index b6f7f24..65db986 100644
--- a/services/audioflinger/Threads.h
+++ b/services/audioflinger/Threads.h
@@ -338,7 +338,7 @@
     virtual     void        updateOutDevices(const DeviceDescriptorBaseVector& outDevices);
     virtual     void        toAudioPortConfig(struct audio_port_config *config) = 0;
 
-    virtual     void        resizeInputBuffer_l(int32_t maxSharedAudioHistoryMs = 0);
+    virtual     void        resizeInputBuffer_l(int32_t maxSharedAudioHistoryMs);
 
 
 
@@ -1717,7 +1717,7 @@
                                            audio_patch_handle_t *handle);
     virtual status_t    releaseAudioPatch_l(const audio_patch_handle_t handle);
             void        updateOutDevices(const DeviceDescriptorBaseVector& outDevices) override;
-            void        resizeInputBuffer_l(int32_t maxSharedAudioHistoryMs = 0) override;
+            void        resizeInputBuffer_l(int32_t maxSharedAudioHistoryMs) override;
 
             void        addPatchTrack(const sp<PatchRecord>& record);
             void        deletePatchTrack(const sp<PatchRecord>& record);
@@ -1862,6 +1862,7 @@
 
             DeviceDescriptorBaseVector          mOutDevices;
 
+            int32_t                             mMaxSharedAudioHistoryMs = 0;
             std::string                         mSharedAudioPackageName = {};
             int32_t                             mSharedAudioStartFrames = -1;
             audio_session_t                     mSharedAudioSessionId = AUDIO_SESSION_NONE;