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