src/core/android/SDL_android.h
author Sam Lantinga <slouken@libsdl.org>
Sun, 23 Sep 2012 01:37:44 -0700
changeset 6448 64a6297a8b93
parent 6392 fa7eb111f994
child 6464 ab55284b389f
permissions -rwxr-xr-x
Fixed bug 1606 - SDL does not implement SDL_GetPowerInfo() for Android.

Philipp Wiesemann 2012-09-22 05:26:11 PDT

currently SDL (HG) does not implement the power management functionality of
SDL_GetPowerInfo() for Android.

I attached a patch which tries to implement this functionality (JNI only, API
5). It supports plugged state and battery percent return values but not
remaining seconds (which are not available on Android).
slouken@4994
     1
/*
slouken@5535
     2
  Simple DirectMedia Layer
slouken@6138
     3
  Copyright (C) 1997-2012 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
*/
slouken@4994
    21
#include "SDL_config.h"
slouken@4994
    22
slouken@4994
    23
/* Set up for C function definitions, even when using C++ */
slouken@4994
    24
#ifdef __cplusplus
slouken@4994
    25
/* *INDENT-OFF* */
slouken@4994
    26
extern "C" {
slouken@4994
    27
/* *INDENT-ON* */
slouken@4994
    28
#endif
slouken@4994
    29
slouken@4994
    30
/* Interface from the SDL library into the Android Java activity */
slouken@5222
    31
extern SDL_bool Android_JNI_CreateContext(int majorVersion, int minorVersion);
slouken@5000
    32
extern void Android_JNI_SwapWindow();
slouken@5000
    33
extern void Android_JNI_SetActivityTitle(const char *title);
slouken@6212
    34
extern SDL_bool Android_JNI_GetAccelerometerValues(float values[3]);
slouken@4995
    35
slouken@4995
    36
// Audio support
slouken@5000
    37
extern int Android_JNI_OpenAudioDevice(int sampleRate, int is16Bit, int channelCount, int desiredBufferFrames);
slouken@5000
    38
extern void* Android_JNI_GetAudioBuffer();
slouken@5000
    39
extern void Android_JNI_WriteAudioBuffer();
slouken@5000
    40
extern void Android_JNI_CloseAudioDevice();
slouken@4994
    41
icculus@5582
    42
#include "SDL_rwops.h"
icculus@5582
    43
icculus@5582
    44
int Android_JNI_FileOpen(SDL_RWops* ctx, const char* fileName, const char* mode);
icculus@5582
    45
long Android_JNI_FileSeek(SDL_RWops* ctx, long offset, int whence);
icculus@5582
    46
size_t Android_JNI_FileRead(SDL_RWops* ctx, void* buffer, size_t size, size_t maxnum);
icculus@5582
    47
size_t Android_JNI_FileWrite(SDL_RWops* ctx, const void* buffer, size_t size, size_t num);
icculus@5582
    48
int Android_JNI_FileClose(SDL_RWops* ctx);
icculus@5582
    49
slouken@6448
    50
/* Power support */
slouken@6448
    51
int Android_JNI_GetPowerInfo(int* plugged, int* charged, int* battery, int* seconds, int* percent);
slouken@6448
    52
gabomdq@6354
    53
// Threads
gabomdq@6354
    54
#include <jni.h>
gabomdq@6354
    55
static void Android_JNI_ThreadDestroyed(void*);
gabomdq@6354
    56
JNIEnv *Android_JNI_GetEnv(void);
gabomdq@6354
    57
int Android_JNI_SetupThread(void);
gabomdq@6354
    58
slouken@6392
    59
// Generic messages
slouken@6392
    60
int Android_JNI_SendMessage(int command, int param);
slouken@6392
    61
slouken@4994
    62
/* Ends C function definitions when using C++ */
slouken@4994
    63
#ifdef __cplusplus
slouken@4994
    64
/* *INDENT-OFF* */
slouken@4994
    65
}
slouken@4994
    66
/* *INDENT-ON* */
slouken@4994
    67
#endif
slouken@4994
    68
slouken@4994
    69
/* vi: set ts=4 sw=4 expandtab: */