"L. Spiro Engine"
|
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