void FocusModeChanged (NSObservedChange obj)
{
var newValue = obj.NewValue;
var oldValue = obj.OldValue;
if (newValue != null && newValue != NSNull.Null) {
var newMode = (AVCaptureFocusMode)newValue.AsInt ();
DispatchQueue.MainQueue.DispatchAsync (() => {
FocusModeControl.SelectedSegment = Array.IndexOf (focusModes, newMode);
LensPositionSlider.Enabled = (newMode == AVCaptureFocusMode.Locked);
if (oldValue != null && oldValue != NSNull.Null) {
var oldMode = (AVCaptureFocusMode)oldValue.AsInt ();
Console.WriteLine ($"focus mode: {StringFromFocusMode (oldMode)} -> {StringFromFocusMode (newMode)}");
} else {
Console.WriteLine ($"focus mode: {StringFromFocusMode (newMode)}");
}
});
}
}