mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-11-03 09:01:54 -05: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