ScannerOptions class

Dynamic Region of Interest (ROI) scanning window rectangle. Configuration options controlling camera detection rate, ROI bounds, duplicate caching, auto-zoom, image enhancement, isolate multi-threading, and enterprise scanning parameters.

Constructors

ScannerOptions({ScanStrategy scanStrategy = ScanStrategy.continuous, ScanWindow? scanWindow = ScanWindow.centerReticle, int frameThrottleMs = 50, int targetFrameRate = 20, bool enableAdaptiveFps = true, bool enableAdaptiveFrameSkipping = true, bool enablePauseOnStaticFrame = true, bool enableProgressiveResolution = true, Duration duplicateTimeout = const Duration(milliseconds: 2000), bool enableDuplicateFilter = true, bool enableDetectionCache = true, Duration detectionCacheTimeout = const Duration(milliseconds: 2000), int frameQueueCapacity = 3, bool enableIsolateProcessing = true, bool enableImageEnhancement = true, bool enableBlurDetection = true, bool enableAutoBrightnessCheck = true, bool autoTorchInLowLight = false, double lowLightThreshold = 0.25, bool enableAutoZoom = true, bool autoResetZoomAfterScan = true, double autoZoomThreshold = 0.15, bool continuousAutofocus = true, bool enableMultiCodeDetection = true, int maxMultiCodeCount = 10, bool enableScanHistory = true, int maxHistorySize = 50, int? maxBatchCount, double minConfidence = 0.70, Rect? rectScanArea, List<String>? allowedFormats, bool enableSound = true, bool enableVibration = true, double torchLevel = 1.0, bool isFocusLocked = false, bool enableAutoCapture = true, double autoCaptureQualityThreshold = 0.85, int autoCaptureSteadyFrames = 3, bool enableMultiFrameConsensus = true, int consensusFrameCount = 3, double consensusAccuracyThreshold = 0.98, bool enableAdaptiveRoi = true, bool enableEncryptedStorage = false, String? encryptionPassword, bool enableCloudSync = false, String? cloudSyncEndpoint, bool enableWatermark = false, String? watermarkText, double imageCompressionQuality = 0.85, String exportFormat = 'pdf', int isolatePoolSize = 2, int frameQueueDepth = 3, bool enableMultiPassOcr = true, int multiPassOcrCount = 3, bool enableBarcodeFallbackDecoder = true, int barcodeFallbackTimeoutMs = 200, bool enableGlareDetection = true, double glareThreshold = 0.05, bool enableCoverageCheck = true, double coverageMinRatio = 0.15, bool enableAdaptivePreprocessing = true, bool enableTenengradBlur = true})
Constructs a ScannerOptions instance.
const
ScannerOptions.custom({ScanStrategy scanStrategy = ScanStrategy.continuous, ScanWindow? scanWindow = ScanWindow.centerReticle, Rect? scanArea, bool? allowDuplicates, Duration? duplicateDelay, int frameThrottleMs = 50, int targetFrameRate = 20, bool enableAdaptiveFps = true, bool enableAdaptiveFrameSkipping = true, bool enablePauseOnStaticFrame = true, bool enableProgressiveResolution = true, Duration duplicateTimeout = const Duration(milliseconds: 2000), bool enableDuplicateFilter = true, bool enableDetectionCache = true, Duration detectionCacheTimeout = const Duration(milliseconds: 2000), int frameQueueCapacity = 3, bool enableIsolateProcessing = true, bool enableImageEnhancement = true, bool enableBlurDetection = true, bool enableAutoBrightnessCheck = true, bool autoTorchInLowLight = false, double lowLightThreshold = 0.25, bool enableAutoZoom = true, bool autoResetZoomAfterScan = true, double autoZoomThreshold = 0.15, bool continuousAutofocus = true, bool enableMultiCodeDetection = true, int maxMultiCodeCount = 10, bool enableScanHistory = true, int maxHistorySize = 50, int? maxBatchCount, double minConfidence = 0.70, List<String>? allowedFormats, bool enableSound = true, bool enableVibration = true, double torchLevel = 1.0, bool isFocusLocked = false, bool enableAutoCapture = true, double autoCaptureQualityThreshold = 0.85, int autoCaptureSteadyFrames = 3, bool enableMultiFrameConsensus = true, int consensusFrameCount = 3, double consensusAccuracyThreshold = 0.98, bool enableAdaptiveRoi = true})
Factory constructor supporting explicit scanArea, allowDuplicates, and duplicateDelay parameters.
factory

Properties

allowDuplicates bool
Alias getter for duplicate filter setting (inverted).
no setter
allowedFormats List<String>?
Optional whitelist of allowed barcode format symbologies (e.g. 'QR_CODE', 'EAN_13', 'PDF417').
final
autoCaptureQualityThreshold double
Quality score threshold (0.0 to 1.0) required to trigger auto capture.
final
autoCaptureSteadyFrames int
Number of consecutive stable high-quality frames required for auto capture.
final
autoResetZoomAfterScan bool
Automatically reset digital zoom back to 1.0x after successful scan emission.
final
autoTorchInLowLight bool
Automatically switch flashlight on when ambient light drops below threshold.
final
autoZoomThreshold double
Code-to-viewport area ratio below which auto-zoom triggers (e.g., 0.15 = 15%).
final
barcodeFallbackTimeoutMs int
Timeout in ms before barcode fallback decoder gives up.
final
cloudSyncEndpoint String?
REST API endpoint URL for cloud sync (required if enableCloudSync is true).
final
consensusAccuracyThreshold double
Target accuracy confidence threshold (e.g. 0.98 = 98%) required for consensus emission.
final
consensusFrameCount int
Number of sequential frames accumulated for temporal consensus voting.
final
continuousAutofocus bool
Whether continuous autofocus mode is enabled.
final
coverageMinRatio double
Minimum quad area / frame area ratio for valid coverage.
final
detectionCacheTimeout Duration
Timeout duration for detection cache entries.
final
duplicateDelay Duration
Alias getter for duplicate timeout delay.
no setter
duplicateTimeout Duration
Timeout duration during which identical scanned payloads are ignored.
final
enableAdaptiveFps bool
Dynamically adjust frame processing rate based on detection state (Searching: 30 FPS, Detected: 15 FPS, Idle: 10 FPS).
final
enableAdaptiveFrameSkipping bool
Dynamically adjust frame skipping based on device processing load & latency.
final
enableAdaptivePreprocessing bool
Enable adaptive preprocessing (auto-selects best pipeline per frame).
final
enableAdaptiveRoi bool
Dynamic Region of Interest (ROI) adjustment based on detected target bounding box.
final
enableAutoBrightnessCheck bool
Analyze frame luminosity and emit low-light alert if below threshold.
final
enableAutoCapture bool
Whether enterprise document auto capture is enabled when quality threshold is met.
final
enableAutoZoom bool
Automatically trigger digital camera zoom when small barcodes are detected far away.
final
enableBarcodeFallbackDecoder bool
Enable standalone barcode fallback decoder (ZXing-style) when ML Kit fails.
final
enableBlurDetection bool
Evaluate frame sharpness score to trigger auto-refocus if blurred.
final
enableCloudSync bool
Whether to enable cloud synchronization of scan results.
final
enableCoverageCheck bool
Enable document coverage ratio checking for auto-capture.
final
enableDetectionCache bool
Enable in-memory LRU detection cache to bypass duplicate frame decoding.
final
enableDuplicateFilter bool
Whether duplicate filtering is enabled.
final
enableEncryptedStorage bool
Whether to encrypt scan results before local storage.
final
enableGlareDetection bool
Enable specular glare/reflection detection.
final
enableImageEnhancement bool
Apply brightness normalization, contrast enhancement, sharpening, and denoising in isolate.
final
enableIsolateProcessing bool
Offload YUV/NV21 image conversions, ROI cropping, and image enhancement to background isolate.
final
enableMultiCodeDetection bool
Allow detecting multiple barcodes/QR codes in a single image pass.
final
enableMultiFrameConsensus bool
Whether multi-frame temporal consensus voting is enabled to achieve 98-99% OCR accuracy.
final
enableMultiPassOcr bool
Enable multi-pass OCR with different preprocessing per pass.
final
enablePauseOnStaticFrame bool
Automatically skip vision engine analysis when scene remains static.
final
enableProgressiveResolution bool
Enable progressive camera resolution escalation (640x480 -> 1280x720 -> 1920x1080).
final
enableScanHistory bool
Retain in-memory log of recent scan results.
final
enableSound bool
Whether audio beep feedback is emitted on scan success/failure.
final
enableTenengradBlur bool
Enable Tenengrad blur detection (more robust than Laplacian).
final
enableVibration bool
Whether haptic vibration feedback is triggered on scan success/failure.
final
enableWatermark bool
Whether to apply watermark to scanned document exports.
final
encryptionPassword String?
Password for encrypted scan storage (required if enableEncryptedStorage is true).
final
exportFormat String
Default export format for scan results (pdf, jpg, png).
final
frameQueueCapacity int
Maximum frame buffer queue size to prevent memory backlog.
final
frameQueueDepth int
Maximum pending frames in the processing queue before dropping.
final
frameThrottleMs int
Minimum delay in milliseconds between consecutive frame analysis passes. (e.g. 50ms = max 20 detections/sec for optimal CPU & battery usage).
final
glareThreshold double
Maximum fraction of hot pixels before glare warning (0.0-1.0).
final
hashCode int
The hash code for this object.
no setterinherited
imageCompressionQuality double
Image compression quality factor (0.0 = max compression, 1.0 = no compression).
final
isFocusLocked bool
Whether camera focus is currently locked to prevent hunting.
final
isolatePoolSize int
Number of persistent isolates in the processing pool (1-4).
final
lowLightThreshold double
Normalized ambient luminosity threshold (0.0 to 1.0) for low-light detection.
final
maxBatchCount int?
Optional maximum items limit in batch inventory mode.
final
maxHistorySize int
Maximum scan history capacity.
final
maxMultiCodeCount int
Maximum number of codes to return in a multi-code pass.
final
minConfidence double
Minimum confidence required to accept a scan result (0.0 to 1.0).
final
multiPassOcrCount int
Number of OCR passes to run per frame (2-4).
final
rectScanArea Rect?
Optional explicit pixel/coordinate scan rectangle restriction area.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
scanArea Rect?
Explicit pixel area ROI scan bounds (alias for rectScanArea).
no setter
scanStrategy ScanStrategy
Active result handling strategy (single, continuous, batch).
final
scanWindow ScanWindow?
Restrict image analysis strictly to this sub-region cutout (ROI).
final
targetFrameRate int
Target frame processing rate in frames per second (e.g. 15-30 FPS).
final
torchLevel double
Flashlight torch intensity brightness level (0.0 to 1.0).
final
watermarkText String?
Watermark text to apply on exported documents.
final

Methods

copyWith({ScanStrategy? scanStrategy, ScanWindow? scanWindow, int? frameThrottleMs, int? targetFrameRate, bool? enableAdaptiveFps, bool? enableAdaptiveFrameSkipping, bool? enablePauseOnStaticFrame, bool? enableProgressiveResolution, Duration? duplicateTimeout, bool? enableDuplicateFilter, bool? enableDetectionCache, Duration? detectionCacheTimeout, int? frameQueueCapacity, bool? enableIsolateProcessing, bool? enableImageEnhancement, bool? enableBlurDetection, bool? enableAutoBrightnessCheck, bool? autoTorchInLowLight, double? lowLightThreshold, bool? enableAutoZoom, bool? autoResetZoomAfterScan, double? autoZoomThreshold, bool? continuousAutofocus, bool? enableMultiCodeDetection, int? maxMultiCodeCount, bool? enableScanHistory, int? maxHistorySize, int? maxBatchCount, double? minConfidence, Rect? rectScanArea, List<String>? allowedFormats, bool? enableSound, bool? enableVibration, double? torchLevel, bool? isFocusLocked, bool? enableAutoCapture, double? autoCaptureQualityThreshold, int? autoCaptureSteadyFrames, bool? enableMultiFrameConsensus, int? consensusFrameCount, double? consensusAccuracyThreshold, bool? enableAdaptiveRoi, bool? enableEncryptedStorage, String? encryptionPassword, bool? enableCloudSync, String? cloudSyncEndpoint, bool? enableWatermark, String? watermarkText, double? imageCompressionQuality, String? exportFormat}) ScannerOptions
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited

Constants

batterySaver → const ScannerOptions
Battery-saver preset for background/inventory batch scanning.
highPerformance → const ScannerOptions
High-performance preset optimized for speed and low CPU consumption.