mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-29 05:40:27 -04:00
metadata: add vargs format method for metadata values
This commit is contained in:
parent
beb80a06e8
commit
f6ce23cbe3
2 changed files with 36 additions and 0 deletions
|
|
@ -570,3 +570,35 @@ int pw_impl_metadata_set_property(struct pw_impl_metadata *metadata,
|
||||||
{
|
{
|
||||||
return impl_set_property(metadata->metadata, subject, key, type, value);
|
return impl_set_property(metadata->metadata, subject, key, type, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SPA_EXPORT
|
||||||
|
int pw_impl_metadata_set_propertyf(struct pw_impl_metadata *metadata,
|
||||||
|
uint32_t subject, const char *key, const char *type,
|
||||||
|
const char *fmt, ...)
|
||||||
|
{
|
||||||
|
va_list args;
|
||||||
|
int n = 0;
|
||||||
|
size_t size = 0;
|
||||||
|
char *p = NULL;
|
||||||
|
|
||||||
|
va_start(args, fmt);
|
||||||
|
n = vsnprintf(p, size, fmt, args);
|
||||||
|
va_end(args);
|
||||||
|
if (n < 0)
|
||||||
|
return -errno;
|
||||||
|
|
||||||
|
size = (size_t) n + 1;
|
||||||
|
p = malloc(size);
|
||||||
|
if (p == NULL)
|
||||||
|
return -errno;
|
||||||
|
|
||||||
|
va_start(args, fmt);
|
||||||
|
n = vsnprintf(p, size, fmt, args);
|
||||||
|
va_end(args);
|
||||||
|
|
||||||
|
if (n < 0) {
|
||||||
|
free(p);
|
||||||
|
return -errno;
|
||||||
|
}
|
||||||
|
return pw_impl_metadata_set_property(metadata, subject, key, type, p);
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -99,6 +99,10 @@ int pw_impl_metadata_set_property(struct pw_impl_metadata *metadata,
|
||||||
uint32_t subject, const char *key, const char *type,
|
uint32_t subject, const char *key, const char *type,
|
||||||
const char *value);
|
const char *value);
|
||||||
|
|
||||||
|
int pw_impl_metadata_set_propertyf(struct pw_impl_metadata *metadata,
|
||||||
|
uint32_t subject, const char *key, const char *type,
|
||||||
|
const char *fmt, ...) SPA_PRINTF_FUNC(5,6);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \}
|
* \}
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue