mirror of
https://github.com/WinampDesktop/winamp.git
synced 2024-09-24 15:54:12 +00:00
89 lines
1.7 KiB
C++
89 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
|