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