GrlPls

GrlPls — playlist handling functions

Includes

#include <grilo.h>

Description

Grilo only deals with audio, video or image content, but not with playlists. This library allow to identify playlists and browse into them exposing playlist entries as GrlMedia objects.

Functions

GrlPlsFilterFunc ()

GrlMedia *
(*GrlPlsFilterFunc) (GrlSource *source,
                     GrlMedia *media,
                     gpointer user_data);

Callback type to filter, or modify GrlMedia created when parsing a playlist using one of grl_pls_browse(), grl_pls_browse_sync() or grl_pls_browse_by_spec().

The callback is responsible for unreffing media when returning NULL or another GrlMedia.

Parameters

source

the GrlSource the browse call came from

 

media

a GrlMedia to operate on.

[transfer full]

user_data

user data passed to the browse call

 

Returns

NULL to not add this entry to the results, or a new GrlMedia populated with metadata of your choice.

[transfer full]


grl_pls_media_is_playlist ()

gboolean
grl_pls_media_is_playlist (GrlMedia *media);

Check if a file identified by GrlMedia object is a playlist or not. This function does blocking I/O.

Parameters

media

GrlMedia

 

Returns

TRUE if a GrlMedia is recognized as a playlist.

Since: 0.2.0


grl_pls_browse ()

guint
grl_pls_browse (GrlSource *source,
                GrlMedia *playlist,
                const GList *keys,
                GrlOperationOptions *options,
                GrlPlsFilterFunc filter_func,
                GrlSourceResultCb callback,
                gpointer user_data);

Browse into a playlist. The playlist entries are returned via the callback function as GrlMedia objects. This function imitates the API and way of working of grl_source_browse.

The playlist provided could be of any GrlMedia class, as long as its URI points to a valid playlist file.

This function is asynchronous.

See grl_source_browse() function for additional information and sample code.

Parameters

source

a source

 

playlist

a playlist

 

keys

the GList of GrlKeyIDs to request.

[element-type GrlKeyID]

options

options wanted for that operation

 

filter_func

A filter function, or NULL.

[scope async][allow-none]

callback

the user defined callback.

[scope notified]

user_data

the user data to pass in the callback

 

Returns

the operation identifier

Since: 0.2.0


grl_pls_browse_sync ()

GList *
grl_pls_browse_sync (GrlSource *source,
                     GrlMedia *playlist,
                     const GList *keys,
                     GrlOperationOptions *options,
                     GrlPlsFilterFunc filter_func,
                     GError **error);

Browse into a playlist. The playlist entries are returned via the callback function as GrlMedia objects. This function imitates the API and way of working of grl_source_browse_sync.

The filter function filter_func will be used for plugins or applications to be able to refuse particular entries from being listed.

If a NULL filter function is passed, the media will be added with only the metadata coming from the playlist included.

This function is synchronous.

See grl_source_browse_sync() function for additional information and sample code.

Parameters

source

a source

 

playlist

a playlist

 

keys

the GList of GrlKeyIDs to request.

[element-type GrlKeyID]

filter_func

A filter function, or NULL.

[scope async][allow-none]

options

options wanted for that operation

 

error

a GError, or NULL

 

Returns

a GList with GrlMedia elements. After use g_object_unref() every element and g_list_free() the list.

[element-type Grl.Media][transfer full]

Since: 0.2.0


grl_pls_browse_by_spec ()

void
grl_pls_browse_by_spec (GrlSource *source,
                        GrlPlsFilterFunc filter_func,
                        GrlSourceBrowseSpec *bs);

Browse into a playlist. The playlist entries are returned via the bs->callback function as GrlMedia objects. This function is more suitable to be called from plugins, which by design get the GrlSourceBrowseSpec already filled in.

The bs->playlist provided could be of any GrlMedia class, as long as its URI points to a valid playlist file.

This function is asynchronous.

See grl_pls_browse() and grl_source_browse() function for additional information and sample code.

Parameters

source

a source

 

filter_func

A filter function, or NULL.

[scope async][allow-none]

bs

a GrlSourceBrowseSpec structure with details of the browsing operation

 

Since: 0.2.0


grl_pls_file_to_media ()

GrlMedia *
grl_pls_file_to_media (GrlMedia *content,
                       GFile *file,
                       GFileInfo *info,
                       gboolean handle_pls,
                       GrlOperationOptions *options);

This function will update (if content is non-NULL) or create a GrlMedia and populate it with information from info .

If info is NULL, a call to g_file_query_info() will be made.

This function is useful for plugins that browse the local filesystem and want to easily create GrlMedia from filesystem information.

Parameters

content

an existing GrlMedia for the file, or NULL

 

file

a GFile pointing to the file or directory in question

 

info

an existing GFileInfo, or NULL

 

handle_pls

Whether playlists should be handled as containers

 

options

a GrlOperationOptions representing the options to apply to this operation.

 

Returns

a new GrlMedia.

[transfer full]

Since: 0.2.0


grl_pls_get_file_attributes ()

const char *
grl_pls_get_file_attributes (void);

Returns the list of attributes to pass to g_file_query_info() to make it possible to populate a GrlMedia using grl_pls_file_to_media().

Do not free the result of this function.

Returns

a string containing the list of attributes.

[transfer none]

Since: 0.2.0

Types and Values