/// <summary> /// called whenever an image was analysed /// </summary> /// <param name="e"></param> protected virtual void OnImageAnalysed(AnalyseImageEventArgs e) { // send event if there are subscribers EventHandler <AnalyseImageEventArgs> handler = ImageAnalysed; if (handler != null) { handler(this, e); } }
private void onImageAnalysed(object sender, AnalyseImageEventArgs e) { if (!screenshotsTakeable && currentRequestCause == RequestCause.USERINITIATED && e.Result.OcrService == OcrService.MICROSOFTMEDIAOCR) { Destroy(regularCameraPositionResultList[regularCameraPositionResultList.Count - 1].visualizedTextObject); regularCameraPositionResultList.RemoveAt(regularCameraPositionResultList.Count - 1); return; } if (e.Result == null || e.Result.Text == "") { // Checking for Used API switch (e.Result.OcrService) { case OcrService.MICROSOFTAZUREOCR: if (initiatedCameraPositionResultList.Count > 9) { // removing game object Destroy(initiatedCameraPositionResultList[0].visualizedTextObject); initiatedCameraPositionResultList.RemoveAt(0); } dialogPanel.enqueueNotification("No Text found. Please reposition yourself."); analysingScreenshot = false; Destroy(initiatedCameraPositionResultList[initiatedCameraPositionResultList.Count - 1].visualizedTextObject); initiatedCameraPositionResultList.RemoveAt(initiatedCameraPositionResultList.Count - 1); break; case OcrService.MICROSOFTMEDIAOCR: if (regularCameraPositionResultList.Count > 9) { // removing game object Destroy(regularCameraPositionResultList[0].textHighlightObject); regularCameraPositionResultList.RemoveAt(0); } Destroy(regularCameraPositionResultList[regularCameraPositionResultList.Count - 1].textHighlightObject); regularCameraPositionResultList.RemoveAt(regularCameraPositionResultList.Count - 1); break; } } else { // check for capacity of result list switch (e.Result.OcrService) { case OcrService.MICROSOFTMEDIAOCR: if (regularCameraPositionResultList.Count > 9) { // removing game object Destroy(regularCameraPositionResultList[0].textHighlightObject); regularCameraPositionResultList.RemoveAt(0); } for (int i = 0; i < regularCameraPositionResultList.Count; i++) { if (regularCameraPositionResultList[i].id == currentId) { regularCameraPositionResultList[i].ocrResult = e.Result; // visualize POI visualTextManager.hightlightTextLocation(regularCameraPositionResultList, regularCameraPositionResultList[i]); currentId++; break; } } break; case OcrService.MICROSOFTAZUREOCR: if (initiatedCameraPositionResultList.Count > 9) { // removing game object Destroy(initiatedCameraPositionResultList[0].visualizedTextObject); initiatedCameraPositionResultList.RemoveAt(0); } for (int i = 0; i < initiatedCameraPositionResultList.Count; i++) { if (initiatedCameraPositionResultList[i].id == currentId) { initiatedCameraPositionResultList[i].ocrResult = e.Result; // visualize text visualTextManager.visualizeText(initiatedCameraPositionResultList, initiatedCameraPositionResultList[i]); currentId++; break; } } break; } } if (!screenshotsTakeable && currentRequestCause == RequestCause.USERINITIATED) { screenshotsTakeable = true; this.currentRequestCause = RequestCause.REGULAR; // this.nextRequestCause = RequestCause.REGULAR; this.screenshotManager._screenshotsTakeable = true; return; } }