diff --git a/CamHolderApp/CHDocument.h b/CamHolderApp/CHDocument.h index 1e8d16e..cf29ac8 100644 --- a/CamHolderApp/CHDocument.h +++ b/CamHolderApp/CHDocument.h @@ -21,6 +21,8 @@ extern NSArray* CHCachedCaptureDevices; @property (nonatomic, assign) BOOL isAutoFocusActive; @property (nonatomic, assign) float focusFactor; +-(void)readCameraValuesIntoProperties; + @property (nonatomic, readonly) BOOL isZoomed; @property (nonatomic, readonly) NSArray* captureDevices; diff --git a/CamHolderApp/CHDocument.m b/CamHolderApp/CHDocument.m index 773ba89..b2cf17d 100644 --- a/CamHolderApp/CHDocument.m +++ b/CamHolderApp/CHDocument.m @@ -152,6 +152,11 @@ -(void)setFocusFactor:(float)focusFactor_ { [_cameraControl setAbsoluteFocus:focusFactor]; } +-(void)readCameraValuesIntoProperties { + if(self.isAutoFocusActive) + self.focusFactor = [_cameraControl getAbsoluteFocus]; +} + -(void)tryToHaveActiveCaptureDevice { if(self.activeCaptureDevice == nil && self.captureDevices.count > 0) { self.activeCaptureDevice = [self.captureDevices objectAtIndex:0]; diff --git a/CamHolderApp/CHWindowController.h b/CamHolderApp/CHWindowController.h index 43e4dce..21d876f 100644 --- a/CamHolderApp/CHWindowController.h +++ b/CamHolderApp/CHWindowController.h @@ -21,6 +21,8 @@ NSRect _fullscreenFrame; BOOL _ignoreWindowDidResize; + NSTimer *_updateTimer; + IBOutlet NSComboBox *captureDevicesCombobox; IBOutlet NSSlider *exposureSlider; IBOutlet CroppingQTCaptureView *captureView; diff --git a/CamHolderApp/CHWindowController.m b/CamHolderApp/CHWindowController.m index 935733b..dff041f 100644 --- a/CamHolderApp/CHWindowController.m +++ b/CamHolderApp/CHWindowController.m @@ -36,6 +36,13 @@ - (void)windowDidLoad for (QTCaptureDevice* d in self.document.captureDevices) { [captureDevicesCombobox addItemWithObjectValue: [d localizedDisplayName]]; } + + _updateTimer = [[NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(reflectCameraStateInUI) userInfo:nil repeats:YES] retain]; +} + +-(void)dealloc { + [_updateTimer release]; + [super dealloc]; } #pragma mark - Preview Delegate and Handling @@ -190,6 +197,12 @@ -(void)setWindow:(CHDraggableWindow *)window { [super setWindow:window]; } +-(void)reflectCameraStateInUI { + if(self.document) { + [self.document readCameraValuesIntoProperties]; + } +} + #pragma mark - view options -(void)windowDidResize:(NSNotification *)notification {