mirror of
https://github.com/cyanfish/naps2.git
synced 2024-10-05 03:47:10 +03:00
Add new twain impl option for MemXfer
This commit is contained in:
parent
bf938742a6
commit
e015151f89
@ -366,6 +366,15 @@ namespace NAPS2.Lang.Resources {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Alternative Transfer.
|
||||
/// </summary>
|
||||
internal static string TwainImpl_MemXfer {
|
||||
get {
|
||||
return ResourceManager.GetString("TwainImpl_MemXfer", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Old DSM.
|
||||
/// </summary>
|
||||
|
@ -219,6 +219,9 @@
|
||||
<data name="TwainImpl_Legacy" xml:space="preserve">
|
||||
<value>Legacy (native UI only)</value>
|
||||
</data>
|
||||
<data name="TwainImpl_MemXfer" xml:space="preserve">
|
||||
<value>Alternative Transfer</value>
|
||||
</data>
|
||||
<data name="TwainImpl_OldDsm" xml:space="preserve">
|
||||
<value>Old DSM</value>
|
||||
</data>
|
||||
|
@ -139,6 +139,8 @@ namespace NAPS2.Scan
|
||||
{
|
||||
[LocalizedDescription(typeof(SettingsResources), "TwainImpl_Default")]
|
||||
Default,
|
||||
[LocalizedDescription(typeof(SettingsResources), "TwainImpl_MemXfer")]
|
||||
MemXfer,
|
||||
[LocalizedDescription(typeof(SettingsResources), "TwainImpl_OldDsm")]
|
||||
OldDsm,
|
||||
[LocalizedDescription(typeof(SettingsResources), "TwainImpl_Legacy")]
|
||||
|
@ -85,8 +85,6 @@ namespace NAPS2.Scan.Twain
|
||||
|
||||
int pageNumber = 0;
|
||||
|
||||
bool useMemXfer = false;
|
||||
|
||||
session.TransferReady += (sender, eventArgs) =>
|
||||
{
|
||||
Debug.WriteLine("NAPS2.TW - TransferReady");
|
||||
@ -101,7 +99,7 @@ namespace NAPS2.Scan.Twain
|
||||
{
|
||||
Debug.WriteLine("NAPS2.TW - DataTransferred");
|
||||
pageNumber++;
|
||||
using (var output = useMemXfer
|
||||
using (var output = scanProfile.TwainImpl == TwainImpl.MemXfer
|
||||
? GetBitmapFromMemXFer(eventArgs.MemoryData, eventArgs.ImageInfo)
|
||||
: Image.FromStream(eventArgs.GetNativeImageStream()))
|
||||
{
|
||||
@ -198,7 +196,6 @@ namespace NAPS2.Scan.Twain
|
||||
return;
|
||||
}
|
||||
ConfigureDS(ds, scanProfile, scanParams);
|
||||
useMemXfer = ds.Capabilities.ICapXferMech.GetCurrent() == XferMech.Memory;
|
||||
var ui = scanProfile.UseNativeUI ? SourceEnableMode.ShowUI : SourceEnableMode.NoUI;
|
||||
Debug.WriteLine("NAPS2.TW - Enabling DS");
|
||||
rc = ds.Enable(ui, true, twainForm.Handle);
|
||||
@ -310,6 +307,12 @@ namespace NAPS2.Scan.Twain
|
||||
return;
|
||||
}
|
||||
|
||||
// Transfer Mode
|
||||
if (scanProfile.TwainImpl == TwainImpl.MemXfer)
|
||||
{
|
||||
ds.Capabilities.ICapXferMech.SetValue(XferMech.Memory);
|
||||
}
|
||||
|
||||
// Paper Source
|
||||
switch (scanProfile.PaperSource)
|
||||
{
|
||||
|
@ -19,6 +19,7 @@ namespace NAPS2.WinForms
|
||||
|
||||
cmbTwainImpl.Format += (sender, e) => e.Value = ((Enum) e.ListItem).Description();
|
||||
cmbTwainImpl.Items.Add(TwainImpl.Default);
|
||||
cmbTwainImpl.Items.Add(TwainImpl.MemXfer);
|
||||
cmbTwainImpl.Items.Add(TwainImpl.OldDsm);
|
||||
cmbTwainImpl.Items.Add(TwainImpl.Legacy);
|
||||
if (Environment.Is64BitProcess)
|
||||
|
Loading…
Reference in New Issue
Block a user