From 717d5e2418892f106f6d0ef654d9986c6ca48ac2 Mon Sep 17 00:00:00 2001 From: Eugene Wang Date: Tue, 8 Aug 2017 20:23:26 -0400 Subject: [PATCH] #90 Interface for Capabilities --- src/NTwain.Net35/NTwain.Net35.csproj | 3 + src/NTwain/CapWrapper.cs | 6 +- src/NTwain/Capabilities.cs | 2 +- src/NTwain/DataSource.cs | 2 +- src/NTwain/ICapabilities.cs | 1206 ++++++++++++++++++++++++++ src/NTwain/IDataSource.cs | 2 +- src/NTwain/NTwain.csproj | 1 + src/NTwain/Properties/VersionInfo.cs | 2 +- src/NTwain/WpfImageTools.cs | 2 +- 9 files changed, 1220 insertions(+), 6 deletions(-) create mode 100644 src/NTwain/ICapabilities.cs diff --git a/src/NTwain.Net35/NTwain.Net35.csproj b/src/NTwain.Net35/NTwain.Net35.csproj index e900e24..d44cfe1 100644 --- a/src/NTwain.Net35/NTwain.Net35.csproj +++ b/src/NTwain.Net35/NTwain.Net35.csproj @@ -79,6 +79,9 @@ DeviceEventArgs.cs + + ICapabilities.cs + ICapWrapper.cs diff --git a/src/NTwain/CapWrapper.cs b/src/NTwain/CapWrapper.cs index ee4d0cd..b757204 100644 --- a/src/NTwain/CapWrapper.cs +++ b/src/NTwain/CapWrapper.cs @@ -27,11 +27,15 @@ namespace NTwain /// The source. /// The capability. /// The value conversion routine in Get methods. - /// + /// if set to true then make this cap read-only. + /// /// source /// or /// getConversionRoutine /// + /// source + /// or + /// getConversionRoutine public CapWrapper(IDataSource source, CapabilityId capability, Func getConversionRoutine, bool readOnly) { diff --git a/src/NTwain/Capabilities.cs b/src/NTwain/Capabilities.cs index 0451334..5f888c6 100644 --- a/src/NTwain/Capabilities.cs +++ b/src/NTwain/Capabilities.cs @@ -9,7 +9,7 @@ namespace NTwain /// /// Exposes capabilities of a data source as properties. /// - public class Capabilities + public class Capabilities : ICapabilities { IDataSource _source; diff --git a/src/NTwain/DataSource.cs b/src/NTwain/DataSource.cs index 809eab5..17b183e 100644 --- a/src/NTwain/DataSource.cs +++ b/src/NTwain/DataSource.cs @@ -265,7 +265,7 @@ namespace NTwain /// /// The capabilities. /// - public Capabilities Capabilities + public ICapabilities Capabilities { get { return _caps ?? (_caps = new Capabilities(this)); } } diff --git a/src/NTwain/ICapabilities.cs b/src/NTwain/ICapabilities.cs new file mode 100644 index 0000000..6a1309a --- /dev/null +++ b/src/NTwain/ICapabilities.cs @@ -0,0 +1,1206 @@ +using System.Collections.Generic; +using NTwain.Data; + +namespace NTwain +{ + /// + /// Exposes capabilities of a data source as properties. + /// + public interface ICapabilities + { + /// + /// Gets the property to work with audio for the current source. + /// + /// + /// The audio xfer mech. + /// + ICapWrapper ACapXferMech { get; } + + + /// + /// Gets the property to work with alarms for the current source. + /// + /// + /// The alarms. + /// + ICapWrapper CapAlarms { get; } + /// + /// Gets the property to work with alarm volume for the current source. + /// + /// + /// The alarm volume. + /// + ICapWrapper CapAlarmVolume { get; } + /// + /// Gets the property to work with the name or other identifying information about the + /// Author of the image. It may include a copyright string. + /// + /// + /// The author string. + /// + ICapWrapper CapAuthor { get; } + /// + /// Gets the property to work with auto feed page flag for the current source. + /// + /// + /// The auto feed flag. + /// + ICapWrapper CapAutoFeed { get; } + /// + /// Gets the property to work with auto capture count for the current source. + /// + /// + /// The auto capture count. + /// + ICapWrapper CapAutomaticCapture { get; } + /// + /// Gets the property to work with auto-sense medium (paper source) flag. + /// + /// + /// The auto-sense medium flag. + /// + ICapWrapper CapAutomaticSenseMedium { get; } + /// + /// Gets the property to work with auto scan page flag for the current source. + /// + /// + /// The auto scan flag. + /// + ICapWrapper CapAutoScan { get; } + /// + /// Gets the property to see the remaining battery power for the device. + /// + /// + /// The battery minutes. + /// + IReadOnlyCapWrapper CapBatteryMinutes { get; } + /// + /// Gets the property to see the remaining battery percentage for the device. + /// + /// + /// The battery percentage. + /// + IReadOnlyCapWrapper CapBatteryPercentage { get; } + /// + /// Gets the property to work with camera enabled flag. + /// + /// + /// The camera enabled flag. + /// + ICapWrapper CapCameraEnabled { get; } + /// + /// Gets the property to work with camera order for the current source. + /// + /// + /// The camera order setting. + /// + ICapWrapper CapCameraOrder { get; } + /// + /// Gets the property to see whether device supports camera preview UI flag. + /// + /// + /// The camera preview UI flag. + /// + IReadOnlyCapWrapper CapCameraPreviewUI { get; } + /// + /// Gets the property to work with camera side for the current source. + /// + /// + /// The camera side. + /// + ICapWrapper CapCameraSide { get; } + /// + /// Gets the property to work with the general note about the acquired image. + /// + /// + /// The general note string. + /// + ICapWrapper CapCaption { get; } + /// + /// Gets the property to work with the clear buffers option for the current source. + /// + /// + /// The clear buffers option. + /// + ICapWrapper CapClearBuffers { get; } + /// + /// Gets the property to work with clear page flag for the current source. + /// + /// + /// The clear page flag. + /// + ICapWrapper CapClearPage { get; } + /// + /// Gets the property to see whether device supports custom data triplets. + /// + /// + /// The custom data flag. + /// + IReadOnlyCapWrapper CapCustomDSData { get; } + /// + /// Gets the property for device interface guid. + /// + /// + /// The device interface guid. + /// + IReadOnlyCapWrapper CapCustomInterfaceGuid { get; } + /// + /// Gets the property to work with the reported device events for the current source. + /// + /// + /// The reported device events. + /// + ICapWrapper CapDeviceEvent { get; } + /// + /// Gets the property to work with devince online flag for the current source. + /// + /// + /// The devince online flag. + /// + IReadOnlyCapWrapper CapDeviceOnline { get; } + /// + /// Gets the property to work with the device's time and date. + /// + /// + /// The device time and date. + /// + ICapWrapper CapDeviceTimeDate { get; } + /// + /// Gets the property to work with double feed detection option for the current source. + /// + /// + /// The double feed detection option. + /// + ICapWrapper CapDoubleFeedDetection { get; } + /// + /// Gets the property to work with double feed detection length for the current source. + /// + /// + /// The double feed detection length. + /// + ICapWrapper CapDoubleFeedDetectionLength { get; } + /// + /// Gets the property to work with double feed detection response for the current source. + /// + /// + /// The double feed detection response. + /// + ICapWrapper CapDoubleFeedDetectionResponse { get; } + /// + /// Gets the property to work with double feed detection sensitivity for the current source. + /// + /// + /// The double feed detection sensitivity. + /// + ICapWrapper CapDoubleFeedDetectionSensitivity { get; } + /// + /// Gets the property to see what's the duplex mode for the current source. + /// + /// + /// The duplex mode. + /// + IReadOnlyCapWrapper CapDuplex { get; } + /// + /// Gets the property to work with duplex enabled flag for the current source. + /// + /// + /// The duplex enabled flag. + /// + ICapWrapper CapDuplexEnabled { get; } + /// + /// Gets the property to see whether device supports UI only flag (no transfer). + /// + /// + /// The UI only flag. + /// + IReadOnlyCapWrapper CapEnableDSUIOnly { get; } + /// + /// Gets the property to work with endorser for the current source. + /// + /// + /// The endorser option. + /// + ICapWrapper CapEndorser { get; } + /// + /// Gets the extended caps for the current source. + /// + /// + /// The extended caps. + /// + ICapWrapper CapExtendedCaps { get; } + /// + /// Gets the property to work with feeder alignment for the current source. + /// + /// + /// The feeder alignment. + /// + ICapWrapper CapFeederAlignment { get; } + /// + /// Gets the property to work with feeder enabled flag for the current source. + /// + /// + /// The feeder enabled flag. + /// + ICapWrapper CapFeederEnabled { get; } + /// + /// Gets the property to work with feeder loaded flag for the current source. + /// + /// + /// The feeder loaded flag. + /// + IReadOnlyCapWrapper CapFeederLoaded { get; } + /// + /// Gets the property to work with feeder order for the current source. + /// + /// + /// The feeder order. + /// + ICapWrapper CapFeederOrder { get; } + /// + /// Gets the property to work with feeder pocket for the current source. + /// + /// + /// The feeder pocket setting. + /// + ICapWrapper CapFeederPocket { get; } + /// + /// Gets the property to work with feeder prep flag. + /// + /// + /// The feeder prep flag. + /// + ICapWrapper CapFeederPrep { get; } + /// + /// Gets the property to work with feed page flag for the current source. + /// + /// + /// The feed page flag. + /// + ICapWrapper CapFeedPage { get; } + /// + /// Gets the property to work with indicators flag for the current source. + /// + /// + /// The indicators flag. + /// + ICapWrapper CapIndicators { get; } + /// + /// Gets the property to work with diplayed indicators for the current source. + /// + /// + /// The diplayed indicators. + /// + ICapWrapper CapIndicatorsMode { get; } + /// + /// Gets the property to work with job control option for the current source. + /// + /// + /// The job control option. + /// + ICapWrapper CapJobControl { get; } + /// + /// Gets the property to work with string data language for the current source. + /// + /// + /// The language. + /// + ICapWrapper CapLanguage { get; } + /// + /// Gets the property to work with the max buffered pages for the current source. + /// + /// + /// The max batch buffered pages. + /// + ICapWrapper CapMaxBatchBuffers { get; } + /// + /// Gets the property to work with check scanning support flag. + /// + /// + /// The check scanning support flag. + /// + ICapWrapper CapMicrEnabled { get; } + /// + /// Gets the property to work with paper sensor flag for the current source. + /// + /// + /// The paper sensor flag. + /// + IReadOnlyCapWrapper CapPaperDetectable { get; } + /// + /// Gets the property to work with paper handling option for the current source. + /// + /// + /// The paper handling option. + /// + ICapWrapper CapPaperHandling { get; } + /// + /// Gets the property to work with camera power down time (seconds) for the current source. + /// + /// + /// The camera power down time. + /// + ICapWrapper CapPowerSaveTime { get; } + /// + /// Gets the property to see current device's power supply. + /// + /// + /// The power supply indicator. + /// + IReadOnlyCapWrapper CapPowerSupply { get; } + /// + /// Gets the property to work with printer list for the current source. + /// + /// + /// The printer list. + /// + ICapWrapper CapPrinter { get; } + /// + /// Gets the property to work with printer character rotation for the current source. + /// + /// + /// The printer character rotation. + /// + ICapWrapper CapPrinterCharRotation { get; } + /// + /// Gets the property to work with printer enabled flag. + /// + /// + /// The printer enabled flag. + /// + ICapWrapper CapPrinterEnabled { get; } + /// + /// Gets the property to work with printer font style for the current source. + /// + /// + /// The printer font style. + /// + ICapWrapper CapPrinterFontStyle { get; } + /// + /// Gets the property to work with the starting printer index for the current source. + /// + /// + /// The printer index. + /// + ICapWrapper CapPrinterIndex { get; } + /// + /// Set the character to be used for filling the leading digits before the counter value if the + /// counter digits are fewer than . + /// + /// + /// The printer leading string. + /// + ICapWrapper CapPrinterIndexLeadChar { get; } + /// + /// Gets the property to work with printer index max value for the current source. + /// + /// + /// The printer index max value. + /// + ICapWrapper CapPrinterIndexMaxValue { get; } + /// + /// Gets the property to work with printer number digits value for the current source. + /// + /// + /// The printer number digits value. + /// + ICapWrapper CapPrinterIndexNumDigits { get; } + /// + /// Gets the property to work with printer index step value for the current source. + /// + /// + /// The printer index step value. + /// + ICapWrapper CapPrinterIndexStep { get; } + /// + /// Gets the property to work with printer index trigger for the current source. + /// + /// + /// The printer index trigger. + /// + ICapWrapper CapPrinterIndexTrigger { get; } + /// + /// Gets the property to work with printer mode for the current source. + /// + /// + /// The printer mode. + /// + ICapWrapper CapPrinterMode { get; } + /// + /// Specifies the string(s) that are to be used in the string component when the current + /// device is enabled. + /// + /// + /// The printer string. + /// + ICapWrapper CapPrinterString { get; } + /// + /// Gets the next print values. + /// + /// + /// The next print values. + /// + IReadOnlyCapWrapper CapPrinterStringPreview { get; } + /// + /// Specifies the string that shall be used as the current device’s suffix. + /// + /// + /// The printer suffix string. + /// + ICapWrapper CapPrinterSuffix { get; } + /// + /// Gets the property to work with printer y-offset for the current source. + /// + /// + /// The printer y-offset. + /// + ICapWrapper CapPrinterVerticalOffset { get; } + /// + /// Gets the property to see whether device supports reacquire flag. + /// + /// + /// The reacquire flag. + /// + IReadOnlyCapWrapper CapReacquireAllowed { get; } + /// + /// Gets the property to work with rewind page flag for the current source. + /// + /// + /// The rewind page flag. + /// + ICapWrapper CapRewindPage { get; } + /// + /// Gets the property to work with segmentation setting for the current source. + /// + /// + /// The segmentation setting. + /// + ICapWrapper CapSegmented { get; } + /// + /// Gets the property for device serial number. + /// + /// + /// The device serial number. + /// + IReadOnlyCapWrapper CapSerialNumber { get; } + /// + /// Gets the supported caps for the current source. This is not supported by all sources. + /// + /// + /// The supported caps. + /// + IReadOnlyCapWrapper CapSupportedCaps { get; } + /// + /// Gets the supported caps for unique segments for the current source. + /// + /// + /// The supported caps for unique segments. + /// + IReadOnlyCapWrapper CapSupportedCapsSegmentUnique { get; } + /// + /// Gets the supported caps for supported DATs. + /// + /// + /// The supported DATs. + /// + IReadOnlyCapWrapper CapSupportedDATs { get; } + /// + /// Gets the property to work with thumbnails enabled flag for the current source. + /// + /// + /// The thumbnails enabled flag. + /// + ICapWrapper CapThumbnailsEnabled { get; } + /// + /// Gets the property to work with the time before first capture (milliseconds) for the current source. + /// + /// + /// The time before first capture. + /// + ICapWrapper CapTimeBeforeFirstCapture { get; } + /// + /// Gets the property to work with the time between captures (milliseconds) for the current source. + /// + /// + /// The time between captures. + /// + ICapWrapper CapTimeBetweenCaptures { get; } + /// + /// Gets the property to get the image acquired time and date. + /// + /// + /// The time and date string. + /// + IReadOnlyCapWrapper CapTimeDate { get; } + /// + /// Gets the property to work with UI controllable flag for the current source. + /// + /// + /// The UI controllable flag. + /// + IReadOnlyCapWrapper CapUIControllable { get; } + /// + /// Gets the property to work with xfer count for the current source. + /// + /// + /// The xfer count. + /// + ICapWrapper CapXferCount { get; } + + + /// + /// Gets the property to work with image auto brightness flag for the current source. + /// + /// + /// The image auto brightness flag. + /// + ICapWrapper ICapAutoBright { get; } + /// + /// Gets the property to work with image blank page behavior for the current source. + /// + /// + /// The image blank page behavior. + /// + ICapWrapper ICapAutoDiscardBlankPages { get; } + /// + /// Gets the property to work with auto border detection flag for the current source. + /// + /// + /// The auto border detection flag. + /// + ICapWrapper ICapAutomaticBorderDetection { get; } + /// + /// Gets the property to work with image auto color detection flag for the current source. + /// + /// + /// The image auto color detection flag. + /// + ICapWrapper ICapAutomaticColorEnabled { get; } + /// + /// Gets the property to work with image auto non-color pixel type for the current source. + /// + /// + /// The image auto non-color pixel type. + /// + ICapWrapper ICapAutomaticColorNonColorPixelType { get; } + /// + /// Gets the property to work with image auto crop flag for the current source. + /// + /// + /// The image auto crop flag. + /// + IReadOnlyCapWrapper ICapAutomaticCropUsesFrame { get; } + /// + /// Gets the property to work with image auto deskew flag for the current source. + /// + /// + /// The image auto deskew flag. + /// + ICapWrapper ICapAutomaticDeskew { get; } + /// + /// Gets the property to work with image auto length detection flag for the current source. + /// + /// + /// The image auto length detection flag. + /// + ICapWrapper ICapAutomaticLengthDetection { get; } + /// + /// Gets the property to work with image auto rotate flag for the current source. + /// + /// + /// The image auto rotate flag. + /// + ICapWrapper ICapAutomaticRotate { get; } + /// + /// Gets the property to work with image auto size option for the current source. + /// + /// + /// The image auto size option. + /// + ICapWrapper ICapAutoSize { get; } + /// + /// Gets the property to work with image barcode detection flag for the current source. + /// + /// + /// The image barcode detection flag. + /// + ICapWrapper ICapBarcodeDetectionEnabled { get; } + /// + /// Gets the property to work with image barcode max search retries for the current source. + /// + /// + /// The image barcode max search retries. + /// + ICapWrapper ICapBarcodeMaxRetries { get; } + /// + /// Gets the property to work with image barcode max search priorities for the current source. + /// + /// + /// The image barcode max search priorities. + /// + ICapWrapper ICapBarcodeMaxSearchPriorities { get; } + /// + /// Gets the property to work with image barcode search direction for the current source. + /// + /// + /// The image barcode search direction. + /// + ICapWrapper ICapBarcodeSearchMode { get; } + /// + /// Gets the property to work with image barcode search priority for the current source. + /// + /// + /// The image barcode search priority. + /// + ICapWrapper ICapBarcodeSearchPriorities { get; } + /// + /// Gets the property to work with image barcode max search timeout for the current source. + /// + /// + /// The image barcode max search timeout. + /// + ICapWrapper ICapBarcodeTimeout { get; } + /// + /// Gets the property to work with image bit depth for the current source. + /// + /// + /// The image bit depth. + /// + ICapWrapper ICapBitDepth { get; } + /// + /// Gets the property to work with image bit depth reduction method for the current source. + /// + /// + /// The image bit depth reduction method. + /// + ICapWrapper ICapBitDepthReduction { get; } + /// + /// Gets the property to work with image for the current source. + /// + /// + /// The image bit order. + /// + ICapWrapper ICapBitOrder { get; } + /// + /// Gets the property to work with image CCITT compression for the current source. + /// + /// + /// The image bit order for CCITT compression. + /// + ICapWrapper ICapBitOrderCodes { get; } + /// + /// Gets the property to work with image brightness for the current source. + /// + /// + /// The image brightness. + /// + ICapWrapper ICapBrightness { get; } + /// + /// Gets the property to work with image CCITT K factor for the current source. + /// + /// + /// The image CCITT K factor. + /// + ICapWrapper ICapCCITTKFactor { get; } + /// + /// Gets the property to work with image color management flag for the current source. + /// + /// + /// The image color management flag. + /// + ICapWrapper ICapColorManagementEnabled { get; } + /// + /// Gets the property to work with image for the current source. + /// + /// + /// The image compression. + /// + ICapWrapper ICapCompression { get; } + /// + /// Gets the property to work with image contrast for the current source. + /// + /// + /// The image contrast. + /// + ICapWrapper ICapContrast { get; } + /// + /// Gets the property to work with image square-cell halftone for the current source. + /// + /// + /// The image square-cell halftone. + /// + ICapWrapper ICapCustHalftone { get; } + /// + /// Gets the property to work with image exposure time (in seconds) for the current source. + /// + /// + /// The image exposure time. + /// + ICapWrapper ICapExposureTime { get; } + /// + /// Gets the property to work with ext image info flag for the current source. + /// + /// + /// The ext image info flag. + /// + ICapWrapper ICapExtImageInfo { get; } + /// + /// Gets the property to work with feeder type for the current source. + /// + /// + /// The feeder type. + /// + ICapWrapper ICapFeederType { get; } + /// + /// Gets the property to work with image film type for the current source. + /// + /// + /// The image film type. + /// + ICapWrapper ICapFilmType { get; } + /// + /// Gets the property to work with image color filter for the current source. + /// + /// + /// The image color filter type. + /// + ICapWrapper ICapFilter { get; } + /// + /// Gets the property to work with flash option for the current source. + /// + /// + /// The flash option. + /// + ICapWrapper ICapFlashUsed2 { get; } + /// + /// Gets the property to work with image flip-rotation behavior for the current source. + /// + /// + /// The image flip-rotation behavior. + /// + ICapWrapper ICapFlipRotation { get; } + /// + /// Gets the property to work with the list of frames the source will acquire on each page. + /// + /// + /// The capture frames. + /// + ICapWrapper ICapFrames { get; } + /// + /// Gets the property to work with image gamma value for the current source. + /// + /// + /// The image gamma. + /// + ICapWrapper ICapGamma { get; } + /// + /// Gets the property to work with image halftone patterns for the current source. + /// + /// + /// The image halftone patterns. + /// + ICapWrapper ICapHalftones { get; } + /// + /// Gets the property to work with image highlight value for the current source. + /// + /// + /// The image highlight. + /// + ICapWrapper ICapHighlight { get; } + /// + /// Gets the property to work with image icc profile for the current source. + /// + /// + /// The image icc profile. + /// + ICapWrapper ICapICCProfile { get; } + /// + /// Gets or sets the image indices that will be delivered during the standard image transfer done in + /// States 6 and 7. + /// + /// + /// The image indicies. + /// + ICapWrapper ICapImageDataSet { get; } + /// + /// Gets the property to work with image for the current source. + /// + /// + /// The image file format. + /// + ICapWrapper ICapImageFileFormat { get; } + /// + /// Gets the property to work with image enhancement filter for the current source. + /// + /// + /// The image enhancement filter. + /// + ICapWrapper ICapImageFilter { get; } + /// + /// Gets the property to work with image merge option for the current source. + /// + /// + /// The image merge option. + /// + ICapWrapper ICapImageMerge { get; } + /// + /// Gets the property to work with image merge height threshold for the current source. + /// + /// + /// The image merge height threshold. + /// + ICapWrapper ICapImageMergeHeightThreshold { get; } + /// + /// Gets the property to work with image jpeg compression for the current source. + /// + /// + /// The image pixel type for jpeg compression. + /// + ICapWrapper ICapJpegPixelType { get; } + /// + /// Gets the property to work with image jpeg quality for the current source. + /// + /// + /// The image jpeg quality. + /// + ICapWrapper ICapJpegQuality { get; } + /// + /// Gets the property to work with image jpeg sub sampling for the current source. + /// + /// + /// The image jpeg sub sampling. + /// + ICapWrapper ICapJpegSubsampling { get; } + /// + /// Gets the property to work with image lamp state flag for the current source. + /// + /// + /// The image lamp state flag. + /// + ICapWrapper ICapLampState { get; } + /// + /// Gets the property to work with image light path for the current source. + /// + /// + /// The image light path. + /// + ICapWrapper ICapLightPath { get; } + /// + /// Gets the property to work with image light source for the current source. + /// + /// + /// The image light source. + /// + ICapWrapper ICapLightSource { get; } + /// + /// Gets the property to work with image max frames for the current source. + /// + /// + /// The image max frames. + /// + ICapWrapper ICapMaxFrames { get; } + /// + /// Gets the property to work with image minimum height for the current source. + /// + /// + /// The image minimumm height. + /// + IReadOnlyCapWrapper ICapMinimumHeight { get; } + /// + /// Gets the property to work with image minimum width for the current source. + /// + /// + /// The image minimumm width. + /// + IReadOnlyCapWrapper ICapMinimumWidth { get; } + /// + /// Gets the property to work with image mirror option for the current source. + /// + /// + /// The image mirror option. + /// + ICapWrapper ICapMirror { get; } + /// + /// Gets the property to work with image noise filter for the current source. + /// + /// + /// The image noise filter. + /// + ICapWrapper ICapNoiseFilter { get; } + /// + /// Gets the property to work with image orientation for the current source. + /// + /// + /// The image orientation. + /// + ICapWrapper ICapOrientation { get; } + /// + /// Gets the property to work with image overscan option for the current source. + /// + /// + /// The image overscan option. + /// + ICapWrapper ICapOverScan { get; } + /// + /// Gets the property to work with image patch code detection flag for the current source. + /// + /// + /// The image patch code detection flag. + /// + ICapWrapper ICapPatchCodeDetectionEnabled { get; } + /// + /// Gets the property to work with image patch code max search retries for the current source. + /// + /// + /// The image patch code max search retries. + /// + ICapWrapper ICapPatchCodeMaxRetries { get; } + /// + /// Gets the property to work with image patch code max search priorities for the current source. + /// + /// + /// The image patch code max search priorities. + /// + ICapWrapper ICapPatchCodeMaxSearchPriorities { get; } + /// + /// Gets the property to work with image patch code search direction for the current source. + /// + /// + /// The image patch code search direction. + /// + ICapWrapper ICapPatchCodeSearchMode { get; } + /// + /// Gets the property to work with image patch code search priority for the current source. + /// + /// + /// The image patch code search priority. + /// + ICapWrapper ICapPatchCodeSearchPriorities { get; } + /// + /// Gets the property to work with image patch code max search timeout for the current source. + /// + /// + /// The image patch code max search timeout. + /// + ICapWrapper ICapPatchCodeTimeout { get; } + /// + /// Gets the property to work with image physical height for the current source. + /// + /// + /// The image physical height. + /// + IReadOnlyCapWrapper ICapPhysicalHeight { get; } + /// + /// Gets the property to work with image physical width for the current source. + /// + /// + /// The image physical width. + /// + IReadOnlyCapWrapper ICapPhysicalWidth { get; } + /// + /// Gets the property to work with image pixel flavor for the current source. + /// + /// + /// The image pixel flavor. + /// + ICapWrapper ICapPixelFlavor { get; } + /// + /// Gets the property to work with image CCITT compression for the current source. + /// + /// + /// The image pixel flavor for CCITT compression. + /// + ICapWrapper ICapPixelFlavorCodes { get; } + /// + /// Gets the property to work with image for the current source. + /// + /// + /// The image pixel type. + /// + ICapWrapper ICapPixelType { get; } + /// + /// Gets the property to work with image color format for the current source. + /// + /// + /// The image color format. + /// + ICapWrapper ICapPlanarChunky { get; } + /// + /// Gets the property to work with image rotation for the current source. + /// + /// + /// The image rotation. + /// + ICapWrapper ICapRotation { get; } + /// + /// Gets the property to work with image shadow value for the current source. + /// + /// + /// The image shadow. + /// + ICapWrapper ICapShadow { get; } + /// + /// Gets the property to work with image barcode types for the current source. + /// + /// + /// The image barcode types. + /// + IReadOnlyCapWrapper ICapSupportedBarcodeTypes { get; } + /// + /// Gets the property to get supported ext image info for the current source. + /// + /// + /// The supported ext image info. + /// + IReadOnlyCapWrapper ICapSupportedExtImageInfo { get; } + /// + /// Gets the property to work with image patch code types for the current source. + /// + /// + /// The image patch code types. + /// + IReadOnlyCapWrapper ICapSupportedPatchCodeTypes { get; } + /// + /// Gets the property to work with image for the current source. + /// + /// + /// The image supported size. + /// + ICapWrapper ICapSupportedSizes { get; } + /// + /// Gets the property to work with image threshold for the current source. + /// + /// + /// The image threshold. + /// + ICapWrapper ICapThreshold { get; } + /// + /// Gets the property to work with image tiles flag for the current source. + /// + /// + /// The image tiles flag. + /// + ICapWrapper ICapTiles { get; } + /// + /// Gets the property to work with image CCITT time fill for the current source. + /// + /// + /// The image CCITT time fill. + /// + ICapWrapper ICapTimeFill { get; } + /// + /// Gets the property to work with image undefined size flag for the current source. + /// + /// + /// The image undefined size flag. + /// + ICapWrapper ICapUndefinedImageSize { get; } + /// + /// Gets the property to work with image for the current source. + /// + /// + /// The image unit of measure. + /// + ICapWrapper ICapUnits { get; } + /// + /// Gets the property to work with image for the current source. + /// + /// + /// The image xfer mech. + /// + ICapWrapper ICapXferMech { get; } + /// + /// Gets the property to work with image's native x-axis resolution for the current source. + /// + /// + /// The image's native x-axis resolution. + /// + IReadOnlyCapWrapper ICapXNativeResolution { get; } + /// + /// Gets the property to work with image x-axis resolution for the current source. + /// + /// + /// The image x-axis resolution. + /// + ICapWrapper ICapXResolution { get; } + /// + /// Gets the property to work with image x-axis scaling for the current source. + /// + /// + /// The image x-axis scaling. + /// + ICapWrapper ICapXScaling { get; } + /// + /// Gets the property to work with image's native y-axis resolution for the current source. + /// + /// + /// The image's native y-axis resolution. + /// + IReadOnlyCapWrapper ICapYNativeResolution { get; } + /// + /// Gets the property to work with image y-axis resolution for the current source. + /// + /// + /// The image y-axis resolution. + /// + ICapWrapper ICapYResolution { get; } + /// + /// Gets the property to work with image y-axis scaling for the current source. + /// + /// + /// The image y-axis scaling. + /// + ICapWrapper ICapYScaling { get; } + /// + /// Gets the property to work with image zoom factor for the current source. + /// + /// + /// The image zoom factor. + /// + ICapWrapper ICapZoomFactor { get; } + + + /// + /// Gets the current value for a capability. + /// + /// The capability id. + /// + object GetCurrent(CapabilityId capabilityId); + /// + /// Gets the default value for a capability. + /// + /// The capability id. + /// + object GetDefault(CapabilityId capabilityId); + /// + /// A general method that tries to get capability values from current . + /// + /// The capability id. + /// + IEnumerable GetValues(CapabilityId capabilityId); + /// + /// Gets all the possible values of this capability without expanding. + /// This may be required to work with large range values that cannot be safely enumerated + /// with . + /// + /// The capability id. + /// + CapabilityReader GetValuesRaw(CapabilityId capabilityId); + /// + /// Gets the actual supported operations for a capability. This is not supported by all sources. + /// + /// The capability id. + /// + QuerySupports? QuerySupport(CapabilityId capabilityId); + /// + /// Resets the current value to power-on default. + /// + /// The capability id. + /// + ReturnCode Reset(CapabilityId capabilityId); + /// + /// Resets all values and constraint to power-on defaults. + /// + /// + ReturnCode ResetAll(); + } +} \ No newline at end of file diff --git a/src/NTwain/IDataSource.cs b/src/NTwain/IDataSource.cs index 6efc3d2..eee29be 100644 --- a/src/NTwain/IDataSource.cs +++ b/src/NTwain/IDataSource.cs @@ -78,7 +78,7 @@ namespace NTwain /// /// The capabilities. /// - Capabilities Capabilities { get; } + ICapabilities Capabilities { get; } /// /// Gets or sets the current settings (CustomDSData) of this source if supported. diff --git a/src/NTwain/NTwain.csproj b/src/NTwain/NTwain.csproj index b1f3b01..10d66ac 100644 --- a/src/NTwain/NTwain.csproj +++ b/src/NTwain/NTwain.csproj @@ -62,6 +62,7 @@ + diff --git a/src/NTwain/Properties/VersionInfo.cs b/src/NTwain/Properties/VersionInfo.cs index ceb164a..bf0fb5f 100644 --- a/src/NTwain/Properties/VersionInfo.cs +++ b/src/NTwain/Properties/VersionInfo.cs @@ -23,7 +23,7 @@ namespace NTwain /// /// The build release version number. /// - public const string Build = "3.4.2"; // change this for each nuget release + public const string Build = "3.5.0"; // change this for each nuget release } diff --git a/src/NTwain/WpfImageTools.cs b/src/NTwain/WpfImageTools.cs index cada72d..2b0dae9 100644 --- a/src/NTwain/WpfImageTools.cs +++ b/src/NTwain/WpfImageTools.cs @@ -10,7 +10,7 @@ namespace NTwain /// public static class WpfImageTools { - // + /// /// Loads a into WPF . The image created /// will be a copy so the stream can be disposed once this call returns. ///