protected virtual void OnDisable()
 {
     if (CloudRecognizer != null)
     {
         CloudRecognizer.stop();
     }
 }
 protected virtual void OnEnable()
 {
     if (CloudRecognizer != null)
     {
         CloudRecognizer.start();
     }
 }
 protected virtual void OnDestroy()
 {
     if (CloudRecognizer != null)
     {
         CloudRecognizer.Dispose();
     }
 }
        /// <summary>
        /// MonoBehaviour Start
        /// </summary>
        protected virtual void Start()
        {
            if (!EasyARController.Initialized)
            {
                return;
            }
            if (!CloudRecognizer.isAvailable())
            {
                throw new UIPopupException(typeof(CloudRecognizer) + " not available");
            }

            if (UseGlobalServiceConfig)
            {
                ServiceConfig = EasyARController.Settings.GlobalCloudRecognizerServiceConfig;
                NotifyEmptyConfig(ServiceConfig);
                CloudRecognizer = CloudRecognizer.create(ServiceConfig.ServerAddress, ServiceConfig.APIKey, ServiceConfig.APISecret, ServiceConfig.CloudRecognizerAppID);
            }
            else
            {
                if (ServerKeyType == KeyType.Public)
                {
                    NotifyEmptyConfig(ServiceConfig);
                    CloudRecognizer = CloudRecognizer.create(ServiceConfig.ServerAddress, ServiceConfig.APIKey, ServiceConfig.APISecret, ServiceConfig.CloudRecognizerAppID);
                }
                else if (ServerKeyType == KeyType.Private)
                {
                    NotifyEmptyPrivateConfig(PrivateServiceConfig);
                    CloudRecognizer = CloudRecognizer.createByCloudSecret(PrivateServiceConfig.ServerAddress, PrivateServiceConfig.CloudRecognitionServiceSecret, PrivateServiceConfig.CloudRecognizerAppID);
                }
            }
        }
 public InputFrameSink InputFrameSink()
 {
     if (CloudRecognizer != null)
     {
         return(CloudRecognizer.inputFrameSink());
     }
     return(null);
 }
        protected virtual void Start()
        {
            if (!EasyARController.Initialized)
            {
                return;
            }
            if (!CloudRecognizer.isAvailable())
            {
                throw new UIPopupException(typeof(CloudRecognizer) + " not available");
            }

            CloudRecognizerServiceConfig config;

            if (UseGlobalServiceConfig)
            {
                config = EasyARController.Settings.GlobalCloudRecognizerServiceConfig;
            }
            else
            {
                config = ServiceConfig;
            }
            NotifyEmptyConfig(config);

            CloudRecognizer = CloudRecognizer.create(config.ServerAddress.Trim(), config.APIKey.Trim(), config.APISecret.Trim(), config.CloudRecognizerAppID.Trim(), EasyARController.Scheduler,
                                                     (Action <CloudStatus, List <Target> >)((status, targets) =>
            {
                if (CloudUpdate != null)
                {
                    CloudUpdate(status, targets);
                }
            }));
            if (source != null)
            {
                source.connect(InputFrameSink());
                if (sourceAction != null)
                {
                    sourceAction();
                }
            }
            if (enabled)
            {
                CloudRecognizer.start();
            }
        }
 private void OnFrameUpdate(OutputFrame outputFrame)
 {
     if (CloudRecognizer == null)
     {
         return;
     }
     while (pendingRequets.Count > 0)
     {
         using (var iFrame = outputFrame.inputFrame())
         {
             var request = pendingRequets.Dequeue();
             if (request.StartCallback != null)
             {
                 request.StartCallback(iFrame);
             }
             {
                 CloudRecognizer.resolve(iFrame, EasyARController.Scheduler, request.DoneCallback);
             }
         }
     }
 }
 private void Open()
 {
     cloudRecognizer = CloudRecognizer.create(
         CloudServer,
         CloudKey,
         CloudSecret,
         EasyARBehaviour.Scheduler,
         (System.Action <CloudStatus, List <Target> >)((CloudStatus status, List <Target> targets) =>
     {
         Debug.Log("[EasyAR] Cloud status " + status + " target number " + targets.Count);
         if (targets != null)
         {
             foreach (var target in targets)
             {
                 if (target == null)
                 {
                     continue;
                 }
                 var uid = target.uid();
                 if (!loadedCloudTargetUids.Contains(uid))
                 {
                     loadedCloudTargetUids.Add(target.uid());
                     var go = new GameObject(target.uid());
                     targetObjs.Add(go);
                     var targetController = go.AddComponent <ImageTargetController>();
                     targetController.SetTargetFromCloud(target.Clone());
                     targetController.ImageTracker = Tracker;
                     var cube = Instantiate(Resources.Load("HelloAR_ImageTarget_Cloud/prefabs/cube", typeof(GameObject)) as GameObject);
                     cube.transform.parent = go.transform;
                     Tracker.LoadImageTarget(targetController, (_target, result) =>
                     {
                         Debug.Log("[EasyAR] Target runtimeID: " + _target.runtimeID() + " result: " + result);
                     });
                 }
             }
         }
     }));
 }