[gnome-games] retro-runner: Use video filter from gsettings



commit a34f351195ee0da43659f0b200db7737b1e9f565
Author: theawless <theawless gmail com>
Date:   Tue Feb 21 01:06:30 2017 +0530

    retro-runner: Use video filter from gsettings
    
    Load video filter from gsettings and update when it is changed.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=777987

 src/retro/retro-runner.vala |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)
---
diff --git a/src/retro/retro-runner.vala b/src/retro/retro-runner.vala
index c37facf..62e3447 100644
--- a/src/retro/retro-runner.vala
+++ b/src/retro/retro-runner.vala
@@ -50,6 +50,7 @@ public class Games.RetroRunner : Object, Runner {
        private RetroCoreSource core_source;
        private Uid uid;
        private InputCapabilities input_capabilities;
+       private Settings settings;
 
        private bool _running;
        private bool running {
@@ -108,6 +109,10 @@ public class Games.RetroRunner : Object, Runner {
                this.input_capabilities = null;
        }
 
+       construct {
+               settings = new Settings ("org.gnome.Games");
+       }
+
        ~RetroRunner () {
                if (!is_initialized)
                        return;
@@ -188,6 +193,8 @@ public class Games.RetroRunner : Object, Runner {
                        return;
 
                video = new Retro.CairoDisplay ();
+               settings.changed["video-filter"].connect (on_video_filter_changed);
+               on_video_filter_changed ();
 
                widget = new Gtk.EventBox ();
                widget.add (video);
@@ -223,6 +230,8 @@ public class Games.RetroRunner : Object, Runner {
                if (!is_initialized)
                        return;
 
+               settings.changed["video-filter"].disconnect (on_video_filter_changed);
+
                core = null;
                video = null;
                audio = null;
@@ -236,6 +245,12 @@ public class Games.RetroRunner : Object, Runner {
                should_save = false;
        }
 
+       private void on_video_filter_changed () {
+               var filter_name = settings.get_string ("video-filter");
+               var filter = Retro.VideoFilter.from_string (filter_name);
+               video.set_filter (filter);
+       }
+
        private void prepare_core () throws Error {
                string module_path;
                if (core_descriptor != null) {


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