Added project generator.

This commit is contained in:
rude
2009-08-06 21:19:01 +02:00
parent 797f536f05
commit b04b278cd0
34 changed files with 3687 additions and 4216 deletions
-78
View File
@@ -1,78 +0,0 @@
/**
* Copyright (c) 2006-2009 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
* arising from the use of this software.
*
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you must not
* claim that you wrote the original software. If you use this software
* in a product, an acknowledgment in the product documentation would be
* appreciated but is not required.
* 2. Altered source versions must be plainly marked as such, and must not be
* misrepresented as being the original software.
* 3. This notice may not be removed or altered from any source distribution.
**/
#include "Event.h"
namespace love
{
namespace event
{
namespace signal
{
Event::Event()
: signals(0)
{
cb = 0;
}
Event::~Event()
{
::signal(signals, SIG_DFL);
}
bool Event::registerSignal(int sgn)
{
signals |= sgn;
return ::signal(sgn, (void (*)(int)) &handler) != SIG_ERR;
}
void Event::setCallback(lua_State *L)
{
luax_assert_argc(L, 1, 1);
luax_assert_function(L, -1);
if(cb != 0)
{
delete cb;
cb = 0;
}
cb = new Reference(L);
}
void handler(int signal)
{
if (cb == 0)
return;
lua_State *L = cb->getL();
cb->push();
lua_pushnumber(L, signal);
lua_call(L, 1, 0);
}
const char * Event::getName() const
{
return "love.event.signal";
}
} // signal
} // event
} // love
-57
View File
@@ -1,57 +0,0 @@
/**
* Copyright (c) 2006-2009 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
* arising from the use of this software.
*
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you must not
* claim that you wrote the original software. If you use this software
* in a product, an acknowledgment in the product documentation would be
* appreciated but is not required.
* 2. Altered source versions must be plainly marked as such, and must not be
* misrepresented as being the original software.
* 3. This notice may not be removed or altered from any source distribution.
**/
#ifndef LOVE_EVENT_SIGNAL_EVENT_H
#define LOVE_EVENT_SIGNAL_EVENT_H
// LOVE
#include <event/Event.h>
#include <common/runtime.h>
#include <common/Reference.h>
#include <signal.h>
namespace love
{
namespace event
{
namespace signal
{
class Event : public event::Event
{
private:
int signals;
public:
Event();
~Event();
bool registerSignal(int sgn);
void setCallback(lua_State *L);
const char * getName() const;
};
void handler(int signal);
static Reference *cb;
} // signal
} // event
} // love
#endif // LOVE_EVENT_SIGNAL_EVENT_H
-78
View File
@@ -1,78 +0,0 @@
/**
* Copyright (c) 2006-2009 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
* arising from the use of this software.
*
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you must not
* claim that you wrote the original software. If you use this software
* in a product, an acknowledgment in the product documentation would be
* appreciated but is not required.
* 2. Altered source versions must be plainly marked as such, and must not be
* misrepresented as being the original software.
* 3. This notice may not be removed or altered from any source distribution.
**/
#include "wrap_Event.h"
// LOVE
#include <common/runtime.h>
#include "Event.h"
namespace love
{
namespace event
{
namespace signal
{
static Event * instance = 0;
int _wrap_registerSignal(lua_State *L)
{
luaL_argcheck(L, lua_isnumber(L, 1), 1, "Expected number");
lua_pushboolean(L, instance->registerSignal(lua_tonumber(L, 1)));
return 1;
}
int _wrap_setCallback(lua_State *L)
{
luaL_argcheck(L, lua_isfunction(L, 1), 1, "Expected function");
instance->setCallback(L);
return 0;
}
// List of functions to wrap.
static const luaL_Reg wrap_Event_signal_functions[] = {
{ "registerSignal", _wrap_registerSignal },
{ "setCallback", _wrap_setCallback },
{ 0, 0 }
};
int wrap_Event_signal_open(lua_State * L)
{
if(instance == 0)
{
try
{
instance = new Event();
}
catch(Exception & e)
{
return luaL_error(L, e.what());
}
}
luax_register_gc(L, "love.event.signal", instance);
return luax_register_module(L, wrap_Event_signal_functions, 0);
}
} // signal
} // event
} // love
-42
View File
@@ -1,42 +0,0 @@
/**
* Copyright (c) 2006-2009 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
* arising from the use of this software.
*
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you must not
* claim that you wrote the original software. If you use this software
* in a product, an acknowledgment in the product documentation would be
* appreciated but is not required.
* 2. Altered source versions must be plainly marked as such, and must not be
* misrepresented as being the original software.
* 3. This notice may not be removed or altered from any source distribution.
**/
#ifndef LOVE_EVENT_SIGNAL_WRAP_EVENT_H
#define LOVE_EVENT_SIGNAL_WRAP_EVENT_H
// LOVE
#include "Event.h"
namespace love
{
namespace event
{
namespace signal
{
int _wrap_registerSignal(lua_State *L);
int _wrap_setCallback(lua_State *L);
int wrap_Event_signal_open(lua_State * L);
} // sdl
} // event
} // love
#endif // LOVE_EVENT_SIGNAL_WRAP_EVENT_H