## RBPlayerGstDataTee

RBPlayerGstDataTee — player interface for processing raw data

## Synopsis

    #include <rb-player-gst-data-tee.h>

                        RBPlayerGstDataTee;
                        RBPlayerGstDataTeeIface;
    gboolean            rb_player_gst_data_tee_add_data_tee (RBPlayerGstDataTee *player,
                                                             GstElement *element);
    gboolean            rb_player_gst_data_tee_remove_data_tee
                                                            (RBPlayerGstDataTee *player,
                                                             GstElement *element);

## Object Hierarchy

      GInterface
       +----RBPlayerGstDataTee

## Signals

      "data-tee-inserted"                              : Run Last / No Recursion
      "data-tee-pre-remove"                            : Run Last / No Recursion

## Description

This interface allows a caller to add a branch to the GStreamer playback pipeline that receives a copy of the raw data from the playback source element.

This interface is not currently implemented by either playback backend.

## Details

### RBPlayerGstDataTee

    typedef struct _RBPlayerGstDataTee RBPlayerGstDataTee;

### RBPlayerGstDataTeeIface

    typedef struct {
    	GTypeInterface g_iface;

    	/* virtual functions */
    	gboolean (*add_data_tee)		(RBPlayerGstDataTee *player, GstElement *element);
    	gboolean (*remove_data_tee) (RBPlayerGstDataTee *player, GstElement *element);

    	/* signals */
    	void		(*data_tee_inserted) (RBPlayerGstDataTee *player, GstElement *data_tee);
    	void		(*data_tee_pre_remove) (RBPlayerGstDataTee *player, GstElement *data_tee);
    } RBPlayerGstDataTeeIface;

### rb_player_gst_data_tee_add_data_tee ()

    gboolean            rb_player_gst_data_tee_add_data_tee (RBPlayerGstDataTee *player,
                                                             GstElement *element);

Adds a raw data tee branch to the playback pipeline.

`player` : | a RBPlayerGstDataTee implementation
`element` : | data tee branch to add
Returns : | TRUE if the tee branch was added successfully

### rb_player_gst_data_tee_remove_data_tee ()

    gboolean            rb_player_gst_data_tee_remove_data_tee
                                                            (RBPlayerGstDataTee *player,
                                                             GstElement *element);

Removes a raw data tee branch.

`player` : | a RBPlayerGstDataTee implementation
`element` : | data tee branch to add
Returns : | TRUE if the tee branch was found and removed

## Signal Details

### The `"data-tee-inserted"` signal

    void                user_function                      (RBPlayerGstDataTee *player,
                                                            GObject            *data_tee,
                                                            gpointer            user_data)      : Run Last / No Recursion

The 'data_tee-inserted' signal is emitted when the tee element has been inserted into the pipeline and fully linked

`player` : | the RBPlayerGstDataTee implementation
`data_tee` : | the element which has been inserted
`user_data` : | user data set when the signal handler was connected.

### The `"data-tee-pre-remove"` signal

    void                user_function                      (RBPlayerGstDataTee *player,
                                                            GObject            *data_tee,
                                                            gpointer            user_data)      : Run Last / No Recursion

The 'data_tee-pre-remove' signal is emitted immediately before the element is unlinked and removed from the pipeline

`player` : | the RBPlayerGstDataTee implementation
`data_tee` : | the element which is about to be removed
`user_data` : | user data set when the signal handler was connected.