From 78e9eddfb6bfbc6b103fc60c9831b23ef252886b Mon Sep 17 00:00:00 2001 From: outfoxxed Date: Tue, 8 Jul 2025 09:56:40 -0700 Subject: core: use new typed signals from hu (#10853) --- src/managers/input/Tablets.cpp | 66 ++++++++++++++++-------------------------- 1 file changed, 25 insertions(+), 41 deletions(-) (limited to 'src/managers/input/Tablets.cpp') diff --git a/src/managers/input/Tablets.cpp b/src/managers/input/Tablets.cpp index b0fe7c64..5a0c5dbe 100644 --- a/src/managers/input/Tablets.cpp +++ b/src/managers/input/Tablets.cpp @@ -229,12 +229,10 @@ void CInputManager::newTablet(SP pDevice) { g_pPointerManager->attachTablet(PNEWTABLET); - PNEWTABLET->m_events.destroy.registerStaticListener( - [this](void* owner, std::any d) { - auto TABLET = ((CTablet*)owner)->m_self; - destroyTablet(TABLET.lock()); - }, - PNEWTABLET.get()); + PNEWTABLET->m_events.destroy.listenStatic([this, tablet = PNEWTABLET.get()] { + auto TABLET = tablet->m_self; + destroyTablet(TABLET.lock()); + }); setTabletConfigs(); } @@ -255,12 +253,10 @@ SP CInputManager::ensureTabletToolPresent(SPm_events.destroy.registerStaticListener( - [this](void* owner, std::any d) { - auto TOOL = ((CTabletTool*)owner)->m_self; - destroyTabletTool(TOOL.lock()); - }, - PTOOL.get()); + PTOOL->m_events.destroy.listenStatic([this, tool = PTOOL.get()] { + auto TOOL = tool->m_self; + destroyTabletTool(TOOL.lock()); + }); return PTOOL; } @@ -275,39 +271,27 @@ void CInputManager::newTabletPad(SP pDevice) { Debug::log(ERR, "Pad had no name???"); // logic error } - // clang-format off - PNEWPAD->m_events.destroy.registerStaticListener([this](void* owner, std::any d) { - auto PAD = ((CTabletPad*)owner)->m_self; + PNEWPAD->m_events.destroy.listenStatic([this, pad = PNEWPAD.get()] { + auto PAD = pad->m_self; destroyTabletPad(PAD.lock()); - }, PNEWPAD.get()); + }); - PNEWPAD->m_padEvents.button.registerStaticListener([](void* owner, std::any e) { - const auto E = std::any_cast(e); - const auto PPAD = ((CTabletPad*)owner)->m_self.lock(); + PNEWPAD->m_padEvents.button.listenStatic([pad = PNEWPAD.get()](const CTabletPad::SButtonEvent& event) { + const auto PPAD = pad->m_self.lock(); - PROTO::tablet->mode(PPAD, 0, E.mode, E.timeMs); - PROTO::tablet->buttonPad(PPAD, E.button, E.timeMs, E.down); - }, PNEWPAD.get()); + PROTO::tablet->mode(PPAD, 0, event.mode, event.timeMs); + PROTO::tablet->buttonPad(PPAD, event.button, event.timeMs, event.down); + }); - PNEWPAD->m_padEvents.strip.registerStaticListener([](void* owner, std::any e) { - const auto E = std::any_cast(e); - const auto PPAD = ((CTabletPad*)owner)->m_self.lock(); + PNEWPAD->m_padEvents.strip.listenStatic([pad = PNEWPAD.get()](const CTabletPad::SStripEvent& event) { + const auto PPAD = pad->m_self.lock(); + PROTO::tablet->strip(PPAD, event.strip, event.position, event.finger, event.timeMs); + }); - PROTO::tablet->strip(PPAD, E.strip, E.position, E.finger, E.timeMs); - }, PNEWPAD.get()); + PNEWPAD->m_padEvents.ring.listenStatic([pad = PNEWPAD.get()](const CTabletPad::SRingEvent& event) { + const auto PPAD = pad->m_self.lock(); + PROTO::tablet->ring(PPAD, event.ring, event.position, event.finger, event.timeMs); + }); - PNEWPAD->m_padEvents.ring.registerStaticListener([](void* owner, std::any e) { - const auto E = std::any_cast(e); - const auto PPAD = ((CTabletPad*)owner)->m_self.lock(); - - PROTO::tablet->ring(PPAD, E.ring, E.position, E.finger, E.timeMs); - }, PNEWPAD.get()); - - PNEWPAD->m_padEvents.attach.registerStaticListener([](void* owner, std::any e) { - const auto PPAD = ((CTabletPad*)owner)->m_self.lock(); - const auto TOOL = std::any_cast>(e); - - PPAD->m_parent = TOOL; - }, PNEWPAD.get()); - // clang-format on + PNEWPAD->m_padEvents.attach.listenStatic([pad = PNEWPAD.get()](const SP& tool) { pad->m_parent = tool; }); } -- cgit v1.2.3