public async Task <bool> SetupFocusFrame(bool RequestFocusFrameEnabled) { if (Context?.Target == null) { DebugUtil.Log("No target to set up focus frame is available."); FocusMarkDrawer.ClearFrames(); return(false); } if (Context.Target.Api.Capability.IsAvailable("setLiveviewFrameInfo")) { await Context.Target.Api.Camera?.SetLiveviewFrameInfoAsync(new FrameInfoSetting() { TransferFrameInfo = RequestFocusFrameEnabled }); } if (RequestFocusFrameEnabled && !Context.Target.Api.Capability.IsSupported("setLiveviewFrameInfo") && Context.Target.Api.Capability.IsAvailable("setTouchAFPosition")) { // For devices which does not support to transfer focus frame info, draw focus frame itself. FocusMarkDrawer.SelfDrawTouchAFFrame = true; } else { FocusMarkDrawer.SelfDrawTouchAFFrame = false; } FocusMarkDrawer.ClearFrames(); return(true); }
private void OnFocusFramePacket(FocusFramePacket packet) { var task = Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { FocusMarkDrawer.SetFocusFrames(packet.FocusFrames); }); }