#include <RIFF.h>
Inheritance diagram for RIFF::Chunk:
Public Member Functions | |
Chunk (File *pFile, unsigned long StartPos, List *Parent) | |
String | GetChunkIDString () |
Returns the String representation of the chunk's ID (e.g. | |
uint32_t | GetChunkID () |
List * | GetParent () |
Chunk ID in unsigned integer representation. | |
unsigned long | GetSize () |
Returns pointer to the chunk's parent list chunk. | |
unsigned long | GetNewSize () |
Chunk size in bytes (without header, thus the chunk data body). | |
unsigned long | GetPos () |
New chunk size if it was modified with Resize(). | |
unsigned long | GetFilePos () |
Position within the chunk data body. | |
unsigned long | SetPos (unsigned long Where, stream_whence_t Whence=stream_start) |
Sets the position within the chunk body, thus within the data portion of the chunk (in bytes). | |
unsigned long | RemainingBytes () |
Returns the number of bytes left to read in the chunk body. | |
stream_state_t | GetState () |
Returns the current state of the chunk object. | |
unsigned long | Read (void *pData, unsigned long WordCount, unsigned long WordSize) |
Reads WordCount number of data words with given WordSize and copies it into a buffer pointed by pData. | |
unsigned long | ReadInt8 (int8_t *pData, unsigned long WordCount=1) |
Reads WordCount number of 8 Bit signed integer words and copies it into the buffer pointed by pData. | |
unsigned long | ReadUint8 (uint8_t *pData, unsigned long WordCount=1) |
Reads WordCount number of 8 Bit unsigned integer words and copies it into the buffer pointed by pData. | |
unsigned long | ReadInt16 (int16_t *pData, unsigned long WordCount=1) |
Reads WordCount number of 16 Bit signed integer words and copies it into the buffer pointed by pData. | |
unsigned long | ReadUint16 (uint16_t *pData, unsigned long WordCount=1) |
Reads WordCount number of 16 Bit unsigned integer words and copies it into the buffer pointed by pData. | |
unsigned long | ReadInt32 (int32_t *pData, unsigned long WordCount=1) |
Reads WordCount number of 32 Bit signed integer words and copies it into the buffer pointed by pData. | |
unsigned long | ReadUint32 (uint32_t *pData, unsigned long WordCount=1) |
Reads WordCount number of 32 Bit unsigned integer words and copies it into the buffer pointed by pData. | |
int8_t | ReadInt8 () |
Reads one 8 Bit signed integer word and increments the position within the chunk. | |
uint8_t | ReadUint8 () |
Reads one 8 Bit unsigned integer word and increments the position within the chunk. | |
int16_t | ReadInt16 () |
Reads one 16 Bit signed integer word and increments the position within the chunk. | |
uint16_t | ReadUint16 () |
Reads one 16 Bit unsigned integer word and increments the position within the chunk. | |
int32_t | ReadInt32 () |
Reads one 32 Bit signed integer word and increments the position within the chunk. | |
uint32_t | ReadUint32 () |
Reads one 32 Bit unsigned integer word and increments the position within the chunk. | |
unsigned long | Write (void *pData, unsigned long WordCount, unsigned long WordSize) |
Writes WordCount number of data words with given WordSize from the buffer pointed by pData. | |
unsigned long | WriteInt8 (int8_t *pData, unsigned long WordCount=1) |
Writes WordCount number of 8 Bit signed integer words from the buffer pointed by pData to the chunk's body, directly to the actual "physical" file. | |
unsigned long | WriteUint8 (uint8_t *pData, unsigned long WordCount=1) |
Writes WordCount number of 8 Bit unsigned integer words from the buffer pointed by pData to the chunk's body, directly to the actual "physical" file. | |
unsigned long | WriteInt16 (int16_t *pData, unsigned long WordCount=1) |
Writes WordCount number of 16 Bit signed integer words from the buffer pointed by pData to the chunk's body, directly to the actual "physical" file. | |
unsigned long | WriteUint16 (uint16_t *pData, unsigned long WordCount=1) |
Writes WordCount number of 16 Bit unsigned integer words from the buffer pointed by pData to the chunk's body, directly to the actual "physical" file. | |
unsigned long | WriteInt32 (int32_t *pData, unsigned long WordCount=1) |
Writes WordCount number of 32 Bit signed integer words from the buffer pointed by pData to the chunk's body, directly to the actual "physical" file. | |
unsigned long | WriteUint32 (uint32_t *pData, unsigned long WordCount=1) |
Writes WordCount number of 32 Bit unsigned integer words from the buffer pointed by pData to the chunk's body, directly to the actual "physical" file. | |
void * | LoadChunkData () |
Load chunk body into RAM. | |
void | ReleaseChunkData () |
Free loaded chunk body from RAM. | |
void | Resize (int iNewSize) |
Resize chunk. | |
virtual | ~Chunk () |
Protected Member Functions | |
Chunk (File *pFile) | |
Chunk (File *pFile, List *pParent, uint32_t uiChunkID, uint uiBodySize) | |
void | ReadHeader (unsigned long fPos) |
void | WriteHeader (unsigned long fPos) |
unsigned long | ReadSceptical (void *pData, unsigned long WordCount, unsigned long WordSize) |
Just an internal wrapper for the main Read() method with additional Exception throwing on errors. | |
void | swapBytes_16 (void *Word) |
void | swapBytes_32 (void *Word) |
void | swapBytes (void *Word, unsigned long WordSize) |
String | convertToString (uint32_t word) |
virtual unsigned long | WriteChunk (unsigned long ulWritePos, unsigned long ulCurrentDataOffset) |
Write chunk persistently e.g. | |
virtual void | __resetPos () |
Sets Chunk's read/write position to zero. | |
Protected Attributes | |
uint32_t | ChunkID |
uint32_t | CurrentChunkSize |
uint32_t | NewChunkSize |
List * | pParent |
File * | pFile |
unsigned long | ulStartPos |
unsigned long | ulPos |
uint8_t * | pChunkData |
unsigned long | ulChunkDataSize |
Friends | |
class | List |
Provides convenient methods to access data of ordinary RIFF chunks in general.
Definition at line 141 of file RIFF.h.
Definition at line 67 of file RIFF.cpp.
References CHUNK_HEADER_SIZE, pChunkData, pFile, pParent, ReadHeader(), ulChunkDataSize, ulPos, and ulStartPos.
Referenced by RIFF::List::AddSubChunk().
RIFF::Chunk::~Chunk | ( | ) | [virtual] |
Definition at line 92 of file RIFF.cpp.
References CurrentChunkSize, NewChunkSize, pChunkData, pFile, and RIFF::File::UnlogResized().
RIFF::Chunk::Chunk | ( | File * | pFile | ) | [protected] |
Definition at line 55 of file RIFF.cpp.
References CHUNK_ID_RIFF, ChunkID, pChunkData, pFile, pParent, ulChunkDataSize, and ulPos.
RIFF::Chunk::Chunk | ( | File * | pFile, | |
List * | pParent, | |||
uint32_t | uiChunkID, | |||
uint | uiBodySize | |||
) | [protected] |
Definition at line 80 of file RIFF.cpp.
References ChunkID, CurrentChunkSize, NewChunkSize, pChunkData, pFile, pParent, ulChunkDataSize, ulPos, and ulStartPos.
void RIFF::Chunk::__resetPos | ( | ) | [protected, virtual] |
Sets Chunk's read/write position to zero.
Reimplemented in RIFF::List.
Definition at line 907 of file RIFF.cpp.
References ulPos.
Referenced by RIFF::List::__resetPos().
String RIFF::Chunk::convertToString | ( | uint32_t | word | ) | [inline, protected] |
Definition at line 216 of file RIFF.h.
Referenced by GetChunkIDString(), RIFF::List::GetListTypeString(), RIFF::List::LoadSubChunks(), RIFF::List::ReadHeader(), and ReadHeader().
uint32_t RIFF::Chunk::GetChunkID | ( | ) | [inline] |
Definition at line 145 of file RIFF.h.
References ChunkID.
Referenced by DLS::Articulation::Articulation(), RIFF::List::DeleteSubChunk(), DLS::Articulator::LoadArticulations(), and gig::File::LoadGroups().
String RIFF::Chunk::GetChunkIDString | ( | ) |
Returns the String representation of the chunk's ID (e.g.
"RIFF", "LIST").
Definition at line 176 of file RIFF.cpp.
References ChunkID, and convertToString().
unsigned long RIFF::Chunk::GetFilePos | ( | ) | [inline] |
Position within the chunk data body.
Definition at line 150 of file RIFF.h.
References ulPos, and ulStartPos.
Referenced by gig::File::LoadSamples(), and DLS::File::LoadSamples().
unsigned long RIFF::Chunk::GetNewSize | ( | ) | [inline] |
Chunk size in bytes (without header, thus the chunk data body).
Definition at line 148 of file RIFF.h.
References NewChunkSize.
Referenced by gig::DimensionRegion::UpdateChunks().
List* RIFF::Chunk::GetParent | ( | ) | [inline] |
Chunk ID in unsigned integer representation.
Definition at line 146 of file RIFF.h.
References pParent.
Referenced by gig::Group::~Group(), DLS::Instrument::~Instrument(), DLS::Region::~Region(), and DLS::Sample::~Sample().
unsigned long RIFF::Chunk::GetPos | ( | ) | [inline] |
New chunk size if it was modified with Resize().
Definition at line 149 of file RIFF.h.
References ulPos.
Referenced by gig::Sample::GetPos(), RIFF::List::LoadSubChunks(), and gig::Sample::Write().
unsigned long RIFF::Chunk::GetSize | ( | ) | [inline] |
Returns pointer to the chunk's parent list chunk.
Definition at line 147 of file RIFF.h.
References CurrentChunkSize.
Referenced by DLS::File::File(), DLS::Sample::GetSize(), LoadChunkData(), RIFF::List::LoadSubChunks(), DLS::Sample::Sample(), RIFF::File::Save(), gig::File::UpdateChunks(), DLS::Region::UpdateChunks(), DLS::Sampler::UpdateChunks(), and gig::Sample::Write().
stream_state_t RIFF::Chunk::GetState | ( | ) |
Returns the current state of the chunk object.
Following values are possible:
Definition at line 242 of file RIFF.cpp.
References CurrentChunkSize, RIFF::File::hFileRead, pFile, RIFF::stream_closed, RIFF::stream_end_reached, RIFF::stream_ready, and ulPos.
void * RIFF::Chunk::LoadChunkData | ( | ) |
Load chunk body into RAM.
Loads the whole chunk body into memory. You can modify the data in RAM and save the data by calling File::Save() afterwards.
Caution: the buffer pointer will be invalidated once File::Save() was called. You have to call LoadChunkData() again to get a new, valid pointer whenever File::Save() was called.
You can call LoadChunkData() again if you previously scheduled to enlarge this chunk with a Resize() call. In that case the buffer will be enlarged to the new, scheduled chunk size and you can already place the new chunk data to the buffer and finally call File::Save() to enlarge the chunk physically and write the new data in one rush. This approach is definitely recommended if you have to enlarge and write new data to a lot of chunks.
Exception | if data buffer could not be enlarged |
Definition at line 728 of file RIFF.cpp.
References CurrentChunkSize, RIFF::File::Filename, GetSize(), RIFF::File::hFileRead, NewChunkSize, pChunkData, pFile, ulChunkDataSize, and ulStartPos.
Referenced by gig::File::LoadGroups(), DLS::Sample::LoadSampleData(), gig::File::UpdateChunks(), gig::Instrument::UpdateChunks(), gig::Region::UpdateChunks(), gig::DimensionRegion::UpdateChunks(), gig::Sample::UpdateChunks(), DLS::File::UpdateChunks(), DLS::Instrument::UpdateChunks(), DLS::Region::UpdateChunks(), DLS::Sample::UpdateChunks(), DLS::Sampler::UpdateChunks(), DLS::Resource::UpdateChunks(), DLS::Articulation::UpdateChunks(), and WriteChunk().
unsigned long RIFF::Chunk::Read | ( | void * | pData, | |
unsigned long | WordCount, | |||
unsigned long | WordSize | |||
) |
Reads WordCount number of data words with given WordSize and copies it into a buffer pointed by pData.
The buffer has to be allocated and be sure to provide the correct WordSize, as this will be important and taken into account for eventual endian correction (swapping of bytes due to different native byte order of a system). The position within the chunk will automatically be incremented.
pData | destination buffer | |
WordCount | number of data words to read | |
WordSize | size of each data word to read |
Definition at line 273 of file RIFF.cpp.
References RIFF::File::bEndianNative, CurrentChunkSize, RIFF::File::hFileRead, pFile, SetPos(), RIFF::stream_curpos, swapBytes(), swapBytes_16(), swapBytes_32(), ulPos, and ulStartPos.
Referenced by DLS::Articulation::Articulation(), gig::DimensionRegion::DimensionRegion(), DLS::File::File(), DLS::Instrument::Instrument(), RIFF::List::LoadSubChunks(), gig::Sample::Read(), DLS::Sample::Read(), ReadSceptical(), DLS::Region::Region(), DLS::Resource::Resource(), gig::Sample::Sample(), and DLS::Sampler::Sampler().
void RIFF::Chunk::ReadHeader | ( | unsigned long | fPos | ) | [protected] |
Reimplemented in RIFF::List.
Definition at line 97 of file RIFF.cpp.
References RIFF::File::bEndianNative, CHUNK_ID_RIFF, CHUNK_ID_RIFX, ChunkID, convertToString(), CurrentChunkSize, RIFF::File::hFileRead, NewChunkSize, pFile, and swapBytes_32().
Referenced by Chunk(), and RIFF::List::ReadHeader().
int16_t RIFF::Chunk::ReadInt16 | ( | ) |
Reads one 16 Bit signed integer word and increments the position within the chunk.
Endian correction will automatically be done if needed.
RIFF::Exception | if an error occured |
Definition at line 647 of file RIFF.cpp.
References ReadSceptical().
unsigned long RIFF::Chunk::ReadInt16 | ( | int16_t * | pData, | |
unsigned long | WordCount = 1 | |||
) |
Reads WordCount number of 16 Bit signed integer words and copies it into the buffer pointed by pData.
The buffer has to be allocated. Endian correction will automatically be done if needed. The position within the chunk will automatically be incremented.
pData | destination buffer | |
WordCount | number of 16 Bit signed integers to read |
RIFF::Exception | if an error occured or less than WordCount integers could be read! |
Definition at line 471 of file RIFF.cpp.
References ReadSceptical().
Referenced by gig::DimensionRegion::DimensionRegion(), gig::Instrument::Instrument(), gig::Sample::Sample(), and DLS::Sampler::Sampler().
int32_t RIFF::Chunk::ReadInt32 | ( | ) |
Reads one 32 Bit signed integer word and increments the position within the chunk.
Endian correction will automatically be done if needed.
RIFF::Exception | if an error occured |
Definition at line 681 of file RIFF.cpp.
References ReadSceptical().
unsigned long RIFF::Chunk::ReadInt32 | ( | int32_t * | pData, | |
unsigned long | WordCount = 1 | |||
) |
Reads WordCount number of 32 Bit signed integer words and copies it into the buffer pointed by pData.
The buffer has to be allocated. Endian correction will automatically be done if needed. The position within the chunk will automatically be incremented.
pData | destination buffer | |
WordCount | number of 32 Bit signed integers to read |
RIFF::Exception | if an error occured or less than WordCount integers could be read! |
Definition at line 545 of file RIFF.cpp.
References ReadSceptical().
Referenced by gig::DimensionRegion::DimensionRegion(), gig::Instrument::Instrument(), gig::Sample::Sample(), and DLS::Sampler::Sampler().
int8_t RIFF::Chunk::ReadInt8 | ( | ) |
Reads one 8 Bit signed integer word and increments the position within the chunk.
RIFF::Exception | if an error occured |
Definition at line 614 of file RIFF.cpp.
References ReadSceptical().
unsigned long RIFF::Chunk::ReadInt8 | ( | int8_t * | pData, | |
unsigned long | WordCount = 1 | |||
) |
Reads WordCount number of 8 Bit signed integer words and copies it into the buffer pointed by pData.
The buffer has to be allocated. The position within the chunk will automatically be incremented.
pData | destination buffer | |
WordCount | number of 8 Bit signed integers to read |
RIFF::Exception | if an error occured or less than WordCount integers could be read! |
Definition at line 397 of file RIFF.cpp.
References ReadSceptical().
Referenced by gig::DimensionRegion::DimensionRegion().
unsigned long RIFF::Chunk::ReadSceptical | ( | void * | pData, | |
unsigned long | WordCount, | |||
unsigned long | WordSize | |||
) | [protected] |
Just an internal wrapper for the main Read() method with additional Exception throwing on errors.
Definition at line 380 of file RIFF.cpp.
References Read().
Referenced by ReadInt16(), ReadInt32(), ReadInt8(), ReadUint16(), ReadUint32(), and ReadUint8().
uint16_t RIFF::Chunk::ReadUint16 | ( | ) |
Reads one 16 Bit unsigned integer word and increments the position within the chunk.
Endian correction will automatically be done if needed.
RIFF::Exception | if an error occured |
Definition at line 664 of file RIFF.cpp.
References ReadSceptical().
unsigned long RIFF::Chunk::ReadUint16 | ( | uint16_t * | pData, | |
unsigned long | WordCount = 1 | |||
) |
Reads WordCount number of 16 Bit unsigned integer words and copies it into the buffer pointed by pData.
The buffer has to be allocated. Endian correction will automatically be done if needed. The position within the chunk will automatically be incremented.
pData | destination buffer | |
WordCount | number of 8 Bit unsigned integers to read |
RIFF::Exception | if an error occured or less than WordCount integers could be read! |
Definition at line 508 of file RIFF.cpp.
References ReadSceptical().
Referenced by gig::DimensionRegion::DimensionRegion(), gig::Instrument::Instrument(), DLS::Region::Region(), DLS::Sample::Sample(), and DLS::Sampler::Sampler().
uint32_t RIFF::Chunk::ReadUint32 | ( | ) |
Reads one 32 Bit unsigned integer word and increments the position within the chunk.
Endian correction will automatically be done if needed.
RIFF::Exception | if an error occured |
Definition at line 698 of file RIFF.cpp.
References ReadSceptical().
unsigned long RIFF::Chunk::ReadUint32 | ( | uint32_t * | pData, | |
unsigned long | WordCount = 1 | |||
) |
Reads WordCount number of 32 Bit unsigned integer words and copies it into the buffer pointed by pData.
The buffer has to be allocated. Endian correction will automatically be done if needed. The position within the chunk will automatically be incremented.
pData | destination buffer | |
WordCount | number of 32 Bit unsigned integers to read |
RIFF::Exception | if an error occured or less than WordCount integers could be read! |
Definition at line 582 of file RIFF.cpp.
References ReadSceptical().
Referenced by DLS::Articulation::Articulation(), DLS::File::File(), DLS::Instrument::Instrument(), gig::Region::Region(), DLS::Region::Region(), DLS::Sample::Sample(), and DLS::Sampler::Sampler().
uint8_t RIFF::Chunk::ReadUint8 | ( | ) |
Reads one 8 Bit unsigned integer word and increments the position within the chunk.
RIFF::Exception | if an error occured |
Definition at line 630 of file RIFF.cpp.
References ReadSceptical().
unsigned long RIFF::Chunk::ReadUint8 | ( | uint8_t * | pData, | |
unsigned long | WordCount = 1 | |||
) |
Reads WordCount number of 8 Bit unsigned integer words and copies it into the buffer pointed by pData.
The buffer has to be allocated. The position within the chunk will automatically be incremented.
pData | destination buffer | |
WordCount | number of 8 Bit unsigned integers to read |
RIFF::Exception | if an error occured or less than WordCount integers could be read! |
Definition at line 434 of file RIFF.cpp.
References ReadSceptical().
Referenced by gig::DimensionRegion::DimensionRegion(), gig::Instrument::Instrument(), and gig::Region::Region().
void RIFF::Chunk::ReleaseChunkData | ( | ) |
Free loaded chunk body from RAM.
Frees loaded chunk body data from memory (RAM). You should call File::Save() before calling this method if you modified the data to make the changes persistent.
Definition at line 772 of file RIFF.cpp.
References pChunkData.
Referenced by DLS::Sample::ReleaseSampleData().
unsigned long RIFF::Chunk::RemainingBytes | ( | ) |
Returns the number of bytes left to read in the chunk body.
When reading data from the chunk using the Read*() Methods, the position within the chunk data (that is the chunk body) will be incremented by the number of read bytes and RemainingBytes() returns how much data is left to read from the current position to the end of the chunk data.
Definition at line 224 of file RIFF.cpp.
References CurrentChunkSize, and ulPos.
Referenced by gig::DimensionRegion::DimensionRegion(), RIFF::List::LoadSubChunks(), gig::Sample::Read(), and DLS::Region::Region().
void RIFF::Chunk::Resize | ( | int | iNewSize | ) |
Resize chunk.
Resizes this chunk's body, that is the actual size of data possible to be written to this chunk. This call will return immediately and just schedule the resize operation. You should call File::Save() to actually perform the resize operation(s) "physically" to the file. As this can take a while on large files, it is recommended to call Resize() first on all chunks which have to be resized and finally to call File::Save() to perform all those resize operations in one rush.
Caution: You cannot directly write to enlarged chunks before calling File::Save() as this might exceed the current chunk's body boundary!
iNewSize | - new chunk body size in bytes (must be greater than zero) |
RIFF::Exception | if iNewSize is less than 1 |
Definition at line 797 of file RIFF.cpp.
References RIFF::File::LogAsResized(), NewChunkSize, and pFile.
Referenced by RIFF::List::AddSubChunk(), DLS::Sample::Resize(), gig::File::UpdateChunks(), DLS::File::UpdateChunks(), DLS::Sampler::UpdateChunks(), and DLS::Articulation::UpdateChunks().
unsigned long RIFF::Chunk::SetPos | ( | unsigned long | Where, | |
stream_whence_t | Whence = stream_start | |||
) |
Sets the position within the chunk body, thus within the data portion of the chunk (in bytes).
Caution: the position will be reset to zero whenever File::Save() was called.
Where | - position offset (in bytes) | |
Whence | - optional: defines to what Where relates to, if omitted Where relates to beginning of the chunk data |
Definition at line 192 of file RIFF.cpp.
References CurrentChunkSize, RIFF::stream_backward, RIFF::stream_curpos, RIFF::stream_end, RIFF::stream_start, and ulPos.
Referenced by DLS::Articulation::Articulation(), DLS::File::File(), RIFF::List::LoadSubChunks(), Read(), gig::Sample::Read(), gig::Region::Region(), gig::Sample::Sample(), DLS::Sampler::Sampler(), gig::Sample::SetPos(), DLS::Sample::SetPos(), and gig::File::SetSampleChecksum().
void RIFF::Chunk::swapBytes | ( | void * | Word, | |
unsigned long | WordSize | |||
) | [inline, protected] |
void RIFF::Chunk::swapBytes_16 | ( | void * | Word | ) | [inline, protected] |
void RIFF::Chunk::swapBytes_32 | ( | void * | Word | ) | [inline, protected] |
Definition at line 199 of file RIFF.h.
Referenced by Read(), ReadHeader(), Write(), and WriteHeader().
unsigned long RIFF::Chunk::Write | ( | void * | pData, | |
unsigned long | WordCount, | |||
unsigned long | WordSize | |||
) |
Writes WordCount number of data words with given WordSize from the buffer pointed by pData.
Be sure to provide the correct WordSize, as this will be important and taken into account for eventual endian correction (swapping of bytes due to different native byte order of a system). The position within the chunk will automatically be incremented.
pData | source buffer (containing the data) | |
WordCount | number of data words to write | |
WordSize | size of each data word to write |
RIFF::Exception | if write operation would exceed current chunk size or any IO error occured |
Definition at line 330 of file RIFF.cpp.
References RIFF::File::bEndianNative, CurrentChunkSize, RIFF::File::hFileWrite, RIFF::File::Mode, pFile, RIFF::stream_mode_read_write, swapBytes(), swapBytes_16(), swapBytes_32(), ulPos, and ulStartPos.
Referenced by gig::Sample::Write(), DLS::Sample::Write(), WriteInt16(), WriteInt32(), WriteInt8(), WriteUint16(), WriteUint32(), and WriteUint8().
unsigned long RIFF::Chunk::WriteChunk | ( | unsigned long | ulWritePos, | |
unsigned long | ulCurrentDataOffset | |||
) | [protected, virtual] |
Write chunk persistently e.g.
to disk.
Stores the chunk persistently to its actual "physical" file.
ulWritePos | - position within the "physical" file where this chunk should be written to | |
ulCurrentDataOffset | - offset of current (old) data within the file |
Reimplemented in RIFF::List.
Definition at line 817 of file RIFF.cpp.
References CHUNK_HEADER_SIZE, CurrentChunkSize, RIFF::File::hFileRead, RIFF::File::hFileWrite, LoadChunkData(), RIFF::File::Mode, NewChunkSize, pChunkData, pFile, RIFF::stream_mode_read_write, ulPos, ulStartPos, and WriteHeader().
void RIFF::Chunk::WriteHeader | ( | unsigned long | fPos | ) | [protected] |
Reimplemented in RIFF::List.
Definition at line 138 of file RIFF.cpp.
References RIFF::File::bEndianNative, CHUNK_ID_RIFF, CHUNK_ID_RIFX, ChunkID, RIFF::File::hFileWrite, NewChunkSize, pFile, and swapBytes_32().
Referenced by WriteChunk(), and RIFF::List::WriteHeader().
unsigned long RIFF::Chunk::WriteInt16 | ( | int16_t * | pData, | |
unsigned long | WordCount = 1 | |||
) |
Writes WordCount number of 16 Bit signed integer words from the buffer pointed by pData to the chunk's body, directly to the actual "physical" file.
The position within the chunk will automatically be incremented. Note: you cannot write beyond the boundaries of the chunk, to append data to the chunk call Resize() before.
pData | source buffer (containing the data) | |
WordCount | number of 16 Bit signed integers to write |
RIFF::Exception | if an IO error occured |
Definition at line 492 of file RIFF.cpp.
References Write().
unsigned long RIFF::Chunk::WriteInt32 | ( | int32_t * | pData, | |
unsigned long | WordCount = 1 | |||
) |
Writes WordCount number of 32 Bit signed integer words from the buffer pointed by pData to the chunk's body, directly to the actual "physical" file.
The position within the chunk will automatically be incremented. Note: you cannot write beyond the boundaries of the chunk, to append data to the chunk call Resize() before.
pData | source buffer (containing the data) | |
WordCount | number of 32 Bit signed integers to write |
RIFF::Exception | if an IO error occured |
Definition at line 566 of file RIFF.cpp.
References Write().
unsigned long RIFF::Chunk::WriteInt8 | ( | int8_t * | pData, | |
unsigned long | WordCount = 1 | |||
) |
Writes WordCount number of 8 Bit signed integer words from the buffer pointed by pData to the chunk's body, directly to the actual "physical" file.
The position within the chunk will automatically be incremented. Note: you cannot write beyond the boundaries of the chunk, to append data to the chunk call Resize() before.
pData | source buffer (containing the data) | |
WordCount | number of 8 Bit signed integers to write |
RIFF::Exception | if an IO error occured |
Definition at line 418 of file RIFF.cpp.
References Write().
unsigned long RIFF::Chunk::WriteUint16 | ( | uint16_t * | pData, | |
unsigned long | WordCount = 1 | |||
) |
Writes WordCount number of 16 Bit unsigned integer words from the buffer pointed by pData to the chunk's body, directly to the actual "physical" file.
The position within the chunk will automatically be incremented. Note: you cannot write beyond the boundaries of the chunk, to append data to the chunk call Resize() before.
pData | source buffer (containing the data) | |
WordCount | number of 16 Bit unsigned integers to write |
RIFF::Exception | if an IO error occured |
Definition at line 529 of file RIFF.cpp.
References Write().
unsigned long RIFF::Chunk::WriteUint32 | ( | uint32_t * | pData, | |
unsigned long | WordCount = 1 | |||
) |
Writes WordCount number of 32 Bit unsigned integer words from the buffer pointed by pData to the chunk's body, directly to the actual "physical" file.
The position within the chunk will automatically be incremented. Note: you cannot write beyond the boundaries of the chunk, to append data to the chunk call Resize() before.
pData | source buffer (containing the data) | |
WordCount | number of 32 Bit unsigned integers to write |
RIFF::Exception | if an IO error occured |
Definition at line 603 of file RIFF.cpp.
References Write().
Referenced by gig::File::SetSampleChecksum().
unsigned long RIFF::Chunk::WriteUint8 | ( | uint8_t * | pData, | |
unsigned long | WordCount = 1 | |||
) |
Writes WordCount number of 8 Bit unsigned integer words from the buffer pointed by pData to the chunk's body, directly to the actual "physical" file.
The position within the chunk will automatically be incremented. Note: you cannot write beyond the boundaries of the chunk, to append data to the chunk call Resize() before.
pData | source buffer (containing the data) | |
WordCount | number of 8 Bit unsigned integers to write |
RIFF::Exception | if an IO error occured |
Definition at line 455 of file RIFF.cpp.
References Write().
friend class List [friend] |
uint32_t RIFF::Chunk::ChunkID [protected] |
Definition at line 179 of file RIFF.h.
Referenced by Chunk(), RIFF::File::File(), GetChunkID(), GetChunkIDString(), ReadHeader(), and WriteHeader().
uint32_t RIFF::Chunk::CurrentChunkSize [protected] |
Definition at line 180 of file RIFF.h.
Referenced by Chunk(), GetSize(), GetState(), LoadChunkData(), Read(), RIFF::List::ReadHeader(), ReadHeader(), RemainingBytes(), SetPos(), Write(), RIFF::List::WriteChunk(), WriteChunk(), and ~Chunk().
uint32_t RIFF::Chunk::NewChunkSize [protected] |
Definition at line 181 of file RIFF.h.
Referenced by Chunk(), GetNewSize(), LoadChunkData(), RIFF::List::ReadHeader(), ReadHeader(), Resize(), RIFF::List::WriteChunk(), WriteChunk(), RIFF::List::WriteHeader(), WriteHeader(), and ~Chunk().
uint8_t* RIFF::Chunk::pChunkData [protected] |
Definition at line 186 of file RIFF.h.
Referenced by Chunk(), LoadChunkData(), ReleaseChunkData(), WriteChunk(), and ~Chunk().
File* RIFF::Chunk::pFile [protected] |
Definition at line 183 of file RIFF.h.
Referenced by RIFF::List::AddSubChunk(), RIFF::List::AddSubList(), Chunk(), GetState(), LoadChunkData(), RIFF::List::LoadSubChunks(), Read(), RIFF::List::ReadHeader(), ReadHeader(), Resize(), Write(), RIFF::List::WriteChunk(), WriteChunk(), RIFF::List::WriteHeader(), WriteHeader(), and ~Chunk().
List* RIFF::Chunk::pParent [protected] |
unsigned long RIFF::Chunk::ulChunkDataSize [protected] |
unsigned long RIFF::Chunk::ulPos [protected] |
Definition at line 185 of file RIFF.h.
Referenced by __resetPos(), Chunk(), GetFilePos(), GetPos(), GetState(), RIFF::List::LoadSubChunks(), Read(), RemainingBytes(), RIFF::File::Save(), SetPos(), Write(), and WriteChunk().
unsigned long RIFF::Chunk::ulStartPos [protected] |
Definition at line 184 of file RIFF.h.
Referenced by Chunk(), RIFF::File::File(), GetFilePos(), RIFF::List::List(), LoadChunkData(), RIFF::List::LoadSubChunks(), Read(), Write(), RIFF::List::WriteChunk(), and WriteChunk().