From 51891483c4faf2ab33094348ba591ee5d902ce8b Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 18 Nov 2013 00:28:27 +0100 Subject: [PATCH] (Android) Stub android camera C driver - will interface with JNI functions --- android/native/jni/input_autodetect.c | 12 ++--- camera/android.c | 67 +++++++++++++++++++++++++++ 2 files changed, 73 insertions(+), 6 deletions(-) create mode 100644 camera/android.c diff --git a/android/native/jni/input_autodetect.c b/android/native/jni/input_autodetect.c index beb480c1f3..83b5340029 100644 --- a/android/native/jni/input_autodetect.c +++ b/android/native/jni/input_autodetect.c @@ -27,18 +27,18 @@ static void input_autodetect_get_device_name(void *data, char *buf, size_t size, JNIEnv *env = NULL; (*vm)->AttachCurrentThread(vm, &env, 0); - jclass input_device_class = NULL; - FIND_CLASS(env, input_device_class, "android/view/InputDevice"); - if (!input_device_class) + jclass class = NULL; + FIND_CLASS(env, class, "android/view/InputDevice"); + if (!class) goto end; jmethodID method = NULL; - GET_STATIC_METHOD_ID(env, method, input_device_class, "getDevice", "(I)Landroid/view/InputDevice;"); + GET_STATIC_METHOD_ID(env, method, class, "getDevice", "(I)Landroid/view/InputDevice;"); if (!method) goto end; jobject device = NULL; - CALL_OBJ_STATIC_METHOD_PARAM(env, device, input_device_class, method, (jint)id); + CALL_OBJ_STATIC_METHOD_PARAM(env, device, class, method, (jint)id); if (!device) { RARCH_ERR("Failed to find device for ID: %d\n", id); @@ -46,7 +46,7 @@ static void input_autodetect_get_device_name(void *data, char *buf, size_t size, } jmethodID getName = NULL; - GET_METHOD_ID(env, getName, input_device_class, "getName", "()Ljava/lang/String;"); + GET_METHOD_ID(env, getName, class, "getName", "()Ljava/lang/String;"); if (!getName) goto end; diff --git a/camera/android.c b/camera/android.c new file mode 100644 index 0000000000..505217322b --- /dev/null +++ b/camera/android.c @@ -0,0 +1,67 @@ +/* RetroArch - A frontend for libretro. + * Copyright (C) 2010-2013 - Michael Lelli + * + * RetroArch is free software: you can redistribute it and/or modify it under the terms + * of the GNU General Public License as published by the Free Software Found- + * ation, either version 3 of the License, or (at your option) any later version. + * + * RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with RetroArch. + * If not, see . + */ + +#include "../driver.h" +#include "../emscripten/RWebCam.h" +#include "../android/native/jni/jni_macros.h" + +static void *android_init(const char *device, uint64_t caps, unsigned width, unsigned height) +{ + (void)device; + (void)caps; + (void)width; + (void)height; + return (void*)0; +} + +static void android_free(void *data) +{ + struct android_app *android_app = (struct android_app*)g_android; + (void)android_app; + (void)data; +} + +static bool android_start(void *data) +{ + struct android_app *android_app = (struct android_app*)g_android; + (void)android_app; + (void)data; + return true; +} + +static void android_stop(void *data) +{ + struct android_app *android_app = (struct android_app*)g_android; + (void)android_app; + (void)data; +} + +static bool android_poll(void *data, retro_camera_frame_raw_framebuffer_t frame_raw_cb, + retro_camera_frame_opengl_texture_t frame_gl_cb) +{ + struct android_app *android_app = (struct android_app*)g_android; + (void)android_app; + (void)data; + return true; +} + +const camera_driver_t camera_android = { + android_init, + android_free, + android_start, + android_stop, + android_poll, + "android", +};