2 * Copyright (C) 2009,2010 Nokia Corporation.
4 * Author: Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
5 * <zeeshan.ali@nokia.com>
7 * This file is part of Rygel.
9 * Rygel is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU Lesser General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
14 * Rygel is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU Lesser General Public License for more details.
19 * You should have received a copy of the GNU Lesser General Public License
20 * along with this program; if not, write to the Free Software Foundation,
21 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
24 [DBus (name = "org.gnome.UPnP.MediaObject2")]
25 public interface Rygel.External.MediaObjectProxy : DBusProxy {
26 public static const string IFACE = "org.gnome.UPnP.MediaObject2";
27 public static const string[] PROPERTIES = { "Parent",
32 public abstract ObjectPath parent { owned get; set; }
33 public abstract string display_name { owned get; set; }
34 [DBus (name = "Type")]
35 public abstract string object_type { owned get; set; }
38 [DBus (name = "org.gnome.UPnP.MediaContainer2")]
39 public interface Rygel.External.MediaContainerProxy : DBusProxy,
41 public static const string IFACE = "org.gnome.UPnP.MediaContainer2";
42 public static const string[] PROPERTIES = { "ChildCount", "Searchable" };
44 public abstract signal void updated ();
46 public abstract uint child_count { get; set; }
47 public abstract uint item_count { get; set; }
48 public abstract uint container_count { get; set; }
49 public abstract bool searchable { get; set; }
51 public abstract async HashTable<string,Variant>[] list_children (
54 string[] filter) throws IOError;
55 public abstract async HashTable<string,Variant>[] list_containers (
58 string[] filter) throws IOError;
59 public abstract async HashTable<string,Variant>[] list_items (
62 string[] filter) throws IOError;
65 public abstract async HashTable<string,Variant>[] search_objects (
69 string[] filter) throws IOError;
71 public abstract ObjectPath icon { owned get; set; }
74 [DBus (name = "org.gnome.UPnP.MediaItem2")]
75 public interface Rygel.External.MediaItemProxy : DBusProxy, MediaObjectProxy {
76 public static const string IFACE = "org.gnome.UPnP.MediaItem2";
77 public static const string[] PROPERTIES = { "URLs",
96 [DBus (name = "URLs")]
97 public abstract string[] urls { owned get; set; }
98 public abstract string mime_type { owned get; set; }
101 public abstract int size { get; set; }
102 public abstract string artist { owned get; set; }
103 public abstract string album { owned get; set; }
104 public abstract string date { owned get; set; }
105 public abstract string genre { owned get; set; }
106 public abstract string dlna_profile { owned get; set; }
108 // video and audio/music
110 public abstract int duration { get; set; }
111 // in bytes/second (braindead, yes but tell that to UPnP authors)
112 public abstract int bitrate { get; set; }
113 public abstract int sample_rate { get; set; }
114 public abstract int bits_per_sample { get; set; }
117 public abstract int width { get; set; }
118 public abstract int height { get; set; }
119 public abstract int color_depth { get; set; }
120 public abstract ObjectPath thumbnail { owned get; set; }
123 public abstract ObjectPath album_art { owned get; set; }