UNPKG

scandit-sdk

Version:

Scandit Barcode Scanner SDK for the Web

371 lines (370 loc) 15.5 kB
import { Barcode } from "./barcode"; import { SearchArea } from "./searchArea"; import { SymbologySettings } from "./symbologySettings"; import { TextRecognitionSettings } from "./textRecognitionSettings"; /** * @hidden */ declare type SymbologyParameter = Barcode.Symbology | Barcode.Symbology[] | Set<Barcode.Symbology>; /** * A configuration object for scanning options. * * Modified [[ScanSettings]] need to be applied to a scanner via * [[BarcodePicker.applyScanSettings]] or [[Scanner.applyScanSettings]] to take effect. */ export declare class ScanSettings { private readonly symbologySettings; private readonly properties; private textRecognitionSettings; private recognitionMode; private codeDuplicateFilter; private maxNumberOfCodesPerFrame; private baseSearchArea; private searchArea; private gpuAcceleration; private blurryRecognition; private codeDirectionHint; private deviceName?; /** * Create a ScanSettings instance. * * @param textRecognitionSettings <div class="tsd-signature-symbol">Default =&nbsp;new TextRecognitionSettings()</div> * The configuration object for text recognition options (text recognition disabled by default). * @param recognitionMode <div class="tsd-signature-symbol">Default =&nbsp;RecognitionMode.CODE</div> * The recognition mode deciding whether codes and/or text are recognized. * @param enabledSymbologies <div class="tsd-signature-symbol">Default =&nbsp;[]</div> * The single symbology or list/set of symbologies that should be initialized as enabled for recognition. * @param codeDuplicateFilter <div class="tsd-signature-symbol">Default =&nbsp;0</div> * The duplicate filter specifying how often a code can be scanned. * When the filter is set to -1, each unique code is only scanned once. When set to 0, * duplicate filtering is disabled. Otherwise the duplicate filter specifies an interval in milliseconds. * When the same code (data/symbology) is scanned within the specified interval it is filtered out as a duplicate. * @param maxNumberOfCodesPerFrame <div class="tsd-signature-symbol">Default =&nbsp;1</div> * The maximum number of barcodes to be recognized every frame. * @param searchArea <div class="tsd-signature-symbol">Default =&nbsp;{ x: 0, y: 0, width: 1.0, height: 1.0 }</div> * The area of the image in which barcodes/texts are searched. * @param gpuAcceleration <div class="tsd-signature-symbol">Default =&nbsp;true</div> * Whether to enable/disable GPU support via WebGL, to provide faster and more accurate barcode localization. * The GPU can and will be used only if the browser also supports the needed technologies * ([WebGL](https://caniuse.com/#feat=webgl) and [OffscreenCanvas](https://caniuse.com/#feat=offscreencanvas)). * @param blurryRecognition <div class="tsd-signature-symbol">Default =&nbsp;true</div> * Whether to enable/disable barcode blurry recognition, to allow accurate scanning capabilities for out-of-focus (1D) * codes. If enabled, more advanced algorithms are executed (and more resources/time is spent) every frame in order * to successfully locate/scan difficult codes. * @param codeDirectionHint <div class="tsd-signature-symbol">Default =&nbsp;CodeDirection.LEFT_TO_RIGHT</div> * The code direction hint telling in what direction 1D codes are most likely orientated. * More advanced algorithms are executed (and more resources/time is spent) every frame in order to successfully * locate/scan difficult codes for each of the possible directions resulting by the direction hint. Note that this * results in slow performance for `none` hints, average performance for `horizontal` and `vertical` hints and fast * performance for the remaining hints. * @param deviceName <div class="tsd-signature-symbol">Default =&nbsp;undefined</div> * The descriptive device name to identify the current device when looking at analytics tools. */ constructor({ textRecognitionSettings, recognitionMode, enabledSymbologies, codeDuplicateFilter, maxNumberOfCodesPerFrame, searchArea, gpuAcceleration, blurryRecognition, codeDirectionHint, deviceName, }?: { textRecognitionSettings?: TextRecognitionSettings; recognitionMode?: ScanSettings.RecognitionMode; enabledSymbologies?: SymbologyParameter; codeDuplicateFilter?: number; maxNumberOfCodesPerFrame?: number; searchArea?: SearchArea; gpuAcceleration?: boolean; blurryRecognition?: boolean; codeDirectionHint?: ScanSettings.CodeDirection; deviceName?: string; }); /** * @returns The configuration object as a JSON string. */ toJSONString(): string; /** * Get the current text recognition settings. * * @returns The text recognition settings. */ getTextRecognitionSettings(): TextRecognitionSettings; /** * Set the text recognition settings. * * Note that modified [[ScanSettings]] (due to [[TextRecognitionSettings]] changes) need to be applied to a scanner * via [[BarcodePicker.applyScanSettings]] or [[Scanner.applyScanSettings]] to take effect. * * @param textRecognitionSettings The new text recognition settings. * @returns The updated [[ScanSettings]] object. */ setTextRecognitionSettings(textRecognitionSettings: TextRecognitionSettings): ScanSettings; /** * Get the recognition mode deciding whether codes and/or text are recognized. * * @returns The recognition mode. */ getRecognitionMode(): ScanSettings.RecognitionMode; /** * Set the recognition mode deciding whether codes and/or text are recognized. * * @param recognitionMode The new recognition mode. * @returns The updated [[ScanSettings]] object. */ setRecognitionMode(recognitionMode: ScanSettings.RecognitionMode): ScanSettings; /** * Get the configuration object for a symbology (which can then be modified). * * @param symbology The symbology for which to retrieve the configuration. * @returns The symbology configuration object for the specified symbology. */ getSymbologySettings(symbology: Barcode.Symbology): SymbologySettings; /** * Get the recognition enabled status for a symbology. * * By default no symbologies are enabled. * * @param symbology The symbology for which to retrieve the recognition enabled status. * @returns Whether the symbology enabled for recognition. */ isSymbologyEnabled(symbology: Barcode.Symbology): boolean; /** * Enable recognition of a symbology or list/set of symbologies. * * By default no symbologies are enabled. * * @param symbology The single symbology or list/set of symbologies to enable. * @returns The updated [[ScanSettings]] object. */ enableSymbologies(symbology: SymbologyParameter): ScanSettings; /** * Disable recognition of a symbology or list/set of symbologies. * * By default no symbologies are enabled. * * @param symbology The single symbology or list/set of symbologies to disable. * @returns The updated [[ScanSettings]] object. */ disableSymbologies(symbology: SymbologyParameter): ScanSettings; /** * Get the code duplicate filter value. * * By default duplicate filtering is disabled. * * @returns The code duplicate filter value. */ getCodeDuplicateFilter(): number; /** * Set the code duplicate filter value. * * When the filter is set to -1, each unique code is only scanned once. When set to 0, * duplicate filtering is disabled. Otherwise the duplicate filter specifies an interval in milliseconds. * * By default duplicate filtering is disabled. * * @param durationMilliseconds The new value (-1, 0, or positive integer). * @returns The updated [[ScanSettings]] object. */ setCodeDuplicateFilter(durationMilliseconds: number): ScanSettings; /** * Get the maximum number of barcodes to be recognized every frame. * * By default the maximum number of barcodes per frame is 1. * * @returns The maximum number of barcodes per frame. */ getMaxNumberOfCodesPerFrame(): number; /** * Set the maximum number of barcodes to be recognized every frame. * * By default the maximum number of barcodes per frame is 1. * * @param limit The new maximum number of barcodes per frame alue (non-zero positive integer). * @returns The updated [[ScanSettings]] object. */ setMaxNumberOfCodesPerFrame(limit: number): ScanSettings; /** * Get the area of the image in which barcodes/texts are searched. * * By default the whole area is searched. * * @returns The search area. */ getSearchArea(): SearchArea; /** * Set the area of the image in which barcodes/texts are searched. * * By default the whole area is searched. * * @param searchArea The new search area. * @returns The updated [[ScanSettings]] object. */ setSearchArea(searchArea: SearchArea): ScanSettings; /** * @hidden * * @returns The base area of the image in which barcodes/texts are searched. */ getBaseSearchArea(): SearchArea; /** * @hidden * * Set the base area of the image in which barcodes/texts are searched, this is set automatically by a * [[BarcodePicker]] and is combined with the searchArea to obtain the final combined search area. * * @param baseSearchArea The new base search area. * @returns The updated [[ScanSettings]] object. */ setBaseSearchArea(baseSearchArea: SearchArea): ScanSettings; /** * Get the GPU acceleration enabled status. * * By default GPU acceleration is enabled. * * @returns Whether GPU acceleration is configured to be enabled ot not. */ isGpuAccelerationEnabled(): boolean; /** * Enable or disable GPU acceleration. * * By default GPU acceleration is enabled. * * Provide faster and more accurate barcode localization. * The GPU will in any case be used only if the browser also supports the needed technologies * ([WebGL](https://caniuse.com/#feat=webgl) and [OffscreenCanvas](https://caniuse.com/#feat=offscreencanvas)). * * @param enabled Whether to enable or disable GPU acceleration. * @returns The updated [[ScanSettings]] object. */ setGpuAccelerationEnabled(enabled: boolean): ScanSettings; /** * Get the barcode blurry recognition enabled status. * * By default barcode blurry recognition is enabled. * * @returns Whether barcode blurry recognition is configured to be enabled ot not. */ isBlurryRecognitionEnabled(): boolean; /** * Enable or disable barcode blurry recognition. * * Allow accurate scanning capabilities for out-of-focus (1D) codes. * If enabled, more advanced algorithms are executed (and more resources/time is spent) every frame in order * to successfully locate/scan difficult codes. * * By default barcode blurry recognition is enabled. * * @param enabled Whether to enable or disable barcode blurry recognition. * @returns The updated [[ScanSettings]] object. */ setBlurryRecognitionEnabled(enabled: boolean): ScanSettings; /** * Get the code direction hint telling in what direction 1D codes are most likely orientated. * * By default `left-to-right` is used. * * @returns The code direction hint. */ getCodeDirectionHint(): ScanSettings.CodeDirection; /** * Set the code direction hint telling in what direction 1D codes are most likely orientated. * * More advanced algorithms are executed (and more resources/time is spent) every frame in order to successfully * locate/scan difficult codes for each of the possible directions resulting by the direction hint. Note that this * results in slow performance for `none` hints, average performance for `horizontal` and `vertical` hints and fast * performance for the remaining hints. * * By default `left-to-right` is used. * * @param codeDirectionHint The new code direction hint. * @returns The updated [[ScanSettings]] object. */ setCodeDirectionHint(codeDirectionHint: ScanSettings.CodeDirection): ScanSettings; /** * Get the descriptive device name to identify the current device when looking at analytics tools. * * By default no name is used (the device is identified by its unique ID only). * * @returns The device name. */ getDeviceName(): string | undefined; /** * Set the descriptive device name to identify the current device when looking at analytics tools. * * By default no name is used (the device is identified by its unique ID only). * * @param deviceName The new device name. * @returns The updated [[ScanSettings]] object. */ setDeviceName(deviceName: string | undefined): ScanSettings; /** * Get a Scandit Data Capture library scanning property. * * This function is for internal use only and any functionality that can be accessed through it can and will vanish * without public notice from one version to the next. Do not call this function unless you specifically have to. * * @param key The property name. * @returns The property value. For properties not previously set, -1 is returned. */ getProperty(key: string): number; /** * Set a Scandit Data Capture library scanning property. * * This function is for internal use only and any functionality that can be accessed through it can and will vanish * without public notice from one version to the next. Do not call this function unless you specifically have to. * * @param key The property name. * @param value The property value. * @returns The updated [[ScanSettings]] object. */ setProperty(key: string, value: number): ScanSettings; private setSingleSymbologyEnabled; private setMultipleSymbologiesEnabled; private setSymbologiesEnabled; } export declare namespace ScanSettings { /** * Scanning recognition mode. */ enum RecognitionMode { /** * Codes only. */ CODE = "code", /** * Text only. */ TEXT = "text", /** * Codes and text at the same time. */ CODE_AND_TEXT = "code-and-text" } /** * Code direction used to hint 1D codes' orientation. */ enum CodeDirection { /** * Left to right. */ LEFT_TO_RIGHT = "left-to-right", /** * Right to left. */ RIGHT_TO_LEFT = "right-to-left", /** * Bottom to top. */ BOTTOM_TO_TOP = "bottom-to-top", /** * Top to bottom. */ TOP_TO_BOTTOM = "top-to-bottom", /** * Left to right or right to left. */ HORIZONTAL = "horizontal", /** * Bottom to top or top to bottom. */ VERTICAL = "vertical", /** * Unknown. */ NONE = "none" } } export {};