#74 expose memory transfer data as-is.

This commit is contained in:
Eugene Wang
2017-02-02 19:48:01 -05:00
parent 7a8b0d0772
commit 0852092e11
8 changed files with 91 additions and 65 deletions

View File

@@ -274,7 +274,8 @@ namespace Sample.WPF
void _session_TransferReady(object sender, TransferReadyEventArgs e)
{
if (_session.CurrentSource.Capabilities.ICapXferMech.GetCurrent() == XferMech.File)
var mech = _session.CurrentSource.Capabilities.ICapXferMech.GetCurrent();
if (mech == XferMech.File)
{
var formats = _session.CurrentSource.Capabilities.ICapImageFileFormat.GetValues();
var wantFormat = formats.Contains(FileFormat.Tiff) ? FileFormat.Tiff : FileFormat.Bmp;
@@ -286,6 +287,11 @@ namespace Sample.WPF
};
var rc = _session.CurrentSource.DGControl.SetupFileXfer.Set(fileSetup);
}
else if (mech == XferMech.Memory)
{
// ?
}
}
string GetUniqueName(string dir, string name, string ext)
@@ -315,19 +321,28 @@ namespace Sample.WPF
ImageSource GenerateThumbnail(DataTransferredEventArgs e)
{
BitmapSource img = null;
if (e.NativeData != IntPtr.Zero)
switch (e.TransferType)
{
using (var stream = e.GetNativeImageStream())
{
if (stream != null)
case XferMech.Native:
using (var stream = e.GetNativeImageStream())
{
img = stream.ConvertToWpfBitmap(300, 0);
if (stream != null)
{
img = stream.ConvertToWpfBitmap(300, 0);
}
}
}
}
else if (!string.IsNullOrEmpty(e.FileDataPath))
{
img = new BitmapImage(new Uri(e.FileDataPath));
break;
case XferMech.File:
img = new BitmapImage(new Uri(e.FileDataPath));
if (img.CanFreeze)
{
img.Freeze();
}
break;
case XferMech.Memory:
// TODO: build current image from multiple data-xferred event
break;
}
//if (img != null)