Rhythmbox Development Reference Manual: RBPlayerGstTee

## RBPlayerGstTee RBPlayerGstTee — player interface for inserting additional sinks |

## Functions

gboolean | rb_player_gst_tee_add_tee ()
gboolean | rb_player_gst_tee_remove_tee ()

## Signals

void | tee-inserted | No Recursion
void | tee-pre-remove | No Recursion

## Types and Values

| RBPlayerGstTee
struct | RBPlayerGstTeeIface

## Object Hierarchy

        GInterface
        ╰── RBPlayerGstTee

## Includes

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

## Description

This interface allows a caller to add a new sink to the GStreamer playback pipeline.

## Functions

### rb_player_gst_tee_add_tee ()

    gboolean
    rb_player_gst_tee_add_tee (RBPlayerGstTee *player,
                               GstElement *element);

Adds a new sink to the playback pipeline. The sink may not be inserted immediately. The 'tee-inserted' signal will be emitted when this actually happens.

#### Parameters

player | RBPlayerGstTee implementation |
element | new sink element (or bin) to add |

#### Returns

TRUE if the sink will be added

### rb_player_gst_tee_remove_tee ()

    gboolean
    rb_player_gst_tee_remove_tee (RBPlayerGstTee *player,
                                  GstElement *element);

Removes a sink from the playback pipeline. The sink may not be removed immediately. The 'tee-pre-remove' signal will be emitted immediately before this actually happens.

#### Parameters

player | RBPlayerGstTee implementation |
element | the sink element (or bin) to remove |

#### Returns

TRUE if the sink was found and will be removed

## Types and Values

### RBPlayerGstTee

    typedef struct _RBPlayerGstTee RBPlayerGstTee;

### struct RBPlayerGstTeeIface

    struct RBPlayerGstTeeIface {
    	GTypeInterface g_iface;

    	/* virtual functions */
    	gboolean (*add_tee)		(RBPlayerGstTee *player, GstElement *element);
    	gboolean (*remove_tee)		(RBPlayerGstTee *player, GstElement *element);

    	/* signals */
    	void		(*tee_inserted)		(RBPlayerGstTee *player, GstElement *tee);
    	void		(*tee_pre_remove) (RBPlayerGstTee *player, GstElement *tee);
    };

## Signal Details

### The `“tee-inserted”` signal

    void
    user_function (RBPlayerGstTee *player,
                   GObject        *tee,
                   gpointer        user_data)

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

#### Parameters

player | the RBPlayerGstTee implementation |
tee | the element which has been inserted |
user_data | user data set when the signal handler was connected. |

Flags: No Recursion

### The `“tee-pre-remove”` signal

    void
    user_function (RBPlayerGstTee *player,
                   GObject        *tee,
                   gpointer        user_data)

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

#### Parameters

player | the RBPlayerGstTee implementation |
tee | the element which is about to be removed |
user_data | user data set when the signal handler was connected. |

Flags: No Recursion