[rygel] core: move uris from MediaItem to MediaObject
- From: Zeeshan Ali Khattak <zeeshanak src gnome org>
- To: svn-commits-list gnome org
- Subject: [rygel] core: move uris from MediaItem to MediaObject
- Date: Thu, 25 Jun 2009 15:47:00 +0000 (UTC)
commit 4552c7a76f67cdd98d4b0c446e51f798eb51c18d
Author: Jens Georg <mail jensge org>
Date: Sun Jun 21 02:12:44 2009 +0200
core: move uris from MediaItem to MediaObject
src/rygel/rygel-media-db.vala | 21 ++++++++++++---------
src/rygel/rygel-media-item.vala | 3 ---
src/rygel/rygel-media-object.vala | 5 +++++
3 files changed, 17 insertions(+), 12 deletions(-)
---
diff --git a/src/rygel/rygel-media-db.vala b/src/rygel/rygel-media-db.vala
index 7be100a..6347b48 100644
--- a/src/rygel/rygel-media-db.vala
+++ b/src/rygel/rygel-media-db.vala
@@ -203,6 +203,7 @@ public class Rygel.MediaDB : Object {
var rc = db.exec ("BEGIN");
try {
create_object (container, -1);
+ save_uris (container);
rc = db.exec ("COMMIT");
} catch (Error error) {
rc = db.exec ("ROLLBACK");
@@ -300,7 +301,7 @@ public class Rygel.MediaDB : Object {
}
}
- private void save_uris (MediaItem item) throws Error {
+ private void save_uris (MediaObject obj) throws Error {
Statement statement;
var rc = db.prepare_v2 (URI_INSERT_STRING,
@@ -308,8 +309,8 @@ public class Rygel.MediaDB : Object {
out statement,
null);
if (rc == Sqlite.OK) {
- foreach (var uri in item.uris) {
- statement.bind_text (1, item.id);
+ foreach (var uri in obj.uris) {
+ statement.bind_text (1, obj.id);
statement.bind_text (2, uri);
rc = statement.step ();
if (rc != Sqlite.OK && rc != Sqlite.DONE) {
@@ -345,7 +346,7 @@ public class Rygel.MediaDB : Object {
}
}
- private void add_uris (MediaItem item) {
+ private void add_uris (MediaObject obj) {
Statement statement;
var rc = db.prepare_v2 (OBJECT_GET_URIS,
@@ -353,13 +354,13 @@ public class Rygel.MediaDB : Object {
out statement,
null);
if (rc == Sqlite.OK) {
- statement.bind_text (1, item.id);
+ statement.bind_text (1, obj.id);
while ((rc = statement.step ()) == Sqlite.ROW) {
- item.uris.add (statement.column_text (0));
+ obj.uris.add (statement.column_text (0));
}
} else {
- warning ("Failed to get uris for item %s: %s",
- item.id,
+ warning ("Failed to get uris for obj %s: %s",
+ obj.id,
db.errmsg ());
}
}
@@ -381,13 +382,15 @@ public class Rygel.MediaDB : Object {
statement.column_text (1),
statement.column_text (6));
fill_item (statement, (MediaItem)obj);
- add_uris ((MediaItem)obj);
break;
default:
// should not happen
break;
}
+ if (obj != null) {
+ add_uris (obj);
+ }
return obj;
}
diff --git a/src/rygel/rygel-media-item.vala b/src/rygel/rygel-media-item.vala
index c55f4ca..ea57d22 100644
--- a/src/rygel/rygel-media-item.vala
+++ b/src/rygel/rygel-media-item.vala
@@ -42,7 +42,6 @@ public class Rygel.MediaItem : MediaObject {
public string upnp_class;
// Resource info
- public ArrayList<string> uris;
public string mime_type;
public string dlna_profile;
@@ -69,8 +68,6 @@ public class Rygel.MediaItem : MediaObject {
this.parent = parent;
this.title = title;
this.upnp_class = upnp_class;
-
- this.uris = new ArrayList<string> ();
}
// Live media items need to provide a nice working implementation of this
diff --git a/src/rygel/rygel-media-object.vala b/src/rygel/rygel-media-object.vala
index 2c37223..c2adcf6 100644
--- a/src/rygel/rygel-media-object.vala
+++ b/src/rygel/rygel-media-object.vala
@@ -21,6 +21,7 @@
*/
using GUPnP;
+using Gee;
/**
* Represents a media object (container and item).
@@ -28,6 +29,7 @@ using GUPnP;
public abstract class Rygel.MediaObject : GLib.Object {
public string id;
public string title;
+ public Gee.ArrayList<string> uris;
// You can keep both a unowned and owned ref to parent of this MediaObject.
// In most cases, one will only need to keep an unowned ref to avoid cyclic
@@ -39,4 +41,7 @@ public abstract class Rygel.MediaObject : GLib.Object {
// mandatory.
public unowned MediaContainer parent;
public MediaContainer parent_ref;
+ construct {
+ uris = new ArrayList<string> ();
+ }
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]