#include <WavFile.h>
Public Member Functions | |
WavFile (void) | |
WavFile (BinaryIO *io) | |
~WavFile (void) | |
void | read (BinaryIO *io) |
void | write (void) |
std::list< CvrStgFile::Property > | getProperties (void) const |
unsigned long | getNumSamples (void) const |
void | replaceSample (const SamplePos pos, const SampleValue *s) |
SampleValue * | getSampleValue (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 | |
WavChunkHeader * | riffchhdr |
char | id_wave [4] |
WavFormatChunk * | FormatChunk |
WavChunkHeader * | datachhdr |
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< BYTE > | UnusedAfterData |
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 |
WavFile::WavFile | ( | void | ) |
WavFile::WavFile | ( | BinaryIO * | io | ) |
WavFile::~WavFile | ( | void | ) |
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
svs | a vector of unique(!) sample values where svs[i]->getLabel() == i holds for all 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
std::vector< MatchingAlgorithm * > WavFile::getMatchingAlgorithms | ( | Graph * | g, | |
Matching * | m | |||
) | const [virtual] |
get recommended list of matching algorithms
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
pos | the position of a sample (must be in 0...getNumSamples()-1) |
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()
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] |
std::vector<int> WavFile::data_large [private] |
std::vector<unsigned char> WavFile::data_small [private] |
WavChunkHeader* WavFile::datachhdr [private] |
const EmbValue WavFile::EmbValueModulus = 2 [static, private] |
Reimplemented from CvrStgFile.
WavFormatChunk* WavFile::FormatChunk [private] |
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] |
WavChunkHeader* WavFile::riffchhdr [private] |
const unsigned short WavFile::SamplesPerVertex = 2 [static, private] |
Reimplemented from CvrStgFile.
std::vector<BYTE> WavFile::UnusedAfterData [private] |
std::vector<WavChunkUnused*> WavFile::UnusedBeforeData [private] |