chore: initial commit (extracted from Launchers monorepo)

Plugin: ns7zip v2.0.0
Architectures: x86-ansi, x86-unicode, amd64-unicode
License: LGPL-2.1-or-later
This commit is contained in:
Simone
2026-04-29 14:07:51 +02:00
commit d074cc7c07
3848 changed files with 1076682 additions and 0 deletions
@@ -0,0 +1,60 @@
// QuantumDecoder.h
#ifndef ZIP7_INC_COMPRESS_QUANTUM_DECODER_H
#define ZIP7_INC_COMPRESS_QUANTUM_DECODER_H
#include "../../Common/MyTypes.h"
namespace NCompress {
namespace NQuantum {
const unsigned kNumLitSelectorBits = 2;
const unsigned kNumLitSelectors = 1 << kNumLitSelectorBits;
const unsigned kNumLitSymbols = 1 << (8 - kNumLitSelectorBits);
const unsigned kNumMatchSelectors = 3;
const unsigned kNumSelectors = kNumLitSelectors + kNumMatchSelectors;
const unsigned kNumSymbolsMax = kNumLitSymbols; // 64
class CRangeDecoder;
class CModelDecoder
{
unsigned NumItems;
unsigned ReorderCount;
Byte Vals[kNumSymbolsMax];
UInt16 Freqs[kNumSymbolsMax + 1];
public:
Byte _pad[64 - 10]; // for structure size alignment
void Init(unsigned numItems, unsigned startVal);
unsigned Decode(CRangeDecoder *rc);
};
class CDecoder
{
UInt32 _winSize;
UInt32 _winPos;
UInt32 _winSize_allocated;
bool _overWin;
Byte *_win;
unsigned _numDictBits;
CModelDecoder m_Selector;
CModelDecoder m_Literals[kNumLitSelectors];
CModelDecoder m_PosSlot[kNumMatchSelectors];
CModelDecoder m_LenSlot;
void Init();
HRESULT CodeSpec(const Byte *inData, size_t inSize, UInt32 outSize);
public:
HRESULT Code(const Byte *inData, size_t inSize, UInt32 outSize, bool keepHistory);
HRESULT SetParams(unsigned numDictBits);
CDecoder(): _win(NULL), _numDictBits(0) {}
const Byte * GetDataPtr() const { return _win + _winPos; }
};
}}
#endif