spa: make a function to make a channel short name

Make a function that can generate and parse a short name for
the positions that are not in the type list, like the AUX channels.
This commit is contained in:
Wim Taymans 2025-10-22 13:04:53 +02:00
parent 7177f8269d
commit 11f1298f53
16 changed files with 74 additions and 38 deletions

View file

@ -241,12 +241,13 @@ static int alsa_set_param(struct state *state, const char *k, const char *s)
static int position_to_string(struct channel_map *map, char *val, size_t len)
{
uint32_t i, o = 0;
char pos[8];
int r;
o += snprintf(val, len, "[ ");
for (i = 0; i < map->n_pos; i++) {
r = snprintf(val+o, len-o, "%s%s", i == 0 ? "" : ", ",
spa_debug_type_find_short_name(spa_type_audio_channel,
map->pos[i]));
spa_type_audio_channel_make_short_name(map->pos[i],
pos, sizeof(pos), "UNK"));
if (r < 0 || o + r >= len)
return -ENOSPC;
o += r;