// Copyright 2016-present 650 Industries. All rights reserved. #import #import @implementation EXBarCodeScannerUtils + (NSDictionary *)validBarCodeTypes { return @{ @"upc_e" : AVMetadataObjectTypeUPCECode, @"code39" : AVMetadataObjectTypeCode39Code, @"code39mod43" : AVMetadataObjectTypeCode39Mod43Code, @"ean13" : AVMetadataObjectTypeEAN13Code, @"ean8" : AVMetadataObjectTypeEAN8Code, @"code93" : AVMetadataObjectTypeCode93Code, @"code128" : AVMetadataObjectTypeCode128Code, @"pdf417" : AVMetadataObjectTypePDF417Code, @"qr" : AVMetadataObjectTypeQRCode, @"aztec" : AVMetadataObjectTypeAztecCode, @"interleaved2of5" : AVMetadataObjectTypeInterleaved2of5Code, @"itf14" : AVMetadataObjectTypeITF14Code, @"datamatrix" : AVMetadataObjectTypeDataMatrixCode, }; } + (AVCaptureVideoOrientation)videoOrientationForInterfaceOrientation:(UIInterfaceOrientation)orientation { switch (orientation) { case UIInterfaceOrientationPortrait: return AVCaptureVideoOrientationPortrait; case UIInterfaceOrientationPortraitUpsideDown: return AVCaptureVideoOrientationPortraitUpsideDown; case UIInterfaceOrientationLandscapeRight: return AVCaptureVideoOrientationLandscapeRight; case UIInterfaceOrientationLandscapeLeft: return AVCaptureVideoOrientationLandscapeLeft; default: return 0; } } + (AVCaptureDevice *)deviceWithMediaType:(AVMediaType)mediaType preferringPosition:(AVCaptureDevicePosition)position { return [AVCaptureDevice defaultDeviceWithDeviceType:AVCaptureDeviceTypeBuiltInWideAngleCamera mediaType:mediaType position:position]; } @end