diff --git a/NTwain/CapWrapper.cs b/NTwain/CapWrapper.cs
index 98f5907..11496a1 100644
--- a/NTwain/CapWrapper.cs
+++ b/NTwain/CapWrapper.cs
@@ -192,7 +192,7 @@ namespace NTwain
public bool IsSupported { get { return SupportedActions > QuerySupports.None; } }
///
- /// Gets a value indicating whether is supported.
+ /// Gets a value indicating whether is supported.
///
///
/// true if this capability can get values; otherwise, false.
@@ -248,7 +248,7 @@ namespace NTwain
public bool CanReset { get { return Supports(QuerySupports.Reset); } }
///
- /// Gets a value indicating whether is supported.
+ /// Gets a value indicating whether is supported.
///
///
/// true if this capability can set; otherwise, false.
@@ -297,7 +297,7 @@ namespace NTwain
/// Gets all the possible values of this capability.
///
///
- public IList Get()
+ public IList GetValues()
{
return _source.CapGet(Capability).Select(o => _getConvertRoutine(o)).ToList();
}
@@ -393,7 +393,7 @@ namespace NTwain
/// The value.
///
/// Simple Set() is not defined for this capability.
- public ReturnCode Set(TValue value)
+ public ReturnCode SetValue(TValue value)
{
ReturnCode rc = ReturnCode.Failure;
@@ -420,7 +420,7 @@ namespace NTwain
///
/// The value.
///
- public ReturnCode Set(TWArray value)
+ public ReturnCode SetValue(TWArray value)
{
ReturnCode rc = ReturnCode.Failure;
using (var cap = new TWCapability(Capability, value))
@@ -435,7 +435,7 @@ namespace NTwain
///
/// The value.
///
- public ReturnCode Set(TWEnumeration value)
+ public ReturnCode SetValue(TWEnumeration value)
{
ReturnCode rc = ReturnCode.Failure;
using (var cap = new TWCapability(Capability, value))
diff --git a/NTwain/CapabilityReader.cs b/NTwain/CapabilityReader.cs
index 7fa6275..2a63f93 100644
--- a/NTwain/CapabilityReader.cs
+++ b/NTwain/CapabilityReader.cs
@@ -207,109 +207,107 @@ namespace NTwain
}
break;
case ContainerType.Range:
- // horrible cast but should work.
- // in the for loop we also compare against min in case the step
- // is parsed as negative number and causes infinite loop.
- switch (ItemType)
- {
- case Data.ItemType.Fix32:
- {
- var min = (TWFix32)RangeMinValue;
- var counter = min;
- var max = (TWFix32)RangeMaxValue;
- var step = (TWFix32)RangeStepSize;
-
- for (var i = min; i >= min && i <= max; i += step)
- {
- toPopulate.Add(i);
- }
- }
- break;
- case Data.ItemType.UInt32:
- {
- var min = (uint)RangeMinValue;
- var counter = min;
- var max = (uint)RangeMaxValue;
- var step = (uint)RangeStepSize;
-
- for (var i = min; i >= min && i <= max; i += step)
- {
- toPopulate.Add(i);
- }
- }
- break;
- case Data.ItemType.Int32:
- {
- var min = (int)RangeMinValue;
- var counter = min;
- var max = (int)RangeMaxValue;
- var step = (int)RangeStepSize;
-
- for (var i = min; i >= min && i <= max; i += step)
- {
- toPopulate.Add(i);
- }
- }
- break;
- // these should never happen since TW_ENUM fields are 4 bytes but you never know
- case Data.ItemType.UInt16:
- {
- var min = (ushort)RangeMinValue;
- var counter = min;
- var max = (ushort)RangeMaxValue;
- var step = (ushort)RangeStepSize;
-
- for (var i = min; i >= min && i <= max; i += step)
- {
- toPopulate.Add(i);
- }
- }
- break;
- case Data.ItemType.Int16:
- {
- var min = (short)RangeMinValue;
- var counter = min;
- var max = (short)RangeMaxValue;
- var step = (short)RangeStepSize;
-
- for (var i = min; i >= min && i <= max; i += step)
- {
- toPopulate.Add(i);
- }
- }
- break;
- case Data.ItemType.UInt8:
- {
- var min = (byte)RangeMinValue;
- var counter = min;
- var max = (byte)RangeMaxValue;
- var step = (byte)RangeStepSize;
-
- for (var i = min; i >= min && i <= max; i += step)
- {
- toPopulate.Add(i);
- }
- }
- break;
- case Data.ItemType.Int8:
- {
- var min = (sbyte)RangeMinValue;
- var counter = min;
- var max = (sbyte)RangeMaxValue;
- var step = (sbyte)RangeStepSize;
-
- for (var i = min; i >= min && i <= max; i += step)
- {
- toPopulate.Add(i);
- }
- }
- break;
- }
+ PopulateRange(toPopulate);
break;
}
return toPopulate;
}
+ private void PopulateRange(IList