Java 类com.google.zxing.maxicode.MaxiCodeReader 实例源码

项目:weex-3d-map    文件:MultiFormatReader.java   
/**
 * This method adds state to the MultiFormatReader. By setting the hints once, subsequent calls
 * to decodeWithState(image) can reuse the same set of readers without reallocating memory. This
 * is important for performance in continuous scan clients.
 *
 * @param hints The set of hints to use for subsequent calls to decode(image)
 */
public void setHints(Map<DecodeHintType,?> hints) {
  this.hints = hints;

  boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER);
  @SuppressWarnings("unchecked")
  Collection<BarcodeFormat> formats =
      hints == null ? null : (Collection<BarcodeFormat>) hints.get(DecodeHintType.POSSIBLE_FORMATS);
  Collection<Reader> readers = new ArrayList<Reader>();
  if (formats != null) {
    boolean addOneDReader =
        formats.contains(BarcodeFormat.UPC_A) ||
        formats.contains(BarcodeFormat.UPC_E) ||
        formats.contains(BarcodeFormat.EAN_13) ||
        formats.contains(BarcodeFormat.EAN_8) ||
        formats.contains(BarcodeFormat.CODABAR) ||
        formats.contains(BarcodeFormat.CODE_39) ||
        formats.contains(BarcodeFormat.CODE_93) ||
        formats.contains(BarcodeFormat.CODE_128) ||
        formats.contains(BarcodeFormat.ITF) ||
        formats.contains(BarcodeFormat.RSS_14) ||
        formats.contains(BarcodeFormat.RSS_EXPANDED);
    // Put 1D readers upfront in "normal" mode
    if (addOneDReader && !tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
    if (formats.contains(BarcodeFormat.QR_CODE)) {
      readers.add(new QRCodeReader());
    }
    if (formats.contains(BarcodeFormat.DATA_MATRIX)) {
      readers.add(new DataMatrixReader());
    }
    if (formats.contains(BarcodeFormat.AZTEC)) {
      readers.add(new AztecReader());
    }
    if (formats.contains(BarcodeFormat.PDF_417)) {
       readers.add(new PDF417Reader());
    }
    if (formats.contains(BarcodeFormat.MAXICODE)) {
       readers.add(new MaxiCodeReader());
    }
    // At end in "try harder" mode
    if (addOneDReader && tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  if (readers.isEmpty()) {
    if (!tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }

    readers.add(new QRCodeReader());
    readers.add(new DataMatrixReader());
    readers.add(new AztecReader());
    readers.add(new PDF417Reader());
    readers.add(new MaxiCodeReader());

    if (tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  this.readers = readers.toArray(new Reader[readers.size()]);
}
项目:PortraitZXing    文件:MultiFormatReader.java   
/**
 * This method adds state to the MultiFormatReader. By setting the hints once, subsequent calls
 * to decodeWithState(image) can reuse the same set of readers without reallocating memory. This
 * is important for performance in continuous scan clients.
 *
 * @param hints The set of hints to use for subsequent calls to decode(image)
 */
public void setHints(Map<DecodeHintType,?> hints) {
  this.hints = hints;

  boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER);
  @SuppressWarnings("unchecked")
  Collection<BarcodeFormat> formats =
      hints == null ? null : (Collection<BarcodeFormat>) hints.get(DecodeHintType.POSSIBLE_FORMATS);
  Collection<Reader> readers = new ArrayList<>();
  if (formats != null) {
    boolean addOneDReader =
        formats.contains(BarcodeFormat.UPC_A) ||
        formats.contains(BarcodeFormat.UPC_E) ||
        formats.contains(BarcodeFormat.EAN_13) ||
        formats.contains(BarcodeFormat.EAN_8) ||
        formats.contains(BarcodeFormat.CODABAR) ||
        formats.contains(BarcodeFormat.CODE_39) ||
        formats.contains(BarcodeFormat.CODE_93) ||
        formats.contains(BarcodeFormat.CODE_128) ||
        formats.contains(BarcodeFormat.ITF) ||
        formats.contains(BarcodeFormat.RSS_14) ||
        formats.contains(BarcodeFormat.RSS_EXPANDED);
    // Put 1D readers upfront in "normal" mode
    if (addOneDReader && !tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
    if (formats.contains(BarcodeFormat.QR_CODE)) {
      readers.add(new QRCodeReader());
    }
    if (formats.contains(BarcodeFormat.DATA_MATRIX)) {
      readers.add(new DataMatrixReader());
    }
    if (formats.contains(BarcodeFormat.AZTEC)) {
      readers.add(new AztecReader());
    }
    if (formats.contains(BarcodeFormat.PDF_417)) {
       readers.add(new PDF417Reader());
    }
    if (formats.contains(BarcodeFormat.MAXICODE)) {
       readers.add(new MaxiCodeReader());
    }
    // At end in "try harder" mode
    if (addOneDReader && tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  if (readers.isEmpty()) {
    if (!tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }

    readers.add(new QRCodeReader());
    readers.add(new DataMatrixReader());
    readers.add(new AztecReader());
    readers.add(new PDF417Reader());
    readers.add(new MaxiCodeReader());

    if (tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  this.readers = readers.toArray(new Reader[readers.size()]);
}
项目:PortraitZXing    文件:MultiFormatReader.java   
/**
 * This method adds state to the MultiFormatReader. By setting the hints once, subsequent calls
 * to decodeWithState(image) can reuse the same set of readers without reallocating memory. This
 * is important for performance in continuous scan clients.
 *
 * @param hints The set of hints to use for subsequent calls to decode(image)
 */
public void setHints(Map<DecodeHintType,?> hints) {
  this.hints = hints;

  boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER);
  @SuppressWarnings("unchecked")
  Collection<BarcodeFormat> formats =
      hints == null ? null : (Collection<BarcodeFormat>) hints.get(DecodeHintType.POSSIBLE_FORMATS);
  Collection<Reader> readers = new ArrayList<>();
  if (formats != null) {
    boolean addOneDReader =
        formats.contains(BarcodeFormat.UPC_A) ||
        formats.contains(BarcodeFormat.UPC_E) ||
        formats.contains(BarcodeFormat.EAN_13) ||
        formats.contains(BarcodeFormat.EAN_8) ||
        formats.contains(BarcodeFormat.CODABAR) ||
        formats.contains(BarcodeFormat.CODE_39) ||
        formats.contains(BarcodeFormat.CODE_93) ||
        formats.contains(BarcodeFormat.CODE_128) ||
        formats.contains(BarcodeFormat.ITF) ||
        formats.contains(BarcodeFormat.RSS_14) ||
        formats.contains(BarcodeFormat.RSS_EXPANDED);
    // Put 1D readers upfront in "normal" mode
    if (addOneDReader && !tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
    if (formats.contains(BarcodeFormat.QR_CODE)) {
      readers.add(new QRCodeReader());
    }
    if (formats.contains(BarcodeFormat.DATA_MATRIX)) {
      readers.add(new DataMatrixReader());
    }
    if (formats.contains(BarcodeFormat.AZTEC)) {
      readers.add(new AztecReader());
    }
    if (formats.contains(BarcodeFormat.PDF_417)) {
       readers.add(new PDF417Reader());
    }
    if (formats.contains(BarcodeFormat.MAXICODE)) {
       readers.add(new MaxiCodeReader());
    }
    // At end in "try harder" mode
    if (addOneDReader && tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  if (readers.isEmpty()) {
    if (!tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }

    readers.add(new QRCodeReader());
    readers.add(new DataMatrixReader());
    readers.add(new AztecReader());
    readers.add(new PDF417Reader());
    readers.add(new MaxiCodeReader());

    if (tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  this.readers = readers.toArray(new Reader[readers.size()]);
}
项目:ZXing-Orient    文件:MultiFormatReader.java   
/**
 * This method adds state to the MultiFormatReader. By setting the hints once, subsequent calls
 * to decodeWithState(image) can reuse the same set of readers without reallocating memory. This
 * is important for performance in continuous scan clients.
 *
 * @param hints The set of hints to use for subsequent calls to decode(image)
 */
public void setHints(Map<DecodeHintType,?> hints) {
  this.hints = hints;

  boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER);
  @SuppressWarnings("unchecked")
  Collection<BarcodeFormat> formats =
      hints == null ? null : (Collection<BarcodeFormat>) hints.get(DecodeHintType.POSSIBLE_FORMATS);
  Collection<Reader> readers = new ArrayList<>();
  if (formats != null) {
    boolean addOneDReader =
        formats.contains(BarcodeFormat.UPC_A) ||
        formats.contains(BarcodeFormat.UPC_E) ||
        formats.contains(BarcodeFormat.EAN_13) ||
        formats.contains(BarcodeFormat.EAN_8) ||
        formats.contains(BarcodeFormat.CODABAR) ||
        formats.contains(BarcodeFormat.CODE_39) ||
        formats.contains(BarcodeFormat.CODE_93) ||
        formats.contains(BarcodeFormat.CODE_128) ||
        formats.contains(BarcodeFormat.ITF) ||
        formats.contains(BarcodeFormat.RSS_14) ||
        formats.contains(BarcodeFormat.RSS_EXPANDED);
    // Put 1D readers upfront in "normal" mode
    if (addOneDReader && !tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
    if (formats.contains(BarcodeFormat.QR_CODE)) {
      readers.add(new QRCodeReader());
    }
    if (formats.contains(BarcodeFormat.DATA_MATRIX)) {
      readers.add(new DataMatrixReader());
    }
    if (formats.contains(BarcodeFormat.AZTEC)) {
      readers.add(new AztecReader());
    }
    if (formats.contains(BarcodeFormat.PDF_417)) {
       readers.add(new PDF417Reader());
    }
    if (formats.contains(BarcodeFormat.MAXICODE)) {
       readers.add(new MaxiCodeReader());
    }
    // At end in "try harder" mode
    if (addOneDReader && tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  if (readers.isEmpty()) {
    if (!tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }

    readers.add(new QRCodeReader());
    readers.add(new DataMatrixReader());
    readers.add(new AztecReader());
    readers.add(new PDF417Reader());
    readers.add(new MaxiCodeReader());

    if (tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  this.readers = readers.toArray(new Reader[readers.size()]);
}
项目:event-app    文件:MultiFormatReader.java   
/**
 * This method adds state to the MultiFormatReader. By setting the hints once, subsequent calls
 * to decodeWithState(image) can reuse the same set of readers without reallocating memory. This
 * is important for performance in continuous scan clients.
 *
 * @param hints The set of hints to use for subsequent calls to decode(image)
 */
public void setHints(Map<DecodeHintType,?> hints) {
  this.hints = hints;

  boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER);
  @SuppressWarnings("unchecked")
  Collection<BarcodeFormat> formats =
      hints == null ? null : (Collection<BarcodeFormat>) hints.get(DecodeHintType.POSSIBLE_FORMATS);
  Collection<Reader> readers = new ArrayList<>();
  if (formats != null) {
    boolean addOneDReader =
        formats.contains(BarcodeFormat.UPC_A) ||
        formats.contains(BarcodeFormat.UPC_E) ||
        formats.contains(BarcodeFormat.EAN_13) ||
        formats.contains(BarcodeFormat.EAN_8) ||
        formats.contains(BarcodeFormat.CODABAR) ||
        formats.contains(BarcodeFormat.CODE_39) ||
        formats.contains(BarcodeFormat.CODE_93) ||
        formats.contains(BarcodeFormat.CODE_128) ||
        formats.contains(BarcodeFormat.ITF) ||
        formats.contains(BarcodeFormat.RSS_14) ||
        formats.contains(BarcodeFormat.RSS_EXPANDED);
    // Put 1D readers upfront in "normal" mode
    if (addOneDReader && !tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
    if (formats.contains(BarcodeFormat.QR_CODE)) {
      readers.add(new QRCodeReader());
    }
    if (formats.contains(BarcodeFormat.DATA_MATRIX)) {
      readers.add(new DataMatrixReader());
    }
    if (formats.contains(BarcodeFormat.AZTEC)) {
      readers.add(new AztecReader());
    }
    if (formats.contains(BarcodeFormat.PDF_417)) {
       readers.add(new PDF417Reader());
    }
    if (formats.contains(BarcodeFormat.MAXICODE)) {
       readers.add(new MaxiCodeReader());
    }
    // At end in "try harder" mode
    if (addOneDReader && tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  if (readers.isEmpty()) {
    if (!tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }

    readers.add(new QRCodeReader());
    readers.add(new DataMatrixReader());
    readers.add(new AztecReader());
    readers.add(new PDF417Reader());
    readers.add(new MaxiCodeReader());

    if (tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  this.readers = readers.toArray(new Reader[readers.size()]);
}
项目:weex-analyzer-android    文件:MultiFormatReader.java   
/**
 * This method adds state to the MultiFormatReader. By setting the hints once, subsequent calls
 * to decodeWithState(image) can reuse the same set of readers without reallocating memory. This
 * is important for performance in continuous scan clients.
 *
 * @param hints The set of hints to use for subsequent calls to decode(image)
 */
public void setHints(Map<DecodeHintType,?> hints) {
  this.hints = hints;

  boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER);
  @SuppressWarnings("unchecked")
  Collection<BarcodeFormat> formats =
      hints == null ? null : (Collection<BarcodeFormat>) hints.get(DecodeHintType.POSSIBLE_FORMATS);
  Collection<Reader> readers = new ArrayList<Reader>();
  if (formats != null) {
    boolean addOneDReader =
        formats.contains(BarcodeFormat.UPC_A) ||
        formats.contains(BarcodeFormat.UPC_E) ||
        formats.contains(BarcodeFormat.EAN_13) ||
        formats.contains(BarcodeFormat.EAN_8) ||
        formats.contains(BarcodeFormat.CODABAR) ||
        formats.contains(BarcodeFormat.CODE_39) ||
        formats.contains(BarcodeFormat.CODE_93) ||
        formats.contains(BarcodeFormat.CODE_128) ||
        formats.contains(BarcodeFormat.ITF) ||
        formats.contains(BarcodeFormat.RSS_14) ||
        formats.contains(BarcodeFormat.RSS_EXPANDED);
    // Put 1D readers upfront in "normal" mode
    if (addOneDReader && !tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
    if (formats.contains(BarcodeFormat.QR_CODE)) {
      readers.add(new QRCodeReader());
    }
    if (formats.contains(BarcodeFormat.DATA_MATRIX)) {
      readers.add(new DataMatrixReader());
    }
    if (formats.contains(BarcodeFormat.AZTEC)) {
      readers.add(new AztecReader());
    }
    if (formats.contains(BarcodeFormat.PDF_417)) {
       readers.add(new PDF417Reader());
    }
    if (formats.contains(BarcodeFormat.MAXICODE)) {
       readers.add(new MaxiCodeReader());
    }
    // At end in "try harder" mode
    if (addOneDReader && tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  if (readers.isEmpty()) {
    if (!tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }

    readers.add(new QRCodeReader());
    readers.add(new DataMatrixReader());
    readers.add(new AztecReader());
    readers.add(new PDF417Reader());
    readers.add(new MaxiCodeReader());

    if (tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  this.readers = readers.toArray(new Reader[readers.size()]);
}
项目:weex-3d-map    文件:MultiFormatReader.java   
/**
 * This method adds state to the MultiFormatReader. By setting the hints once, subsequent calls
 * to decodeWithState(image) can reuse the same set of readers without reallocating memory. This
 * is important for performance in continuous scan clients.
 *
 * @param hints The set of hints to use for subsequent calls to decode(image)
 */
public void setHints(Map<DecodeHintType,?> hints) {
  this.hints = hints;

  boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER);
  @SuppressWarnings("unchecked")
  Collection<BarcodeFormat> formats =
      hints == null ? null : (Collection<BarcodeFormat>) hints.get(DecodeHintType.POSSIBLE_FORMATS);
  Collection<Reader> readers = new ArrayList<Reader>();
  if (formats != null) {
    boolean addOneDReader =
        formats.contains(BarcodeFormat.UPC_A) ||
        formats.contains(BarcodeFormat.UPC_E) ||
        formats.contains(BarcodeFormat.EAN_13) ||
        formats.contains(BarcodeFormat.EAN_8) ||
        formats.contains(BarcodeFormat.CODABAR) ||
        formats.contains(BarcodeFormat.CODE_39) ||
        formats.contains(BarcodeFormat.CODE_93) ||
        formats.contains(BarcodeFormat.CODE_128) ||
        formats.contains(BarcodeFormat.ITF) ||
        formats.contains(BarcodeFormat.RSS_14) ||
        formats.contains(BarcodeFormat.RSS_EXPANDED);
    // Put 1D readers upfront in "normal" mode
    if (addOneDReader && !tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
    if (formats.contains(BarcodeFormat.QR_CODE)) {
      readers.add(new QRCodeReader());
    }
    if (formats.contains(BarcodeFormat.DATA_MATRIX)) {
      readers.add(new DataMatrixReader());
    }
    if (formats.contains(BarcodeFormat.AZTEC)) {
      readers.add(new AztecReader());
    }
    if (formats.contains(BarcodeFormat.PDF_417)) {
       readers.add(new PDF417Reader());
    }
    if (formats.contains(BarcodeFormat.MAXICODE)) {
       readers.add(new MaxiCodeReader());
    }
    // At end in "try harder" mode
    if (addOneDReader && tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  if (readers.isEmpty()) {
    if (!tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }

    readers.add(new QRCodeReader());
    readers.add(new DataMatrixReader());
    readers.add(new AztecReader());
    readers.add(new PDF417Reader());
    readers.add(new MaxiCodeReader());

    if (tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  this.readers = readers.toArray(new Reader[readers.size()]);
}
项目:Weex-TestDemo    文件:MultiFormatReader.java   
/**
 * This method adds state to the MultiFormatReader. By setting the hints once, subsequent calls
 * to decodeWithState(image) can reuse the same set of readers without reallocating memory. This
 * is important for performance in continuous scan clients.
 *
 * @param hints The set of hints to use for subsequent calls to decode(image)
 */
public void setHints(Map<DecodeHintType,?> hints) {
  this.hints = hints;

  boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER);
  @SuppressWarnings("unchecked")
  Collection<BarcodeFormat> formats =
      hints == null ? null : (Collection<BarcodeFormat>) hints.get(DecodeHintType.POSSIBLE_FORMATS);
  Collection<Reader> readers = new ArrayList<Reader>();
  if (formats != null) {
    boolean addOneDReader =
        formats.contains(BarcodeFormat.UPC_A) ||
        formats.contains(BarcodeFormat.UPC_E) ||
        formats.contains(BarcodeFormat.EAN_13) ||
        formats.contains(BarcodeFormat.EAN_8) ||
        formats.contains(BarcodeFormat.CODABAR) ||
        formats.contains(BarcodeFormat.CODE_39) ||
        formats.contains(BarcodeFormat.CODE_93) ||
        formats.contains(BarcodeFormat.CODE_128) ||
        formats.contains(BarcodeFormat.ITF) ||
        formats.contains(BarcodeFormat.RSS_14) ||
        formats.contains(BarcodeFormat.RSS_EXPANDED);
    // Put 1D readers upfront in "normal" mode
    if (addOneDReader && !tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
    if (formats.contains(BarcodeFormat.QR_CODE)) {
      readers.add(new QRCodeReader());
    }
    if (formats.contains(BarcodeFormat.DATA_MATRIX)) {
      readers.add(new DataMatrixReader());
    }
    if (formats.contains(BarcodeFormat.AZTEC)) {
      readers.add(new AztecReader());
    }
    if (formats.contains(BarcodeFormat.PDF_417)) {
       readers.add(new PDF417Reader());
    }
    if (formats.contains(BarcodeFormat.MAXICODE)) {
       readers.add(new MaxiCodeReader());
    }
    // At end in "try harder" mode
    if (addOneDReader && tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  if (readers.isEmpty()) {
    if (!tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }

    readers.add(new QRCodeReader());
    readers.add(new DataMatrixReader());
    readers.add(new AztecReader());
    readers.add(new PDF417Reader());
    readers.add(new MaxiCodeReader());

    if (tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  this.readers = readers.toArray(new Reader[readers.size()]);
}
项目:QrScan_Demo    文件:MultiFormatReader.java   
/**
 * This method adds state to the MultiFormatReader. By setting the hints once, subsequent calls
 * to decodeWithState(image) can reuse the same set of readers without reallocating memory. This
 * is important for performance in continuous scan clients.
 *
 * @param hints The set of hints to use for subsequent calls to decode(image)
 */
public void setHints(Map<DecodeHintType,?> hints) {
  this.hints = hints;

  boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER);
  @SuppressWarnings("unchecked")
  Collection<BarcodeFormat> formats =
      hints == null ? null : (Collection<BarcodeFormat>) hints.get(DecodeHintType.POSSIBLE_FORMATS);
  Collection<Reader> readers = new ArrayList<>();
  if (formats != null) {
    boolean addOneDReader =
        formats.contains(BarcodeFormat.UPC_A) ||
        formats.contains(BarcodeFormat.UPC_E) ||
        formats.contains(BarcodeFormat.EAN_13) ||
        formats.contains(BarcodeFormat.EAN_8) ||
        formats.contains(BarcodeFormat.CODABAR) ||
        formats.contains(BarcodeFormat.CODE_39) ||
        formats.contains(BarcodeFormat.CODE_93) ||
        formats.contains(BarcodeFormat.CODE_128) ||
        formats.contains(BarcodeFormat.ITF) ||
        formats.contains(BarcodeFormat.RSS_14) ||
        formats.contains(BarcodeFormat.RSS_EXPANDED);
    // Put 1D readers upfront in "normal" mode
    if (addOneDReader && !tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
    if (formats.contains(BarcodeFormat.QR_CODE)) {
      readers.add(new QRCodeReader());
    }
    if (formats.contains(BarcodeFormat.DATA_MATRIX)) {
      readers.add(new DataMatrixReader());
    }
    if (formats.contains(BarcodeFormat.AZTEC)) {
      readers.add(new AztecReader());
    }
    if (formats.contains(BarcodeFormat.PDF_417)) {
       readers.add(new PDF417Reader());
    }
    if (formats.contains(BarcodeFormat.MAXICODE)) {
       readers.add(new MaxiCodeReader());
    }
    // At end in "try harder" mode
    if (addOneDReader && tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  if (readers.isEmpty()) {
    if (!tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }

    readers.add(new QRCodeReader());
    readers.add(new DataMatrixReader());
    readers.add(new AztecReader());
    readers.add(new PDF417Reader());
    readers.add(new MaxiCodeReader());

    if (tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  this.readers = readers.toArray(new Reader[readers.size()]);
}
项目:weex    文件:MultiFormatReader.java   
/**
 * This method adds state to the MultiFormatReader. By setting the hints once, subsequent calls
 * to decodeWithState(image) can reuse the same set of readers without reallocating memory. This
 * is important for performance in continuous scan clients.
 *
 * @param hints The set of hints to use for subsequent calls to decode(image)
 */
public void setHints(Map<DecodeHintType,?> hints) {
  this.hints = hints;

  boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER);
  @SuppressWarnings("unchecked")
  Collection<BarcodeFormat> formats =
      hints == null ? null : (Collection<BarcodeFormat>) hints.get(DecodeHintType.POSSIBLE_FORMATS);
  Collection<Reader> readers = new ArrayList<Reader>();
  if (formats != null) {
    boolean addOneDReader =
        formats.contains(BarcodeFormat.UPC_A) ||
        formats.contains(BarcodeFormat.UPC_E) ||
        formats.contains(BarcodeFormat.EAN_13) ||
        formats.contains(BarcodeFormat.EAN_8) ||
        formats.contains(BarcodeFormat.CODABAR) ||
        formats.contains(BarcodeFormat.CODE_39) ||
        formats.contains(BarcodeFormat.CODE_93) ||
        formats.contains(BarcodeFormat.CODE_128) ||
        formats.contains(BarcodeFormat.ITF) ||
        formats.contains(BarcodeFormat.RSS_14) ||
        formats.contains(BarcodeFormat.RSS_EXPANDED);
    // Put 1D readers upfront in "normal" mode
    if (addOneDReader && !tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
    if (formats.contains(BarcodeFormat.QR_CODE)) {
      readers.add(new QRCodeReader());
    }
    if (formats.contains(BarcodeFormat.DATA_MATRIX)) {
      readers.add(new DataMatrixReader());
    }
    if (formats.contains(BarcodeFormat.AZTEC)) {
      readers.add(new AztecReader());
    }
    if (formats.contains(BarcodeFormat.PDF_417)) {
       readers.add(new PDF417Reader());
    }
    if (formats.contains(BarcodeFormat.MAXICODE)) {
       readers.add(new MaxiCodeReader());
    }
    // At end in "try harder" mode
    if (addOneDReader && tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  if (readers.isEmpty()) {
    if (!tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }

    readers.add(new QRCodeReader());
    readers.add(new DataMatrixReader());
    readers.add(new AztecReader());
    readers.add(new PDF417Reader());
    readers.add(new MaxiCodeReader());

    if (tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  this.readers = readers.toArray(new Reader[readers.size()]);
}
项目:sres-app    文件:MultiFormatReader.java   
/**
 * This method adds state to the MultiFormatReader. By setting the hints once, subsequent calls
 * to decodeWithState(image) can reuse the same set of readers without reallocating memory. This
 * is important for performance in continuous scan clients.
 *
 * @param hints The set of hints to use for subsequent calls to decode(image)
 */
public void setHints(Map<DecodeHintType,?> hints) {
  this.hints = hints;

  boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER);
  Collection<BarcodeFormat> formats =
      hints == null ? null : (Collection<BarcodeFormat>) hints.get(DecodeHintType.POSSIBLE_FORMATS);
  Collection<Reader> readers = new ArrayList<Reader>();
  if (formats != null) {
    boolean addOneDReader =
        formats.contains(BarcodeFormat.UPC_A) ||
        formats.contains(BarcodeFormat.UPC_E) ||
        formats.contains(BarcodeFormat.EAN_13) ||
        formats.contains(BarcodeFormat.EAN_8) ||
        formats.contains(BarcodeFormat.CODABAR) ||
        formats.contains(BarcodeFormat.CODE_39) ||
        formats.contains(BarcodeFormat.CODE_93) ||
        formats.contains(BarcodeFormat.CODE_128) ||
        formats.contains(BarcodeFormat.ITF) ||
        formats.contains(BarcodeFormat.RSS_14) ||
        formats.contains(BarcodeFormat.RSS_EXPANDED);
    // Put 1D readers upfront in "normal" mode
    if (addOneDReader && !tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
    if (formats.contains(BarcodeFormat.QR_CODE)) {
      readers.add(new QRCodeReader());
    }
    if (formats.contains(BarcodeFormat.DATA_MATRIX)) {
      readers.add(new DataMatrixReader());
    }
    if (formats.contains(BarcodeFormat.AZTEC)) {
      readers.add(new AztecReader());
    }
    if (formats.contains(BarcodeFormat.PDF_417)) {
       readers.add(new PDF417Reader());
    }
    if (formats.contains(BarcodeFormat.MAXICODE)) {
       readers.add(new MaxiCodeReader());
    }
    // At end in "try harder" mode
    if (addOneDReader && tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  if (readers.isEmpty()) {
    if (!tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }

    readers.add(new QRCodeReader());
    readers.add(new DataMatrixReader());
    readers.add(new AztecReader());
    readers.add(new PDF417Reader());
    readers.add(new MaxiCodeReader());

    if (tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  this.readers = readers.toArray(new Reader[readers.size()]);
}
项目:TrueTone    文件:MultiFormatReader.java   
/**
 * This method adds state to the MultiFormatReader. By setting the hints once, subsequent calls
 * to decodeWithState(image) can reuse the same set of readers without reallocating memory. This
 * is important for performance in continuous scan clients.
 *
 * @param hints The set of hints to use for subsequent calls to decode(image)
 */
public void setHints(Map<DecodeHintType, ?> hints) {
    this.hints = hints;

    boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER);
    @SuppressWarnings("unchecked")
    Collection<BarcodeFormat> formats =
            hints == null ? null : (Collection<BarcodeFormat>) hints.get(DecodeHintType.POSSIBLE_FORMATS);
    Collection<Reader> readers = new ArrayList<>();
    if (formats != null) {
        boolean addOneDReader =
                formats.contains(BarcodeFormat.UPC_A) ||
                        formats.contains(BarcodeFormat.UPC_E) ||
                        formats.contains(BarcodeFormat.EAN_13) ||
                        formats.contains(BarcodeFormat.EAN_8) ||
                        formats.contains(BarcodeFormat.CODABAR) ||
                        formats.contains(BarcodeFormat.CODE_39) ||
                        formats.contains(BarcodeFormat.CODE_93) ||
                        formats.contains(BarcodeFormat.CODE_128) ||
                        formats.contains(BarcodeFormat.ITF) ||
                        formats.contains(BarcodeFormat.RSS_14) ||
                        formats.contains(BarcodeFormat.RSS_EXPANDED);
        // Put 1D readers upfront in "normal" mode
        if (addOneDReader && !tryHarder) {
            readers.add(new MultiFormatOneDReader(hints));
        }
        if (formats.contains(BarcodeFormat.QR_CODE)) {
            readers.add(new QRCodeReader());
        }
        if (formats.contains(BarcodeFormat.DATA_MATRIX)) {
            readers.add(new DataMatrixReader());
        }
        if (formats.contains(BarcodeFormat.AZTEC)) {
            readers.add(new AztecReader());
        }
        if (formats.contains(BarcodeFormat.PDF_417)) {
            readers.add(new PDF417Reader());
        }
        if (formats.contains(BarcodeFormat.MAXICODE)) {
            readers.add(new MaxiCodeReader());
        }
        // At end in "try harder" mode
        if (addOneDReader && tryHarder) {
            readers.add(new MultiFormatOneDReader(hints));
        }
    }
    if (readers.isEmpty()) {
        if (!tryHarder) {
            readers.add(new MultiFormatOneDReader(hints));
        }

        readers.add(new QRCodeReader());
        readers.add(new DataMatrixReader());
        readers.add(new AztecReader());
        readers.add(new PDF417Reader());
        readers.add(new MaxiCodeReader());

        if (tryHarder) {
            readers.add(new MultiFormatOneDReader(hints));
        }
    }
    this.readers = readers.toArray(new Reader[readers.size()]);
}
项目:Discounty    文件:MultiFormatReader.java   
/**
 * This method adds state to the MultiFormatReader. By setting the hints once, subsequent calls
 * to decodeWithState(image) can reuse the same set of readers without reallocating memory. This
 * is important for performance in continuous scan clients.
 *
 * @param hints The set of hints to use for subsequent calls to decode(image)
 */
public void setHints(Map<DecodeHintType, ?> hints) {
    this.hints = hints;

    boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER);
    @SuppressWarnings("unchecked")
    Collection<BarcodeFormat> formats =
            hints == null ? null : (Collection<BarcodeFormat>) hints.get(DecodeHintType.POSSIBLE_FORMATS);
    Collection<Reader> readers = new ArrayList<Reader>();
    if (formats != null) {
        boolean addOneDReader =
                formats.contains(BarcodeFormat.UPC_A) ||
                        formats.contains(BarcodeFormat.UPC_E) ||
                        formats.contains(BarcodeFormat.EAN_13) ||
                        formats.contains(BarcodeFormat.EAN_8) ||
                        formats.contains(BarcodeFormat.CODABAR) ||
                        formats.contains(BarcodeFormat.CODE_39) ||
                        formats.contains(BarcodeFormat.CODE_93) ||
                        formats.contains(BarcodeFormat.CODE_128) ||
                        formats.contains(BarcodeFormat.ITF) ||
                        formats.contains(BarcodeFormat.RSS_14) ||
                        formats.contains(BarcodeFormat.RSS_EXPANDED);
        // Put 1D readers upfront in "normal" mode
        if (addOneDReader && !tryHarder) {
            readers.add(new MultiFormatOneDReader(hints));
        }
        if (formats.contains(BarcodeFormat.QR_CODE)) {
            readers.add(new QRCodeReader());
        }
        if (formats.contains(BarcodeFormat.DATA_MATRIX)) {
            readers.add(new DataMatrixReader());
        }
        if (formats.contains(BarcodeFormat.AZTEC)) {
            readers.add(new AztecReader());
        }
        if (formats.contains(BarcodeFormat.PDF_417)) {
            readers.add(new PDF417Reader());
        }
        if (formats.contains(BarcodeFormat.MAXICODE)) {
            readers.add(new MaxiCodeReader());
        }
        // At end in "try harder" mode
        if (addOneDReader && tryHarder) {
            readers.add(new MultiFormatOneDReader(hints));
        }
    }
    if (readers.isEmpty()) {
        if (!tryHarder) {
            readers.add(new MultiFormatOneDReader(hints));
        }

        readers.add(new QRCodeReader());
        readers.add(new DataMatrixReader());
        readers.add(new AztecReader());
        readers.add(new PDF417Reader());
        readers.add(new MaxiCodeReader());

        if (tryHarder) {
            readers.add(new MultiFormatOneDReader(hints));
        }
    }
    this.readers = readers.toArray(new Reader[readers.size()]);
}
项目:bushido-android-app    文件:MultiFormatReader.java   
/**
 * This method adds state to the MultiFormatReader. By setting the hints once, subsequent calls
 * to decodeWithState(image) can reuse the same set of readers without reallocating memory. This
 * is important for performance in continuous scan clients.
 *
 * @param hints The set of hints to use for subsequent calls to decode(image)
 */
public void setHints(Map<DecodeHintType,?> hints) {
  this.hints = hints;

  boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER);
  @SuppressWarnings("unchecked")
  Collection<BarcodeFormat> formats =
      hints == null ? null : (Collection<BarcodeFormat>) hints.get(DecodeHintType.POSSIBLE_FORMATS);
  Collection<Reader> readers = new ArrayList<>();
  if (formats != null) {
    boolean addOneDReader =
        formats.contains(BarcodeFormat.UPC_A) ||
        formats.contains(BarcodeFormat.UPC_E) ||
        formats.contains(BarcodeFormat.EAN_13) ||
        formats.contains(BarcodeFormat.EAN_8) ||
        formats.contains(BarcodeFormat.CODABAR) ||
        formats.contains(BarcodeFormat.CODE_39) ||
        formats.contains(BarcodeFormat.CODE_93) ||
        formats.contains(BarcodeFormat.CODE_128) ||
        formats.contains(BarcodeFormat.ITF) ||
        formats.contains(BarcodeFormat.RSS_14) ||
        formats.contains(BarcodeFormat.RSS_EXPANDED);
    // Put 1D readers upfront in "normal" mode
    if (addOneDReader && !tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
    if (formats.contains(BarcodeFormat.QR_CODE)) {
      readers.add(new QRCodeReader());
    }
    if (formats.contains(BarcodeFormat.DATA_MATRIX)) {
      readers.add(new DataMatrixReader());
    }
    if (formats.contains(BarcodeFormat.AZTEC)) {
      readers.add(new AztecReader());
    }
    if (formats.contains(BarcodeFormat.PDF_417)) {
       readers.add(new PDF417Reader());
    }
    if (formats.contains(BarcodeFormat.MAXICODE)) {
       readers.add(new MaxiCodeReader());
    }
    // At end in "try harder" mode
    if (addOneDReader && tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  if (readers.isEmpty()) {
    if (!tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }

    readers.add(new QRCodeReader());
    readers.add(new DataMatrixReader());
    readers.add(new AztecReader());
    readers.add(new PDF417Reader());
    readers.add(new MaxiCodeReader());

    if (tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  this.readers = readers.toArray(new Reader[readers.size()]);
}
项目:reacteu-app    文件:MultiFormatReader.java   
/**
 * This method adds state to the MultiFormatReader. By setting the hints once, subsequent calls
 * to decodeWithState(image) can reuse the same set of readers without reallocating memory. This
 * is important for performance in continuous scan clients.
 *
 * @param hints The set of hints to use for subsequent calls to decode(image)
 */
public void setHints(Map<DecodeHintType,?> hints) {
  this.hints = hints;

  boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER);
  Collection<BarcodeFormat> formats =
      hints == null ? null : (Collection<BarcodeFormat>) hints.get(DecodeHintType.POSSIBLE_FORMATS);
  Collection<Reader> readers = new ArrayList<Reader>();
  if (formats != null) {
    boolean addOneDReader =
        formats.contains(BarcodeFormat.UPC_A) ||
        formats.contains(BarcodeFormat.UPC_E) ||
        formats.contains(BarcodeFormat.EAN_13) ||
        formats.contains(BarcodeFormat.EAN_8) ||
        formats.contains(BarcodeFormat.CODABAR) ||
        formats.contains(BarcodeFormat.CODE_39) ||
        formats.contains(BarcodeFormat.CODE_93) ||
        formats.contains(BarcodeFormat.CODE_128) ||
        formats.contains(BarcodeFormat.ITF) ||
        formats.contains(BarcodeFormat.RSS_14) ||
        formats.contains(BarcodeFormat.RSS_EXPANDED);
    // Put 1D readers upfront in "normal" mode
    if (addOneDReader && !tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
    if (formats.contains(BarcodeFormat.QR_CODE)) {
      readers.add(new QRCodeReader());
    }
    if (formats.contains(BarcodeFormat.DATA_MATRIX)) {
      readers.add(new DataMatrixReader());
    }
    if (formats.contains(BarcodeFormat.AZTEC)) {
      readers.add(new AztecReader());
    }
    if (formats.contains(BarcodeFormat.PDF_417)) {
       readers.add(new PDF417Reader());
    }
    if (formats.contains(BarcodeFormat.MAXICODE)) {
       readers.add(new MaxiCodeReader());
    }
    // At end in "try harder" mode
    if (addOneDReader && tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  if (readers.isEmpty()) {
    if (!tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }

    readers.add(new QRCodeReader());
    readers.add(new DataMatrixReader());
    readers.add(new AztecReader());
    readers.add(new PDF417Reader());
    readers.add(new MaxiCodeReader());

    if (tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  this.readers = readers.toArray(new Reader[readers.size()]);
}
项目:Android-Birdcopy-Application    文件:MultiFormatReader.java   
/**
 * This method adds state to the MultiFormatReader. By setting the hints once, subsequent calls
 * to decodeWithState(image) can reuse the same set of readers without reallocating memory. This
 * is important for performance in continuous scan clients.
 *
 * @param hints The set of hints to use for subsequent calls to decode(image)
 */
public void setHints(Map<DecodeHintType,?> hints) {
  this.hints = hints;

  boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER);
  @SuppressWarnings("unchecked")
  Collection<BarcodeFormat> formats =
      hints == null ? null : (Collection<BarcodeFormat>) hints.get(DecodeHintType.POSSIBLE_FORMATS);
  Collection<Reader> readers = new ArrayList<>();
  if (formats != null) {
    boolean addOneDReader =
        formats.contains(BarcodeFormat.UPC_A) ||
        formats.contains(BarcodeFormat.UPC_E) ||
        formats.contains(BarcodeFormat.EAN_13) ||
        formats.contains(BarcodeFormat.EAN_8) ||
        formats.contains(BarcodeFormat.CODABAR) ||
        formats.contains(BarcodeFormat.CODE_39) ||
        formats.contains(BarcodeFormat.CODE_93) ||
        formats.contains(BarcodeFormat.CODE_128) ||
        formats.contains(BarcodeFormat.ITF) ||
        formats.contains(BarcodeFormat.RSS_14) ||
        formats.contains(BarcodeFormat.RSS_EXPANDED);
    // Put 1D readers upfront in "normal" mode
    if (addOneDReader && !tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
    if (formats.contains(BarcodeFormat.QR_CODE)) {
      readers.add(new QRCodeReader());
    }
    if (formats.contains(BarcodeFormat.DATA_MATRIX)) {
      readers.add(new DataMatrixReader());
    }
    if (formats.contains(BarcodeFormat.AZTEC)) {
      readers.add(new AztecReader());
    }
    if (formats.contains(BarcodeFormat.PDF_417)) {
       readers.add(new PDF417Reader());
    }
    if (formats.contains(BarcodeFormat.MAXICODE)) {
       readers.add(new MaxiCodeReader());
    }
    // At end in "try harder" mode
    if (addOneDReader && tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  if (readers.isEmpty()) {
    if (!tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }

    readers.add(new QRCodeReader());
    readers.add(new DataMatrixReader());
    readers.add(new AztecReader());
    readers.add(new PDF417Reader());
    readers.add(new MaxiCodeReader());

    if (tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  this.readers = readers.toArray(new Reader[readers.size()]);
}
项目:CordovaDemo    文件:MultiFormatReader.java   
/**
 * This method adds state to the MultiFormatReader. By setting the hints once, subsequent calls
 * to decodeWithState(image) can reuse the same set of readers without reallocating memory. This
 * is important for performance in continuous scan clients.
 *
 * @param hints The set of hints to use for subsequent calls to decode(image)
 */
public void setHints(Map<DecodeHintType,?> hints) {
  this.hints = hints;

  boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER);
  Collection<BarcodeFormat> formats =
      hints == null ? null : (Collection<BarcodeFormat>) hints.get(DecodeHintType.POSSIBLE_FORMATS);
  Collection<Reader> readers = new ArrayList<Reader>();
  if (formats != null) {
    boolean addOneDReader =
        formats.contains(BarcodeFormat.UPC_A) ||
        formats.contains(BarcodeFormat.UPC_E) ||
        formats.contains(BarcodeFormat.EAN_13) ||
        formats.contains(BarcodeFormat.EAN_8) ||
        formats.contains(BarcodeFormat.CODABAR) ||
        formats.contains(BarcodeFormat.CODE_39) ||
        formats.contains(BarcodeFormat.CODE_93) ||
        formats.contains(BarcodeFormat.CODE_128) ||
        formats.contains(BarcodeFormat.ITF) ||
        formats.contains(BarcodeFormat.RSS_14) ||
        formats.contains(BarcodeFormat.RSS_EXPANDED);
    // Put 1D readers upfront in "normal" mode
    if (addOneDReader && !tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
    if (formats.contains(BarcodeFormat.QR_CODE)) {
      readers.add(new QRCodeReader());
    }
    if (formats.contains(BarcodeFormat.DATA_MATRIX)) {
      readers.add(new DataMatrixReader());
    }
    if (formats.contains(BarcodeFormat.AZTEC)) {
      readers.add(new AztecReader());
    }
    if (formats.contains(BarcodeFormat.PDF_417)) {
       readers.add(new PDF417Reader());
    }
    if (formats.contains(BarcodeFormat.MAXICODE)) {
       readers.add(new MaxiCodeReader());
    }
    // At end in "try harder" mode
    if (addOneDReader && tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  if (readers.isEmpty()) {
    if (!tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }

    readers.add(new QRCodeReader());
    readers.add(new DataMatrixReader());
    readers.add(new AztecReader());
    readers.add(new PDF417Reader());
    readers.add(new MaxiCodeReader());

    if (tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  this.readers = readers.toArray(new Reader[readers.size()]);
}
项目:ng-cordova-demo    文件:MultiFormatReader.java   
/**
 * This method adds state to the MultiFormatReader. By setting the hints once, subsequent calls
 * to decodeWithState(image) can reuse the same set of readers without reallocating memory. This
 * is important for performance in continuous scan clients.
 *
 * @param hints The set of hints to use for subsequent calls to decode(image)
 */
public void setHints(Map<DecodeHintType,?> hints) {
  this.hints = hints;

  boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER);
  Collection<BarcodeFormat> formats =
      hints == null ? null : (Collection<BarcodeFormat>) hints.get(DecodeHintType.POSSIBLE_FORMATS);
  Collection<Reader> readers = new ArrayList<Reader>();
  if (formats != null) {
    boolean addOneDReader =
        formats.contains(BarcodeFormat.UPC_A) ||
        formats.contains(BarcodeFormat.UPC_E) ||
        formats.contains(BarcodeFormat.EAN_13) ||
        formats.contains(BarcodeFormat.EAN_8) ||
        formats.contains(BarcodeFormat.CODABAR) ||
        formats.contains(BarcodeFormat.CODE_39) ||
        formats.contains(BarcodeFormat.CODE_93) ||
        formats.contains(BarcodeFormat.CODE_128) ||
        formats.contains(BarcodeFormat.ITF) ||
        formats.contains(BarcodeFormat.RSS_14) ||
        formats.contains(BarcodeFormat.RSS_EXPANDED);
    // Put 1D readers upfront in "normal" mode
    if (addOneDReader && !tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
    if (formats.contains(BarcodeFormat.QR_CODE)) {
      readers.add(new QRCodeReader());
    }
    if (formats.contains(BarcodeFormat.DATA_MATRIX)) {
      readers.add(new DataMatrixReader());
    }
    if (formats.contains(BarcodeFormat.AZTEC)) {
      readers.add(new AztecReader());
    }
    if (formats.contains(BarcodeFormat.PDF_417)) {
       readers.add(new PDF417Reader());
    }
    if (formats.contains(BarcodeFormat.MAXICODE)) {
       readers.add(new MaxiCodeReader());
    }
    // At end in "try harder" mode
    if (addOneDReader && tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  if (readers.isEmpty()) {
    if (!tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }

    readers.add(new QRCodeReader());
    readers.add(new DataMatrixReader());
    readers.add(new AztecReader());
    readers.add(new PDF417Reader());
    readers.add(new MaxiCodeReader());

    if (tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  this.readers = readers.toArray(new Reader[readers.size()]);
}
项目:RipplePower    文件:MultiFormatReader.java   
/**
 * This method adds state to the MultiFormatReader. By setting the hints
 * once, subsequent calls to decodeWithState(image) can reuse the same set
 * of readers without reallocating memory. This is important for performance
 * in continuous scan clients.
 * 
 * @param hints
 *            The set of hints to use for subsequent calls to decode(image)
 */
public void setHints(Map<DecodeHintType, ?> hints) {
    this.hints = hints;

    boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER);
    @SuppressWarnings("unchecked")
    Collection<BarcodeFormat> formats = hints == null ? null
            : (Collection<BarcodeFormat>) hints.get(DecodeHintType.POSSIBLE_FORMATS);
    Collection<Reader> readers = new ArrayList<>();
    if (formats != null) {
        boolean addOneDReader = formats.contains(BarcodeFormat.UPC_A) || formats.contains(BarcodeFormat.UPC_E)
                || formats.contains(BarcodeFormat.EAN_13) || formats.contains(BarcodeFormat.EAN_8)
                || formats.contains(BarcodeFormat.CODABAR) || formats.contains(BarcodeFormat.CODE_39)
                || formats.contains(BarcodeFormat.CODE_93) || formats.contains(BarcodeFormat.CODE_128)
                || formats.contains(BarcodeFormat.ITF) || formats.contains(BarcodeFormat.RSS_14)
                || formats.contains(BarcodeFormat.RSS_EXPANDED);
        // Put 1D readers upfront in "normal" mode
        if (addOneDReader && !tryHarder) {
            readers.add(new MultiFormatOneDReader(hints));
        }
        if (formats.contains(BarcodeFormat.QR_CODE)) {
            readers.add(new QRCodeReader());
        }
        if (formats.contains(BarcodeFormat.DATA_MATRIX)) {
            readers.add(new DataMatrixReader());
        }
        if (formats.contains(BarcodeFormat.MAXICODE)) {
            readers.add(new MaxiCodeReader());
        }
        // At end in "try harder" mode
        if (addOneDReader && tryHarder) {
            readers.add(new MultiFormatOneDReader(hints));
        }
    }
    if (readers.isEmpty()) {
        if (!tryHarder) {
            readers.add(new MultiFormatOneDReader(hints));
        }

        readers.add(new QRCodeReader());
        readers.add(new DataMatrixReader());
        readers.add(new MaxiCodeReader());

        if (tryHarder) {
            readers.add(new MultiFormatOneDReader(hints));
        }
    }
    this.readers = readers.toArray(new Reader[readers.size()]);
}
项目:zxing-bsplus    文件:MultiFormatReader.java   
/**
 * This method adds state to the MultiFormatReader. By setting the hints once, subsequent calls
 * to decodeWithState(image) can reuse the same set of readers without reallocating memory. This
 * is important for performance in continuous scan clients.
 *
 * @param hints The set of hints to use for subsequent calls to decode(image)
 */
public void setHints(Map<DecodeHintType,?> hints) {
  this.hints = hints;

  boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER);
  @SuppressWarnings("unchecked")
  Collection<BarcodeFormat> formats =
      hints == null ? null : (Collection<BarcodeFormat>) hints.get(DecodeHintType.POSSIBLE_FORMATS);
  Collection<Reader> readers = new ArrayList<>();
  if (formats != null) {
    boolean addOneDReader =
        formats.contains(BarcodeFormat.UPC_A) ||
        formats.contains(BarcodeFormat.UPC_E) ||
        formats.contains(BarcodeFormat.EAN_13) ||
        formats.contains(BarcodeFormat.EAN_8) ||
        formats.contains(BarcodeFormat.CODABAR) ||
        formats.contains(BarcodeFormat.CODE_39) ||
        formats.contains(BarcodeFormat.CODE_93) ||
        formats.contains(BarcodeFormat.CODE_128) ||
        formats.contains(BarcodeFormat.ITF) ||
        formats.contains(BarcodeFormat.RSS_14) ||
        formats.contains(BarcodeFormat.RSS_EXPANDED);
    // Put 1D readers upfront in "normal" mode
    if (addOneDReader && !tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
    if (formats.contains(BarcodeFormat.QR_CODE)) {
      readers.add(new QRCodeReader());
    }
    if (formats.contains(BarcodeFormat.DATA_MATRIX)) {
      readers.add(new DataMatrixReader());
    }
    if (formats.contains(BarcodeFormat.AZTEC)) {
      readers.add(new AztecReader());
    }
    if (formats.contains(BarcodeFormat.PDF_417)) {
       readers.add(new PDF417Reader());
    }
    if (formats.contains(BarcodeFormat.MAXICODE)) {
       readers.add(new MaxiCodeReader());
    }
    // At end in "try harder" mode
    if (addOneDReader && tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  if (readers.isEmpty()) {
    if (!tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }

    readers.add(new QRCodeReader());
    readers.add(new DataMatrixReader());
    readers.add(new AztecReader());
    readers.add(new PDF417Reader());
    readers.add(new MaxiCodeReader());

    if (tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  this.readers = readers.toArray(new Reader[readers.size()]);
}
项目:ngCordova-demo    文件:MultiFormatReader.java   
/**
 * This method adds state to the MultiFormatReader. By setting the hints once, subsequent calls
 * to decodeWithState(image) can reuse the same set of readers without reallocating memory. This
 * is important for performance in continuous scan clients.
 *
 * @param hints The set of hints to use for subsequent calls to decode(image)
 */
public void setHints(Map<DecodeHintType,?> hints) {
  this.hints = hints;

  boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER);
  Collection<BarcodeFormat> formats =
      hints == null ? null : (Collection<BarcodeFormat>) hints.get(DecodeHintType.POSSIBLE_FORMATS);
  Collection<Reader> readers = new ArrayList<Reader>();
  if (formats != null) {
    boolean addOneDReader =
        formats.contains(BarcodeFormat.UPC_A) ||
        formats.contains(BarcodeFormat.UPC_E) ||
        formats.contains(BarcodeFormat.EAN_13) ||
        formats.contains(BarcodeFormat.EAN_8) ||
        formats.contains(BarcodeFormat.CODABAR) ||
        formats.contains(BarcodeFormat.CODE_39) ||
        formats.contains(BarcodeFormat.CODE_93) ||
        formats.contains(BarcodeFormat.CODE_128) ||
        formats.contains(BarcodeFormat.ITF) ||
        formats.contains(BarcodeFormat.RSS_14) ||
        formats.contains(BarcodeFormat.RSS_EXPANDED);
    // Put 1D readers upfront in "normal" mode
    if (addOneDReader && !tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
    if (formats.contains(BarcodeFormat.QR_CODE)) {
      readers.add(new QRCodeReader());
    }
    if (formats.contains(BarcodeFormat.DATA_MATRIX)) {
      readers.add(new DataMatrixReader());
    }
    if (formats.contains(BarcodeFormat.AZTEC)) {
      readers.add(new AztecReader());
    }
    if (formats.contains(BarcodeFormat.PDF_417)) {
       readers.add(new PDF417Reader());
    }
    if (formats.contains(BarcodeFormat.MAXICODE)) {
       readers.add(new MaxiCodeReader());
    }
    // At end in "try harder" mode
    if (addOneDReader && tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  if (readers.isEmpty()) {
    if (!tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }

    readers.add(new QRCodeReader());
    readers.add(new DataMatrixReader());
    readers.add(new AztecReader());
    readers.add(new PDF417Reader());
    readers.add(new MaxiCodeReader());

    if (tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  this.readers = readers.toArray(new Reader[readers.size()]);
}
项目:CordovaW8BarcodeDemo    文件:MultiFormatReader.java   
/**
 * This method adds state to the MultiFormatReader. By setting the hints once, subsequent calls
 * to decodeWithState(image) can reuse the same set of readers without reallocating memory. This
 * is important for performance in continuous scan clients.
 *
 * @param hints The set of hints to use for subsequent calls to decode(image)
 */
public void setHints(Map<DecodeHintType,?> hints) {
  this.hints = hints;

  boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER);
  Collection<BarcodeFormat> formats =
      hints == null ? null : (Collection<BarcodeFormat>) hints.get(DecodeHintType.POSSIBLE_FORMATS);
  Collection<Reader> readers = new ArrayList<Reader>();
  if (formats != null) {
    boolean addOneDReader =
        formats.contains(BarcodeFormat.UPC_A) ||
        formats.contains(BarcodeFormat.UPC_E) ||
        formats.contains(BarcodeFormat.EAN_13) ||
        formats.contains(BarcodeFormat.EAN_8) ||
        formats.contains(BarcodeFormat.CODABAR) ||
        formats.contains(BarcodeFormat.CODE_39) ||
        formats.contains(BarcodeFormat.CODE_93) ||
        formats.contains(BarcodeFormat.CODE_128) ||
        formats.contains(BarcodeFormat.ITF) ||
        formats.contains(BarcodeFormat.RSS_14) ||
        formats.contains(BarcodeFormat.RSS_EXPANDED);
    // Put 1D readers upfront in "normal" mode
    if (addOneDReader && !tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
    if (formats.contains(BarcodeFormat.QR_CODE)) {
      readers.add(new QRCodeReader());
    }
    if (formats.contains(BarcodeFormat.DATA_MATRIX)) {
      readers.add(new DataMatrixReader());
    }
    if (formats.contains(BarcodeFormat.AZTEC)) {
      readers.add(new AztecReader());
    }
    if (formats.contains(BarcodeFormat.PDF_417)) {
       readers.add(new PDF417Reader());
    }
    if (formats.contains(BarcodeFormat.MAXICODE)) {
       readers.add(new MaxiCodeReader());
    }
    // At end in "try harder" mode
    if (addOneDReader && tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  if (readers.isEmpty()) {
    if (!tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }

    readers.add(new QRCodeReader());
    readers.add(new DataMatrixReader());
    readers.add(new AztecReader());
    readers.add(new PDF417Reader());
    readers.add(new MaxiCodeReader());

    if (tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  this.readers = readers.toArray(new Reader[readers.size()]);
}
项目:cordova-template    文件:MultiFormatReader.java   
/**
 * This method adds state to the MultiFormatReader. By setting the hints once, subsequent calls
 * to decodeWithState(image) can reuse the same set of readers without reallocating memory. This
 * is important for performance in continuous scan clients.
 *
 * @param hints The set of hints to use for subsequent calls to decode(image)
 */
public void setHints(Map<DecodeHintType,?> hints) {
  this.hints = hints;

  boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER);
  Collection<BarcodeFormat> formats =
      hints == null ? null : (Collection<BarcodeFormat>) hints.get(DecodeHintType.POSSIBLE_FORMATS);
  Collection<Reader> readers = new ArrayList<Reader>();
  if (formats != null) {
    boolean addOneDReader =
        formats.contains(BarcodeFormat.UPC_A) ||
        formats.contains(BarcodeFormat.UPC_E) ||
        formats.contains(BarcodeFormat.EAN_13) ||
        formats.contains(BarcodeFormat.EAN_8) ||
        formats.contains(BarcodeFormat.CODABAR) ||
        formats.contains(BarcodeFormat.CODE_39) ||
        formats.contains(BarcodeFormat.CODE_93) ||
        formats.contains(BarcodeFormat.CODE_128) ||
        formats.contains(BarcodeFormat.ITF) ||
        formats.contains(BarcodeFormat.RSS_14) ||
        formats.contains(BarcodeFormat.RSS_EXPANDED);
    // Put 1D readers upfront in "normal" mode
    if (addOneDReader && !tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
    if (formats.contains(BarcodeFormat.QR_CODE)) {
      readers.add(new QRCodeReader());
    }
    if (formats.contains(BarcodeFormat.DATA_MATRIX)) {
      readers.add(new DataMatrixReader());
    }
    if (formats.contains(BarcodeFormat.AZTEC)) {
      readers.add(new AztecReader());
    }
    if (formats.contains(BarcodeFormat.PDF_417)) {
       readers.add(new PDF417Reader());
    }
    if (formats.contains(BarcodeFormat.MAXICODE)) {
       readers.add(new MaxiCodeReader());
    }
    // At end in "try harder" mode
    if (addOneDReader && tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  if (readers.isEmpty()) {
    if (!tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }

    readers.add(new QRCodeReader());
    readers.add(new DataMatrixReader());
    readers.add(new AztecReader());
    readers.add(new PDF417Reader());
    readers.add(new MaxiCodeReader());

    if (tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  this.readers = readers.toArray(new Reader[readers.size()]);
}
项目:oxPush    文件:MultiFormatReader.java   
/**
 * This method adds state to the MultiFormatReader. By setting the hints once, subsequent calls
 * to decodeWithState(image) can reuse the same set of readers without reallocating memory. This
 * is important for performance in continuous scan clients.
 *
 * @param hints The set of hints to use for subsequent calls to decode(image)
 */
public void setHints(Map<DecodeHintType,?> hints) {
  this.hints = hints;

  boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER);
  Collection<BarcodeFormat> formats =
      hints == null ? null : (Collection<BarcodeFormat>) hints.get(DecodeHintType.POSSIBLE_FORMATS);
  Collection<Reader> readers = new ArrayList<Reader>();
  if (formats != null) {
    boolean addOneDReader =
        formats.contains(BarcodeFormat.UPC_A) ||
        formats.contains(BarcodeFormat.UPC_E) ||
        formats.contains(BarcodeFormat.EAN_13) ||
        formats.contains(BarcodeFormat.EAN_8) ||
        formats.contains(BarcodeFormat.CODABAR) ||
        formats.contains(BarcodeFormat.CODE_39) ||
        formats.contains(BarcodeFormat.CODE_93) ||
        formats.contains(BarcodeFormat.CODE_128) ||
        formats.contains(BarcodeFormat.ITF) ||
        formats.contains(BarcodeFormat.RSS_14) ||
        formats.contains(BarcodeFormat.RSS_EXPANDED);
    // Put 1D readers upfront in "normal" mode
    if (addOneDReader && !tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
    if (formats.contains(BarcodeFormat.QR_CODE)) {
      readers.add(new QRCodeReader());
    }
    if (formats.contains(BarcodeFormat.DATA_MATRIX)) {
      readers.add(new DataMatrixReader());
    }
    if (formats.contains(BarcodeFormat.AZTEC)) {
      readers.add(new AztecReader());
    }
    if (formats.contains(BarcodeFormat.PDF_417)) {
       readers.add(new PDF417Reader());
    }
    if (formats.contains(BarcodeFormat.MAXICODE)) {
       readers.add(new MaxiCodeReader());
    }
    // At end in "try harder" mode
    if (addOneDReader && tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  if (readers.isEmpty()) {
    if (!tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }

    readers.add(new QRCodeReader());
    readers.add(new DataMatrixReader());
    readers.add(new AztecReader());
    readers.add(new PDF417Reader());
    readers.add(new MaxiCodeReader());

    if (tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  this.readers = readers.toArray(new Reader[readers.size()]);
}
项目:hive-ios    文件:MultiFormatReader.java   
/**
 * This method adds state to the MultiFormatReader. By setting the hints once, subsequent calls
 * to decodeWithState(image) can reuse the same set of readers without reallocating memory. This
 * is important for performance in continuous scan clients.
 *
 * @param hints The set of hints to use for subsequent calls to decode(image)
 */
public void setHints(Map<DecodeHintType,?> hints) {
  this.hints = hints;

  boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER);
  Collection<BarcodeFormat> formats =
      hints == null ? null : (Collection<BarcodeFormat>) hints.get(DecodeHintType.POSSIBLE_FORMATS);
  Collection<Reader> readers = new ArrayList<Reader>();
  if (formats != null) {
    boolean addOneDReader =
        formats.contains(BarcodeFormat.UPC_A) ||
        formats.contains(BarcodeFormat.UPC_E) ||
        formats.contains(BarcodeFormat.EAN_13) ||
        formats.contains(BarcodeFormat.EAN_8) ||
        formats.contains(BarcodeFormat.CODABAR) ||
        formats.contains(BarcodeFormat.CODE_39) ||
        formats.contains(BarcodeFormat.CODE_93) ||
        formats.contains(BarcodeFormat.CODE_128) ||
        formats.contains(BarcodeFormat.ITF) ||
        formats.contains(BarcodeFormat.RSS_14) ||
        formats.contains(BarcodeFormat.RSS_EXPANDED);
    // Put 1D readers upfront in "normal" mode
    if (addOneDReader && !tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
    if (formats.contains(BarcodeFormat.QR_CODE)) {
      readers.add(new QRCodeReader());
    }
    if (formats.contains(BarcodeFormat.DATA_MATRIX)) {
      readers.add(new DataMatrixReader());
    }
    if (formats.contains(BarcodeFormat.AZTEC)) {
      readers.add(new AztecReader());
    }
    if (formats.contains(BarcodeFormat.PDF_417)) {
       readers.add(new PDF417Reader());
    }
    if (formats.contains(BarcodeFormat.MAXICODE)) {
       readers.add(new MaxiCodeReader());
    }
    // At end in "try harder" mode
    if (addOneDReader && tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  if (readers.isEmpty()) {
    if (!tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }

    readers.add(new QRCodeReader());
    readers.add(new DataMatrixReader());
    readers.add(new AztecReader());
    readers.add(new PDF417Reader());
    readers.add(new MaxiCodeReader());

    if (tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  this.readers = readers.toArray(new Reader[readers.size()]);
}
项目:dev    文件:MultiFormatReader.java   
/**
 * This method adds state to the MultiFormatReader. By setting the hints once, subsequent calls
 * to decodeWithState(image) can reuse the same set of readers without reallocating memory. This
 * is important for performance in continuous scan clients.
 *
 * @param hints The set of hints to use for subsequent calls to decode(image)
 */
public void setHints(Map<DecodeHintType,?> hints) {
  this.hints = hints;

  boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER);
  Collection<BarcodeFormat> formats =
      hints == null ? null : (Collection<BarcodeFormat>) hints.get(DecodeHintType.POSSIBLE_FORMATS);
  Collection<Reader> readers = new ArrayList<Reader>();
  if (formats != null) {
    boolean addOneDReader =
        formats.contains(BarcodeFormat.UPC_A) ||
        formats.contains(BarcodeFormat.UPC_E) ||
        formats.contains(BarcodeFormat.EAN_13) ||
        formats.contains(BarcodeFormat.EAN_8) ||
        formats.contains(BarcodeFormat.CODABAR) ||
        formats.contains(BarcodeFormat.CODE_39) ||
        formats.contains(BarcodeFormat.CODE_93) ||
        formats.contains(BarcodeFormat.CODE_128) ||
        formats.contains(BarcodeFormat.ITF) ||
        formats.contains(BarcodeFormat.RSS_14) ||
        formats.contains(BarcodeFormat.RSS_EXPANDED);
    // Put 1D readers upfront in "normal" mode
    if (addOneDReader && !tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
    if (formats.contains(BarcodeFormat.QR_CODE)) {
      readers.add(new QRCodeReader());
    }
    if (formats.contains(BarcodeFormat.DATA_MATRIX)) {
      readers.add(new DataMatrixReader());
    }
    if (formats.contains(BarcodeFormat.AZTEC)) {
      readers.add(new AztecReader());
    }
    if (formats.contains(BarcodeFormat.PDF_417)) {
       readers.add(new PDF417Reader());
    }
    if (formats.contains(BarcodeFormat.MAXICODE)) {
       readers.add(new MaxiCodeReader());
    }
    // At end in "try harder" mode
    if (addOneDReader && tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  if (readers.isEmpty()) {
    if (!tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }

    readers.add(new QRCodeReader());
    readers.add(new DataMatrixReader());
    readers.add(new AztecReader());
    readers.add(new PDF417Reader());
    readers.add(new MaxiCodeReader());

    if (tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  this.readers = readers.toArray(new Reader[readers.size()]);
}
项目:ZxingCore    文件:MultiFormatReader.java   
/**
 * This method adds state to the MultiFormatReader. By setting the hints once, subsequent calls
 * to decodeWithState(image) can reuse the same set of readers without reallocating memory. This
 * is important for performance in continuous scan clients.
 *
 * @param hints The set of hints to use for subsequent calls to decode(image)
 */
public void setHints(Map<DecodeHintType,?> hints) {
  this.hints = hints;

  boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER);
  @SuppressWarnings("unchecked")
  Collection<BarcodeFormat> formats =
      hints == null ? null : (Collection<BarcodeFormat>) hints.get(DecodeHintType.POSSIBLE_FORMATS);
  Collection<Reader> readers = new ArrayList<Reader>();
  if (formats != null) {
    boolean addOneDReader =
        formats.contains(BarcodeFormat.UPC_A) ||
        formats.contains(BarcodeFormat.UPC_E) ||
        formats.contains(BarcodeFormat.EAN_13) ||
        formats.contains(BarcodeFormat.EAN_8) ||
        formats.contains(BarcodeFormat.CODABAR) ||
        formats.contains(BarcodeFormat.CODE_39) ||
        formats.contains(BarcodeFormat.CODE_93) ||
        formats.contains(BarcodeFormat.CODE_128) ||
        formats.contains(BarcodeFormat.ITF) ||
        formats.contains(BarcodeFormat.RSS_14) ||
        formats.contains(BarcodeFormat.RSS_EXPANDED);
    // Put 1D readers upfront in "normal" mode
    if (addOneDReader && !tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
    if (formats.contains(BarcodeFormat.QR_CODE)) {
      readers.add(new QRCodeReader());
    }
    if (formats.contains(BarcodeFormat.DATA_MATRIX)) {
      readers.add(new DataMatrixReader());
    }
    if (formats.contains(BarcodeFormat.AZTEC)) {
      readers.add(new AztecReader());
    }
    if (formats.contains(BarcodeFormat.PDF_417)) {
       readers.add(new PDF417Reader());
    }
    if (formats.contains(BarcodeFormat.MAXICODE)) {
       readers.add(new MaxiCodeReader());
    }
    // At end in "try harder" mode
    if (addOneDReader && tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  if (readers.isEmpty()) {
    if (!tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }

    readers.add(new QRCodeReader());
    readers.add(new DataMatrixReader());
    readers.add(new AztecReader());
    readers.add(new PDF417Reader());
    readers.add(new MaxiCodeReader());

    if (tryHarder) {
      readers.add(new MultiFormatOneDReader(hints));
    }
  }
  this.readers = readers.toArray(new Reader[readers.size()]);
}