summaryrefslogtreecommitdiff
path: root/include/asterisk/utils.h
diff options
context:
space:
mode:
authorJoshua Colp <jcolp@digium.com>2007-08-29 02:21:08 +0000
committerJoshua Colp <jcolp@digium.com>2007-08-29 02:21:08 +0000
commit440aab5ffacd1fdc1213605431e9dc46bab04d64 (patch)
tree8b8700fa35228cfb3c3c08c2895bc2b306537e6c /include/asterisk/utils.h
parent225d9166ec349df97b5e4b9da9199085ae59a5c2 (diff)
Add inline function for signed linear subtraction.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@81326 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'include/asterisk/utils.h')
-rw-r--r--include/asterisk/utils.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/asterisk/utils.h b/include/asterisk/utils.h
index 6f97770d9..d87ea0339 100644
--- a/include/asterisk/utils.h
+++ b/include/asterisk/utils.h
@@ -283,6 +283,19 @@ static force_inline void ast_slinear_saturated_add(short *input, short *value)
else
*input = (short) res;
}
+
+static force_inline void ast_slinear_saturated_subtract(short *input, short *value)
+{
+ int res;
+
+ res = (int) *input - *value;
+ if (res > 32767)
+ *input = 32767;
+ else if (res < -32767)
+ *input = -32767;
+ else
+ *input = (short) res;
+}
static force_inline void ast_slinear_saturated_multiply(short *input, short *value)
{