[gnome-games/wip/exalm/rebrand: 37/102] Remove RunnerFactory




commit 9622796d6e0dc7d3c557af50868692b873c79d2c
Author: Alexander Mikhaylenko <alexm gnome org>
Date:   Mon Mar 29 22:27:42 2021 +0500

    Remove RunnerFactory
    
    Runner creation is now exactly same for all platforms.

 plugins/dreamcast/src/dreamcast-plugin.vala        |  6 ----
 plugins/game-cube/src/game-cube-plugin.vala        |  6 ----
 plugins/mame/src/mame-plugin.vala                  |  6 ----
 plugins/ms-dos/src/ms-dos-plugin.vala              |  6 ----
 plugins/nintendo-3ds/src/nintendo-3ds-plugin.vala  |  6 ----
 plugins/nintendo-64/src/nintendo-64-plugin.vala    |  6 ----
 plugins/nintendo-ds/src/nintendo-ds-plugin.vala    |  6 ----
 plugins/playstation/src/playstation-plugin.vala    |  6 ----
 plugins/sega-cd/src/sega-cd-plugin.vala            |  7 -----
 plugins/sega-saturn/src/sega-saturn-plugin.vala    |  6 ----
 .../turbografx-cd/src/turbografx-cd-plugin.vala    |  6 ----
 plugins/virtual-boy/src/virtual-boy-plugin.vala    |  6 ----
 plugins/wii/src/wii-plugin.vala                    |  6 ----
 src/core/game-collection.vala                      | 36 ++--------------------
 src/core/plugin.vala                               |  4 ---
 src/core/runner-factory.vala                       | 21 -------------
 src/meson.build                                    |  1 -
 src/ui/application.vala                            |  7 -----
 18 files changed, 3 insertions(+), 145 deletions(-)
---
diff --git a/plugins/dreamcast/src/dreamcast-plugin.vala b/plugins/dreamcast/src/dreamcast-plugin.vala
index 0de1b60c..781a99fa 100644
--- a/plugins/dreamcast/src/dreamcast-plugin.vala
+++ b/plugins/dreamcast/src/dreamcast-plugin.vala
@@ -32,12 +32,6 @@ private class Games.DreamcastPlugin : Object, Plugin {
                return { factory };
        }
 
-       public RunnerFactory[] get_runner_factories () {
-               var factory = new RunnerFactory (platform);
-
-               return { factory };
-       }
-
        private static string get_uid (DreamcastHeader header) throws Error {
                var product_number = header.get_product_number ();
                var areas = header.get_areas ();
diff --git a/plugins/game-cube/src/game-cube-plugin.vala b/plugins/game-cube/src/game-cube-plugin.vala
index 808c6fef..c457df21 100644
--- a/plugins/game-cube/src/game-cube-plugin.vala
+++ b/plugins/game-cube/src/game-cube-plugin.vala
@@ -28,12 +28,6 @@ private class Games.GameCubePlugin : Object, Plugin {
                return { factory };
        }
 
-       public RunnerFactory[] get_runner_factories () {
-               var factory = new RunnerFactory (platform);
-
-               return { factory };
-       }
-
        private static string get_uid (GameCubeHeader header) throws Error {
                var game_id = header.get_game_id ();
 
diff --git a/plugins/mame/src/mame-plugin.vala b/plugins/mame/src/mame-plugin.vala
index 130e5c61..ea24e7b6 100644
--- a/plugins/mame/src/mame-plugin.vala
+++ b/plugins/mame/src/mame-plugin.vala
@@ -30,12 +30,6 @@ private class Games.MamePlugin : Object, Plugin {
                return { factory };
        }
 
-       public RunnerFactory[] get_runner_factories () {
-               var factory = new RunnerFactory (platform);
-
-               return { factory };
-       }
-
        private static Game game_for_uri (Uri uri) throws Error {
                var supported_games = MameGameInfo.get_supported_games ();
 
diff --git a/plugins/ms-dos/src/ms-dos-plugin.vala b/plugins/ms-dos/src/ms-dos-plugin.vala
index 3eef229e..e900ae3d 100644
--- a/plugins/ms-dos/src/ms-dos-plugin.vala
+++ b/plugins/ms-dos/src/ms-dos-plugin.vala
@@ -24,12 +24,6 @@ private class Games.MsDosPlugin : Object, Plugin {
                return { factory };
        }
 
-       public RunnerFactory[] get_runner_factories () {
-               var factory = new RunnerFactory (platform, typeof (MsDosRunner));
-
-               return { factory };
-       }
-
        private static Game game_for_uri (Uri uri) throws Error {
                var uid = new Uid (Fingerprint.get_uid (uri, PLATFORM_UID_PREFIX));
                var title = new FilenameTitle (uri);
diff --git a/plugins/nintendo-3ds/src/nintendo-3ds-plugin.vala 
b/plugins/nintendo-3ds/src/nintendo-3ds-plugin.vala
index 81480acb..93d29561 100644
--- a/plugins/nintendo-3ds/src/nintendo-3ds-plugin.vala
+++ b/plugins/nintendo-3ds/src/nintendo-3ds-plugin.vala
@@ -31,12 +31,6 @@ private class Games.Nintendo3DsPlugin : Object, Plugin {
                return { factory };
        }
 
-       public RunnerFactory[] get_runner_factories () {
-               var factory = new RunnerFactory (platform, typeof (Nintendo3DsRunner));
-
-               return { factory };
-       }
-
        private static Game game_for_uri (Uri uri) throws Error {
                var uid = new Uid (Fingerprint.get_uid (uri, PLATFORM_UID_PREFIX));
                var title = new FilenameTitle (uri);
diff --git a/plugins/nintendo-64/src/nintendo-64-plugin.vala b/plugins/nintendo-64/src/nintendo-64-plugin.vala
index fda562d9..5d9b9154 100644
--- a/plugins/nintendo-64/src/nintendo-64-plugin.vala
+++ b/plugins/nintendo-64/src/nintendo-64-plugin.vala
@@ -28,12 +28,6 @@ private class Games.Nintendo64Plugin : Object, Plugin {
                return { factory };
        }
 
-       public RunnerFactory[] get_runner_factories () {
-               var factory = new RunnerFactory (platform, typeof (Nintendo64Runner));
-
-               return { factory };
-       }
-
        private static Game game_for_uri (Uri uri) throws Error {
 
                var uid = new Uid (Fingerprint.get_uid (uri, PLATFORM_UID_PREFIX));
diff --git a/plugins/nintendo-ds/src/nintendo-ds-plugin.vala b/plugins/nintendo-ds/src/nintendo-ds-plugin.vala
index df7d7fa2..e6d0adac 100644
--- a/plugins/nintendo-ds/src/nintendo-ds-plugin.vala
+++ b/plugins/nintendo-ds/src/nintendo-ds-plugin.vala
@@ -28,12 +28,6 @@ private class Games.NintendoDsPlugin : Object, Plugin {
                return { factory };
        }
 
-       public RunnerFactory[] get_runner_factories () {
-               var factory = new RunnerFactory (platform, typeof (NintendoDsRunner));
-
-               return { factory };
-       }
-
        private static Game game_for_uri (Uri uri) throws Error {
                var uid = new Uid (Fingerprint.get_uid (uri, PLATFORM_UID_PREFIX));
                var title = new FilenameTitle (uri);
diff --git a/plugins/playstation/src/playstation-plugin.vala b/plugins/playstation/src/playstation-plugin.vala
index 636ffdbc..7ec79d84 100644
--- a/plugins/playstation/src/playstation-plugin.vala
+++ b/plugins/playstation/src/playstation-plugin.vala
@@ -27,12 +27,6 @@ private class Games.PlayStation : Object, Plugin {
 
                return { factory };
        }
-
-       public RunnerFactory[] get_runner_factories () {
-               var factory = new RunnerFactory (platform);
-
-               return { factory };
-       }
 }
 
 [ModuleInit]
diff --git a/plugins/sega-cd/src/sega-cd-plugin.vala b/plugins/sega-cd/src/sega-cd-plugin.vala
index 9d2a0bd1..4c6cf92b 100644
--- a/plugins/sega-cd/src/sega-cd-plugin.vala
+++ b/plugins/sega-cd/src/sega-cd-plugin.vala
@@ -41,13 +41,6 @@ private class Games.SegaCDPlugin : Object, Plugin {
                return { factory };
        }
 
-       public RunnerFactory[] get_runner_factories () {
-               var factory_sega_cd = new RunnerFactory (platform_sega_cd);
-               var factory_sega_cd_32x = new RunnerFactory (platform_sega_cd_32x);
-
-               return { factory_sega_cd, factory_sega_cd_32x };
-       }
-
        private static Game game_for_uri (Uri uri) throws Error {
                var file = uri.to_file ();
                var file_info = file.query_info (FileAttribute.STANDARD_CONTENT_TYPE, 
FileQueryInfoFlags.NONE);
diff --git a/plugins/sega-saturn/src/sega-saturn-plugin.vala b/plugins/sega-saturn/src/sega-saturn-plugin.vala
index 566f2816..d6dfc720 100644
--- a/plugins/sega-saturn/src/sega-saturn-plugin.vala
+++ b/plugins/sega-saturn/src/sega-saturn-plugin.vala
@@ -34,12 +34,6 @@ private class Games.SegaSaturnPlugin : Object, Plugin {
                return { factory };
        }
 
-       public RunnerFactory[] get_runner_factories () {
-               var factory = new RunnerFactory (platform);
-
-               return { factory };
-       }
-
        private static string get_uid (SegaSaturnHeader header) throws Error {
                var product_number = header.get_product_number ();
                var areas = header.get_areas ();
diff --git a/plugins/turbografx-cd/src/turbografx-cd-plugin.vala 
b/plugins/turbografx-cd/src/turbografx-cd-plugin.vala
index 73bead54..23a66b05 100644
--- a/plugins/turbografx-cd/src/turbografx-cd-plugin.vala
+++ b/plugins/turbografx-cd/src/turbografx-cd-plugin.vala
@@ -32,12 +32,6 @@ private class Games.TurboGrafxCDPlugin : Object, Plugin {
                return { factory };
        }
 
-       public RunnerFactory[] get_runner_factories () {
-               var factory = new RunnerFactory (platform);
-
-               return { factory };
-       }
-
        private static Game game_for_uri (Uri uri) throws Error {
                if (!is_valid_disc (uri))
                        throw new TurboGrafxCDError.INVALID_DISC ("“%s” isn’t a valid TurboGrafx-CD disc.", 
uri.to_string ());
diff --git a/plugins/virtual-boy/src/virtual-boy-plugin.vala b/plugins/virtual-boy/src/virtual-boy-plugin.vala
index 191c8d9f..2e4b5144 100644
--- a/plugins/virtual-boy/src/virtual-boy-plugin.vala
+++ b/plugins/virtual-boy/src/virtual-boy-plugin.vala
@@ -28,12 +28,6 @@ private class Games.VirtualBoyPlugin : Object, Plugin {
                return { factory };
        }
 
-       public RunnerFactory[] get_runner_factories () {
-               var factory = new RunnerFactory (platform);
-
-               return { factory };
-       }
-
        private static Game game_for_uri (Uri uri) throws Error {
                var file = uri.to_file ();
 
diff --git a/plugins/wii/src/wii-plugin.vala b/plugins/wii/src/wii-plugin.vala
index 6344a6a0..3b4fcc65 100644
--- a/plugins/wii/src/wii-plugin.vala
+++ b/plugins/wii/src/wii-plugin.vala
@@ -28,12 +28,6 @@ private class Games.WiiPlugin : Object, Plugin {
                return { factory };
        }
 
-       public RunnerFactory[] get_runner_factories () {
-               var factory = new RunnerFactory (platform);
-
-               return { factory };
-       }
-
        private static string get_uid (WiiHeader header) throws Error {
                var game_id = header.get_game_id ();
 
diff --git a/src/core/game-collection.vala b/src/core/game-collection.vala
index 75a32d2c..c6bcc305 100644
--- a/src/core/game-collection.vala
+++ b/src/core/game-collection.vala
@@ -11,12 +11,10 @@ private class Games.GameCollection : Object {
        private HashTable<string, Game> cached_games;
        private UriSource[] sources;
        private UriGameFactory[] factories;
-       private RunnerFactory[] runner_factories;
        private Database database;
 
        private HashTable<string, Array<UriGameFactory>> factories_for_mime_type;
        private HashTable<string, Array<UriGameFactory>> factories_for_scheme;
-       private HashTable<Platform, Array<RunnerFactory>> runner_factories_for_platforms;
 
        private SourceFunc search_games_cb;
        private bool is_preloading_done;
@@ -31,7 +29,6 @@ private class Games.GameCollection : Object {
                cached_games = new HashTable<string, Game> (str_hash, str_equal);
                factories_for_mime_type = new HashTable<string, Array<UriGameFactory>> (str_hash, str_equal);
                factories_for_scheme = new HashTable<string, Array<UriGameFactory>> (str_hash, str_equal);
-               runner_factories_for_platforms = new HashTable<Platform, Array<RunnerFactory>> 
(Platform.hash, Platform.equal);
 
                add_source (database.get_uri_source ());
        }
@@ -58,16 +55,6 @@ private class Games.GameCollection : Object {
                factory.set_game_added_callback (store_game);
        }
 
-       public void add_runner_factory (RunnerFactory factory) {
-               runner_factories += factory;
-
-               foreach (var platform in factory.get_platforms ()) {
-                       if (!runner_factories_for_platforms.contains (platform))
-                               runner_factories_for_platforms[platform] = new Array<RunnerFactory> ();
-                       runner_factories_for_platforms[platform].append_val (factory);
-               }
-       }
-
        public string[] get_accepted_mime_types () {
                return factories_for_mime_type.get_keys_as_array ();
        }
@@ -173,27 +160,10 @@ private class Games.GameCollection : Object {
        }
 
        public Runner? create_runner (Game game) {
-               var platform = game.platform;
-
-               if (!runner_factories_for_platforms.contains (platform))
-                       return null;
-
-               var factories = runner_factories_for_platforms[platform];
-               if (factories == null)
-                       return null;
-
-               foreach (var factory in factories.data) {
-                       try {
-                               var runner = factory.create_runner (game);
-                               if (runner != null)
-                                       return runner;
-                       }
-                       catch (Error e) {
-                               critical ("Couldn't create runner: %s", e.message);
-                       }
-               }
+               var core_source = new RetroCoreSource (game.platform);
+               var type = game.platform.get_runner_type ();
 
-               return null;
+               return Object.new (type, game: game, core_source: core_source) as Runner;
        }
 
        private UriGameFactory[] get_factories_for_uri (Uri uri) {
diff --git a/src/core/plugin.vala b/src/core/plugin.vala
index 2ad946bc..10b241f0 100644
--- a/src/core/plugin.vala
+++ b/src/core/plugin.vala
@@ -12,8 +12,4 @@ public interface Games.Plugin : Object {
        public virtual UriGameFactory[] get_uri_game_factories () {
                return {};
        }
-
-       public virtual RunnerFactory[] get_runner_factories () {
-               return {};
-       }
 }
diff --git a/src/meson.build b/src/meson.build
index e41e2e4d..657128aa 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -46,7 +46,6 @@ vala_sources = [
   'core/plugin-registrar.vala',
   'core/runner.vala',
   'core/runner-error.vala',
-  'core/runner-factory.vala',
   'core/snapshot.vala',
   'core/snapshot-manager.vala',
   'core/title.vala',
diff --git a/src/ui/application.vala b/src/ui/application.vala
index c63a3d0e..1579dceb 100644
--- a/src/ui/application.vala
+++ b/src/ui/application.vala
@@ -459,10 +459,6 @@ public class Games.Application : Gtk.Application {
                        factory.add_mime_type (simple_type.mime_type);
 
                        game_collection.add_factory (factory);
-
-                       var runner_factory = new RunnerFactory (platform);
-
-                       game_collection.add_runner_factory (runner_factory);
                }
 
                /* Register game types from the plugins */
@@ -486,9 +482,6 @@ public class Games.Application : Gtk.Application {
 
                                foreach (var factory in plugin.get_uri_game_factories ())
                                        game_collection.add_factory (factory);
-
-                               foreach (var factory in plugin.get_runner_factories ())
-                                       game_collection.add_runner_factory (factory);
                        }
                        catch (Error e) {
                                debug ("Error: %s", e.message);


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