diff --git a/devices/orbweaver/orbweaver_common.go b/devices/orbweaver/orbweaver_common.go index 80a20d9..3ed92b2 100644 --- a/devices/orbweaver/orbweaver_common.go +++ b/devices/orbweaver/orbweaver_common.go @@ -1,36 +1,36 @@ -package orbweaver - -import ( - "fmt" - "path/filepath" - "strings" - - morb "github.com/OrbTools/OrbCommon/devices/orbweaver" -) - -var eventcodes []byte -var ecm map[uint16]int - -func init() { - ecm = make(map[uint16]int) -} - -//ProcOrbFiles processes orbs -func ProcOrbFiles(orbs string) *morb.KeyMaps { - keymaps := &morb.KeyMaps{Currentmap: 0} - if len(orbs) > 0 { - for idx, orb := range strings.Split(orbs, ";") { - abs, err := filepath.Abs(orb) - if err != nil { - panic(err) - } - fmt.Println("Loading Orb " + abs) - KMap := morb.LoadKM(abs) - keymaps.Maps[idx] = KMap - } - keymaps.MCount = len(orbs) - } else { - panic("No orbs") - } - return keymaps -} +package orbweaver + +import ( + "fmt" + "path/filepath" + "strings" + + morb "github.com/OrbTools/OrbCommon/devices/orbweaver" +) + +var eventcodes []byte +var ecm map[uint16]int + +func init() { + ecm = make(map[uint16]int) +} + +//ProcOrbFiles processes orbs +func ProcOrbFiles(orbs string) *morb.KeyMaps { + keymaps := &morb.KeyMaps{Currentmap: 0} + if len(orbs) > 0 { + for idx, orb := range strings.Split(orbs, ";") { + abs, err := filepath.Abs(orb) + if err != nil { + panic(err) + } + fmt.Println("Loading Orb " + abs) + KMap := morb.LoadKM(abs) + keymaps.Maps[idx] = KMap + } + keymaps.MCount = len(orbs) + } else { + panic("No orbs") + } + return keymaps +} diff --git a/emu/emu_linux.go b/emu/emu_linux.go index e79f1b4..3d31476 100644 --- a/emu/emu_linux.go +++ b/emu/emu_linux.go @@ -1,32 +1,32 @@ -// +build linux !windows - -package emu - -import ( - "github.com/OrbTools/OrbMap/keyevents" - "github.com/bendahl/uinput" -) - -var vkm uinput.Keyboard = nil - -//ProcKey keyboard emulator loop -func ProcKey(kb chan *keyevents.KeyEvent) { - println("Emu Unix Starting") - var err error - vkm, err = uinput.CreateKeyboard("/dev/uinput", []byte("Orbmap")) - if err != nil { - panic(err) - } - defer vkm.Close() - for { - KeyEv := <-kb - if KeyEv.Type == 1 { - if KeyEv.Value == 1 { - vkm.KeyDown(int(KeyEv.Code)) - } else if KeyEv.Value == 2 { - } else { - vkm.KeyUp(int(KeyEv.Code)) - } - } - } -} +// +build linux !windows + +package emu + +import ( + "github.com/OrbTools/OrbMap/keyevents" + "github.com/bendahl/uinput" +) + +var vkm uinput.Keyboard = nil + +//ProcKey keyboard emulator loop +func ProcKey(kb chan *keyevents.KeyEvent) { + println("Emu Unix Starting") + var err error + vkm, err = uinput.CreateKeyboard("/dev/uinput", []byte("Orbmap")) + if err != nil { + panic(err) + } + defer vkm.Close() + for { + KeyEv := <-kb + if KeyEv.Type == 1 { + if KeyEv.Value == 1 { + vkm.KeyDown(int(KeyEv.Code)) + } else if KeyEv.Value == 2 { + } else { + vkm.KeyUp(int(KeyEv.Code)) + } + } + } +} diff --git a/emu/emu_windows.go b/emu/emu_windows.go index 00911be..1cee810 100644 --- a/emu/emu_windows.go +++ b/emu/emu_windows.go @@ -1,52 +1,52 @@ -// +build windows - -package emu - -import ( - "unsafe" - - "github.com/OrbTools/OrbMap/keyevents" - "github.com/lxn/win" -) - -func downKey(key uint16) { - in := []win.KEYBD_INPUT{ - { - Type: win.INPUT_KEYBOARD, - Ki: win.KEYBDINPUT{ - DwExtraInfo: 0, - WScan: key, - DwFlags: win.KEYEVENTF_SCANCODE, - Time: 0, - }, - }, - } - win.SendInput(1, unsafe.Pointer(&in[0]), int32(unsafe.Sizeof(in[0]))) -} -func upKey(key uint16) { - in := []win.KEYBD_INPUT{ - { - Type: win.INPUT_KEYBOARD, - Ki: win.KEYBDINPUT{ - DwExtraInfo: 0, - WScan: key, - DwFlags: win.KEYEVENTF_KEYUP | win.KEYEVENTF_SCANCODE, - Time: 0, - }, - }, - } - win.SendInput(1, unsafe.Pointer(&in[0]), int32(unsafe.Sizeof(in[0]))) -} - -//ProcKey Windows support is so weird -func ProcKey(kb chan *keyevents.KeyEvent) { - println("Emu Windows Starting") - for { - KeyEv := <-kb - if KeyEv.Type == 1 { - downKey(KeyEv.Code) - } else if KeyEv.Type == 2 { - upKey(KeyEv.Code) - } - } -} +// +build windows + +package emu + +import ( + "unsafe" + + "github.com/OrbTools/OrbMap/keyevents" + "github.com/lxn/win" +) + +func downKey(key uint16) { + in := []win.KEYBD_INPUT{ + { + Type: win.INPUT_KEYBOARD, + Ki: win.KEYBDINPUT{ + DwExtraInfo: 0, + WScan: key, + DwFlags: win.KEYEVENTF_SCANCODE, + Time: 0, + }, + }, + } + win.SendInput(1, unsafe.Pointer(&in[0]), int32(unsafe.Sizeof(in[0]))) +} +func upKey(key uint16) { + in := []win.KEYBD_INPUT{ + { + Type: win.INPUT_KEYBOARD, + Ki: win.KEYBDINPUT{ + DwExtraInfo: 0, + WScan: key, + DwFlags: win.KEYEVENTF_KEYUP | win.KEYEVENTF_SCANCODE, + Time: 0, + }, + }, + } + win.SendInput(1, unsafe.Pointer(&in[0]), int32(unsafe.Sizeof(in[0]))) +} + +//ProcKey Windows support is so weird +func ProcKey(kb chan *keyevents.KeyEvent) { + println("Emu Windows Starting") + for { + KeyEv := <-kb + if KeyEv.Type == 1 { + downKey(KeyEv.Code) + } else if KeyEv.Type == 2 { + upKey(KeyEv.Code) + } + } +} diff --git a/go.mod b/go.mod index 0fc9fd1..12fc8fb 100644 --- a/go.mod +++ b/go.mod @@ -8,5 +8,5 @@ require ( github.com/google/gousb v1.1.1 github.com/gvalkov/golang-evdev v0.0.0-20191114124502-287e62b94bcb github.com/lxn/win v0.0.0-20210218163916-a377121e959e - golang.org/x/sys v0.0.0-20210426230700-d19ff857e887 // indirect + golang.org/x/sys v0.0.0-20210503173754-0981d6026fa6 // indirect ) diff --git a/go.sum b/go.sum index 8da949c..09d553d 100644 --- a/go.sum +++ b/go.sum @@ -9,5 +9,5 @@ github.com/gvalkov/golang-evdev v0.0.0-20191114124502-287e62b94bcb/go.mod h1:SAz github.com/lxn/win v0.0.0-20210218163916-a377121e959e h1:H+t6A/QJMbhCSEH5rAuRxh+CtW96g0Or0Fxa9IKr4uc= github.com/lxn/win v0.0.0-20210218163916-a377121e959e/go.mod h1:KxxjdtRkfNoYDCUP5ryK7XJJNTnpC8atvtmTheChOtk= golang.org/x/sys v0.0.0-20201018230417-eeed37f84f13/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210426230700-d19ff857e887 h1:dXfMednGJh/SUUFjTLsWJz3P+TQt9qnR11GgeI3vWKs= -golang.org/x/sys v0.0.0-20210426230700-d19ff857e887/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210503173754-0981d6026fa6 h1:cdsMqa2nXzqlgs183pHxtvoVwU7CyzaCTAUOg94af4c= +golang.org/x/sys v0.0.0-20210503173754-0981d6026fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= diff --git a/keyevents/events.go b/keyevents/events.go index ae81676..40fe210 100644 --- a/keyevents/events.go +++ b/keyevents/events.go @@ -1,11 +1,11 @@ -package keyevents - -import "syscall" - -//KeyEvent represents a keyevent -type KeyEvent struct { - Time syscall.Timeval - Type uint16 - Code uint16 - Value int32 -} +package keyevents + +import "syscall" + +//KeyEvent represents a keyevent +type KeyEvent struct { + Time syscall.Timeval + Type uint16 + Code uint16 + Value int32 +} diff --git a/main.go b/main.go index 799a358..07ef2f8 100644 --- a/main.go +++ b/main.go @@ -1,19 +1,19 @@ -//generate:boxy -package main - -import ( - "flag" - - "github.com/OrbTools/OrbMap/devices/orbweaver" - "github.com/OrbTools/OrbMap/emu" - "github.com/OrbTools/OrbMap/keyevents" -) - -func main() { - orbs := flag.String("orbweaver", "", "Comma seperated string of orbs for the orbweaver") - flag.Parse() - KeyBus := make(chan *keyevents.KeyEvent, 128) - Maps := orbweaver.ProcOrbFiles(*orbs) - go orbweaver.OrbLoop(Maps, KeyBus) - emu.ProcKey(KeyBus) -} +//generate:boxy +package main + +import ( + "flag" + + "github.com/OrbTools/OrbMap/devices/orbweaver" + "github.com/OrbTools/OrbMap/emu" + "github.com/OrbTools/OrbMap/keyevents" +) + +func main() { + orbs := flag.String("orbweaver", "", "Comma seperated string of orbs for the orbweaver") + flag.Parse() + KeyBus := make(chan *keyevents.KeyEvent, 128) + Maps := orbweaver.ProcOrbFiles(*orbs) + go orbweaver.OrbLoop(Maps, KeyBus) + emu.ProcKey(KeyBus) +}