blob: 386a22c3f5d47a16fa66c1a9ef4758e9f36425ab (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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
|