public WhiteBalance[] GetAvailableWhiteBalance() { List <WhiteBalance> result = new List <WhiteBalance>(); CameraSetting setting = GetSetting(SettingIds.WhiteBalance); foreach (int value in setting.AcceptedValues) { result.Add((WhiteBalance)value); } return(result.ToArray()); }
public FocusAreaIds[] GetAvailableFocusAreas() { List <FocusAreaIds> result = new List <FocusAreaIds>(); CameraSetting setting = GetSetting(SettingIds.FocusArea); foreach (int value in setting.AcceptedValues) { result.Add((FocusAreaIds)value); } return(result.ToArray()); }
public MeteringMode[] GetAvailableMeteringModes() { List <MeteringMode> result = new List <MeteringMode>(); CameraSetting setting = GetSetting(SettingIds.MeteringMode); foreach (int value in setting.AcceptedValues) { result.Add((MeteringMode)value); } return(result.ToArray()); }
public PictureEffect[] GetAvailablePictureEffects() { List <PictureEffect> result = new List <PictureEffect>(); CameraSetting setting = GetSetting(SettingIds.PictureEffect); foreach (int value in setting.AcceptedValues) { result.Add((PictureEffect)value); } return(result.ToArray()); }
public AspectRatio[] GetAvailableAspectRatios() { List <AspectRatio> result = new List <AspectRatio>(); CameraSetting setting = GetSetting(SettingIds.AspectRatio); foreach (int value in setting.AcceptedValues) { result.Add((AspectRatio)value); } return(result.ToArray()); }
public DroHdr[] GetAvailableDroHdr() { List <DroHdr> result = new List <DroHdr>(); CameraSetting setting = GetSetting(SettingIds.DroHdr); foreach (int value in setting.AcceptedValues) { result.Add((DroHdr)value); } return(result.ToArray()); }
public ShutterSpeedInfo GetShutterSpeed() { CameraSetting setting = GetSetting(SettingIds.ShutterSpeed); if (setting != null) { return(new ShutterSpeedInfo( setting.SubValue == 1 ? setting.Value : (float)setting.SubValue / 10, setting.SubValue == 1)); } else { return(default(ShutterSpeedInfo)); } }
public float GetFocusMagnifier() { CameraSetting setting = GetSetting(SettingIds.MeteringMode); return(setting != null && setting.Value != 0 ? (float)setting.Value / 10 : 1); }
public MeteringMode GetMeteringMode() { CameraSetting setting = GetSetting(SettingIds.MeteringMode); return(setting != null ? (MeteringMode)setting.Value : default(MeteringMode)); }
public float GetFlash() { CameraSetting setting = GetSetting(SettingIds.Flash); return(setting != null ? (float)setting.Value / 1000 : 0); }
public FocusAreaIds GetFocusArea() { CameraSetting setting = GetSetting(SettingIds.FocusArea); return(setting != null ? (FocusAreaIds)setting.Value : default(FocusAreaIds)); }
public bool GetFEL() { CameraSetting setting = GetSetting(SettingIds.FEL_State); return(setting != null ? setting.Value == 2 : false); }
public int GetFNumber() { CameraSetting setting = GetSetting(SettingIds.LiveViewState); return(setting != null ? setting.Value : 0); }
public ShootingMode GetShootingMode() { CameraSetting setting = GetSetting(SettingIds.ShootingMode); return(setting != null ? (ShootingMode)setting.Value : default(ShootingMode)); }
public AspectRatio GetAspectRatio() { CameraSetting setting = GetSetting(SettingIds.AspectRatio); return(setting != null ? (AspectRatio)setting.Value : default(AspectRatio)); }
public DroHdr GetDroHdr() { CameraSetting setting = GetSetting(SettingIds.DroHdr); return(setting != null ? (DroHdr)setting.Value : default(DroHdr)); }
public PictureEffect GetPictureEffect() { CameraSetting setting = GetSetting(SettingIds.PictureEffect); return(setting != null ? (PictureEffect)setting.Value : default(PictureEffect)); }
public FocusMagnifierPhase GetFocusMagnifierPhase() { CameraSetting setting = GetSetting(SettingIds.MeteringMode); return(setting != null ? (FocusMagnifierPhase)setting.Value : default(FocusMagnifierPhase)); }
public bool Update(bool imageData) { using (Packet request = new Packet(OpCodes.Settings)) { request.WriteHexString("00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00"); byte[] buffer = SendCommand(request.GetBuffer()); using (Packet response = Packet.Reader(buffer)) { if (!IsValidResponse(response)) { return(false); } response.Index = 30; int numSettings = response.ReadInt32(); int unk = response.ReadInt32(); Debug.Assert(unk == 0);//always 0? for (int i = 0; i < numSettings; i++) { ushort settingId = response.ReadUInt16(); int currentDataStartIndex = response.Index; bool knownSetting = false; CameraSetting setting; if (!cameraSettings.TryGetValue((SettingIds)settingId, out setting)) { setting = new CameraSetting((SettingIds)settingId); cameraSettings.Add((SettingIds)settingId, setting); } if (AvailableMainSettingIds.Contains(settingId) || AvailableSubSettingIds.Contains(settingId)) { knownSetting = true; ushort dataType = response.ReadUInt16(); switch (dataType) { case 1: { response.Skip(3); setting.Value = response.ReadByte(); byte subDataType = response.ReadByte(); switch (subDataType) { case 1: response.Skip(3); break; default: knownSetting = false; break; } } break; case 2: { response.Skip(3); setting.Value = response.ReadByte(); byte subDataType = response.ReadByte(); switch (subDataType) { case 1: response.Skip(3); break; case 2: int num = response.ReadUInt16(); setting.AcceptedValues.Clear(); for (int j = 0; j < num; j++) { setting.AcceptedValues.Add(response.ReadByte()); } break; default: knownSetting = false; break; } } break; case 3: { response.Skip(4); setting.Value = response.ReadInt16(); byte subDataType = response.ReadByte(); switch (subDataType) { case 1: response.Skip(6); break; case 2: int num = response.ReadUInt16(); setting.AcceptedValues.Clear(); for (int j = 0; j < num; j++) { setting.AcceptedValues.Add(response.ReadInt16()); } break; default: knownSetting = false; break; } } break; case 4: { response.Skip(4); setting.Value = response.ReadUInt16(); byte subDataType = response.ReadByte(); switch (subDataType) { case 1: response.Skip(2); response.ReadInt16(); // Decrement value? response.ReadInt16(); // Iecrement value? break; case 2: int num = response.ReadUInt16(); setting.AcceptedValues.Clear(); for (int j = 0; j < num; j++) { setting.AcceptedValues.Add(response.ReadUInt16()); } break; default: knownSetting = false; break; } } break; case 6: { response.Skip(6); if (setting.HasSubValue) { setting.Value = response.ReadUInt16(); setting.SubValue = response.ReadUInt16(); } else { setting.Value = response.ReadInt32(); } byte subDataType = response.ReadByte(); switch (subDataType) { case 1: response.Skip(12); break; case 2: int num = response.ReadUInt16(); setting.AcceptedValues.Clear(); for (int j = 0; j < num; j++) { setting.AcceptedValues.Add(response.ReadInt32()); } break; default: knownSetting = false; break; } } break; default: knownSetting = false; break; } if (setting.Value != setting.PrevValue || setting.SubValue != setting.PrevSubValue) { setting.OnChanged(); if (SettingChanged != null) { SettingChanged(setting); } setting.PrevValue = setting.Value; setting.PrevSubValue = setting.SubValue; } } Debug.Assert(knownSetting); } } } if (imageData) { if (IsLiveViewEnabled) { LiveViewImage = GetImage(true); } CameraSetting photoQueue = GetSetting(SettingIds.PhotoTransferQueue); if (photoQueue != null) { // NOTE: The camera is capped at 127 (0x75) images in the queue at any given time int numPhotos = photoQueue.Value & 0xFF; bool photoAvailableForTransfer = ((photoQueue.Value >> 8) & 0xFF) == 0x80; if (photoAvailableForTransfer) { byte[] img = GetImage(false); } } } return(true); }
public ImageFileFormat GetFileFormat() { CameraSetting setting = GetSetting(SettingIds.FileFormat); return(setting != null ? (ImageFileFormat)setting.Value : default(ImageFileFormat)); }
public int GetISO() { CameraSetting setting = GetSetting(SettingIds.ISO); return(setting != null ? setting.Value : 0); }
public ushort GetWhiteBalanceColorTemp() { CameraSetting setting = GetSetting(SettingIds.WhiteBalanceColorTemp); return(setting != null ? (ushort)setting.Value : (ushort)0); }
public int GetBatteryChargePercent() { CameraSetting setting = GetSetting(SettingIds.BatteryInfo); return(setting != null ? setting.Value : 0); }
public WhiteBalanceGM GetWhiteBalanceGM() { CameraSetting setting = GetSetting(SettingIds.WhiteBalanceGM); return(setting != null ? (WhiteBalanceGM)setting.Value : default(WhiteBalanceGM)); }
public DriveMode GetDriveMode() { CameraSetting setting = GetSetting(SettingIds.DriveMode); return(setting != null ? (DriveMode)setting.Value : default(DriveMode)); }
public FlashMode GetFlashMode() { CameraSetting setting = GetSetting(SettingIds.FlashMode); return(setting != null ? (FlashMode)setting.Value : default(FlashMode)); }
public Position GetFocusAreaSpot() { CameraSetting setting = GetSetting(SettingIds.FocusAreaSpot); return(setting != null ? new Position(setting.SubValue, setting.Value) : default(Position)); }
public AutoFocusState GetAutoFocusState() { CameraSetting setting = GetSetting(SettingIds.AutoFocusState); return(setting != null ? (AutoFocusState)setting.Value : default(AutoFocusState)); }