mirror of
https://github.com/libretro/RetroArch
synced 2025-04-01 04:20:27 +00:00
Move jni stuff to NativeInterface.
Makes it more generic and extensible for the future.
This commit is contained in:
parent
b5c733f692
commit
773295cb28
@ -2,7 +2,7 @@ LOCAL_PATH := $(call my-dir)
|
|||||||
include $(CLEAR_VARS)
|
include $(CLEAR_VARS)
|
||||||
|
|
||||||
LOCAL_ARM_MODE := arm
|
LOCAL_ARM_MODE := arm
|
||||||
LOCAL_MODULE := apk-extract
|
LOCAL_MODULE := retroarch-jni
|
||||||
RARCH_DIR := $(LOCAL_PATH)/../../..
|
RARCH_DIR := $(LOCAL_PATH)/../../..
|
||||||
LOCAL_CFLAGS += -std=gnu99 -Wall -DHAVE_LOGGER -DRARCH_DUMMY_LOG -DHAVE_ZLIB -DHAVE_MMAP -I$(RARCH_DIR)
|
LOCAL_CFLAGS += -std=gnu99 -Wall -DHAVE_LOGGER -DRARCH_DUMMY_LOG -DHAVE_ZLIB -DHAVE_MMAP -I$(RARCH_DIR)
|
||||||
LOCAL_LDLIBS := -llog -lz
|
LOCAL_LDLIBS := -llog -lz
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
#include "file.h"
|
#include "file.h"
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "org_retroarch_browser_AssetExtractor.h"
|
#include "../native/org_retroarch_browser_NativeInterface.h"
|
||||||
|
|
||||||
struct userdata
|
struct userdata
|
||||||
{
|
{
|
||||||
@ -60,7 +60,7 @@ static bool zlib_cb(const char *name, const uint8_t *cdata, unsigned cmode, uint
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT jboolean JNICALL Java_org_retroarch_browser_AssetExtractor_extractArchiveTo(
|
JNIEXPORT jboolean JNICALL Java_org_retroarch_browser_NativeInterface_extractArchiveTo(
|
||||||
JNIEnv *env, jclass cls, jstring archive, jstring subdir, jstring dest)
|
JNIEnv *env, jclass cls, jstring archive, jstring subdir, jstring dest)
|
||||||
{
|
{
|
||||||
const char *archive_c = (*env)->GetStringUTFChars(env, archive, NULL);
|
const char *archive_c = (*env)->GetStringUTFChars(env, archive, NULL);
|
||||||
|
@ -1,21 +0,0 @@
|
|||||||
/* DO NOT EDIT THIS FILE - it is machine generated */
|
|
||||||
#include <jni.h>
|
|
||||||
/* Header for class org_retroarch_browser_AssetExtractor */
|
|
||||||
|
|
||||||
#ifndef _Included_org_retroarch_browser_AssetExtractor
|
|
||||||
#define _Included_org_retroarch_browser_AssetExtractor
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
/*
|
|
||||||
* Class: org_retroarch_browser_AssetExtractor
|
|
||||||
* Method: extractArchiveTo
|
|
||||||
* Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
|
|
||||||
*/
|
|
||||||
JNIEXPORT jboolean JNICALL Java_org_retroarch_browser_AssetExtractor_extractArchiveTo
|
|
||||||
(JNIEnv *, jclass, jstring, jstring, jstring);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#endif
|
|
@ -0,0 +1,21 @@
|
|||||||
|
/* DO NOT EDIT THIS FILE - it is machine generated */
|
||||||
|
#include <jni.h>
|
||||||
|
/* Header for class org_retroarch_browser_NativeInterface */
|
||||||
|
|
||||||
|
#ifndef _Included_org_retroarch_browser_NativeInterface
|
||||||
|
#define _Included_org_retroarch_browser_NativeInterface
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
/*
|
||||||
|
* Class: org_retroarch_browser_NativeInterface
|
||||||
|
* Method: extractArchiveTo
|
||||||
|
* Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
|
||||||
|
*/
|
||||||
|
JNIEXPORT jboolean JNICALL Java_org_retroarch_browser_NativeInterface_extractArchiveTo
|
||||||
|
(JNIEnv *, jclass, jstring, jstring, jstring);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif
|
@ -1,20 +0,0 @@
|
|||||||
package org.retroarch.browser;
|
|
||||||
|
|
||||||
public final class AssetExtractor {
|
|
||||||
final private String archive;
|
|
||||||
|
|
||||||
public AssetExtractor(String archive) {
|
|
||||||
this.archive = archive;
|
|
||||||
}
|
|
||||||
|
|
||||||
static {
|
|
||||||
System.loadLibrary("apk-extract");
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean extractTo(String subDirectory, String destinationFolder) {
|
|
||||||
return extractArchiveTo(archive, subDirectory, destinationFolder);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static native boolean extractArchiveTo(String archive,
|
|
||||||
String subDirectory, String destinationFolder);
|
|
||||||
}
|
|
@ -124,8 +124,7 @@ public final class MainMenuActivity extends PreferenceActivity {
|
|||||||
|
|
||||||
String apk = getApplicationInfo().sourceDir;
|
String apk = getApplicationInfo().sourceDir;
|
||||||
Log.i(TAG, "Extracting RetroArch assets from: " + apk + " ...");
|
Log.i(TAG, "Extracting RetroArch assets from: " + apk + " ...");
|
||||||
AssetExtractor asset = new AssetExtractor(apk);
|
boolean success = NativeInterface.extractArchiveTo(apk, "assets", dataDir);
|
||||||
boolean success = asset.extractTo("assets", dataDir);
|
|
||||||
if (!success) {
|
if (!success) {
|
||||||
throw new IOException("Failed to extract assets ...");
|
throw new IOException("Failed to extract assets ...");
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,12 @@
|
|||||||
|
package org.retroarch.browser;
|
||||||
|
|
||||||
|
// Helper class which calls into JNI for various tasks.
|
||||||
|
public final class NativeInterface {
|
||||||
|
|
||||||
|
static {
|
||||||
|
System.loadLibrary("retroarch-jni");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static native boolean extractArchiveTo(String archive,
|
||||||
|
String subDirectory, String destinationFolder);
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user