/// <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);
        }
    }
示例#2
0
    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;
        }
    }