[gnome-games/wip/exalm/gameapd: 2/10] gamepad-view-configuration: Unify configuration for gamepad and keyboard



commit d0dcd87b8ecea527a3b597772eda366e91b052c5
Author: Alexander Mikhaylenko <alexm gnome org>
Date:   Wed Mar 4 19:39:22 2020 +0500

    gamepad-view-configuration: Unify configuration for gamepad and keyboard
    
    Even though keyboard lacks analog, it doesn't hurt to have a few extra
    input in its configuration, they will just be unused. However, we don't
    duplicate code like this.

 src/ui/gamepad-view-configuration.vala   | 33 ++++++++++++++++++++++++++++++++
 src/ui/preferences-subpage-gamepad.vala  | 32 ++-----------------------------
 src/ui/preferences-subpage-keyboard.vala | 27 ++------------------------
 3 files changed, 37 insertions(+), 55 deletions(-)
---
diff --git a/src/ui/gamepad-view-configuration.vala b/src/ui/gamepad-view-configuration.vala
index 1823d778..46509da3 100644
--- a/src/ui/gamepad-view-configuration.vala
+++ b/src/ui/gamepad-view-configuration.vala
@@ -1,6 +1,30 @@
 // This file is part of GNOME Games. License: GPL-3.0+.
 
 namespace Games {
+       private const GamepadInputPath[] STANDARD_GAMEPAD_INPUT_PATHS = {
+               { { EventCode.EV_ABS, EventCode.ABS_X }, "leftx" },
+               { { EventCode.EV_ABS, EventCode.ABS_Y }, "lefty" },
+               { { EventCode.EV_ABS, EventCode.ABS_RX }, "rightx" },
+               { { EventCode.EV_ABS, EventCode.ABS_RY }, "righty" },
+               { { EventCode.EV_KEY, EventCode.BTN_EAST }, "east" },
+               { { EventCode.EV_KEY, EventCode.BTN_SOUTH }, "south" },
+               { { EventCode.EV_KEY, EventCode.BTN_DPAD_DOWN }, "dpdown" },
+               { { EventCode.EV_KEY, EventCode.BTN_DPAD_LEFT }, "dpleft" },
+               { { EventCode.EV_KEY, EventCode.BTN_DPAD_RIGHT }, "dpright" },
+               { { EventCode.EV_KEY, EventCode.BTN_DPAD_UP }, "dpup" },
+               { { EventCode.EV_KEY, EventCode.BTN_MODE }, "guide" },
+               { { EventCode.EV_KEY, EventCode.BTN_SELECT }, "back" },
+               { { EventCode.EV_KEY, EventCode.BTN_TL }, "leftshoulder" },
+               { { EventCode.EV_KEY, EventCode.BTN_TR }, "rightshoulder" },
+               { { EventCode.EV_KEY, EventCode.BTN_START }, "start" },
+               { { EventCode.EV_KEY, EventCode.BTN_THUMBL }, "leftstick" },
+               { { EventCode.EV_KEY, EventCode.BTN_THUMBR }, "rightstick" },
+               { { EventCode.EV_KEY, EventCode.BTN_TL2 }, "lefttrigger" },
+               { { EventCode.EV_KEY, EventCode.BTN_TR2 }, "righttrigger" },
+               { { EventCode.EV_KEY, EventCode.BTN_NORTH }, "north" },
+               { { EventCode.EV_KEY, EventCode.BTN_WEST }, "west" },
+       };
+
        private struct GamepadInputPath {
                GamepadInput input;
                string path;
@@ -9,5 +33,14 @@ namespace Games {
        private struct GamepadViewConfiguration {
                string svg_path;
                GamepadInputPath[] input_paths;
+
+               public static GamepadViewConfiguration get_default () {
+                       GamepadViewConfiguration conf = {};
+
+                       conf.svg_path = "/org/gnome/Games/gamepads/standard-gamepad.svg";
+                       conf.input_paths = STANDARD_GAMEPAD_INPUT_PATHS;
+
+                       return conf;
+               }
        }
 }
diff --git a/src/ui/preferences-subpage-gamepad.vala b/src/ui/preferences-subpage-gamepad.vala
index 1f0d073b..f24c0f93 100644
--- a/src/ui/preferences-subpage-gamepad.vala
+++ b/src/ui/preferences-subpage-gamepad.vala
@@ -26,34 +26,6 @@ private class Games.PreferencesSubpageGamepad : Gtk.Box, PreferencesSubpage {
                { EventCode.EV_KEY, EventCode.BTN_TR2 },
        };
 
-       private const GamepadInputPath[] STANDARD_GAMEPAD_INPUT_PATHS = {
-               { { EventCode.EV_ABS, EventCode.ABS_X }, "leftx" },
-               { { EventCode.EV_ABS, EventCode.ABS_Y }, "lefty" },
-               { { EventCode.EV_ABS, EventCode.ABS_RX }, "rightx" },
-               { { EventCode.EV_ABS, EventCode.ABS_RY }, "righty" },
-               { { EventCode.EV_KEY, EventCode.BTN_EAST }, "east" },
-               { { EventCode.EV_KEY, EventCode.BTN_SOUTH }, "south" },
-               { { EventCode.EV_KEY, EventCode.BTN_DPAD_DOWN }, "dpdown" },
-               { { EventCode.EV_KEY, EventCode.BTN_DPAD_LEFT }, "dpleft" },
-               { { EventCode.EV_KEY, EventCode.BTN_DPAD_RIGHT }, "dpright" },
-               { { EventCode.EV_KEY, EventCode.BTN_DPAD_UP }, "dpup" },
-               { { EventCode.EV_KEY, EventCode.BTN_MODE }, "guide" },
-               { { EventCode.EV_KEY, EventCode.BTN_SELECT }, "back" },
-               { { EventCode.EV_KEY, EventCode.BTN_TL }, "leftshoulder" },
-               { { EventCode.EV_KEY, EventCode.BTN_TR }, "rightshoulder" },
-               { { EventCode.EV_KEY, EventCode.BTN_START }, "start" },
-               { { EventCode.EV_KEY, EventCode.BTN_THUMBL }, "leftstick" },
-               { { EventCode.EV_KEY, EventCode.BTN_THUMBR }, "rightstick" },
-               { { EventCode.EV_KEY, EventCode.BTN_TL2 }, "lefttrigger" },
-               { { EventCode.EV_KEY, EventCode.BTN_TR2 }, "righttrigger" },
-               { { EventCode.EV_KEY, EventCode.BTN_NORTH }, "north" },
-               { { EventCode.EV_KEY, EventCode.BTN_WEST }, "west" },
-       };
-
-       private const GamepadViewConfiguration STANDARD_GAMEPAD_VIEW_CONFIGURATION = {
-               "/org/gnome/Games/gamepads/standard-gamepad.svg", STANDARD_GAMEPAD_INPUT_PATHS
-       };
-
        private enum State {
                TEST,
                CONFIGURE,
@@ -132,9 +104,9 @@ private class Games.PreferencesSubpageGamepad : Gtk.Box, PreferencesSubpage {
                get { return _device; }
                construct {
                        _device = value;
-                       mapper = new GamepadMapper (value, STANDARD_GAMEPAD_VIEW_CONFIGURATION, 
STANDARD_GAMEPAD_INPUTS);
+                       mapper = new GamepadMapper (value, GamepadViewConfiguration.get_default (), 
STANDARD_GAMEPAD_INPUTS);
                        gamepad_view_stack.add (mapper);
-                       tester = new GamepadTester (value, STANDARD_GAMEPAD_VIEW_CONFIGURATION);
+                       tester = new GamepadTester (value, GamepadViewConfiguration.get_default ());
                        gamepad_view_stack.add (tester);
 
                        mapper.bind_property ("info-message", this, "info-message", BindingFlags.SYNC_CREATE);
diff --git a/src/ui/preferences-subpage-keyboard.vala b/src/ui/preferences-subpage-keyboard.vala
index ecba319c..d36ff37a 100644
--- a/src/ui/preferences-subpage-keyboard.vala
+++ b/src/ui/preferences-subpage-keyboard.vala
@@ -21,29 +21,6 @@ private class Games.PreferencesSubpageKeyboard : Gtk.Box, PreferencesSubpage {
                { EventCode.EV_KEY, EventCode.BTN_TR2 },
        };
 
-       private const GamepadInputPath[] KEYBOARD_GAMEPAD_INPUT_PATHS = {
-               { { EventCode.EV_KEY, EventCode.BTN_EAST }, "east" },
-               { { EventCode.EV_KEY, EventCode.BTN_SOUTH }, "south" },
-               { { EventCode.EV_KEY, EventCode.BTN_DPAD_DOWN }, "dpdown" },
-               { { EventCode.EV_KEY, EventCode.BTN_DPAD_LEFT }, "dpleft" },
-               { { EventCode.EV_KEY, EventCode.BTN_DPAD_RIGHT }, "dpright" },
-               { { EventCode.EV_KEY, EventCode.BTN_DPAD_UP }, "dpup" },
-               { { EventCode.EV_KEY, EventCode.BTN_SELECT }, "back" },
-               { { EventCode.EV_KEY, EventCode.BTN_TL }, "leftshoulder" },
-               { { EventCode.EV_KEY, EventCode.BTN_TR }, "rightshoulder" },
-               { { EventCode.EV_KEY, EventCode.BTN_START }, "start" },
-               { { EventCode.EV_KEY, EventCode.BTN_THUMBL }, "leftstick" },
-               { { EventCode.EV_KEY, EventCode.BTN_THUMBR }, "rightstick" },
-               { { EventCode.EV_KEY, EventCode.BTN_TL2 }, "lefttrigger" },
-               { { EventCode.EV_KEY, EventCode.BTN_TR2 }, "righttrigger" },
-               { { EventCode.EV_KEY, EventCode.BTN_NORTH }, "north" },
-               { { EventCode.EV_KEY, EventCode.BTN_WEST }, "west" },
-       };
-
-       private const GamepadViewConfiguration KEYBOARD_GAMEPAD_VIEW_CONFIGURATION = {
-               "/org/gnome/Games/gamepads/standard-gamepad.svg", KEYBOARD_GAMEPAD_INPUT_PATHS
-       };
-
        private enum State {
                TEST,
                CONFIGURE,
@@ -117,9 +94,9 @@ private class Games.PreferencesSubpageKeyboard : Gtk.Box, PreferencesSubpage {
        private KeyboardMappingManager mapping_manager;
 
        construct {
-               mapper = new KeyboardMapper (KEYBOARD_GAMEPAD_VIEW_CONFIGURATION, KEYBOARD_GAMEPAD_INPUTS);
+               mapper = new KeyboardMapper (GamepadViewConfiguration.get_default (), 
KEYBOARD_GAMEPAD_INPUTS);
                gamepad_view_stack.add (mapper);
-               tester = new KeyboardTester (KEYBOARD_GAMEPAD_VIEW_CONFIGURATION);
+               tester = new KeyboardTester (GamepadViewConfiguration.get_default ());
                gamepad_view_stack.add (tester);
                mapping_manager = new KeyboardMappingManager ();
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]