//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // // $NoKeywords: $ //=============================================================================// #ifndef SND_FIXEDINT_H #define SND_FIXEDINT_H #if defined( _WIN32 ) #pragma once #endif // fixed point stuff for real-time resampling #define FIX_BITS 28 #define FIX_SCALE (1 << FIX_BITS) #define FIX_MASK ((1 << FIX_BITS)-1) #define FIX_FLOAT(a) ((int)((a) * FIX_SCALE)) #define FIX(a) (((int)(a)) << FIX_BITS) #define FIX_INTPART(a) (((int)(a)) >> FIX_BITS) #define FIX_FRACTION(a,b) (FIX(a)/(b)) #define FIX_FRACPART(a) ((a) & FIX_MASK) #define FIX_TODOUBLE(a) ((double)(a) / (double)FIX_SCALE) typedef unsigned int fixedint; #define FIX_BITS14 14 #define FIX_SCALE14 (1 << FIX_BITS14) #define FIX_MASK14 ((1 << FIX_BITS14)-1) #define FIX_FLOAT14(a) ((int)((a) * FIX_SCALE14)) #define FIX14(a) (((int)(a)) << FIX_BITS14) #define FIX_INTPART14(a) (((int)(a)) >> FIX_BITS14) #define FIX_FRACTION14(a,b) (FIX14(a)/(b)) #define FIX_FRACPART14(a) ((a) & FIX_MASK14) #define FIX_14TODOUBLE(a) ((double)(a) / (double)FIX_SCALE14) #define FIX_28TO14(a) ( (int)( ((unsigned int)(a)) >> (FIX_BITS - 14) ) ) #endif // SND_FIXEDINT_H