From dbc97942f407f8b1927e7b6d9d8cca7e2afc544d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Barnab=C3=A1s=20P=C5=91cze?= Date: Wed, 14 Jan 2026 19:46:59 +0100 Subject: [PATCH] spa: libcamera: manager: simplify property emission There are no conditional properties, so everything can be in the array initializer, which always deduces the size correctly, so do that. --- spa/plugins/libcamera/libcamera-manager.cpp | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/spa/plugins/libcamera/libcamera-manager.cpp b/spa/plugins/libcamera/libcamera-manager.cpp index 5c1620571..de59f6fbc 100644 --- a/spa/plugins/libcamera/libcamera-manager.cpp +++ b/spa/plugins/libcamera/libcamera-manager.cpp @@ -118,9 +118,7 @@ void remove_device(struct impl *impl, struct device *device) int emit_object_info(struct impl *impl, const struct device *device) { struct spa_device_object_info info; - struct spa_dict_item items[20]; struct spa_dict dict; - uint32_t n_items = 0; info = SPA_DEVICE_OBJECT_INFO_INIT(); @@ -130,14 +128,14 @@ int emit_object_info(struct impl *impl, const struct device *device) SPA_DEVICE_OBJECT_CHANGE_MASK_PROPS; info.flags = 0; -#define ADD_ITEM(key, value) items[n_items++] = SPA_DICT_ITEM_INIT(key, value) - ADD_ITEM(SPA_KEY_DEVICE_ENUM_API,"libcamera.manager"); - ADD_ITEM(SPA_KEY_DEVICE_API, "libcamera"); - ADD_ITEM(SPA_KEY_MEDIA_CLASS, "Video/Device"); - ADD_ITEM(SPA_KEY_API_LIBCAMERA_PATH, device->camera->id().c_str()); -#undef ADD_ITEM + const spa_dict_item items[] = { + { SPA_KEY_DEVICE_ENUM_API, "libcamera.manager" }, + { SPA_KEY_DEVICE_API, "libcamera" }, + { SPA_KEY_MEDIA_CLASS, "Video/Device" }, + { SPA_KEY_API_LIBCAMERA_PATH, device->camera->id().c_str() }, + }; - dict = SPA_DICT_INIT(items, n_items); + dict = SPA_DICT_INIT_ARRAY(items); info.props = &dict; spa_device_emit_object_info(&impl->hooks, impl->id_of(*device), &info);