diff --git a/CMakeLists.txt b/CMakeLists.txt index efceda6cb0..1585486dc6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1534,6 +1534,9 @@ elseif(OHOS) endif() endif() + sdl_glob_sources("${SDL3_SOURCE_DIR}/src/locale/ohos/*.c") + set(HAVE_SDL_LOCALE TRUE) + set(SDL_LOADSO_DLOPEN 1) sdl_glob_sources("${SDL3_SOURCE_DIR}/src/loadso/dlopen/*.c") set(HAVE_SDL_LOADSO TRUE) diff --git a/src/core/ohos/SDL_ohos.c b/src/core/ohos/SDL_ohos.c index ceee68254f..13aa8a5258 100644 --- a/src/core/ohos/SDL_ohos.c +++ b/src/core/ohos/SDL_ohos.c @@ -271,6 +271,14 @@ static napi_value sdlCallbackInit(napi_env env, napi_callback_info info) napi_value resName = NULL; napi_create_string_utf8(env, "SDLThreadSafe", NAPI_AUTO_LENGTH, &resName); napi_create_threadsafe_function(env, args[0], NULL, resName, 0, 1, NULL, NULL, NULL, sdlJSCallback, &napiEnv.func); + + napiCallbackData *data = SDL_malloc(sizeof(napiCallbackData)); + SDL_memset(data, 0, sizeof(napiCallbackData)); + data->func = "test"; + data->argCount = 0; + data->type = Int; + + napi_call_threadsafe_function(napiEnv.func, data, napi_tsfn_nonblocking); napi_value result; napi_create_int32(env, 0, &result); diff --git a/src/locale/ohos/SDL_syslocale.c b/src/locale/ohos/SDL_syslocale.c new file mode 100644 index 0000000000..49f1270e2b --- /dev/null +++ b/src/locale/ohos/SDL_syslocale.c @@ -0,0 +1,11 @@ +#include "SDL_internal.h" +#include "../SDL_syslocale.h" +#include "../../core/ohos/SDL_ohos.h" + +bool SDL_SYS_GetPreferredLocales(char *buf, size_t buflen) +{ + const char* result = OHOS_Locale(); + SDL_memcpy(buf, result, buflen); + SDL_Log("target %s", buf); + return true; +}