|
|
|
/*
|
|
|
|
Copyright (C) 2022 nillerusr
|
|
|
|
|
|
|
|
This program 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 Foundation, either version 3 of the License, or
|
|
|
|
(at your option) any later version.
|
|
|
|
|
|
|
|
This program 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.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <string.h>
|
|
|
|
#include <dlfcn.h>
|
|
|
|
#include <jni.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <string.h>
|
|
|
|
#include <unistd.h>
|
|
|
|
#include <SDL_hints.h>
|
|
|
|
#include <SDL_version.h>
|
|
|
|
#include "tier0/dbg.h"
|
|
|
|
#include "tier0/threadtools.h"
|
|
|
|
|
|
|
|
char *LauncherArgv[512];
|
|
|
|
char java_args[4096];
|
|
|
|
int iLastArgs = 0;
|
|
|
|
|
|
|
|
DLL_EXPORT int LauncherMain( int argc, char **argv ); // from launcher.cpp
|
|
|
|
extern void InitCrashHandler();
|
|
|
|
|
|
|
|
JNIEXPORT int Java_com_valvesoftware_ValveActivity2_setenv(JNIEnv *jenv, jclass *jclass, jstring env, jstring value, jint over)
|
|
|
|
{
|
|
|
|
Msg( "Java_com_valvesoftware_ValveActivity2_setenv %s=%s", jenv->GetStringUTFChars(env, NULL), jenv->GetStringUTFChars(value, NULL) );
|
|
|
|
return setenv( jenv->GetStringUTFChars(env, NULL), jenv->GetStringUTFChars(value, NULL), over );
|
|
|
|
}
|
|
|
|
|
|
|
|
JNIEXPORT void Java_com_valvesoftware_ValveActivity2_nativeOnActivityResult()
|
|
|
|
{
|
|
|
|
Msg( "Java_com_valvesoftware_ValveActivity_nativeOnActivityResult" );
|
|
|
|
}
|
|
|
|
|
|
|
|
JNIEXPORT void Java_com_valvesoftware_ValveActivity2_setArgs(JNIEnv *env, jclass *clazz, jstring str)
|
|
|
|
{
|
|
|
|
strncpy( java_args, env->GetStringUTFChars(str, NULL), sizeof java_args );
|
|
|
|
}
|
|
|
|
|
|
|
|
void SetLauncherArgs()
|
|
|
|
{
|
|
|
|
#define A(a,b) LauncherArgv[iLastArgs++] = (char*)a; \
|
|
|
|
LauncherArgv[iLastArgs++] = (char*)b
|
|
|
|
#define D(a) LauncherArgv[iLastArgs++] = (char*)a
|
|
|
|
|
|
|
|
static char binPath[2048];
|
|
|
|
snprintf(binPath, sizeof binPath, "%s/hl2_linux", getenv("APP_DATA_PATH") );
|
|
|
|
Msg(binPath);
|
|
|
|
D(binPath);
|
|
|
|
|
|
|
|
D("-nouserclip");
|
|
|
|
|
|
|
|
char *pch;
|
|
|
|
|
|
|
|
pch = strtok (java_args," ");
|
|
|
|
while (pch != NULL)
|
|
|
|
{
|
|
|
|
LauncherArgv[iLastArgs++] = pch;
|
|
|
|
pch = strtok (NULL, " ");
|
|
|
|
}
|
|
|
|
|
|
|
|
D("-fullscreen");
|
|
|
|
D("-nosteam");
|
|
|
|
D("-insecure");
|
|
|
|
|
|
|
|
#undef A
|
|
|
|
#undef D
|
|
|
|
}
|
|
|
|
|
|
|
|
JNIEXPORT int LauncherMainAndroid( int argc, char **argv )
|
|
|
|
{
|
|
|
|
SDL_version ver;
|
|
|
|
SDL_GetVersion( &ver );
|
|
|
|
|
|
|
|
Msg("SDL version: %d.%d.%d rev: %s\n", (int)ver.major, (int)ver.minor, (int)ver.patch, SDL_GetRevision());
|
|
|
|
|
|
|
|
InitCrashHandler();
|
|
|
|
SetLauncherArgs();
|
|
|
|
|
|
|
|
SDL_SetHint(SDL_HINT_TOUCH_MOUSE_EVENTS, "0");
|
|
|
|
DeclareCurrentThreadIsMainThread(); // Init thread propertly on Android
|
|
|
|
|
|
|
|
return LauncherMain(iLastArgs, LauncherArgv);
|
|
|
|
}
|