[gnome-games] runner: Add check_is_valid()
- From: Adrien Plazas <aplazas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-games] runner: Add check_is_valid()
- Date: Fri, 25 Mar 2016 06:44:27 +0000 (UTC)
commit f462f5be90a74c4c5ad6dafed3cbc2769d02483f
Author: Adrien Plazas <kekun plazas laposte net>
Date: Tue Mar 22 13:05:50 2016 +0100
runner: Add check_is_valid()
Move the validity check of the runners from their constructors to later
when they are used.
Allow to create a runner way before we use it which is needed to
implement a generic game storing its runner.
plugins/steam/src/steam-runner.vala | 5 ++++-
src/command/command-runner.vala | 8 +++++---
src/core/runner.vala | 1 +
src/dummy/dummy-runner.vala | 3 +++
src/retro/retro-runner.vala | 6 +++++-
src/ui/application-window.vala | 1 +
6 files changed, 19 insertions(+), 5 deletions(-)
---
diff --git a/plugins/steam/src/steam-runner.vala b/plugins/steam/src/steam-runner.vala
index 5b5a12f..da4aff9 100644
--- a/plugins/steam/src/steam-runner.vala
+++ b/plugins/steam/src/steam-runner.vala
@@ -7,10 +7,13 @@ private class Games.SteamRunner : Object, Runner {
private string game_id;
- public SteamRunner (string game_id) throws Error {
+ public SteamRunner (string game_id) {
this.game_id = game_id;
}
+ public void check_is_valid () throws Error {
+ }
+
public Gtk.Widget get_display () {
return new RemoteDisplay ();
}
diff --git a/src/command/command-runner.vala b/src/command/command-runner.vala
index 27e0b96..c68bf92 100644
--- a/src/command/command-runner.vala
+++ b/src/command/command-runner.vala
@@ -7,11 +7,13 @@ public class Games.CommandRunner : Object, Runner {
private string[] args;
- public CommandRunner (string[] args) throws Error {
+ public CommandRunner (string[] args) {
+ this.args = args;
+ }
+
+ public void check_is_valid () throws Error {
if (args.length < 1)
throw new CommandError.INVALID_COMMAND ("Invalid command: it doesn't have any
argument.");
-
- this.args = args;
}
public Gtk.Widget get_display () {
diff --git a/src/core/runner.vala b/src/core/runner.vala
index bcf85b6..c6f2de9 100644
--- a/src/core/runner.vala
+++ b/src/core/runner.vala
@@ -5,6 +5,7 @@ public interface Games.Runner : Object {
public abstract bool can_resume { get; }
+ public abstract void check_is_valid () throws Error;
public abstract Gtk.Widget get_display ();
public abstract void start () throws Error;
public abstract void resume () throws Error;
diff --git a/src/dummy/dummy-runner.vala b/src/dummy/dummy-runner.vala
index 5e12506..ba82971 100644
--- a/src/dummy/dummy-runner.vala
+++ b/src/dummy/dummy-runner.vala
@@ -5,6 +5,9 @@ private class Games.DummyRunner : Object, Runner {
get { return false; }
}
+ public void check_is_valid () throws Error {
+ }
+
public Gtk.Widget get_display () {
return new DummyDisplay ();
}
diff --git a/src/retro/retro-runner.vala b/src/retro/retro-runner.vala
index 5d38173..39ff00b 100644
--- a/src/retro/retro-runner.vala
+++ b/src/retro/retro-runner.vala
@@ -49,7 +49,7 @@ public class Games.RetroRunner : Object, Runner {
private bool is_initialized;
- public RetroRunner (string module_basename, string uri, Uid uid) throws Error {
+ public RetroRunner (string module_basename, string uri, Uid uid) {
is_initialized = false;
this.module_basename = module_basename;
@@ -72,6 +72,10 @@ public class Games.RetroRunner : Object, Runner {
}
}
+ public void check_is_valid () throws Error {
+ init ();
+ }
+
public Gtk.Widget get_display () {
return widget;
}
diff --git a/src/ui/application-window.vala b/src/ui/application-window.vala
index a95f5c8..b434f26 100644
--- a/src/ui/application-window.vala
+++ b/src/ui/application-window.vala
@@ -138,6 +138,7 @@ private class Games.ApplicationWindow : Gtk.ApplicationWindow {
return runners[game];
var runner = game.get_runner ();
+ runner.check_is_valid ();
runners[game] = runner;
runner.stopped.connect (remove_runner);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]