diff --git a/src/core/os.h b/src/core/os.h index b8351f8e..dd985124 100644 --- a/src/core/os.h +++ b/src/core/os.h @@ -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); \ No newline at end of file diff --git a/src/core/os_android.c b/src/core/os_android.c index cbce47aa..e760387d 100644 --- a/src/core/os_android.c +++ b/src/core/os_android.c @@ -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) { diff --git a/src/core/os_linux.c b/src/core/os_linux.c index b593a00a..acbb3772 100644 --- a/src/core/os_linux.c +++ b/src/core/os_linux.c @@ -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) +{ + +} \ No newline at end of file diff --git a/src/core/os_macos.c b/src/core/os_macos.c index ef1d37e6..88023049 100644 --- a/src/core/os_macos.c +++ b/src/core/os_macos.c @@ -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) +{ + +} \ No newline at end of file diff --git a/src/core/os_web.c b/src/core/os_web.c index 91711806..fe521c8f 100644 --- a/src/core/os_web.c +++ b/src/core/os_web.c @@ -370,3 +370,13 @@ bool lovrPlatformIsMouseDown(MouseButton button) { bool lovrPlatformIsKeyDown(KeyboardKey key) { return state.keyMap[key]; } + +void lovrPlatformRequestPermission(Permission permission) +{ + +} + +void lovrPlatformOnPermissionEvent(permissionsCallback callback) +{ + +} \ No newline at end of file diff --git a/src/core/os_win32.c b/src/core/os_win32.c index 5a128ff6..70eef3d5 100644 --- a/src/core/os_win32.c +++ b/src/core/os_win32.c @@ -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) +{ + +} \ No newline at end of file diff --git a/src/modules/audio/audio.c b/src/modules/audio/audio.c index 1d2e7d3c..b771fa83 100644 --- a/src/modules/audio/audio.c +++ b/src/modules/audio/audio.c @@ -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;