Example #1
0
        public QRTrackerStartResult StartQRTracking()
        {
            if (qrTracker == null)
            {
                Debug.Log("Creating qr tracker");
                qrTracker          = new QRTracker();
                qrTracker.Added   += QrTracker_Added;
                qrTracker.Updated += QrTracker_Updated;
                qrTracker.Removed += QrTracker_Removed;
            }

            if (!IsTrackerRunning)
            {
                StartResult = (qrTracker.Start());
                if (StartResult == QRTrackerStartResult.Success)
                {
                    IsTrackerRunning = true;
                    QRCodesTrackingStateChanged?.Invoke(this, true);
                }
                else
                {
                    Debug.LogWarning("Failed to start qr tracker: " + StartResult.ToString());
                }
            }

            return(StartResult);
        }
        protected virtual void Start()
        {
            qrTracker          = new QRTracker();
            qrTracker.Added   += QrTracker_Added;
            qrTracker.Updated += QrTracker_Updated;
            qrTracker.Removed += QrTracker_Removed;

            if (AutoStartQRTracking)
            {
                StartQRTracking();
            }
        }
Example #3
0
        protected virtual void Start()
        {
#if UNITY_EDITOR || UNITY_WSA
            qrTracker          = new QRTracker();
            qrTracker.Added   += QrTracker_Added;
            qrTracker.Updated += QrTracker_Updated;
            qrTracker.Removed += QrTracker_Removed;

            if (AutoStartQRTracking)
            {
                StartQRTracking();
            }
#endif // UNITY_EDITOR || UNITY_WSA
        }
        private async Task <QRTrackerStartResult> StartQRTrackingAsyncImpl(CancellationToken token)
        {
#if WINDOWS_UWP
            DebugLog("Requesting webcam capability");
            Windows.Security.Authorization.AppCapabilityAccess.AppCapability cap = Windows.Security.Authorization.AppCapabilityAccess.AppCapability.Create("webcam");
            var accessTask    = cap.RequestAccessAsync().AsTask();
            var completedTask = await Task.WhenAny(accessTask, Task.Delay(-1, token));

            var accessStatus = (accessTask == completedTask) ? accessTask.Result : Windows.Security.Authorization.AppCapabilityAccess.AppCapabilityAccessStatus.DeniedBySystem;
            if (accessStatus != Windows.Security.Authorization.AppCapabilityAccess.AppCapabilityAccessStatus.Allowed)
            {
                DebugLog("Failed to obtain webcam capability for qr code tracking");
            }
            else
            {
                DebugLog("Webcam capability granted.");
            }
#endif

            // Note: If the QRTracker is created prior to obtaining the webcam capability, initialization will fail.
            if (qrTracker == null)
            {
                DebugLog("Creating qr tracker");
                qrTracker          = new QRTracker();
                qrTracker.Added   += QrTracker_Added;
                qrTracker.Updated += QrTracker_Updated;
                qrTracker.Removed += QrTracker_Removed;
            }

            if (!token.IsCancellationRequested &&
                !IsTrackerRunning)
            {
                StartResult = qrTracker.Start();
                if (StartResult == QRTrackerStartResult.Success)
                {
                    DebugLog("Successfully started qr tracker");
                    IsTrackerRunning = true;
                }
                else
                {
                    Debug.LogWarning("Failed to start qr tracker: " + StartResult.ToString());
                }
            }

            return(await Task.FromResult(StartResult));
        }
Example #5
0
        private void SetupQRTracking()
        {
            try
            {
                qrTracker          = new QRTracker();
                IsTrackerRunning   = false;
                qrTracker.Added   += QrTracker_Added;
                qrTracker.Updated += QrTracker_Updated;
                qrTracker.Removed += QrTracker_Removed;
            }
            catch (Exception ex)
            {
                Debug.Log("QRCodesManager : exception starting the tracker " + ex.ToString());
            }

            if (AutoStartQRTracking)
            {
                StartQRTracking();
            }
        }