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); }
public QRTrackerStartResult StartQRTracking() { if (!IsTrackerRunning) { StartResult = (qrTracker.Start()); if (StartResult == QRTrackerStartResult.Success) { IsTrackerRunning = true; } } return(StartResult); }
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)); }
public QRTrackerStartResult StartQRTracking() { if (qrTracker != null && !IsTrackerRunning) { int tries = 0; do { Debug.Log("QRCodesManager starting qrtracker"); StartResult = (qrTracker.Start()); Debug.Log("QRCodesManager starting qrtracker result:" + StartResult); if (StartResult == QRTrackerStartResult.DeviceNotConnected) { System.Threading.Thread.Sleep(500); } } while (++tries <= 3); if (StartResult == QRTrackerStartResult.Success) { IsTrackerRunning = true; var handlers = QRCodesTrackingStateChanged; if (handlers != null) { handlers(this, true); } } } else { #if WINDOWS_UWP if (accessStatus == Windows.Security.Authorization.AppCapabilityAccess.AppCapabilityAccessStatus.DeniedByUser || accessStatus == Windows.Security.Authorization.AppCapabilityAccess.AppCapabilityAccessStatus.DeniedBySystem) { StartResult = QRTrackerStartResult.AccessDenied; Debug.Log("QRCodesManager starting qrtracker result:" + StartResult); } #endif } return(StartResult); }