2 |
* * |
* * |
3 |
* libgig - C++ cross-platform Gigasampler format file access library * |
* libgig - C++ cross-platform Gigasampler format file access library * |
4 |
* * |
* * |
5 |
* Copyright (C) 2003-2010 by Christian Schoenebeck * |
* Copyright (C) 2003-2013 by Christian Schoenebeck * |
6 |
* <cuse@users.sourceforge.net> * |
* <cuse@users.sourceforge.net> * |
7 |
* * |
* * |
8 |
* This library is free software; you can redistribute it and/or modify * |
* This library is free software; you can redistribute it and/or modify * |
429 |
uint8_t DimensionUpperLimits[8]; ///< gig3: defines the upper limit of the dimension values for this dimension region |
uint8_t DimensionUpperLimits[8]; ///< gig3: defines the upper limit of the dimension values for this dimension region |
430 |
|
|
431 |
// derived attributes from DLS::Sampler |
// derived attributes from DLS::Sampler |
432 |
DLS::Sampler::UnityNote; |
using DLS::Sampler::UnityNote; |
433 |
DLS::Sampler::FineTune; |
using DLS::Sampler::FineTune; |
434 |
DLS::Sampler::Gain; |
using DLS::Sampler::Gain; |
435 |
DLS::Sampler::SampleLoops; |
using DLS::Sampler::SampleLoops; |
436 |
DLS::Sampler::pSampleLoops; |
using DLS::Sampler::pSampleLoops; |
437 |
|
|
438 |
// own methods |
// own methods |
439 |
double GetVelocityAttenuation(uint8_t MIDIKeyVelocity); |
double GetVelocityAttenuation(uint8_t MIDIKeyVelocity); |
450 |
void SetVCFVelocityScale(uint8_t scaling); |
void SetVCFVelocityScale(uint8_t scaling); |
451 |
Region* GetParent() const; |
Region* GetParent() const; |
452 |
// derived methods |
// derived methods |
453 |
DLS::Sampler::AddSampleLoop; |
using DLS::Sampler::AddSampleLoop; |
454 |
DLS::Sampler::DeleteSampleLoop; |
using DLS::Sampler::DeleteSampleLoop; |
455 |
// overridden methods |
// overridden methods |
456 |
virtual void SetGain(int32_t gain); |
virtual void SetGain(int32_t gain); |
457 |
virtual void UpdateChunks(); |
virtual void UpdateChunks(); |
458 |
|
virtual void CopyAssign(const DimensionRegion* orig); |
459 |
protected: |
protected: |
460 |
uint8_t* VelocityTable; ///< For velocity dimensions with custom defined zone ranges only: used for fast converting from velocity MIDI value to dimension bit number. |
uint8_t* VelocityTable; ///< For velocity dimensions with custom defined zone ranges only: used for fast converting from velocity MIDI value to dimension bit number. |
461 |
DimensionRegion(Region* pParent, RIFF::List* _3ewl); |
DimensionRegion(Region* pParent, RIFF::List* _3ewl); |
629 |
// overridden methods |
// overridden methods |
630 |
virtual void SetKeyRange(uint16_t Low, uint16_t High); |
virtual void SetKeyRange(uint16_t Low, uint16_t High); |
631 |
virtual void UpdateChunks(); |
virtual void UpdateChunks(); |
632 |
|
virtual void CopyAssign(const Region* orig); |
633 |
protected: |
protected: |
634 |
Region(Instrument* pInstrument, RIFF::List* rgnList); |
Region(Instrument* pInstrument, RIFF::List* rgnList); |
635 |
void LoadDimensionRegions(RIFF::List* rgn); |
void LoadDimensionRegions(RIFF::List* rgn); |
669 |
class Instrument : protected DLS::Instrument { |
class Instrument : protected DLS::Instrument { |
670 |
public: |
public: |
671 |
// derived attributes from DLS::Resource |
// derived attributes from DLS::Resource |
672 |
DLS::Resource::pInfo; |
using DLS::Resource::pInfo; |
673 |
DLS::Resource::pDLSID; |
using DLS::Resource::pDLSID; |
674 |
// derived attributes from DLS::Instrument |
// derived attributes from DLS::Instrument |
675 |
DLS::Instrument::IsDrum; |
using DLS::Instrument::IsDrum; |
676 |
DLS::Instrument::MIDIBank; |
using DLS::Instrument::MIDIBank; |
677 |
DLS::Instrument::MIDIBankCoarse; |
using DLS::Instrument::MIDIBankCoarse; |
678 |
DLS::Instrument::MIDIBankFine; |
using DLS::Instrument::MIDIBankFine; |
679 |
DLS::Instrument::MIDIProgram; |
using DLS::Instrument::MIDIProgram; |
680 |
DLS::Instrument::Regions; |
using DLS::Instrument::Regions; |
681 |
// own attributes |
// own attributes |
682 |
int32_t Attenuation; ///< in dB |
int32_t Attenuation; ///< in dB |
683 |
uint16_t EffectSend; |
uint16_t EffectSend; |
688 |
|
|
689 |
|
|
690 |
// derived methods from DLS::Resource |
// derived methods from DLS::Resource |
691 |
DLS::Resource::GetParent; |
using DLS::Resource::GetParent; |
692 |
// overridden methods |
// overridden methods |
693 |
Region* GetFirstRegion(); |
Region* GetFirstRegion(); |
694 |
Region* GetNextRegion(); |
Region* GetNextRegion(); |
695 |
Region* AddRegion(); |
Region* AddRegion(); |
696 |
void DeleteRegion(Region* pRegion); |
void DeleteRegion(Region* pRegion); |
697 |
virtual void UpdateChunks(); |
virtual void UpdateChunks(); |
698 |
|
virtual void CopyAssign(const Instrument* orig); |
699 |
// own methods |
// own methods |
700 |
Region* GetRegion(unsigned int Key); |
Region* GetRegion(unsigned int Key); |
701 |
MidiRule* GetMidiRule(int i); |
MidiRule* GetMidiRule(int i); |
751 |
static const DLS::version_t VERSION_3; |
static const DLS::version_t VERSION_3; |
752 |
|
|
753 |
// derived attributes from DLS::Resource |
// derived attributes from DLS::Resource |
754 |
DLS::Resource::pInfo; |
using DLS::Resource::pInfo; |
755 |
DLS::Resource::pDLSID; |
using DLS::Resource::pDLSID; |
756 |
// derived attributes from DLS::File |
// derived attributes from DLS::File |
757 |
DLS::File::pVersion; |
using DLS::File::pVersion; |
758 |
DLS::File::Instruments; |
using DLS::File::Instruments; |
759 |
|
|
760 |
// derived methods from DLS::Resource |
// derived methods from DLS::Resource |
761 |
DLS::Resource::GetParent; |
using DLS::Resource::GetParent; |
762 |
// derived methods from DLS::File |
// derived methods from DLS::File |
763 |
DLS::File::Save; |
using DLS::File::Save; |
764 |
DLS::File::GetFileName; |
using DLS::File::GetFileName; |
765 |
// overridden methods |
// overridden methods |
766 |
File(); |
File(); |
767 |
File(RIFF::File* pRIFF); |
File(RIFF::File* pRIFF); |
773 |
Instrument* GetNextInstrument(); ///< Returns a pointer to the next <i>Instrument</i> object of the file, <i>NULL</i> otherwise. |
Instrument* GetNextInstrument(); ///< Returns a pointer to the next <i>Instrument</i> object of the file, <i>NULL</i> otherwise. |
774 |
Instrument* GetInstrument(uint index, progress_t* pProgress = NULL); |
Instrument* GetInstrument(uint index, progress_t* pProgress = NULL); |
775 |
Instrument* AddInstrument(); |
Instrument* AddInstrument(); |
776 |
|
Instrument* AddDuplicateInstrument(const Instrument* orig); |
777 |
void DeleteInstrument(Instrument* pInstrument); |
void DeleteInstrument(Instrument* pInstrument); |
778 |
Group* GetFirstGroup(); ///< Returns a pointer to the first <i>Group</i> object of the file, <i>NULL</i> otherwise. |
Group* GetFirstGroup(); ///< Returns a pointer to the first <i>Group</i> object of the file, <i>NULL</i> otherwise. |
779 |
Group* GetNextGroup(); ///< Returns a pointer to the next <i>Group</i> object of the file, <i>NULL</i> otherwise. |
Group* GetNextGroup(); ///< Returns a pointer to the next <i>Group</i> object of the file, <i>NULL</i> otherwise. |