(Android) Stub android camera C driver - will interface with JNI

functions
This commit is contained in:
twinaphex 2013-11-18 00:28:27 +01:00
parent ee35e5382f
commit 51891483c4
2 changed files with 73 additions and 6 deletions

View File

@ -27,18 +27,18 @@ static void input_autodetect_get_device_name(void *data, char *buf, size_t size,
JNIEnv *env = NULL; JNIEnv *env = NULL;
(*vm)->AttachCurrentThread(vm, &env, 0); (*vm)->AttachCurrentThread(vm, &env, 0);
jclass input_device_class = NULL; jclass class = NULL;
FIND_CLASS(env, input_device_class, "android/view/InputDevice"); FIND_CLASS(env, class, "android/view/InputDevice");
if (!input_device_class) if (!class)
goto end; goto end;
jmethodID method = NULL; 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) if (!method)
goto end; goto end;
jobject device = NULL; 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) if (!device)
{ {
RARCH_ERR("Failed to find device for ID: %d\n", id); 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; 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) if (!getName)
goto end; goto end;

67
camera/android.c Normal file
View File

@ -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 <http://www.gnu.org/licenses/>.
*/
#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",
};