diff --git a/src/examples/media-session/alsa-monitor.c b/src/examples/media-session/alsa-monitor.c index 285a4c133..c7d8c28f3 100644 --- a/src/examples/media-session/alsa-monitor.c +++ b/src/examples/media-session/alsa-monitor.c @@ -960,6 +960,7 @@ static void alsa_udev_object_info(void *data, uint32_t id, } else { alsa_update_device(impl, device, info); } + sm_media_session_schedule_rescan(impl->session); } static const struct spa_device_events alsa_udev_events = diff --git a/src/examples/media-session/media-session.c b/src/examples/media-session/media-session.c index 4cc802ce8..07c40cdc5 100644 --- a/src/examples/media-session/media-session.c +++ b/src/examples/media-session/media-session.c @@ -470,6 +470,7 @@ static void device_event_info(void *object, const struct pw_device_info *info) } } sm_object_sync_update(&device->obj); + sm_media_session_schedule_rescan(&impl->this); } static void device_event_param(void *object, int seq, @@ -570,6 +571,7 @@ static void node_event_info(void *object, const struct pw_node_info *info) } } sm_object_sync_update(&node->obj); + sm_media_session_schedule_rescan(&impl->this); } static void node_event_param(void *object, int seq, @@ -1263,6 +1265,7 @@ registry_global(void *data, uint32_t id, impl, id, obj->type, type); update_object(impl, info, obj, id, permissions, type, version, props); } + sm_media_session_schedule_rescan(&impl->this); } int sm_object_add_listener(struct sm_object *obj, struct spa_hook *listener, @@ -1410,6 +1413,7 @@ static void monitor_sync(struct impl *impl) pw_core_set_paused(impl->policy_core, true); impl->monitor_seq = pw_core_sync(impl->monitor_core, 0, impl->monitor_seq); pw_log_debug(NAME " %p: monitor sync start %d", impl, impl->monitor_seq); + sm_media_session_schedule_rescan(&impl->this); } struct pw_proxy *sm_media_session_export(struct sm_media_session *sess, diff --git a/src/examples/media-session/v4l2-monitor.c b/src/examples/media-session/v4l2-monitor.c index 36545d0b1..52d341d0e 100644 --- a/src/examples/media-session/v4l2-monitor.c +++ b/src/examples/media-session/v4l2-monitor.c @@ -255,6 +255,7 @@ static void v4l2_device_object_info(void *data, uint32_t id, } else { v4l2_update_node(dev, node, info); } + sm_media_session_schedule_rescan(dev->impl->session); } static const struct spa_device_events v4l2_device_events = {