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.go | |
parent | 89e22871b2e44b374af312d1bf3fdfd83774ce16 (diff) |
Refactoring
Diffstat (limited to 'input/wrapper.go')
-rw-r--r-- | input/wrapper.go | 49 |
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) +} |