[gnome-games] master-system: Support Game Gear games
- From: Adrien Plazas <aplazas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-games] master-system: Support Game Gear games
- Date: Wed, 3 Aug 2016 14:44:45 +0000 (UTC)
commit 9878978fc0bf5dbbf41b1a394144eb76cf51b714
Author: Adrien Plazas <kekun plazas laposte net>
Date: Wed Aug 3 10:02:26 2016 +0200
master-system: Support Game Gear games
The Game Gear MIME type have been discriminated from the Master System
one, hence we need to explicitly look for Game Gear games.
https://bugzilla.gnome.org/show_bug.cgi?id=769472
.../master-system/src/master-system-plugin.vala | 31 ++++++++++++++++----
1 files changed, 25 insertions(+), 6 deletions(-)
---
diff --git a/plugins/master-system/src/master-system-plugin.vala
b/plugins/master-system/src/master-system-plugin.vala
index b39c8d9..6d05664 100644
--- a/plugins/master-system/src/master-system-plugin.vala
+++ b/plugins/master-system/src/master-system-plugin.vala
@@ -1,16 +1,22 @@
// This file is part of GNOME Games. License: GPLv3
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 MASTER_SYSTEM_PREFIX = "master-system";
+ private const string MASTER_SYSTEM_MIME_TYPE = "application/x-sms-rom";
+
+ private const string GAME_GEAR_PREFIX = "game-gear";
+ private const string GAME_GEAR_MIME_TYPE = "application/x-gamegear-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);
+ var master_system_query = new MimeTypeTrackerQuery (MASTER_SYSTEM_MIME_TYPE, game_for_uri);
+ var game_gear_query = new MimeTypeTrackerQuery (GAME_GEAR_MIME_TYPE, game_for_uri);
var connection = Tracker.Sparql.Connection.@get ();
var source = new TrackerGameSource (connection);
- source.add_query (query);
+ source.add_query (master_system_query);
+ source.add_query (game_gear_query);
return source;
}
@@ -20,10 +26,23 @@ private class Games.MasterSystemPlugin : Object, Plugin {
var header = new MasterSystemHeader (file);
header.check_validity ();
- var uid = new FingerprintUid (uri, FINGERPRINT_PREFIX);
+ string prefix;
+ string mime_type;
+ if (header.is_master_system ()) {
+ prefix = MASTER_SYSTEM_PREFIX;
+ mime_type = MASTER_SYSTEM_MIME_TYPE;
+ }
+ else if (header.is_game_gear ()) {
+ prefix = GAME_GEAR_PREFIX;
+ mime_type = GAME_GEAR_MIME_TYPE;
+ }
+ else
+ assert_not_reached ();
+
+ var uid = new FingerprintUid (uri, prefix);
var title = new FilenameTitle (uri);
var icon = new DummyIcon ();
- var media = new GriloMedia (title, MIME_TYPE);
+ var media = new GriloMedia (title, mime_type);
var cover = new GriloCover (media, uid);
var runner = new RetroRunner (MODULE_BASENAME, uri, uid, SUPPORTS_SNAPSHOTTING);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]