Added Source:getType

This commit is contained in:
Alex Szpakowski
2013-08-03 21:30:47 -03:00
parent a4ff39e0d4
commit 4d6bdf4857
4 changed files with 23 additions and 0 deletions
+5
View File
@@ -34,6 +34,11 @@ Source::~Source()
{
}
Source::Type Source::getType() const
{
return type;
}
bool Source::getConstant(const char *in, Type &out)
{
return types.find(in, out);
+2
View File
@@ -96,6 +96,8 @@ public:
virtual void setMaxDistance(float distance) = 0;
virtual float getMaxDistance() const = 0;
virtual Type getType() const;
static bool getConstant(const char *in, Type &out);
static bool getConstant(Type in, const char *&out);
static bool getConstant(const char *in, Unit &out);
+15
View File
@@ -289,6 +289,19 @@ int w_Source_getRolloff(lua_State *L)
return 1;
}
int w_Source_getType(lua_State *L)
{
Source *t = luax_checksource(L, 1);
Source::Type stype = t->getType();
const char *typestr;
if (!Source::getConstant(stype, typestr))
return luaL_error(L, "Unknown Source type.");
lua_pushstring(L, typestr);
return 1;
}
static const luaL_Reg functions[] =
{
{ "play", w_Source_play },
@@ -324,6 +337,8 @@ static const luaL_Reg functions[] =
{ "setRolloff", w_Source_setRolloff},
{ "getRolloff", w_Source_getRolloff},
{ "getType", w_Source_getType },
{ 0, 0 }
};
+1
View File
@@ -59,6 +59,7 @@ int w_Source_setDistance(lua_State *L);
int w_Source_getDistance(lua_State *L);
int w_Source_setRolloff(lua_State *L);
int w_Source_getRolloff(lua_State *L);
int w_Source_getType(lua_State *L);
extern "C" int luaopen_source(lua_State *L);
} // audio