Example #1
0
        private void UpdateFocusStatus(bool focused)
        {
            LiveviewUnit.SetFocusedMark(focused);

            if (focused)
            {
                ShowCancelTouchAFButton();
            }
            else
            {
                HideCancelTouchAFButton();
            }
        }
Example #2
0
        private void Page_Loaded(object sender, RoutedEventArgs e)
        {
            displayRequest.RequestActive();

            InitializeVisualStates();
            DisplayInformation.GetForCurrentView().OrientationChanged += MainPage_OrientationChanged;

            if (ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons"))
            {
                HardwareButtons.CameraHalfPressed += HardwareButtons_CameraHalfPressed;
                HardwareButtons.CameraReleased    += HardwareButtons_CameraReleased;
                HardwareButtons.CameraPressed     += HardwareButtons_CameraPressed;
            }

            LiveviewUnit.RotateLiveviewImage(0);
        }
Example #3
0
        private void Status_PropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            var status = sender as CameraStatus;

            switch (e.PropertyName)
            {
            case nameof(CameraStatus.BatteryInfo):
                BatteryStatusDisplay.BatteryInfo = status.BatteryInfo;
                break;

            case nameof(CameraStatus.ContShootingResult):
                EnqueueContshootingResult(status.ContShootingResult);
                break;

            case nameof(CameraStatus.Status):
                OnCameraStatusChanged(status);
                break;

            case nameof(CameraStatus.ShootMode):
                UpdateShutterButton(status);
                RevaluateLiveviewState(status);
                break;

            case nameof(CameraStatus.FocusStatus):
                UpdateFocusStatus(status.FocusStatus);
                break;

            case nameof(CameraStatus.TouchFocusStatus):
                UpdateTouchFocus(status.TouchFocusStatus);
                break;

            case nameof(CameraStatus.LiveviewOrientation):
                if (ApplicationSettings.GetInstance().LiveviewRotationEnabled)
                {
                    LiveviewUnit.RotateLiveviewImage(status.LiveviewOrientationAsDouble);
                }
                break;

            default:
                break;
            }
        }
Example #4
0
        private async Task SetupScreen(TargetDevice target)
        {
            this.target    = target;
            ScreenViewData = new LiveviewScreenViewData(target);
            ScreenViewData.PropertyChanged += ScreenViewData_PropertyChanged;
            LiveviewContext        = new LiveviewContext(target, HistogramCreator);
            LiveviewUnit.Context   = LiveviewContext;
            LayoutRoot.DataContext = ScreenViewData;

            try
            {
                await SequentialOperation.SetUp(target, liveview);
            }
            catch (Exception ex)
            {
                DebugUtil.Log(() => "Failed setup: " + ex.Message);
                var task = Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
                {
                    AppShell.Current.Toast.PushToast(new ToastContent {
                        Text = SystemUtil.GetStringResource("ErrorMessage_CameraSetupFailure")
                    });
                    AppShell.Current.AppFrame.GoBack();
                });
                return;
            }

            ScreenViewData.ConnectionEstablished = true;

            target.Status.PropertyChanged    += Status_PropertyChanged;
            target.Api.AvailiableApisUpdated += Api_AvailiableApisUpdated;

            liveview.JpegRetrieved       += liveview_JpegRetrieved;
            liveview.FocusFrameRetrieved += Liveview_FocusFrameRetrieved;
            liveview.Closed += liveview_Closed;
            LiveviewUnit.FpsTimer.Start();

            BatteryStatusDisplay.BatteryInfo = target.Status.BatteryInfo;
            var panels = SettingPanelBuilder.CreateNew(target);
            var pn     = panels.GetPanelsToShow();

            foreach (var panel in pn)
            {
                ControlPanel.Children.Add(panel);
            }

            ControlPanel.Children.Add(robot.Gui);

            setShootModeEnabled = target.Api.Capability.IsAvailable(API_SET_SHOOT_MODE);
            ControlPanel.SetChildrenControlHitTest(!target.Status.IsRecording());
            ControlPanel.SetChildrenControlTabStop(!target.Status.IsRecording());

            _CommandBarManager.ShootingScreenBarData = ScreenViewData;
            _CommandBarManager.ApplyShootingScreenCommands(AppBarUnit);

            LiveviewUnit.FramingGuideDataContext = ApplicationSettings.GetInstance();
            UpdateShutterButton(target.Status);

            OnCameraStatusChanged(target.Status);

            LiveviewUnit.SetupFocusFrame(ApplicationSettings.GetInstance().RequestFocusFrameInfo).IgnoreExceptions();

            SetUIHandlers();

            if (target.Status.ShootMode?.Current == ShootModeParam.Audio)
            {
                liveviewDisabledByAudioMode = true;
            }
        }