AudioFlinger: Extract TeePatch
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
Merged-In: I88576005a266fd6beeabec873a2d531a65dcf9fd
Change-Id: I88576005a266fd6beeabec873a2d531a65dcf9fd
diff --git a/services/audioflinger/IAfTrack.h b/services/audioflinger/IAfTrack.h
index 9ca13ca..cac8e40 100644
--- a/services/audioflinger/IAfTrack.h
+++ b/services/audioflinger/IAfTrack.h
@@ -19,10 +19,19 @@
namespace android {
class IAfDuplicatingThread;
+class IAfPatchRecord;
+class IAfPatchTrack;
class IAfPlaybackThread;
class IAfRecordThread;
class IAfThreadBase;
+struct TeePatch {
+ sp<IAfPatchRecord> patchRecord;
+ sp<IAfPatchTrack> patchTrack;
+};
+
+using TeePatches = std::vector<TeePatch>;
+
// Common interface to all Playback and Record tracks.
class IAfTrackBase : public virtual RefBase {
public:
@@ -325,9 +334,8 @@
// This function should be called with holding thread lock.
virtual void updateTeePatches_l() = 0;
- // TODO(b/288339104) type
- virtual void setTeePatchesToUpdate_l(
- const void* teePatchesToUpdate /* TeePatches& teePatchesToUpdate */) = 0;
+ // Argument teePatchesToUpdate is by value, use std::move to optimize.
+ virtual void setTeePatchesToUpdate_l(TeePatches teePatchesToUpdate) = 0;
static bool checkServerLatencySupported(audio_format_t format, audio_output_flags_t flags) {
return audio_is_linear_pcm(format) && (flags & AUDIO_OUTPUT_FLAG_HW_AV_SYNC) == 0;