| | |
| | | /* |
| | | Simple DirectMedia Layer |
| | | Copyright (C) 1997-2014 Sam Lantinga <slouken@libsdl.org> |
| | | Copyright (C) 1997-2018 Sam Lantinga <slouken@libsdl.org> |
| | | |
| | | This software is provided 'as-is', without any express or implied |
| | | warranty. In no event will the authors be held liable for any damages |
| | |
| | | 3. This notice may not be removed or altered from any source distribution. |
| | | */ |
| | | #include "../../SDL_internal.h" |
| | | #include "SDL_system.h" |
| | | |
| | | /* Set up for C function definitions, even when using C++ */ |
| | | #ifdef __cplusplus |
| | |
| | | #include <EGL/eglplatform.h> |
| | | #include <android/native_window_jni.h> |
| | | |
| | | #include "SDL_audio.h" |
| | | #include "SDL_rect.h" |
| | | |
| | | /* Interface from the SDL library into the Android Java activity */ |
| | | /* extern SDL_bool Android_JNI_CreateContext(int majorVersion, int minorVersion, int red, int green, int blue, int alpha, int buffer, int depth, int stencil, int buffers, int samples); |
| | | extern SDL_bool Android_JNI_DeleteContext(void); */ |
| | | extern void Android_JNI_SwapWindow(); |
| | | extern void Android_JNI_SetActivityTitle(const char *title); |
| | | extern void Android_JNI_SetWindowStyle(SDL_bool fullscreen); |
| | | extern void Android_JNI_SetOrientation(int w, int h, int resizable, const char *hint); |
| | | |
| | | extern SDL_bool Android_JNI_GetAccelerometerValues(float values[3]); |
| | | extern void Android_JNI_ShowTextInput(SDL_Rect *inputRect); |
| | | extern void Android_JNI_HideTextInput(); |
| | | extern void Android_JNI_HideTextInput(void); |
| | | extern SDL_bool Android_JNI_IsScreenKeyboardShown(void); |
| | | extern ANativeWindow* Android_JNI_GetNativeWindow(void); |
| | | |
| | | extern int Android_JNI_GetDisplayDPI(float *ddpi, float *xdpi, float *ydpi); |
| | | |
| | | /* Audio support */ |
| | | extern int Android_JNI_OpenAudioDevice(int sampleRate, int is16Bit, int channelCount, int desiredBufferFrames); |
| | | extern void* Android_JNI_GetAudioBuffer(); |
| | | extern void Android_JNI_WriteAudioBuffer(); |
| | | extern void Android_JNI_CloseAudioDevice(); |
| | | extern int Android_JNI_OpenAudioDevice(int iscapture, SDL_AudioSpec *spec); |
| | | extern void* Android_JNI_GetAudioBuffer(void); |
| | | extern void Android_JNI_WriteAudioBuffer(void); |
| | | extern int Android_JNI_CaptureAudioBuffer(void *buffer, int buflen); |
| | | extern void Android_JNI_FlushCapturedAudio(void); |
| | | extern void Android_JNI_CloseAudioDevice(const int iscapture); |
| | | |
| | | /* Detecting device type */ |
| | | extern SDL_bool Android_IsDeXMode(); |
| | | extern SDL_bool Android_IsChromebook(); |
| | | |
| | | #include "SDL_rwops.h" |
| | | |
| | |
| | | size_t Android_JNI_FileWrite(SDL_RWops* ctx, const void* buffer, size_t size, size_t num); |
| | | int Android_JNI_FileClose(SDL_RWops* ctx); |
| | | |
| | | /* Environment support */ |
| | | void Android_JNI_GetManifestEnvironmentVariables(void); |
| | | |
| | | /* Clipboard support */ |
| | | int Android_JNI_SetClipboardText(const char* text); |
| | | char* Android_JNI_GetClipboardText(); |
| | | SDL_bool Android_JNI_HasClipboardText(); |
| | | char* Android_JNI_GetClipboardText(void); |
| | | SDL_bool Android_JNI_HasClipboardText(void); |
| | | |
| | | /* Power support */ |
| | | int Android_JNI_GetPowerInfo(int* plugged, int* charged, int* battery, int* seconds, int* percent); |
| | | |
| | | |
| | | /* Joystick support */ |
| | | void Android_JNI_PollInputDevices(); |
| | | void Android_JNI_PollInputDevices(void); |
| | | |
| | | /* Haptic support */ |
| | | void Android_JNI_PollHapticDevices(void); |
| | | void Android_JNI_HapticRun(int device_id, float intensity, int length); |
| | | void Android_JNI_HapticStop(int device_id); |
| | | |
| | | /* Video */ |
| | | void Android_JNI_SuspendScreenSaver(SDL_bool suspend); |
| | | |
| | | /* Touch support */ |
| | | int Android_JNI_InitTouch(void); |
| | | void Android_JNI_SetSeparateMouseAndTouch(SDL_bool new_value); |
| | | int Android_JNI_GetTouchDeviceIds(int **ids); |
| | | |
| | | /* Threads */ |
| | |
| | | /* Generic messages */ |
| | | int Android_JNI_SendMessage(int command, int param); |
| | | |
| | | /* Init */ |
| | | JNIEXPORT void JNICALL SDL_Android_Init(JNIEnv* mEnv, jclass cls); |
| | | |
| | | /* MessageBox */ |
| | | #include "SDL_messagebox.h" |
| | | int Android_JNI_ShowMessageBox(const SDL_MessageBoxData *messageboxdata, int *buttonid); |
| | | |
| | | /* Cursor support */ |
| | | int Android_JNI_CreateCustomCursor(SDL_Surface *surface, int hot_x, int hot_y); |
| | | SDL_bool Android_JNI_SetCustomCursor(int cursorID); |
| | | SDL_bool Android_JNI_SetSystemCursor(int cursorID); |
| | | |
| | | /* Relative mouse support */ |
| | | SDL_bool Android_JNI_SupportsRelativeMouse(void); |
| | | SDL_bool Android_JNI_SetRelativeMouseEnabled(SDL_bool enabled); |
| | | |
| | | |
| | | SDL_bool SDL_IsAndroidTablet(void); |
| | | SDL_bool SDL_IsAndroidTV(void); |
| | | SDL_bool SDL_IsChromebook(void); |
| | | SDL_bool SDL_IsDeXMode(void); |
| | | |
| | | /* Ends C function definitions when using C++ */ |
| | | #ifdef __cplusplus |
| | | /* *INDENT-OFF* */ |