From b2dfa830529f5e1f095c2088060b9b3b916ea32f Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Thu, 6 Feb 2020 16:50:59 +0100 Subject: [PATCH] pw-cat: print channelmap in verbose mode --- src/tools/pw-cat.c | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/src/tools/pw-cat.c b/src/tools/pw-cat.c index 24855feca..610c03dc9 100644 --- a/src/tools/pw-cat.c +++ b/src/tools/pw-cat.c @@ -42,6 +42,7 @@ #include #include #include +#include #include #include @@ -539,6 +540,18 @@ static int channelmap_default(struct channelmap *map, int n_channels) return 0; } +static void channelmap_print(struct channelmap *map) +{ + int i; + + for (i = 0; i < map->n_channels; i++) { + const char *name = spa_debug_type_find_name(spa_type_audio_channel, map->channels[i]); + if (name == NULL) + name = ":UNK"; + printf("%s%s", rindex(name, ':')+1, i + 1 < map->n_channels ? "," : ""); + } +} + static void target_destroy(struct target *target) { @@ -1130,6 +1143,8 @@ int main(int argc, char *argv[]) data.channels = data.info.channels; if (data.channelmap.n_channels == 0) { + bool def = false; + if (sf_command(data.file, SFC_GET_CHANNEL_MAP_INFO, data.channelmap.channels, sizeof(data.channelmap.channels[0]) * data.channels)) { @@ -1137,11 +1152,14 @@ int main(int argc, char *argv[]) if (channelmap_from_sf(&data.channelmap) < 0) data.channelmap.n_channels = 0; } - if (data.channelmap.n_channels > 0) { - printf("got channel map\n"); - } else { - printf("no channel map, assuming default\n"); + if (data.channelmap.n_channels == 0) { channelmap_default(&data.channelmap, data.channels); + def = true; + } + if (data.verbose) { + printf("using %s channel map: ", def ? "default" : "file"); + channelmap_print(&data.channelmap); + printf("\n"); } } }