You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

49 lines
918 B
Go

package keys
import (
"encoding/json"
"github.com/Minizbot2012/orbbind/box"
)
//Key Codes Map
var (
ScanToCommon map[int]string
ASCIIToCommon map[int]string
CommonToScan map[string]int
CommonToASCII map[string]int
)
func genMap() {
ASCII := box.Get("ascii.json")
SC := box.Get("scancodes.json")
json.Unmarshal(ASCII, &CommonToASCII)
json.Unmarshal(SC, &CommonToScan)
for k, v := range CommonToASCII {
ASCIIToCommon[v] = k
}
for k, v := range CommonToScan {
ScanToCommon[v] = k
}
}
//GetASCIIForSC Returns Ascii for Scancode
func GetASCIIForSC(r int) int {
return CommonToASCII[ScanToCommon[r]]
}
//GetSCForASCII Returns scancode For Ascii
func GetSCForASCII(r int) int {
return CommonToScan[ASCIIToCommon[r]]
}
func init() {
ScanToCommon = make(map[int]string)
ASCIIToCommon = make(map[int]string)
CommonToScan = make(map[string]int)
CommonToASCII = make(map[string]int)
genMap()
}