internal DmtxMessage(DmtxSymbolSize sizeIdx, DmtxFormat symbolFormat) { if (symbolFormat != DmtxFormat.Matrix && symbolFormat != DmtxFormat.Mosaic) { throw new ArgumentException("Only DmtxFormats Matrix and Mosaic are currently supported"); } int mappingRows = DmtxCommon.GetSymbolAttribute(DmtxSymAttribute.DmtxSymAttribMappingMatrixRows, sizeIdx); int mappingCols = DmtxCommon.GetSymbolAttribute(DmtxSymAttribute.DmtxSymAttribMappingMatrixCols, sizeIdx); _array = new byte[mappingCols * mappingRows]; int codeSize = DmtxCommon.GetSymbolAttribute(DmtxSymAttribute.DmtxSymAttribSymbolDataWords, sizeIdx) + DmtxCommon.GetSymbolAttribute(DmtxSymAttribute.DmtxSymAttribSymbolErrorWords, sizeIdx); _code = new byte[codeSize]; _output = new byte[10 * codeSize]; }
int _outputIdx; /* Internal index used to store output progress */ #endregion #region Constructors internal DmtxMessage(DmtxSymbolSize sizeIdx, DmtxFormat symbolFormat) { if (symbolFormat != DmtxFormat.Matrix && symbolFormat != DmtxFormat.Mosaic) { throw new ArgumentException("Only DmtxFormats Matrix and Mosaic are currently supported"); } int mappingRows = DmtxCommon.GetSymbolAttribute(DmtxSymAttribute.DmtxSymAttribMappingMatrixRows, sizeIdx); int mappingCols = DmtxCommon.GetSymbolAttribute(DmtxSymAttribute.DmtxSymAttribMappingMatrixCols, sizeIdx); this.Array = new byte[mappingCols * mappingRows]; int codeSize = DmtxCommon.GetSymbolAttribute(DmtxSymAttribute.DmtxSymAttribSymbolDataWords, sizeIdx) + DmtxCommon.GetSymbolAttribute(DmtxSymAttribute.DmtxSymAttribSymbolErrorWords, sizeIdx); this.Code = new byte[codeSize]; this.Output = new byte[10 * codeSize]; }