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

- TrackableContainer

- WritableContainer

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; }

### 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`

### Signals:

- public signal void container_updated (MediaContainer container, MediaObject object, ObjectEventType event_type, `bool` sub_tree_update)
  The container_updated signal is emitted if a child container under the tree of this container has been updated. 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
- get_uris
- get_primary_uri
- add_uri

- constructed
- get_writable
- get_writables
- serialize
- compare_string_props
- compare_int_props
- parent_ptr

All known members inherited from class GLib.Object

- @new
- newv
- new_valist
- get_type
- get_class
- @ref
- unref
- ref_sink
- weak_ref
- weak_unref
- add_weak_pointer
- remove_weak_pointer

- @get
- @set
- get_property
- set_property
- get_data
- set_data
- set_data_full
- steal_data
- get_qdata
- set_qdata
- set_qdata_full
- steal_qdata

- freeze_notify
- thaw_notify
- dispose
- constructed
- notify_property
- connect
- disconnect
- add_toggle_ref
- remove_toggle_ref
- bind_property
- notify
- ref_count