wqiaofujiang 2020-07-05
.h
{
#ifndef __LUA_YFFMPEG_H__
#define __LUA_YFFMPEG_H__
#ifdef __cplusplus
extern "C" {
#endif
#include "tolua++.h"
#ifdef __cplusplus
}
#endif
TOLUA_API int lua_yffmpeg(lua_State* L);
#endif}
.cpp
{
#include "lua_yffmpeg.h"
#include "yffmpeg.h"
#include "scripting/lua-bindings/manual/LuaBasicConversions.h"
#include "scripting/lua-bindings/manual/CCLuaEngine.h"
int lua_yffmpeg_init(lua_State *tolua_S)
{
int argc = 0;
bool ok = true;
#if COCOS2D_DEBUG >= 1
tolua_Error tolua_err;
#endif
#if COCOS2D_DEBUG >= 1
if (!tolua_isusertable(tolua_S, 1, "Solution.yffmpeg", 0, &tolua_err)) goto tolua_lerror;
#endif
argc = lua_gettop(tolua_S) - 1;
if (argc == 0)
{
yffmpeg *ret = new (std::nothrow) yffmpeg();
if (ret != nullptr)
{
ret->setup();
}
object_to_luaval<yffmpeg>(tolua_S, "Solution.yffmpeg", (yffmpeg*)ret);
return 1;
}
luaL_error(tolua_S, "%s has wrong number of arguments: %d, was expecting %d\n ", "Solution.yffmpeg:init", argc, 0);
return 0;
#if COCOS2D_DEBUG >= 1
tolua_lerror:
tolua_error(tolua_S, "#ferror in function ‘lua_yffmpeg_init‘.", &tolua_err);
#endif
return 0;
}
int lua_yffmpeg_getconfigure(lua_State *tolua_S)
{
int argc = 0;
yffmpeg* cobj = nullptr;
bool ok = true;
#if COCOS2D_DEBUG >= 1
tolua_Error tolua_err;
#endif
#if COCOS2D_DEBUG >= 1
if (!tolua_isusertype(tolua_S, 1, "Solution.yffmpeg", 0, &tolua_err)) goto tolua_lerror;
#endif
cobj = (yffmpeg*)tolua_tousertype(tolua_S, 1, 0);
#if COCOS2D_DEBUG >= 1
if (!cobj)
{
tolua_error(tolua_S, "invalid ‘cobj‘ in function ‘lua_yffmpeg_getconfigure‘", nullptr);
return 0;
}
#endif
argc = lua_gettop(tolua_S) - 1;
if (argc == 0)
{
if (cobj != nullptr)
{
auto ret = avdevice_configuration();
lua_pushlstring(tolua_S, ret, strlen(ret));
log("[C++PRINTF] push string to lua lv ffmpeg info\n");
return 1;
}
return 0;
}
luaL_error(tolua_S, "%s has wrong number of arguments: %d, was expecting %d \n", "Solution.yffmpeg:getconfigure", argc, 0);
return 0;
#if COCOS2D_DEBUG >= 1
tolua_lerror:
tolua_error(tolua_S, "#ferror in function ‘lua_yffmpeg_getconfigure‘.", &tolua_err);
#endif
return 0;
}
int lua_register_yffmpeg(lua_State *tolua_S)
{
tolua_usertype(tolua_S, "Solution.yffmpeg");
tolua_cclass(tolua_S, "yffmpeg", "Solution.yffmpeg", "", nullptr);
tolua_beginmodule(tolua_S, "yffmpeg");
tolua_function(tolua_S, "init", lua_yffmpeg_init);
tolua_function(tolua_S, "getconfigure", lua_yffmpeg_getconfigure);
tolua_endmodule(tolua_S);
std::string typeName = typeid(yffmpeg).name();
g_luaType[typeName] = "Solution.yffmpeg";
g_typeCast["yffmpeg"] = "Solution.yffmpeg";
return 1;
}
int register_yffmpeg(lua_State *tolua_S)
{
tolua_open(tolua_S);
tolua_module(tolua_S, "Solution", 0);
tolua_beginmodule(tolua_S, "Solution");
lua_register_yffmpeg(tolua_S);
tolua_endmodule(tolua_S);
return 1;
}
int lua_yffmpeg(lua_State* L)
{
lua_getglobal(L, "_G");
if (lua_istable(L, -1))
{
register_yffmpeg(L);
if (L)
{
lua_pushstring(L, "Solution.yffmpeg");
lua_rawget(L, LUA_REGISTRYINDEX);
lua_pop(L, 1);
}
}
lua_pop(L, 1);
return 0;
}}