mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-29 05:40:27 -04:00
libcamera: advertise the device.product.name and not some random description
We can override the description with a localized one in the session manager, instead, like it's done in alsa
This commit is contained in:
parent
96472e259f
commit
bd37d78a8c
1 changed files with 9 additions and 27 deletions
|
|
@ -78,33 +78,14 @@ struct impl {
|
||||||
std::shared_ptr<Camera> camera;
|
std::shared_ptr<Camera> camera;
|
||||||
};
|
};
|
||||||
|
|
||||||
std::string cameraDesc(const Camera *camera)
|
std::string cameraModel(const Camera *camera)
|
||||||
{
|
{
|
||||||
const ControlList &props = camera->properties();
|
const ControlList &props = camera->properties();
|
||||||
bool addModel = true;
|
|
||||||
std::string name;
|
std::string name;
|
||||||
|
if (props.contains(properties::Model))
|
||||||
if (props.contains(properties::Location)) {
|
name = props.get(properties::Model);
|
||||||
switch (props.get(properties::Location)) {
|
else
|
||||||
case properties::CameraLocationFront:
|
name = camera->id();
|
||||||
addModel = false;
|
|
||||||
name = "Internal front camera ";
|
|
||||||
break;
|
|
||||||
case properties::CameraLocationBack:
|
|
||||||
addModel = false;
|
|
||||||
name = "Internal back camera ";
|
|
||||||
break;
|
|
||||||
case properties::CameraLocationExternal:
|
|
||||||
name = "External camera ";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (addModel) {
|
|
||||||
if (props.contains(properties::Model))
|
|
||||||
name = "" + props.get(properties::Model);
|
|
||||||
else
|
|
||||||
name = "" + camera->id();
|
|
||||||
}
|
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -135,7 +116,7 @@ static int emit_info(struct impl *impl, bool full)
|
||||||
uint32_t n_items = 0;
|
uint32_t n_items = 0;
|
||||||
struct spa_device_info info;
|
struct spa_device_info info;
|
||||||
struct spa_param_info params[2];
|
struct spa_param_info params[2];
|
||||||
char path[256], location[10], desc[256], name[256];
|
char path[256], location[10], model[256], name[256];
|
||||||
|
|
||||||
info = SPA_DEVICE_INFO_INIT();
|
info = SPA_DEVICE_INFO_INIT();
|
||||||
|
|
||||||
|
|
@ -149,8 +130,9 @@ static int emit_info(struct impl *impl, bool full)
|
||||||
ADD_ITEM(SPA_KEY_API_LIBCAMERA_PATH, (char *)impl->props.device);
|
ADD_ITEM(SPA_KEY_API_LIBCAMERA_PATH, (char *)impl->props.device);
|
||||||
snprintf(location, sizeof(location), "%s", cameraLoc(impl->camera.get()).c_str());
|
snprintf(location, sizeof(location), "%s", cameraLoc(impl->camera.get()).c_str());
|
||||||
ADD_ITEM(SPA_KEY_API_LIBCAMERA_LOCATION, location);
|
ADD_ITEM(SPA_KEY_API_LIBCAMERA_LOCATION, location);
|
||||||
snprintf(desc, sizeof(desc), "%s", cameraDesc(impl->camera.get()).c_str());
|
snprintf(model, sizeof(model), "%s", cameraModel(impl->camera.get()).c_str());
|
||||||
ADD_ITEM(SPA_KEY_DEVICE_DESCRIPTION, desc);
|
ADD_ITEM(SPA_KEY_DEVICE_PRODUCT_NAME, model);
|
||||||
|
ADD_ITEM(SPA_KEY_DEVICE_DESCRIPTION, model);
|
||||||
snprintf(name, sizeof(name), "libcamera_device.%s", impl->props.device);
|
snprintf(name, sizeof(name), "libcamera_device.%s", impl->props.device);
|
||||||
ADD_ITEM(SPA_KEY_DEVICE_NAME, name);
|
ADD_ITEM(SPA_KEY_DEVICE_NAME, name);
|
||||||
#undef ADD_ITEM
|
#undef ADD_ITEM
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue