[gnome-games] retro-runner: Add core_supports_snapshotting
- From: Adrien Plazas <aplazas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-games] retro-runner: Add core_supports_snapshotting
- Date: Fri, 25 Mar 2016 12:53:06 +0000 (UTC)
commit b043c074e3772fda65bba93e9c50f1806d868102
Author: Adrien Plazas <kekun plazas laposte net>
Date: Sun Mar 6 19:25:43 2016 +0100
retro-runner: Add core_supports_snapshotting
This will be used in the next commit to check if we can safely quit a
game.
plugins/amiga/src/amiga-plugin.vala | 3 ++-
plugins/atari-2600/src/atari-2600-plugin.vala | 3 ++-
plugins/atari-7800/src/atari-7800-plugin.vala | 3 ++-
plugins/doom/src/doom-plugin.vala | 3 ++-
plugins/dreamcast/src/dreamcast-plugin.vala | 3 ++-
.../src/game-boy-advance-plugin.vala | 3 ++-
plugins/game-boy/src/game-boy-plugin.vala | 3 ++-
plugins/game-cube/src/game-cube-plugin.vala | 3 ++-
plugins/mame/src/mame-game.vala | 3 ++-
.../master-system/src/master-system-plugin.vala | 3 ++-
plugins/mega-drive/src/mega-drive-plugin.vala | 3 ++-
.../neo-geo-pocket/src/neo-geo-pocket-plugin.vala | 3 ++-
plugins/nes/src/nes-plugin.vala | 3 ++-
plugins/nintendo-64/src/nintendo-64-plugin.vala | 3 ++-
plugins/nintendo-ds/src/nintendo-ds-plugin.vala | 3 ++-
plugins/pc-engine/src/pc-engine-plugin.vala | 3 ++-
plugins/sega-saturn/src/sega-saturn-game.vala | 3 ++-
plugins/snes/src/snes-plugin.vala | 3 ++-
plugins/wii-ware/src/wii-ware-plugin.vala | 3 ++-
plugins/wii/src/wii-plugin.vala | 3 ++-
src/retro/retro-runner.vala | 19 ++++++++++++++++++-
21 files changed, 58 insertions(+), 21 deletions(-)
---
diff --git a/plugins/amiga/src/amiga-plugin.vala b/plugins/amiga/src/amiga-plugin.vala
index e77bb47..a27b097 100644
--- a/plugins/amiga/src/amiga-plugin.vala
+++ b/plugins/amiga/src/amiga-plugin.vala
@@ -4,6 +4,7 @@ private class Games.AmigaPlugin : Object, Plugin {
private const string FINGERPRINT_PREFIX = "amiga";
private const string MIME_TYPE = "application/x-amiga-disk-format";
private const string MODULE_BASENAME = "libretro-amiga.so";
+ private const bool SUPPORTS_SNAPSHOTTING = false;
public GameSource get_game_source () throws Error {
var query = new MimeTypeTrackerQuery (MIME_TYPE, game_for_uri);
@@ -18,7 +19,7 @@ private class Games.AmigaPlugin : Object, Plugin {
var uid = new FingerprintUid (uri, FINGERPRINT_PREFIX);
var title = new FilenameTitle (uri);
var cover = new DummyCover ();
- var runner = new RetroRunner (MODULE_BASENAME, uri, uid);
+ var runner = new RetroRunner (MODULE_BASENAME, uri, uid, SUPPORTS_SNAPSHOTTING);
return new GenericGame (title, cover, runner);
}
diff --git a/plugins/atari-2600/src/atari-2600-plugin.vala b/plugins/atari-2600/src/atari-2600-plugin.vala
index ac339fb..683acfc 100644
--- a/plugins/atari-2600/src/atari-2600-plugin.vala
+++ b/plugins/atari-2600/src/atari-2600-plugin.vala
@@ -4,6 +4,7 @@ private class Games.Atari2600 : Object, Plugin {
private const string FINGERPRINT_PREFIX = "atari-2600";
private const string MIME_TYPE = "application/x-atari-2600-rom";
private const string MODULE_BASENAME = "libretro-atari-2600.so";
+ private const bool SUPPORTS_SNAPSHOTTING = false;
public GameSource get_game_source () throws Error {
var query = new MimeTypeTrackerQuery (MIME_TYPE, game_for_uri);
@@ -18,7 +19,7 @@ private class Games.Atari2600 : Object, Plugin {
var uid = new FingerprintUid (uri, FINGERPRINT_PREFIX);
var title = new FilenameTitle (uri);
var cover = new DummyCover ();
- var runner = new RetroRunner (MODULE_BASENAME, uri, uid);
+ var runner = new RetroRunner (MODULE_BASENAME, uri, uid, SUPPORTS_SNAPSHOTTING);
return new GenericGame (title, cover, runner);
}
diff --git a/plugins/atari-7800/src/atari-7800-plugin.vala b/plugins/atari-7800/src/atari-7800-plugin.vala
index 694ded1..5546b1a 100644
--- a/plugins/atari-7800/src/atari-7800-plugin.vala
+++ b/plugins/atari-7800/src/atari-7800-plugin.vala
@@ -4,6 +4,7 @@ private class Games.Atari7800 : Object, Plugin {
private const string FINGERPRINT_PREFIX = "atari-7800";
private const string MIME_TYPE = "application/x-atari-7800-rom";
private const string MODULE_BASENAME = "libretro-atari-7800.so";
+ private const bool SUPPORTS_SNAPSHOTTING = false;
public GameSource get_game_source () throws Error {
var query = new MimeTypeTrackerQuery (MIME_TYPE, game_for_uri);
@@ -18,7 +19,7 @@ private class Games.Atari7800 : Object, Plugin {
var uid = new FingerprintUid (uri, FINGERPRINT_PREFIX);
var title = new FilenameTitle (uri);
var cover = new DummyCover ();
- var runner = new RetroRunner (MODULE_BASENAME, uri, uid);
+ var runner = new RetroRunner (MODULE_BASENAME, uri, uid, SUPPORTS_SNAPSHOTTING);
return new GenericGame (title, cover, runner);
}
diff --git a/plugins/doom/src/doom-plugin.vala b/plugins/doom/src/doom-plugin.vala
index f0aa2ac..ac8b74c 100644
--- a/plugins/doom/src/doom-plugin.vala
+++ b/plugins/doom/src/doom-plugin.vala
@@ -4,6 +4,7 @@ private class Games.DoomPlugin : Object, Plugin {
private const string FINGERPRINT_PREFIX = "doom";
private const string MIME_TYPE = "application/x-doom-wad";
private const string MODULE_BASENAME = "libretro-doom.so";
+ private const bool SUPPORTS_SNAPSHOTTING = false;
public GameSource get_game_source () throws Error {
var query = new MimeTypeTrackerQuery (MIME_TYPE, game_for_uri);
@@ -18,7 +19,7 @@ private class Games.DoomPlugin : Object, Plugin {
var uid = new FingerprintUid (uri, FINGERPRINT_PREFIX);
var title = new FilenameTitle (uri);
var cover = new DummyCover ();
- var runner = new RetroRunner (MODULE_BASENAME, uri, uid);
+ var runner = new RetroRunner (MODULE_BASENAME, uri, uid, SUPPORTS_SNAPSHOTTING);
return new GenericGame (title, cover, runner);
}
diff --git a/plugins/dreamcast/src/dreamcast-plugin.vala b/plugins/dreamcast/src/dreamcast-plugin.vala
index a938331..7745329 100644
--- a/plugins/dreamcast/src/dreamcast-plugin.vala
+++ b/plugins/dreamcast/src/dreamcast-plugin.vala
@@ -3,6 +3,7 @@
private class Games.DreamcastPlugin : Object, Plugin {
private const string MIME_TYPE = "application/x-dc-rom";
private const string MODULE_BASENAME = "libretro-dreamcast.so";
+ private const bool SUPPORTS_SNAPSHOTTING = false;
public GameSource get_game_source () throws Error {
var query = new MimeTypeTrackerQuery (MIME_TYPE, game_for_uri);
@@ -21,7 +22,7 @@ private class Games.DreamcastPlugin : Object, Plugin {
var uid = new DreamcastUid (header);
var title = new FilenameTitle (uri);
var cover = new DummyCover ();
- var runner = new RetroRunner (MODULE_BASENAME, uri, uid);
+ var runner = new RetroRunner (MODULE_BASENAME, uri, uid, SUPPORTS_SNAPSHOTTING);
return new GenericGame (title, cover, runner);
}
diff --git a/plugins/game-boy-advance/src/game-boy-advance-plugin.vala
b/plugins/game-boy-advance/src/game-boy-advance-plugin.vala
index 7a22396..28d4bf3 100644
--- a/plugins/game-boy-advance/src/game-boy-advance-plugin.vala
+++ b/plugins/game-boy-advance/src/game-boy-advance-plugin.vala
@@ -4,6 +4,7 @@ private class Games.GameBoyAdvancePlugin : Object, Plugin {
private const string FINGERPRINT_PREFIX = "game-boy-advance";
private const string MIME_TYPE = "application/x-gba-rom";
private const string MODULE_BASENAME = "libretro-game-boy-advance.so";
+ private const bool SUPPORTS_SNAPSHOTTING = true;
public GameSource get_game_source () throws Error {
var query = new MimeTypeTrackerQuery (MIME_TYPE, game_for_uri);
@@ -18,7 +19,7 @@ private class Games.GameBoyAdvancePlugin : Object, Plugin {
var uid = new FingerprintUid (uri, FINGERPRINT_PREFIX);
var title = new FilenameTitle (uri);
var cover = new DummyCover ();
- var runner = new RetroRunner (MODULE_BASENAME, uri, uid);
+ var runner = new RetroRunner (MODULE_BASENAME, uri, uid, SUPPORTS_SNAPSHOTTING);
return new GenericGame (title, cover, runner);
}
diff --git a/plugins/game-boy/src/game-boy-plugin.vala b/plugins/game-boy/src/game-boy-plugin.vala
index 5f5f0c1..78ef0d5 100644
--- a/plugins/game-boy/src/game-boy-plugin.vala
+++ b/plugins/game-boy/src/game-boy-plugin.vala
@@ -4,6 +4,7 @@ private class Games.GameBoyPlugin : Object, Plugin {
private const string FINGERPRINT_PREFIX = "game-boy";
private const string MIME_TYPE = "application/x-gameboy-rom";
private const string MODULE_BASENAME = "libretro-game-boy.so";
+ private const bool SUPPORTS_SNAPSHOTTING = true;
public GameSource get_game_source () throws Error {
var query = new MimeTypeTrackerQuery (MIME_TYPE, game_for_uri);
@@ -22,7 +23,7 @@ private class Games.GameBoyPlugin : Object, Plugin {
var uid = new FingerprintUid (uri, FINGERPRINT_PREFIX);
var title = new FilenameTitle (uri);
var cover = new DummyCover ();
- var runner = new RetroRunner (MODULE_BASENAME, uri, uid);
+ var runner = new RetroRunner (MODULE_BASENAME, uri, uid, SUPPORTS_SNAPSHOTTING);
return new GenericGame (title, cover, runner);
}
diff --git a/plugins/game-cube/src/game-cube-plugin.vala b/plugins/game-cube/src/game-cube-plugin.vala
index d9e41ff..2e32bb8 100644
--- a/plugins/game-cube/src/game-cube-plugin.vala
+++ b/plugins/game-cube/src/game-cube-plugin.vala
@@ -3,6 +3,7 @@
private class Games.GameCubePlugin : Object, Plugin {
private const string MIME_TYPE = "application/x-gamecube-rom";
private const string MODULE_BASENAME = "libretro-game-cube.so";
+ private const bool SUPPORTS_SNAPSHOTTING = false;
public GameSource get_game_source () throws Error {
var query = new MimeTypeTrackerQuery (MIME_TYPE, game_for_uri);
@@ -21,7 +22,7 @@ private class Games.GameCubePlugin : Object, Plugin {
var uid = new GameCubeUid (header);
var title = new FilenameTitle (uri);
var cover = new DummyCover ();
- var runner = new RetroRunner (MODULE_BASENAME, uri, uid);
+ var runner = new RetroRunner (MODULE_BASENAME, uri, uid, SUPPORTS_SNAPSHOTTING);
return new GenericGame (title, cover, runner);
}
diff --git a/plugins/mame/src/mame-game.vala b/plugins/mame/src/mame-game.vala
index 0c6d4e5..7f355e2 100644
--- a/plugins/mame/src/mame-game.vala
+++ b/plugins/mame/src/mame-game.vala
@@ -3,6 +3,7 @@
private class Games.MameGame : Object, Game {
private const string FINGERPRINT_PREFIX = "mame";
private const string MODULE_BASENAME = "libretro-mame.so";
+ private const bool SUPPORTS_SNAPSHOTTING = false;
private FingerprintUid _uid;
public FingerprintUid uid {
@@ -45,6 +46,6 @@ private class Games.MameGame : Object, Game {
}
public Runner get_runner () throws Error {
- return new RetroRunner (MODULE_BASENAME, uri, uid);
+ return new RetroRunner (MODULE_BASENAME, uri, uid, SUPPORTS_SNAPSHOTTING);
}
}
diff --git a/plugins/master-system/src/master-system-plugin.vala
b/plugins/master-system/src/master-system-plugin.vala
index f65154e..5aef3aa 100644
--- a/plugins/master-system/src/master-system-plugin.vala
+++ b/plugins/master-system/src/master-system-plugin.vala
@@ -4,6 +4,7 @@ private class Games.MasterSystemPlugin : Object, Plugin {
private const string FINGERPRINT_PREFIX = "master-system";
private const string MIME_TYPE = "application/x-sms-rom";
private const string MODULE_BASENAME = "libretro-master-system.so";
+ private const bool SUPPORTS_SNAPSHOTTING = true;
public GameSource get_game_source () throws Error {
var query = new MimeTypeTrackerQuery (MIME_TYPE, game_for_uri);
@@ -22,7 +23,7 @@ private class Games.MasterSystemPlugin : Object, Plugin {
var uid = new FingerprintUid (uri, FINGERPRINT_PREFIX);
var title = new FilenameTitle (uri);
var cover = new DummyCover ();
- var runner = new RetroRunner (MODULE_BASENAME, uri, uid);
+ var runner = new RetroRunner (MODULE_BASENAME, uri, uid, SUPPORTS_SNAPSHOTTING);
return new GenericGame (title, cover, runner);
}
diff --git a/plugins/mega-drive/src/mega-drive-plugin.vala b/plugins/mega-drive/src/mega-drive-plugin.vala
index bc6da12..775d968 100644
--- a/plugins/mega-drive/src/mega-drive-plugin.vala
+++ b/plugins/mega-drive/src/mega-drive-plugin.vala
@@ -4,6 +4,7 @@ private class Games.MegaDrivePlugin : Object, Plugin {
private const string FINGERPRINT_PREFIX = "mega-drive";
private const string MIME_TYPE = "application/x-genesis-rom";
private const string MODULE_BASENAME = "libretro-pc-engine.so";
+ private const bool SUPPORTS_SNAPSHOTTING = true;
public GameSource get_game_source () throws Error {
var query = new MimeTypeTrackerQuery (MIME_TYPE, game_for_uri);
@@ -22,7 +23,7 @@ private class Games.MegaDrivePlugin : Object, Plugin {
var uid = new FingerprintUid (uri, FINGERPRINT_PREFIX);
var title = new FilenameTitle (uri);
var cover = new DummyCover ();
- var runner = new RetroRunner (MODULE_BASENAME, uri, uid);
+ var runner = new RetroRunner (MODULE_BASENAME, uri, uid, SUPPORTS_SNAPSHOTTING);
return new GenericGame (title, cover, runner);
}
diff --git a/plugins/neo-geo-pocket/src/neo-geo-pocket-plugin.vala
b/plugins/neo-geo-pocket/src/neo-geo-pocket-plugin.vala
index 87b82e0..d92141a 100644
--- a/plugins/neo-geo-pocket/src/neo-geo-pocket-plugin.vala
+++ b/plugins/neo-geo-pocket/src/neo-geo-pocket-plugin.vala
@@ -4,6 +4,7 @@ private class Games.NeoGeoPocketPlugin : Object, Plugin {
private const string FINGERPRINT_PREFIX = "neo-geo-pocket";
private const string MIME_TYPE = "application/x-neo-geo-pocket-rom";
private const string MODULE_BASENAME = "libretro-neo-geo-pocket.so";
+ private const bool SUPPORTS_SNAPSHOTTING = true;
public GameSource get_game_source () throws Error {
var query = new MimeTypeTrackerQuery (MIME_TYPE, game_for_uri);
@@ -18,7 +19,7 @@ private class Games.NeoGeoPocketPlugin : Object, Plugin {
var uid = new FingerprintUid (uri, FINGERPRINT_PREFIX);
var title = new FilenameTitle (uri);
var cover = new DummyCover ();
- var runner = new RetroRunner (MODULE_BASENAME, uri, uid);
+ var runner = new RetroRunner (MODULE_BASENAME, uri, uid, SUPPORTS_SNAPSHOTTING);
return new GenericGame (title, cover, runner);
}
diff --git a/plugins/nes/src/nes-plugin.vala b/plugins/nes/src/nes-plugin.vala
index 7d3192b..3a76025 100644
--- a/plugins/nes/src/nes-plugin.vala
+++ b/plugins/nes/src/nes-plugin.vala
@@ -4,6 +4,7 @@ private class Games.NesPlugin : Object, Plugin {
private const string FINGERPRINT_PREFIX = "nes";
private const string MIME_TYPE = "application/x-nes-rom";
private const string MODULE_BASENAME = "libretro-nes.so";
+ private const bool SUPPORTS_SNAPSHOTTING = true;
public GameSource get_game_source () throws Error {
var query = new MimeTypeTrackerQuery (MIME_TYPE, game_for_uri);
@@ -18,7 +19,7 @@ private class Games.NesPlugin : Object, Plugin {
var uid = new FingerprintUid (uri, FINGERPRINT_PREFIX);
var title = new FilenameTitle (uri);
var cover = new DummyCover ();
- var runner = new RetroRunner (MODULE_BASENAME, uri, uid);
+ var runner = new RetroRunner (MODULE_BASENAME, uri, uid, SUPPORTS_SNAPSHOTTING);
return new GenericGame (title, cover, runner);
}
diff --git a/plugins/nintendo-64/src/nintendo-64-plugin.vala b/plugins/nintendo-64/src/nintendo-64-plugin.vala
index 9afdab8..8151179 100644
--- a/plugins/nintendo-64/src/nintendo-64-plugin.vala
+++ b/plugins/nintendo-64/src/nintendo-64-plugin.vala
@@ -4,6 +4,7 @@ private class Games.Nintendo64Plugin : Object, Plugin {
private const string FINGERPRINT_PREFIX = "nintendo-64";
private const string MIME_TYPE = "application/x-n64-rom";
private const string MODULE_BASENAME = "libretro-nintendo-64.so";
+ private const bool SUPPORTS_SNAPSHOTTING = false;
public GameSource get_game_source () throws Error {
var query = new MimeTypeTrackerQuery (MIME_TYPE, game_for_uri);
@@ -18,7 +19,7 @@ private class Games.Nintendo64Plugin : Object, Plugin {
var uid = new FingerprintUid (uri, FINGERPRINT_PREFIX);
var title = new FilenameTitle (uri);
var cover = new DummyCover ();
- var runner = new RetroRunner (MODULE_BASENAME, uri, uid);
+ var runner = new RetroRunner (MODULE_BASENAME, uri, uid, SUPPORTS_SNAPSHOTTING);
return new GenericGame (title, cover, runner);
}
diff --git a/plugins/nintendo-ds/src/nintendo-ds-plugin.vala b/plugins/nintendo-ds/src/nintendo-ds-plugin.vala
index 333e975..cf45391 100644
--- a/plugins/nintendo-ds/src/nintendo-ds-plugin.vala
+++ b/plugins/nintendo-ds/src/nintendo-ds-plugin.vala
@@ -4,6 +4,7 @@ private class Games.NintendoDsPlugin : Object, Plugin {
private const string FINGERPRINT_PREFIX = "nintendo-ds";
private const string MIME_TYPE = "application/x-nintendo-ds-rom";
private const string MODULE_BASENAME = "libretro-nintendo-ds.so";
+ private const bool SUPPORTS_SNAPSHOTTING = false;
public GameSource get_game_source () throws Error {
var query = new MimeTypeTrackerQuery (MIME_TYPE, game_for_uri);
@@ -18,7 +19,7 @@ private class Games.NintendoDsPlugin : Object, Plugin {
var uid = new FingerprintUid (uri, FINGERPRINT_PREFIX);
var title = new FilenameTitle (uri);
var cover = new DummyCover ();
- var runner = new RetroRunner (MODULE_BASENAME, uri, uid);
+ var runner = new RetroRunner (MODULE_BASENAME, uri, uid, SUPPORTS_SNAPSHOTTING);
return new GenericGame (title, cover, runner);
}
diff --git a/plugins/pc-engine/src/pc-engine-plugin.vala b/plugins/pc-engine/src/pc-engine-plugin.vala
index 7539751..59a74cf 100644
--- a/plugins/pc-engine/src/pc-engine-plugin.vala
+++ b/plugins/pc-engine/src/pc-engine-plugin.vala
@@ -4,6 +4,7 @@ private class Games.PcEnginePlugin : Object, Plugin {
private const string FINGERPRINT_PREFIX = "pc-engine";
private const string MIME_TYPE = "application/x-pc-engine-rom";
private const string MODULE_BASENAME = "libretro-pc-engine.so";
+ private const bool SUPPORTS_SNAPSHOTTING = true;
public GameSource get_game_source () throws Error {
var query = new MimeTypeTrackerQuery (MIME_TYPE, game_for_uri);
@@ -18,7 +19,7 @@ private class Games.PcEnginePlugin : Object, Plugin {
var uid = new FingerprintUid (uri, FINGERPRINT_PREFIX);
var title = new FilenameTitle (uri);
var cover = new DummyCover ();
- var runner = new RetroRunner (MODULE_BASENAME, uri, uid);
+ var runner = new RetroRunner (MODULE_BASENAME, uri, uid, SUPPORTS_SNAPSHOTTING);
return new GenericGame (title, cover, runner);
}
diff --git a/plugins/sega-saturn/src/sega-saturn-game.vala b/plugins/sega-saturn/src/sega-saturn-game.vala
index 6979c9e..f47f7d3 100644
--- a/plugins/sega-saturn/src/sega-saturn-game.vala
+++ b/plugins/sega-saturn/src/sega-saturn-game.vala
@@ -2,6 +2,7 @@
private class Games.SegaSaturnGame : Object, Game {
private const string MODULE_BASENAME = "libretro-saturn.so";
+ private const bool SUPPORTS_SNAPSHOTTING = false;
private SegaSaturnUid _uid;
public SegaSaturnUid uid {
@@ -43,7 +44,7 @@ private class Games.SegaSaturnGame : Object, Game {
}
public Runner get_runner () throws Error {
- return new RetroRunner (MODULE_BASENAME, uri, uid);
+ return new RetroRunner (MODULE_BASENAME, uri, uid, SUPPORTS_SNAPSHOTTING);
}
private string? get_associated_cue_sheet (File file) throws Error {
diff --git a/plugins/snes/src/snes-plugin.vala b/plugins/snes/src/snes-plugin.vala
index 5a4c91c..6038a43 100644
--- a/plugins/snes/src/snes-plugin.vala
+++ b/plugins/snes/src/snes-plugin.vala
@@ -4,6 +4,7 @@ private class Games.SnesPlugin : Object, Plugin {
private const string FINGERPRINT_PREFIX = "snes";
private const string MIME_TYPE = "application/vnd.nintendo.snes.rom";
private const string MODULE_BASENAME = "libretro-snes.so";
+ private const bool SUPPORTS_SNAPSHOTTING = true;
public GameSource get_game_source () throws Error {
var query = new MimeTypeTrackerQuery (MIME_TYPE, game_for_uri);
@@ -18,7 +19,7 @@ private class Games.SnesPlugin : Object, Plugin {
var uid = new FingerprintUid (uri, FINGERPRINT_PREFIX);
var title = new FilenameTitle (uri);
var cover = new DummyCover ();
- var runner = new RetroRunner (MODULE_BASENAME, uri, uid);
+ var runner = new RetroRunner (MODULE_BASENAME, uri, uid, SUPPORTS_SNAPSHOTTING);
return new GenericGame (title, cover, runner);
}
diff --git a/plugins/wii-ware/src/wii-ware-plugin.vala b/plugins/wii-ware/src/wii-ware-plugin.vala
index 30c944d..11bb521 100644
--- a/plugins/wii-ware/src/wii-ware-plugin.vala
+++ b/plugins/wii-ware/src/wii-ware-plugin.vala
@@ -4,6 +4,7 @@ private class Games.WiiWarePlugin : Object, Plugin {
private const string FINGERPRINT_PREFIX = "wii-ware";
private const string MIME_TYPE = "application/x-wii-wad";
private const string MODULE_BASENAME = "libretro-wii.so";
+ private const bool SUPPORTS_SNAPSHOTTING = false;
public GameSource get_game_source () throws Error {
var query = new MimeTypeTrackerQuery (MIME_TYPE, game_for_uri);
@@ -18,7 +19,7 @@ private class Games.WiiWarePlugin : Object, Plugin {
var uid = new FingerprintUid (uri, FINGERPRINT_PREFIX);
var title = new FilenameTitle (uri);
var cover = new DummyCover ();
- var runner = new RetroRunner (MODULE_BASENAME, uri, uid);
+ var runner = new RetroRunner (MODULE_BASENAME, uri, uid, SUPPORTS_SNAPSHOTTING);
return new GenericGame (title, cover, runner);
}
diff --git a/plugins/wii/src/wii-plugin.vala b/plugins/wii/src/wii-plugin.vala
index 5e91bb5..89dbc51 100644
--- a/plugins/wii/src/wii-plugin.vala
+++ b/plugins/wii/src/wii-plugin.vala
@@ -3,6 +3,7 @@
private class Games.WiiPlugin : Object, Plugin {
private const string MIME_TYPE = "application/x-wii-rom";
private const string MODULE_BASENAME = "libretro-wii.so";
+ private const bool SUPPORTS_SNAPSHOTTING = false;
public GameSource get_game_source () throws Error {
var query = new MimeTypeTrackerQuery (MIME_TYPE, game_for_uri);
@@ -21,7 +22,7 @@ private class Games.WiiPlugin : Object, Plugin {
var uid = new WiiUid (header);
var title = new FilenameTitle (uri);
var cover = new DummyCover ();
- var runner = new RetroRunner (MODULE_BASENAME, uri, uid);
+ var runner = new RetroRunner (MODULE_BASENAME, uri, uid, SUPPORTS_SNAPSHOTTING);
return new GenericGame (title, cover, runner);
}
diff --git a/src/retro/retro-runner.vala b/src/retro/retro-runner.vala
index ee9f559..0c87340 100644
--- a/src/retro/retro-runner.vala
+++ b/src/retro/retro-runner.vala
@@ -3,6 +3,9 @@
public class Games.RetroRunner : Object, Runner {
public bool can_resume {
get {
+ if (!core_supports_snapshotting)
+ return false;
+
try {
var snapshot_path = get_snapshot_path ();
var file = File.new_for_path (snapshot_path);
@@ -36,6 +39,7 @@ public class Games.RetroRunner : Object, Runner {
private string module_basename;
private string uri;
private Uid uid;
+ private bool core_supports_snapshotting;
private bool _running;
private bool running {
@@ -54,7 +58,7 @@ public class Games.RetroRunner : Object, Runner {
private bool is_ready;
private bool should_save;
- public RetroRunner (string module_basename, string uri, Uid uid) {
+ public RetroRunner (string module_basename, string uri, Uid uid, bool core_supports_snapshotting) {
is_initialized = false;
is_ready = false;
should_save = false;
@@ -62,6 +66,7 @@ public class Games.RetroRunner : Object, Runner {
this.module_basename = module_basename;
this.uri = uri;
this.uid = uid;
+ this.core_supports_snapshotting = core_supports_snapshotting;
}
~RetroRunner () {
@@ -290,6 +295,9 @@ public class Games.RetroRunner : Object, Runner {
}
private void save_snapshot () throws Error {
+ if (!core_supports_snapshotting)
+ return;
+
var size = core.serialize_size ();
var buffer = new uint8[size];
@@ -305,6 +313,9 @@ public class Games.RetroRunner : Object, Runner {
}
private void load_snapshot () throws Error {
+ if (!core_supports_snapshotting)
+ return;
+
var snapshot_path = get_snapshot_path ();
if (!FileUtils.test (snapshot_path, FileTest.EXISTS))
@@ -333,6 +344,9 @@ public class Games.RetroRunner : Object, Runner {
}
private void save_screenshot () throws Error {
+ if (!core_supports_snapshotting)
+ return;
+
var pixbuf = video.pixbuf;
if (pixbuf == null)
return;
@@ -343,6 +357,9 @@ public class Games.RetroRunner : Object, Runner {
}
private void load_screenshot () throws Error {
+ if (!core_supports_snapshotting)
+ return;
+
var screenshot_path = get_screenshot_path ();
if (!FileUtils.test (screenshot_path, FileTest.EXISTS))
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]