[rygel] all: Use GObject-style construction for MediaDevice



commit fda283ee288caff601d9f6e68216198e4f469af7
Author: Jens Georg <jensg openismus com>
Date:   Wed Dec 5 23:59:04 2012 +0100

    all: Use GObject-style construction for MediaDevice

 src/librygel-core/rygel-media-device.vala          |    4 +++-
 .../rygel-playbin-renderer.vala                    |    9 +++++++--
 src/librygel-renderer/rygel-media-renderer.vala    |   14 +++++++++++---
 src/librygel-server/rygel-media-server.vala        |   15 ++++++++++++---
 4 files changed, 33 insertions(+), 9 deletions(-)
---
diff --git a/src/librygel-core/rygel-media-device.vala b/src/librygel-core/rygel-media-device.vala
index e0d3b98..3ac71d7 100644
--- a/src/librygel-core/rygel-media-device.vala
+++ b/src/librygel-core/rygel-media-device.vala
@@ -41,8 +41,10 @@ public abstract class Rygel.MediaDevice : Object {
     private ContextManager manager;
 
     protected Rygel.Plugin plugin { get; protected set; }
+    public string title { construct; protected get; }
+    public PluginCapabilities capabilities { construct; protected get; }
 
-    public MediaDevice () {
+    public override void constructed () {
         this.manager = ContextManager.create (0);
         this.manager.context_available.connect (this.on_context_available);
         this.manager.context_unavailable.connect (this.on_context_unavailable);
diff --git a/src/librygel-renderer-gst/rygel-playbin-renderer.vala b/src/librygel-renderer-gst/rygel-playbin-renderer.vala
index 2f4a9af..a417b07 100644
--- a/src/librygel-renderer-gst/rygel-playbin-renderer.vala
+++ b/src/librygel-renderer-gst/rygel-playbin-renderer.vala
@@ -68,9 +68,14 @@ public class Rygel.Playbin.Renderer : Rygel.MediaDevice {
      * @param title Friendly name of the new UPnP renderer on the network.
      */
     public Renderer (string title) {
-        base ();
+        Object (title: title);
+    }
+
+    public override void constructed () {
+        base.constructed ();
+
         this.plugin = new Plugin ();
-        this.prepare_upnp (title);
+        this.prepare_upnp (this.title);
     }
 
     /**
diff --git a/src/librygel-renderer/rygel-media-renderer.vala b/src/librygel-renderer/rygel-media-renderer.vala
index f61a106..8fb02ec 100644
--- a/src/librygel-renderer/rygel-media-renderer.vala
+++ b/src/librygel-renderer/rygel-media-renderer.vala
@@ -43,6 +43,7 @@ internal class Plugin : Rygel.MediaRendererPlugin {
  * <link linkend="implementing-renderers">Implementing Renderers</link> section.
  */
 public class Rygel.MediaRenderer : MediaDevice {
+    public unowned MediaPlayer player { construct; private get; }
 
     /**
      * Create a RygelMediaRenderer to render content via a RygelMediaPlayer.
@@ -51,8 +52,15 @@ public class Rygel.MediaRenderer : MediaDevice {
                           MediaPlayer player,
                           PluginCapabilities capabilities =
                                         PluginCapabilities.NONE) {
-        base ();
-        this.plugin = new global::Plugin (player, capabilities);
-        this.plugin.title = title;
+        Object (title: title,
+                player: player,
+                capabilities: capabilities);
+    }
+
+    public override void constructed () {
+        base.constructed ();
+
+        this.plugin = new global::Plugin (this.player, this.capabilities);
+        this.plugin.title = this.title;
     }
 }
diff --git a/src/librygel-server/rygel-media-server.vala b/src/librygel-server/rygel-media-server.vala
index abc2d7f..42ad8ce 100644
--- a/src/librygel-server/rygel-media-server.vala
+++ b/src/librygel-server/rygel-media-server.vala
@@ -36,6 +36,7 @@ internal class Plugin : Rygel.MediaServerPlugin {
  * <link linkend="implementing-servers">Implementing Servers</link> section.
  */
 public class Rygel.MediaServer : MediaDevice {
+    public unowned MediaContainer root_container { construct; private get; }
 
     /**
      * Create a MediaServer to serve the media in the RygelMediaContainer.
@@ -50,8 +51,16 @@ public class Rygel.MediaServer : MediaDevice {
                         MediaContainer root_container,
                         PluginCapabilities capabilities =
                                         PluginCapabilities.NONE) {
-        base ();
-        this.plugin = new global::Plugin (root_container, capabilities);
-        this.plugin.title = title;
+        Object (title: title,
+                root_container : root_container,
+                capabilities: capabilities);
+    }
+
+    public override void constructed () {
+        base.constructed ();
+
+        this.plugin = new global::Plugin (this.root_container,
+                                          this.capabilities);
+        this.plugin.title = this.title;
     }
 }



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