/// <summary> /// Adds information about the value of capability in specified usage mode to the string builder. /// </summary> /// <param name="capUsageMode"></param> /// <param name="capValue"></param> /// <param name="capsInfo"></param> private void AddCapInfoToCapsInfo(DeviceCapabilityUsageMode capUsageMode, TwainValueContainerBase capValue, StringBuilder capsInfo) { capsInfo.Append(string.Format(" Usage mode: {0}{1}", capUsageMode, Environment.NewLine)); capsInfo.Append(string.Format(" Value container type: {0}{1}", capValue.ContainerType, Environment.NewLine)); switch (capValue.ContainerType) { case TwainValueContainerType.OneValue: TwainOneValueContainer oneDeviceCapabilityValue = (TwainOneValueContainer)capValue; AddCapOneCurrentValueInfoToCapsInfo(oneDeviceCapabilityValue, capsInfo); break; case TwainValueContainerType.Range: TwainRangeValueContainer rangeDeviceCapabilityValue = (TwainRangeValueContainer)capValue; AddCapRangeCurrentValueInfoToCapsInfo(rangeDeviceCapabilityValue, capsInfo); AddCapRangeDefaultValueInfoToCapsInfo(rangeDeviceCapabilityValue, capsInfo); AddCapMinValueInfoToCapsInfo(rangeDeviceCapabilityValue, capsInfo); AddCapMaxValueInfoToCapsInfo(rangeDeviceCapabilityValue, capsInfo); AddCapStepSizeInfoToCapsInfo(rangeDeviceCapabilityValue, capsInfo); break; case TwainValueContainerType.Enum: TwainEnumValueContainer enumDeviceCapabilityValue = (TwainEnumValueContainer)capValue; AddCapEnumCurrentValueInfoToCapsInfo(enumDeviceCapabilityValue, capsInfo); AddCapEnumDefaultValueInfoToCapsInfo(enumDeviceCapabilityValue, capsInfo); AddCapValuesInfoToCapsInfo(enumDeviceCapabilityValue, capsInfo); break; case TwainValueContainerType.Array: TwainArrayValueContainer arrayDeviceCapabilityValue = (TwainArrayValueContainer)capValue; AddCapValuesInfoToCapsInfo(arrayDeviceCapabilityValue, capsInfo); break; } }
/// <summary> /// Gets information about the current value stored in Enum container. /// </summary> /// <param name="deviceCapabilityValue"></param> private void AddCapEnumCurrentValueToForm(TwainEnumValueContainer deviceCapabilityValue) { int valueIndex = deviceCapabilityValue.ValueIndex; if (valueIndex >= 0 && valueIndex < deviceCapabilityValue.Values.Length) { if (deviceCapabilityValue.EnumValues != null) { currentValueTextBox.Text = string.Format("{0} [{1}], Index={2}", deviceCapabilityValue.Values.GetValue(valueIndex), deviceCapabilityValue.EnumValues.GetValue(valueIndex), valueIndex); } else { currentValueTextBox.Text = string.Format("{0}, Index={1}", deviceCapabilityValue.Values.GetValue(valueIndex), valueIndex); } } }
/// <summary> /// Gets information about the default value stored in Enum container. /// </summary> /// <param name="deviceCapabilityValue"></param> private void AddCapEnumDefaultValueToForm(TwainEnumValueContainer deviceCapabilityValue) { int defaultValueIndex = deviceCapabilityValue.DefaultValueIndex; if (deviceCapabilityValue.EnumValues != null) { if (defaultValueIndex >= 0 && defaultValueIndex < deviceCapabilityValue.EnumValues.Length) { defaultValueTextBox.Text = string.Format("{0} [{1}]", defaultValueIndex, deviceCapabilityValue.EnumValues.GetValue(defaultValueIndex)); } } else { defaultValueTextBox.Text = defaultValueIndex.ToString(); } }
/// <summary> /// Gets information about the default value stored in Enum container. /// </summary> /// <param name="deviceCapabilityValue"></param> /// <param name="capsInfo"></param> private void AddCapEnumDefaultValueInfoToCapsInfo(TwainEnumValueContainer deviceCapabilityValue, StringBuilder capsInfo) { if (deviceCapabilityValue.EnumValues != null) { if (deviceCapabilityValue.DefaultValueIndex >= 0 && deviceCapabilityValue.DefaultValueIndex < deviceCapabilityValue.EnumValues.Length) { capsInfo.Append(string.Format(" Default value index: {0}[{1}]{2}", deviceCapabilityValue.DefaultValueIndex, deviceCapabilityValue.EnumValues.GetValue(deviceCapabilityValue.DefaultValueIndex), Environment.NewLine)); } else { capsInfo.Append(string.Format(" Default value index: {0}[WRONG DEFAULT VALUE INDEX]{1}", deviceCapabilityValue.DefaultValueIndex, Environment.NewLine)); } } else { capsInfo.Append(string.Format(" Default value index: {0}{1}", deviceCapabilityValue.DefaultValueIndex, Environment.NewLine)); } }
/// <summary> /// Gets information about value of specified capability in specified usage mode. /// </summary> /// <param name="deviceCapability"></param> /// <param name="usageMode"></param> private void GetCapValue(DeviceCapability deviceCapability, DeviceCapabilityUsageMode usageMode) { usageModeTextBox.Text = ""; containerTypeTextBox.Text = ""; valueTypeTextBox.Text = ""; currentValueTextBox.Text = ""; minValueTextBox.Text = ""; maxValueTextBox.Text = ""; defaultValueTextBox.Text = ""; stepSizeTextBox.Text = ""; supportedValuesListBox.Items.Clear(); try { TwainValueContainerBase deviceCapabilityValue = null; if (usageMode == DeviceCapabilityUsageMode.GetCurrent) { deviceCapabilityValue = deviceCapability.GetCurrentValue(); } else if (usageMode == DeviceCapabilityUsageMode.GetDefault) { deviceCapabilityValue = deviceCapability.GetDefaultValue(); } else { deviceCapabilityValue = deviceCapability.GetValue(); } if (getMethodComboBox.Items.Count == 0) { // usageModeTextBox.Text = deviceCapability.UsageMode.ToString(); // if ((deviceCapability.UsageMode & DeviceCapabilityUsageMode.Get) != 0) { getMethodComboBox.Items.Add(DeviceCapabilityUsageMode.Get); } if ((deviceCapability.UsageMode & DeviceCapabilityUsageMode.GetCurrent) != 0) { getMethodComboBox.Items.Add(DeviceCapabilityUsageMode.GetCurrent); } if ((deviceCapability.UsageMode & DeviceCapabilityUsageMode.GetDefault) != 0) { getMethodComboBox.Items.Add(DeviceCapabilityUsageMode.GetDefault); } } if (deviceCapabilityValue != null) { // containerTypeTextBox.Text = deviceCapabilityValue.ContainerType.ToString(); valueTypeTextBox.Text = deviceCapability.ValueType.ToString(); // switch (deviceCapabilityValue.ContainerType) { case TwainValueContainerType.OneValue: TwainOneValueContainer oneDeviceCapabilityValue = (TwainOneValueContainer)deviceCapabilityValue; AddCapOneCurrentValueToForm(oneDeviceCapabilityValue); break; case TwainValueContainerType.Range: TwainRangeValueContainer rangeDeviceCapabilityValue = (TwainRangeValueContainer)deviceCapabilityValue; AddCapRangeCurrentValueToForm(rangeDeviceCapabilityValue); AddCapRangeDefaultValueToForm(rangeDeviceCapabilityValue); AddCapMinValueToForm(rangeDeviceCapabilityValue); AddCapMaxValueToForm(rangeDeviceCapabilityValue); AddCapStepSizeToForm(rangeDeviceCapabilityValue); break; case TwainValueContainerType.Enum: TwainEnumValueContainer enumDeviceCapabilityValue = (TwainEnumValueContainer)deviceCapabilityValue; AddCapEnumCurrentValueToForm(enumDeviceCapabilityValue); AddCapEnumDefaultValueToForm(enumDeviceCapabilityValue); AddCapValuesToForm(enumDeviceCapabilityValue); break; case TwainValueContainerType.Array: TwainArrayValueContainer arrayDeviceCapabilityValue = (TwainArrayValueContainer)deviceCapabilityValue; AddCapValuesToForm(arrayDeviceCapabilityValue); break; } } } catch (TwainDeviceCapabilityException ex) { currentValueTextBox.Text = ex.Message; } }