Skip to content

Commit

Permalink
feat: allow retrieval of last processed image
Browse files Browse the repository at this point in the history
  • Loading branch information
triniwiz committed Jan 18, 2022
1 parent 98c2ebc commit f98e08d
Show file tree
Hide file tree
Showing 14 changed files with 656 additions and 585 deletions.
2 changes: 1 addition & 1 deletion packages/mlkit-barcode-scanning/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@nativescript/mlkit-barcode-scanning",
"version": "1.0.0-alpha.5",
"version": "1.0.0-alpha.6",
"description": "NativeScript MLKit Barcode Scanner module",
"main": "index",
"typings": "index.d.ts",
Expand Down
163 changes: 78 additions & 85 deletions packages/mlkit-core/common.ts
Original file line number Diff line number Diff line change
@@ -1,157 +1,150 @@
import { booleanConverter, ContainerView, CSSType, Property } from '@nativescript/core';
import { booleanConverter, ContainerView, CSSType, ImageSource, Property } from '@nativescript/core';

export enum DetectionType {
Barcode = "barcode",
DigitalInk = "digitalInk",
Face = "face",
Image = "image",
Object = "object",
Pose = "pose",
Text = "text",
All = "all",
Selfie = "selfie",
None = "none"
Barcode = 'barcode',
DigitalInk = 'digitalInk',
Face = 'face',
Image = 'image',
Object = 'object',
Pose = 'pose',
Text = 'text',
All = 'all',
Selfie = 'selfie',
None = 'none',
}

export enum CameraPosition {
FRONT = 'front',
BACK = 'back'
FRONT = 'front',
BACK = 'back',
}


export enum BarcodeFormats {
ALL = 'all',
CODE_128 = 'code_128',
CODE_39 = 'code_39',
CODE_93 = 'code_93',
CODABAR = 'codabar',
DATA_MATRIX = 'data_matrix',
EAN_13 = 'ean_13',
EAN_8 = 'ean_8',
ITF = 'itf',
QR_CODE = 'qr_code',
UPC_A = 'upc_a',
UPC_E = 'upc_e',
PDF417 = 'pdf417',
AZTEC = 'aztec',
UNKOWN = 'unknown'
ALL = 'all',
CODE_128 = 'code_128',
CODE_39 = 'code_39',
CODE_93 = 'code_93',
CODABAR = 'codabar',
DATA_MATRIX = 'data_matrix',
EAN_13 = 'ean_13',
EAN_8 = 'ean_8',
ITF = 'itf',
QR_CODE = 'qr_code',
UPC_A = 'upc_a',
UPC_E = 'upc_e',
PDF417 = 'pdf417',
AZTEC = 'aztec',
UNKOWN = 'unknown',
}


export enum FaceDetectionPerformanceMode {
Fast = 'fast',
Accurate = 'accurate'
Fast = 'fast',
Accurate = 'accurate',
}

@CSSType('MLKitView')
export class MLKitViewBase extends ContainerView {
static detectionEvent = 'detection';
cameraPosition: CameraPosition;
detectionType: DetectionType;
barcodeFormats: BarcodeFormats[];
faceDetectionPerformanceMode: FaceDetectionPerformanceMode;
faceDetectionTrackingEnabled: boolean;
faceDetectionMinFaceSize: number;
imageLabelerConfidenceThreshold: number;
objectDetectionMultiple: boolean;
objectDetectionClassify: boolean;
torchOn: boolean;
pause: boolean;
processEveryNthFrame: number;
static detectionEvent = 'detection';
cameraPosition: CameraPosition;
detectionType: DetectionType;
barcodeFormats: BarcodeFormats[];
faceDetectionPerformanceMode: FaceDetectionPerformanceMode;
faceDetectionTrackingEnabled: boolean;
faceDetectionMinFaceSize: number;
imageLabelerConfidenceThreshold: number;
objectDetectionMultiple: boolean;
objectDetectionClassify: boolean;
torchOn: boolean;
pause: boolean;
processEveryNthFrame: number;
readonly latestImage?: ImageSource;
retrieveLatestImage: boolean;
}

export const cameraPositionProperty = new Property<MLKitViewBase, CameraPosition>({
name: 'cameraPosition',
defaultValue: CameraPosition.BACK
name: 'cameraPosition',
defaultValue: CameraPosition.BACK,
});

cameraPositionProperty.register(MLKitViewBase);

export const detectionTypeProperty = new Property<MLKitViewBase, DetectionType>({
name: 'detectionType',
defaultValue: DetectionType.None
name: 'detectionType',
defaultValue: DetectionType.None,
});

detectionTypeProperty.register(MLKitViewBase);

export const barcodeFormatsProperty = new Property<MLKitViewBase, BarcodeFormats[]>({
name: 'barcodeFormats',
defaultValue: [BarcodeFormats.ALL]
})
name: 'barcodeFormats',
defaultValue: [BarcodeFormats.ALL],
});

barcodeFormatsProperty.register(MLKitViewBase);


export const faceDetectionPerformanceModeProperty = new Property<MLKitViewBase, FaceDetectionPerformanceMode>({
name: 'faceDetectionPerformanceMode',
defaultValue: FaceDetectionPerformanceMode.Fast
})
name: 'faceDetectionPerformanceMode',
defaultValue: FaceDetectionPerformanceMode.Fast,
});

faceDetectionPerformanceModeProperty.register(MLKitViewBase);


export const faceDetectionTrackingEnabledProperty = new Property<MLKitViewBase, boolean>({
name: 'faceDetectionTrackingEnabled',
defaultValue: false,
valueConverter: booleanConverter
name: 'faceDetectionTrackingEnabled',
defaultValue: false,
valueConverter: booleanConverter,
});

faceDetectionTrackingEnabledProperty.register(MLKitViewBase);


export const faceDetectionMinFaceSizeProperty = new Property<MLKitViewBase, number>({
name: 'faceDetectionMinFaceSize',
defaultValue: 0.1
})
name: 'faceDetectionMinFaceSize',
defaultValue: 0.1,
});

faceDetectionMinFaceSizeProperty.register(MLKitViewBase);


export const imageLabelerConfidenceThresholdProperty = new Property<MLKitViewBase, number>({
name: 'imageLabelerConfidenceThreshold',
defaultValue: 0.5
name: 'imageLabelerConfidenceThreshold',
defaultValue: 0.5,
});

imageLabelerConfidenceThresholdProperty.register(MLKitViewBase);

export const objectDetectionMultipleProperty = new Property<MLKitViewBase, boolean>({
name: 'objectDetectionMultiple',
defaultValue: false,
valueConverter: booleanConverter
name: 'objectDetectionMultiple',
defaultValue: false,
valueConverter: booleanConverter,
});

objectDetectionMultipleProperty.register(MLKitViewBase);


export const objectDetectionClassifyProperty = new Property<MLKitViewBase, boolean>({
name: 'objectDetectionClassify',
defaultValue: false,
valueConverter: booleanConverter
name: 'objectDetectionClassify',
defaultValue: false,
valueConverter: booleanConverter,
});

objectDetectionClassifyProperty.register(MLKitViewBase);


export const torchOnProperty = new Property<MLKitViewBase, boolean>({
name: 'torchOn',
defaultValue: false,
valueConverter: booleanConverter
name: 'torchOn',
defaultValue: false,
valueConverter: booleanConverter,
});

torchOnProperty.register(MLKitViewBase);


export const pauseProperty = new Property<MLKitViewBase, boolean>({
name: 'pause',
defaultValue: false,
valueConverter: booleanConverter
name: 'pause',
defaultValue: false,
valueConverter: booleanConverter,
});

pauseProperty.register(MLKitViewBase);

export const processEveryNthFrameProperty = new Property<MLKitViewBase, number>({
name: 'processEveryNthFrame',
defaultValue: 0
name: 'processEveryNthFrame',
defaultValue: 0,
});

processEveryNthFrameProperty.register(MLKitViewBase);
processEveryNthFrameProperty.register(MLKitViewBase);

0 comments on commit f98e08d

Please sign in to comment.