mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-17 11:45:25 +00:00
devicemonitor: get a list of currently monitored providers
Get a list of the currently monitored providers.
This commit is contained in:
parent
794a08d7e9
commit
62f6207e04
3 changed files with 48 additions and 0 deletions
|
@ -671,3 +671,48 @@ gst_device_monitor_get_bus (GstDeviceMonitor * monitor)
|
||||||
|
|
||||||
return gst_object_ref (monitor->priv->bus);
|
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,
|
gboolean gst_device_monitor_remove_filter (GstDeviceMonitor * monitor,
|
||||||
guint filter_id);
|
guint filter_id);
|
||||||
|
|
||||||
|
gchar ** gst_device_monitor_get_providers (GstDeviceMonitor * monitor);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif /* __GST_DEVICE_MONITOR_H__ */
|
#endif /* __GST_DEVICE_MONITOR_H__ */
|
||||||
|
|
|
@ -435,6 +435,7 @@ EXPORTS
|
||||||
gst_device_monitor_add_filter
|
gst_device_monitor_add_filter
|
||||||
gst_device_monitor_get_bus
|
gst_device_monitor_get_bus
|
||||||
gst_device_monitor_get_devices
|
gst_device_monitor_get_devices
|
||||||
|
gst_device_monitor_get_providers
|
||||||
gst_device_monitor_get_type
|
gst_device_monitor_get_type
|
||||||
gst_device_monitor_new
|
gst_device_monitor_new
|
||||||
gst_device_monitor_remove_filter
|
gst_device_monitor_remove_filter
|
||||||
|
|
Loading…
Reference in a new issue