From fd96ce3403f0bf98c215152e0d8424673c9db7e6 Mon Sep 17 00:00:00 2001 From: Dmitrii Morozov Date: Wed, 27 Mar 2024 20:38:37 +0100 Subject: Refactoring --- input/wrapper-uinput.go | 74 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 input/wrapper-uinput.go (limited to 'input/wrapper-uinput.go') diff --git a/input/wrapper-uinput.go b/input/wrapper-uinput.go new file mode 100644 index 0000000..26877f2 --- /dev/null +++ b/input/wrapper-uinput.go @@ -0,0 +1,74 @@ +package input + +import ( + "fmt" + + "github.com/bendahl/uinput" +) + +type KeyboardUinputWrapper struct { + keyboard uinput.Keyboard +} + +type MouseUinputWrapper struct { + mouse uinput.Mouse + touchpad uinput.TouchPad +} + +func (uinputKeyboard *KeyboardUinputWrapper) Init() error { + kbd, err := uinput.CreateKeyboard("/dev/uinput", []byte("magic4linux-keyboard")) + if err != nil { + panic(err) + } + uinputKeyboard.keyboard = kbd + return nil +} + +func (uinputMouse *MouseUinputWrapper) Init() error { + mouse, err := uinput.CreateMouse("/dev/uinput", []byte("magic4linux-mouse")) + if err != nil { + panic(err) + } + uinputMouse.mouse = mouse + + // TODO resolution + tp, err := uinput.CreateTouchPad("/dev/uinput", []byte("magic4linux-touchpad"), 0, 1920, 0, 1080) + if err != nil { + panic(err) + } + uinputMouse.touchpad = tp + return nil +} + +func (uinputKeyboard KeyboardUinputWrapper) KeyDown(key int) error { + return uinputKeyboard.keyboard.KeyDown(key) +} + +func (uinputKeyboard KeyboardUinputWrapper) KeyUp(key int) error { + return uinputKeyboard.keyboard.KeyUp(key) +} + +func (uinputKeyboard KeyboardUinputWrapper) Close() error { + return uinputKeyboard.keyboard.Close() +} + +func (uinputMouse MouseUinputWrapper) Move(x, y int32) error { + return uinputMouse.touchpad.MoveTo(x, y) +} + +func (uinputMouse MouseUinputWrapper) LeftPress() error { + fmt.Println("Left!!!!") + return uinputMouse.mouse.LeftPress() +} + +func (uinputMouse MouseUinputWrapper) LeftRelease() error { + return uinputMouse.mouse.LeftRelease() +} + +func (uinputMouse MouseUinputWrapper) Wheel(horizontal bool, delta int32) error { + return uinputMouse.mouse.Wheel(horizontal, delta) +} + +func (uinputMouse MouseUinputWrapper) Close() error { + return uinputMouse.mouse.Close() +} -- cgit v1.2.3