"L. Spiro Engine"

F:/My Projects/LSEngine/Modules/LSSoundLib/Src/Ogg/LSSVorbisFloor0.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-2009             *
00009  * by the Xiph.Org Foundation http://www.xiph.org/                  *
00010  *                                                                  *
00011  ********************************************************************
00012 
00013  function: floor backend 0 implementation
00014  last mod: $Id: floor0.c 17558 2010-10-22 00:24:41Z tterribe $
00015 
00016  ********************************************************************/
00017 
00018 
00019 #ifndef __LSS_VORBISFLOOR0_H__
00020 #define __LSS_VORBISFLOOR0_H__
00021 
00022 #include "../LSSSoundLib.h"
00023 #include "LSSOgg.h"
00024 #include "LSSVorbisBackends.h"
00025 #include "LSSVorbisCodec.h"
00026 #include "LSSVorbisStructs.h"
00027 
00028 namespace lss {
00029 
00036         class CVorbisFloor0 {
00037         public :
00038                 // == Members.
00042                 static const CVorbisBackends::vorbis_func_floor floor0_exportbundle;
00043 
00044         protected :
00045                 // == Types.
00049                 typedef struct vorbis_look_floor0 {
00050                         LSINT32                                                                         ln;
00051                         LSINT32                                                                         m;
00052                         LSINT32 **                                                                      linearmap;
00053                         LSINT32                                                                         n[2];
00054 
00055                         CVorbisBackends::vorbis_info_floor0 *           vi;
00056 
00057                         LSINT32                                                                         bits;
00058                         LSINT32                                                                         frames;
00059                 } * LPvorbis_look_floor0, * const LPCvorbis_look_floor0;
00060 
00061                 // == Functions.
00067                 static LSVOID                                                                   floor0_free_info( CVorbisStructs::vorbis_info_floor * _pvifI );
00068 
00074                 static LSVOID                                                                   floor0_free_look( CVorbisStructs::vorbis_look_floor * _pvifI );
00075 
00083                 static CVorbisStructs::vorbis_info_floor *              floor0_unpack( CVorbisCodec::vorbis_info * _pviVi, COgg::oggpack_buffer * _pobOpb );
00084 
00093                 static LSVOID                                                                   floor0_map_lazy_init( CVorbisCodec::vorbis_block * _pvbVb, CVorbisStructs::vorbis_info_floor * _pvifInfoX, vorbis_look_floor0 * _pvlfLook );
00094 
00102                 static CVorbisStructs::vorbis_look_floor *              floor0_look( CVorbisCodec::vorbis_dsp_state * _pvdsVd, CVorbisStructs::vorbis_info_floor * _pvifI );
00103 
00111                 static LSVOID *                                                                 floor0_inverse1( CVorbisCodec::vorbis_block * _pvbVb, CVorbisStructs::vorbis_look_floor * _pvifI );
00112 
00122                 static LSINT32                                                                  floor0_inverse2( CVorbisCodec::vorbis_block * _pvbVb, CVorbisStructs::vorbis_look_floor * _pvlfI, LSVOID * _pvMemo, LSFLOAT * _pfOut );
00123         };
00124 
00125 }       // namespace lss
00126 
00127 #endif  // __LSS_VORBISFLOOR0_H__
00128 
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator