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-2019 by Christian Schoenebeck * |
* Copyright (C) 2003-2020 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 * |
50 |
# define LIST_TYPE_3GNL 0x33676E6C |
# define LIST_TYPE_3GNL 0x33676E6C |
51 |
# define LIST_TYPE_3LS 0x334c5320 // own gig format extension |
# define LIST_TYPE_3LS 0x334c5320 // own gig format extension |
52 |
# define LIST_TYPE_RTIS 0x52544953 // own gig format extension |
# define LIST_TYPE_RTIS 0x52544953 // own gig format extension |
53 |
|
# define LIST_TYPE_3DNM 0x33646e6d |
54 |
# define CHUNK_ID_3GIX 0x33676978 |
# define CHUNK_ID_3GIX 0x33676978 |
55 |
# define CHUNK_ID_3EWA 0x33657761 |
# define CHUNK_ID_3EWA 0x33657761 |
56 |
# define CHUNK_ID_3LNK 0x336C6E6B |
# define CHUNK_ID_3LNK 0x336C6E6B |
63 |
# define CHUNK_ID_LSNM 0x4c534e4d // own gig format extension |
# define CHUNK_ID_LSNM 0x4c534e4d // own gig format extension |
64 |
# define CHUNK_ID_SCSL 0x5343534c // own gig format extension |
# define CHUNK_ID_SCSL 0x5343534c // own gig format extension |
65 |
# define CHUNK_ID_LSDE 0x4c534445 // own gig format extension |
# define CHUNK_ID_LSDE 0x4c534445 // own gig format extension |
66 |
|
# define CHUNK_ID_3DDP 0x33646470 |
67 |
#else // little endian |
#else // little endian |
68 |
# define LIST_TYPE_3PRG 0x67727033 |
# define LIST_TYPE_3PRG 0x67727033 |
69 |
# define LIST_TYPE_3EWL 0x6C776533 |
# define LIST_TYPE_3EWL 0x6C776533 |
71 |
# define LIST_TYPE_3GNL 0x6C6E6733 |
# define LIST_TYPE_3GNL 0x6C6E6733 |
72 |
# define LIST_TYPE_3LS 0x20534c33 // own gig format extension |
# define LIST_TYPE_3LS 0x20534c33 // own gig format extension |
73 |
# define LIST_TYPE_RTIS 0x53495452 // own gig format extension |
# define LIST_TYPE_RTIS 0x53495452 // own gig format extension |
74 |
|
# define LIST_TYPE_3DNM 0x6d6e6433 |
75 |
# define CHUNK_ID_3GIX 0x78696733 |
# define CHUNK_ID_3GIX 0x78696733 |
76 |
# define CHUNK_ID_3EWA 0x61776533 |
# define CHUNK_ID_3EWA 0x61776533 |
77 |
# define CHUNK_ID_3LNK 0x6B6E6C33 |
# define CHUNK_ID_3LNK 0x6B6E6C33 |
84 |
# define CHUNK_ID_LSNM 0x4d4e534c // own gig format extension |
# define CHUNK_ID_LSNM 0x4d4e534c // own gig format extension |
85 |
# define CHUNK_ID_SCSL 0x4c534353 // own gig format extension |
# define CHUNK_ID_SCSL 0x4c534353 // own gig format extension |
86 |
# define CHUNK_ID_LSDE 0x4544534c // own gig format extension |
# define CHUNK_ID_LSDE 0x4544534c // own gig format extension |
87 |
|
# define CHUNK_ID_3DDP 0x70646433 |
88 |
#endif // WORDS_BIGENDIAN |
#endif // WORDS_BIGENDIAN |
89 |
|
|
90 |
#ifndef GIG_DECLARE_ENUM |
#ifndef GIG_DECLARE_ENUM |
953 |
DimensionRegion* GetDimensionRegionByBit(const std::map<dimension_t,int>& DimCase); |
DimensionRegion* GetDimensionRegionByBit(const std::map<dimension_t,int>& DimCase); |
954 |
~Region(); |
~Region(); |
955 |
friend class Instrument; |
friend class Instrument; |
956 |
|
private: |
957 |
|
bool UsesAnyGigFormatExtension() const; |
958 |
}; |
}; |
959 |
|
|
960 |
/** @brief Abstract base class for all MIDI rules. |
/** @brief Abstract base class for all MIDI rules. |
1190 |
Encoding_t Encoding; ///< Format the script's source code text is encoded with. |
Encoding_t Encoding; ///< Format the script's source code text is encoded with. |
1191 |
Language_t Language; ///< Programming language and dialect the script is written in. |
Language_t Language; ///< Programming language and dialect the script is written in. |
1192 |
bool Bypass; ///< Global bypass: if enabled, this script shall not be executed by the sampler for any instrument. |
bool Bypass; ///< Global bypass: if enabled, this script shall not be executed by the sampler for any instrument. |
1193 |
|
uint8_t Uuid[16]; ///< Persistent Universally Unique Identifier of this script, which remains identical after any changes to this script. |
1194 |
|
|
1195 |
String GetScriptAsText(); |
String GetScriptAsText(); |
1196 |
void SetScriptAsText(const String& text); |
void SetScriptAsText(const String& text); |
1203 |
void UpdateChunks(progress_t* pProgress) OVERRIDE; |
void UpdateChunks(progress_t* pProgress) OVERRIDE; |
1204 |
void DeleteChunks() OVERRIDE; |
void DeleteChunks() OVERRIDE; |
1205 |
void RemoveAllScriptReferences(); |
void RemoveAllScriptReferences(); |
1206 |
|
void GenerateUuid(); |
1207 |
friend class ScriptGroup; |
friend class ScriptGroup; |
1208 |
friend class Instrument; |
friend class Instrument; |
1209 |
private: |
private: |
1330 |
MidiRule** pMidiRules; |
MidiRule** pMidiRules; |
1331 |
std::vector<_ScriptPooolEntry> scriptPoolFileOffsets; |
std::vector<_ScriptPooolEntry> scriptPoolFileOffsets; |
1332 |
std::vector<_ScriptPooolRef>* pScriptRefs; |
std::vector<_ScriptPooolRef>* pScriptRefs; |
1333 |
|
|
1334 |
|
bool UsesAnyGigFormatExtension() const; |
1335 |
}; |
}; |
1336 |
|
|
1337 |
/** @brief Group of Gigasampler samples |
/** @brief Group of Gigasampler samples |
1478 |
std::list<Group*>::iterator GroupsIterator; |
std::list<Group*>::iterator GroupsIterator; |
1479 |
bool bAutoLoad; |
bool bAutoLoad; |
1480 |
std::list<ScriptGroup*>* pScriptGroups; |
std::list<ScriptGroup*>* pScriptGroups; |
1481 |
|
|
1482 |
|
bool UsesAnyGigFormatExtension() const; |
1483 |
}; |
}; |
1484 |
|
|
1485 |
/** |
/** |