strutil: Fix sr_period_string output
The output was wrong for all frequencies but 1 Hz, 1 kHz, 1 MHz and 1 GHz. With this changes, the output may still be off due to rounding, but will be correct as to the shown accuracy.
This commit is contained in:
parent
900846816f
commit
a547531bf1
|
@ -369,13 +369,13 @@ SR_API char *sr_period_string(uint64_t frequency)
|
||||||
o = g_malloc0(30 + 1);
|
o = g_malloc0(30 + 1);
|
||||||
|
|
||||||
if (frequency >= SR_GHZ(1))
|
if (frequency >= SR_GHZ(1))
|
||||||
r = snprintf(o, 30, "%" PRIu64 " ns", frequency / 1000000000);
|
r = snprintf(o, 30, "%lld ps", 1000000000000ull / frequency);
|
||||||
else if (frequency >= SR_MHZ(1))
|
else if (frequency >= SR_MHZ(1))
|
||||||
r = snprintf(o, 30, "%" PRIu64 " us", frequency / 1000000);
|
r = snprintf(o, 30, "%lld ns", 1000000000ull / frequency);
|
||||||
else if (frequency >= SR_KHZ(1))
|
else if (frequency >= SR_KHZ(1))
|
||||||
r = snprintf(o, 30, "%" PRIu64 " ms", frequency / 1000);
|
r = snprintf(o, 30, "%lld us", 1000000ull / frequency);
|
||||||
else
|
else
|
||||||
r = snprintf(o, 30, "%" PRIu64 " s", frequency);
|
r = snprintf(o, 30, "%lld ms", 1000ull / frequency);
|
||||||
|
|
||||||
if (r < 0) {
|
if (r < 0) {
|
||||||
/* Something went wrong... */
|
/* Something went wrong... */
|
||||||
|
|
Loading…
Reference in New Issue