#include "thrawn_api.h" #include "LuaEngine.h" //void write_light(const std::string_view name, const bool is_on); int thrawn_log_light(lua_State* lua) { int paramCount = lua_gettop(lua); if (paramCount != 3) { return -1; } //Param 1: room //Param 2: name //Param 3: is_on if (!check_arguments(lua)) { return -1; } // if (!lua_isstring(lua, -3) || !lua_isstring (lua, -2) || !lua_isboolean (lua, -1)) { // return -1; // } LuaEngine::get_instance().db_logger.write_light(lua_tostring(lua, -3), lua_tostring(lua, -2), lua_toboolean(lua, -1)); return 0; } int thrawn_log_light_dimmable(lua_State* lua) { int paramCount = lua_gettop(lua); if (paramCount != 4) { return -1; } //Param 1: room //Param 2: name //Param 3: is_on //Param 4: brightness if (!check_arguments(lua)) { return -1; } // if (!lua_isstring(lua, -4) | !lua_isstring(lua, -3) || !lua_isboolean(lua, -2) || !lua_isinteger(lua, -1)) { // return -1; // } LuaEngine::get_instance().db_logger.write_light_dimmable(lua_tostring(lua, -4), lua_tostring(lua, -3), lua_toboolean(lua, -2), lua_tointeger(lua, -1)); return 0; } int thrawn_log_light_tw(lua_State* lua) { int paramCount = lua_gettop(lua); if (paramCount != 5) { return -1; } //Param 1: room //Param 2: name //Param 3: is_on //Param 4: brightness //Param 5: color_temperature if (!check_arguments(lua)) { return -1; } // if (!lua_isstring(lua, -5) || !lua_isstring(lua, -4) || !lua_isboolean(lua, -3) || !lua_isinteger(lua, -2) || !lua_isinteger(lua, -1)) { // return -1; // } LuaEngine::get_instance().db_logger.write_light_tuneable_white(lua_tostring(lua, -5), lua_tostring(lua, -4), lua_toboolean(lua, -3), lua_tointeger(lua, -2), lua_tointeger(lua, -1)); return 0; }