Defines Region information of an Instrument. More...
#include <DLS.h>
Public Member Functions | |
Sample * | GetSample () |
void | SetSample (Sample *pSample) |
Assign another sample to this Region. | |
virtual void | SetKeyRange (uint16_t Low, uint16_t High) |
Modifies the key range of this Region and makes sure the respective chunks are in correct order. | |
virtual void | UpdateChunks () |
Apply Region settings to the respective RIFF chunks. | |
Resource * | GetParent () |
virtual void | UpdateChunks () |
Update chunks with current Resource data. | |
void | GenerateDLSID () |
Generates a new DLSID for the resource. | |
Articulation * | GetFirstArticulation () |
Articulation * | GetNextArticulation () |
virtual void | UpdateChunks () |
Apply all articulations to the respective RIFF chunks. | |
void | AddSampleLoop (sample_loop_t *pLoopDef) |
Adds a new sample loop with the provided loop definition. | |
void | DeleteSampleLoop (sample_loop_t *pLoopDef) |
Deletes an existing sample loop. | |
virtual void | SetGain (int32_t gain) |
Public Attributes | |
range_t | KeyRange |
range_t | VelocityRange |
uint16_t | KeyGroup |
uint16_t | Layer |
bool | SelfNonExclusive |
bool | PhaseMaster |
uint16_t | PhaseGroup |
bool | MultiChannel |
uint32_t | Channel |
Info * | pInfo |
Points (in any case) to an Info object, providing additional, optional infos and comments. | |
dlsid_t * | pDLSID |
Points to a dlsid_t structure if the file provided a DLS ID else is NULL. | |
uint8_t | UnityNote |
int16_t | FineTune |
int32_t | Gain |
bool | NoSampleDepthTruncation |
bool | NoSampleCompression |
uint32_t | SampleLoops |
Reflects the number of sample loops. | |
sample_loop_t * | pSampleLoops |
Points to the beginning of a sample loop array, or is NULL if there are no loops defined. | |
Protected Types | |
typedef std::list< Articulation * > | ArticulationList |
Protected Member Functions | |
Region (Instrument *pInstrument, RIFF::List *rgnList) | |
virtual | ~Region () |
Destructor. | |
void | LoadArticulations () |
Protected Attributes | |
RIFF::List * | pCkRegion |
uint32_t | WavePoolTableIndex |
Sample * | pSample |
uint16_t | FormatOptionFlags |
uint16_t | WaveLinkOptionFlags |
Resource * | pParent |
RIFF::List * | pResourceList |
RIFF::List * | pParentList |
ArticulationList * | pArticulations |
ArticulationList::iterator | ArticulationsIterator |
RIFF::List * | pParentList |
uint32_t | uiHeaderSize |
uint32_t | SamplerOptions |
Friends | |
class | Instrument |
Defines Region information of an Instrument.
Definition at line 418 of file DLS.h.
typedef std::list<Articulation*> DLS::Articulator::ArticulationList [protected, inherited] |
DLS::Region::Region | ( | Instrument * | pInstrument, | |
RIFF::List * | rgnList | |||
) | [protected] |
Definition at line 862 of file DLS.cpp.
References Channel, CHUNK_ID_RGNH, CHUNK_ID_WLNK, FormatOptionFlags, RIFF::List::GetSubChunk(), DLS::range_t::high, KeyGroup, KeyRange, Layer, DLS::range_t::low, MultiChannel, pCkRegion, PhaseGroup, PhaseMaster, pSample, RIFF::Chunk::Read(), RIFF::Chunk::ReadUint16(), RIFF::Chunk::ReadUint32(), RIFF::Chunk::RemainingBytes(), SelfNonExclusive, VelocityRange, WaveLinkOptionFlags, and WavePoolTableIndex.
DLS::Region::~Region | ( | ) | [protected, virtual] |
Destructor.
Removes RIFF chunks associated with this Region.
Reimplemented in gig::Region.
Definition at line 910 of file DLS.cpp.
References RIFF::List::DeleteSubChunk(), RIFF::Chunk::GetParent(), pCkRegion, and DLS::Resource::pParent.
void DLS::Sampler::AddSampleLoop | ( | sample_loop_t * | pLoopDef | ) | [inherited] |
Adds a new sample loop with the provided loop definition.
pLoopDef | - points to a loop definition that is to be copied |
Definition at line 576 of file DLS.cpp.
References DLS::Sampler::pSampleLoops, DLS::Sampler::SampleLoops, and DLS::sample_loop_t::Size.
void DLS::Sampler::DeleteSampleLoop | ( | sample_loop_t * | pLoopDef | ) | [inherited] |
Deletes an existing sample loop.
pLoopDef | - pointer to existing loop definition |
Exception | - if given loop definition does not exist |
Definition at line 598 of file DLS.cpp.
References DLS::Sampler::pSampleLoops, and DLS::Sampler::SampleLoops.
void DLS::Resource::GenerateDLSID | ( | ) | [inherited] |
Generates a new DLSID for the resource.
Definition at line 450 of file DLS.cpp.
References DLS::dlsid_t::abData, DLS::Resource::pDLSID, DLS::dlsid_t::ulData1, DLS::dlsid_t::usData2, and DLS::dlsid_t::usData3.
Referenced by gig::File::AddInstrument(), and gig::File::File().
Articulation * DLS::Articulator::GetFirstArticulation | ( | ) | [inherited] |
Definition at line 174 of file DLS.cpp.
References DLS::Articulator::ArticulationsIterator, DLS::Articulator::LoadArticulations(), and DLS::Articulator::pArticulations.
Articulation * DLS::Articulator::GetNextArticulation | ( | ) | [inherited] |
Definition at line 181 of file DLS.cpp.
References DLS::Articulator::ArticulationsIterator, and DLS::Articulator::pArticulations.
Resource* DLS::Resource::GetParent | ( | ) | [inline, inherited] |
Definition at line 344 of file DLS.h.
References DLS::Resource::pParent.
Referenced by gig::Region::AddDimension(), GetSample(), gig::Region::GetSampleFromWavePool(), gig::Region::Region(), gig::Region::SetKeyRange(), SetKeyRange(), gig::Instrument::UpdateChunks(), gig::Region::UpdateChunks(), gig::DimensionRegion::UpdateChunks(), UpdateChunks(), and gig::Sample::Write().
Sample * DLS::Region::GetSample | ( | ) |
Reimplemented in gig::Region.
Definition at line 915 of file DLS.cpp.
References DLS::File::GetFirstSample(), DLS::File::GetNextSample(), DLS::Resource::GetParent(), pSample, DLS::File::pWavePoolTable, DLS::Sample::ulWavePoolOffset, and WavePoolTableIndex.
void DLS::Articulator::LoadArticulations | ( | ) | [protected, inherited] |
Definition at line 187 of file DLS.cpp.
References CHUNK_ID_ART2, CHUNK_ID_ARTL, RIFF::Chunk::GetChunkID(), RIFF::List::GetFirstSubChunk(), RIFF::List::GetListType(), RIFF::List::GetNextSubChunk(), RIFF::List::GetSubList(), LIST_TYPE_LAR2, LIST_TYPE_LART, DLS::Articulator::pArticulations, and DLS::Articulator::pParentList.
Referenced by DLS::Articulator::GetFirstArticulation().
void DLS::Sampler::SetGain | ( | int32_t | gain | ) | [virtual, inherited] |
Reimplemented in gig::DimensionRegion.
Definition at line 531 of file DLS.cpp.
References DLS::Sampler::Gain.
void DLS::Region::SetKeyRange | ( | uint16_t | Low, | |
uint16_t | High | |||
) | [virtual] |
Modifies the key range of this Region and makes sure the respective chunks are in correct order.
Low | - lower end of key range | |
High | - upper end of key range |
Reimplemented in gig::Region.
Definition at line 944 of file DLS.cpp.
References DLS::Resource::GetParent(), DLS::range_t::high, KeyRange, DLS::Instrument::LoadRegions(), DLS::range_t::low, and DLS::Instrument::pRegions.
void DLS::Region::SetSample | ( | Sample * | pSample | ) |
Assign another sample to this Region.
pSample | - sample to be assigned |
Definition at line 932 of file DLS.cpp.
References WavePoolTableIndex.
void DLS::Region::UpdateChunks | ( | ) | [virtual] |
Apply Region settings to the respective RIFF chunks.
You have to call File::Save() to make changes persistent.
Exception | - if the Region's sample could not be found |
Reimplemented from DLS::Sampler.
Reimplemented in gig::Region.
Definition at line 978 of file DLS.cpp.
References RIFF::List::AddSubChunk(), Channel, CHUNK_ID_RGNH, CHUNK_ID_WLNK, F_RGN_OPTION_SELFNONEXCLUSIVE, F_WAVELINK_MULTICHANNEL, F_WAVELINK_PHASE_MASTER, FormatOptionFlags, DLS::Resource::GetParent(), RIFF::Chunk::GetSize(), RIFF::List::GetSubChunk(), DLS::range_t::high, KeyGroup, KeyRange, Layer, RIFF::Chunk::LoadChunkData(), DLS::range_t::low, MultiChannel, pCkRegion, PhaseGroup, PhaseMaster, pSample, DLS::File::pSamples, SelfNonExclusive, VelocityRange, WaveLinkOptionFlags, and WavePoolTableIndex.
void DLS::Articulator::UpdateChunks | ( | ) | [virtual, inherited] |
Apply all articulations to the respective RIFF chunks.
You have to call File::Save() to make changes persistent.
Reimplemented in DLS::Instrument, and gig::Instrument.
Definition at line 221 of file DLS.cpp.
References DLS::Articulator::pArticulations.
void DLS::Resource::UpdateChunks | ( | ) | [virtual, inherited] |
Update chunks with current Resource data.
Apply Resource data persistently below the previously given resource list chunk. This will currently only include the INFO data. The DLSID will not be applied at the moment (yet).
You have to call File::Save() to make changes persistent.
Reimplemented in DLS::Sample, DLS::File, gig::Sample, and gig::File.
Definition at line 431 of file DLS.cpp.
References DLS::dlsid_t::abData, RIFF::List::AddSubChunk(), CHUNK_ID_DLID, RIFF::List::GetSubChunk(), RIFF::Chunk::LoadChunkData(), DLS::Resource::pDLSID, DLS::Resource::pInfo, DLS::Resource::pResourceList, DLS::dlsid_t::ulData1, DLS::Info::UpdateChunks(), DLS::dlsid_t::usData2, and DLS::dlsid_t::usData3.
friend class Instrument [friend] |
Reimplemented in gig::Region.
ArticulationList::iterator DLS::Articulator::ArticulationsIterator [protected, inherited] |
Definition at line 293 of file DLS.h.
Referenced by DLS::Articulator::GetFirstArticulation(), and DLS::Articulator::GetNextArticulation().
uint32_t DLS::Region::Channel |
Definition at line 428 of file DLS.h.
Referenced by Region(), and UpdateChunks().
int16_t DLS::Sampler::FineTune [inherited] |
Definition at line 359 of file DLS.h.
Referenced by DLS::Sampler::Sampler(), and DLS::Sampler::UpdateChunks().
uint16_t DLS::Region::FormatOptionFlags [protected] |
Definition at line 438 of file DLS.h.
Referenced by Region(), and UpdateChunks().
int32_t DLS::Sampler::Gain [inherited] |
Definition at line 360 of file DLS.h.
Referenced by gig::DimensionRegion::DimensionRegion(), DLS::Sampler::Sampler(), gig::DimensionRegion::SetGain(), DLS::Sampler::SetGain(), and DLS::Sampler::UpdateChunks().
uint16_t DLS::Region::KeyGroup |
Definition at line 422 of file DLS.h.
Referenced by Region(), and UpdateChunks().
Definition at line 420 of file DLS.h.
Referenced by Region(), SetKeyRange(), UpdateChunks(), and gig::Instrument::UpdateRegionKeyTable().
uint16_t DLS::Region::Layer |
Definition at line 423 of file DLS.h.
Referenced by Region(), and UpdateChunks().
Definition at line 427 of file DLS.h.
Referenced by Region(), and UpdateChunks().
bool DLS::Sampler::NoSampleCompression [inherited] |
Definition at line 362 of file DLS.h.
Referenced by DLS::Sampler::Sampler(), and DLS::Sampler::UpdateChunks().
bool DLS::Sampler::NoSampleDepthTruncation [inherited] |
Definition at line 361 of file DLS.h.
Referenced by DLS::Sampler::Sampler(), and DLS::Sampler::UpdateChunks().
ArticulationList* DLS::Articulator::pArticulations [protected, inherited] |
Definition at line 292 of file DLS.h.
Referenced by DLS::Articulator::Articulator(), DLS::Articulator::GetFirstArticulation(), DLS::Articulator::GetNextArticulation(), DLS::Articulator::LoadArticulations(), DLS::Articulator::UpdateChunks(), and DLS::Articulator::~Articulator().
RIFF::List* DLS::Region::pCkRegion [protected] |
Definition at line 435 of file DLS.h.
Referenced by gig::Region::AddDimension(), gig::Region::DeleteDimension(), Region(), gig::Region::UpdateChunks(), UpdateChunks(), and ~Region().
dlsid_t* DLS::Resource::pDLSID [inherited] |
Points to a dlsid_t structure if the file provided a DLS ID else is NULL.
Definition at line 342 of file DLS.h.
Referenced by DLS::Resource::GenerateDLSID(), DLS::Resource::Resource(), DLS::Resource::UpdateChunks(), and DLS::Resource::~Resource().
uint16_t DLS::Region::PhaseGroup |
Definition at line 426 of file DLS.h.
Referenced by Region(), and UpdateChunks().
Definition at line 425 of file DLS.h.
Referenced by Region(), and UpdateChunks().
Info* DLS::Resource::pInfo [inherited] |
Points (in any case) to an Info object, providing additional, optional infos and comments.
Definition at line 341 of file DLS.h.
Referenced by gig::File::AddInstrument(), gig::File::File(), gig::Instrument::Instrument(), DLS::Resource::Resource(), gig::Sample::Sample(), DLS::Resource::UpdateChunks(), and DLS::Resource::~Resource().
Resource* DLS::Resource::pParent [protected, inherited] |
Definition at line 348 of file DLS.h.
Referenced by DLS::Resource::GetParent(), DLS::Resource::Resource(), gig::Sample::UpdateChunks(), DLS::Instrument::~Instrument(), ~Region(), and DLS::Sample::~Sample().
RIFF::List* DLS::Articulator::pParentList [protected, inherited] |
Definition at line 291 of file DLS.h.
Referenced by DLS::Articulator::Articulator(), gig::Region::DeleteDimension(), and DLS::Articulator::LoadArticulations().
RIFF::List* DLS::Sampler::pParentList [protected, inherited] |
Definition at line 371 of file DLS.h.
Referenced by gig::Region::AddDimension(), gig::DimensionRegion::DimensionRegion(), DLS::Sampler::Sampler(), gig::DimensionRegion::UpdateChunks(), and DLS::Sampler::UpdateChunks().
RIFF::List* DLS::Resource::pResourceList [protected, inherited] |
Definition at line 349 of file DLS.h.
Referenced by DLS::Resource::Resource(), and DLS::Resource::UpdateChunks().
Sample* DLS::Region::pSample [protected] |
Definition at line 437 of file DLS.h.
Referenced by gig::Region::GetSample(), GetSample(), Region(), gig::Region::UpdateChunks(), and UpdateChunks().
sample_loop_t* DLS::Sampler::pSampleLoops [inherited] |
Points to the beginning of a sample loop array, or is NULL if there are no loops defined.
Definition at line 364 of file DLS.h.
Referenced by DLS::Sampler::AddSampleLoop(), DLS::Sampler::DeleteSampleLoop(), gig::DimensionRegion::DimensionRegion(), gig::Sample::ReadAndLoop(), DLS::Sampler::Sampler(), DLS::Sampler::UpdateChunks(), and DLS::Sampler::~Sampler().
uint32_t DLS::Sampler::SampleLoops [inherited] |
Reflects the number of sample loops.
Definition at line 363 of file DLS.h.
Referenced by DLS::Sampler::AddSampleLoop(), DLS::Sampler::DeleteSampleLoop(), gig::DimensionRegion::DimensionRegion(), gig::Sample::ReadAndLoop(), DLS::Sampler::Sampler(), gig::File::UpdateChunks(), and DLS::Sampler::UpdateChunks().
uint32_t DLS::Sampler::SamplerOptions [protected, inherited] |
Definition at line 373 of file DLS.h.
Referenced by gig::DimensionRegion::DimensionRegion(), DLS::Sampler::Sampler(), and DLS::Sampler::UpdateChunks().
Definition at line 424 of file DLS.h.
Referenced by Region(), and UpdateChunks().
uint32_t DLS::Sampler::uiHeaderSize [protected, inherited] |
Definition at line 372 of file DLS.h.
Referenced by DLS::Sampler::Sampler(), and DLS::Sampler::UpdateChunks().
uint8_t DLS::Sampler::UnityNote [inherited] |
Definition at line 358 of file DLS.h.
Referenced by DLS::Sampler::Sampler(), and DLS::Sampler::UpdateChunks().
Definition at line 421 of file DLS.h.
Referenced by Region(), and UpdateChunks().
uint16_t DLS::Region::WaveLinkOptionFlags [protected] |
Definition at line 439 of file DLS.h.
Referenced by Region(), and UpdateChunks().
uint32_t DLS::Region::WavePoolTableIndex [protected] |
Definition at line 436 of file DLS.h.
Referenced by gig::Region::GetSample(), GetSample(), Region(), SetSample(), and UpdateChunks().