[gnome-games/wip/exalm/loading: 4/29] retro: Add RetroRunnerFactory
- From: Alexander Mikhaylenko <alexm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-games/wip/exalm/loading: 4/29] retro: Add RetroRunnerFactory
- Date: Mon, 11 Nov 2019 21:44:59 +0000 (UTC)
commit 61fe1ba9e0644ff2781182b460056d348b989fc2
Author: Alexander Mikhaylenko <alexm gnome org>
Date: Mon Nov 11 23:00:34 2019 +0500
retro: Add RetroRunnerFactory
A simple factory meant for simple types and most plugins.
src/meson.build | 1 +
src/retro/retro-runner-factory.vala | 26 ++++++++++++++++++++++++++
2 files changed, 27 insertions(+)
---
diff --git a/src/meson.build b/src/meson.build
index 1de009a5..a7805a43 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -88,6 +88,7 @@ vala_sources = [
'retro/retro-platform.vala',
'retro/retro-runner.vala',
'retro/retro-runner-builder.vala',
+ 'retro/retro-runner-factory.vala',
'retro/retro-simple-game-uri-adapter.vala',
'retro/retro-simple-type.vala',
'retro/retro-simple-types.vala',
diff --git a/src/retro/retro-runner-factory.vala b/src/retro/retro-runner-factory.vala
new file mode 100644
index 00000000..ef8300f3
--- /dev/null
+++ b/src/retro/retro-runner-factory.vala
@@ -0,0 +1,26 @@
+// This file is part of GNOME Games. License: GPL-3.0+.
+
+public class Games.RetroRunnerFactory : Object, RunnerFactory {
+ private RetroPlatform platform;
+
+ public RetroRunnerFactory (RetroPlatform platform) {
+ this.platform = platform;
+ }
+
+ public override Platform[] get_platforms () {
+ return { platform };
+ }
+
+ public Runner? create_runner (Game game) throws Error {
+ var core_source = new RetroCoreSource (platform);
+
+ var builder = new RetroRunnerBuilder ();
+ builder.core_source = core_source;
+ builder.uri = game.get_uri ();
+ builder.uid = game.get_uid ();
+ builder.title = game.name;
+ var runner = builder.to_runner ();
+
+ return runner;
+ }
+}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]