90 lines
1.7 KiB
C
90 lines
1.7 KiB
C
|
/* $Header: /cvs/root/winamp/vlb/overlapadd.h,v 1.2 2011/06/13 02:06:03 audiodsp Exp $ */
|
||
|
|
||
|
/***************************************************************************\
|
||
|
*
|
||
|
* Copyright 2000-2002 Dolby Laboratories, Inc. All Rights
|
||
|
* Reserved. Do not copy. Do not distribute.
|
||
|
* Confidential information.
|
||
|
*
|
||
|
* (C) copyright Fraunhofer - IIS (1998)
|
||
|
* All Rights Reserved
|
||
|
*
|
||
|
* filename: overlapadd.h
|
||
|
* project : MPEG-2 AAC Decoder
|
||
|
* contents/description: time domain overlap add buffer object
|
||
|
*
|
||
|
\***************************************************************************/
|
||
|
|
||
|
#ifndef __OVERLAPADD_H__
|
||
|
#define __OVERLAPADD_H__
|
||
|
|
||
|
/** Buffer For Time Domain Overlap/Add Data.
|
||
|
|
||
|
This simple helper class provides a self-initializing buffer for one frame
|
||
|
worth of time domain signal data, associated window shape information and
|
||
|
appropriate access methods.
|
||
|
*/
|
||
|
|
||
|
class COverlapAddBuffer
|
||
|
{
|
||
|
|
||
|
protected :
|
||
|
|
||
|
enum
|
||
|
{
|
||
|
BufferSize = 1024
|
||
|
} ;
|
||
|
|
||
|
public :
|
||
|
|
||
|
COverlapAddBuffer ()
|
||
|
{
|
||
|
m_WindowShape = 0 ;
|
||
|
|
||
|
for (int i = 0 ; i < COverlapAddBuffer::BufferSize ; i++)
|
||
|
{
|
||
|
m_Buffer [i] = 0.0F ;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
~COverlapAddBuffer () {} ;
|
||
|
|
||
|
// buffer access
|
||
|
|
||
|
float &operator [] (int index)
|
||
|
{
|
||
|
return m_Buffer [index] ;
|
||
|
}
|
||
|
|
||
|
// window shape access
|
||
|
|
||
|
int GetWindowShape (void) const
|
||
|
{
|
||
|
return m_WindowShape ;
|
||
|
}
|
||
|
|
||
|
void SetWindowShape (int shape)
|
||
|
{
|
||
|
m_WindowShape = shape ;
|
||
|
}
|
||
|
|
||
|
#if defined (WIN32) && defined (_M_IX86)
|
||
|
|
||
|
float *AccessBuffer (void)
|
||
|
{
|
||
|
return m_Buffer ;
|
||
|
}
|
||
|
|
||
|
#endif
|
||
|
|
||
|
protected :
|
||
|
|
||
|
int m_WindowShape ;
|
||
|
|
||
|
float m_Buffer [COverlapAddBuffer::BufferSize] ;
|
||
|
|
||
|
} ;
|
||
|
|
||
|
#endif
|