public IPhoneExecutionCommand (TargetRuntime runtime, TargetFramework framework, FilePath appPath, 
		                               FilePath logDirectory, bool debugMode, IPhoneSimulatorTarget target, 
		                               IPhoneSdkVersion minimumOSVersion, TargetDevice supportedDevices)
		{
			this.AppPath = appPath;
			this.LogDirectory = logDirectory;
			this.Framework = framework;
			this.Runtime = runtime;
			this.DebugMode = debugMode;
			this.SimulatorTarget = target;
			this.MinimumOSVersion = minimumOSVersion;
			this.SupportedDevices = supportedDevices;
		}
Exemple #2
0
        /*
         * Save font
         */
        public static void Save(SizedFont sf,String xmlFilename,Control refControl,TargetDevice targetDevice)
        {
            String headerFilename,sourceFilename;
              XmlDocument doc;
              XmlElement root;
              FontWriter fw;

              // filename has .xml extension. calculate same name with .h and .cpp

              headerFilename=Path.GetFileNameWithoutExtension(xmlFilename)+".h";
              headerFilename=Path.Combine(Path.GetDirectoryName(xmlFilename),headerFilename);

              sourceFilename=Path.GetFileNameWithoutExtension(xmlFilename)+".cpp";
              sourceFilename=Path.Combine(Path.GetDirectoryName(xmlFilename),sourceFilename);

              // create header stream

              using(StreamWriter headerWriter=new StreamWriter(headerFilename)) {
            using(StreamWriter sourceWriter=new StreamWriter(sourceFilename)) {

              // create XML parent

              doc=new XmlDocument();
              root=doc.CreateElement("FontConv");
              doc.AppendChild(root);

              switch(targetDevice) {

            case TargetDevice.ARDUINO:
              fw=new ArduinoFontWriter(sf,headerWriter,sourceWriter,root,refControl);
              break;

            case TargetDevice.STM32PLUS:
              fw=new Stm32plusFontWriter(sf,headerWriter,sourceWriter,root,refControl);
              break;

            default:
              throw new Exception("Unknown device");
              }

              fw.Save();
              doc.Save(xmlFilename);
            }
              }
        }
Exemple #3
0
 public bool TryGetCameraDevice(string id, out TargetDevice device)
 {
     return(remoteApiDevices.TryGetValue(id, out device));
 }
        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);
            }

            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;
            }
        }
Exemple #5
0
 public IPhoneSimulatorTarget(TargetDevice device, IPhoneSdkVersion version)
 {
     this.Device  = device;
     this.Version = version;
 }
		public IPhoneProject (string languageName, ProjectCreateInformation info, XmlElement projectOptions)
			: base (languageName, info, projectOptions)
		{
			Init ();
			
			var mainNibAtt = projectOptions.Attributes ["MainNibFile"];
			if (mainNibAtt != null) {
				this.mainNibFile = mainNibAtt.InnerText;	
			}
			
			var ipadNibAtt = projectOptions.Attributes ["MainNibFileIPad"];
			if (ipadNibAtt != null) {
				this.mainNibFileIPad = ipadNibAtt.InnerText;	
			}
			
			var supportedDevicesAtt = projectOptions.Attributes ["SupportedDevices"];
			if (supportedDevicesAtt != null) {
				this.supportedDevices = (TargetDevice) Enum.Parse (typeof (TargetDevice), supportedDevicesAtt.InnerText);	
			}
			
			var sdkVersionAtt = projectOptions.Attributes ["SdkVersion"];
			IPhoneSdkVersion? sdkVersion = null;
			if (sdkVersionAtt != null)
				sdkVersion = IPhoneSdkVersion.Parse (sdkVersionAtt.InnerText);
			
			FilePath binPath = (info != null)? info.BinPath : new FilePath ("bin");
			
			int confCount = Configurations.Count;
			for (int i = 0; i < confCount; i++) {
				var simConf = (IPhoneProjectConfiguration)Configurations[i];
				simConf.Platform = PLAT_SIM;
				var deviceConf = (IPhoneProjectConfiguration) simConf.Clone ();
				deviceConf.Platform = PLAT_IPHONE;
				deviceConf.CodesignKey = DEV_CERT_PREFIX;
				Configurations.Add (deviceConf);
				
				deviceConf.MtouchSdkVersion = simConf.MtouchSdkVersion = sdkVersion ?? IPhoneSdkVersion.UseDefault;
				
				if (simConf.Name == "Debug")
					simConf.MtouchDebug = deviceConf.MtouchDebug = true;
				
				simConf.MtouchLink = MtouchLinkMode.None;
				
				simConf.OutputDirectory = binPath.Combine (simConf.Platform, simConf.Name);
				deviceConf.OutputDirectory = binPath.Combine (deviceConf.Platform, deviceConf.Name);
				simConf.SanitizeAppName ();
				deviceConf.SanitizeAppName ();
			}
		}
Exemple #7
0
 public SwitchCommand(TargetDevice t, byte nodeid)
     : base(t, nodeid)
 {
 }
		public void Load (IPhoneProject proj)
		{
			devRegionEntry.Text = proj.BundleDevelopmentRegion ?? "";
			bundleIdEntry.Text = proj.BundleIdentifier ?? "";
			bundleVersionEntry.Text = proj.BundleVersion ?? "";
			displayNameEntry.Text = proj.BundleDisplayName ?? "";
			
			mainNibPicker.Project         = iPadNibPicker.Project         = proj;
			mainNibPicker.EntryIsEditable = iPadNibPicker.EntryIsEditable = true;
			mainNibPicker.DefaultFilter   = iPadNibPicker.DefaultFilter   = "*.xib";
			
			mainNibPicker.DialogTitle = GettextCatalog.GetString ("Select main interface file...");
			mainNibPicker.SelectedFile = proj.MainNibFile.ToString () ?? "";
			
			iPadNibPicker.DialogTitle = GettextCatalog.GetString ("Select iPad interface file...");
			iPadNibPicker.SelectedFile = proj.MainNibFileIPad.ToString () ?? "";
			
			targetDevicesCombo.AppendText (GettextCatalog.GetString ("iPhone and iPad"));
			targetDevicesCombo.AppendText (GettextCatalog.GetString ("iPhone only"));
			targetDevicesCombo.AppendText (GettextCatalog.GetString ("iPad only"));
			
			SupportedDevices = proj.SupportedDevices;
			
			HandleTargetDevicesComboChanged (null, null);
			
			ProjectFileEntry [] pickers = { iphoneIconPicker, ipadIconPicker, settingsIconPicker, ipadSpotlightIconPicker };
			foreach (var p in pickers) {
				p.Project = proj;
				p.DefaultFilter = "*.png";
				p.DialogTitle = GettextCatalog.GetString ("Select icon...");
			}
			
			iphoneIconPicker.SelectedFile = proj.BundleIcon.ToString () ?? "";
			ipadIconPicker.SelectedFile = proj.BundleIconIPad.ToString () ?? "";
			settingsIconPicker.SelectedFile = proj.BundleIconSpotlight.ToString () ?? "";
			ipadSpotlightIconPicker.SelectedFile = proj.BundleIconIPadSpotlight.ToString () ?? "";
		}
		static PlistArray GetSupportedDevices (TargetDevice devices)
		{
			switch (devices) {
			case TargetDevice.IPhone:
				return new PlistArray (new int[] { 1 });
			case TargetDevice.IPad:
				return new PlistArray (new int[] { 2 });
			case TargetDevice.IPhoneAndIPad:
				return new PlistArray (new int[] { 1, 2 });
			default:
				LoggingService.LogError ("Bad TargetDevice value {0}", devices);
				goto case TargetDevice.IPhoneAndIPad;
			}
		}
Exemple #10
0
 /// <summary>
 /// Обновить значение игровой оси на стороне модели
 /// </summary>
 public void UpdateGameActionAxis()
 {
     TargetGameActionAxis.SetAxisValue(TargetDevice.GetAxisValue(DeviceAxisId));
 }
Exemple #11
0
        public IPhoneProject(string languageName, ProjectCreateInformation info, XmlElement projectOptions)
            : base(languageName, info, projectOptions)
        {
            Init();

            var mainNibAtt = projectOptions.Attributes ["MainNibFile"];

            if (mainNibAtt != null)
            {
                this.mainNibFile = mainNibAtt.InnerText;
            }

            var ipadNibAtt = projectOptions.Attributes ["MainNibFileIPad"];

            if (ipadNibAtt != null)
            {
                this.mainNibFileIPad = ipadNibAtt.InnerText;
            }

            var supportedDevicesAtt = projectOptions.Attributes ["SupportedDevices"];

            if (supportedDevicesAtt != null)
            {
                this.supportedDevices = (TargetDevice)Enum.Parse(typeof(TargetDevice), supportedDevicesAtt.InnerText);
            }

            var sdkVersionAtt           = projectOptions.Attributes ["SdkVersion"];
            IPhoneSdkVersion?sdkVersion = null;

            if (sdkVersionAtt != null)
            {
                sdkVersion = IPhoneSdkVersion.Parse(sdkVersionAtt.InnerText);
            }

            FilePath binPath = (info != null)? info.BinPath : new FilePath("bin");

            int confCount = Configurations.Count;

            for (int i = 0; i < confCount; i++)
            {
                var simConf = (IPhoneProjectConfiguration)Configurations[i];
                simConf.Platform = PLAT_SIM;
                var deviceConf = (IPhoneProjectConfiguration)simConf.Clone();
                deviceConf.Platform    = PLAT_IPHONE;
                deviceConf.CodesignKey = DEV_CERT_PREFIX;
                Configurations.Add(deviceConf);

                deviceConf.MtouchSdkVersion = simConf.MtouchSdkVersion = sdkVersion ?? IPhoneSdkVersion.UseDefault;

                if (simConf.Name == "Debug")
                {
                    simConf.MtouchDebug = deviceConf.MtouchDebug = true;
                }

                simConf.MtouchLink = MtouchLinkMode.None;

                simConf.OutputDirectory    = binPath.Combine(simConf.Platform, simConf.Name);
                deviceConf.OutputDirectory = binPath.Combine(deviceConf.Platform, deviceConf.Name);
                simConf.SanitizeAppName();
                deviceConf.SanitizeAppName();
            }
        }
Exemple #12
0
 public static IEnumerable <IPhoneSimulatorTarget> GetSimulatorTargets(IPhoneSdkVersion minVersion, TargetDevice projSupportedDevices)
 {
     return(GetSimulatorTargets().Where(t => t.Supports(minVersion, projSupportedDevices)));
 }
Exemple #13
0
 public UserBrowser SetTargetDevice(TargetDevice targetDevice)
 {
     this.TargetDevice = targetDevice;
     return(this);
 }
Exemple #14
0
 public LiveviewContext(TargetDevice target, HistogramCreator histogram = null)
 {
     Target           = target;
     HistogramCreator = histogram;
 }
Exemple #15
0
 protected void OnDiscovered(TargetDevice device)
 {
     CameraDiscovered?.Invoke(this, new CameraDeviceEventArgs {
         CameraDevice = device
     });
 }
Exemple #16
0
 public static async Task <bool> MoveToShootingModeAsync(TargetDevice device, CancellationTokenSource cancel)
 {
     return(await MoveToSpecifiedModeAsync(device, cancel, CameraFunction.RemoteShooting, EventParam.Idle));
 }
Exemple #17
0
 /// <summary>
 /// Получить 'сырое' значение игровой оси на стороне контроллера
 /// </summary>
 /// <returns>'Сырое' значение игровой оси устройства</returns>
 public double GetGameActionAxis()
 {
     return(TargetDevice.GetAxisValue(DeviceAxisId));
 }
		public void Load (IPhoneProject proj)
		{
			devRegionEntry.Text = proj.BundleDevelopmentRegion ?? "";
			bundleIdEntry.Text = proj.BundleIdentifier ?? "";
			bundleVersionEntry.Text = proj.BundleVersion ?? "";
			displayNameEntry.Text = proj.BundleDisplayName ?? "";
			
			mainNibPicker.Project         = iPadNibPicker.Project         = proj;
			mainNibPicker.EntryIsEditable = iPadNibPicker.EntryIsEditable = true;
			mainNibPicker.DefaultFilter   = iPadNibPicker.DefaultFilter   = "*.xib";
			
			mainNibPicker.DialogTitle = GettextCatalog.GetString ("Select main interface file...");
			mainNibPicker.SelectedFile = proj.MainNibFile.ToString () ?? "";
			
			iPadNibPicker.DialogTitle = GettextCatalog.GetString ("Select iPad interface file...");
			iPadNibPicker.SelectedFile = proj.MainNibFileIPad.ToString () ?? "";
			
			targetDevicesCombo.AppendText (GettextCatalog.GetString ("iPhone and iPad"));
			targetDevicesCombo.AppendText (GettextCatalog.GetString ("iPhone only"));
			targetDevicesCombo.AppendText (GettextCatalog.GetString ("iPad only"));
			
			SupportedDevices = proj.SupportedDevices;
			
			ProjectFileEntry [] pickers = {
				iphoneIconPicker,
				iphoneIconHighPicker,
				ipadIconPicker,
				settingsIconPicker,
				settingsIconHighPicker,
				ipadSpotlightIconPicker,
			};
			
			foreach (var p in pickers) {
				p.Project = proj;
				p.DefaultFilter = "*.png";
				p.EntryIsEditable = true;
				p.DialogTitle = GettextCatalog.GetString ("Select icon...");
			}
			
			iphoneIconPicker.SelectedFile = proj.BundleIcon.ToString () ?? "";
			iphoneIconHighPicker.SelectedFile = proj.BundleIconHigh.ToString () ?? "";
			ipadIconPicker.SelectedFile = proj.BundleIconIPad.ToString () ?? "";
			settingsIconPicker.SelectedFile = proj.BundleIconSpotlight.ToString () ?? "";
			settingsIconHighPicker.SelectedFile = proj.BundleIconSpotlightHigh.ToString () ?? "";
			ipadSpotlightIconPicker.SelectedFile = proj.BundleIconIPadSpotlight.ToString () ?? "";
			
			badPlist = false;
			try {
				var pf = proj.GetInfoPlist ();
				var doc = new PlistDocument ();
				doc.LoadFromXmlFile (pf.FilePath);
				var dict = doc.Root as PlistDictionary;
				if (dict == null)
					doc.Root = dict = new PlistDictionary ();
				
				var orientationArr = dict.TryGetValue (OrientationUtil.KEY) as PlistArray;
				var ipadOrientationArr = dict.TryGetValue (OrientationUtil.KEY_IPAD) as PlistArray;
				
				LoadOrientationsCombo (supportedOrientationsCombo, orientationArr);
				LoadOrientationsCombo (iPadOrientationsCombo, ipadOrientationArr);
			} catch (Exception ex) {
				badPlist = true;
				MonoDevelop.Ide.MessageService.ShowException (ex, "Error reading Info.plist. Some settings may not be saved.");
			}
			
			HandleTargetDevicesComboChanged (null, null);
		}
 /// <summary>
 ///   Gets an <see cref="HBridge" /> instance configured for the specified motor connector and
 ///   target hardware. This is a convenent alias for <see cref="GetHBridge" />.
 /// </summary>
 /// <param name="connector">The connector, as indicated on the shield's silk screen.</param>
 /// <param name="targetPlatform">The target platform.</param>
 /// <returns>HBridge.</returns>
 /// <remarks>
 ///   Netduino 1 did not have a PWM channel in the right place for this shield. Therefore a
 ///   cut-and-strap is necessary. Cut pins marked PWMA and PWMB on the shield, and strap them
 ///   to digital outputs D5 and D6, respectively. On Netduino 2, all the PWM signals are
 ///   brought out to the connector so the shield should work as-is. The driver needs to be
 ///   configured appropriately, and that is the purpose of the optional
 ///   <paramref name="targetDevice" /> parameter.
 /// </remarks>
 public HBridge GetDcMotor(Connector connector, TargetDevice targetPlatform = TargetDevice.Netduino2)
 {
     return(GetHBridge(connector, targetPlatform));
 }
Exemple #20
0
 public Command(TargetDevice t, byte nodeid)
 {
     target = t;
     NodeID = nodeid;
 }
 public static SettingPanelBuilder CreateNew(TargetDevice device)
 {
     return(new SettingPanelBuilder(device));
 }
Exemple #22
0
        public LiveviewScreenViewData(TargetDevice d)
        {
            Device = d;
            Device.Status.PropertyChanged += (sender, e) =>
            {
                NotifyChangedOnUI(nameof(ZoomPositionInCurrentBox));
                NotifyChangedOnUI(nameof(ZoomBoxIndex));
                NotifyChangedOnUI(nameof(ZoomBoxNum));
                NotifyChangedOnUI(nameof(ShutterButtonImage));
                NotifyChangedOnUI(nameof(ShutterButtonEnabled));
                NotifyChangedOnUI(nameof(IsRecording));
                NotifyChangedOnUI(nameof(ShootModeImage));
                NotifyChangedOnUI(nameof(ExposureModeImage));
                NotifyChangedOnUI(nameof(MemoryCardStatusImage));
                NotifyChangedOnUI(nameof(RecordbaleAmount));
                NotifyChangedOnUI(nameof(RecordingCount));
                NotifyChangedOnUI(nameof(IsRecordingCountAvailable));
                NotifyChangedOnUI(nameof(EvDisplayValue));
                NotifyChangedOnUI(nameof(FnumberDisplayValue));
                NotifyChangedOnUI(nameof(ISODisplayValue));
                NotifyChangedOnUI(nameof(ShutterSpeedDisplayValue));
                NotifyChangedOnUI(nameof(IsAudioMode));
                NotifyChangedOnUI(nameof(LiveviewImageDisplayed));
                NotifyChangedOnUI(nameof(FramingGridDisplayed));
                NotifyChangedOnUI(nameof(IsBatteryInfoAvailable));
                NotifyChangedOnUI(nameof(IsAvailableGetShutterSpeed));
                NotifyChangedOnUI(nameof(IsAvailableGetFNumber));
                NotifyChangedOnUI(nameof(IsAvailableGetIsoSpeedRate));
                NotifyChangedOnUI(nameof(IsAvailableGetEV));
                NotifyChangedOnUI(nameof(DisplayParamsArea));
                NotifyChangedOnUI(nameof(HistogramDisplayed));
            };
            Device.Api.AvailiableApisUpdated += (sender, e) =>
            {
                NotifyChangedOnUI(nameof(IsZoomAvailable));
                NotifyChangedOnUI(nameof(ShutterButtonEnabled));
                NotifyChangedOnUI(nameof(IsRecording));
                NotifyChangedOnUI(nameof(FNumberBrush));
                NotifyChangedOnUI(nameof(ShutterSpeedBrush));
                NotifyChangedOnUI(nameof(EvBrush));
                NotifyChangedOnUI(nameof(IsoBrush));
                NotifyChangedOnUI(nameof(ShutterSpeedDisplayValue));
                NotifyChangedOnUI(nameof(ISODisplayValue));
                NotifyChangedOnUI(nameof(FnumberDisplayValue));
                NotifyChangedOnUI(nameof(IsSetFNumberAvailable));
                NotifyChangedOnUI(nameof(IsSetShutterSpeedAvailable));
                NotifyChangedOnUI(nameof(IsSetIsoSpeedRateAvailable));
                NotifyChangedOnUI(nameof(IsSetEVAvailable));
                NotifyChangedOnUI(nameof(IsAvailableGetShutterSpeed));
                NotifyChangedOnUI(nameof(IsAvailableGetFNumber));
                NotifyChangedOnUI(nameof(IsAvailableGetIsoSpeedRate));
                NotifyChangedOnUI(nameof(IsAvailableGetEV));
                NotifyChangedOnUI(nameof(IsShootingParamAvailable));
                NotifyChangedOnUI(nameof(IsShootingParamSettingAvailable));
                NotifyChangedOnUI(nameof(IsProgramShiftAvailable));
                NotifyChangedOnUI(nameof(DisplayParamsArea));
                NotifyChangedOnUI(nameof(ShootModeChangingAvailable));
            };

            ApplicationSettings.GetInstance().PropertyChanged += (sender, args) =>
            {
                switch (args.PropertyName)
                {
                case nameof(ApplicationSettings.IsIntervalShootingEnabled):
                    NotifyChangedOnUI(nameof(ShutterButtonImage));
                    break;

                case nameof(ApplicationSettings.IsHistogramDisplayed):
                    NotifyChangedOnUI(nameof(HistogramDisplayed));
                    break;

                case nameof(ApplicationSettings.IsShootButtonDisplayed):
                    NotifyChangedOnUI(nameof(ShootButtonDisplayed));
                    break;
                }
            };
        }
Exemple #23
0
 private void Application_Startup(object sender, StartupEventArgs e)
 {
     RootVisual = new Page();
     TargetDevice.Initialize <MyGame>();
 }
Exemple #24
0
		public static IEnumerable<IPhoneSimulatorTarget> GetSimulatorTargets (IPhoneSdkVersion minVersion, TargetDevice projSupportedDevices)
		{	
			return GetSimulatorTargets ().Where (t => t.Supports (minVersion, projSupportedDevices));
		}
Exemple #25
0
        public LiveviewScreenViewData(TargetDevice d)
        {
            Device = d;
            Device.Status.PropertyChanged += (sender, e) =>
            {
                NotifyChangedOnUI("ZoomPositionInCurrentBox");
                NotifyChangedOnUI("ZoomBoxIndex");
                NotifyChangedOnUI("ZoomBoxNum");
                NotifyChangedOnUI("ShutterButtonImage");
                NotifyChangedOnUI("ShutterButtonEnabled");
                NotifyChangedOnUI("IsRecording");
                NotifyChangedOnUI("Processing");
                NotifyChangedOnUI("ShootModeImage");
                NotifyChangedOnUI("ExposureModeImage");
                NotifyChangedOnUI("MemoryCardStatusImage");
                NotifyChangedOnUI("RecordbaleAmount");
                NotifyChangedOnUI("RecordingCount");
                NotifyChangedOnUI("IsRecordingCountAvailable");
                NotifyChangedOnUI("EvVisibility");
                NotifyChangedOnUI("EvDisplayValue");
                NotifyChangedOnUI("FnumberVisibility");
                NotifyChangedOnUI("FnumberDisplayValue");
                NotifyChangedOnUI("ISOVisibility");
                NotifyChangedOnUI("ISODisplayValue");
                NotifyChangedOnUI("ShutterSpeedVisibility");
                NotifyChangedOnUI("ShutterSpeedDisplayValue");
                NotifyChangedOnUI("IsAudioMode");
                NotifyChangedOnUI("LiveviewImageDisplayed");
                NotifyChangedOnUI("FramingGridDisplayed");
            };
            Device.Api.AvailiableApisUpdated += (sender, e) =>
            {
                NotifyChangedOnUI("IsZoomAvailable");
                NotifyChangedOnUI("ShutterButtonEnabled");
                NotifyChangedOnUI("IsRecording");
                NotifyChangedOnUI("FNumberBrush");
                NotifyChangedOnUI("ShutterSpeedBrush");
                NotifyChangedOnUI("EvBrush");
                NotifyChangedOnUI("IsoBrush");
                NotifyChangedOnUI("ShutterSpeedDisplayValue");
                NotifyChangedOnUI("ISODisplayValue");
                NotifyChangedOnUI("FnumberDisplayValue");
                NotifyChangedOnUI("IsSetFNumberAvailable");
                NotifyChangedOnUI("IsSetShutterSpeedAvailable");
                NotifyChangedOnUI("IsSetIsoSpeedRateAvailable");
                NotifyChangedOnUI("IsSetEVAvailable");
                NotifyChangedOnUI("IsAvailableGetShutterSpeed");
                NotifyChangedOnUI("IsAvailableGetFNumber");
                NotifyChangedOnUI("IsAvailableGetIsoSpeedRate");
                NotifyChangedOnUI("IsAvailableGetEV");
                NotifyChangedOnUI("IsShootingParamAvailable");
                NotifyChangedOnUI("IsShootingParamSettingAvailable");
                NotifyChangedOnUI("IsProgramShiftAvailable");
                NotifyChangedOnUI("IsShootingParamDisplayAvailable");
            };

            ApplicationSettings.GetInstance().PropertyChanged += (sender, args) =>
            {
                NotifyChangedOnUI("ShutterButtonImage");
            };
        }