diff options
| author | Dmitrii Morozov <snoopdesigns@gmail.com> | 2024-03-27 20:38:37 +0100 | 
|---|---|---|
| committer | Dmitrii Morozov <snoopdesigns@gmail.com> | 2024-03-27 20:38:37 +0100 | 
| commit | fd96ce3403f0bf98c215152e0d8424673c9db7e6 (patch) | |
| tree | 5c5e4d8fb0db544a3d379015d62da09c410e035d /input/wrapper-uinput.go | |
| parent | 89e22871b2e44b374af312d1bf3fdfd83774ce16 (diff) | |
Refactoring
Diffstat (limited to 'input/wrapper-uinput.go')
| -rw-r--r-- | input/wrapper-uinput.go | 74 | 
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() +} | 
