diff --git a/Example/PodApp/Podfile.lock b/Example/PodApp/Podfile.lock index 9f5a634..f25051b 100644 --- a/Example/PodApp/Podfile.lock +++ b/Example/PodApp/Podfile.lock @@ -1,6 +1,6 @@ PODS: - Sections (0.8.0) - - SplitScreenScanner (10.0.2): + - SplitScreenScanner (10.0.3): - Sections DEPENDENCIES: @@ -16,7 +16,7 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: Sections: efc268a207d0e7afba82d2a0efd6cdf61872b5d4 - SplitScreenScanner: 013b34ebf4af03a51e2685a7f87051c9f2cdb6b3 + SplitScreenScanner: 982b1008140faf652295c1ee5541e0f6aa002bfa PODFILE CHECKSUM: a50e47e37e36a517f8de6ae75d836fb0fdfdecfd diff --git a/Sources/SplitScreenScanner/Classes/ContinuousBarcodeScanner.swift b/Sources/SplitScreenScanner/Classes/ContinuousBarcodeScanner.swift index 1f6d5c8..82cb656 100644 --- a/Sources/SplitScreenScanner/Classes/ContinuousBarcodeScanner.swift +++ b/Sources/SplitScreenScanner/Classes/ContinuousBarcodeScanner.swift @@ -35,7 +35,8 @@ final class ContinuousBarcodeScanner { metadataOutput.setMetadataObjectsDelegate(self, queue: metadataQueue) } - func startRunning(barcodeScannedClosure: @escaping BarcodeScannedClosure) { + func startRunning(rectOfInterest: CGRect, _ barcodeScannedClosure: @escaping BarcodeScannedClosure) { + metadataOutput.rectOfInterest = rectOfInterest metadataOutput.metadataObjectTypes = metadataOutput.availableMetadataObjectTypes self.barcodeScannedClosure = barcodeScannedClosure } @@ -99,7 +100,23 @@ final class ContinuousBarcodeScanner { captureSession.addInput(videoInput) previewLayer = AVCaptureVideoPreviewLayer(session: captureSession) - previewLayer.frame = previewView.bounds + + if previewView.bounds.height > previewView.bounds.width { + previewLayer.frame = .init( + x: 0, + y: 0, + width: previewView.bounds.height, + height: previewView.bounds.width + ) + } else { + previewLayer.frame = .init( + x: 0, + y: 0, + width: previewView.bounds.width, + height: previewView.bounds.height + ) + } + previewLayer.videoGravity = .resizeAspectFill metadataCapture = MetadataContinousCapture() @@ -161,7 +178,8 @@ extension ContinuousBarcodeScanner { func startRunning() { captureSession.startRunning() - metadataCapture.startRunning { [weak self] barcodeObject in + let rectOfInterest = previewLayer.metadataOutputRectConverted(fromLayerRect: previewView.bounds) + metadataCapture.startRunning(rectOfInterest: rectOfInterest) { [weak self] barcodeObject in self?.delegate?.didScan(barcode: barcodeObject.stringValue ?? "") self?.addBarcodeOverlayViewFor(barcodeObject: barcodeObject) } diff --git a/SplitScreenScanner.podspec b/SplitScreenScanner.podspec index 845f0bc..f8c66e6 100644 --- a/SplitScreenScanner.podspec +++ b/SplitScreenScanner.podspec @@ -8,7 +8,7 @@ Pod::Spec.new do |s| s.name = 'SplitScreenScanner' - s.version = '10.0.2' + s.version = '10.0.3' s.summary = 'Swift library for scanning barcodes with half the screen devoted to scan history' # This description is used to generate tags and improve search results.