diff --git a/sdcard/3ds/ctruLua/examples/example.lua b/sdcard/3ds/ctruLua/examples/example.lua index 1c2a307..67ed406 100644 --- a/sdcard/3ds/ctruLua/examples/example.lua +++ b/sdcard/3ds/ctruLua/examples/example.lua @@ -10,6 +10,7 @@ local angle = 0 local texture1 = gfx.texture.load(ctr.root.."icon.png"); if not texture1 then error("Giants ducks came from another planet") end +local tWidth, tHeight = texture1:getSize() gfx.color.setBackground(gfx.color.RGBA8(200, 200, 200)) gfx.set3D(true) @@ -66,7 +67,7 @@ while ctr.run() do gfx.text(5, 17, "Hello world, from Lua ! éàçù", 20, gfx.color.RGBA8(0, 0, 0)) gfx.text(5, 50, "Time: "..os.date()) - texture1:draw(280, 80, angle); + texture1:draw(280, 80, angle, tWidth/2, tHeight/2); local cx, cy = hid.circle() gfx.rectangle(40, 90, 60, 60, 0, 0xDDDDDDFF) diff --git a/source/apt.c b/source/apt.c index e860736..bcbc26b 100644 --- a/source/apt.c +++ b/source/apt.c @@ -107,6 +107,30 @@ static int apt_getMenuAppID(lua_State *L) { return 1; } +/*** +Allow or not the system to enter sleep mode. +@function setSleepAllowed +@tparam boolean allowed `true` to allow, `false` to disallow +*/ +static int apt_setSleepAllowed(lua_State *L) { + bool allowed = lua_toboolean(L, 1); + + aptSetSleepAllowed(allowed); + + return 0; +} + +/*** +Check if sleep mode is allowed. +@function isSleepAllowed +@treturn boolean `true` is allowed, false if not. +*/ +static int apt_isSleepAllowed(lua_State *L) { + lua_pushboolean(L, aptIsSleepAllowed()); + + return 1; +} + static const struct luaL_Reg apt_lib[] = { {"openSession", apt_openSession }, {"closeSession", apt_closeSession }, @@ -117,6 +141,8 @@ static const struct luaL_Reg apt_lib[] = { {"setStatusPower", apt_setStatusPower }, {"signalReadyForSleep", apt_signalReadyForSleep}, {"getMenuAppID", apt_getMenuAppID }, + {"setSleepAllowed", apt_setSleepAllowed }, + {"isSleepAllowed", apt_isSleepAllowed }, {NULL, NULL} }; diff --git a/source/font.c b/source/font.c index bac5c44..1110432 100644 --- a/source/font.c +++ b/source/font.c @@ -189,4 +189,6 @@ void unload_font_lib(lua_State *L) { if (luaL_testudata(L, -1, "LFont") != NULL) sftd_free_font(((font_userdata *)lua_touserdata(L, -1))->font); // Unload current font + + lua_pop(L, 1); } diff --git a/source/httpc.c b/source/httpc.c index d114445..87c826d 100644 --- a/source/httpc.c +++ b/source/httpc.c @@ -174,13 +174,14 @@ static int httpc_downloadData(lua_State *L) { ret = httpcDownloadData(context, buff, size, NULL); if (ret != 0) { + free(buff); lua_pushnil(L); lua_pushinteger(L, ret); return 2; } lua_pushstring(L, (char*)buff); - //free(buff); FIXME we need to free this buffer at some point ? + free(buff); //lua_pushinteger(L, size); // only for test purposes. return 1; } diff --git a/source/ptm.c b/source/ptm.c index 5401fe3..125e0ea 100644 --- a/source/ptm.c +++ b/source/ptm.c @@ -45,13 +45,13 @@ static int ptm_shutdown(lua_State *L) { /*** Return the shell state. @function getShellState -@treturn number shell state +@treturn boolean shell state, `true` if open, `false` if closed. */ static int ptm_getShellState(lua_State *L) { u8 out = 0; PTMU_GetShellState(&out); - lua_pushinteger(L, out); + lua_pushboolean(L, out); return 1; }