You've already forked android_translation_layer
mirror of
https://gitlab.com/android_translation_layer/android_translation_layer.git
synced 2025-10-27 11:48:10 -07:00
src/libandroid: implement more stuff
This commit is contained in:
@@ -10,8 +10,11 @@
|
|||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
struct AAssetManager {
|
struct AAssetManager {
|
||||||
|
char dummy;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct AAssetManager dummy_asset_manager;
|
||||||
|
|
||||||
struct AAsset{
|
struct AAsset{
|
||||||
int fd;
|
int fd;
|
||||||
off64_t read;
|
off64_t read;
|
||||||
@@ -114,7 +117,8 @@ off_t AAsset_getLength(struct AAsset *asset)
|
|||||||
}
|
}
|
||||||
struct AAssetManager * AAssetManager_fromJava(JNIEnv *env, jobject assetManager)
|
struct AAssetManager * AAssetManager_fromJava(JNIEnv *env, jobject assetManager)
|
||||||
{
|
{
|
||||||
return NULL;
|
// some apps don't like if we return NULL here
|
||||||
|
return &dummy_asset_manager;
|
||||||
}
|
}
|
||||||
|
|
||||||
int AAsset_read(struct AAsset *asset, void *buf, size_t count) {
|
int AAsset_read(struct AAsset *asset, void *buf, size_t count) {
|
||||||
|
|||||||
@@ -48,7 +48,18 @@ ITANIUM_OBJ_RET_WRAPPER_NOARGS(ALooper, ALooper_forThread, _ZN7android6Looper12g
|
|||||||
ITANIUM_OBJ_RET_WRAPPER_DEC(ALooper, ALooper_prepare, _ZN7android6Looper7prepareEi, int opts)
|
ITANIUM_OBJ_RET_WRAPPER_DEC(ALooper, ALooper_prepare, _ZN7android6Looper7prepareEi, int opts)
|
||||||
ITANIUM_OBJ_RET_WRAPPER_BODY(ALooper, ALooper_prepare, _ZN7android6Looper7prepareEi, opts)
|
ITANIUM_OBJ_RET_WRAPPER_BODY(ALooper, ALooper_prepare, _ZN7android6Looper7prepareEi, opts)
|
||||||
|
|
||||||
int _ZN7android6Looper7pollAllEiPiS1_PPv(void *this, int timeoutMillis, int* outFd, int* outEvents, void** outData);
|
|
||||||
|
void _ZNK7android7RefBase9incStrongEPKv(ALooper *this, void *unused);
|
||||||
|
void ALooper_acquire(ALooper* looper) {
|
||||||
|
_ZNK7android7RefBase9incStrongEPKv(looper, (void*)ALooper_acquire);
|
||||||
|
}
|
||||||
|
|
||||||
|
void _ZNK7android7RefBase9decStrongEPKv(ALooper *this, void *unused);
|
||||||
|
void ALooper_release(ALooper* looper) {
|
||||||
|
_ZNK7android7RefBase9decStrongEPKv(looper, (void*)ALooper_acquire);
|
||||||
|
}
|
||||||
|
|
||||||
|
int _ZN7android6Looper7pollAllEiPiS1_PPv(ALooper *this, int timeoutMillis, int* outFd, int* outEvents, void** outData);
|
||||||
int ALooper_pollAll(int timeoutMillis, int* outFd, int* outEvents, void** outData)
|
int ALooper_pollAll(int timeoutMillis, int* outFd, int* outEvents, void** outData)
|
||||||
{
|
{
|
||||||
ALooper *looper = ALooper_forThread();
|
ALooper *looper = ALooper_forThread();
|
||||||
@@ -60,8 +71,12 @@ int ALooper_pollAll(int timeoutMillis, int* outFd, int* outEvents, void** outDat
|
|||||||
return _ZN7android6Looper7pollAllEiPiS1_PPv(looper, timeoutMillis, outFd, outEvents, outData);
|
return _ZN7android6Looper7pollAllEiPiS1_PPv(looper, timeoutMillis, outFd, outEvents, outData);
|
||||||
}
|
}
|
||||||
|
|
||||||
int _ZN7android6Looper5addFdEiiiPFiiiPvES1_(void *this, int fd, int ident, int events, Looper_callbackFunc callback, void* data);
|
int _ZN7android6Looper5addFdEiiiPFiiiPvES1_(ALooper *this, int fd, int ident, int events, Looper_callbackFunc callback, void* data);
|
||||||
int ALooper_addFd(ALooper* looper, int fd, int ident, int events, Looper_callbackFunc callback, void* data)
|
int ALooper_addFd(ALooper* looper, int fd, int ident, int events, Looper_callbackFunc callback, void* data)
|
||||||
{
|
{
|
||||||
return _ZN7android6Looper5addFdEiiiPFiiiPvES1_(looper, fd, ident, events, callback, data);
|
return _ZN7android6Looper5addFdEiiiPFiiiPvES1_(looper, fd, ident, events, callback, data);
|
||||||
}
|
}
|
||||||
|
void _ZN7android6Looper4wakeEv(ALooper *this);
|
||||||
|
void ALooper_wake(ALooper* looper) {
|
||||||
|
_ZN7android6Looper4wakeEv(looper);
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user