From b7a226b66e09ce75a6c837079b1dff5193fd3922 Mon Sep 17 00:00:00 2001 From: Samuel Rodríguez Pérez Date: Fri, 14 Nov 2025 11:19:46 +0000 Subject: [PATCH] input mouse mm: Fix tracing, trace all methods and add destructor - Fix tracing when TRACE_MOVEMENT_MAKER is defined. This seems to be a leftover from the migration of movement_maker.cpp from kernel to user space at hrev56293. - Improve tracing by adding a call per method When tracing is enabled, the class name and the function method is provided to trace every method call by using new CALLER helper macro. - Add destructor as well to improve tracing. Change-Id: I60b49b1d83a8abeb3ba6835d0e303f1b28dde90a Reviewed-on: https://review.haiku-os.org/c/haiku/+/9909 Tested-by: Commit checker robot Reviewed-by: Adrien Destugues --- src/add-ons/input_server/devices/mouse/movement_maker.cpp | 40 +++++++++++++++++++++++++++++++++++++--- src/add-ons/input_server/devices/mouse/movement_maker.h | 1 + 2 files changed, 37 insertions(+), 4 deletions(-) diff --git a/src/add-ons/input_server/devices/mouse/movement_maker.cpp b/src/add-ons/input_server/devices/mouse/movement_maker.cpp index 3f94a3e..948285b 100644 --- a/src/add-ons/input_server/devices/mouse/movement_maker.cpp +++ b/src/add-ons/input_server/devices/mouse/movement_maker.cpp @@ -22,14 +22,14 @@ #include #include -#include - //#define TRACE_MOVEMENT_MAKER #ifdef TRACE_MOVEMENT_MAKER -# define TRACE(x...) dprintf(x) + #define TRACE(x...) debug_printf(x) + #define CALLED(x...) TRACE("CALLED %s", __PRETTY_FUNCTION__) #else -# define TRACE(x...) + #define TRACE(x...) + #define CALLED(x...) #endif @@ -48,6 +48,8 @@ void MovementMaker::SetSettings(const touchpad_settings& settings) { + CALLED(); + fSettings = settings; } @@ -55,6 +57,8 @@ void MovementMaker::SetSpecs(const touchpad_specs& specs) { + CALLED(); + fSpecs = specs; fAreaWidth = fSpecs.areaEndX - fSpecs.areaStartX; @@ -69,6 +73,8 @@ void MovementMaker::StartNewMovment() { + CALLED(); + if (fSettings.scroll_xstepsize <= 0) fSettings.scroll_xstepsize = 1; if (fSettings.scroll_ystepsize <= 0) @@ -83,6 +89,8 @@ void MovementMaker::GetMovement(uint32 posX, uint32 posY) { + CALLED(); + _GetRawMovement(posX, posY); } @@ -90,6 +98,8 @@ void MovementMaker::GetScrolling(uint32 posX, uint32 posY) { + CALLED(); + int32 stepsX = 0, stepsY = 0; int32 directionMultiplier = fSettings.scroll_reverse ? -1 : 1; @@ -125,6 +135,8 @@ void MovementMaker::_GetRawMovement(uint32 posX, uint32 posY) { + CALLED(); + // calibrated on the synaptics touchpad posX = posX * SYN_WIDTH / fAreaWidth; posY = posY * SYN_HEIGHT / fAreaHeight; @@ -196,6 +208,8 @@ void MovementMaker::_ComputeAcceleration(int8 accel_factor) { + CALLED(); + // acceleration float acceleration = 1; if (accel_factor != 0) { @@ -216,11 +230,17 @@ TouchpadMovement::TouchpadMovement() { + CALLED(); + fMovementStarted = false; fScrollingStarted = false; fTapStarted = false; fValidEdgeMotion = false; fDoubleClick = false; +} + +TouchpadMovement::~TouchpadMovement() { + CALLED(); } @@ -228,6 +248,8 @@ TouchpadMovement::EventToMovement(const touchpad_movement* event, mouse_movement* movement, bigtime_t& repeatTimeout) { + CALLED(); + if (!movement) return B_ERROR; @@ -288,6 +310,8 @@ TouchpadMovement::_EdgeMotion(const touchpad_movement *event, mouse_movement *movement, bool validStart) { + CALLED(); + float xdelta = 0; float ydelta = 0; @@ -347,6 +371,8 @@ void TouchpadMovement::_UpdateButtons(mouse_movement *movement) { + CALLED(); + // set click count correctly according to double click timeout if (movement->buttons != 0 && fButtonsState == 0) { if (fClickLastTime + click_speed > movement->timestamp) @@ -368,6 +394,8 @@ TouchpadMovement::_NoTouchToMovement(const touchpad_movement *event, mouse_movement *movement) { + CALLED(); + uint32 buttons = event->buttons; if (fMovementStarted) @@ -420,6 +448,8 @@ void TouchpadMovement::_MoveToMovement(const touchpad_movement *event, mouse_movement *movement) { + CALLED(); + bool isStartOfMovement = false; float pressure = 0; @@ -478,6 +508,8 @@ TouchpadMovement::_CheckScrollingToMovement(const touchpad_movement *event, mouse_movement *movement) { + CALLED(); + bool isSideScrollingV = false; bool isSideScrollingH = false; diff --git a/src/add-ons/input_server/devices/mouse/movement_maker.h b/src/add-ons/input_server/devices/mouse/movement_maker.h index bd434fa..79baeae 100644 --- a/src/add-ons/input_server/devices/mouse/movement_maker.h +++ b/src/add-ons/input_server/devices/mouse/movement_maker.h @@ -63,6 +63,7 @@ class TouchpadMovement : public MovementMaker { public: TouchpadMovement(); + virtual ~TouchpadMovement(); status_t EventToMovement(const touchpad_movement *event, mouse_movement *movement, bigtime_t &repeatTimeout); -- gitore 0.2.2