1
1
#include "SDL_internal.h"
2
- #include "dynapi/SDL_dynapi_overrides.h"
3
2
#include <EGL/egl.h>
4
3
#include <EGL/eglplatform.h>
5
4
#include <dlfcn.h>
@@ -58,6 +57,7 @@ typedef struct
58
57
napiCallbackArg arg [16 ];
59
58
napiArgType type ;
60
59
napiCallbackArg ret ;
60
+ bool returned ;
61
61
} napiCallbackData ;
62
62
63
63
void OHOS_windowUpdateAttributes (SDL_Window * w )
@@ -209,9 +209,9 @@ static void sdlJSCallback(napi_env env, napi_value jsCb, void *content, void *da
209
209
case String :
210
210
{
211
211
size_t stringSize = 0 ;
212
- napi_get_value_string_utf8 (env , args [ 1 ] , NULL , 0 , & stringSize );
212
+ napi_get_value_string_utf8 (env , v , NULL , 0 , & stringSize );
213
213
char * value = SDL_malloc (stringSize + 1 );
214
- napi_get_value_string_utf8 (env , args [ 1 ] , value , stringSize + 1 , & stringSize );
214
+ napi_get_value_string_utf8 (env , v , value , stringSize + 1 , & stringSize );
215
215
ar -> ret .data .str = value ;
216
216
break ;
217
217
}
@@ -221,6 +221,7 @@ static void sdlJSCallback(napi_env env, napi_value jsCb, void *content, void *da
221
221
break ;
222
222
}
223
223
}
224
+ ar -> returned = true;
224
225
}
225
226
226
227
void OHOS_MessageBox (const char * title , const char * message )
@@ -239,6 +240,24 @@ void OHOS_MessageBox(const char* title, const char* message)
239
240
napi_call_threadsafe_function (napiEnv .func , data , napi_tsfn_nonblocking );
240
241
}
241
242
243
+ const char * OHOS_Locale ()
244
+ {
245
+ napiCallbackData * data = SDL_malloc (sizeof (napiCallbackData ));
246
+ SDL_memset (data , 0 , sizeof (napiCallbackData ));
247
+ data -> func = "fetchLocale" ;
248
+ data -> argCount = 0 ;
249
+ data -> type = String ;
250
+ data -> returned = false;
251
+
252
+ napi_call_threadsafe_function (napiEnv .func , data , napi_tsfn_nonblocking );
253
+
254
+ while (!data -> returned ) {}
255
+
256
+ const char * d = data -> ret .data .str ;
257
+ SDL_free (data );
258
+ return d ;
259
+ }
260
+
242
261
static napi_value sdlCallbackInit (napi_env env , napi_callback_info info )
243
262
{
244
263
napiEnv .env = env ;
0 commit comments