tee: Check for the removed pad flag also in the slow pushing path
[platform/upstream/gstreamer.git] / gst / gstdevice.h
index 9a5d9b3..334c4fb 100644 (file)
@@ -42,6 +42,14 @@ typedef struct _GstDevicePrivate GstDevicePrivate;
 #define GST_DEVICE_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_DEVICE, GstDeviceClass))
 #define GST_DEVICE_CAST(obj)            ((GstDevice *)(obj))
 
+/**
+ * GstDevice:
+ * @parent: The parent #GstObject structure.
+ *
+ * A device object.
+ *
+ * Since: 1.4
+ */
 
 struct _GstDevice {
   GstObject         parent;
@@ -52,32 +60,62 @@ struct _GstDevice {
   gpointer _gst_reserved[GST_PADDING];
 };
 
+/**
+ * GstDeviceClass:
+ * @parent_class: The parent #GstObjectClass structure.
+ * @create_element: Creates the fully configured element to access this device.
+ *  Subclasses need to override this and return a new element.
+ * @reconfigure_element: This only needs to be implemented by subclasses if the
+ *  element can be reconfigured to use a different device. See the documentation
+ *  for gst_device_reconfigure_element().
+ *
+ * The class structure for a #GstDevice object.
+ *
+ * Since: 1.4
+ */
+
 struct _GstDeviceClass {
   GstObjectClass    parent_class;
 
-  GstElement * (*create_element) (GstDevice * device, const gchar * name);
-  gboolean (*reconfigure_element) (GstDevice * device, GstElement * element);
+  GstElement * (*create_element)      (GstDevice * device, const gchar * name);
+  gboolean     (*reconfigure_element) (GstDevice * device, GstElement * element);
 
   /*< private >*/
   gpointer _gst_reserved[GST_PADDING];
 };
 
-GType        gst_device_get_type (void);
+GST_API
+GType          gst_device_get_type (void);
+
+GST_API
+GstElement *   gst_device_create_element      (GstDevice * device, const gchar * name);
+
+GST_API
+GstCaps *      gst_device_get_caps            (GstDevice * device);
+
+GST_API
+gchar *        gst_device_get_display_name    (GstDevice * device);
 
-GstElement * gst_device_create_element (GstDevice * device, const gchar * name);
+GST_API
+gchar *        gst_device_get_device_class    (GstDevice * device);
 
-GstCaps *    gst_device_get_caps (GstDevice * device);
-gchar *      gst_device_get_display_name (GstDevice * device);
-gchar *      gst_device_get_klass (GstDevice * device);
-gboolean     gst_device_reconfigure_element (GstDevice * device,
-                                             GstElement * element);
+GST_API
+GstStructure * gst_device_get_properties      (GstDevice * device);
 
-gboolean      gst_device_has_classesv (GstDevice * device,
-                                       gchar ** classes);
+GST_API
+gboolean       gst_device_reconfigure_element (GstDevice * device,
+                                               GstElement * element);
+GST_API
+gboolean        gst_device_has_classesv       (GstDevice * device,
+                                               gchar ** classes);
+GST_API
+gboolean        gst_device_has_classes        (GstDevice * device,
+                                               const gchar * classes);
 
-gboolean      gst_device_has_classes (GstDevice * device,
-                                      const gchar * classes);
 
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstDevice, gst_object_unref)
+#endif
 
 G_END_DECLS