Esempio n. 1
0
        async void NetworkObserver_Discovered(object sender, CameraDeviceEventArgs e)
        {
            var target = e.CameraDevice;

            try
            {
                await SequentialOperation.SetUp(target, liveview);
            }
            catch (Exception ex)
            {
                Debug.WriteLine("Failed setup: " + ex.Message);
                return;
            }

            this.target = target;
            target.Status.PropertyChanged += Status_PropertyChanged;

            await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
            {
                ScreenViewData = new LiveviewScreenViewData(target);
                ScreenViewData.NotifyFriendlyNameUpdated();
                BatteryStatusDisplay.BatteryInfo = target.Status.BatteryInfo;
                LayoutRoot.DataContext           = ScreenViewData;
                var panels = SettingPanelBuilder.CreateNew(target);
                var pn     = panels.GetPanelsToShow();
                foreach (var panel in pn)
                {
                    ControlPanel.Children.Add(panel);
                }
            });
        }
Esempio n. 2
0
        private void UpdateShutterButton(CameraStatus status)
        {
            if (status == null || status.ShootMode == null || status.ShootMode.Candidates.Count == 0)
            {
                return;
            }

            var icons = new Dictionary <string, DataTemplate>();
            Capability <string> capa;

            if (target?.Api?.Capability?.IsAvailable(API_SET_SHOOT_MODE) ?? false && !ScreenViewData.IsRecording)
            {
                foreach (var m in status.ShootMode.Candidates)
                {
                    icons.Add(m, LiveviewScreenViewData.GetShootModeIcon(m));
                }
                capa = status.ShootMode;
            }
            else
            {
                var m = status.ShootMode.Current;
                icons.Add(m, LiveviewScreenViewData.GetShootModeIcon(m));
                var list = new List <string>();
                list.Add(m);
                capa = new Capability <string> {
                    Current = m, Candidates = list
                };
            }

            MultiShutterButton.ModeInfo = new ShootModeInfo()
            {
                ShootModeCapability = capa,
                ModeSelected        = (mode) => { target?.Api?.Camera?.SetShootModeAsync(mode).IgnoreExceptions(); },
                ButtonPressed       = () => { ShutterButtonPressed(); },
                IconTemplates       = icons,
            };
        }
Esempio n. 3
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;
            }
        }