summaryrefslogtreecommitdiff
path: root/input/wrapper.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.go
parent89e22871b2e44b374af312d1bf3fdfd83774ce16 (diff)
Refactoring
Diffstat (limited to 'input/wrapper.go')
-rw-r--r--input/wrapper.go49
1 files changed, 49 insertions, 0 deletions
diff --git a/input/wrapper.go b/input/wrapper.go
new file mode 100644
index 0000000..d194f20
--- /dev/null
+++ b/input/wrapper.go
@@ -0,0 +1,49 @@
+package input
+
+import (
+ "fmt"
+ "io"
+)
+
+const (
+ InputType_debug int = 0
+ InputType_uinput int = 1
+)
+
+type Keyboard interface {
+ KeyDown(key int) error
+ KeyUp(key int) error
+ io.Closer
+}
+
+type Mouse interface {
+ Move(x, y int32) error
+ LeftPress() error
+ LeftRelease() error
+ Wheel(horizontal bool, delta int32) error
+ io.Closer
+}
+
+func CreateKeyboard(inputType int) (Keyboard, error) {
+ switch inputType {
+ case InputType_debug:
+ return KeyboardEmptyWrapper{}, nil
+ case InputType_uinput:
+ uinputKeyboard := new(KeyboardUinputWrapper)
+ uinputKeyboard.Init()
+ return uinputKeyboard, nil
+ }
+ return nil, fmt.Errorf("Unknown inputType: %d", inputType)
+}
+
+func CreateMouse(inputType int) (Mouse, error) {
+ switch inputType {
+ case InputType_debug:
+ return MouseEmptyWrapper{}, nil
+ case InputType_uinput:
+ uinputMouse := new(MouseUinputWrapper)
+ uinputMouse.Init()
+ return uinputMouse, nil
+ }
+ return nil, fmt.Errorf("Unknown inputType: %d", inputType)
+}