diff --git a/common/guibuilder.go b/common/guibuilder.go new file mode 100644 index 0000000..e3ea821 --- /dev/null +++ b/common/guibuilder.go @@ -0,0 +1,28 @@ +package common + +type PageType int + +const ( + //PGrid Grid type (keypads) + PGrid PageType = iota + //PCircle type (joysticks) + PCircle + //PList List Type + PList +) + +type GUI struct { + Pages []Page +} + +type Page struct { + Hive string + Name string + Keys []Key + Type PageType +} + +type Key struct { + KeyID int + KeyName string +} diff --git a/devices/common/hid.go b/common/hid.go similarity index 100% rename from devices/common/hid.go rename to common/hid.go diff --git a/devices/orbweaver/orbweaver.go b/devices/orbweaver/orbweaver.go index 5fc964e..30496cc 100644 --- a/devices/orbweaver/orbweaver.go +++ b/devices/orbweaver/orbweaver.go @@ -4,11 +4,109 @@ import ( "encoding/binary" "io" "os" + + "github.com/OrbTools/OrbCommon/common" ) //BINDING Map of Default Keys var BINDING = [...]byte{41, 2, 3, 4, 5, 15, 16, 17, 18, 19, 58, 30, 31, 32, 33, 42, 44, 45, 46, 47, 56, 103, 106, 108, 105, 57} +//GUI gui definition for an orbweaver +var GUI = &common.GUI{ + Pages: []common.Page{ + { + Hive: "MIP", + Name: "Grid", + Type: common.PGrid, + Keys: []common.Key{ + { + KeyID: 0, + KeyName: "01", + }, { + KeyID: 1, + KeyName: "02", + }, { + KeyID: 3, + KeyName: "04", + }, { + KeyID: 4, + KeyName: "05", + }, { + KeyID: 5, + KeyName: "06", + }, { + KeyID: 6, + KeyName: "07", + }, { + KeyID: 7, + KeyName: "08", + }, { + KeyID: 8, + KeyName: "09", + }, { + KeyID: 9, + KeyName: "10", + }, { + KeyID: 10, + KeyName: "11", + }, { + KeyID: 11, + KeyName: "12", + }, { + KeyID: 12, + KeyName: "13", + }, { + KeyID: 13, + KeyName: "11", + }, { + KeyID: 14, + KeyName: "11", + }, { + KeyID: 15, + KeyName: "11", + }, { + KeyID: 16, + KeyName: "11", + }, { + KeyID: 17, + KeyName: "11", + }, { + KeyID: 18, + KeyName: "11", + }, { + KeyID: 19, + KeyName: "20", + }, + }, + }, { + Hive: "SIP", + Name: "Side Keys", + Type: common.PList, + Keys: []common.Key{ + { + KeyID: 0, + KeyName: "Upper Button", + }, { + KeyID: 1, + KeyName: "DPad Up", + }, { + KeyID: 2, + KeyName: "DPad Right", + }, { + KeyID: 3, + KeyName: "DPad Left", + }, { + KeyID: 4, + KeyName: "DPad Down", + }, { + KeyID: 5, + KeyName: "Lower Button", + }, + }, + }, + }, +} + //KeyMap singular keymap type KeyMap struct { Keymap [26]uint16