private static void DestroyStream(ref IntPtr stream) { if (stream != IntPtr.Zero) { Util.Assert(Edsdk.EdsRelease(stream), "Failed to release stream"); stream = IntPtr.Zero; } }
protected internal override void DisposeUnmanaged() { if (_handle != IntPtr.Zero) { Edsdk.EdsRelease(_handle); } base.DisposeUnmanaged(); }
protected internal override void DisposeUnmanaged() { if (_cameraList != IntPtr.Zero) { Edsdk.EdsRelease(_cameraList); } base.DisposeUnmanaged(); }
private bool DownloadEvf() { // Do not download if pauseUpdate requested if (_pauseLiveViewRequested) { return(true); } if ((this.LiveViewDevice & EosLiveViewDevice.Host) == EosLiveViewDevice.None || _cancelLiveViewRequested) { return(false); } lock (_locker) { var memoryStream = IntPtr.Zero; try { Util.Assert(Edsdk.EdsCreateMemoryStream(0, out memoryStream), "Failed to create memory stream."); using (var image = EosLiveImage.CreateFromStream(memoryStream)) { Util.Assert(Edsdk.EdsDownloadEvfImage(this.Handle, image.Handle), "Failed to download evf image."); var converter = new EosConverter(); this.OnLiveViewUpdate( new EosLiveImageEventArgs(converter.ConvertImageStreamToBytes(memoryStream)) { Zoom = image.Zoom, ZommBounds = image.ZoomBounds, ImagePosition = image.ImagePosition, ImageSize = image.Size //Histogram = image.Histogram, }); } } catch (EosException eosEx) { //if (eosEx.EosErrorCode != EosErrorCode.DeviceBusy && eosEx.EosErrorCode != EosErrorCode.ObjectNotReady) // throw; } finally { if (memoryStream != IntPtr.Zero) { Edsdk.EdsRelease(memoryStream); } } } return(true); }
public bool DownloadEvfInternal() { var memoryStream = IntPtr.Zero; try { Edsdk.EdsCreateMemoryStream(0, out memoryStream); using (var image = EosLiveImage.CreateFromStream(memoryStream)) { Edsdk.EdsDownloadEvfImage(this.Handle, image.Handle); var converter = new EosConverter(); this.OnLiveViewUpdate( new EosLiveImageEventArgs(converter.ConvertImageStreamToBytes(memoryStream)) { Zoom = image.Zoom, ZommBounds = image.ZoomBounds, ImagePosition = image.ImagePosition, ImageSize = image.Size, //Histogram = image.Histogram, }); } } catch (EosException eosEx) { //if (eosEx.EosErrorCode != EosErrorCode.DeviceBusy && eosEx.EosErrorCode != EosErrorCode.ObjectNotReady) // throw; } finally { if (memoryStream != IntPtr.Zero) { Edsdk.EdsRelease(memoryStream); } } return(true); }
private uint HandleObjectEvent(uint objectEvent, IntPtr sender, IntPtr context) { try { EosFramework.LogInstance.Debug("HandleObjectEvent fired: " + objectEvent); Console.WriteLine("Canon event {0}", objectEvent); switch (objectEvent) { case Edsdk.ObjectEvent_VolumeInfoChanged: this.OnObjectEventVolumeInfoChanged(sender); break; case Edsdk.ObjectEvent_VolumeUpdateItems: this.OnObjectEventVolumeUpdateItems(sender, context); break; case Edsdk.ObjectEvent_FolderUpdateItems: this.OnObjectEventFolderUpdateItems(sender, context); break; case Edsdk.ObjectEvent_DirItemCreated: this.OnObjectEventDirItemCreated(sender, context); break; case Edsdk.ObjectEvent_DirItemRemoved: this.OnObjectEventDirItemRemoved(sender, context); break; case Edsdk.ObjectEvent_DirItemInfoChanged: this.OnObjectEventDirItemInfoChanged(sender, context); break; case Edsdk.ObjectEvent_DirItemContentChanged: this.OnObjectEventDirItemContentChanged(sender, context); break; case Edsdk.ObjectEvent_DirItemRequestTransfer: this.OnObjectEventDirItemRequestTransfer(sender); break; case Edsdk.ObjectEvent_DirItemRequestTransferDT: this.OnObjectEventDirItemRequestTransferDt(sender, context); break; case Edsdk.ObjectEvent_DirItemCancelTransferDT: this.OnObjectEventDirItemCancelTransferDt(sender, context); break; case Edsdk.ObjectEvent_VolumeAdded: this.OnObjectEventVolumeAdded(sender, context); break; case Edsdk.ObjectEvent_VolumeRemoved: this.OnObjectEventVolumeRemoved(sender, context); break; } } catch (Exception ex) { EosFramework.LogInstance.Error("Handing HandleObjectEvent: {0}", ex); } finally { Edsdk.EdsRelease(sender); } return(Edsdk.EDS_ERR_OK); }