[gnome-games] gameinfo: Add GameinfoDiscIdInputCapabilities
- From: Adrien Plazas <aplazas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-games] gameinfo: Add GameinfoDiscIdInputCapabilities
- Date: Fri, 2 Sep 2016 22:50:27 +0000 (UTC)
commit df8d262fccb844884cc08c60425f00ff056142e9
Author: Adrien Plazas <kekun plazas laposte net>
Date: Tue Aug 30 15:22:33 2016 +0200
gameinfo: Add GameinfoDiscIdInputCapabilities
This will be used in the next commit to get controller informations from
a Gameinfo doc.
https://bugzilla.gnome.org/show_bug.cgi?id=770192
src/Makefile.am | 1 +
.../gameinfo-disc-id-input-capabilities.vala | 35 ++++++++++++++++++++
2 files changed, 36 insertions(+), 0 deletions(-)
---
diff --git a/src/Makefile.am b/src/Makefile.am
index 74ba471..b87745d 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -63,6 +63,7 @@ gnome_games_SOURCES = \
gameinfo/gameinfo-error.vala \
gameinfo/gameinfo-disc-id-disc-title.vala \
gameinfo/gameinfo-disc-id-game-title.vala \
+ gameinfo/gameinfo-disc-id-input-capabilities.vala \
\
gamepad/gamepad.vala \
gamepad/gamepad-callbacks.vala \
diff --git a/src/gameinfo/gameinfo-disc-id-input-capabilities.vala
b/src/gameinfo/gameinfo-disc-id-input-capabilities.vala
new file mode 100644
index 0000000..702f6d1
--- /dev/null
+++ b/src/gameinfo/gameinfo-disc-id-input-capabilities.vala
@@ -0,0 +1,35 @@
+// This file is part of GNOME Games. License: GPLv3
+
+public class Games.GameinfoDiscIdInputCapabilities : Object, InputCapabilities {
+ public bool default_allow_classic_gamepads { set; get; }
+ public bool default_allow_analog_gamepads { set; get; }
+
+ private GameinfoDoc gameinfo;
+ private string disc_id;
+ private string[] controllers;
+
+ public GameinfoDiscIdInputCapabilities (GameinfoDoc gameinfo, string disc_id) {
+ this.gameinfo = gameinfo;
+ this.disc_id = disc_id;
+ }
+
+ public bool get_allow_classic_gamepads () throws Error {
+ if (controllers == null)
+ controllers = gameinfo.get_game_controllers_for_disc_id (disc_id);
+
+ if (controllers.length == 0)
+ return default_allow_classic_gamepads;
+
+ return "classic-gamepad" in controllers;
+ }
+
+ public bool get_allow_analog_gamepads () throws Error {
+ if (controllers == null)
+ controllers = gameinfo.get_game_controllers_for_disc_id (disc_id);
+
+ if (controllers.length == 0)
+ return default_allow_analog_gamepads;
+
+ return "analog-gamepad" in controllers;
+ }
+}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]