[rygel] renderer-gst: Base on MediaRenderer class
- From: Jens Georg <jensgeorg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [rygel] renderer-gst: Base on MediaRenderer class
- Date: Wed, 5 Dec 2012 23:57:36 +0000 (UTC)
commit a6ae6de0bb95b1feec289673b08bb3e43caa787d
Author: Jens Georg <jensg openismus com>
Date: Thu Dec 6 00:32:56 2012 +0100
renderer-gst: Base on MediaRenderer class
src/librygel-core/rygel-media-device.vala | 8 +++-
.../rygel-playbin-renderer.vala | 43 ++-----------------
.../rygel-media-renderer-plugin.vala | 1 -
src/librygel-renderer/rygel-media-renderer.vala | 6 ++-
src/librygel-server/rygel-media-server.vala | 6 ++-
5 files changed, 19 insertions(+), 45 deletions(-)
---
diff --git a/src/librygel-core/rygel-media-device.vala b/src/librygel-core/rygel-media-device.vala
index 3ac71d7..e6a2d5b 100644
--- a/src/librygel-core/rygel-media-device.vala
+++ b/src/librygel-core/rygel-media-device.vala
@@ -40,9 +40,13 @@ public abstract class Rygel.MediaDevice : Object {
private HashMap<string, DeviceContext> devices;
private ContextManager manager;
- protected Rygel.Plugin plugin { get; protected set; }
+ public Rygel.Plugin plugin { construct set; protected get; }
public string title { construct; protected get; }
- public PluginCapabilities capabilities { construct; protected get; }
+ public PluginCapabilities capabilities {
+ construct;
+ protected get;
+ default = PluginCapabilities.NONE;
+ }
public override void constructed () {
this.manager = ContextManager.create (0);
diff --git a/src/librygel-renderer-gst/rygel-playbin-renderer.vala b/src/librygel-renderer-gst/rygel-playbin-renderer.vala
index a417b07..451ff90 100644
--- a/src/librygel-renderer-gst/rygel-playbin-renderer.vala
+++ b/src/librygel-renderer-gst/rygel-playbin-renderer.vala
@@ -22,24 +22,6 @@
using Gee;
using GUPnP;
-internal class Rygel.Playbin.WrappingPlugin : Rygel.MediaRendererPlugin {
- private MediaPlayer player;
-
- public WrappingPlugin (Gst.Element playbin) {
- base ("LibRygel-Renderer", _("LibRygel Renderer"));
-
- return_val_if_fail (playbin != null, null);
- return_val_if_fail (playbin.get_type ().name() == "GstPlayBin", null);
-
- this.player = new Player.wrap (playbin);
- }
-
-
- public override MediaPlayer? get_player () {
- return this.player;
- }
-}
-
/**
* An in-process UPnP renderer that uses a GStreamer Playbin2 element.
*
@@ -58,7 +40,7 @@ internal class Rygel.Playbin.WrappingPlugin : Rygel.MediaRendererPlugin {
*
* See the <link linkend="implementing-renderers-gst">Implementing GStreamer-based Renderers</link> section.
*/
-public class Rygel.Playbin.Renderer : Rygel.MediaDevice {
+public class Rygel.Playbin.Renderer : Rygel.MediaRenderer {
/**
* Create a new instance of Renderer.
*
@@ -68,14 +50,8 @@ public class Rygel.Playbin.Renderer : Rygel.MediaDevice {
* @param title Friendly name of the new UPnP renderer on the network.
*/
public Renderer (string title) {
- Object (title: title);
- }
-
- public override void constructed () {
- base.constructed ();
-
- this.plugin = new Plugin ();
- this.prepare_upnp (this.title);
+ Object (title: title,
+ player: Player.get_default ());
}
/**
@@ -86,13 +62,11 @@ public class Rygel.Playbin.Renderer : Rygel.MediaDevice {
* @param title Friendly name of the new UPnP renderer on the network.
*/
public Renderer.wrap (Gst.Element pipeline, string title) {
- base ();
-
return_val_if_fail (pipeline != null, null);
return_val_if_fail (pipeline.get_type ().name() == "GstPlayBin", null);
- this.plugin = new WrappingPlugin (pipeline);
- this.prepare_upnp (title);
+ Object (title: title,
+ player: new Player.wrap (pipeline));
}
/**
@@ -104,11 +78,4 @@ public class Rygel.Playbin.Renderer : Rygel.MediaDevice {
return player.playbin;
}
-
- private void prepare_upnp (string title) {
- this.plugin.title = title;
-
- // Always listen on localhost
- this.add_interface ("lo");
- }
}
diff --git a/src/librygel-renderer/rygel-media-renderer-plugin.vala b/src/librygel-renderer/rygel-media-renderer-plugin.vala
index 1ac3690..03eda7d 100644
--- a/src/librygel-renderer/rygel-media-renderer-plugin.vala
+++ b/src/librygel-renderer/rygel-media-renderer-plugin.vala
@@ -69,7 +69,6 @@ public class Rygel.MediaRendererPlugin : Rygel.Plugin {
RenderingControl.DESCRIPTION_PATH,
typeof (RenderingControl));
this.add_resource (resource);
-
}
public virtual MediaPlayer? get_player () {
diff --git a/src/librygel-renderer/rygel-media-renderer.vala b/src/librygel-renderer/rygel-media-renderer.vala
index 8fb02ec..3e1fbb9 100644
--- a/src/librygel-renderer/rygel-media-renderer.vala
+++ b/src/librygel-renderer/rygel-media-renderer.vala
@@ -22,7 +22,7 @@
internal class Plugin : Rygel.MediaRendererPlugin {
private Rygel.MediaPlayer player;
- public Plugin (Rygel.MediaPlayer player,
+ public Plugin (Rygel.MediaPlayer player,
Rygel.PluginCapabilities capabilities) {
base ("LibRygelRenderer", _("LibRygelRenderer"), null, capabilities);
this.player = player;
@@ -60,7 +60,9 @@ public class Rygel.MediaRenderer : MediaDevice {
public override void constructed () {
base.constructed ();
- this.plugin = new global::Plugin (this.player, this.capabilities);
+ if (this.plugin == null) {
+ 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 42ad8ce..87da331 100644
--- a/src/librygel-server/rygel-media-server.vala
+++ b/src/librygel-server/rygel-media-server.vala
@@ -59,8 +59,10 @@ public class Rygel.MediaServer : MediaDevice {
public override void constructed () {
base.constructed ();
- this.plugin = new global::Plugin (this.root_container,
- this.capabilities);
+ if (this.plugin == null) {
+ 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]