mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
Merge pull request #81 from houqp/master
djvulibre cache size control from Lua script
This commit is contained in:
2
djvu.c
2
djvu.c
@@ -72,6 +72,7 @@ static int handle(lua_State *L, ddjvu_context_t *ctx, int wait)
|
||||
static int openDocument(lua_State *L) {
|
||||
const char *filename = luaL_checkstring(L, 1);
|
||||
/*const char *password = luaL_checkstring(L, 2);*/
|
||||
int cache_size = luaL_optint(L, 2, 10 << 20);
|
||||
|
||||
DjvuDocument *doc = (DjvuDocument*) lua_newuserdata(L, sizeof(DjvuDocument));
|
||||
luaL_getmetatable(L, "djvudocument");
|
||||
@@ -81,6 +82,7 @@ static int openDocument(lua_State *L) {
|
||||
if (! doc->context) {
|
||||
return luaL_error(L, "cannot create context.");
|
||||
}
|
||||
ddjvu_cache_set_size(doc->context, (unsigned long)cache_size);
|
||||
|
||||
doc->doc_ref = ddjvu_document_create_by_filename_utf8(doc->context, filename, TRUE);
|
||||
while (! ddjvu_document_decoding_done(doc->doc_ref))
|
||||
|
||||
@@ -6,7 +6,7 @@ DJVUReader = UniReader:new{}
|
||||
-- DJVU does not support password yet
|
||||
function DJVUReader:open(filename)
|
||||
local ok
|
||||
ok, self.doc = pcall(djvu.openDocument, filename)
|
||||
ok, self.doc = pcall(djvu.openDocument, filename, 10*1024*1024)
|
||||
if not ok then
|
||||
return ok, self.doc -- this will be the error message instead
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user