mirror of
https://github.com/m1k1o/neko.git
synced 2024-07-24 14:40:50 +12:00
ea5517b270
* 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.
37 lines
1.1 KiB
Go
37 lines
1.1 KiB
Go
package desktop
|
|
|
|
import "github.com/demodesk/neko/pkg/xinput"
|
|
|
|
func (manager *DesktopManagerCtx) inputRelToAbs(x, y int) (int, int) {
|
|
return (x * xinput.AbsX) / manager.screenSize.Width, (y * xinput.AbsY) / manager.screenSize.Height
|
|
}
|
|
|
|
func (manager *DesktopManagerCtx) HasTouchSupport() bool {
|
|
// we assume now, that if the input driver is enabled, we have touch support
|
|
return manager.config.UseInputDriver
|
|
}
|
|
|
|
func (manager *DesktopManagerCtx) TouchBegin(touchId uint32, x, y int, pressure uint8) error {
|
|
mu.Lock()
|
|
defer mu.Unlock()
|
|
|
|
x, y = manager.inputRelToAbs(x, y)
|
|
return manager.input.TouchBegin(touchId, x, y, pressure)
|
|
}
|
|
|
|
func (manager *DesktopManagerCtx) TouchUpdate(touchId uint32, x, y int, pressure uint8) error {
|
|
mu.Lock()
|
|
defer mu.Unlock()
|
|
|
|
x, y = manager.inputRelToAbs(x, y)
|
|
return manager.input.TouchUpdate(touchId, x, y, pressure)
|
|
}
|
|
|
|
func (manager *DesktopManagerCtx) TouchEnd(touchId uint32, x, y int, pressure uint8) error {
|
|
mu.Lock()
|
|
defer mu.Unlock()
|
|
|
|
x, y = manager.inputRelToAbs(x, y)
|
|
return manager.input.TouchEnd(touchId, x, y, pressure)
|
|
}
|