コード例 #1
0
        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);
        }
コード例 #2
0
 private void OnFocusFramePacket(FocusFramePacket packet)
 {
     var task = Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
     {
         FocusMarkDrawer.SetFocusFrames(packet.FocusFrames);
     });
 }