src/core/android/SDL_android.h
author Sam Lantinga <slouken@libsdl.org>
Sun, 11 Feb 2018 18:23:37 -0800
changeset 11865 af91d564aa40
parent 11811 5d94cb6b24d3
child 11931 d479188e0155
permissions -rw-r--r--
On Android show the system UI when an SDL window is windowed, hide the system UI when it's fullscreen, like we do on iOS.
We're increasing the Android SDK minimum version to API 19, this doesn't increase the minimum target API, which is API 14.
slouken@4994
     1
/*
slouken@5535
     2
  Simple DirectMedia Layer
slouken@11811
     3
  Copyright (C) 1997-2018 Sam Lantinga <slouken@libsdl.org>
slouken@4994
     4
slouken@5535
     5
  This software is provided 'as-is', without any express or implied
slouken@5535
     6
  warranty.  In no event will the authors be held liable for any damages
slouken@5535
     7
  arising from the use of this software.
slouken@4994
     8
slouken@5535
     9
  Permission is granted to anyone to use this software for any purpose,
slouken@5535
    10
  including commercial applications, and to alter it and redistribute it
slouken@5535
    11
  freely, subject to the following restrictions:
slouken@4994
    12
slouken@5535
    13
  1. The origin of this software must not be misrepresented; you must not
slouken@5535
    14
     claim that you wrote the original software. If you use this software
slouken@5535
    15
     in a product, an acknowledgment in the product documentation would be
slouken@5535
    16
     appreciated but is not required.
slouken@5535
    17
  2. Altered source versions must be plainly marked as such, and must not be
slouken@5535
    18
     misrepresented as being the original software.
slouken@5535
    19
  3. This notice may not be removed or altered from any source distribution.
slouken@4994
    20
*/
icculus@8093
    21
#include "../../SDL_internal.h"
slouken@4994
    22
slouken@7570
    23
/* Set up for C function definitions, even when using C++ */
slouken@7570
    24
#ifdef __cplusplus
slouken@7570
    25
/* *INDENT-OFF* */
slouken@7570
    26
extern "C" {
slouken@7570
    27
/* *INDENT-ON* */
slouken@7570
    28
#endif
slouken@7570
    29
gabomdq@7659
    30
#include <EGL/eglplatform.h>
gabomdq@7659
    31
#include <android/native_window_jni.h>
gabomdq@7659
    32
slouken@6555
    33
#include "SDL_rect.h"
slouken@6555
    34
slouken@4994
    35
/* Interface from the SDL library into the Android Java activity */
slouken@5000
    36
extern void Android_JNI_SetActivityTitle(const char *title);
slouken@11865
    37
extern void Android_JNI_SetWindowStyle(SDL_bool fullscreen);
slouken@11270
    38
extern void Android_JNI_SetOrientation(int w, int h, int resizable, const char *hint);
slouken@11393
    39
slouken@6212
    40
extern SDL_bool Android_JNI_GetAccelerometerValues(float values[3]);
slouken@6654
    41
extern void Android_JNI_ShowTextInput(SDL_Rect *inputRect);
philipp@9594
    42
extern void Android_JNI_HideTextInput(void);
slouken@11271
    43
extern SDL_bool Android_JNI_IsScreenKeyboardShown(void);
gabomdq@7659
    44
extern ANativeWindow* Android_JNI_GetNativeWindow(void);
slouken@4995
    45
slouken@11662
    46
extern int Android_JNI_GetDisplayDPI(float *ddpi, float *xdpi, float *ydpi);
slouken@11662
    47
philipp@7245
    48
/* Audio support */
icculus@10280
    49
extern int Android_JNI_OpenAudioDevice(int iscapture, int sampleRate, int is16Bit, int channelCount, int desiredBufferFrames);
philipp@9594
    50
extern void* Android_JNI_GetAudioBuffer(void);
philipp@9594
    51
extern void Android_JNI_WriteAudioBuffer(void);
icculus@10280
    52
extern int Android_JNI_CaptureAudioBuffer(void *buffer, int buflen);
icculus@10280
    53
extern void Android_JNI_FlushCapturedAudio(void);
icculus@10280
    54
extern void Android_JNI_CloseAudioDevice(const int iscapture);
slouken@4994
    55
icculus@5582
    56
#include "SDL_rwops.h"
icculus@5582
    57
icculus@5582
    58
int Android_JNI_FileOpen(SDL_RWops* ctx, const char* fileName, const char* mode);
slouken@6642
    59
Sint64 Android_JNI_FileSize(SDL_RWops* ctx);
slouken@6642
    60
Sint64 Android_JNI_FileSeek(SDL_RWops* ctx, Sint64 offset, int whence);
icculus@5582
    61
size_t Android_JNI_FileRead(SDL_RWops* ctx, void* buffer, size_t size, size_t maxnum);
icculus@5582
    62
size_t Android_JNI_FileWrite(SDL_RWops* ctx, const void* buffer, size_t size, size_t num);
icculus@5582
    63
int Android_JNI_FileClose(SDL_RWops* ctx);
icculus@5582
    64
slouken@11653
    65
/* Environment support */
slouken@11678
    66
void Android_JNI_GetManifestEnvironmentVariables(void);
slouken@11653
    67
slouken@6464
    68
/* Clipboard support */
slouken@6464
    69
int Android_JNI_SetClipboardText(const char* text);
philipp@9594
    70
char* Android_JNI_GetClipboardText(void);
philipp@9594
    71
SDL_bool Android_JNI_HasClipboardText(void);
slouken@6464
    72
slouken@6448
    73
/* Power support */
slouken@6448
    74
int Android_JNI_GetPowerInfo(int* plugged, int* charged, int* battery, int* seconds, int* percent);
philipp@9880
    75
gabomdq@7907
    76
/* Joystick support */
philipp@9594
    77
void Android_JNI_PollInputDevices(void);
gabomdq@8057
    78
slouken@11238
    79
/* Haptic support */
slouken@11238
    80
void Android_JNI_PollHapticDevices(void);
slouken@11238
    81
void Android_JNI_HapticRun(int device_id, int length);
slouken@11238
    82
gabomdq@9173
    83
/* Video */
gabomdq@9173
    84
void Android_JNI_SuspendScreenSaver(SDL_bool suspend);
slouken@6448
    85
philipp@7786
    86
/* Touch support */
philipp@7786
    87
int Android_JNI_GetTouchDeviceIds(int **ids);
slouken@11239
    88
void Android_JNI_SetSeparateMouseAndTouch(SDL_bool new_value);
philipp@7786
    89
philipp@7245
    90
/* Threads */
gabomdq@6354
    91
#include <jni.h>
gabomdq@6354
    92
JNIEnv *Android_JNI_GetEnv(void);
gabomdq@6354
    93
int Android_JNI_SetupThread(void);
gabomdq@6354
    94
philipp@7245
    95
/* Generic messages */
slouken@6392
    96
int Android_JNI_SendMessage(int command, int param);
slouken@6392
    97
slouken@10672
    98
/* Init */
slouken@10672
    99
JNIEXPORT void JNICALL SDL_Android_Init(JNIEnv* mEnv, jclass cls);
slouken@10672
   100
slouken@10672
   101
/* MessageBox */
slouken@10672
   102
#include "SDL_messagebox.h"
slouken@10672
   103
int Android_JNI_ShowMessageBox(const SDL_MessageBoxData *messageboxdata, int *buttonid);
slouken@10672
   104
slouken@7570
   105
/* Ends C function definitions when using C++ */
slouken@7570
   106
#ifdef __cplusplus
slouken@7570
   107
/* *INDENT-OFF* */
slouken@7570
   108
}
slouken@7570
   109
/* *INDENT-ON* */
slouken@7570
   110
#endif
slouken@7570
   111
slouken@4994
   112
/* vi: set ts=4 sw=4 expandtab: */