Commit a53a6fe5 by Daniel Dahan

added focusMode property for CaptureSession to adjust focusMode

parent 0c3cf63d
...@@ -99,6 +99,7 @@ public class CaptureSession : NSObject { ...@@ -99,6 +99,7 @@ public class CaptureSession : NSObject {
:name: init :name: init
*/ */
public override init() { public override init() {
sessionPreset = .High
super.init() super.init()
prepareSession() prepareSession()
} }
...@@ -133,6 +134,40 @@ public class CaptureSession : NSObject { ...@@ -133,6 +134,40 @@ public class CaptureSession : NSObject {
} }
/** /**
:name: focusMode
*/
public var focusMode: AVCaptureFocusMode {
get {
return videoDevice.focusMode
}
set(value) {
var error: NSError?
if isFocusModeSupported(focusMode) {
do {
try videoDevice.lockForConfiguration()
videoDevice.focusMode = focusMode
videoDevice.unlockForConfiguration()
} catch let e as NSError {
error = e
}
error = NSError(domain: "[MaterialKit Error: Unsupported focusMode.]", code: 0, userInfo: nil)
}
if let e: NSError = error {
delegate?.captureSessionFailedWithError?(self, error: e)
}
}
}
/**
:name: sessionPreset
*/
public var sessionPreset: CaptureSessionPreset {
didSet {
session.sessionPreset = CaptureSessionPresetToString(sessionPreset)
}
}
/**
:name: delegate :name: delegate
*/ */
public weak var delegate: CaptureSessionDelegate? public weak var delegate: CaptureSessionDelegate?
...@@ -160,13 +195,6 @@ public class CaptureSession : NSObject { ...@@ -160,13 +195,6 @@ public class CaptureSession : NSObject {
} }
/** /**
:name: sessionPreset
*/
public func sessionPreset(preset: CaptureSessionPreset) {
session.sessionPreset = CaptureSessionPresetToString(preset)
}
/**
:name: switchCameras :name: switchCameras
*/ */
public func switchCameras() { public func switchCameras() {
...@@ -209,7 +237,6 @@ public class CaptureSession : NSObject { ...@@ -209,7 +237,6 @@ public class CaptureSession : NSObject {
// :name: prepareSession // :name: prepareSession
// //
private func prepareSession() { private func prepareSession() {
sessionPreset(.High)
prepareVideoInput() prepareVideoInput()
prepareAudioInput() prepareAudioInput()
prepareImageOutput() prepareImageOutput()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment