luat_lib_airui.c 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include "luat_base.h"
  2. #include "luat_mem.h"
  3. #include "luat_airui.h"
  4. static int l_airui_load_buff(lua_State *L) {
  5. size_t len;
  6. const char* backend = luaL_checkstring(L, 1);
  7. const char* screen_name = luaL_checkstring(L, 2);
  8. const char* buff = luaL_checklstring(L, 3, &len);
  9. luat_airui_ctx_t *ctx = NULL;
  10. int ret = luat_airui_load_buff(&ctx, 0, screen_name, buff, len);
  11. if (ret == 0) {
  12. lua_pushlightuserdata(L, ctx);
  13. return 1;
  14. }
  15. else {
  16. lua_pushnil(L);
  17. lua_pushinteger(L, ret);
  18. return 2;
  19. }
  20. return 0;
  21. }
  22. static int l_airui_load_file(lua_State *L) {
  23. return 0;
  24. }
  25. static int l_airui_get_scr(lua_State *L) {
  26. luat_airui_ctx_t *ctx = lua_touserdata(L, 1);
  27. if (ctx == NULL)
  28. return 0;
  29. lua_pushlightuserdata(L, ctx->scr);
  30. return 1;
  31. }
  32. #include "rotable2.h"
  33. static const rotable_Reg_t reg_airui[] =
  34. {
  35. { "load_buff" , ROREG_FUNC(l_airui_load_buff)},
  36. { "load_file" , ROREG_FUNC(l_airui_load_file)},
  37. { "get_scr" , ROREG_FUNC(l_airui_get_scr)},
  38. { NULL, ROREG_INT(0)}
  39. };
  40. LUAMOD_API int luaopen_airui( lua_State *L ) {
  41. luat_newlib2(L, reg_airui);
  42. return 1;
  43. }