From b7b119ae00090074ec0bc48da7a0c4b689efa55c Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 22 Aug 2007 00:20:13 +0000 Subject: [PATCH] add pa_is_power_of_two() and pa_make_power_of_two() functions git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1684 fefdeb5f-60dc-0310-8127-8f9354f1896f --- src/pulsecore/core-util.c | 18 ++++++++++++++++++ src/pulsecore/core-util.h | 3 +++ 2 files changed, 21 insertions(+) diff --git a/src/pulsecore/core-util.c b/src/pulsecore/core-util.c index 2c5a32e..0005e22 100644 --- a/src/pulsecore/core-util.c +++ b/src/pulsecore/core-util.c @@ -1208,3 +1208,21 @@ char *pa_truncate_utf8(char *c, size_t l) { return c; } + +int pa_is_power_of_two(unsigned n) { + return !(n & (n - 1)); +} + +unsigned pa_make_power_of_two(unsigned n) { + unsigned j = n; + + if (pa_is_power_of_two(n)) + return n; + + while (j) { + j = j >> 1; + n = n | j; + } + + return n + 1; +} diff --git a/src/pulsecore/core-util.h b/src/pulsecore/core-util.h index cb78d32..29dc2fb 100644 --- a/src/pulsecore/core-util.h +++ b/src/pulsecore/core-util.h @@ -97,4 +97,7 @@ int pa_snprintf(char *str, size_t size, const char *format, ...); char *pa_truncate_utf8(char *c, size_t l); +int pa_is_power_of_two(unsigned n); +unsigned pa_make_power_of_two(unsigned n); + #endif -- 2.7.4