public Result SetControItemValue(CameraControlItemType type, int value) { var controlItem = _CameraControlItemList.SingleOrDefault(c => c.ControlItemType == type); if (controlItem == null) { return(new Result(ErrorCode.Error, "No Such Control Item")); } //TODO:if newValue = oldValue, do nothing? var oldValue = controlItem.Value; ASI_ERROR_CODE asi_error_code = ASI_ERROR_CODE.ASI_SUCCESS; Exception exception = null; try { asi_error_code = ASISetControlValue(CameraID, ((ASI_CONTROL_CAPS)controlItem.NativeItem).ControlType, value); controlItem.Value = value; //TODO: We should get value from device } catch (Exception e) { exception = e; } //TODO: Log the description the control item include min and max value, etc. return(GetOperationResult(String.Format("SetControlValue, ItemName {0}, ItemType {1}, OldValue {2}, NewValue {3}", controlItem.Description, controlItem.ControlItemType, oldValue, value), asi_error_code, exception)); }
public CameraControlItem GetControlItem(CameraControlItemType type) { return(_CameraControlItemList.SingleOrDefault(c => c.ControlItemType == type)); }