Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 68ed412a authored by Andy Hung's avatar Andy Hung Committed by Automerger Merge Worker
Browse files

AudioFlinger: Use std::any for the event cookie am: ec6d5058

parents 169bf6d1 ec6d5058
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -8878,7 +8878,7 @@ void AudioFlinger::RecordThread::syncStartEventCallback(const wp<audioflinger::S
    sp<audioflinger::SyncEvent> strongEvent = event.promote();

    if (strongEvent != 0) {
        sp<RefBase> ptr = strongEvent->cookie().promote();
        sp<RefBase> ptr = std::any_cast<const wp<RefBase>>(strongEvent->cookie()).promote();
        if (ptr != 0) {
            RecordTrack *recordTrack = (RecordTrack *)ptr.get();
            recordTrack->handleSyncStartEvent(strongEvent);
+4 −3
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

#pragma once

#include <any>
#include <functional>
#include <mutex>

@@ -33,7 +34,7 @@ public:
              audio_session_t triggerSession,
              audio_session_t listenerSession,
              const SyncEventCallback& callBack,
              const wp<RefBase>& cookie)
              const std::any& cookie)
    : mType(type), mTriggerSession(triggerSession), mListenerSession(listenerSession),
      mCookie(cookie), mCallback(callBack)
    {}
@@ -56,13 +57,13 @@ public:
    AudioSystem::sync_event_t type() const { return mType; }
    audio_session_t triggerSession() const { return mTriggerSession; }
    audio_session_t listenerSession() const { return mListenerSession; }
    const wp<RefBase>& cookie() const { return mCookie; }
    const std::any& cookie() const { return mCookie; }

private:
      const AudioSystem::sync_event_t mType;
      const audio_session_t mTriggerSession;
      const audio_session_t mListenerSession;
      const wp<RefBase> mCookie;
      const std::any mCookie;
      mutable std::mutex mLock;
      SyncEventCallback mCallback GUARDED_BY(mLock);
};
+1 −1
Original line number Diff line number Diff line
@@ -55,7 +55,7 @@ TEST(MediaSyncEventTests, Basic) {
    ASSERT_EQ(type, syncEvent->type());
    ASSERT_EQ(triggerSession, syncEvent->triggerSession());
    ASSERT_EQ(listenerSession, syncEvent->listenerSession());
    ASSERT_EQ(cookie, syncEvent->cookie());
    ASSERT_EQ(cookie, std::any_cast<decltype(cookie)>(syncEvent->cookie()));
    ASSERT_FALSE(triggered);

    syncEvent->trigger();
+1 −0
Original line number Diff line number Diff line
@@ -57,6 +57,7 @@ TEST(SynchronizedRecordStateTests, Basic) {
    ASSERT_EQ(0, recordState.updateRecordFrames(1'000'000'000));
    ASSERT_FALSE(triggered);
    ASSERT_TRUE(syncEvent->isCancelled());
    ASSERT_EQ(cookie, std::any_cast<decltype(cookie)>(syncEvent->cookie()));

    // Check count down after track is complete.
    syncEvent = sp<SyncEvent>::make(