resyncreceiver_L.cpp
Go to the documentation of this file.00001 #include "lugre_prefix.h"
00002 #include "lugre_luabind.h"
00003 #include "lugre_net.h"
00004 #include "resyncreceiver.h"
00005
00006 extern "C" {
00007 #include "lua.h"
00008 #include "lauxlib.h"
00009 #include "lualib.h"
00010 }
00011 using namespace Lugre;
00012
00013 class cResyncReceiver_L : public cLuaBind<cResyncReceiver> { public:
00015 virtual void RegisterMethods (lua_State *L) { PROFILE
00016 lua_register(L,"CreateResyncReceiver", &cResyncReceiver_L::CreateResyncReceiver);
00017 lua_register(L,"SetGlobalResyncReceiver", &cResyncReceiver_L::SetGlobalResyncReceiver);
00018
00019 #define REGISTER_METHOD(methodname) mlMethod.push_back(make_luaL_reg(#methodname,&cResyncReceiver_L::methodname));
00020 REGISTER_METHOD(Destroy);
00021 REGISTER_METHOD(ReceiveResyncs);
00022 REGISTER_METHOD(ReceiveResyncsFromFIFO);
00023 }
00024
00025
00026
00028 static int CreateResyncReceiver (lua_State *L) { PROFILE
00029 return CreateUData(L,new cResyncReceiver());
00030 }
00031
00033 static int SetGlobalResyncReceiver (lua_State *L) { PROFILE
00034 gpResyncReceiver = (lua_gettop(L) >= 1 && !lua_isnil(L,1)) ? checkudata(L) : 0;
00035 return 0;
00036 }
00037
00038
00039
00040 static int Destroy (lua_State *L) { PROFILE
00041 delete checkudata_alive(L);
00042 return 0;
00043 }
00044
00047 static int ReceiveResyncs (lua_State *L) { PROFILE
00048 cUDP_ReceiveSocket* pUDP_ReceiveSocket = cLuaBind<cUDP_ReceiveSocket>::checkudata_alive(L,2);
00049
00050 uint32 iServerAddr = (uint32)(long)(lua_touserdata(L,3));
00051
00052
00053 lua_pushnumber(L,checkudata_alive(L)->ReceiveResyncs(*pUDP_ReceiveSocket,iServerAddr));
00054 return 1;
00055 }
00056
00058 static int ReceiveResyncsFromFIFO (lua_State *L) { PROFILE
00059 cFIFO* pFIFO = cLuaBind<cFIFO>::checkudata_alive(L,2);
00060 checkudata_alive(L)->ReceiveResyncsFromFIFO(*pFIFO);
00061 return 0;
00062 }
00063
00064 virtual const char* GetLuaTypeName () { return "sfz.ResyncReceiver"; }
00065 };
00066
00068 void cResyncReceiver::LuaRegister (lua_State *L) { PROFILE
00069 cLuaBind<cResyncReceiver>::GetSingletonPtr(new cResyncReceiver_L())->LuaRegister(L);
00070 }