## RygelMediaServerPlugin

RygelMediaServerPlugin — This is the base class for every Rygel implementation of a UPnP media server. It should be used either for a real plug-in for the Rygel process or used in-process via the librygel-server API.

## Synopsis

    #define             RYGEL_TYPE_MEDIA_SERVER_PLUGIN
    RygelMediaContainer * rygel_media_server_plugin_get_root_container
                                                            (RygelMediaServerPlugin *self);
    GList *             rygel_media_server_plugin_get_upload_profiles
                                                            (RygelMediaServerPlugin *self);
    void                rygel_media_server_plugin_set_upload_profiles
                                                            (RygelMediaServerPlugin *self,
                                                             GList *value);
    GList *             rygel_media_server_plugin_get_supported_profiles
                                                            (RygelMediaServerPlugin *self);
    void                rygel_media_server_plugin_set_supported_profiles
                                                            (RygelMediaServerPlugin *self,
                                                             GList *value);
    struct              RygelMediaServerPlugin;
    struct              RygelMediaServerPluginClass;

## Object Hierarchy

      GObject
       +----GUPnPResourceFactory
             +----RygelPlugin
                   +----RygelMediaServerPlugin

## Properties

      "root-container"           RygelMediaContainer*  : Read / Write / Construct Only
      "supported-profiles"       gpointer              : Read / Write / Construct
      "upload-profiles"          gpointer              : Read / Write / Construct

## Description

The plugin instance should have a RygelMediaContainer instance as its root container, which may be provided to the constructor.

See the <link linkend="implementing-server-plugins">Implementing Server Plugins</link> section.

## Details

### RYGEL_TYPE_MEDIA_SERVER_PLUGIN

    #define RYGEL_TYPE_MEDIA_SERVER_PLUGIN (rygel_media_server_plugin_get_type ())

The type for RygelMediaServerPlugin.

### rygel_media_server_plugin_get_root_container ()

    RygelMediaContainer * rygel_media_server_plugin_get_root_container
                                                            (RygelMediaServerPlugin *self);

Get and return the current value of the "root-container" property.

`self` : | the RygelMediaServerPlugin instance to query
Returns : | the value of the "root-container" property

### rygel_media_server_plugin_get_upload_profiles ()

    GList *             rygel_media_server_plugin_get_upload_profiles
                                                            (RygelMediaServerPlugin *self);

Get and return the current value of the "upload-profiles" property.

The list of DLNA profiles the MediaServer in this plugin will accept files as upload.

Can be a subset of :supported_profiles. If set to `NULL`, it will be reset to :supported_profiles.

`self` : | the RygelMediaServerPlugin instance to query
Returns : | the value of the "upload-profiles" property

### rygel_media_server_plugin_set_upload_profiles ()

    void                rygel_media_server_plugin_set_upload_profiles
                                                            (RygelMediaServerPlugin *self,
                                                             GList *value);

Set the value of the "upload-profiles" property to `value`.

The list of DLNA profiles the MediaServer in this plugin will accept files as upload.

Can be a subset of :supported_profiles. If set to `NULL`, it will be reset to :supported_profiles.

`self` : | the RygelMediaServerPlugin instance to modify
`value` : | the new value of the "upload-profiles" property

### rygel_media_server_plugin_get_supported_profiles ()

    GList *             rygel_media_server_plugin_get_supported_profiles
                                                            (RygelMediaServerPlugin *self);

Get and return the current value of the "supported-profiles" property.

The list of DLNA profiles the MediaServer in this plugin will be able to serve.

If it does not accept all formats it can serve for uploading, :upload_profiles needs to be set to the supported subset.

By default it will be the supported profiles of the RygelMediaEngine.

`self` : | the RygelMediaServerPlugin instance to query
Returns : | the value of the "supported-profiles" property

### rygel_media_server_plugin_set_supported_profiles ()

    void                rygel_media_server_plugin_set_supported_profiles
                                                            (RygelMediaServerPlugin *self,
                                                             GList *value);

Set the value of the "supported-profiles" property to `value`.

The list of DLNA profiles the MediaServer in this plugin will be able to serve.

If it does not accept all formats it can serve for uploading, :upload_profiles needs to be set to the supported subset.

By default it will be the supported profiles of the RygelMediaEngine.

`self` : | the RygelMediaServerPlugin instance to modify
`value` : | the new value of the "supported-profiles" property

### struct RygelMediaServerPlugin

    struct RygelMediaServerPlugin;

This is the base class for every Rygel implementation of a UPnP media server. It should be used either for a real plug-in for the Rygel process or used in-process via the librygel-server API.

The plugin instance should have a RygelMediaContainer instance as its root container, which may be provided to the constructor.

See the <link linkend="implementing-server-plugins">Implementing Server Plugins</link> section.

### struct RygelMediaServerPluginClass

    struct RygelMediaServerPluginClass {
    	RygelPluginClass parent_class;
    };

The class structure for `RYGEL_TYPE_MEDIA_SERVER_PLUGIN`. All the fields in this structure are private and should never be accessed directly.

RygelPluginClass `parent_class`; | the parent class structure

## Property Details

### The `"root-container"` property

      "root-container"           RygelMediaContainer*  : Read / Write / Construct Only

root-container.

### The `"supported-profiles"` property

      "supported-profiles"       gpointer              : Read / Write / Construct

The list of DLNA profiles the MediaServer in this plugin will be able to serve.

If it does not accept all formats it can serve for uploading, :upload_profiles needs to be set to the supported subset.

By default it will be the supported profiles of the RygelMediaEngine.

### The `"upload-profiles"` property

      "upload-profiles"          gpointer              : Read / Write / Construct

The list of DLNA profiles the MediaServer in this plugin will accept files as upload.

Can be a subset of :supported_profiles. If set to `NULL`, it will be reset to :supported_profiles.