From 0049f639af80a6d5fbd797ab41293e263ee53e19 Mon Sep 17 00:00:00 2001 From: Jens Georg Date: Sun, 3 May 2009 01:54:19 +0200 Subject: [PATCH] Move class guessing to factory method --- .../rygel-folder-directory-search-result.vala | 23 +++++------------- .../folder/rygel-folder-gio-media-item.vala | 27 ++++++++++++++++++++-- 2 files changed, 31 insertions(+), 19 deletions(-) diff --git a/src/plugins/folder/rygel-folder-directory-search-result.vala b/src/plugins/folder/rygel-folder-directory-search-result.vala index bf4a818..184a605 100644 --- a/src/plugins/folder/rygel-folder-directory-search-result.vala +++ b/src/plugins/folder/rygel-folder-directory-search-result.vala @@ -48,20 +48,6 @@ public class Rygel.FolderDirectorySearchResult : Rygel.SimpleAsyncResult. + * Copyright (C) 2009 Jens Georg . * * This file is part of Rygel. * @@ -29,6 +29,30 @@ public class Rygel.FolderGioMediaItem : Rygel.MediaItem { 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, @@ -59,7 +83,6 @@ public class Rygel.FolderGioMediaItem : Rygel.MediaItem { if (need_source) { dynamic Element src = ElementFactory.make("giosrc", null); if (src != null) { - src.is_live = true; src.location = raw_uri; } -- 2.7.4