Skip to main content

Module analog_processor

Module analog_processor 

Source
Expand description

AnalogProcessor for EV_ABS event handling with deadzone filtering

This module provides analog stick processing with:

  • Deadzone filtering (values within deadzone return None)
  • Sensitivity adjustment (multiplier for output values)
  • Response curve application (Linear, Exponential)
  • Per-device calibration state tracking

§Processing Pipeline

  1. Deadzone Filter: If |value| < deadzone, return None (no event)
  2. Normalization: Map (deadzone, max) to (0, max)
  3. Sensitivity: Apply multiplier (default 1.0)
  4. Response Curve: Apply Linear or Exponential transformation

§Device Configurations

Each device has independent analog configuration:

  • deadzone: 0-32767 range (default ~14000 for ~43%)
  • sensitivity: 0.1-5.0 multiplier (default 1.0)
  • response_curve: Linear or Exponential

§Examples

let processor = AnalogProcessor::new();

// Process analog event
if let Some(processed) = processor.process_event("1532:0220", 61000, 25000).await {
    // Send processed value to macro engine
} else {
    // Value was filtered by deadzone
}

// Configure device
processor.set_deadzone("1532:0220", 16000).await;
processor.set_sensitivity("1532:0220", 1.5).await;

Structs§

AnalogProcessor
Analog processor for EV_ABS event handling
DeviceAnalogConfig
Per-device analog configuration
MouseVelocityConfig
Mouse velocity configuration for analog-to-mouse processing

Enums§

AnalogMode
Analog output mode determines how processed stick values are emitted
CameraOutput
Camera mode output value
CameraOutputMode
Camera mode output type (user-selectable)
Direction
Direction for D-pad emulation
DpadDirection
8-way D-pad direction for analog stick to D-pad conversion
DpadMode
D-pad emulation mode for analog sticks
ResponseCurve
Response curve type for analog processing

Constants§

MAX_ABS_VALUE
Maximum absolute value for evdev analog events

Functions§

camera_direction_to_keys
Convert D-pad direction to camera control keys
default_mouse_velocity_config
Default mouse velocity configuration
direction_to_key_code
Convert direction to arrow key code
dpad_direction_to_keys
Convert D-pad direction to Linux key codes
wasd_direction_to_keys
Convert D-pad direction to WASD key codes