1 #include "lua/internal.hpp"
2 #include "core/subtitles.hpp"
6 function_ptr_luafun
enumerate(lua_func_misc
, "subtitle.byindex", [](lua_state
& L
, const std::string
& fname
)
8 uint64_t n
= L
.get_numeric_argument
<uint64_t>(1, fname
.c_str());
10 for(auto i
: get_subtitles()) {
12 L
.pushnumber(i
.first
);
13 L
.pushnumber(i
.second
);
21 function_ptr_luafun
sget(lua_func_misc
, "subtitle.get", [](lua_state
& L
, const std::string
& fname
) -> int {
22 uint64_t frame
= L
.get_numeric_argument
<uint64_t>(1, fname
.c_str());
23 uint64_t length
= L
.get_numeric_argument
<uint64_t>(2, fname
.c_str());
24 std::string x
= get_subtitle_for(frame
, length
);
25 L
.pushstring(x
.c_str());
29 function_ptr_luafun
sset(lua_func_misc
, "subtitle.set", [](lua_state
& L
, const std::string
& fname
) -> int {
30 uint64_t frame
= L
.get_numeric_argument
<uint64_t>(1, fname
.c_str());
31 uint64_t length
= L
.get_numeric_argument
<uint64_t>(2, fname
.c_str());
32 std::string text
= L
.get_string(3, fname
.c_str());
33 set_subtitle_for(frame
, length
, text
);
37 function_ptr_luafun
sdel(lua_func_misc
, "subtitle.delete", [](lua_state
& L
, const std::string
& fname
) -> int {
38 uint64_t frame
= L
.get_numeric_argument
<uint64_t>(1, fname
.c_str());
39 uint64_t length
= L
.get_numeric_argument
<uint64_t>(2, fname
.c_str());
40 set_subtitle_for(frame
, length
, "");