#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;
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