Add subtitles.script_resolution()
Returns the values from the headers if they're present, or does the insane Gabest-logic if one or both are missing.
This commit is contained in:
parent
c43bf1e822
commit
1fd44ea8da
3 changed files with 13 additions and 24 deletions
|
@ -96,30 +96,7 @@ function karaskel.collect_head(subs, generate_furigana)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Fix resolution data
|
-- Fix resolution data
|
||||||
if meta.playresx then
|
meta.res_x, meta.res_y = subs.script_resolution()
|
||||||
meta.res_x = math.floor(meta.playresx)
|
|
||||||
end
|
|
||||||
if meta.playresy then
|
|
||||||
meta.res_y = math.floor(meta.playresy)
|
|
||||||
end
|
|
||||||
if meta.res_x == 0 and meta_res_y == 0 then
|
|
||||||
meta.res_x = 384
|
|
||||||
meta.res_y = 288
|
|
||||||
elseif meta.res_x == 0 then
|
|
||||||
-- This is braindead, but it's how TextSub does things...
|
|
||||||
if meta.res_y == 1024 then
|
|
||||||
meta.res_x = 1280
|
|
||||||
else
|
|
||||||
meta.res_x = meta.res_y / 3 * 4
|
|
||||||
end
|
|
||||||
elseif meta.res_y == 0 then
|
|
||||||
-- As if 1280x960 didn't exist
|
|
||||||
if meta.res_x == 1280 then
|
|
||||||
meta.res_y = 1024
|
|
||||||
else
|
|
||||||
meta.res_y = meta.res_x * 3 / 4
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local video_x, video_y = aegisub.video_size()
|
local video_x, video_y = aegisub.video_size()
|
||||||
if video_y then
|
if video_y then
|
||||||
|
|
|
@ -104,6 +104,7 @@ namespace Automation4 {
|
||||||
int IterNext(lua_State *L);
|
int IterNext(lua_State *L);
|
||||||
|
|
||||||
int LuaParseKaraokeData(lua_State *L);
|
int LuaParseKaraokeData(lua_State *L);
|
||||||
|
int LuaGetScriptResolution(lua_State *L);
|
||||||
|
|
||||||
void LuaSetUndoPoint(lua_State *L);
|
void LuaSetUndoPoint(lua_State *L);
|
||||||
|
|
||||||
|
|
|
@ -352,6 +352,8 @@ namespace Automation4 {
|
||||||
lua_pushcclosure(L, closure_wrapper_v<&LuaAssFile::ObjectInsert, false>, 1);
|
lua_pushcclosure(L, closure_wrapper_v<&LuaAssFile::ObjectInsert, false>, 1);
|
||||||
else if (strcmp(idx, "append") == 0)
|
else if (strcmp(idx, "append") == 0)
|
||||||
lua_pushcclosure(L, closure_wrapper_v<&LuaAssFile::ObjectAppend, false>, 1);
|
lua_pushcclosure(L, closure_wrapper_v<&LuaAssFile::ObjectAppend, false>, 1);
|
||||||
|
else if (strcmp(idx, "script_resolution") == 0)
|
||||||
|
lua_pushcclosure(L, closure_wrapper<&LuaAssFile::LuaGetScriptResolution>, 1);
|
||||||
else {
|
else {
|
||||||
// idiot
|
// idiot
|
||||||
lua_pop(L, 1);
|
lua_pop(L, 1);
|
||||||
|
@ -648,6 +650,15 @@ namespace Automation4 {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int LuaAssFile::LuaGetScriptResolution(lua_State *L)
|
||||||
|
{
|
||||||
|
int w, h;
|
||||||
|
ass->GetResolution(w, h);
|
||||||
|
push_value(L, w);
|
||||||
|
push_value(L, h);
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
void LuaAssFile::LuaSetUndoPoint(lua_State *L)
|
void LuaAssFile::LuaSetUndoPoint(lua_State *L)
|
||||||
{
|
{
|
||||||
if (!can_set_undo)
|
if (!can_set_undo)
|
||||||
|
|
Loading…
Reference in a new issue