lovrPlatformRequest{AudioCapture->Permission}(Perm) + platform stubs

This commit is contained in:
Nevyn Bengtsson 2020-12-02 16:36:54 +01:00 committed by Bjorn
parent 084ac9d880
commit 5e66ecf000
7 changed files with 54 additions and 12 deletions

View File

@ -171,5 +171,5 @@ void lovrPlatformGetMousePosition(double* x, double* y);
void lovrPlatformSetMouseMode(MouseMode mode);
bool lovrPlatformIsMouseDown(MouseButton button);
bool lovrPlatformIsKeyDown(KeyboardKey key);
void lovrPlatformRequestAudioCapture();
void lovrPlatformRequestPermission(Permission permission);
void lovrPlatformOnPermissionEvent(permissionsCallback callback);

View File

@ -473,17 +473,19 @@ bool lovrPlatformIsKeyDown(KeyboardKey key) {
// permissions
void lovrPlatformRequestAudioCapture() {
jobject activity = state.app->activity->clazz;
jclass class = (*state.jni)->GetObjectClass(state.jni, activity);
jmethodID requestAudioCapturePermission = (*state.jni)->GetMethodID(state.jni, class, "requestAudioCapturePermission", "()V");
if (!requestAudioCapturePermission) {
(*state.jni)->DeleteLocalRef(state.jni, class);
if(state.onPermissionEvent) state.onPermissionEvent(AUDIO_CAPTURE_PERMISSION, false);
return;
}
void lovrPlatformRequestPermission(Permission permission) {
if (permission == AUDIO_CAPTURE_PERMISSION) {
jobject activity = state.app->activity->clazz;
jclass class = (*state.jni)->GetObjectClass(state.jni, activity);
jmethodID requestAudioCapturePermission = (*state.jni)->GetMethodID(state.jni, class, "requestAudioCapturePermission", "()V");
if (!requestAudioCapturePermission) {
(*state.jni)->DeleteLocalRef(state.jni, class);
if(state.onPermissionEvent) state.onPermissionEvent(AUDIO_CAPTURE_PERMISSION, false);
return;
}
(*state.jni)->CallVoidMethod(state.jni, activity, requestAudioCapturePermission);
(*state.jni)->CallVoidMethod(state.jni, activity, requestAudioCapturePermission);
}
}
void lovrPlatformOnPermissionEvent(permissionsCallback callback) {

View File

@ -114,3 +114,13 @@ size_t lovrPlatformGetBundlePath(char* buffer, size_t size, const char** root) {
*root = NULL;
return lovrPlatformGetExecutablePath(buffer, size);
}
void lovrPlatformRequestPermission(Permission permission)
{
}
void lovrPlatformOnPermissionEvent(permissionsCallback callback)
{
}

View File

@ -121,3 +121,13 @@ size_t lovrPlatformGetBundlePath(char* buffer, size_t size, const char** root) {
*root = NULL;
return length;
}
void lovrPlatformRequestPermission(Permission permission)
{
}
void lovrPlatformOnPermissionEvent(permissionsCallback callback)
{
}

View File

@ -370,3 +370,13 @@ bool lovrPlatformIsMouseDown(MouseButton button) {
bool lovrPlatformIsKeyDown(KeyboardKey key) {
return state.keyMap[key];
}
void lovrPlatformRequestPermission(Permission permission)
{
}
void lovrPlatformOnPermissionEvent(permissionsCallback callback)
{
}

View File

@ -100,3 +100,13 @@ size_t lovrPlatformGetBundlePath(char* buffer, size_t size, const char** root) {
*root = NULL;
return lovrPlatformGetExecutablePath(buffer, size);
}
void lovrPlatformRequestPermission(Permission permission)
{
}
void lovrPlatformOnPermissionEvent(permissionsCallback callback)
{
}

View File

@ -248,7 +248,7 @@ bool lovrAudioStart(AudioType type) {
if(state.config[type].enable == false) {
if(lovrAudioInitDevice(type) == false) {
if (type == AUDIO_CAPTURE) {
lovrPlatformRequestAudioCapture();
lovrPlatformRequestPermission(AUDIO_CAPTURE_PERMISSION);
// lovrAudioStart will be retried from boot.lua upon permission granted event
}
return false;