{* UltraStar Deluxe - Karaoke Game * * UltraStar Deluxe is the legal property of its developers, whose names * are too numerous to list here. Please refer to the COPYRIGHT * file distributed with this source distribution. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. * * $URL$ * $Id$ *} unit ULuaLog; interface {$IFDEF FPC} {$MODE Delphi} {$ENDIF} {$I switches.inc} uses SysUtils, ULog, ULua; function luaopen_Log (L: Plua_State): Integer; cdecl; function ULuaLog_LogError(L: Plua_State): Integer; cdecl; function ULuaLog_LogMsg(L: Plua_State): Integer; cdecl; function ULuaLog_BenchmarkStart(L: Plua_State): Integer; cdecl; function ULuaLog_BenchmarkEnd(L: Plua_State): Integer; cdecl; function ULuaLog_LogBenchmark(L: Plua_State): Integer; cdecl; function ULuaLog_LogDebug(L: Plua_State): Integer; cdecl; function ULuaLog_LogInfo(L: Plua_State): Integer; cdecl; function ULuaLog_LogStatus(L: Plua_State): Integer; cdecl; function ULuaLog_LogWarn(L: Plua_State): Integer; cdecl; function ULuaLog_LogCritical(L: Plua_State): Integer; cdecl; function ULuaLog_CriticalError(L: Plua_State): Integer; cdecl; function ULuaLog_GetLogLevel(L: Plua_State): Integer; cdecl; function ULuaLog_SetLogLevel(L: Plua_State): Integer; cdecl; const ULuaLog_Lib_f: array [0..13] of lual_reg = ( (name:'LogError';func:ULuaLog_LogError), (name:'LogMsg';func:ULuaLog_LogMsg), (name:'BenchmarkStart';func:ULuaLog_BenchmarkStart), (name:'BenchmarkEnd';func:ULuaLog_BenchmarkEnd), (name:'LogBenchmark';func:ULuaLog_LogBenchmark), (name:'LogDebug';func:ULuaLog_LogDebug), (name:'LogInfo';func:ULuaLog_LogInfo), (name:'LogStatus';func:ULuaLog_LogStatus), (name:'LogWarn';func:ULuaLog_LogWarn), (name:'LogCritical';func:ULuaLog_LogCritical), (name:'CriticalError';func:ULuaLog_CriticalError), (name:'SetLogLevel';func:ULuaLog_GetLogLevel), (name:'GetLogLevel';func:ULuaLog_SetLogLevel), (name:nil;func:nil) ); implementation function ULuaLog_LogError(L: Plua_State): Integer; cdecl; begin if (lua_gettop(L) > 1) then Log.LogError(luaL_checkstring(L, -2), luaL_checkstring(L, -1)) else Log.LogError(luaL_checkstring(L, -1)); result := 0; // number of results end; function ULuaLog_LogMsg(L: Plua_State): Integer; cdecl; begin if (lua_gettop(L) > 2) then Log.LogMsg(luaL_checkstring(L, -3), luaL_checkstring(L, -1), luaL_checkinteger(L, -2)) else Log.LogMsg(luaL_checkstring(L, -2), luaL_checkinteger(L, -1)); result := 0; // number of results end; function ULuaLog_BenchmarkStart(L: Plua_State): Integer; cdecl; begin Log.BenchmarkStart(luaL_checkinteger(L, -1)); result := 0; // number of results end; function ULuaLog_BenchmarkEnd(L: Plua_State): Integer; cdecl; begin Log.BenchmarkEnd(luaL_checkinteger(L, -1)); result := 0; // number of results end; function ULuaLog_LogBenchmark(L: Plua_State): Integer; cdecl; begin Log.LogBenchmark(luaL_checkstring(L, -2), luaL_checkinteger(L, -1)); result := 0; // number of results end; function ULuaLog_LogDebug(L: Plua_State): Integer; cdecl; begin Log.LogDebug(luaL_checkstring(L, -2), luaL_checkstring(L, -1)); result := 0; // number of results end; function ULuaLog_LogInfo(L: Plua_State): Integer; cdecl; begin Log.LogInfo(luaL_checkstring(L, -2), luaL_checkstring(L, -1)); result := 0; // number of results end; function ULuaLog_LogStatus(L: Plua_State): Integer; cdecl; begin Log.LogStatus(luaL_checkstring(L, -2), luaL_checkstring(L, -1)); result := 0; // number of results end; function ULuaLog_LogWarn(L: Plua_State): Integer; cdecl; begin Log.LogWarn(luaL_checkstring(L, -2), luaL_checkstring(L, -1)); result := 0; // number of results end; function ULuaLog_LogCritical(L: Plua_State): Integer; cdecl; begin Log.LogCritical(luaL_checkstring(L, -2), luaL_checkstring(L, -1)); result := 0; // number of results end; function ULuaLog_CriticalError(L: Plua_State): Integer; cdecl; begin Log.CriticalError(luaL_checkstring(L, -1)); result := 0; // number of results end; function ULuaLog_GetLogLevel(L: Plua_State): Integer; cdecl; begin lua_pushinteger(L, Log.GetLogLevel()); result := 1; // number of results end; function ULuaLog_SetLogLevel(L: Plua_State): Integer; cdecl; begin Log.SetLogLevel(luaL_checkinteger(L, -1)); result := 0; // number of results end; function luaopen_Log (L: Plua_State): Integer; cdecl; begin luaL_register(L, 'Log', @ULuaLog_Lib_f[0]); result := 1; end; end.