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,11 +6,10 @@ 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);

View File

@@ -78,7 +78,7 @@ namespace NTwain.Triplets
} }
ImageInfo _imgInfo; ImageInfo _imgInfo;
public ImageInfo ImageInfo internal ImageInfo ImageInfo
{ {
get get
{ {

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