# Gst::Interface Class Reference
[gstreamermm Interfaces]

Core interface implemented by Gst::Element instances that allows runtime querying of interface availability. More...

`#include <interface.h>`

Inheritance diagram for Gst::Interface:

List of all members.

## Public Member Functions

virtual | ~Interface ()
GstImplementsInterface* | gobj ()
| Provides access to the underlying C GObject.
const GstImplementsInterface* | gobj () const
| Provides access to the underlying C GObject.

## Static Public Member Functions

static void | add_interface (GType gtype_implementer)
static bool | element_implements (const Glib::RefPtr<const Gst::Element>& element, GType iface_type)
| Test whether the given element implements a certain interface of type iface_type, and test whether it is supported for this specific instance.
template<class T_CastTo>
static Glib::RefPtr < Gst::ElementInterfaced <T_CastTo >> | cast (const Glib::RefPtr<Gst::Element>& element)

## Related Functions

(Note that these are not member functions.)
Glib::RefPtr<Gst::Interface> | wrap (GstImplementsInterface* object, bool take_copy=false)
| A Glib::wrap() method for this object.

## Detailed Description

Core interface implemented by Gst::Element instances that allows runtime querying of interface availability.

This provides interface functionality on a per-instance basis and not a per-class basis, which is the case for GObject.

## Constructor & Destructor Documentation

virtual Gst::Interface::~Interface | ( |  | ) | `[virtual]`

## Member Function Documentation

static void Gst::Interface::add_interface | ( | GType | gtype_implementer | ) | `[static]`

GstImplementsInterface* Gst::Interface::gobj | ( |  | ) | `[inline]`

Provides access to the underlying C GObject.

Reimplemented in Gst::AlsaMixer, Gst::AlsaSrc, Gst::Volume, Gst::XImageSink, and Gst::XvImageSink.

const GstImplementsInterface* Gst::Interface::gobj | ( |  | ) | const`[inline]`

Provides access to the underlying C GObject.

Reimplemented in Gst::AlsaMixer, Gst::AlsaSrc, Gst::Volume, Gst::XImageSink, and Gst::XvImageSink.

static bool Gst::Interface::element_implements | ( | const Glib::RefPtr<const Gst::Element>& | element,
|  | GType | iface_type |
| ) |  |  | `[static]`

Test whether the given element implements a certain interface of type iface_type, and test whether it is supported for this specific instance.

Parameters:

  | iface_type | (final) type of the interface which we want to be implemented.

Returns:
  Whether or not the element implements the interface.

template <class T_CastTo>

static Glib::RefPtr<Gst::ElementInterfaced<T_CastTo>> Gst::Interface::cast | ( | const Glib::RefPtr<Gst::Element>& | element | ) | `[inline, static]`

## Friends And Related Function Documentation

Glib::RefPtr<Gst::Interface> wrap | ( | GstImplementsInterface * | object,
|  | bool | take_copy = `false` |
| ) |  |  | `[related]`

A Glib::wrap() method for this object.

Parameters:

  | object | The C instance.
  | take_copy | False if the result should take ownership of the C instance. True if it should take a new copy or ref.

Returns:
  A C++ instance that wraps this C instance.

The documentation for this class was generated from the following file:

- interface.h