Rygel.MediaContainer – librygel-server Reference Manual

# MediaContainer

## Object Hierarchy:

## Description:

public abstract class MediaContainer : MediaObject

This is a container (folder) for media items and child containers.

It provides a basic serialization implementation (to DIDLLiteWriter).

A derived class should provide a working implementation of get_children and should emit the container_updated signal.

When used as a root container, you may wish to use the variables, such as REALNAME, in in the title. See the title property of the #RygelMediaObject.

If the container should support UPnP search operations then you also implement the #RygelSearchableContainer interface.

If the container should be writable, meaning that it allows adding (via upload), removal and editing of items then you should also implement the #RygelWritableContainer interface.

If the container should support the change tracking profile of the UPnP ContentDirectory:3 specification then you should also implement the #RygelTrackableContainer interface.

The #RygelSimpleContainer class contains a simple memory-based container implementation, but most real-world uses will require custom container implementations.

All known sub-classes:

- SimpleContainer

Required by:

- SearchableContainer

- WritableContainer

- TrackableContainer

Namespace: Rygel
Package: librygel-server

## Content:

### Constants:

- public const unowned string ANY
- public const unowned string UPNP_CLASS
- public const unowned string STORAGE_FOLDER
- public const unowned string MUSIC_ALBUM
- public const unowned string MUSIC_ARTIST
- public const unowned string MUSIC_GENRE
- public const unowned string PLAYLIST
- public const unowned string ALBUM_SORT_CRITERIA

### Properties:

- public int child_count { construct set; get; }
- protected int empty_child_count { public set; public get; }
- public int all_child_count { get; }
- public bool create_mode_enabled { set; get; }
- public string sort_criteria { set; get; }
- public override OCMFlags ocm_flags { get; }

### Static methods:

- public static bool equal_func (MediaContainer a, MediaContainer b)

### Creation methods:

- public MediaContainer (string id, MediaContainer? parent, string title, int child_count)
  Create a media container with the specified details.
- public MediaContainer.root (string title, int child_count)
  Create a root media container with the specified details, with no parent container, and with an appropriate ID.

### Methods:

- public override void constructed ()
- public abstract async MediaObjects? get_children (uint offset, uint max_count, string sort_criteria, Cancellable? cancellable) throws Error
  Fetches the list of media objects directly under this container.
- public abstract async MediaObject? find_object (string id, Cancellable? cancellable) throws Error
  Recursively searches this container for a media object with the given ID.
- public void updated (MediaObject? object = null, ObjectEventType event_type = MODIFIED, bool sub_tree_update = false)
  This method should be called each time this container is updated.
- public override DIDLLiteObject? serialize (Serializer serializer, HTTPServer http_server) throws Error
- public override DataSource? create_stream_source_for_resource (HTTPRequest request, MediaResource resource) throws Error

### Signals:

- public signal void container_updated (MediaContainer container, MediaObject object, ObjectEventType event_type, bool sub_tree_update)
  The container_updated signal is emitted if the subtree unter this container has been modified. The object parameter is set to the MediaObject that is the source of the container update. Note that it may even be set to the container itself.
- public signal void sub_tree_updates_finished (MediaObject sub_tree_root)
  The sub_tree_updates_finished signal is emitted when all of the sub- tree operations are finished. See the #RygelMediaContainer::container_updated signal.

### Fields:

- public uint32 update_id
- public int64 storage_used
- public int64 total_deleted_child_count

### Inherited Members:

All known members inherited from class Rygel.MediaObject

- id
- ref_id
- upnp_class
- date
- creator
- modified
- object_update_id
- artist
- genre
- parent

- parent_ref
- title
- ocm_flags
- apply_replacements
- get_uris
- get_primary_uri
- add_uri
- constructed
- get_writable

- get_writables
- get_resource_list
- get_resource_by_name
- serialize
- serialize_resource_list
- create_stream_source_for_resource
- compare_string_props
- compare_int_props
- parent_ptr

All known members inherited from class GLib.Object

- interface_find_property
- interface_install_property
- interface_list_properties
- @new
- new_valist
- newv
- new_with_properties
- add_toggle_ref
- add_weak_pointer
- bind_property
- connect
- constructed
- disconnect
- dispose
- dup_data
- dup_qdata
- force_floating

- freeze_notify
- @get
- get_class
- get_data
- get_property
- get_qdata
- get_type
- getv
- is_floating
- notify_property
- @ref
- ref_sink
- replace_data
- replace_qdata
- remove_toggle_ref
- remove_weak_pointer
- @set

- set_data
- set_data_full
- set_property
- set_qdata
- set_qdata_full
- set_valist
- setv
- steal_data
- steal_qdata
- thaw_notify
- unref
- watch_closure
- weak_ref
- weak_unref
- notify
- ref_count