76 if (stream->currentScheme != (s)) { \
77 streamMarkFatal(stream, DmtxErrorUnexpectedScheme); \
85 if (stream->status != DmtxStatusEncoding) { \
93 if (sizeIdx == DmtxUndefined) { \
94 streamMarkInvalid(stream, DmtxErrorUnknown); \
227 switch (targetScheme) {
279 remaining = capacity - outputLength;
libdmtx - Data Matrix Encoding/Decoding Library Copyright 2008, 2009 Mike Laughton.
int dmtxGetSymbolAttribute(int attribute, int sizeIdx)
根据规格索引返回二维码规格各个参数
@ DmtxSymAttribSymbolDataWords
enum DmtxScheme_enum DmtxScheme
static int encodeSingleScheme(DmtxByteList *input, DmtxByteList *output, int sizeIdxRequest, DmtxScheme scheme, int fnc1)
#define CHKSCHEME(s)
In this file:
static void encodeNextChunk(DmtxEncodeStream *stream, int scheme, int option, int sizeIdxRequest)
This function distributes work to the equivalent scheme-specific implementation.
static void encodeChangeScheme(DmtxEncodeStream *stream, DmtxScheme targetScheme, int unlatchType)
static int getRemainingSymbolCapacity(int outputLength, int sizeIdx)
libdmtx - Data Matrix Encoding/Decoding Library Copyright 2008, 2009 Mike Laughton.
static DmtxByte streamInputAdvanceNext(DmtxEncodeStream *stream)
static void completeIfDoneAscii(DmtxEncodeStream *stream, int sizeIdxRequest)
static void encodeNextChunkBase256(DmtxEncodeStream *stream)
#define DmtxValueBase256Latch
static void updateBase256ChainHeader(DmtxEncodeStream *stream, int perfectSizeIdx)
static void completeIfDoneCTX(DmtxEncodeStream *stream, int sizeIdxRequest)
static void completeIfDoneEdifact(DmtxEncodeStream *stream, int sizeIdxRequest)
static DmtxEncodeStream streamInit(DmtxByteList *input, DmtxByteList *output)
static void appendUnlatchCTX(DmtxEncodeStream *stream)
#define DmtxValueC40Latch
static void encodeNextChunkAscii(DmtxEncodeStream *stream, int option)
static DmtxBoolean partialX12ChunkRemains(DmtxEncodeStream *stream)
static void encodeNextChunkCTX(DmtxEncodeStream *stream, int sizeIdxRequest)
static void completeIfDoneBase256(DmtxEncodeStream *stream, int sizeIdxRequest)
#define DmtxValueTextLatch
static void encodeNextChunkEdifact(DmtxEncodeStream *stream)
static void appendValueAscii(DmtxEncodeStream *stream, DmtxByte value)
#define DmtxUnlatchExplicit
#define DmtxValueX12Latch
static void streamMarkFatal(DmtxEncodeStream *stream, int reasonIdx)
#define DmtxValueEdifactUnlatch
static void appendValueEdifact(DmtxEncodeStream *stream, DmtxByte value)
static DmtxBoolean streamInputHasNext(DmtxEncodeStream *stream)
#define DmtxValueEdifactLatch
DmtxByteList Use signed int for length fields instead of size_t to play nicely with RS arithmetic.
int outputChainValueCount