aboutsummaryrefslogblamecommitdiffstats
path: root/src/lua/ULuaLog.pas
blob: 561a9bae77ae930138fb0ae99b9609bf7ff8629c (plain) (tree)


























































                                                                        














                                                        





                                                         
                                                                  
      

                                          




                                                       
                                                                                          
      

                                                                  



                                                               

                                               



                                                             

                                             



                                                             

                                                                      



                                                         

                                                                 



                                                        

                                                                



                                                          

                                                                  



                                                        

                                                                



                                                            

                                                                    



                                                              

                                             



                                                            

                                        



                                                            

                                            



                                                     

                                             
    
 
    
{* 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.