WavFile Class Reference

#include <WavFile.h>

Inheritance diagram for WavFile:

CvrStgFile CvrStgObject

List of all members.

Public Member Functions

 WavFile (void)
 WavFile (BinaryIO *io)
 ~WavFile (void)
void read (BinaryIO *io)
void write (void)
std::list< CvrStgFile::PropertygetProperties (void) const
unsigned long getNumSamples (void) const
void replaceSample (const SamplePos pos, const SampleValue *s)
SampleValuegetSampleValue (SamplePos pos) const
std::vector
< SampleValueAdjacencyList * > 
calcSVAdjacencyLists (const std::vector< SampleValue * > &svs) const
std::vector< MatchingAlgorithm * > getMatchingAlgorithms (Graph *g, Matching *m) const
unsigned short getBitsPerSample (void) const

Private Member Functions

void readheaders (void)
void readdata (void)
void writeheaders (void)
void writedata (void)
void calcpos (SamplePos n, unsigned long *bytepos, unsigned short *firstbitpos) const
unsigned short getFirstBitPosinSample (void)
unsigned short getBytesPerSample (void)

Private Attributes

WavChunkHeaderriffchhdr
char id_wave [4]
WavFormatChunkFormatChunk
WavChunkHeaderdatachhdr
std::vector< unsigned char > data_small
 this std::vector contains the wav data if BitsPerSample <= 8
std::vector< int > data_large
 this std::vector contains the wav data if BitsPerSample >8
std::vector< WavChunkUnused * > UnusedBeforeData
std::vector< BYTEUnusedAfterData

Static Private Attributes

static const signed short FormatPCM = 1
static const unsigned short SamplesPerVertex = 2
static const UWORD32 Radius_small = 1
static const UWORD32 Radius_large = 20
static const EmbValue EmbValueModulus = 2


Constructor & Destructor Documentation

WavFile::WavFile ( void   ) 

WavFile::WavFile ( BinaryIO io  ) 

WavFile::~WavFile ( void   ) 


Member Function Documentation

void WavFile::calcpos ( SamplePos  n,
unsigned long *  bytepos,
unsigned short *  firstbitpos 
) const [private]

std::vector< SampleValueAdjacencyList * > WavFile::calcSVAdjacencyLists ( const std::vector< SampleValue * > &  svs  )  const [virtual]

calculate a vector a SampleValueAdjacencyLists

Parameters:
svs a vector of unique(!) sample values where svs[i]->getLabel() == i holds for all i
Returns:
a vector of SampleValueAdjacencyLists where retval[i] only contains sample values with getEmbValue() == i
Every row in the adjacency lists must be sorted in the following order: The first sample value has the least distance to the source sample value, the last has the largest distance. If two sample values in one row have the same distance to the source sample value, the order does not matter.

May be overridden in derived class to provide a faster version.

Reimplemented from CvrStgFile.

unsigned short WavFile::getBitsPerSample ( void   )  const

unsigned short WavFile::getBytesPerSample ( void   )  [private]

unsigned short WavFile::getFirstBitPosinSample ( void   )  [private]

get the position of the first bit (of the first byte) containing the actual sample data

Returns:
the bit position (where 0 is the lsb and 7 the msb)

std::vector< MatchingAlgorithm * > WavFile::getMatchingAlgorithms ( Graph g,
Matching m 
) const [virtual]

get recommended list of matching algorithms

Parameters:
m an empty matching - will be used in construction of MatchingAlgorithm objects
The MatchingAlgorithm objects returned by this function should be deleted by the caller if they are no longer needed.

Reimplemented from CvrStgFile.

unsigned long WavFile::getNumSamples ( void   )  const [virtual]

get the number of samples in this CvrStgObject

Implements CvrStgObject.

std::list< CvrStgFile::Property > WavFile::getProperties ( void   )  const [virtual]

Implements CvrStgFile.

SampleValue * WavFile::getSampleValue ( SamplePos  pos  )  const [virtual]

get the sample at position pos

Parameters:
pos the position of a sample (must be in 0...getNumSamples()-1)
Returns:
the sample at the given position
The sample object is created in this function and should be deleted by the caller. The derived class should check the condition(s) given above in its Implementation of this function.

Implements CvrStgObject.

void WavFile::read ( BinaryIO io  )  [virtual]

Reimplemented from CvrStgFile.

void WavFile::readdata ( void   )  [private]

void WavFile::readheaders ( void   )  [private]

void WavFile::replaceSample ( const SamplePos  pos,
const SampleValue s 
) [virtual]

replace a sample thus (possibly) altering the value of the bit returned by SampleValue->getBit()

Parameters:
pos the position of the sample (must be in 0...getNumSamples()-1)
s the sample value that should replace the current sample value (must be of correct type for this CvrStgObject)
The derived class should check the condition(s) given above in its Implementation of this function.

Implements CvrStgObject.

void WavFile::write ( void   )  [virtual]

Reimplemented from CvrStgFile.

void WavFile::writedata ( void   )  [private]

void WavFile::writeheaders ( void   )  [private]


Member Data Documentation

std::vector<int> WavFile::data_large [private]

std::vector<unsigned char> WavFile::data_small [private]

const EmbValue WavFile::EmbValueModulus = 2 [static, private]

Reimplemented from CvrStgFile.

const signed short WavFile::FormatPCM = 1 [static, private]

char WavFile::id_wave[4] [private]

const UWORD32 WavFile::Radius_large = 20 [static, private]

const UWORD32 WavFile::Radius_small = 1 [static, private]

const unsigned short WavFile::SamplesPerVertex = 2 [static, private]

Reimplemented from CvrStgFile.

std::vector<BYTE> WavFile::UnusedAfterData [private]

std::vector<WavChunkUnused*> WavFile::UnusedBeforeData [private]


The documentation for this class was generated from the following files:

Generated on Mon Aug 17 10:58:33 2009 for steghide by  doxygen 1.5.9