/[svn]/libgig/trunk/src/gig.h
ViewVC logotype

Diff of /libgig/trunk/src/gig.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3723 by schoenebeck, Wed Jan 22 15:48:32 2020 UTC revision 3913 by schoenebeck, Fri Jun 4 11:28:11 2021 UTC
# Line 2  Line 2 
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-2020 by Christian Schoenebeck                      *   *   Copyright (C) 2003-2021 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  *
# Line 26  Line 26 
26    
27  #include "DLS.h"  #include "DLS.h"
28  #include <vector>  #include <vector>
29    #include <array> // since C++11
30    
31  #ifndef __has_feature  #ifndef __has_feature
32  # define __has_feature(x) 0  # define __has_feature(x) 0
# Line 62  Line 63 
63  # define CHUNK_ID_SCRI  0x53637269 // own gig format extension  # define CHUNK_ID_SCRI  0x53637269 // own gig format extension
64  # define CHUNK_ID_LSNM  0x4c534e4d // own gig format extension  # define CHUNK_ID_LSNM  0x4c534e4d // own gig format extension
65  # define CHUNK_ID_SCSL  0x5343534c // own gig format extension  # define CHUNK_ID_SCSL  0x5343534c // own gig format extension
66    # define CHUNK_ID_SCPV  0x53435056 // own gig format extension
67  # define CHUNK_ID_LSDE  0x4c534445 // own gig format extension  # define CHUNK_ID_LSDE  0x4c534445 // own gig format extension
68  # define CHUNK_ID_3DDP  0x33646470  # define CHUNK_ID_3DDP  0x33646470
69  #else  // little endian  #else  // little endian
# Line 83  Line 85 
85  # define CHUNK_ID_SCRI  0x69726353 // own gig format extension  # define CHUNK_ID_SCRI  0x69726353 // own gig format extension
86  # define CHUNK_ID_LSNM  0x4d4e534c // own gig format extension  # define CHUNK_ID_LSNM  0x4d4e534c // own gig format extension
87  # define CHUNK_ID_SCSL  0x4c534353 // own gig format extension  # define CHUNK_ID_SCSL  0x4c534353 // own gig format extension
88    # define CHUNK_ID_SCPV  0x56504353 // own gig format extension
89  # define CHUNK_ID_LSDE  0x4544534c // own gig format extension  # define CHUNK_ID_LSDE  0x4544534c // own gig format extension
90  # define CHUNK_ID_3DDP  0x70646433  # define CHUNK_ID_3DDP  0x70646433
91  #endif // WORDS_BIGENDIAN  #endif // WORDS_BIGENDIAN
# Line 854  namespace gig { Line 857  namespace gig {
857              bool VerifyWaveData(uint32_t* pActually = NULL);              bool VerifyWaveData(uint32_t* pActually = NULL);
858          protected:          protected:
859              static size_t        Instances;               ///< Number of instances of class Sample.              static size_t        Instances;               ///< Number of instances of class Sample.
860              static buffer_t      InternalDecompressionBuffer; ///< Buffer used for decompression as well as for truncation of 24 Bit -> 16 Bit samples.              static buffer_t      InternalDecompressionBuffer; ///< Buffer used for decompression of samples, and only if no external decompression buffer was supplied.
861              Group*               pGroup;                  ///< pointer to the Group this sample belongs to (always not-NULL)              Group*               pGroup;                  ///< pointer to the Group this sample belongs to (always not-NULL)
862              file_offset_t        FrameOffset;             ///< Current offset (sample points) in current sample frame (for decompression only).              file_offset_t        FrameOffset;             ///< Current offset (sample points) in current sample frame (for decompression only).
863              file_offset_t*       FrameTable;              ///< For positioning within compressed samples only: stores the offset values for each frame.              file_offset_t*       FrameTable;              ///< For positioning within compressed samples only: stores the offset values for each frame.
# Line 1307  namespace gig { Line 1310  namespace gig {
1310              uint      ScriptSlotCount() const;              uint      ScriptSlotCount() const;
1311              bool      IsScriptSlotBypassed(uint index);              bool      IsScriptSlotBypassed(uint index);
1312              void      SetScriptSlotBypassed(uint index, bool bBypass);              void      SetScriptSlotBypassed(uint index, bool bBypass);
1313                bool      IsScriptPatchVariableSet(int slot, String variable);
1314                std::map<String,String> GetScriptPatchVariables(int slot);
1315                String    GetScriptPatchVariable(int slot, String variable);
1316                void      SetScriptPatchVariable(int slot, String variable, String value);
1317                void      UnsetScriptPatchVariable(int slot = -1, String variable = "");
1318          protected:          protected:
1319              Region*   RegionKeyTable[128]; ///< fast lookup for the corresponding Region of a MIDI key              Region*   RegionKeyTable[128]; ///< fast lookup for the corresponding Region of a MIDI key
1320    
# Line 1327  namespace gig { Line 1335  namespace gig {
1335                  Script*  script;                  Script*  script;
1336                  bool     bypass;                  bool     bypass;
1337              };              };
1338                typedef std::array<uint8_t,16> _UUID;
1339                typedef std::map<String,String> _PatchVars;
1340                typedef std::map<int,_PatchVars> _VarsBySlot;
1341                typedef std::map<_UUID,_VarsBySlot> _VarsByScript;
1342              MidiRule** pMidiRules;              MidiRule** pMidiRules;
1343              std::vector<_ScriptPooolEntry> scriptPoolFileOffsets;              std::vector<_ScriptPooolEntry> scriptPoolFileOffsets;
1344              std::vector<_ScriptPooolRef>* pScriptRefs;              std::vector<_ScriptPooolRef>* pScriptRefs;
1345                _VarsByScript scriptVars;
1346    
1347                _VarsByScript stripScriptVars();
1348                bool ReferencesScriptWithUuid(const _UUID& uuid);
1349              bool UsesAnyGigFormatExtension() const;              bool UsesAnyGigFormatExtension() const;
1350      };      };
1351    

Legend:
Removed from v.3723  
changed lines
  Added in v.3913

  ViewVC Help
Powered by ViewVC