summaryrefslogtreecommitdiff
path: root/Runtime/Utilities/UserAuthorizationManager.h
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2019-08-14 22:50:43 +0800
committerchai <chaifix@163.com>2019-08-14 22:50:43 +0800
commit15740faf9fe9fe4be08965098bbf2947e096aeeb (patch)
treea730ec236656cc8cab5b13f088adfaed6bb218fb /Runtime/Utilities/UserAuthorizationManager.h
+Unity Runtime codeHEADmaster
Diffstat (limited to 'Runtime/Utilities/UserAuthorizationManager.h')
-rw-r--r--Runtime/Utilities/UserAuthorizationManager.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/Runtime/Utilities/UserAuthorizationManager.h b/Runtime/Utilities/UserAuthorizationManager.h
new file mode 100644
index 0000000..386a22c
--- /dev/null
+++ b/Runtime/Utilities/UserAuthorizationManager.h
@@ -0,0 +1,47 @@
+#ifndef USERAUTHORIZATIONMANAGER_H
+#define USERAUTHORIZATIONMANAGER_H
+
+#include "Runtime/Mono/MonoBehaviour.h"
+#include "Runtime/Misc/AsyncOperation.h"
+
+class UserAuthorizationManager;
+
+UserAuthorizationManager &GetUserAuthorizationManager();
+
+class UserAuthorizationManager {
+public:
+ UserAuthorizationManager ();
+
+ enum Mode {
+ kNone = 0,
+ kWebCam = 1 << 0,
+ kMicrophone = 1 << 1
+ };
+
+ void Reset ();
+ AsyncOperation *RequestUserAuthorization (int mode);
+ void ReplyToUserAuthorizationRequest (bool reply, bool remember = false);
+ bool HasUserAuthorization (int mode) const { return (m_AuthorizationMode & mode) == mode; }
+
+ int GetAuthorizationRequest() const { return m_AuthorizationRequest; }
+
+ MonoBehaviour *GetAuthorizationDialog ();
+private:
+ class UserAuthorizationManagerOperation : public AsyncOperation
+ {
+ virtual float GetProgress () { return 0.0f; }
+ virtual bool IsDone () { return GetUserAuthorizationManager().m_AuthorizationRequest == 0; }
+ };
+
+ class UserAuthorizationManagerErrorOperation : public AsyncOperation
+ {
+ virtual float GetProgress () { return 0.0f; }
+ virtual bool IsDone () { return true; }
+ };
+
+ int m_AuthorizationMode;
+ int m_AuthorizationRequest;
+ UserAuthorizationManagerOperation *m_AuthorizationOperation;
+ PPtr<GameObject> m_AuthorizationDialog;
+};
+#endif \ No newline at end of file