void onImageRequestFailed(object sender, ImageRequestFailedEventArgs e) { if (e.reason == Leap.Image.RequestFailureReason.Insufficient_Buffer) { imagedata = new byte[e.requiredBufferSize]; } Console.WriteLine("Image request failed: " + e.message); }
void onImageRequestFailed(object sender, ImageRequestFailedEventArgs e) { if (e.reason == Leap.Image.RequestFailureReason.Insufficient_Buffer) { imagedata = new byte[e.requiredBufferSize]; } // debugText.AppendText("Image request failed: " + e.message + "\n"); }
private void handleFailedImageRequest(ref LEAP_IMAGE_FRAME_REQUEST_ERROR_EVENT failed_image_evt) { if (_leapConnection == IntPtr.Zero) { return; } ImageFuture pendingImage = _pendingImageRequestList.FindAndRemove(failed_image_evt.token); if (pendingImage != null) { pendingImage.imageData.CheckIn(); ImageRequestFailedEventArgs errorEventArgs = new ImageRequestFailedEventArgs(failed_image_evt.description.frame_id, pendingImage.imageObject.Type); switch (failed_image_evt.error) { case eLeapImageRequestError.eLeapImageRequestError_InsufficientBuffer: errorEventArgs.message = "The buffer specified for the request was too small."; errorEventArgs.reason = Image.RequestFailureReason.Insufficient_Buffer; if (failed_image_evt.description.type == eLeapImageType.eLeapImageType_Default && _standardImageBufferSize < failed_image_evt.required_buffer_len) { _standardImageBufferSize = failed_image_evt.required_buffer_len; } else if (failed_image_evt.description.type == eLeapImageType.eLeapImageType_Raw && _standardRawBufferSize < failed_image_evt.required_buffer_len) { _standardRawBufferSize = failed_image_evt.required_buffer_len; } break; case eLeapImageRequestError.eLeapImageRequestError_Unavailable: errorEventArgs.message = "The image was request too late and is no longer available."; errorEventArgs.reason = Image.RequestFailureReason.Image_Unavailable; break; case eLeapImageRequestError.eLeapImageRequestError_ImagesDisabled: errorEventArgs.message = "Images are disabled by the current configuration settings."; errorEventArgs.reason = Image.RequestFailureReason.Images_Disabled; break; default: errorEventArgs.message = "The image request failed for an undetermined reason."; errorEventArgs.reason = Image.RequestFailureReason.Unknown_Error; break; } errorEventArgs.requiredBufferSize = (long)failed_image_evt.required_buffer_len; this.LeapImageRequestFailed.Dispatch <ImageRequestFailedEventArgs> (this, errorEventArgs); } _pendingImageRequestList.purgeOld(_leapConnection); }
private void handleFailedImageRequest(ref LEAP_IMAGE_FRAME_REQUEST_ERROR_EVENT failed_image_evt) { ImageReference pendingImage = null; lock (lockPendingImageList) { _pendingImageRequests.TryGetValue(failed_image_evt.token.requestID, out pendingImage); } if (pendingImage != null) { pendingImage.imageData.CheckIn(); lock (_pendingImageRequests) { _pendingImageRequests.Remove(failed_image_evt.token.requestID); } ImageRequestFailedEventArgs errorEventArgs = new ImageRequestFailedEventArgs(failed_image_evt.description.frame_id, pendingImage.imageObject.Type); switch (failed_image_evt.error) { case eLeapImageRequestError.eLeapImageRequestError_InsufficientBuffer: errorEventArgs.message = "The buffer specified for the request was too small."; errorEventArgs.reason = Image.RequestFailureReason.Insufficient_Buffer; if (failed_image_evt.description.type == eLeapImageType.eLeapImageType_Default && _standardImageBufferSize < failed_image_evt.required_buffer_len) { _standardImageBufferSize = failed_image_evt.required_buffer_len; } else if (failed_image_evt.description.type == eLeapImageType.eLeapImageType_Raw && _standardRawBufferSize < failed_image_evt.required_buffer_len) { _standardRawBufferSize = failed_image_evt.required_buffer_len; } break; case eLeapImageRequestError.eLeapImageRequestError_Unavailable: errorEventArgs.message = "The image was request too late and is no longer available."; errorEventArgs.reason = Image.RequestFailureReason.Image_Unavailable; break; case eLeapImageRequestError.eLeapImageRequestError_ImagesDisabled: errorEventArgs.message = "Images are disabled by the current configuration settings."; errorEventArgs.reason = Image.RequestFailureReason.Images_Disabled; break; default: errorEventArgs.message = "The image request failed for an undetermined reason."; errorEventArgs.reason = Image.RequestFailureReason.Unknown_Error; break; } errorEventArgs.requiredBufferSize = (long)failed_image_evt.required_buffer_len; this.LeapImageRequestFailed.Dispatch <ImageRequestFailedEventArgs>(this, errorEventArgs); } //Purge old requests List <UInt32> keys = new List <UInt32>(_pendingImageRequests.Keys); ImageReference request; long now = LeapC.GetNow(); for (int k = 0; k < keys.Count; k++) { request = _pendingImageRequests[keys[k]]; if ((now - request.Timestamp) > 90000) { lock (_pendingImageRequests) { _pendingImageRequests.Remove(keys[k]); } request.imageData.CheckIn(); } } }