[gnome-games/wip/exalm/gameapd: 2/10] gamepad-view-configuration: Unify configuration for gamepad and keyboard
- From: Alexander Mikhaylenko <alexm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-games/wip/exalm/gameapd: 2/10] gamepad-view-configuration: Unify configuration for gamepad and keyboard
- Date: Wed, 4 Mar 2020 15:17:03 +0000 (UTC)
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]