From: Bert Vermeulen Date: Fri, 2 Nov 2012 14:19:01 +0000 (+0100) Subject: output/analog: add support for sound pressure level X-Git-Tag: dsupstream~602 X-Git-Url: http://sigrok.org/gitweb/?a=commitdiff_plain;h=258eeb77b88852b743e08a751455a2c1965e4db1;p=libsigrok.git output/analog: add support for sound pressure level --- diff --git a/output/analog.c b/output/analog.c index eec2efd4..7090d0fe 100644 --- a/output/analog.c +++ b/output/analog.c @@ -143,6 +143,27 @@ static void fancyprint(int unit, int mqflags, float value, GString *out) case SR_UNIT_DECIBEL_VOLT: si_printf(value, out, "dBV"); break; + case SR_UNIT_DECIBEL_SPL: + if (mqflags & SR_MQFLAG_SPL_FREQ_WEIGHT_A) + si_printf(value, out, "dB(A)"); + else if (mqflags & SR_MQFLAG_SPL_FREQ_WEIGHT_C) + si_printf(value, out, "dB(C)"); + else if (mqflags & SR_MQFLAG_SPL_FREQ_WEIGHT_Z) + si_printf(value, out, "dB(Z)"); + else + /* No frequency weighting, or non-standard "flat" */ + si_printf(value, out, "dB(SPL)"); + if (mqflags & SR_MQFLAG_SPL_TIME_WEIGHT_S) + g_string_append(out, " S"); + else if (mqflags & SR_MQFLAG_SPL_TIME_WEIGHT_F) + g_string_append(out, " F"); + if (mqflags & SR_MQFLAG_SPL_LAT) + g_string_append(out, " LAT"); + else if (mqflags & SR_MQFLAG_SPL_PCT_OVER_ALARM) + /* Not a standard function for SLMs, so this is + * a made-up notation. */ + g_string_append(out, " %oA"); + break; default: si_printf(value, out, ""); }