[gnome-games/wip/exalm/ds: 2/2] nintendo-ds-runner: Subclass RetroRunner
- From: Alexander Mikhaylenko <alexm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-games/wip/exalm/ds: 2/2] nintendo-ds-runner: Subclass RetroRunner
- Date: Wed, 19 Jun 2019 10:45:59 +0000 (UTC)
commit 02a6159c10f9de6dedb70a8bf3a707d863a51d67
Author: Alexander Mikhaylenko <exalm7659 gmail com>
Date: Wed Jun 19 15:44:20 2019 +0500
nintendo-ds-runner: Subclass RetroRunner
Instead of wrapping RetroRunner, subclass it.
plugins/nintendo-ds/src/nintendo-ds-plugin.vala | 2 +-
plugins/nintendo-ds/src/nintendo-ds-runner.vala | 72 ++++---------------------
2 files changed, 11 insertions(+), 63 deletions(-)
---
diff --git a/plugins/nintendo-ds/src/nintendo-ds-plugin.vala b/plugins/nintendo-ds/src/nintendo-ds-plugin.vala
index 20e98e69..c397fda2 100644
--- a/plugins/nintendo-ds/src/nintendo-ds-plugin.vala
+++ b/plugins/nintendo-ds/src/nintendo-ds-plugin.vala
@@ -51,7 +51,7 @@ private class Games.NintendoDsPlugin : Object, Plugin {
builder.uri = uri;
builder.uid = uid;
builder.title = title;
- var runner = new NintendoDsRunner (builder.to_runner ());
+ var runner = builder.to_runner (typeof (NintendoDsRunner)) as NintendoDsRunner;
var game = new GenericGame (uid, title, platform, runner);
game.set_icon (icon);
diff --git a/plugins/nintendo-ds/src/nintendo-ds-runner.vala b/plugins/nintendo-ds/src/nintendo-ds-runner.vala
index 98ec5712..2bfa91be 100644
--- a/plugins/nintendo-ds/src/nintendo-ds-runner.vala
+++ b/plugins/nintendo-ds/src/nintendo-ds-runner.vala
@@ -1,7 +1,6 @@
// This file is part of GNOME Games. License: GPL-3.0+.
-private class Games.NintendoDsRunner : Object, Runner {
- private RetroRunner runner;
+private class Games.NintendoDsRunner : RetroRunner {
private Settings settings;
private ulong settings_changed_id;
@@ -19,15 +18,13 @@ private class Games.NintendoDsRunner : Object, Runner {
layouts[Gdk.Key.@4] = "quick switch";
}
- public NintendoDsRunner (RetroRunner runner) {
- this.runner = runner;
-
- runner.game_init.connect (on_init);
- runner.game_deinit.connect (on_deinit);
+ construct {
+ game_init.connect (on_init);
+ game_deinit.connect (on_deinit);
}
private bool core_supports_layouts () {
- var core = runner.get_core ();
+ var core = get_core ();
return core != null && core.has_option (SCREENS_LAYOUT_OPTION);
}
@@ -36,7 +33,7 @@ private class Games.NintendoDsRunner : Object, Runner {
settings = new Settings ("org.gnome.Games.plugins.nintendo-ds");
settings_changed_id = settings.changed.connect (on_changed);
- var core = runner.get_core ();
+ var core = get_core ();
core.options_set.connect (update_screen_layout);
}
@@ -59,7 +56,7 @@ private class Games.NintendoDsRunner : Object, Runner {
if (!core_supports_layouts ())
return;
- var core = runner.get_core ();
+ var core = get_core ();
var option = core.get_option (SCREENS_LAYOUT_OPTION);
@@ -80,63 +77,14 @@ private class Games.NintendoDsRunner : Object, Runner {
}
}
- public bool can_fullscreen {
- get { return runner.can_fullscreen; }
- }
-
- public bool can_quit_safely {
- get { return runner.can_quit_safely; }
- }
-
- public bool can_resume {
- get { return runner.can_resume; }
- }
-
- public MediaSet? media_set {
- get { return runner.media_set; }
- }
-
- public InputMode input_mode {
- get { return runner.input_mode; }
- set { runner.input_mode = value; }
- }
-
- public bool check_is_valid (out string error_message) throws Error {
- return runner.check_is_valid (out error_message);
- }
-
- public Gtk.Widget get_display () {
- return runner.get_display ();
- }
-
- public Gtk.Widget? get_extra_widget () {
+ public override Gtk.Widget? get_extra_widget () {
if (!core_supports_layouts ())
return null;
return new NintendoDsLayoutSwitcher ();
}
- public void start () throws Error {
- runner.start ();
- }
-
- public void resume () throws Error {
- runner.resume ();
- }
-
- public void pause () {
- runner.pause ();
- }
-
- public void stop () {
- runner.stop ();
- }
-
- public InputMode[] get_available_input_modes () {
- return runner.get_available_input_modes ();
- }
-
- public bool key_press_event (Gdk.EventKey event) {
+ public override bool key_press_event (Gdk.EventKey event) {
// First check for Alt + 1|2|3|4
// These shortcuts change the screen layout
var default_modifiers = Gtk.accelerator_get_default_mod_mask ();
@@ -164,7 +112,7 @@ private class Games.NintendoDsRunner : Object, Runner {
return false;
}
- public bool gamepad_button_press_event (uint16 button) {
+ public override bool gamepad_button_press_event (uint16 button) {
if (button == EventCode.BTN_THUMBR)
return swap_screens ();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]