summaryrefslogtreecommitdiff
path: root/input/wrapper-uinput.go
diff options
context:
space:
mode:
authorDmitrii Morozov <snoopdesigns@gmail.com>2024-03-27 20:38:37 +0100
committerDmitrii Morozov <snoopdesigns@gmail.com>2024-03-27 20:38:37 +0100
commitfd96ce3403f0bf98c215152e0d8424673c9db7e6 (patch)
tree5c5e4d8fb0db544a3d379015d62da09c410e035d /input/wrapper-uinput.go
parent89e22871b2e44b374af312d1bf3fdfd83774ce16 (diff)
Refactoring
Diffstat (limited to 'input/wrapper-uinput.go')
-rw-r--r--input/wrapper-uinput.go74
1 files changed, 74 insertions, 0 deletions
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()
+}