From b39bc85e60191bbcac2991d6a7ab461a194d04c6 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 2 Aug 2018 21:18:36 +0200 Subject: [PATCH] AudioFormat: add mask support to ToString() --- src/AudioFormat.cxx | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/AudioFormat.cxx b/src/AudioFormat.cxx index c4c654357..4a7c16874 100644 --- a/src/AudioFormat.cxx +++ b/src/AudioFormat.cxx @@ -53,12 +53,23 @@ ToString(const AudioFormat af) noexcept sample rate */ p += sprintf(p, "dsd%u:", af.sample_rate * 8 / 44100); } else { - p += sprintf(p, "%u:%s:", - af.sample_rate, - sample_format_to_string(af.format)); + const char *sample_format = af.format != SampleFormat::UNDEFINED + ? sample_format_to_string(af.format) + : "*"; + + if (af.sample_rate > 0) + p += sprintf(p, "%u:%s:", af.sample_rate, + sample_format); + else + p += sprintf(p, "*:%s:", sample_format); } - p += sprintf(p, "%u", af.channels); + if (af.channels > 0) + p += sprintf(p, "%u", af.channels); + else { + *p++ = '*'; + *p = 0; + } return buffer; }