[gnome-games] nes: Provide support for FDS games
- From: Adrien Plazas <aplazas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-games] nes: Provide support for FDS games
- Date: Fri, 10 Feb 2017 07:55:51 +0000 (UTC)
commit 23051752f0855afe6c3e52da0d2212e82d882cbc
Author: Radhika Dua <radhikadua1997 gmail com>
Date: Fri Feb 10 10:35:15 2017 +0530
nes: Provide support for FDS games
This commit makes the plugin to list FDS games via the corresponding MIME type.
https://bugzilla.gnome.org/show_bug.cgi?id=778317
plugins/nes/src/nes-plugin.vala | 41 +++++++++++++++++++++++++++++---------
1 files changed, 31 insertions(+), 10 deletions(-)
---
diff --git a/plugins/nes/src/nes-plugin.vala b/plugins/nes/src/nes-plugin.vala
index 4b650fc..1e61bab 100644
--- a/plugins/nes/src/nes-plugin.vala
+++ b/plugins/nes/src/nes-plugin.vala
@@ -1,31 +1,52 @@
// This file is part of GNOME Games. License: GPLv3
private class Games.NesPlugin : Object, Plugin {
- private const string FINGERPRINT_PREFIX = "nes";
- private const string MIME_TYPE = "application/x-nes-rom";
+ private const string NES_FINGERPRINT_PREFIX = "nes";
+ private const string NES_MIME_TYPE = "application/x-nes-rom";
+
+ private const string FDS_FINGERPRINT_PREFIX = "fds";
+ private const string FDS_MIME_TYPE = "application/x-fds-disk";
+
private const string MODULE_BASENAME = "libretro-nes.so";
private const bool SUPPORTS_SNAPSHOTTING = true;
public GameSource get_game_source () throws Error {
- var game_uri_adapter = new GenericSyncGameUriAdapter (game_for_uri);
- var factory = new GenericUriGameFactory (game_uri_adapter);
- var query = new MimeTypeTrackerQuery (MIME_TYPE, factory);
+ var nes_game_uri_adapter = new GenericSyncGameUriAdapter (nes_game_for_uri);
+ var fds_game_uri_adapter = new GenericSyncGameUriAdapter (fds_game_for_uri);
+ var nes_factory = new GenericUriGameFactory (nes_game_uri_adapter);
+ var fds_factory = new GenericUriGameFactory (fds_game_uri_adapter);
+ var nes_query = new MimeTypeTrackerQuery (NES_MIME_TYPE, nes_factory);
+ var fds_query = new MimeTypeTrackerQuery (FDS_MIME_TYPE, fds_factory);
var connection = Tracker.Sparql.Connection.@get ();
var source = new TrackerGameSource (connection);
- source.add_query (query);
+ source.add_query (nes_query);
+ source.add_query (fds_query);
return source;
}
- private static Game game_for_uri (string uri) throws Error {
- var uid = new FingerprintUid (uri, FINGERPRINT_PREFIX);
+ private static Game nes_game_for_uri (string uri) throws Error {
+ var uid = new FingerprintUid (uri, NES_FINGERPRINT_PREFIX);
+ var title = new FilenameTitle (uri);
+ var icon = new DummyIcon ();
+ var media = new GriloMedia (title, NES_MIME_TYPE);
+ var cover = new CompositeCover ({
+ new LocalCover (uri),
+ new GriloCover (media, uid)});
+ var runner = new RetroRunner (uri, uid, { NES_MIME_TYPE }, MODULE_BASENAME,
SUPPORTS_SNAPSHOTTING);
+
+ return new GenericGame (title, icon, cover, runner);
+ }
+
+ private static Game fds_game_for_uri (string uri) throws Error {
+ var uid = new FingerprintUid (uri, FDS_FINGERPRINT_PREFIX);
var title = new FilenameTitle (uri);
var icon = new DummyIcon ();
- var media = new GriloMedia (title, MIME_TYPE);
+ var media = new GriloMedia (title, FDS_MIME_TYPE);
var cover = new CompositeCover ({
new LocalCover (uri),
new GriloCover (media, uid)});
- var runner = new RetroRunner (uri, uid, { MIME_TYPE }, MODULE_BASENAME,
SUPPORTS_SNAPSHOTTING);
+ var runner = new RetroRunner (uri, uid, { FDS_MIME_TYPE }, MODULE_BASENAME,
SUPPORTS_SNAPSHOTTING);
return new GenericGame (title, icon, cover, runner);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]