raylib-go/raylib/utils_android.go
2018-02-21 21:34:39 +01:00

65 lines
1.5 KiB
Go

// +build android
package raylib
/*
#include "raylib.h"
#include <stdlib.h>
void log_info(const char *msg);
void log_warn(const char *msg);
void log_error(const char *msg);
void log_debug(const char *msg);
extern char* get_internal_storage_path();
*/
import "C"
import (
"fmt"
"unsafe"
)
// SetTraceLog - Enable trace log message types (bit flags based)
func SetTraceLog(typeFlags int) {
logTypeFlags = typeFlags
ctypeFlags := (C.uchar)(typeFlags)
C.SetTraceLog(ctypeFlags)
}
// TraceLog - Trace log messages showing (INFO, WARNING, ERROR, DEBUG)
func TraceLog(msgType int, text string, v ...interface{}) {
switch msgType {
case LogInfo:
if logTypeFlags&LogInfo == 0 {
msg := C.CString(fmt.Sprintf("INFO: "+text, v...))
defer C.free(unsafe.Pointer(msg))
C.log_info(msg)
}
case LogWarning:
if logTypeFlags&LogWarning == 0 {
msg := C.CString(fmt.Sprintf("WARNING: "+text, v...))
defer C.free(unsafe.Pointer(msg))
C.log_warn(msg)
}
case LogError:
if logTypeFlags&LogError == 0 {
msg := C.CString(fmt.Sprintf("ERROR: "+text, v...))
defer C.free(unsafe.Pointer(msg))
C.log_error(msg)
}
case LogDebug:
if logTypeFlags&LogDebug == 0 {
msg := C.CString(fmt.Sprintf("DEBUG: "+text, v...))
defer C.free(unsafe.Pointer(msg))
C.log_debug(msg)
}
}
}
// HomeDir - Returns user home directory
// NOTE: On Android this returns internal data path and must be called after InitWindow
func HomeDir() string {
return C.GoString(C.get_internal_storage_path())
}