Added rest of audio triplets.

This commit is contained in:
Eugene Wang
2018-11-18 11:01:25 -05:00
parent 8f8a9a2f16
commit 1718aaef48
5 changed files with 89 additions and 3 deletions

View File

@@ -0,0 +1,40 @@
using NTwain.Data;
using NTwain.Internals;
using System;
namespace NTwain.Triplets.Audio
{
sealed class AudioFileXfer : BaseTriplet
{
internal AudioFileXfer(TwainSession session) : base(session) { }
public ReturnCode Get()
{
IntPtr zero = IntPtr.Zero;
if (Is32Bit)
{
if (IsWin)
return NativeMethods.DsmWin32(Session.Config.App32, Session.CurrentSource.Identity32,
DataGroups.Audio, DataArgumentType.AudioFileXfer, Message.Get, ref zero);
if (IsLinux)
return NativeMethods.DsmLinux32(Session.Config.App32, Session.CurrentSource.Identity32,
DataGroups.Audio, DataArgumentType.AudioFileXfer, Message.Get, ref zero);
if (IsMac)
return NativeMethods.DsmMac32(Session.Config.App32, Session.CurrentSource.Identity32,
DataGroups.Audio, DataArgumentType.AudioFileXfer, Message.Get, ref zero);
}
if (IsWin)
return NativeMethods.DsmWin64(Session.Config.App32, Session.CurrentSource.Identity32,
DataGroups.Audio, DataArgumentType.AudioFileXfer, Message.Get, ref zero);
if (IsLinux)
return NativeMethods.DsmLinux64(Session.Config.App32, Session.CurrentSource.Identity32,
DataGroups.Audio, DataArgumentType.AudioFileXfer, Message.Get, ref zero);
if (IsMac)
return NativeMethods.DsmMac64(Session.Config.App32, Session.CurrentSource.Identity32,
DataGroups.Audio, DataArgumentType.AudioFileXfer, Message.Get, ref zero);
return ReturnCode.Failure;
}
}
}

View File

@@ -0,0 +1,39 @@
using NTwain.Data;
using NTwain.Internals;
using System;
namespace NTwain.Triplets.Audio
{
sealed class AudioNativeXfer : BaseTriplet
{
internal AudioNativeXfer(TwainSession session) : base(session) { }
public ReturnCode Get(ref IntPtr handle)
{
if (Is32Bit)
{
if (IsWin)
return NativeMethods.DsmWin32(Session.Config.App32, Session.CurrentSource.Identity32,
DataGroups.Audio, DataArgumentType.AudioNativeXfer, Message.Get, ref handle);
if (IsLinux)
return NativeMethods.DsmLinux32(Session.Config.App32, Session.CurrentSource.Identity32,
DataGroups.Audio, DataArgumentType.AudioNativeXfer, Message.Get, ref handle);
if (IsMac)
return NativeMethods.DsmMac32(Session.Config.App32, Session.CurrentSource.Identity32,
DataGroups.Audio, DataArgumentType.AudioNativeXfer, Message.Get, ref handle);
}
if (IsWin)
return NativeMethods.DsmWin64(Session.Config.App32, Session.CurrentSource.Identity32,
DataGroups.Audio, DataArgumentType.AudioNativeXfer, Message.Get, ref handle);
if (IsLinux)
return NativeMethods.DsmLinux64(Session.Config.App32, Session.CurrentSource.Identity32,
DataGroups.Audio, DataArgumentType.AudioNativeXfer, Message.Get, ref handle);
if (IsMac)
return NativeMethods.DsmMac64(Session.Config.App32, Session.CurrentSource.Identity32,
DataGroups.Audio, DataArgumentType.AudioNativeXfer, Message.Get, ref handle);
return ReturnCode.Failure;
}
}
}

View File

@@ -10,11 +10,17 @@ namespace NTwain.Triplets
/// <summary>
/// Represents <see cref="DataGroups.Audio"/>.
/// </summary>
public partial class DGAudio : BaseTriplet
partial class DGAudio : BaseTriplet
{
internal DGAudio(TwainSession session) : base(session) { }
AudioFileXfer _fileXfer;
internal AudioFileXfer AudioFileXfer => _fileXfer ?? (_fileXfer = new AudioFileXfer(Session));
AudioInfo _info;
internal AudioInfo AudioInfo => _info ?? (_info = new AudioInfo(Session));
AudioNativeXfer _natXfer;
internal AudioNativeXfer AudioNativeXfer => _natXfer ?? (_natXfer = new AudioNativeXfer(Session));
}
}

View File

@@ -247,6 +247,7 @@ namespace NTwain
// some DS returns none but we will assume it's image
xferImage = xferGroup == DataGroups.None || (xferGroup & DataGroups.Image) == DataGroups.Image;
}
// TODO: restore this
if (xferImage)
{
//imgXferMech = CurrentSource.Capabilities.ICapXferMech.GetCurrent();

View File

@@ -40,7 +40,7 @@ namespace NTwain
/// <summary>
/// Gets the triplet operations defined for audio data group.
/// </summary>
public DGAudio DGAudio => dgAudio ?? (dgAudio = new DGAudio(this));
DGAudio DGAudio => dgAudio ?? (dgAudio = new DGAudio(this));
///// <summary>
///// Gets/sets the direct triplet operation entry for custom values.