1// Copyright 2016-present 650 Industries. All rights reserved.
2
3#import <AVFoundation/AVFoundation.h>
4#import <EXBarCodeScanner/EXBarCodeScannerUtils.h>
5
6@implementation EXBarCodeScannerUtils
7
8+ (NSDictionary *)validBarCodeTypes
9{
10  return @{
11           @"upc_e" : AVMetadataObjectTypeUPCECode,
12           @"code39" : AVMetadataObjectTypeCode39Code,
13           @"code39mod43" : AVMetadataObjectTypeCode39Mod43Code,
14           @"ean13" : AVMetadataObjectTypeEAN13Code,
15           @"ean8" : AVMetadataObjectTypeEAN8Code,
16           @"code93" : AVMetadataObjectTypeCode93Code,
17           @"code128" : AVMetadataObjectTypeCode128Code,
18           @"pdf417" : AVMetadataObjectTypePDF417Code,
19           @"qr" : AVMetadataObjectTypeQRCode,
20           @"aztec" : AVMetadataObjectTypeAztecCode,
21           @"interleaved2of5" : AVMetadataObjectTypeInterleaved2of5Code,
22           @"itf14" : AVMetadataObjectTypeITF14Code,
23           @"datamatrix" : AVMetadataObjectTypeDataMatrixCode,
24           };
25}
26
27+ (AVCaptureVideoOrientation)videoOrientationForInterfaceOrientation:(UIInterfaceOrientation)orientation
28{
29  switch (orientation) {
30    case UIInterfaceOrientationPortrait:
31      return AVCaptureVideoOrientationPortrait;
32    case UIInterfaceOrientationPortraitUpsideDown:
33      return AVCaptureVideoOrientationPortraitUpsideDown;
34    case UIInterfaceOrientationLandscapeRight:
35      return AVCaptureVideoOrientationLandscapeRight;
36    case UIInterfaceOrientationLandscapeLeft:
37      return AVCaptureVideoOrientationLandscapeLeft;
38    default:
39      return 0;
40  }
41}
42
43+ (AVCaptureDevice *)deviceWithMediaType:(AVMediaType)mediaType
44                      preferringPosition:(AVCaptureDevicePosition)position
45{
46  return [AVCaptureDevice defaultDeviceWithDeviceType:AVCaptureDeviceTypeBuiltInWideAngleCamera mediaType:mediaType position:position];
47}
48
49@end
50