Files
radiantwave/archive/vendor/github.com/veandco/go-sdl2/sdl/system_android.go
T
2026-08-07 14:51:41 -05:00

89 lines
2.7 KiB
Go

// +build go1.4
package sdl
/*
#include "sdl_wrapper.h"
#if !(SDL_VERSION_ATLEAST(2,0,8))
#if defined(WARN_OUTDATED)
#pragma message("SDL_IsAndroidTV is not supported before SDL 2.0.8")
#endif
static int SDL_IsAndroidTV(void)
{
return -1;
}
#endif
#if !(SDL_VERSION_ATLEAST(2,0,16))
#if defined(WARN_OUTDATED)
#pragma message("SDL_AndroidShowToast is not supported before SDL 2.0.16")
#endif
static int SDL_AndroidShowToast(const char* message, int duration, int gravity, int xoffset, int yoffset)
{
return -1;
}
#endif
*/
import "C"
import "unsafe"
// External storage states. See the official Android developer guide for more information.
// (http://developer.android.com/guide/topics/data/data-storage.html)
const (
ANDROID_EXTERNAL_STORAGE_READ = C.SDL_ANDROID_EXTERNAL_STORAGE_READ
ANDROID_EXTERNAL_STORAGE_WRITE = C.SDL_ANDROID_EXTERNAL_STORAGE_WRITE
)
// AndroidGetInternalStoragePath returns the path used for internal storage for this application.
// (https://wiki.libsdl.org/SDL_AndroidGetInternalStoragePath)
func AndroidGetInternalStoragePath() string {
return C.GoString(C.SDL_AndroidGetInternalStoragePath())
}
// AndroidGetExternalStoragePath returns the path used for external storage for this application.
// (https://wiki.libsdl.org/SDL_AndroidGetExternalStoragePath)
func AndroidGetExternalStoragePath() string {
return C.GoString(C.SDL_AndroidGetExternalStoragePath())
}
// AndroidGetExternalStorageState returns the current state of external storage.
// (https://wiki.libsdl.org/SDL_AndroidGetExternalStorageState)
func AndroidGetExternalStorageState() int {
return int(C.SDL_AndroidGetExternalStorageState())
}
// AndroidGetJNIEnv returns the Java native interface object (JNIEnv) of the current thread on Android builds.
// (https://wiki.libsdl.org/SDL_AndroidGetJNIEnv)
func AndroidGetJNIEnv() unsafe.Pointer {
return unsafe.Pointer(C.SDL_AndroidGetJNIEnv())
}
// AndroidGetActivity returns the Java instance of the activity class in an Android application.
// (https://wiki.libsdl.org/SDL_AndroidGetActivity)
func AndroidGetActivity() unsafe.Pointer {
return unsafe.Pointer(C.SDL_AndroidGetActivity())
}
// IsAndroidTV returns true if the application is running on Android TV
// (https://wiki.libsdl.org/SDL_IsAndroidTV)
func IsAndroidTV() bool {
return C.SDL_IsAndroidTV() >= 0
}
// AndroidShowToast shows an Android toast notification.
// (https://wiki.libsdl.org/SDL_AndroidShowToast)
func AndroidShowToast(message string, duration, gravity, xoffset, yoffset int) (err error) {
_message := C.CString(message)
defer C.free(unsafe.Pointer(_message))
return errorFromInt(int(C.SDL_AndroidShowToast(_message, C.int(duration), C.int(gravity), C.int(xoffset), C.int(yoffset))))
}