mirror of
https://github.com/m1k1o/neko.git
synced 2025-08-02 00:10:07 +02:00
Xorg input driver (#53)
* add xf86 input driver. * cleanup. * rewrite to unix socket PoC. * add input rebuild. * lint & docs. * add input driver struct. * comments, lint, socket name from config. * add touch events to webrtc. * switch to uint32. * misc update logging & linting, * fix screen size * set touchscreen as core pointer. * add touch to ws control. * SendCoreEvents. * extract to own xinput folder. * add debounce. * switch pressure to uint8. * check buffer size. * send touch events with system init.
This commit is contained in:
parent
4cb1b3e925
commit
ea5517b270
35 changed files with 1507 additions and 82 deletions
|
@ -151,6 +151,39 @@ func (manager *WebRTCManagerCtx) handle(
|
|||
} else {
|
||||
logger.Trace().Uint32("key", payload.Key).Msg("button up")
|
||||
}
|
||||
case payload.OP_TOUCH_BEGIN:
|
||||
payload := &payload.Touch{}
|
||||
if err := binary.Read(buffer, binary.BigEndian, payload); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := manager.desktop.TouchBegin(payload.TouchId, int(payload.X), int(payload.Y), payload.Pressure); err != nil {
|
||||
logger.Warn().Err(err).Uint32("touchId", payload.TouchId).Msg("touch begin failed")
|
||||
} else {
|
||||
logger.Trace().Uint32("touchId", payload.TouchId).Msg("touch begin")
|
||||
}
|
||||
case payload.OP_TOUCH_UPDATE:
|
||||
payload := &payload.Touch{}
|
||||
if err := binary.Read(buffer, binary.BigEndian, payload); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := manager.desktop.TouchUpdate(payload.TouchId, int(payload.X), int(payload.Y), payload.Pressure); err != nil {
|
||||
logger.Warn().Err(err).Uint32("touchId", payload.TouchId).Msg("touch update failed")
|
||||
} else {
|
||||
logger.Trace().Uint32("touchId", payload.TouchId).Msg("touch update")
|
||||
}
|
||||
case payload.OP_TOUCH_END:
|
||||
payload := &payload.Touch{}
|
||||
if err := binary.Read(buffer, binary.BigEndian, payload); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := manager.desktop.TouchEnd(payload.TouchId, int(payload.X), int(payload.Y), payload.Pressure); err != nil {
|
||||
logger.Warn().Err(err).Uint32("touchId", payload.TouchId).Msg("touch end failed")
|
||||
} else {
|
||||
logger.Trace().Uint32("touchId", payload.TouchId).Msg("touch end")
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue