#include <DLS.h>
Classes | |
struct | midi_locale_t |
Public Member Functions | |
Region * | GetFirstRegion () |
Region * | GetNextRegion () |
Region * | AddRegion () |
void | DeleteRegion (Region *pRegion) |
virtual void | UpdateChunks () |
Apply Instrument with all its Regions to the respective RIFF chunks. | |
Resource * | GetParent () |
void | GenerateDLSID () |
Generates a new DLSID for the resource. | |
Articulation * | GetFirstArticulation () |
Articulation * | GetNextArticulation () |
Public Attributes | |
bool | IsDrum |
Indicates if the Instrument is a drum type, as they differ in the synthesis model of DLS from melodic instruments. | |
uint16_t | MIDIBank |
Reflects combination of MIDIBankCoarse and MIDIBankFine (bank 1 - bank 16384). Do not change this value, it will not be saved! Change MIDIBankCoarse and MIDIBankFine instead (we might change that in future). | |
uint8_t | MIDIBankCoarse |
Reflects the MIDI Bank number for MIDI Control Change 0 (bank 1 - 128). | |
uint8_t | MIDIBankFine |
Reflects the MIDI Bank number for MIDI Control Change 32 (bank 1 - 128). | |
uint32_t | MIDIProgram |
Specifies the MIDI Program Change Number this Instrument should be assigned to. | |
uint32_t | Regions |
Reflects the number of Region defintions this Instrument has. | |
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. | |
Protected Types | |
typedef std::list< Region * > | RegionList |
typedef std::list< Articulation * > | ArticulationList |
Protected Member Functions | |
Instrument (File *pFile, RIFF::List *insList) | |
Constructor. | |
virtual void | LoadRegions () |
virtual | ~Instrument () |
Destructor. | |
void | LoadArticulations () |
Protected Attributes | |
RIFF::List * | pCkInstrument |
RegionList * | pRegions |
RegionList::iterator | RegionsIterator |
Resource * | pParent |
RIFF::List * | pResourceList |
RIFF::List * | pParentList |
ArticulationList * | pArticulations |
ArticulationList::iterator | ArticulationsIterator |
Friends | |
class | File |
class | Region |
Definition at line 447 of file DLS.h.
typedef std::list<Articulation*> DLS::Articulator::ArticulationList [protected, inherited] |
typedef std::list<Region*> DLS::Instrument::RegionList [protected] |
DLS::Instrument::Instrument | ( | File * | pFile, | |
RIFF::List * | insList | |||
) | [protected] |
Constructor.
Load an existing instrument definition or create a new one. An 'ins' list chunk must be given to this constructor. In case this 'ins' list chunk contains a 'insh' chunk, the instrument data fields will be loaded from there, otherwise default values will be used and the 'insh' chunk will be created once File::Save() was called.
pFile | - pointer to DLS::File where this instrument is located (or will be located) | |
insList | - pointer to 'ins' list chunk which is (or will be) associated with this instrument |
Definition at line 1049 of file DLS.cpp.
References DLS::Instrument::midi_locale_t::bank, CHUNK_ID_INSH, DRUM_TYPE_MASK, RIFF::List::GetSubChunk(), DLS::Instrument::midi_locale_t::instrument, IsDrum, MIDI_BANK_COARSE, MIDI_BANK_FINE, MIDI_BANK_MERGE, MIDIBank, MIDIBankCoarse, MIDIBankFine, MIDIProgram, pCkInstrument, pRegions, RIFF::Chunk::Read(), RIFF::Chunk::ReadUint32(), and Regions.
DLS::Instrument::~Instrument | ( | ) | [protected, virtual] |
Destructor.
Removes RIFF chunks associated with this Instrument and frees all memory occupied by this instrument.
Reimplemented in gig::Instrument.
Definition at line 1167 of file DLS.cpp.
References RIFF::List::DeleteSubChunk(), RIFF::Chunk::GetParent(), pCkInstrument, DLS::Resource::pParent, and pRegions.
Region * DLS::Instrument::AddRegion | ( | ) |
Reimplemented in gig::Instrument.
Definition at line 1100 of file DLS.cpp.
References RIFF::List::AddSubList(), RIFF::List::GetSubList(), LIST_TYPE_LRGN, LIST_TYPE_RGN, LoadRegions(), pCkInstrument, pRegions, Region, and Regions.
void DLS::Instrument::DeleteRegion | ( | Region * | pRegion | ) |
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.
Region * DLS::Instrument::GetFirstRegion | ( | ) |
Reimplemented in gig::Instrument.
Definition at line 1072 of file DLS.cpp.
References LoadRegions(), pRegions, and RegionsIterator.
Articulation * DLS::Articulator::GetNextArticulation | ( | ) | [inherited] |
Definition at line 181 of file DLS.cpp.
References DLS::Articulator::ArticulationsIterator, and DLS::Articulator::pArticulations.
Region * DLS::Instrument::GetNextRegion | ( | ) |
Reimplemented in gig::Instrument.
Definition at line 1079 of file DLS.cpp.
References pRegions, and RegionsIterator.
Resource* DLS::Resource::GetParent | ( | ) | [inline, inherited] |
Definition at line 344 of file DLS.h.
References DLS::Resource::pParent.
Referenced by gig::Region::AddDimension(), DLS::Region::GetSample(), gig::Region::GetSampleFromWavePool(), gig::Region::Region(), gig::Region::SetKeyRange(), DLS::Region::SetKeyRange(), gig::Instrument::UpdateChunks(), gig::Region::UpdateChunks(), gig::DimensionRegion::UpdateChunks(), DLS::Region::UpdateChunks(), and gig::Sample::Write().
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::Instrument::LoadRegions | ( | ) | [protected, virtual] |
Definition at line 1085 of file DLS.cpp.
References RIFF::List::GetFirstSubList(), RIFF::List::GetListType(), RIFF::List::GetNextSubList(), RIFF::List::GetSubList(), LIST_TYPE_LRGN, LIST_TYPE_RGN, LIST_TYPE_RGN2, pCkInstrument, pRegions, and Region.
Referenced by AddRegion(), GetFirstRegion(), and DLS::Region::SetKeyRange().
void DLS::Instrument::UpdateChunks | ( | ) | [virtual] |
Apply Instrument with all its Regions to the respective RIFF chunks.
You have to call File::Save() to make changes persistent.
Exception | - on errors |
Reimplemented from DLS::Articulator.
Reimplemented in gig::Instrument.
Definition at line 1135 of file DLS.cpp.
References RIFF::List::AddSubChunk(), DLS::Instrument::midi_locale_t::bank, CHUNK_ID_INSH, DRUM_TYPE_MASK, RIFF::List::GetSubChunk(), DLS::Instrument::midi_locale_t::instrument, IsDrum, RIFF::Chunk::LoadChunkData(), MIDI_BANK_ENCODE, MIDI_BANK_MERGE, MIDIBank, MIDIBankCoarse, MIDIBankFine, MIDIProgram, pCkInstrument, pRegions, and Regions.
friend class File [friend] |
friend class Region [friend] |
Reimplemented in gig::Instrument.
Definition at line 476 of file DLS.h.
Referenced by AddRegion(), and LoadRegions().
ArticulationList::iterator DLS::Articulator::ArticulationsIterator [protected, inherited] |
Definition at line 293 of file DLS.h.
Referenced by DLS::Articulator::GetFirstArticulation(), and DLS::Articulator::GetNextArticulation().
Indicates if the Instrument is a drum type, as they differ in the synthesis model of DLS from melodic instruments.
Definition at line 449 of file DLS.h.
Referenced by Instrument(), and UpdateChunks().
uint16_t DLS::Instrument::MIDIBank |
Reflects combination of MIDIBankCoarse and MIDIBankFine (bank 1 - bank 16384). Do not change this value, it will not be saved! Change MIDIBankCoarse and MIDIBankFine instead (we might change that in future).
Definition at line 450 of file DLS.h.
Referenced by Instrument(), and UpdateChunks().
uint8_t DLS::Instrument::MIDIBankCoarse |
Reflects the MIDI Bank number for MIDI Control Change 0 (bank 1 - 128).
Definition at line 451 of file DLS.h.
Referenced by Instrument(), and UpdateChunks().
uint8_t DLS::Instrument::MIDIBankFine |
Reflects the MIDI Bank number for MIDI Control Change 32 (bank 1 - 128).
Definition at line 452 of file DLS.h.
Referenced by Instrument(), and UpdateChunks().
uint32_t DLS::Instrument::MIDIProgram |
Specifies the MIDI Program Change Number this Instrument should be assigned to.
Definition at line 453 of file DLS.h.
Referenced by Instrument(), and 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::Instrument::pCkInstrument [protected] |
Definition at line 468 of file DLS.h.
Referenced by gig::Instrument::AddRegion(), AddRegion(), Instrument(), LoadRegions(), gig::Instrument::UpdateChunks(), UpdateChunks(), and ~Instrument().
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().
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(), ~Instrument(), DLS::Region::~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().
RegionList* DLS::Instrument::pRegions [protected] |
Definition at line 469 of file DLS.h.
Referenced by gig::Instrument::AddRegion(), AddRegion(), gig::Instrument::DeleteRegion(), DeleteRegion(), gig::Instrument::GetFirstRegion(), GetFirstRegion(), gig::Instrument::GetNextRegion(), GetNextRegion(), gig::Instrument::GetRegion(), gig::Instrument::Instrument(), Instrument(), LoadRegions(), DLS::Region::SetKeyRange(), gig::Instrument::UpdateChunks(), UpdateChunks(), gig::Instrument::UpdateRegionKeyTable(), and ~Instrument().
RIFF::List* DLS::Resource::pResourceList [protected, inherited] |
Definition at line 349 of file DLS.h.
Referenced by DLS::Resource::Resource(), and DLS::Resource::UpdateChunks().
uint32_t DLS::Instrument::Regions |
Reflects the number of Region defintions this Instrument has.
Definition at line 454 of file DLS.h.
Referenced by gig::Instrument::AddRegion(), AddRegion(), DeleteRegion(), gig::Instrument::Instrument(), Instrument(), and UpdateChunks().
RegionList::iterator DLS::Instrument::RegionsIterator [protected] |
Definition at line 470 of file DLS.h.
Referenced by gig::Instrument::GetFirstRegion(), GetFirstRegion(), gig::Instrument::GetNextRegion(), and GetNextRegion().