Loading include/ftl/flags.h +2 −2 Original line number Original line Diff line number Diff line Loading @@ -125,7 +125,7 @@ public: /* Tests whether all of the given flags are set */ /* Tests whether all of the given flags are set */ bool all(Flags<F> f) const { return (mFlags & f.mFlags) == f.mFlags; } bool all(Flags<F> f) const { return (mFlags & f.mFlags) == f.mFlags; } Flags<F> operator|(Flags<F> rhs) const { return static_cast<F>(mFlags | rhs.mFlags); } constexpr Flags<F> operator|(Flags<F> rhs) const { return static_cast<F>(mFlags | rhs.mFlags); } Flags<F>& operator|=(Flags<F> rhs) { Flags<F>& operator|=(Flags<F> rhs) { mFlags = mFlags | rhs.mFlags; mFlags = mFlags | rhs.mFlags; return *this; return *this; Loading Loading @@ -217,7 +217,7 @@ inline Flags<F> operator~(F f) { } } template <typename F, typename = std::enable_if_t<is_scoped_enum_v<F>>> template <typename F, typename = std::enable_if_t<is_scoped_enum_v<F>>> Flags<F> operator|(F lhs, F rhs) { constexpr Flags<F> operator|(F lhs, F rhs) { return static_cast<F>(to_underlying(lhs) | to_underlying(rhs)); return static_cast<F>(to_underlying(lhs) | to_underlying(rhs)); } } Loading services/inputflinger/dispatcher/Android.bp +1 −0 Original line number Original line Diff line number Diff line Loading @@ -46,6 +46,7 @@ filegroup { "LatencyAggregator.cpp", "LatencyAggregator.cpp", "LatencyTracker.cpp", "LatencyTracker.cpp", "Monitor.cpp", "Monitor.cpp", "TouchedWindow.cpp", "TouchState.cpp", "TouchState.cpp", ], ], } } Loading services/inputflinger/dispatcher/Entry.cpp +2 −1 Original line number Original line Diff line number Diff line Loading @@ -308,7 +308,8 @@ std::string SensorEntry::getDescription() const { volatile int32_t DispatchEntry::sNextSeqAtomic; volatile int32_t DispatchEntry::sNextSeqAtomic; DispatchEntry::DispatchEntry(std::shared_ptr<EventEntry> eventEntry, int32_t targetFlags, DispatchEntry::DispatchEntry(std::shared_ptr<EventEntry> eventEntry, ftl::Flags<InputTarget::Flags> targetFlags, const ui::Transform& transform, const ui::Transform& rawTransform, const ui::Transform& transform, const ui::Transform& rawTransform, float globalScaleFactor) float globalScaleFactor) : seq(nextSeq()), : seq(nextSeq()), Loading services/inputflinger/dispatcher/Entry.h +8 −6 Original line number Original line Diff line number Diff line Loading @@ -223,7 +223,7 @@ struct DispatchEntry { const uint32_t seq; // unique sequence number, never 0 const uint32_t seq; // unique sequence number, never 0 std::shared_ptr<EventEntry> eventEntry; // the event to dispatch std::shared_ptr<EventEntry> eventEntry; // the event to dispatch int32_t targetFlags; ftl::Flags<InputTarget::Flags> targetFlags; ui::Transform transform; ui::Transform transform; ui::Transform rawTransform; ui::Transform rawTransform; float globalScaleFactor; float globalScaleFactor; Loading @@ -238,13 +238,15 @@ struct DispatchEntry { int32_t resolvedAction; int32_t resolvedAction; int32_t resolvedFlags; int32_t resolvedFlags; DispatchEntry(std::shared_ptr<EventEntry> eventEntry, int32_t targetFlags, DispatchEntry(std::shared_ptr<EventEntry> eventEntry, const ui::Transform& transform, const ui::Transform& rawTransform, ftl::Flags<InputTarget::Flags> targetFlags, const ui::Transform& transform, float globalScaleFactor); const ui::Transform& rawTransform, float globalScaleFactor); inline bool hasForegroundTarget() const { return targetFlags & InputTarget::FLAG_FOREGROUND; } inline bool hasForegroundTarget() const { return targetFlags.test(InputTarget::Flags::FOREGROUND); } inline bool isSplit() const { return targetFlags & InputTarget::FLAG_SPLIT; } inline bool isSplit() const { return targetFlags.test(InputTarget::Flags::SPLIT); } private: private: static volatile int32_t sNextSeqAtomic; static volatile int32_t sNextSeqAtomic; Loading Loading
include/ftl/flags.h +2 −2 Original line number Original line Diff line number Diff line Loading @@ -125,7 +125,7 @@ public: /* Tests whether all of the given flags are set */ /* Tests whether all of the given flags are set */ bool all(Flags<F> f) const { return (mFlags & f.mFlags) == f.mFlags; } bool all(Flags<F> f) const { return (mFlags & f.mFlags) == f.mFlags; } Flags<F> operator|(Flags<F> rhs) const { return static_cast<F>(mFlags | rhs.mFlags); } constexpr Flags<F> operator|(Flags<F> rhs) const { return static_cast<F>(mFlags | rhs.mFlags); } Flags<F>& operator|=(Flags<F> rhs) { Flags<F>& operator|=(Flags<F> rhs) { mFlags = mFlags | rhs.mFlags; mFlags = mFlags | rhs.mFlags; return *this; return *this; Loading Loading @@ -217,7 +217,7 @@ inline Flags<F> operator~(F f) { } } template <typename F, typename = std::enable_if_t<is_scoped_enum_v<F>>> template <typename F, typename = std::enable_if_t<is_scoped_enum_v<F>>> Flags<F> operator|(F lhs, F rhs) { constexpr Flags<F> operator|(F lhs, F rhs) { return static_cast<F>(to_underlying(lhs) | to_underlying(rhs)); return static_cast<F>(to_underlying(lhs) | to_underlying(rhs)); } } Loading
services/inputflinger/dispatcher/Android.bp +1 −0 Original line number Original line Diff line number Diff line Loading @@ -46,6 +46,7 @@ filegroup { "LatencyAggregator.cpp", "LatencyAggregator.cpp", "LatencyTracker.cpp", "LatencyTracker.cpp", "Monitor.cpp", "Monitor.cpp", "TouchedWindow.cpp", "TouchState.cpp", "TouchState.cpp", ], ], } } Loading
services/inputflinger/dispatcher/Entry.cpp +2 −1 Original line number Original line Diff line number Diff line Loading @@ -308,7 +308,8 @@ std::string SensorEntry::getDescription() const { volatile int32_t DispatchEntry::sNextSeqAtomic; volatile int32_t DispatchEntry::sNextSeqAtomic; DispatchEntry::DispatchEntry(std::shared_ptr<EventEntry> eventEntry, int32_t targetFlags, DispatchEntry::DispatchEntry(std::shared_ptr<EventEntry> eventEntry, ftl::Flags<InputTarget::Flags> targetFlags, const ui::Transform& transform, const ui::Transform& rawTransform, const ui::Transform& transform, const ui::Transform& rawTransform, float globalScaleFactor) float globalScaleFactor) : seq(nextSeq()), : seq(nextSeq()), Loading
services/inputflinger/dispatcher/Entry.h +8 −6 Original line number Original line Diff line number Diff line Loading @@ -223,7 +223,7 @@ struct DispatchEntry { const uint32_t seq; // unique sequence number, never 0 const uint32_t seq; // unique sequence number, never 0 std::shared_ptr<EventEntry> eventEntry; // the event to dispatch std::shared_ptr<EventEntry> eventEntry; // the event to dispatch int32_t targetFlags; ftl::Flags<InputTarget::Flags> targetFlags; ui::Transform transform; ui::Transform transform; ui::Transform rawTransform; ui::Transform rawTransform; float globalScaleFactor; float globalScaleFactor; Loading @@ -238,13 +238,15 @@ struct DispatchEntry { int32_t resolvedAction; int32_t resolvedAction; int32_t resolvedFlags; int32_t resolvedFlags; DispatchEntry(std::shared_ptr<EventEntry> eventEntry, int32_t targetFlags, DispatchEntry(std::shared_ptr<EventEntry> eventEntry, const ui::Transform& transform, const ui::Transform& rawTransform, ftl::Flags<InputTarget::Flags> targetFlags, const ui::Transform& transform, float globalScaleFactor); const ui::Transform& rawTransform, float globalScaleFactor); inline bool hasForegroundTarget() const { return targetFlags & InputTarget::FLAG_FOREGROUND; } inline bool hasForegroundTarget() const { return targetFlags.test(InputTarget::Flags::FOREGROUND); } inline bool isSplit() const { return targetFlags & InputTarget::FLAG_SPLIT; } inline bool isSplit() const { return targetFlags.test(InputTarget::Flags::SPLIT); } private: private: static volatile int32_t sNextSeqAtomic; static volatile int32_t sNextSeqAtomic; Loading