Commit 62f6207e authored by Wim Taymans's avatar Wim Taymans

devicemonitor: get a list of currently monitored providers

Get a list of the currently monitored providers.
parent 794a08d7
......@@ -671,3 +671,48 @@ gst_device_monitor_get_bus (GstDeviceMonitor * monitor)
return gst_object_ref (monitor->priv->bus);
}
/**
* gst_device_monitor_get_providers:
* @monitor: a #GstDeviceMonitor
*
* Get a list of the currently selected device provider factories.
*
* This
*
* Returns: (transfer full) (array zero-terminated=1) (element-type gchar*):
* A list of device provider factory names that are currently being
* monitored by @monitor or %NULL when nothing is being monitored.
*
* Since: 1.6
*/
gchar **
gst_device_monitor_get_providers (GstDeviceMonitor * monitor)
{
guint i, len;
gchar **res = NULL;
g_return_val_if_fail (GST_IS_DEVICE_MONITOR (monitor), NULL);
GST_OBJECT_LOCK (monitor);
len = monitor->priv->providers->len;
if (len == 0)
goto done;
res = g_new (gchar *, len + 1);
for (i = 0; i < len; i++) {
GstDeviceProvider *provider =
g_ptr_array_index (monitor->priv->providers, i);
GstDeviceProviderFactory *factory =
gst_device_provider_get_factory (provider);
res[i] = g_strdup (GST_OBJECT_NAME (factory));
}
res[i] = NULL;
done:
GST_OBJECT_UNLOCK (monitor);
return res;
}
......@@ -95,6 +95,8 @@ guint gst_device_monitor_add_filter (GstDeviceMonitor * monitor,
gboolean gst_device_monitor_remove_filter (GstDeviceMonitor * monitor,
guint filter_id);
gchar ** gst_device_monitor_get_providers (GstDeviceMonitor * monitor);
G_END_DECLS
#endif /* __GST_DEVICE_MONITOR_H__ */
......@@ -435,6 +435,7 @@ EXPORTS
gst_device_monitor_add_filter
gst_device_monitor_get_bus
gst_device_monitor_get_devices
gst_device_monitor_get_providers
gst_device_monitor_get_type
gst_device_monitor_new
gst_device_monitor_remove_filter
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment