winamp/Src/vlb/bitsequence.h

64 lines
1.5 KiB
C++

/* $Header: /cvs/root/winamp/vlb/bitsequence.h,v 1.1 2009/04/28 20:21:08 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: bitsequence.h
* project : MPEG-2 AAC Decoder
* contents/description: bitstream helper object
*
\***************************************************************************/
#ifndef __VLB_BITSEQUENCE_H__
#define __VLB_BITSEQUENCE_H__
#include "bitstream.h"
/** Bitstream Parser Utility.
This helper class is basically a numerical value that can read itself from a
\Ref{CDolbyBitStream} interface for convenience. The decoder almost completely
does the bitstream parsing through CVLBBitSequence rather than \Ref{CDolbyBitStream} directly.
*/
class CVLBBitSequence
{
public :
CVLBBitSequence (const int length = 0) ;
CVLBBitSequence (const int length, const int value) ;
~CVLBBitSequence () ;
int Read (CDolbyBitStream& bs, const int length) ;
int Read (CDolbyBitStream& bs)
{
m_Value = bs.Get (m_Length) ;
return m_Value ;
}
operator int() const
{
return m_Value ;
}
CVLBBitSequence &operator=(int) ;
CVLBBitSequence &operator+=(int) ;
protected :
int m_Length ;
int m_Value ;
} ;
#endif