FsElementAddedNotifier

FsElementAddedNotifier — Recursive element addition notifier

Synopsis

#include <gst/farsight/fs-element-added-notifier.h>

struct              FsElementAddedNotifier;
FsElementAddedNotifier * fs_element_added_notifier_new  (void);
void                fs_element_added_notifier_add       (FsElementAddedNotifier *notifier,
                                                         GstBin *bin);
gboolean            fs_element_added_notifier_remove    (FsElementAddedNotifier *notifier,
                                                         GstBin *bin);
void                fs_element_added_notifier_set_properties_from_keyfile
                                                        (FsElementAddedNotifier *notifier,
                                                         GKeyFile *keyfile);
gboolean            fs_element_added_notifier_set_properties_from_file
                                                        (FsElementAddedNotifier *notifier,
                                                         const gchar *filename,
                                                         GError **error);

Object Hierarchy

  GObject
   +----FsElementAddedNotifier

Signals

  "element-added"                                  : Run Last

Description

This object can be attach to any GstBin and will emit a the "element-added" signal for every element inside the GstBin or any sub-bin and any element added in the future to the bin or its sub-bins. There is also a utility method to have it used to set the properties of elements based on a GKeyfile.

Details

struct FsElementAddedNotifier

struct FsElementAddedNotifier;

All members are private


fs_element_added_notifier_new ()

FsElementAddedNotifier * fs_element_added_notifier_new  (void);

Creates a new FsElementAddedNotifier object

Returns :

the newly-created FsElementAddedNotifier

fs_element_added_notifier_add ()

void                fs_element_added_notifier_add       (FsElementAddedNotifier *notifier,
                                                         GstBin *bin);

Add a GstBin to on which the "element-added" signal will be called on every element and sub-element present and added in the future.

notifier :

a FsElementAddedNotifier

bin :

A GstBin to watch to added elements

fs_element_added_notifier_remove ()

gboolean            fs_element_added_notifier_remove    (FsElementAddedNotifier *notifier,
                                                         GstBin *bin);

Stop watching the passed bin and its subbins.

notifier :

a FsElementAddedNotifier

bin :

A GstBin to stop watching

Returns :

TRUE if the GstBin was being watched, FALSE otherwise

fs_element_added_notifier_set_properties_from_keyfile ()

void                fs_element_added_notifier_set_properties_from_keyfile
                                                        (FsElementAddedNotifier *notifier,
                                                         GKeyFile *keyfile);

Using a GKeyFile where the groups are the element's type or name and the key=value are the property and its value, this function will set the properties on the elements added to this object after this function has been called. It will take ownership of the GKeyFile structure. It will first try the group as the element type, if that does not match, it will check its name.

notifier :

a FsElementAddedNotifier

keyfile :

a GKeyFile

fs_element_added_notifier_set_properties_from_file ()

gboolean            fs_element_added_notifier_set_properties_from_file
                                                        (FsElementAddedNotifier *notifier,
                                                         const gchar *filename,
                                                         GError **error);

Same as fs_element_added_notifier_set_properties_from_keyfile() but using the name of the file to load instead of the GKeyFile directly.

notifier :

a FsElementAddedNotifier

filename :

The name of the keyfile to use

error :

location of a GError, or NULL if no error occured

Returns :

TRUE if the file was successfully loaded, FALSE otherwise

Signal Details

The "element-added" signal

void                user_function                      (FsElementAddedNotifier *self,
                                                        GstBin                 *bin,
                                                        GstElement             *element,
                                                        gpointer                user_data)      : Run Last

This signal is emitted when an element is added to a GstBin that was added to this object or one of its sub-bins. Be careful, there is no guarantee that this will be emitted on your main thread, it will be emitted in the thread that added the element. The bin may be NULL if this is the top-level bin.

self :

FsElementAddedNotifier that emitted the signal

bin :

The GstBin to which this object was added

element :

The GstElement that was added

user_data :

user data set when the signal handler was connected.