this.complete();
}
- private string? get_upnp_class_from_content_type(string content_type) {
- if (content_type.has_prefix("video/")) {
- return MediaItem.VIDEO_CLASS;
- }
- else if (content_type.has_prefix("audio/")) {
- return MediaItem.AUDIO_CLASS;
- }
- else if (content_type.has_prefix("image/")) {
- return MediaItem.IMAGE_CLASS;
- }
-
- return null;
- }
-
public void enumerate_next_ready(Object obj, AsyncResult res) {
var enumerator = (FileEnumerator)obj;
try {
}
else {
- var upnp_class = get_upnp_class_from_content_type(file_info.get_content_type());
- item = new Rygel.FolderGioMediaItem((MediaContainer)source_object, f, upnp_class, file_info);
+ try {
+ item = FolderGioMediaItem.create((MediaContainer)source_object, f, file_info);
+ } catch (Error error) {
+ }
}
- if (item != null)
+ if (item != null) {
data.add(item);
+ }
}
enumerator.next_files_async(MAX_CHILDREN,
/*
- * Copyright (C) 2008-2009 Jens Georg <mail@jensge.org>.
+ * Copyright (C) 2009 Jens Georg <mail@jensge.org>.
*
* This file is part of Rygel.
*
private bool need_source;
private string raw_uri;
+ private static string? get_upnp_class_from_content_type(string content_type) {
+ if (content_type.has_prefix("video/")) {
+ return MediaItem.VIDEO_CLASS;
+ }
+ else if (content_type.has_prefix("audio/")) {
+ return MediaItem.AUDIO_CLASS;
+ }
+ else if (content_type.has_prefix("image/")) {
+ return MediaItem.IMAGE_CLASS;
+ }
+
+ return null;
+ }
+
+
+ public static FolderGioMediaItem? create(MediaContainer parent, File file, FileInfo file_info) {
+ var upnp_class = get_upnp_class_from_content_type(file_info.get_content_type());
+ if (upnp_class != null) {
+ return new FolderGioMediaItem(parent, file, upnp_class, file_info);
+ }
+
+ return null;
+ }
+
public FolderGioMediaItem(MediaContainer parent,
File file,
string item_class,
if (need_source) {
dynamic Element src = ElementFactory.make("giosrc", null);
if (src != null) {
- src.is_live = true;
src.location = raw_uri;
}