[rygel] external: Turn Thumbnail class into a factory
- From: Zeeshan Ali Khattak <zeeshanak src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [rygel] external: Turn Thumbnail class into a factory
- Date: Sat, 24 Oct 2009 23:17:28 +0000 (UTC)
commit 3ad71c119a5759babd27e83fb3499b1753ec6b84
Author: Zeeshan Ali (Khattak) <zeeshanak gnome org>
Date: Sun Oct 25 01:51:44 2009 +0300
external: Turn Thumbnail class into a factory
src/plugins/external/Makefile.am | 2 +-
src/plugins/external/rygel-external-item.vala | 9 +++--
....vala => rygel-external-thumbnail-factory.vala} | 36 +++++++++-----------
3 files changed, 22 insertions(+), 25 deletions(-)
---
diff --git a/src/plugins/external/Makefile.am b/src/plugins/external/Makefile.am
index 81efc51..bbb1ebb 100644
--- a/src/plugins/external/Makefile.am
+++ b/src/plugins/external/Makefile.am
@@ -18,7 +18,7 @@ AM_CFLAGS = $(LIBGUPNP_CFLAGS) \
librygel_external_la_SOURCES = rygel-external-content-dir.vala \
rygel-external-container.vala \
rygel-external-item.vala \
- rygel-external-thumbnail.vala \
+ rygel-external-thumbnail-factory.vala \
rygel-external-plugin.vala \
rygel-external-interfaces.vala \
rygel-external-plugin-factory.vala \
diff --git a/src/plugins/external/rygel-external-item.vala b/src/plugins/external/rygel-external-item.vala
index 944673c..9e9c3f5 100644
--- a/src/plugins/external/rygel-external-item.vala
+++ b/src/plugins/external/rygel-external-item.vala
@@ -62,14 +62,15 @@ public class Rygel.ExternalItem : Rygel.MediaItem {
var object_props = yield props.get_all (OBJECT_IFACE);
var item_props = yield props.get_all (ITEM_IFACE);
- ExternalThumbnail thumbnail = null;
+ Thumbnail thumbnail = null;
var value = item_props.lookup ("Thumbnail");
if (value != null) {
var thumbnail_path = value.get_string ();
- thumbnail = yield ExternalThumbnail.create (thumbnail_path,
- parent.service_name,
- parent.host_ip);
+ var factory = new ExternalThumbnailFactory ();
+ thumbnail = yield factory.create (thumbnail_path,
+ parent.service_name,
+ parent.host_ip);
}
return new ExternalItem (id,
diff --git a/src/plugins/external/rygel-external-thumbnail.vala b/src/plugins/external/rygel-external-thumbnail-factory.vala
similarity index 64%
rename from src/plugins/external/rygel-external-thumbnail.vala
rename to src/plugins/external/rygel-external-thumbnail-factory.vala
index 9d381d8..1ad09b8 100644
--- a/src/plugins/external/rygel-external-thumbnail.vala
+++ b/src/plugins/external/rygel-external-thumbnail-factory.vala
@@ -26,64 +26,60 @@ using DBus;
using FreeDesktop;
/**
- * Represents External thumbnail.
+ * Factory for thumbnail from external plugins.
*/
-public class Rygel.ExternalThumbnail : Rygel.Thumbnail {
- private static string OBJECT_IFACE = "org.gnome.UPnP.MediaObject1";
+public class Rygel.ExternalThumbnailFactory {
private static string ITEM_IFACE = "org.gnome.UPnP.MediaItem1";
- public static async ExternalThumbnail create (string service_name,
- string object_path,
- string host_ip)
- throws GLib.Error {
+ public async Thumbnail create (string service_name,
+ string object_path,
+ string host_ip)
+ throws GLib.Error {
DBus.Connection connection = DBus.Bus.get (DBus.BusType.SESSION);
var props = connection.get_object (service_name,
object_path)
as Properties;
- var object_props = yield props.get_all (OBJECT_IFACE);
var item_props = yield props.get_all (ITEM_IFACE);
- return new ExternalThumbnail (object_props, item_props, host_ip);
- }
+ var thumbnail = new Thumbnail ();
- private ExternalThumbnail (HashTable<string,Value?> object_props,
- HashTable<string,Value?> item_props,
- string host_ip) {
var value = item_props.lookup ("MIMEType");
- this.mime_type = value.get_string ();
+ thumbnail.mime_type = value.get_string ();
value = item_props.lookup ("URLs");
weak string[] uris = (string[]) value.get_boxed ();
if (uris != null && uris[0] != null) {
- this.uri = uris[0].replace ("@ADDRESS@", host_ip);
+ thumbnail.uri = uris[0].replace ("@ADDRESS@", host_ip);
}
value = item_props.lookup ("DLNAProfile");
if (value != null) {
- this.dlna_profile = value.get_string ();
+ thumbnail.dlna_profile = value.get_string ();
}
value = item_props.lookup ("Size");
if (value != null) {
- this.size = value.get_int ();
+ thumbnail.size = value.get_int ();
}
value = item_props.lookup ("Width");
if (value != null) {
- this.width = value.get_int ();
+ thumbnail.width = value.get_int ();
}
value = item_props.lookup ("Height");
if (value != null) {
- this.height = value.get_int ();
+ thumbnail.height = value.get_int ();
}
value = item_props.lookup ("ColorDepth");
if (value != null) {
- this.depth = value.get_int ();
+ thumbnail.depth = value.get_int ();
}
+
+ return thumbnail;
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]