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);
|
||||
}
|
||||
|
||||
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,
|
||||
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