"L. Spiro Engine"

F:/My Projects/LSEngine/Modules/LSSoundLib/Src/Ogg/LSSVorbisSmallFt.h

00001 /********************************************************************
00002  *                                                                  *
00003  * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
00004  * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
00005  * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
00006  * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
00007  *                                                                  *
00008  * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007             *
00009  * by the Xiph.Org Foundation http://www.xiph.org/                  *
00010  *                                                                  *
00011  ********************************************************************
00012 
00013  function: fft transform
00014  last mod: $Id: smallft.h 13293 2007-07-24 00:09:47Z xiphmont $
00015 
00016  ********************************************************************/
00017 
00018 
00019 #ifndef __LSS_VORBISSMALLFT_H__
00020 #define __LSS_VORBISSMALLFT_H__
00021 
00022 #include "../LSSSoundLib.h"
00023 
00024 namespace lss {
00025 
00032         class CVorbisSmallFt {
00033         public :
00034                 // == Types.
00038                 typedef struct drft_lookup {
00039                         LSINT32                                         n;
00040                         LSFLOAT *                                       trigcache;
00041                         LSINT32 *                                       splitcache;
00042                 } * LPdrft_lookup, * const LPCdrft_lookup;
00043 
00044 
00045                 // == Functions.
00052                 static LSVOID                                   drft_forward( drft_lookup * _plLookup, LSFLOAT * _pfData );
00053 
00060                 static LSVOID                                   drft_backward( drft_lookup * _plLookup, LSFLOAT * _pfData );
00061 
00068                 static LSVOID                                   drft_init( drft_lookup * _plLookup, LSINT32 _i32N );
00069 
00075                 static LSVOID                                   drft_clear( drft_lookup * _plLookup );
00076 
00077 
00078         protected :
00079                 // == Functions.
00089                 static LSVOID                                   drftf1( LSINT32 _i32N, LSFLOAT * _pfC, LSFLOAT * _pfCh, LSFLOAT * _pfWa, LSINT32 * _pi32Fac );
00090 
00100                 static LSVOID                                   drftb1( LSINT32 _i32N, LSFLOAT * _pfC, LSFLOAT * _pfCh, LSFLOAT * _pfWa, LSINT32 * _pi32Fac );
00101 
00109                 static LSVOID                                   fdrffti( LSINT32 _i32N, LSFLOAT * _pfWSave, LSINT32 * _pi32Fac );
00110 
00122                 static LSVOID                                   dradf4( LSINT32 _i32Ido, LSINT32 _i32L1, LSFLOAT * _pfCc, LSFLOAT * _pfCh, LSFLOAT * _pfWa1,
00123                         LSFLOAT * _pfWa2, LSFLOAT * _pfWa3 );
00124 
00134                 static LSVOID                                   dradf2( LSINT32 _i32Ido, LSINT32 _i32L1, LSFLOAT * _pfCc, LSFLOAT * _pfCh, LSFLOAT * _pfWa1 );
00135 
00150                 static LSVOID                                   dradfg( LSINT32 _i32Ido, LSINT32 _i32Ip, LSINT32 _i32L1, LSINT32 idl1, LSFLOAT * _pfCc, LSFLOAT * _pfC1,
00151                         LSFLOAT * _pfC2, LSFLOAT * _pfCh, LSFLOAT * _pfCh2, LSFLOAT * _pfWa );
00152 
00164                 static LSVOID                                   dradb4( LSINT32 _i32Ido, LSINT32 _i32L1, LSFLOAT * _pfCc, LSFLOAT * _pfCh, LSFLOAT * _pfWa1,
00165                         LSFLOAT * _pfWa2, LSFLOAT * _pfWa3 );
00166 
00176                 static LSVOID                                   dradb2( LSINT32 _i32Ido, LSINT32 _i32L1, LSFLOAT * _pfCc, LSFLOAT * _pfCh, LSFLOAT * _pfWa1 );
00177 
00188                 static LSVOID                                   dradb3( LSINT32 _i32Ido, LSINT32 _i32L1, LSFLOAT * _pfCc, LSFLOAT * _pfCh, LSFLOAT * _pfWa1,
00189                         LSFLOAT * _pfWa2 );
00190 
00205                 static LSVOID                                   dradbg( LSINT32 _i32Ido, LSINT32 _i32Ip, LSINT32 _i32L1, LSINT32 idl1, LSFLOAT * _pfCc, LSFLOAT * _pfC1, 
00206                         LSFLOAT * _pfC2, LSFLOAT * _pfCh, LSFLOAT * _pfCh2, LSFLOAT * _pfWa );
00207 
00215                 static LSVOID                                   drfti1( LSINT32 _i32N, LSFLOAT * _pfWa, LSINT32 * _pi32Fac );
00216         };
00217 
00218 }       // namespace lss
00219 
00220 #endif  // __LSS_VORBISSMALLFT_H__
00221 
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator