gstpad: Probes that return HANDLED can reset the data info field
[platform/upstream/gstreamer.git] / gst / gstdeviceprovider.h
index 6370afc..bcde319 100644 (file)
@@ -19,7 +19,6 @@
  * Boston, MA 02111-1307, USA.
  */
 
-#include <gst/gstdeviceproviderfactory.h>
 
 
 #ifndef __GST_DEVICE_PROVIDER_H__
@@ -33,6 +32,8 @@ typedef struct _GstDeviceProvider GstDeviceProvider;
 typedef struct _GstDeviceProviderClass GstDeviceProviderClass;
 typedef struct _GstDeviceProviderPrivate GstDeviceProviderPrivate;
 
+#include <gst/gstdeviceproviderfactory.h>
+
 #define GST_TYPE_DEVICE_PROVIDER                 (gst_device_provider_get_type())
 #define GST_IS_DEVICE_PROVIDER(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_DEVICE_PROVIDER))
 #define GST_IS_DEVICE_PROVIDER_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_DEVICE_PROVIDER))
@@ -98,44 +99,82 @@ struct _GstDeviceProviderClass {
   gpointer _gst_reserved[GST_PADDING];
 };
 
+GST_API
 GType       gst_device_provider_get_type (void);
 
 
+GST_API
 GList *     gst_device_provider_get_devices    (GstDeviceProvider * provider);
 
+GST_API
 gboolean    gst_device_provider_start          (GstDeviceProvider * provider);
+
+GST_API
 void        gst_device_provider_stop           (GstDeviceProvider * provider);
 
+GST_API
 gboolean    gst_device_provider_can_monitor    (GstDeviceProvider * provider);
 
+GST_API
 GstBus *    gst_device_provider_get_bus        (GstDeviceProvider * provider);
 
+GST_API
 void        gst_device_provider_device_add     (GstDeviceProvider * provider,
-                                               GstDevice * device);
+                                                GstDevice * device);
+GST_API
 void        gst_device_provider_device_remove  (GstDeviceProvider * provider,
-                                               GstDevice * device);
+                                                GstDevice * device);
+GST_API
+gchar **    gst_device_provider_get_hidden_providers (GstDeviceProvider * provider);
+
+GST_API
+void        gst_device_provider_hide_provider        (GstDeviceProvider * provider,
+                                                      const gchar       * name);
+GST_API
+void        gst_device_provider_unhide_provider      (GstDeviceProvider * provider,
+                                                      const gchar       * name);
 
+GST_API
+const gchar * gst_device_provider_get_metadata       (GstDeviceProvider * provider,
+                                                      const gchar * key);
 
 /* device provider class meta data */
-void        gst_device_provider_class_set_metadata          (GstDeviceProviderClass *klass,
+
+GST_API
+void        gst_device_provider_class_set_metadata         (GstDeviceProviderClass *klass,
                                                             const gchar     *longname,
                                                             const gchar     *classification,
                                                             const gchar     *description,
                                                             const gchar     *author);
-void        gst_device_provider_class_set_static_metadata   (GstDeviceProviderClass *klass,
+GST_API
+void        gst_device_provider_class_set_static_metadata  (GstDeviceProviderClass *klass,
                                                             const gchar     *longname,
                                                             const gchar     *classification,
                                                             const gchar     *description,
                                                             const gchar     *author);
-void        gst_device_provider_class_add_metadata          (GstDeviceProviderClass * klass,
+GST_API
+void        gst_device_provider_class_add_metadata         (GstDeviceProviderClass * klass,
                                                             const gchar * key, const gchar * value);
-void        gst_device_provider_class_add_static_metadata   (GstDeviceProviderClass * klass,
+GST_API
+void        gst_device_provider_class_add_static_metadata  (GstDeviceProviderClass * klass,
                                                             const gchar * key, const gchar * value);
-const gchar * gst_device_provider_class_get_metadata        (GstDeviceProviderClass * klass,
-                                                              const gchar * key);
+GST_API
+const gchar * gst_device_provider_class_get_metadata       (GstDeviceProviderClass * klass,
+                                                            const gchar * key);
+
+GST_API
+void gst_device_provider_device_changed                    (GstDeviceProvider * provider,
+                                                            GstDevice *device,
+                                                            GstDevice *changed_device);
 
 /* factory management */
-GstDeviceProviderFactory * gst_device_provider_get_factory   (GstDeviceProvider * provider);
+
+GST_API
+GstDeviceProviderFactory * gst_device_provider_get_factory (GstDeviceProvider * provider);
+
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstDeviceProvider, gst_object_unref)
+#endif
 
 G_END_DECLS