CapabilityControl idea progress.

This commit is contained in:
soukoku
2014-09-17 07:33:52 -04:00
parent d72c0586e6
commit 782f96827e
11 changed files with 740 additions and 330 deletions

View File

@@ -45,9 +45,15 @@
<Reference Include="WindowsBase" /> <Reference Include="WindowsBase" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="..\NTwain\CapabilityControl.cs">
<Link>CapabilityControl.cs</Link>
</Compile>
<Compile Include="..\NTwain\CapabilityReader.cs"> <Compile Include="..\NTwain\CapabilityReader.cs">
<Link>CapabilityReader.cs</Link> <Link>CapabilityReader.cs</Link>
</Compile> </Compile>
<Compile Include="..\NTwain\CapRoutines.cs">
<Link>CapRoutines.cs</Link>
</Compile>
<Compile Include="..\NTwain\DataSource.Caps.cs"> <Compile Include="..\NTwain\DataSource.Caps.cs">
<Link>DataSource.Caps.cs</Link> <Link>DataSource.Caps.cs</Link>
</Compile> </Compile>

74
NTwain/CapRoutines.cs Normal file
View File

@@ -0,0 +1,74 @@
using NTwain.Data;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace NTwain
{
/// <summary>
/// Contains re-usable routines for cap use.
/// </summary>
public static class CapRoutines
{
#region handy conversions
/// <summary>
/// Routine that does nothing.
/// </summary>
/// <param name="value">The value.</param>
/// <returns></returns>
public static object NoConvertRoutine(object value)
{
return value;
}
/// <summary>
/// Predefined routine for <see cref="BoolType"/>
/// </summary>
/// <param name="value">The value.</param>
/// <returns></returns>
public static TEnum EnumRoutine<TEnum>(object value) where TEnum : struct, IConvertible
{
if (value != null)
{
return value.ConvertToEnum<TEnum>();
}
return default(TEnum);
}
/// <summary>
/// Predefined routine for <see cref="TWFix32"/>
/// </summary>
/// <param name="value">The value.</param>
/// <returns></returns>
public static TWFix32 TWFix32Routine(object value)
{
if (value != null)
{
if (value is TWFix32)
{
return (TWFix32)value;
}
return Convert.ToSingle(value);
}
return default(TWFix32);
}
/// <summary>
/// Predefined routine for <see cref="string"/>
/// </summary>
/// <param name="value">The value.</param>
/// <returns></returns>
public static string StringRoutine(object value)
{
if (value != null)
{
return value.ToString();
}
return default(string);
}
#endregion
}
}

245
NTwain/CapabilityControl.cs Normal file
View File

@@ -0,0 +1,245 @@
using NTwain.Data;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace NTwain
{
/// <summary>
/// Wrapped class for reading/writing a TWAIN capability associated with a <see cref="DataSource"/>.
/// </summary>
/// <typeparam name="TValue">The TWAIN type of the value.</typeparam>
public class CapabilityControl<TValue>
{
DataSource _source;
Func<object, TValue> _converter;
Func<TValue, TWCapability> _setProvider;
/// <summary>
/// Initializes a new instance of the <see cref="CapabilityControl"/> class.
/// </summary>
/// <param name="source">The source.</param>
/// <param name="capability">The capability.</param>
/// <param name="valueConversionRoutine">The value conversion routine.</param>
/// <param name="setCapProvider">Callback to provide the capability object for set method.</param>
/// <exception cref="System.ArgumentNullException">source</exception>
public CapabilityControl(DataSource source, CapabilityId capability, Func<object, TValue> valueConversionRoutine, Func<TValue, TWCapability> setCapProvider)
{
if (source == null) { throw new ArgumentNullException("source"); }
if (valueConversionRoutine == null) { throw new ArgumentNullException("valueConversionRoutine"); }
_source = source;
_converter = valueConversionRoutine;
_setProvider = setCapProvider;
Capability = capability;
SupportedActions = source.CapQuerySupport(capability);
}
bool Supports(QuerySupports flag)
{
return (SupportedActions & flag) == flag;
}
#region properties
/// <summary>
/// Gets the capability.
/// </summary>
/// <value>
/// The capability.
/// </value>
public CapabilityId Capability { get; private set; }
/// <summary>
/// Gets the supported actions.
/// </summary>
/// <value>
/// The supported actions.
/// </value>
public QuerySupports SupportedActions { get; private set; }
public bool IsSupported { get { return SupportedActions > QuerySupports.None; } }
public bool CanGet { get { return Supports(QuerySupports.Get); } }
public bool CanGetDefault { get { return Supports(QuerySupports.GetDefault); } }
public bool CanGetCurrent { get { return Supports(QuerySupports.GetCurrent); } }
public bool CanGetLabel { get { return Supports(QuerySupports.GetLabel); } }
public bool CanGetHelp { get { return Supports(QuerySupports.GetHelp); } }
public bool CanGetLabelEnum { get { return Supports(QuerySupports.GetLabelEnum); } }
public bool CanReset { get { return Supports(QuerySupports.Reset); } }
public bool CanSet { get { return Supports(QuerySupports.Set); } }
public bool CanSetConstraint { get { return Supports(QuerySupports.SetConstraint); } }
#endregion
#region get methods
/// <summary>
/// Gets the default value of this capability.
/// </summary>
/// <returns></returns>
public TValue GetDefault()
{
if (CanGetDefault)
{
return _converter(_source.CapGetDefault(Capability));
}
return default(TValue);
}
/// <summary>
/// Gets the current value of this capability.
/// </summary>
/// <returns></returns>
public TValue GetCurrent()
{
if (CanGetCurrent)
{
return _converter(_source.CapGetCurrent(Capability));
}
return default(TValue);
}
/// <summary>
/// Gets all the possible values of this capability.
/// </summary>
/// <returns></returns>
public IList<TValue> Get()
{
if (CanGet)
{
return _source.CapGet(Capability).Select(o => _converter(o)).ToList();
}
return new List<TValue>();
}
/// <summary>
/// [Experimental] Gets the label value of this capability.
/// </summary>
/// <returns></returns>
public string GetLabel()
{
object value = null;
if (CanGetLabel)
{
using (TWCapability cap = new TWCapability(Capability))
{
var rc = _source.DGControl.Capability.GetLabel(cap);
if (rc == ReturnCode.Success)
{
var read = CapabilityReader.ReadValue(cap);
switch (read.ContainerType)
{
case ContainerType.OneValue:
// most likely not correct
value = read.OneValue;
break;
}
}
}
}
return value == null ? null : value.ToString();
}
/// <summary>
/// [Experimental] Gets the help value of this capability.
/// </summary>
/// <returns></returns>
public string GetHelp()
{
object value = null;
if (CanGetHelp)
{
using (TWCapability cap = new TWCapability(Capability))
{
var rc = _source.DGControl.Capability.GetHelp(cap);
if (rc == ReturnCode.Success)
{
var read = CapabilityReader.ReadValue(cap);
switch (read.ContainerType)
{
case ContainerType.OneValue:
// most likely not correct
value = read.OneValue;
break;
}
}
}
}
return value == null ? null : value.ToString();
}
/// <summary>
/// [Experimental] Gets the display names for possible values of this capability.
/// </summary>
/// <returns></returns>
public IList<string> GetLabelEnum()
{
var list = new List<object>();
if (CanGetLabelEnum)
{
using (TWCapability cap = new TWCapability(Capability))
{
var rc = _source.DGControl.Capability.GetLabelEnum(cap);
if (rc == ReturnCode.Success)
{
cap.ReadMultiCapValues(list);
}
}
}
return list.Select(o => o.ToString()).ToList();
}
#endregion
#region set methods
/// <summary>
/// Resets all values and constraint to power-on defaults.
/// </summary>
/// <returns></returns>
public ReturnCode ResetAll()
{
return _source.ResetAll(Capability);
}
/// <summary>
/// Resets the current value to power-on default.
/// </summary>
/// <returns></returns>
public ReturnCode Reset()
{
return _source.Reset(Capability);
}
/// <summary>
/// Sets the current value of this capability.
/// </summary>
/// <param name="value">The value.</param>
/// <returns></returns>
public ReturnCode Set(TValue value)
{
ReturnCode rc = ReturnCode.Failure;
if (CanSet && _setProvider != null)
{
using (var cap = _setProvider(value))
{
rc = _source.DGControl.Capability.Set(cap);
}
}
return rc;
}
#endregion
public enum SetStrategy
{
Once,
Cascade,
Custom
}
}
}

View File

@@ -8,7 +8,7 @@ using System.Runtime.InteropServices;
namespace NTwain namespace NTwain
{ {
/// <summary> /// <summary>
/// The one-stop class for reading raw TWAIN cap values. /// The one-stop class for reading raw TWAIN cap values from the cap container.
/// This contains all the properties for the 4 container types. /// This contains all the properties for the 4 container types.
/// </summary> /// </summary>
public class CapabilityReader public class CapabilityReader

View File

@@ -1345,6 +1345,7 @@ namespace NTwain.Data
/// This structure is used to pass specific information between the data source and the application /// This structure is used to pass specific information between the data source and the application
/// through <see cref="TWExtImageInfo"/>. /// through <see cref="TWExtImageInfo"/>.
/// </summary> /// </summary>
[DebuggerDisplay("Type = {ItemType}")]
public partial struct TWInfo public partial struct TWInfo
{ {
/// <summary> /// <summary>

View File

@@ -11,6 +11,8 @@ namespace NTwain
partial class DataSource partial class DataSource
{ {
#region low-level cap stuff
/// <summary> /// <summary>
/// Gets the actual supported operations for a capability. /// Gets the actual supported operations for a capability.
/// </summary> /// </summary>
@@ -52,7 +54,7 @@ namespace NTwain
switch (read.ContainerType) switch (read.ContainerType)
{ {
case ContainerType.Enum: case ContainerType.Enum:
if (read.CollectionValues != null) if (read.CollectionValues != null && read.CollectionValues.Count > read.EnumCurrentIndex)
{ {
return read.CollectionValues[read.EnumCurrentIndex]; return read.CollectionValues[read.EnumCurrentIndex];
} }
@@ -74,13 +76,51 @@ namespace NTwain
return null; return null;
} }
/// <summary>
/// Gets the default value for a capability.
/// </summary>
/// <param name="capId">The cap id.</param>
/// <returns></returns>
public object CapGetDefault(CapabilityId capId)
{
using (TWCapability cap = new TWCapability(capId))
{
var rc = _session.DGControl.Capability.GetDefault(cap);
if (rc == ReturnCode.Success)
{
var read = CapabilityReader.ReadValue(cap);
switch (read.ContainerType)
{
case ContainerType.Enum:
if (read.CollectionValues != null && read.CollectionValues.Count > read.EnumDefaultIndex)
{
return read.CollectionValues[read.EnumDefaultIndex];
}
break;
case ContainerType.OneValue:
return read.OneValue;
case ContainerType.Range:
return read.RangeDefaultValue;
case ContainerType.Array:
// no source should ever return an array but anyway
if (read.CollectionValues != null)
{
return read.CollectionValues.FirstOrDefault();
}
break;
}
}
}
return null;
}
/// <summary> /// <summary>
/// A general method that tries to get capability values from current <see cref="DataSource" />. /// A general method that tries to get capability values from current <see cref="DataSource" />.
/// </summary> /// </summary>
/// <param name="capabilityId">The capability unique identifier.</param> /// <param name="capabilityId">The capability unique identifier.</param>
/// <returns></returns> /// <returns></returns>
public IList<object> CapGetValues(CapabilityId capabilityId) public IList<object> CapGet(CapabilityId capabilityId)
{ {
var list = new List<object>(); var list = new List<object>();
using (TWCapability cap = new TWCapability(capabilityId)) using (TWCapability cap = new TWCapability(capabilityId))
@@ -94,155 +134,217 @@ namespace NTwain
return list; return list;
} }
#region xfer mech
/// <summary> /// <summary>
/// Gets the supported image <see cref="XferMech"/> for the current source. /// Resets all values and constraint to power-on defaults.
/// Only call this at state 4 or higher.
/// </summary> /// </summary>
/// <param name="capabilityId">The capability identifier.</param>
/// <returns></returns> /// <returns></returns>
public IList<XferMech> CapGetImageXferMech() public ReturnCode ResetAll(CapabilityId capabilityId)
{ {
return CapGetValues(CapabilityId.ICapXferMech).CastToEnum<XferMech>(true); using (TWCapability cap = new TWCapability(capabilityId)
}
#endregion
#region compression
/// <summary>
/// Gets the supported <see cref="CompressionType"/> for the current source.
/// Only call this at state 4 or higher.
/// </summary>
/// <returns></returns>
public IList<CompressionType> CapGetCompression()
{
return CapGetValues(CapabilityId.ICapCompression).CastToEnum<CompressionType>(true);
}
/// <summary>
/// Change the image compression for the current source.
/// </summary>
/// <param name="compression">The compression.</param>
/// <returns></returns>
public ReturnCode CapSetImageCompression(CompressionType compression)
{
using (TWCapability compressCap = new TWCapability(CapabilityId.ICapCompression, new TWOneValue { Item = (uint)compression, ItemType = ItemType.UInt16 }))
{ {
return _session.DGControl.Capability.Set(compressCap); ContainerType = ContainerType.DoNotCare
})
{
var rc = DGControl.Capability.ResetAll(cap);
return rc;
}
}
/// <summary>
/// Resets the current value to power-on default.
/// </summary>
/// <param name="capabilityId">The capability identifier.</param>
/// <returns></returns>
public ReturnCode Reset(CapabilityId capabilityId)
{
using (TWCapability cap = new TWCapability(capabilityId)
{
ContainerType = ContainerType.DoNotCare
})
{
var rc = DGControl.Capability.Reset(cap);
return rc;
} }
} }
#endregion #endregion
#region image format #region high-level caps
private CapabilityControl<XferMech> _imgXferMech;
/// <summary> /// <summary>
/// Gets the supported <see cref="FileFormat"/> for the current source. /// Gets the property to work with image <see cref="XferMech"/> for the current source.
/// Only call this at state 4 or higher.
/// </summary> /// </summary>
/// <returns></returns> /// <value>
public IList<FileFormat> CapGetImageFileFormat() /// The image xfer mech.
/// </value>
public CapabilityControl<XferMech> CapImageXferMech
{ {
return CapGetValues(CapabilityId.ICapImageFileFormat).CastToEnum<FileFormat>(true); get
}
/// <summary>
/// Change the image format for the current source.
/// </summary>
/// <param name="format">The format.</param>
/// <returns></returns>
public ReturnCode CapSetImageFormat(FileFormat format)
{
using (TWCapability formatCap = new TWCapability(CapabilityId.ICapImageFileFormat, new TWOneValue { Item = (uint)format, ItemType = ItemType.UInt16 }))
{ {
return _session.DGControl.Capability.Set(formatCap); if (_imgXferMech == null)
{
_imgXferMech = new CapabilityControl<XferMech>(this, CapabilityId.ICapXferMech, CapRoutines.EnumRoutine<XferMech>,
value => new TWCapability(CapabilityId.ICapXferMech, new TWOneValue
{
Item = (uint)value,
ItemType = ItemType.UInt16
}));
}
return _imgXferMech;
} }
} }
#endregion
#region pixel type private CapabilityControl<XferMech> _audXferMech;
/// <summary> /// <summary>
/// Gets the supported <see cref="PixelType"/> for the current source. /// Gets the property to work with audio <see cref="XferMech"/> for the current source.
/// Only call this at state 4 or higher.
/// </summary> /// </summary>
/// <returns></returns> /// <value>
public IList<PixelType> CapGetPixelTypes() /// The audio xfer mech.
/// </value>
public CapabilityControl<XferMech> CapAudioXferMech
{ {
return CapGetValues(CapabilityId.ICapPixelType).CastToEnum<PixelType>(true); get
}
/// <summary>
/// Change the pixel type for the current source.
/// </summary>
/// <param name="type">The type.</param>
/// <returns></returns>
public ReturnCode CapSetPixelType(PixelType type)
{
var one = new TWOneValue();
one.Item = (uint)type;
one.ItemType = ItemType.UInt16;
using (TWCapability dx = new TWCapability(CapabilityId.ICapPixelType, one))
{ {
return _session.DGControl.Capability.Set(dx); if (_audXferMech == null)
{
_audXferMech = new CapabilityControl<XferMech>(this, CapabilityId.ACapXferMech, CapRoutines.EnumRoutine<XferMech>,
value => new TWCapability(CapabilityId.ACapXferMech, new TWOneValue
{
Item = (uint)value,
ItemType = ItemType.UInt16
}));
}
return _audXferMech;
} }
} }
#endregion
#region xfer mech private CapabilityControl<CompressionType> _compression;
/// <summary> /// <summary>
/// Gets the supported image <see cref="XferMech"/> for the current source. /// Gets the property to work with image <see cref="CompressionType"/> for the current source.
/// Only call this at state 4 or higher.
/// </summary> /// </summary>
/// <returns></returns> /// <value>
public IList<XferMech> CapGetImageXferMechs() /// The image compression.
/// </value>
public CapabilityControl<CompressionType> CapImageCompression
{ {
return CapGetValues(CapabilityId.ICapXferMech).CastToEnum<XferMech>(true); get
}
/// <summary>
/// Gets the supported audio <see cref="XferMech"/> for the current source.
/// Only call this at state 4 or higher.
/// </summary>
/// <returns></returns>
public IList<XferMech> CapGetAudioXferMechs()
{
return CapGetValues(CapabilityId.ACapXferMech).CastToEnum<XferMech>(true);
}
/// <summary>
/// Change the image xfer type for the current source.
/// </summary>
/// <param name="type">The type.</param>
/// <returns></returns>
public ReturnCode CapSetImageXferMech(XferMech type)
{
var one = new TWOneValue();
one.Item = (uint)type;
one.ItemType = ItemType.UInt16;
using (TWCapability dx = new TWCapability(CapabilityId.ICapXferMech, one))
{ {
return _session.DGControl.Capability.Set(dx); if (_compression == null)
{
_compression = new CapabilityControl<CompressionType>(this, CapabilityId.ICapCompression, CapRoutines.EnumRoutine<CompressionType>,
value => new TWCapability(CapabilityId.ICapCompression, new TWOneValue
{
Item = (uint)value,
ItemType = ItemType.UInt16
}));
}
return _compression;
} }
} }
private CapabilityControl<FileFormat> _fileFormat;
/// <summary> /// <summary>
/// Change the audio xfer type for the current source. /// Gets the property to work with image <see cref="FileFormat"/> for the current source.
/// </summary> /// </summary>
/// <param name="type">The type.</param> /// <value>
/// <returns></returns> /// The image file format.
public ReturnCode CapSetAudioXferMech(XferMech type) /// </value>
public CapabilityControl<FileFormat> CapImageFileFormat
{ {
var one = new TWOneValue(); get
one.Item = (uint)type;
one.ItemType = ItemType.UInt16;
using (TWCapability dx = new TWCapability(CapabilityId.ACapXferMech, one))
{ {
return _session.DGControl.Capability.Set(dx); if (_fileFormat == null)
{
_fileFormat = new CapabilityControl<FileFormat>(this, CapabilityId.ICapImageFileFormat, CapRoutines.EnumRoutine<FileFormat>,
value => new TWCapability(CapabilityId.ICapImageFileFormat, new TWOneValue
{
Item = (uint)value,
ItemType = ItemType.UInt16
}));
}
return _fileFormat;
}
}
private CapabilityControl<PixelType> _pixelType;
/// <summary>
/// Gets the property to work with image <see cref="PixelType"/> for the current source.
/// </summary>
/// <value>
/// The image pixel type.
/// </value>
public CapabilityControl<PixelType> CapImagePixelType
{
get
{
if (_pixelType == null)
{
_pixelType = new CapabilityControl<PixelType>(this, CapabilityId.ICapPixelType, CapRoutines.EnumRoutine<PixelType>,
value => new TWCapability(CapabilityId.ICapPixelType, new TWOneValue
{
Item = (uint)value,
ItemType = ItemType.UInt16
}));
}
return _pixelType;
}
}
private CapabilityControl<SupportedSize> _supportSize;
/// <summary>
/// Gets the property to work with image <see cref="SupportedSize"/> for the current source.
/// </summary>
/// <value>
/// The image supported size.
/// </value>
public CapabilityControl<SupportedSize> CapImageSupportedSize
{
get
{
if (_supportSize == null)
{
_supportSize = new CapabilityControl<SupportedSize>(this, CapabilityId.ICapSupportedSizes, CapRoutines.EnumRoutine<SupportedSize>,
value => new TWCapability(CapabilityId.ICapSupportedSizes, new TWOneValue
{
Item = (uint)value,
ItemType = ItemType.UInt16
}));
}
return _supportSize;
}
}
private CapabilityControl<BoolType> _autoDeskew;
/// <summary>
/// Gets the property to work with image auto deskew flag for the current source.
/// </summary>
/// <value>
/// The image supported size.
/// </value>
public CapabilityControl<BoolType> CapImageAutoDeskew
{
get
{
if (_autoDeskew == null)
{
_autoDeskew = new CapabilityControl<BoolType>(this, CapabilityId.ICapAutomaticDeskew, CapRoutines.EnumRoutine<BoolType>, null);
}
return _autoDeskew;
} }
} }
@@ -257,7 +359,7 @@ namespace NTwain
/// <returns></returns> /// <returns></returns>
public IList<TWFix32> CapGetDPIs() public IList<TWFix32> CapGetDPIs()
{ {
var list = CapGetValues(CapabilityId.ICapXResolution); var list = CapGet(CapabilityId.ICapXResolution);
return list.Select(o => o.ConvertToFix32()).ToList(); return list.Select(o => o.ConvertToFix32()).ToList();
} }
@@ -300,38 +402,6 @@ namespace NTwain
#endregion #endregion
#region supported paper size
/// <summary>
/// Gets the supported <see cref="SupportedSize"/> for the current source.
/// Only call this at state 4 or higher.
/// </summary>
/// <returns></returns>
public IList<SupportedSize> CapGetSupportedSizes()
{
return CapGetValues(CapabilityId.ICapSupportedSizes).CastToEnum<SupportedSize>(true);
}
/// <summary>
/// Change the supported paper size for the current source.
/// </summary>
/// <param name="size">The size.</param>
/// <returns></returns>
public ReturnCode CapSetSupportedSize(SupportedSize size)
{
var one = new TWOneValue();
one.Item = (uint)size;
one.ItemType = ItemType.UInt16;
using (TWCapability xres = new TWCapability(CapabilityId.ICapSupportedSizes, one))
{
var rc = _session.DGControl.Capability.Set(xres);
return rc;
}
}
#endregion
#region onesie flags #region onesie flags
/// <summary> /// <summary>

View File

@@ -185,7 +185,7 @@ namespace NTwain
{ {
if (_supportedCaps == null && _session.State > 3) if (_supportedCaps == null && _session.State > 3)
{ {
_supportedCaps = CapGetValues(CapabilityId.CapSupportedCaps).CastToEnum<CapabilityId>(false); _supportedCaps = CapGet(CapabilityId.CapSupportedCaps).CastToEnum<CapabilityId>(false);
} }
return _supportedCaps ?? _emptyCapList; return _supportedCaps ?? _emptyCapList;
} }

View File

@@ -55,7 +55,9 @@
<Reference Include="WindowsBase" /> <Reference Include="WindowsBase" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="CapabilityControl.cs" />
<Compile Include="CapabilityReader.cs" /> <Compile Include="CapabilityReader.cs" />
<Compile Include="CapRoutines.cs" />
<Compile Include="Data\TypeReader.cs" /> <Compile Include="Data\TypeReader.cs" />
<Compile Include="Data\TwainTypesExtended.cs" /> <Compile Include="Data\TwainTypesExtended.cs" />
<Compile Include="DeviceEventArgs.cs" /> <Compile Include="DeviceEventArgs.cs" />

View File

@@ -133,505 +133,505 @@ namespace Tester.WPF
switch (cap) switch (cap)
{ {
case CapabilityId.ACapXferMech: case CapabilityId.ACapXferMech:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<XferMech>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<XferMech>();
break; break;
case CapabilityId.CapAlarms: case CapabilityId.CapAlarms:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<AlarmType>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<AlarmType>();
break; break;
case CapabilityId.CapAlarmVolume: case CapabilityId.CapAlarmVolume:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapAuthor: case CapabilityId.CapAuthor:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapAutoFeed: case CapabilityId.CapAutoFeed:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapAutomaticCapture: case CapabilityId.CapAutomaticCapture:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapAutomaticSenseMedium: case CapabilityId.CapAutomaticSenseMedium:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapAutoScan: case CapabilityId.CapAutoScan:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapBatteryMinutes: case CapabilityId.CapBatteryMinutes:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapBatteryPercentage: case CapabilityId.CapBatteryPercentage:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapCameraEnabled: case CapabilityId.CapCameraEnabled:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapCameraOrder: case CapabilityId.CapCameraOrder:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapCameraPreviewUI: case CapabilityId.CapCameraPreviewUI:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapCameraSide: case CapabilityId.CapCameraSide:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<CameraSide>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<CameraSide>();
break; break;
case CapabilityId.CapCaption: case CapabilityId.CapCaption:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapClearBuffers: case CapabilityId.CapClearBuffers:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<ClearBuffer>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<ClearBuffer>();
break; break;
case CapabilityId.CapClearPage: case CapabilityId.CapClearPage:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapCustomDSData: case CapabilityId.CapCustomDSData:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapCustomInterfaceGuid: case CapabilityId.CapCustomInterfaceGuid:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapDeviceEvent: case CapabilityId.CapDeviceEvent:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<DeviceEvent>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<DeviceEvent>();
break; break;
case CapabilityId.CapDeviceOnline: case CapabilityId.CapDeviceOnline:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapDeviceTimeDate: case CapabilityId.CapDeviceTimeDate:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapDoubleFeedDetection: case CapabilityId.CapDoubleFeedDetection:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<DoubleFeedDetection>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<DoubleFeedDetection>();
break; break;
case CapabilityId.CapDoubleFeedDetectionLength: case CapabilityId.CapDoubleFeedDetectionLength:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapDoubleFeedDetectionResponse: case CapabilityId.CapDoubleFeedDetectionResponse:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<DoubleFeedDetectionResponse>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<DoubleFeedDetectionResponse>();
break; break;
case CapabilityId.CapDoubleFeedDetectionSensitivity: case CapabilityId.CapDoubleFeedDetectionSensitivity:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<DoubleFeedDetectionSensitivity>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<DoubleFeedDetectionSensitivity>();
break; break;
case CapabilityId.CapDuplex: case CapabilityId.CapDuplex:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<Duplex>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<Duplex>();
break; break;
case CapabilityId.CapDuplexEnabled: case CapabilityId.CapDuplexEnabled:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapEnableDSUIOnly: case CapabilityId.CapEnableDSUIOnly:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapEndorser: case CapabilityId.CapEndorser:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapExtendedCaps: case CapabilityId.CapExtendedCaps:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapFeederAlignment: case CapabilityId.CapFeederAlignment:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<FeederAlignment>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<FeederAlignment>();
break; break;
case CapabilityId.CapFeederEnabled: case CapabilityId.CapFeederEnabled:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapFeederLoaded: case CapabilityId.CapFeederLoaded:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapFeederOrder: case CapabilityId.CapFeederOrder:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<FeederOrder>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<FeederOrder>();
break; break;
case CapabilityId.CapFeederPocket: case CapabilityId.CapFeederPocket:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<FeederPocket>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<FeederPocket>();
break; break;
case CapabilityId.CapFeederPrep: case CapabilityId.CapFeederPrep:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapFeedPage: case CapabilityId.CapFeedPage:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapIndicators: case CapabilityId.CapIndicators:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapIndicatorsMode: case CapabilityId.CapIndicatorsMode:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<IndicatorsMode>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<IndicatorsMode>();
break; break;
case CapabilityId.CapJobControl: case CapabilityId.CapJobControl:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<JobControl>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<JobControl>();
break; break;
case CapabilityId.CapLanguage: case CapabilityId.CapLanguage:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<Language>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<Language>();
break; break;
case CapabilityId.CapMaxBatchBuffers: case CapabilityId.CapMaxBatchBuffers:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapMicrEnabled: case CapabilityId.CapMicrEnabled:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapPaperDetectable: case CapabilityId.CapPaperDetectable:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapPaperHandling: case CapabilityId.CapPaperHandling:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<PaperHandling>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<PaperHandling>();
break; break;
case CapabilityId.CapPowerSaveTime: case CapabilityId.CapPowerSaveTime:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapPowerSupply: case CapabilityId.CapPowerSupply:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<PowerSupply>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<PowerSupply>();
break; break;
case CapabilityId.CapPrinter: case CapabilityId.CapPrinter:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<Printer>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<Printer>();
break; break;
case CapabilityId.CapPrinterCharRotation: case CapabilityId.CapPrinterCharRotation:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapPrinterEnabled: case CapabilityId.CapPrinterEnabled:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapPrinterFontStyle: case CapabilityId.CapPrinterFontStyle:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<PrinterFontStyle>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<PrinterFontStyle>();
break; break;
case CapabilityId.CapPrinterIndex: case CapabilityId.CapPrinterIndex:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapPrinterIndexLeadChar: case CapabilityId.CapPrinterIndexLeadChar:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapPrinterIndexMaxValue: case CapabilityId.CapPrinterIndexMaxValue:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapPrinterIndexNumDigits: case CapabilityId.CapPrinterIndexNumDigits:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapPrinterIndexStep: case CapabilityId.CapPrinterIndexStep:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapPrinterIndexTrigger: case CapabilityId.CapPrinterIndexTrigger:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<PrinterIndexTrigger>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<PrinterIndexTrigger>();
break; break;
case CapabilityId.CapPrinterMode: case CapabilityId.CapPrinterMode:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<PrinterMode>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<PrinterMode>();
break; break;
case CapabilityId.CapPrinterString: case CapabilityId.CapPrinterString:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapPrinterStringPreview: case CapabilityId.CapPrinterStringPreview:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapPrinterSuffix: case CapabilityId.CapPrinterSuffix:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapPrinterVerticalOffset: case CapabilityId.CapPrinterVerticalOffset:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapReacquireAllowed: case CapabilityId.CapReacquireAllowed:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapRewindPage: case CapabilityId.CapRewindPage:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapSegmented: case CapabilityId.CapSegmented:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<Segmented>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<Segmented>();
break; break;
case CapabilityId.CapSerialNumber: case CapabilityId.CapSerialNumber:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapSupportedCaps: case CapabilityId.CapSupportedCaps:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<CapabilityId>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<CapabilityId>();
break; break;
case CapabilityId.CapSupportedCapsSegmentUnique: case CapabilityId.CapSupportedCapsSegmentUnique:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapSupportedDATs: case CapabilityId.CapSupportedDATs:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapThumbnailsEnabled: case CapabilityId.CapThumbnailsEnabled:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapTimeBeforeFirstCapture: case CapabilityId.CapTimeBeforeFirstCapture:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapTimeBetweenCaptures: case CapabilityId.CapTimeBetweenCaptures:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapTimeDate: case CapabilityId.CapTimeDate:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapUIControllable: case CapabilityId.CapUIControllable:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CapXferCount: case CapabilityId.CapXferCount:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.CustomBase: case CapabilityId.CustomBase:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapAutoBright: case CapabilityId.ICapAutoBright:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapAutoDiscardBlankPages: case CapabilityId.ICapAutoDiscardBlankPages:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapAutomaticBorderDetection: case CapabilityId.ICapAutomaticBorderDetection:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapAutomaticColorEnabled: case CapabilityId.ICapAutomaticColorEnabled:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapAutomaticColorNonColorPixelType: case CapabilityId.ICapAutomaticColorNonColorPixelType:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<PixelType>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<PixelType>();
break; break;
case CapabilityId.ICapAutomaticCropUsesFrame: case CapabilityId.ICapAutomaticCropUsesFrame:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapAutomaticDeskew: case CapabilityId.ICapAutomaticDeskew:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapAutomaticLengthDetection: case CapabilityId.ICapAutomaticLengthDetection:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapAutomaticRotate: case CapabilityId.ICapAutomaticRotate:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapAutoSize: case CapabilityId.ICapAutoSize:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapBarcodeDetectionEnabled: case CapabilityId.ICapBarcodeDetectionEnabled:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapBarcodeMaxRetries: case CapabilityId.ICapBarcodeMaxRetries:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapBarcodeMaxSearchPriorities: case CapabilityId.ICapBarcodeMaxSearchPriorities:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapBarcodeSearchMode: case CapabilityId.ICapBarcodeSearchMode:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapBarcodeSearchPriorities: case CapabilityId.ICapBarcodeSearchPriorities:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapBarcodeTimeout: case CapabilityId.ICapBarcodeTimeout:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapBitDepth: case CapabilityId.ICapBitDepth:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapBitDepthReduction: case CapabilityId.ICapBitDepthReduction:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<BitDepthReduction>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<BitDepthReduction>();
break; break;
case CapabilityId.ICapBitOrder: case CapabilityId.ICapBitOrder:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<BitOrder>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<BitOrder>();
break; break;
case CapabilityId.ICapBitOrderCodes: case CapabilityId.ICapBitOrderCodes:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapBrightness: case CapabilityId.ICapBrightness:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapCCITTKFactor: case CapabilityId.ICapCCITTKFactor:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapColorManagementEnabled: case CapabilityId.ICapColorManagementEnabled:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapCompression: case CapabilityId.ICapCompression:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<CompressionType>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<CompressionType>();
break; break;
case CapabilityId.ICapContrast: case CapabilityId.ICapContrast:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapCustHalftone: case CapabilityId.ICapCustHalftone:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapExposureTime: case CapabilityId.ICapExposureTime:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapExtImageInfo: case CapabilityId.ICapExtImageInfo:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapFeederType: case CapabilityId.ICapFeederType:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<FeederType>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<FeederType>();
break; break;
case CapabilityId.ICapFilmType: case CapabilityId.ICapFilmType:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<FilmType>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<FilmType>();
break; break;
case CapabilityId.ICapFilter: case CapabilityId.ICapFilter:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<FilterType>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<FilterType>();
break; break;
case CapabilityId.ICapFlashUsed: case CapabilityId.ICapFlashUsed:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapFlashUsed2: case CapabilityId.ICapFlashUsed2:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapFlipRotation: case CapabilityId.ICapFlipRotation:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<FlipRotation>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<FlipRotation>();
break; break;
case CapabilityId.ICapFrames: case CapabilityId.ICapFrames:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapGamma: case CapabilityId.ICapGamma:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapHalftones: case CapabilityId.ICapHalftones:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapHighlight: case CapabilityId.ICapHighlight:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapICCProfile: case CapabilityId.ICapICCProfile:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<IccProfile>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<IccProfile>();
break; break;
case CapabilityId.ICapImageDataSet: case CapabilityId.ICapImageDataSet:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapImageFileFormat: case CapabilityId.ICapImageFileFormat:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<FileFormat>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<FileFormat>();
break; break;
case CapabilityId.ICapImageFilter: case CapabilityId.ICapImageFilter:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<ImageFilter>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<ImageFilter>();
break; break;
case CapabilityId.ICapImageMerge: case CapabilityId.ICapImageMerge:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<ImageMerge>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<ImageMerge>();
break; break;
case CapabilityId.ICapImageMergeHeightThreshold: case CapabilityId.ICapImageMergeHeightThreshold:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapJpegPixelType: case CapabilityId.ICapJpegPixelType:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<PixelType>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<PixelType>();
break; break;
case CapabilityId.ICapJpegQuality: case CapabilityId.ICapJpegQuality:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<JpegQuality>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<JpegQuality>();
break; break;
case CapabilityId.ICapJpegSubsampling: case CapabilityId.ICapJpegSubsampling:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<JpegSubsampling>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<JpegSubsampling>();
break; break;
case CapabilityId.ICapLampState: case CapabilityId.ICapLampState:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapLightPath: case CapabilityId.ICapLightPath:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<LightPath>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<LightPath>();
break; break;
case CapabilityId.ICapLightSource: case CapabilityId.ICapLightSource:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<LightSource>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<LightSource>();
break; break;
case CapabilityId.ICapMaxFrames: case CapabilityId.ICapMaxFrames:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapMinimumHeight: case CapabilityId.ICapMinimumHeight:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapMinimumWidth: case CapabilityId.ICapMinimumWidth:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapMirror: case CapabilityId.ICapMirror:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<Mirror>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<Mirror>();
break; break;
case CapabilityId.ICapNoiseFilter: case CapabilityId.ICapNoiseFilter:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<NoiseFilter>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<NoiseFilter>();
break; break;
case CapabilityId.ICapOrientation: case CapabilityId.ICapOrientation:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<OrientationType>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<OrientationType>();
break; break;
case CapabilityId.ICapOverScan: case CapabilityId.ICapOverScan:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<OverScan>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<OverScan>();
break; break;
case CapabilityId.ICapPatchCodeDetectionEnabled: case CapabilityId.ICapPatchCodeDetectionEnabled:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapPatchCodeMaxRetries: case CapabilityId.ICapPatchCodeMaxRetries:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapPatchCodeMaxSearchPriorities: case CapabilityId.ICapPatchCodeMaxSearchPriorities:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<PatchCode>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<PatchCode>();
break; break;
case CapabilityId.ICapPatchCodeSearchMode: case CapabilityId.ICapPatchCodeSearchMode:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapPatchCodeSearchPriorities: case CapabilityId.ICapPatchCodeSearchPriorities:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapPatchCodeTimeout: case CapabilityId.ICapPatchCodeTimeout:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
// TODO phys size are twfix32 // TODO phys size are twfix32
case CapabilityId.ICapPhysicalHeight: case CapabilityId.ICapPhysicalHeight:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapPhysicalWidth: case CapabilityId.ICapPhysicalWidth:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapPixelFlavor: case CapabilityId.ICapPixelFlavor:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<PixelFlavor>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<PixelFlavor>();
break; break;
case CapabilityId.ICapPixelFlavorCodes: case CapabilityId.ICapPixelFlavorCodes:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapPixelType: case CapabilityId.ICapPixelType:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<PixelType>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<PixelType>();
break; break;
case CapabilityId.ICapPlanarChunky: case CapabilityId.ICapPlanarChunky:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<PlanarChunky>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<PlanarChunky>();
break; break;
case CapabilityId.ICapRotation: case CapabilityId.ICapRotation:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<Rotation>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<Rotation>();
break; break;
case CapabilityId.ICapShadow: case CapabilityId.ICapShadow:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapSupportedBarcodeTypes: case CapabilityId.ICapSupportedBarcodeTypes:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<BarcodeType>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<BarcodeType>();
break; break;
case CapabilityId.ICapSupportedExtImageInfo: case CapabilityId.ICapSupportedExtImageInfo:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<ExtendedImageInfo>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<ExtendedImageInfo>();
break; break;
case CapabilityId.ICapSupportedPatchCodeTypes: case CapabilityId.ICapSupportedPatchCodeTypes:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<PatchCode>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<PatchCode>();
break; break;
case CapabilityId.ICapSupportedSizes: case CapabilityId.ICapSupportedSizes:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<SupportedSize>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<SupportedSize>();
break; break;
case CapabilityId.ICapThreshold: case CapabilityId.ICapThreshold:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapTiles: case CapabilityId.ICapTiles:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapTimeFill: case CapabilityId.ICapTimeFill:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapUndefinedImageSize: case CapabilityId.ICapUndefinedImageSize:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapUnits: case CapabilityId.ICapUnits:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<Unit>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<Unit>();
break; break;
case CapabilityId.ICapXferMech: case CapabilityId.ICapXferMech:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap).CastToEnum<XferMech>(); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap).CastToEnum<XferMech>();
break; break;
case CapabilityId.ICapXNativeResolution: case CapabilityId.ICapXNativeResolution:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapXResolution: case CapabilityId.ICapXResolution:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapXScaling: case CapabilityId.ICapXScaling:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapYNativeResolution: case CapabilityId.ICapYNativeResolution:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapYResolution: case CapabilityId.ICapYResolution:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapYScaling: case CapabilityId.ICapYScaling:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
case CapabilityId.ICapZoomFactor: case CapabilityId.ICapZoomFactor:
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
break; break;
default: default:
if (cap > CapabilityId.CustomBase) if (cap > CapabilityId.CustomBase)
{ {
CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGetValues(cap); CapDetailList.ItemsSource = _twainVM.CurrentSource.CapGet(cap);
} }
else else
{ {

View File

@@ -3,6 +3,7 @@ using GalaSoft.MvvmLight.Messaging;
using NTwain; using NTwain;
using NTwain.Data; using NTwain.Data;
using System; using System;
using System.Linq;
using System.IO; using System.IO;
using System.Reflection; using System.Reflection;
using System.Threading; using System.Threading;
@@ -71,7 +72,7 @@ namespace Tester.WPF
if (this.CurrentSource.CapGetCurrent(CapabilityId.ICapXferMech).ConvertToEnum<XferMech>() == XferMech.File) if (this.CurrentSource.CapGetCurrent(CapabilityId.ICapXferMech).ConvertToEnum<XferMech>() == XferMech.File)
{ {
var formats = this.CurrentSource.CapGetImageFileFormat(); var formats = this.CurrentSource.CapImageFileFormat.Get();
var wantFormat = formats.Contains(FileFormat.Tiff) ? FileFormat.Tiff : FileFormat.Bmp; var wantFormat = formats.Contains(FileFormat.Tiff) ? FileFormat.Tiff : FileFormat.Bmp;
var fileSetup = new TWSetupFileXfer var fileSetup = new TWSetupFileXfer
@@ -122,14 +123,14 @@ namespace Tester.WPF
{ {
if (State == 4) if (State == 4)
{ {
if (this.CurrentSource.CapGetPixelTypes().Contains(PixelType.BlackWhite)) if (this.CurrentSource.CapImagePixelType.Get().Contains(PixelType.BlackWhite))
{ {
this.CurrentSource.CapSetPixelType(PixelType.BlackWhite); this.CurrentSource.CapImagePixelType.Set(PixelType.BlackWhite);
} }
if (this.CurrentSource.CapGetImageXferMechs().Contains(XferMech.File)) if (this.CurrentSource.CapImageXferMech.Get().Contains(XferMech.File))
{ {
this.CurrentSource.CapSetImageXferMech(XferMech.File); this.CurrentSource.CapImageXferMech.Set(XferMech.File);
} }
var rc = this.CurrentSource.Enable(SourceEnableMode.NoUI, false, hwnd); var rc = this.CurrentSource.Enable(SourceEnableMode.NoUI, false, hwnd);

View File

@@ -273,11 +273,12 @@ namespace Tester.Winform
private void LoadSourceCaps() private void LoadSourceCaps()
{ {
var caps = _twain.CurrentSource.SupportedCaps; var src = _twain.CurrentSource;
var caps = src.SupportedCaps;
_loadingCaps = true; _loadingCaps = true;
if (groupDepth.Enabled = caps.Contains(CapabilityId.ICapPixelType)) if (groupDepth.Enabled = src.CapImagePixelType.IsSupported)
{ {
LoadDepth(); LoadDepth(src.CapImagePixelType);
} }
if (groupDPI.Enabled = caps.Contains(CapabilityId.ICapXResolution) && caps.Contains(CapabilityId.ICapYResolution)) if (groupDPI.Enabled = caps.Contains(CapabilityId.ICapXResolution) && caps.Contains(CapabilityId.ICapYResolution))
{ {
@@ -288,23 +289,28 @@ namespace Tester.Winform
{ {
LoadDuplex(); LoadDuplex();
} }
if (groupSize.Enabled = caps.Contains(CapabilityId.ICapSupportedSizes)) if (groupSize.Enabled = src.CapImageSupportedSize.IsSupported)
{ {
LoadPaperSize(); LoadPaperSize(src.CapImageSupportedSize);
} }
btnAllSettings.Enabled = caps.Contains(CapabilityId.CapEnableDSUIOnly); btnAllSettings.Enabled = caps.Contains(CapabilityId.CapEnableDSUIOnly);
_loadingCaps = false; _loadingCaps = false;
} }
private void LoadPaperSize() private void LoadPaperSize(CapabilityControl<SupportedSize> cap)
{ {
var list = _twain.CurrentSource.CapGetSupportedSizes(); var list = cap.Get();
comboSize.DataSource = list; comboSize.DataSource = list;
var cur = _twain.CurrentSource.CapGetCurrent(CapabilityId.ICapSupportedSizes).ConvertToEnum<SupportedSize>(); var cur = cap.GetCurrent();
if (list.Contains(cur)) if (list.Contains(cur))
{ {
comboSize.SelectedItem = cur; comboSize.SelectedItem = cur;
} }
var labelTest = cap.GetLabel();
if (!string.IsNullOrEmpty(labelTest))
{
groupSize.Text = labelTest;
}
} }
private void LoadDuplex() private void LoadDuplex()
@@ -324,15 +330,20 @@ namespace Tester.Winform
} }
} }
private void LoadDepth() private void LoadDepth(CapabilityControl<PixelType> cap)
{ {
var list = _twain.CurrentSource.CapGetPixelTypes(); var list = cap.Get();
comboDepth.DataSource = list; comboDepth.DataSource = list;
var cur = _twain.CurrentSource.CapGetCurrent(CapabilityId.ICapPixelType).ConvertToEnum<PixelType>(); var cur = cap.GetCurrent();
if (list.Contains(cur)) if (list.Contains(cur))
{ {
comboDepth.SelectedItem = cur; comboDepth.SelectedItem = cur;
} }
var labelTest = cap.GetLabel();
if (!string.IsNullOrEmpty(labelTest))
{
groupDepth.Text = labelTest;
}
} }
private void comboSize_SelectedIndexChanged(object sender, EventArgs e) private void comboSize_SelectedIndexChanged(object sender, EventArgs e)
@@ -340,7 +351,7 @@ namespace Tester.Winform
if (!_loadingCaps && _twain.State == 4) if (!_loadingCaps && _twain.State == 4)
{ {
var sel = (SupportedSize)comboSize.SelectedItem; var sel = (SupportedSize)comboSize.SelectedItem;
_twain.CurrentSource.CapSetSupportedSize(sel); _twain.CurrentSource.CapImageSupportedSize.Set(sel);
} }
} }
@@ -349,7 +360,7 @@ namespace Tester.Winform
if (!_loadingCaps && _twain.State == 4) if (!_loadingCaps && _twain.State == 4)
{ {
var sel = (PixelType)comboDepth.SelectedItem; var sel = (PixelType)comboDepth.SelectedItem;
_twain.CurrentSource.CapSetPixelType(sel); _twain.CurrentSource.CapImagePixelType.Set(sel);
} }
} }