From 9faa3f4601d2ffb633f2b62f5d82a021ceed9f45 Mon Sep 17 00:00:00 2001 From: Hajime Hoshi Date: Sat, 16 Mar 2024 17:57:52 +0900 Subject: [PATCH] internal/gamepaddb: refactoring --- internal/gamepaddb/gamepaddb.go | 104 ++++++++++++++++---------------- 1 file changed, 53 insertions(+), 51 deletions(-) diff --git a/internal/gamepaddb/gamepaddb.go b/internal/gamepaddb/gamepaddb.go index b74300154..d4d287041 100644 --- a/internal/gamepaddb/gamepaddb.go +++ b/internal/gamepaddb/gamepaddb.go @@ -127,12 +127,12 @@ type mapping struct { var ( gamepadNames = map[string]string{} - gamepadButtonMappings = map[string]map[StandardButton]*mapping{} - gamepadAxisMappings = map[string]map[StandardAxis]*mapping{} + gamepadButtonMappings = map[string]map[StandardButton]mapping{} + gamepadAxisMappings = map[string]map[StandardAxis]mapping{} mappingsM sync.RWMutex ) -func parseLine(line string, platform platform) (id string, name string, buttons map[StandardButton]*mapping, axes map[StandardAxis]*mapping, err error) { +func parseLine(line string, platform platform) (id string, name string, buttons map[StandardButton]mapping, axes map[StandardAxis]mapping, err error) { line = strings.TrimSpace(line) if len(line) == 0 { return "", "", nil, nil, nil @@ -192,7 +192,7 @@ func parseLine(line string, platform platform) (id string, name string, buttons if b, ok := toStandardGamepadButton(tks[0]); ok { if buttons == nil { - buttons = map[StandardButton]*mapping{} + buttons = map[StandardButton]mapping{} } buttons[b] = gb continue @@ -200,7 +200,7 @@ func parseLine(line string, platform platform) (id string, name string, buttons if a, ok := toStandardGamepadAxis(tks[0]); ok { if axes == nil { - axes = map[StandardAxis]*mapping{} + axes = map[StandardAxis]mapping{} } axes[a] = gb continue @@ -213,7 +213,7 @@ func parseLine(line string, platform platform) (id string, name string, buttons return tokens[0], tokens[1], buttons, axes, nil } -func parseMappingElement(str string) (*mapping, error) { +func parseMappingElement(str string) (mapping, error) { switch { case str[0] == 'a' || strings.HasPrefix(str, "+a") || strings.HasPrefix(str, "-a"): var tilda bool @@ -259,10 +259,10 @@ func parseMappingElement(str string) (*mapping, error) { index, err := strconv.Atoi(numstr) if err != nil { - return nil, err + return mapping{}, err } - return &mapping{ + return mapping{ Type: mappingTypeAxis, Index: index, AxisScale: scale, @@ -272,9 +272,9 @@ func parseMappingElement(str string) (*mapping, error) { case str[0] == 'b': index, err := strconv.Atoi(str[1:]) if err != nil { - return nil, err + return mapping{}, err } - return &mapping{ + return mapping{ Type: mappingTypeButton, Index: index, }, nil @@ -282,24 +282,24 @@ func parseMappingElement(str string) (*mapping, error) { case str[0] == 'h': tokens := strings.Split(str[1:], ".") if len(tokens) < 2 { - return nil, fmt.Errorf("gamepaddb: unexpected hat: %s", str) + return mapping{}, fmt.Errorf("gamepaddb: unexpected hat: %s", str) } index, err := strconv.Atoi(tokens[0]) if err != nil { - return nil, err + return mapping{}, err } hat, err := strconv.Atoi(tokens[1]) if err != nil { - return nil, err + return mapping{}, err } - return &mapping{ + return mapping{ Type: mappingTypeHat, Index: index, HatState: hat, }, nil } - return nil, fmt.Errorf("gamepaddb: unepxected mapping: %s", str) + return mapping{}, fmt.Errorf("gamepaddb: unepxected mapping: %s", str) } func toStandardGamepadButton(str string) (StandardButton, bool) { @@ -358,7 +358,7 @@ func toStandardGamepadAxis(str string) (StandardAxis, bool) { } } -func buttonMappings(id string) map[StandardButton]*mapping { +func buttonMappings(id string) map[StandardButton]mapping { if m, ok := gamepadButtonMappings[id]; ok { return m } @@ -370,7 +370,7 @@ func buttonMappings(id string) map[StandardButton]*mapping { return nil } -func axisMappings(id string) map[StandardAxis]*mapping { +func axisMappings(id string) map[StandardAxis]mapping { if m, ok := gamepadAxisMappings[id]; ok { return m } @@ -410,7 +410,8 @@ func HasStandardAxis(id string, axis StandardAxis) bool { if mappings == nil { return false } - return mappings[axis] != nil + _, ok := mappings[axis] + return ok } func StandardAxisValue(id string, axis StandardAxis, state GamepadState) float64 { @@ -422,8 +423,8 @@ func StandardAxisValue(id string, axis StandardAxis, state GamepadState) float64 return 0 } - mapping := mappings[axis] - if mapping == nil { + mapping, ok := mappings[axis] + if !ok { return 0 } @@ -461,7 +462,8 @@ func HasStandardButton(id string, button StandardButton) bool { if mappings == nil { return false } - return mappings[button] != nil + _, ok := mappings[button] + return ok } func StandardButtonValue(id string, button StandardButton, state GamepadState) float64 { @@ -477,8 +479,8 @@ func standardButtonValue(id string, button StandardButton, state GamepadState) f return 0 } - mapping := mappings[button] - if mapping == nil { + mapping, ok := mappings[button] + if !ok { return 0 } @@ -522,8 +524,8 @@ func IsStandardButtonPressed(id string, button StandardButton, state GamepadStat return false } - mapping := mappings[button] - if mapping == nil { + mapping, ok := mappings[button] + if !ok { return false } @@ -554,8 +556,8 @@ func Update(mappingData []byte) error { type parsedLine struct { id string name string - buttons map[StandardButton]*mapping - axes map[StandardAxis]*mapping + buttons map[StandardButton]mapping + axes map[StandardAxis]mapping } var lines []parsedLine @@ -609,44 +611,44 @@ func addAndroidDefaultMappings(id string) bool { return false } - gamepadButtonMappings[id] = map[StandardButton]*mapping{} - gamepadAxisMappings[id] = map[StandardAxis]*mapping{} + gamepadButtonMappings[id] = map[StandardButton]mapping{} + gamepadAxisMappings[id] = map[StandardAxis]mapping{} // For mappings, see mobile/ebitenmobileview/input_android.go. if buttonMask&(1<= 30, add this code: // - // gamepadButtonMappings[id][StandardButtonCenterCenter] = &mapping{ + // gamepadButtonMappings[id][StandardButtonCenterCenter] = mapping{ // Type: mappingTypeButton, // Index: SDLControllerButtonGuide, // } } if buttonMask&(1<