tablet: implement version 2
This commit is contained in:
parent
1d017ec2c2
commit
dee0066f1a
25 changed files with 426 additions and 31 deletions
|
|
@ -12,13 +12,13 @@ use {
|
|||
Axis120, AxisFrame, AxisInverted, AxisPx, AxisSource, AxisStop, Button, HoldBegin,
|
||||
HoldEnd, Key, Modifiers, PinchBegin, PinchEnd, PinchUpdate, PointerAbs, PointerRel,
|
||||
SwipeBegin, SwipeEnd, SwipeUpdate, SwitchEvent, TabletPadButton,
|
||||
TabletPadModeSwitch, TabletPadRingAngle, TabletPadRingFrame, TabletPadRingSource,
|
||||
TabletPadRingStop, TabletPadStripFrame, TabletPadStripPosition,
|
||||
TabletPadStripSource, TabletPadStripStop, TabletToolButton, TabletToolDistance,
|
||||
TabletToolDown, TabletToolFrame, TabletToolMotion, TabletToolPressure,
|
||||
TabletToolProximityIn, TabletToolProximityOut, TabletToolRotation,
|
||||
TabletToolSlider, TabletToolTilt, TabletToolUp, TabletToolWheel, TouchCancel,
|
||||
TouchDown, TouchMotion, TouchUp,
|
||||
TabletPadDialDelta, TabletPadDialFrame, TabletPadModeSwitch, TabletPadRingAngle,
|
||||
TabletPadRingFrame, TabletPadRingSource, TabletPadRingStop, TabletPadStripFrame,
|
||||
TabletPadStripPosition, TabletPadStripSource, TabletPadStripStop, TabletToolButton,
|
||||
TabletToolDistance, TabletToolDown, TabletToolFrame, TabletToolMotion,
|
||||
TabletToolPressure, TabletToolProximityIn, TabletToolProximityOut,
|
||||
TabletToolRotation, TabletToolSlider, TabletToolTilt, TabletToolUp,
|
||||
TabletToolWheel, TouchCancel, TouchDown, TouchMotion, TouchUp,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
@ -82,6 +82,11 @@ pub struct PendingTabletPadRing {
|
|||
stop: bool,
|
||||
}
|
||||
|
||||
#[derive(Default, Debug, Copy, Clone)]
|
||||
pub struct PendingTabletPadDial {
|
||||
value120: Option<i32>,
|
||||
}
|
||||
|
||||
async fn run(seat_test: Rc<SeatTest>) {
|
||||
let tc = &seat_test.tc;
|
||||
let comp = tc.jay_compositor().await;
|
||||
|
|
@ -586,6 +591,30 @@ async fn run(seat_test: Rc<SeatTest>) {
|
|||
}
|
||||
println!();
|
||||
});
|
||||
let tt = Rc::new(RefCell::new(PendingTabletPadDial::default()));
|
||||
TabletPadDialDelta::handle(tc, se, tt.clone(), move |tt, ev| {
|
||||
tt.borrow_mut().value120 = Some(ev.value120);
|
||||
});
|
||||
let st = seat_test.clone();
|
||||
TabletPadDialFrame::handle(tc, se, tt.clone(), move |tt, ev| {
|
||||
let tt = tt.take();
|
||||
if !all && ev.seat != seat {
|
||||
return;
|
||||
}
|
||||
if all {
|
||||
print!("Seat: {}, ", st.name(ev.seat));
|
||||
}
|
||||
print!(
|
||||
"Time: {:.4}, Device: {}, Dial: {}",
|
||||
time(ev.time_usec),
|
||||
ev.input_device,
|
||||
ev.dial,
|
||||
);
|
||||
if let Some(val) = tt.value120 {
|
||||
print!(", delta: {val}/120");
|
||||
}
|
||||
println!();
|
||||
});
|
||||
let st = seat_test.clone();
|
||||
TouchDown::handle(tc, se, (), move |_, ev| {
|
||||
if all || ev.seat == seat {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue