Hid some more triplets.

This commit is contained in:
soukoku
2014-05-22 21:05:28 -04:00
parent 5d1b0aa06f
commit 407a529268
8 changed files with 190 additions and 146 deletions

View File

@@ -96,5 +96,12 @@ namespace NTwain
/// <param name="session">The session.</param> /// <param name="session">The session.</param>
/// <returns></returns> /// <returns></returns>
TWStatus GetStatus(); TWStatus GetStatus();
/// <summary>
/// Gets the manager status. Only call this at state 3 or higher.
/// </summary>
/// <param name="session">The session.</param>
/// <returns></returns>
TWStatusUtf8 GetStatusUtf8();
} }
} }

View File

@@ -6,10 +6,10 @@ namespace NTwain.Triplets
/// <summary> /// <summary>
/// Represents <see cref="DataArgumentType.DeviceEvent"/>. /// Represents <see cref="DataArgumentType.DeviceEvent"/>.
/// </summary> /// </summary>
public sealed class DeviceEvent : OpBase sealed class DeviceEvent : OpBase
{ {
internal DeviceEvent(ITwainSessionInternal session) : base(session) { } internal DeviceEvent(ITwainSessionInternal session) : base(session) { }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", MessageId = "0#")]
public ReturnCode Get(out TWDeviceEvent sourceDeviceEvent) public ReturnCode Get(out TWDeviceEvent sourceDeviceEvent)
{ {
Session.VerifyState(4, 7, DataGroups.Control, DataArgumentType.DeviceEvent, Message.Get); Session.VerifyState(4, 7, DataGroups.Control, DataArgumentType.DeviceEvent, Message.Get);

View File

@@ -6,7 +6,7 @@ namespace NTwain.Triplets
/// <summary> /// <summary>
/// Represents <see cref="DataArgumentType.StatusUtf8"/>. /// Represents <see cref="DataArgumentType.StatusUtf8"/>.
/// </summary> /// </summary>
public sealed class StatusUtf8 : OpBase sealed class StatusUtf8 : OpBase
{ {
internal StatusUtf8(ITwainSessionInternal session) : base(session) { } internal StatusUtf8(ITwainSessionInternal session) : base(session) { }
@@ -16,8 +16,9 @@ namespace NTwain.Triplets
/// </summary> /// </summary>
/// <param name="status">The status.</param> /// <param name="status">The status.</param>
/// <returns></returns> /// <returns></returns>
public ReturnCode GetManager(TWStatusUtf8 status) public ReturnCode GetManager(out TWStatusUtf8 status)
{ {
status = new TWStatusUtf8();
Session.VerifyState(3, 7, DataGroups.Control, DataArgumentType.StatusUtf8, Message.Get); Session.VerifyState(3, 7, DataGroups.Control, DataArgumentType.StatusUtf8, Message.Get);
return Dsm.DsmEntry(Session.AppId, null, Message.Get, status); return Dsm.DsmEntry(Session.AppId, null, Message.Get, status);
} }
@@ -28,8 +29,9 @@ namespace NTwain.Triplets
/// </summary> /// </summary>
/// <param name="status">The status.</param> /// <param name="status">The status.</param>
/// <returns></returns> /// <returns></returns>
public ReturnCode GetSource(TWStatusUtf8 status) public ReturnCode GetSource(out TWStatusUtf8 status)
{ {
status = new TWStatusUtf8();
Session.VerifyState(3, 7, DataGroups.Control, DataArgumentType.StatusUtf8, Message.Get); Session.VerifyState(3, 7, DataGroups.Control, DataArgumentType.StatusUtf8, Message.Get);
return Dsm.DsmEntry(Session.AppId, Session.CurrentSource.Identity, Message.Get, status); return Dsm.DsmEntry(Session.AppId, Session.CurrentSource.Identity, Message.Get, status);
} }

View File

@@ -62,7 +62,7 @@ namespace NTwain.Triplets
} }
} }
DeviceEvent _deviceEvent; DeviceEvent _deviceEvent;
public DeviceEvent DeviceEvent internal DeviceEvent DeviceEvent
{ {
get get
{ {
@@ -163,7 +163,7 @@ namespace NTwain.Triplets
} }
} }
StatusUtf8 _statusUtf8; StatusUtf8 _statusUtf8;
public StatusUtf8 StatusUtf8 internal StatusUtf8 StatusUtf8
{ {
get get
{ {

View File

@@ -6,16 +6,15 @@ namespace NTwain.Triplets
/// <summary> /// <summary>
/// Represents <see cref="DataArgumentType.ImageInfo"/>. /// Represents <see cref="DataArgumentType.ImageInfo"/>.
/// </summary> /// </summary>
public sealed class ImageInfo : OpBase sealed class ImageInfo : OpBase
{ {
internal ImageInfo(ITwainSessionInternal session) : base(session) { } internal ImageInfo(ITwainSessionInternal session) : base(session) { }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", MessageId = "0#")]
public ReturnCode Get(out TWImageInfo info) public ReturnCode Get(out TWImageInfo info)
{ {
Session.VerifyState(6, 7, DataGroups.Image, DataArgumentType.ImageInfo, Message.Get); Session.VerifyState(6, 7, DataGroups.Image, DataArgumentType.ImageInfo, Message.Get);
info = new TWImageInfo(); info = new TWImageInfo();
return Dsm.DsmEntry(Session.AppId, Session.CurrentSource.Identity, Message.Get, info); return Dsm.DsmEntry(Session.AppId, Session.CurrentSource.Identity, Message.Get, info);
} }
} }
} }

View File

@@ -5,35 +5,35 @@ namespace NTwain.Triplets
{ {
/// <summary> /// <summary>
/// Represents <see cref="DataGroups.Image"/>. /// Represents <see cref="DataGroups.Image"/>.
/// </summary> /// </summary>
public sealed class DGImage public sealed class DGImage
{ {
ITwainSessionInternal _session; ITwainSessionInternal _session;
internal DGImage(ITwainSessionInternal session) internal DGImage(ITwainSessionInternal session)
{ {
if (session == null) { throw new ArgumentNullException("session"); } if (session == null) { throw new ArgumentNullException("session"); }
_session = session; _session = session;
} }
CieColor _cieColor; CieColor _cieColor;
public CieColor CieColor public CieColor CieColor
{ {
get get
{ {
if (_cieColor == null) { _cieColor = new CieColor(_session); } if (_cieColor == null) { _cieColor = new CieColor(_session); }
return _cieColor; return _cieColor;
} }
} }
ExtImageInfo _extImgInfo; ExtImageInfo _extImgInfo;
public ExtImageInfo ExtImageInfo public ExtImageInfo ExtImageInfo
{ {
get get
{ {
if (_extImgInfo == null) { _extImgInfo = new ExtImageInfo(_session); } if (_extImgInfo == null) { _extImgInfo = new ExtImageInfo(_session); }
return _extImgInfo; return _extImgInfo;
} }
} }
@@ -47,117 +47,117 @@ namespace NTwain.Triplets
} }
} }
GrayResponse _grayResponse; GrayResponse _grayResponse;
public GrayResponse GrayResponse public GrayResponse GrayResponse
{ {
get get
{ {
if (_grayResponse == null) { _grayResponse = new GrayResponse(_session); } if (_grayResponse == null) { _grayResponse = new GrayResponse(_session); }
return _grayResponse; return _grayResponse;
} }
} }
IccProfile _iccProfile; IccProfile _iccProfile;
public IccProfile IccProfile public IccProfile IccProfile
{ {
get get
{ {
if (_iccProfile == null) { _iccProfile = new IccProfile(_session); } if (_iccProfile == null) { _iccProfile = new IccProfile(_session); }
return _iccProfile; return _iccProfile;
} }
} }
ImageFileXfer _imgFileXfer; ImageFileXfer _imgFileXfer;
internal ImageFileXfer ImageFileXfer internal ImageFileXfer ImageFileXfer
{ {
get get
{ {
if (_imgFileXfer == null) { _imgFileXfer = new ImageFileXfer(_session); } if (_imgFileXfer == null) { _imgFileXfer = new ImageFileXfer(_session); }
return _imgFileXfer; return _imgFileXfer;
} }
} }
ImageInfo _imgInfo; ImageInfo _imgInfo;
public ImageInfo ImageInfo internal ImageInfo ImageInfo
{ {
get get
{ {
if (_imgInfo == null) { _imgInfo = new ImageInfo(_session); } if (_imgInfo == null) { _imgInfo = new ImageInfo(_session); }
return _imgInfo; return _imgInfo;
} }
} }
ImageLayout _imgLayout; ImageLayout _imgLayout;
public ImageLayout ImageLayout public ImageLayout ImageLayout
{ {
get get
{ {
if (_imgLayout == null) { _imgLayout = new ImageLayout(_session); } if (_imgLayout == null) { _imgLayout = new ImageLayout(_session); }
return _imgLayout; return _imgLayout;
} }
} }
ImageMemFileXfer _imgMemFileXfer; ImageMemFileXfer _imgMemFileXfer;
internal ImageMemFileXfer ImageMemFileXfer internal ImageMemFileXfer ImageMemFileXfer
{ {
get get
{ {
if (_imgMemFileXfer == null) { _imgMemFileXfer = new ImageMemFileXfer(_session); } if (_imgMemFileXfer == null) { _imgMemFileXfer = new ImageMemFileXfer(_session); }
return _imgMemFileXfer; return _imgMemFileXfer;
} }
} }
ImageMemXfer _imgMemXfer; ImageMemXfer _imgMemXfer;
internal ImageMemXfer ImageMemXfer internal ImageMemXfer ImageMemXfer
{ {
get get
{ {
if (_imgMemXfer == null) { _imgMemXfer = new ImageMemXfer(_session); } if (_imgMemXfer == null) { _imgMemXfer = new ImageMemXfer(_session); }
return _imgMemXfer; return _imgMemXfer;
} }
} }
ImageNativeXfer _imgNativeXfer; ImageNativeXfer _imgNativeXfer;
internal ImageNativeXfer ImageNativeXfer internal ImageNativeXfer ImageNativeXfer
{ {
get get
{ {
if (_imgNativeXfer == null) { _imgNativeXfer = new ImageNativeXfer(_session); } if (_imgNativeXfer == null) { _imgNativeXfer = new ImageNativeXfer(_session); }
return _imgNativeXfer; return _imgNativeXfer;
} }
} }
JpegCompression _jpegComp; JpegCompression _jpegComp;
public JpegCompression JpegCompression public JpegCompression JpegCompression
{ {
get get
{ {
if (_jpegComp == null) { _jpegComp = new JpegCompression(_session); } if (_jpegComp == null) { _jpegComp = new JpegCompression(_session); }
return _jpegComp; return _jpegComp;
} }
} }
Palette8 _palette8; Palette8 _palette8;
public Palette8 Palette8 public Palette8 Palette8
{ {
get get
{ {
if (_palette8 == null) { _palette8 = new Palette8(_session); } if (_palette8 == null) { _palette8 = new Palette8(_session); }
return _palette8; return _palette8;
} }
} }
RgbResponse _rgbResp; RgbResponse _rgbResp;
public RgbResponse RgbResponse public RgbResponse RgbResponse
{ {
get get
{ {
if (_rgbResp == null) { _rgbResp = new RgbResponse(_session); } if (_rgbResp == null) { _rgbResp = new RgbResponse(_session); }
return _rgbResp; return _rgbResp;
} }
} }
}
}
} }

View File

@@ -139,7 +139,7 @@ namespace NTwain
TWIdentity id; TWIdentity id;
if (DGControl.Identity.GetDefault(out id) == ReturnCode.Success) if (DGControl.Identity.GetDefault(out id) == ReturnCode.Success)
{ {
return new TwainSource(this, id); return TwainSource.GetInstance(this, id);
} }
return null; return null;
} }
@@ -162,7 +162,7 @@ namespace NTwain
TWIdentity id; TWIdentity id;
if (DGControl.Identity.UserSelect(out id) == ReturnCode.Success) if (DGControl.Identity.UserSelect(out id) == ReturnCode.Success)
{ {
return new TwainSource(this, id); return TwainSource.GetInstance(this, id);
} }
return null; return null;
} }
@@ -311,7 +311,7 @@ namespace NTwain
var rc = DGControl.Identity.GetFirst(out srcId); var rc = DGControl.Identity.GetFirst(out srcId);
while (rc == ReturnCode.Success) while (rc == ReturnCode.Success)
{ {
yield return new TwainSource(this, srcId); yield return TwainSource.GetInstance(this, srcId);
rc = DGControl.Identity.GetNext(out srcId); rc = DGControl.Identity.GetNext(out srcId);
} }
} }
@@ -327,6 +327,18 @@ namespace NTwain
return stat; return stat;
} }
/// <summary>
/// Gets the manager status. Only call this at state 3 or higher.
/// </summary>
/// <param name="session">The session.</param>
/// <returns></returns>
public TWStatusUtf8 GetStatusUtf8()
{
TWStatusUtf8 stat;
DGControl.StatusUtf8.GetManager(out stat);
return stat;
}
#endregion #endregion

View File

@@ -16,9 +16,21 @@ namespace NTwain
/// </summary> /// </summary>
public partial class TwainSource : INotifyPropertyChanged public partial class TwainSource : INotifyPropertyChanged
{ {
static readonly Dictionary<string, TwainSource> __globalInstances = new Dictionary<string, TwainSource>();
internal static TwainSource GetInstance(ITwainSessionInternal session, TWIdentity sourceId)
{
var key = string.Format("{0}|{1}", sourceId.Manufacturer, sourceId.ProductFamily, sourceId.ProductName);
if (__globalInstances.ContainsKey(key))
{
return __globalInstances[key];
}
return __globalInstances[key] = new TwainSource(session, sourceId);
}
ITwainSessionInternal _session; ITwainSessionInternal _session;
internal TwainSource(ITwainSessionInternal session, TWIdentity sourceId) private TwainSource(ITwainSessionInternal session, TWIdentity sourceId)
{ {
_session = session; _session = session;
Identity = sourceId; Identity = sourceId;
@@ -84,6 +96,18 @@ namespace NTwain
_session.DGControl.Status.GetSource(out stat); _session.DGControl.Status.GetSource(out stat);
return stat; return stat;
} }
/// <summary>
/// Gets the source status. Only call this at state 4 or higher.
/// </summary>
/// <param name="session">The session.</param>
/// <returns></returns>
public TWStatusUtf8 GetStatusUtf8()
{
TWStatusUtf8 stat;
_session.DGControl.StatusUtf8.GetSource(out stat);
return stat;
}
#region properties #region properties