summaryrefslogtreecommitdiff
path: root/pjsip-apps/src/pjsua/winrt/gui/uwp/VoipTasks/CallRtcTask.cs
diff options
context:
space:
mode:
authorNanang Izzuddin <nanang@teluu.com>2017-01-23 04:32:34 +0000
committerNanang Izzuddin <nanang@teluu.com>2017-01-23 04:32:34 +0000
commitf6d78bf855f2d564f9e383508908631a4668e2af (patch)
tree223bd69531113c5069679f9a6d482c03863284c9 /pjsip-apps/src/pjsua/winrt/gui/uwp/VoipTasks/CallRtcTask.cs
parentdfe36134873cb77d5b9c2a999f3134eb79f6ca6e (diff)
Re #1900: Reintegrated works in UWP branch to trunk.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@5539 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip-apps/src/pjsua/winrt/gui/uwp/VoipTasks/CallRtcTask.cs')
-rw-r--r--pjsip-apps/src/pjsua/winrt/gui/uwp/VoipTasks/CallRtcTask.cs39
1 files changed, 39 insertions, 0 deletions
diff --git a/pjsip-apps/src/pjsua/winrt/gui/uwp/VoipTasks/CallRtcTask.cs b/pjsip-apps/src/pjsua/winrt/gui/uwp/VoipTasks/CallRtcTask.cs
new file mode 100644
index 00000000..79f15b31
--- /dev/null
+++ b/pjsip-apps/src/pjsua/winrt/gui/uwp/VoipTasks/CallRtcTask.cs
@@ -0,0 +1,39 @@
+//*********************************************************
+//
+// Copyright (c) Microsoft. All rights reserved.
+// This code is licensed under the MIT License (MIT).
+// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
+// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
+// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
+// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
+//
+//*********************************************************
+using VoipTasks.Helpers;
+using Windows.ApplicationModel.Background;
+
+namespace VoipTasks
+{
+ public sealed class CallRtcTask : IBackgroundTask
+ {
+ BackgroundTaskDeferral _deferral;
+
+ public void Run(IBackgroundTaskInstance taskInstance)
+ {
+ _deferral = taskInstance.GetDeferral();
+
+ Current.RTCTaskDeferral = _deferral;
+ // Register for Task Cancel callback
+ taskInstance.Canceled += TaskInstance_Canceled;
+ }
+
+ private void TaskInstance_Canceled(IBackgroundTaskInstance sender, BackgroundTaskCancellationReason reason)
+ {
+ if (_deferral != null)
+ {
+ _deferral.Complete();
+ }
+
+ Current.RTCTaskDeferral = null;
+ }
+ }
+}