diff options
author | Taybin Rutkin <taybin@taybin.com> | 2005-05-18 16:08:37 +0000 |
---|---|---|
committer | Taybin Rutkin <taybin@taybin.com> | 2005-05-18 16:08:37 +0000 |
commit | fa7c141813844ce5b4c93ca126ed84ab568a2892 (patch) | |
tree | aafbf59e70135651039fffce7a2975099efcd1d6 /libs/soundtouch/STTypes.h | |
parent | 90dff30cf4b3dd1d9e752754395cdaf720eeae5f (diff) |
Updated to soundtouch-1.3 (plus modifications)
git-svn-id: svn://localhost/trunk/ardour2@13 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/soundtouch/STTypes.h')
-rw-r--r-- | libs/soundtouch/STTypes.h | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/libs/soundtouch/STTypes.h b/libs/soundtouch/STTypes.h new file mode 100644 index 0000000000..dc6a97001a --- /dev/null +++ b/libs/soundtouch/STTypes.h @@ -0,0 +1,110 @@ +//////////////////////////////////////////////////////////////////////////////// +/// +/// Common type definitions for SoundTouch audio processing library. +/// +/// Author : Copyright (c) Olli Parviainen +/// Author e-mail : oparviai @ iki.fi +/// SoundTouch WWW: http://www.iki.fi/oparviai/soundtouch +/// +//////////////////////////////////////////////////////////////////////////////// +// +// Last changed : $Date$ +// File revision : $Revision$ +// +// $Id$ +// +//////////////////////////////////////////////////////////////////////////////// +// +// License : +// +// SoundTouch audio processing library +// Copyright (c) Olli Parviainen +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +//////////////////////////////////////////////////////////////////////////////// + +#ifndef STTypes_H +#define STTypes_H + +typedef unsigned int uint; +typedef unsigned long ulong; + +#ifndef _WINDEF_ + // if these aren't defined already by Windows headers, define now + + typedef unsigned int BOOL; + + #define FALSE 0 + #define TRUE 1 + +#endif // _WINDEF_ + + +namespace soundtouch +{ + /// Enable one of the following defines to choose either 16bit integer or + /// 32bit float sample type. If you don't have opinion, using integer samples + /// is generally faster. + /// #define INTEGER_SAMPLES //< 16bit integer samples + #define FLOAT_SAMPLES //< 32bit float samples + + + /// Define this to allow CPU-specific assembler optimizations. Notice that + /// having this enabled on non-x86 platforms doesn't matter; the compiler can + /// drop unsupported extensions on different platforms automatically. + /// However, if you're having difficulties getting the optimized routines + /// compiled with your compler (e.g. some gcc compiler versions may be picky), + /// you may wish to disable the optimizations to make the library compile. + #define ALLOW_OPTIMIZATIONS 1 + + + #ifdef INTEGER_SAMPLES + // 16bit integer sample type + typedef short SAMPLETYPE; + // data type for sample accumulation: Use 32bit integer to prevent overflows + typedef long LONG_SAMPLETYPE; + + #ifdef FLOAT_SAMPLES + // check that only one sample type is defined + #error "conflicting sample types defined" + #endif // FLOAT_SAMPLES + + #ifdef ALLOW_OPTIMIZATIONS + #if WIN32 || __i386__ + // Allow MMX optimizations + #define ALLOW_MMX 1 + #endif + #endif + + #else + + // floating point samples + typedef float SAMPLETYPE; + // data type for sample accumulation: Use double to utilize full precision. + typedef double LONG_SAMPLETYPE; + + #ifdef ALLOW_OPTIMIZATIONS + #ifdef WIN32 + // Allow 3DNow! and SSE optimizations + #define ALLOW_3DNOW 1 + #define ALLOW_SSE 1 + #endif // WIN32 + #endif + + #endif // INTEGER_SAMPLES +}; + +#endif |