go get -u && go mod tidy

main
Minizbot2012 3 years ago
parent 9376aa8318
commit 14bb7f95af
No known key found for this signature in database
GPG Key ID: 977C8ADE12361917

@ -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
}

@ -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))
}
}
}
}

@ -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)
}
}
}

@ -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
)

@ -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=

@ -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
}

@ -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)
}

Loading…
Cancel
Save