summaryrefslogtreecommitdiff
path: root/input/wrapper-uinput.go
blob: 26877f2ab8181989776fb6713f547b3276ccaee2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
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()
}