mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-19 23:06:49 +00:00
device-monitor: fix device listing without --follow
In !427, I removed the call to get_devices in order to always print added devices from the bus handler, however this requires the main loop to run until all pending messages have been consumed. This commit achieves this by always running the main loop, and simply adding an idle source to quit it in the non --follow case.
This commit is contained in:
parent
606ab04cd6
commit
0e1da383a7
1 changed files with 13 additions and 2 deletions
|
@ -268,6 +268,13 @@ bus_msg_handler (GstBus * bus, GstMessage * msg, gpointer user_data)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
quit_loop (GMainLoop * loop)
|
||||
{
|
||||
g_main_loop_quit (loop);
|
||||
return G_SOURCE_REMOVE;
|
||||
}
|
||||
|
||||
int
|
||||
main (int argc, char **argv)
|
||||
{
|
||||
|
@ -364,12 +371,16 @@ main (int argc, char **argv)
|
|||
|
||||
GST_INFO ("Took %.2f seconds", g_timer_elapsed (timer, NULL));
|
||||
|
||||
if (follow) {
|
||||
if (!follow) {
|
||||
/* Consume all the messages pending on the bus and exit */
|
||||
g_idle_add ((GSourceFunc) quit_loop, app.loop);
|
||||
} else {
|
||||
g_print ("Monitoring devices, waiting for devices to be removed or "
|
||||
"new devices to be added...\n");
|
||||
g_main_loop_run (app.loop);
|
||||
}
|
||||
|
||||
g_main_loop_run (app.loop);
|
||||
|
||||
gst_device_monitor_stop (app.monitor);
|
||||
gst_object_unref (app.monitor);
|
||||
|
||||
|
|
Loading…
Reference in a new issue