add defaults.lua

pull/142/head
Qingping Hou 11 years ago
parent 5a9f83279f
commit 18122fe067

@ -1,6 +1,10 @@
--[[ --[[
Inheritable abstraction for cache items Inheritable abstraction for cache items
]]-- --]]
require "defaults"
CacheItem = { CacheItem = {
size = 64, -- some reasonable default for simple Lua values / small tables size = 64, -- some reasonable default for simple Lua values / small tables
} }
@ -20,7 +24,7 @@ A global LRU cache
]]-- ]]--
Cache = { Cache = {
-- cache configuration: -- cache configuration:
max_memsize = 1024*1024*10, -- 10MB cache size max_memsize = DGLOBAL_CACHE_SIZE,
-- cache state: -- cache state:
current_memsize = 0, current_memsize = 0,
-- associative cache -- associative cache

@ -0,0 +1,95 @@
-- number of page turns between full screen refresh
-- default to full refresh on every page turn
DRCOUNTMAX = 6
-- default gamma setting:
DGLOBALGAMMA = 1.0
-- DjVu page rendering mode (used in djvu.c:drawPage())
-- See comments in djvureader.lua:DJVUReader:select_render_mode()
DRENDER_MODE = 0 -- 0 is COLOUR
DGLOBAL_CACHE_SIZE = 1024*1024*10
-- background colour in non scroll mode: 8 = gray, 0 = white, 15 = black
DBACKGROUND_COLOR = 0
-- outer page colour in scroll mode: 8 = gray, 0 = white, 15 = black
DOUTER_PAGE_COLOR = 0
-- supported view mode includes: "scroll" and "page"
DCREREADER_VIEW_MODE = "page"
-- koptreader config defaults
DKOPTREADER_CONFIG_FONT_SIZE = 1.0 -- range from 0.1 to 3.0
DKOPTREADER_CONFIG_TEXT_WRAP = 0 -- 1 = on, 0 = off
DKOPTREADER_CONFIG_TRIM_PAGE = 1 -- 1 = auto, 0 = manual
DKOPTREADER_CONFIG_DETECT_INDENT = 1 -- 1 = enable, 0 = disable
DKOPTREADER_CONFIG_DEFECT_SIZE = 1.0 -- range from 0.0 to 3.0
DKOPTREADER_CONFIG_PAGE_MARGIN = 0.10 -- range from 0.0 to 1.0
DKOPTREADER_CONFIG_LINE_SPACING = 1.2 -- range from 0.5 to 2.0
DKOPTREADER_CONFIG_WORD_SAPCING = 0.15 -- range from 0.05 to 0.5
DKOPTREADER_CONFIG_RENDER_QUALITY = 0.8 -- range from 0.5 to 1.0
DKOPTREADER_CONFIG_AUTO_STRAIGHTEN = 0 -- range from 0 to 10
DKOPTREADER_CONFIG_JUSTIFICATION = -1 -- -1 = auto, 0 = left, 1 = center, 2 = right, 3 = full
DKOPTREADER_CONFIG_MAX_COLUMNS = 2 -- range from 1 to 4
DKOPTREADER_CONFIG_CONTRAST = 1.0 -- range from 0.2 to 2.0
-- ####################################################################
-- following features are not supported right now
-- ####################################################################
-- set panning distance
--DSHIFT_X = 100
--DSHIFT_Y = 50
-- step to change zoom manually, default = 16%
--DSTEP_MANUAL_ZOOM = 16
--DPAN_BY_PAGE = false -- using shift_[xy] or width/height
--DPAN_MARGIN = 5 -- horizontal margin for two-column zoom (in pixels)
--DPAN_OVERLAP_VERTICAL = 30
-- tile cache configuration:
--DCACHE_MAX_MEMSIZE = 1024*1024*5 -- 5MB tile cache
--DCACHE_MAX_TTL = 20 -- time to live
-- renderer cache size
--DCACHE_DOCUMENT_SIZE = 1024*1024*8 -- FIXME random, needs testing
-- default value for battery level logging
--DBATTERY_LOGGING = false
-- delay for info messages in ms
--DINFO_NODELAY=0
--DINFO_DELAY=1500
-- toggle defaults
--DUNIREADER_SHOW_OVERLAP_ENABLE = true
--DUNIREADER_SHOW_LINKS_ENABLE = true
--DUNIREADER_COMICS_MODE_ENABLE = true
--DUNIREADER_RTL_MODE_ENABLE = false
--DUNIREADER_PAGE_MODE_ENABLE = false
--DDJVUREADER_SHOW_OVERLAP_ENABLE = true
--DDJVUREADER_SHOW_LINKS_ENABLE = false
--DDJVUREADER_COMICS_MODE_ENABLE = true
--DDJVUREADER_RTL_MODE_ENABLE = false
--DDJVUREADER_PAGE_MODE_ENABLE = false
--DKOPTREADER_SHOW_OVERLAP_ENABLE = true
--DKOPTREADER_SHOW_LINKS_ENABLE = false
--DKOPTREADER_COMICS_MODE_ENABLE = false
--DKOPTREADER_RTL_MODE_ENABLE = false
--DKOPTREADER_PAGE_MODE_ENABLE = false
--DPICVIEWER_SHOW_OVERLAP_ENABLE = false
--DPICVIEWER_SHOW_LINKS_ENABLE = false
--DPICVIEWER_COMICS_MODE_ENABLE = true
--DPICVIEWER_RTL_MODE_ENABLE = false
--DPICVIEWER_PAGE_MODE_ENABLE = false
--DKOPTREADER_CONFIG_MULTI_THREADS = 1 -- 1 = on, 0 = off
--DKOPTREADER_CONFIG_SCREEN_ROTATION = 0 -- 0, 90, 180, 270 degrees

@ -196,7 +196,7 @@ end
--[[ --[[
get cached koptcontext for centain page. if context doesn't exist in cache make get cached koptcontext for centain page. if context doesn't exist in cache make
new context and reflow the src page immediatly, or wait background thread for new context and reflow the src page immediatly, or wait background thread for
reflowed context. reflowed context.
--]] --]]
function KoptInterface:getCachedContext(doc, pageno) function KoptInterface:getCachedContext(doc, pageno)
@ -272,10 +272,10 @@ function KoptInterface:renderPage(doc, pageno, rect, zoom, rotation, render_mode
end end
--[[ --[[
inherited from common document interface inherited from common document interface render reflowed page into cache in
render reflowed page into cache in background thread. this method returns immediatly background thread. this method returns immediatly leaving the precache flag on
leaving the precache flag on in context. subsequent usage of this context should in context. subsequent usage of this context should wait for the precache flag
wait for the precache flag off by calling self:waitForContext(kctx) off by calling self:waitForContext(kctx)
--]] --]]
function KoptInterface:hintPage(doc, pageno, zoom, rotation, gamma, render_mode) function KoptInterface:hintPage(doc, pageno, zoom, rotation, gamma, render_mode)
local bbox = doc:getPageBBox(pageno) local bbox = doc:getPageBBox(pageno)

@ -1,5 +1,6 @@
require "ui/screen" require "ui/screen"
require "ui/data/strings" require "ui/data/strings"
require "defaults"
KoptOptions = { KoptOptions = {
prefix = 'kopt', prefix = 'kopt',
@ -26,7 +27,7 @@ KoptOptions = {
toggle = {AUTO_STR, MANUAL_STR}, toggle = {AUTO_STR, MANUAL_STR},
alternate = false, alternate = false,
values = {1, 0}, values = {1, 0},
default_value = 1, default_value = DKOPTREADER_CONFIG_TRIM_PAGE,
event = "PageCrop", event = "PageCrop",
args = {"auto", "manual"}, args = {"auto", "manual"},
} }
@ -58,7 +59,7 @@ KoptOptions = {
name_text = PAGE_MARGIN_STR, name_text = PAGE_MARGIN_STR,
toggle = {SMALL_STR, MEDIUM_STR, LARGE_STR}, toggle = {SMALL_STR, MEDIUM_STR, LARGE_STR},
values = {0.05, 0.10, 0.15}, values = {0.05, 0.10, 0.15},
default_value = 0.10, default_value = DKOPTREADER_CONFIG_PAGE_MARGIN,
event = "MarginUpdate", event = "MarginUpdate",
}, },
{ {
@ -66,7 +67,7 @@ KoptOptions = {
name_text = LINE_SPACING_STR, name_text = LINE_SPACING_STR,
toggle = {SMALL_STR, MEDIUM_STR, LARGE_STR}, toggle = {SMALL_STR, MEDIUM_STR, LARGE_STR},
values = {1.0, 1.2, 1.4}, values = {1.0, 1.2, 1.4},
default_value = 1.2, default_value = DKOPTREADER_CONFIG_LINE_SPACING,
}, },
{ {
name = "max_columns", name = "max_columns",
@ -77,7 +78,7 @@ KoptOptions = {
"resources/icons/appbar.column.three.png", "resources/icons/appbar.column.three.png",
}, },
values = {1,2,3}, values = {1,2,3},
default_value = 2, default_value = DKOPTREADER_CONFIG_MAX_COLUMNS,
}, },
{ {
name = "justification", name = "justification",
@ -90,7 +91,7 @@ KoptOptions = {
"resources/icons/appbar.align.justify.png", "resources/icons/appbar.align.justify.png",
}, },
values = {-1,0,1,2,3}, values = {-1,0,1,2,3},
default_value = -1, default_value = DKOPTREADER_CONFIG_JUSTIFICATION,
}, },
} }
}, },
@ -105,7 +106,7 @@ KoptOptions = {
height = 60, height = 60,
item_font_size = {22,24,28,32,34,36,38,42,46,50}, item_font_size = {22,24,28,32,34,36,38,42,46,50},
values = {0.1, 0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.6, 2.0, 4.0}, values = {0.1, 0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.6, 2.0, 4.0},
default_value = 1.0, default_value = DKOPTREADER_CONFIG_FONT_SIZE,
event = "FontSizeUpdate", event = "FontSizeUpdate",
}, },
{ {
@ -132,7 +133,7 @@ KoptOptions = {
item_font_size = 18, item_font_size = 18,
item_align_center = 0.8, item_align_center = 0.8,
values = {2.0, 1.5, 1.0, 0.5, 0.2}, values = {2.0, 1.5, 1.0, 0.5, 0.2},
default_value = 1.0, default_value = DKOPTREADER_CONFIG_CONTRAST,
event = "GammaUpdate", event = "GammaUpdate",
args = {0.5, 0.8, 1.0, 2.0, 4.0}, args = {0.5, 0.8, 1.0, 2.0, 4.0},
} }
@ -146,7 +147,7 @@ KoptOptions = {
name_text = _("Reflow"), name_text = _("Reflow"),
toggle = {ON_STR, OFF_STR}, toggle = {ON_STR, OFF_STR},
values = {1, 0}, values = {1, 0},
default_value = 0, default_value = DKOPTREADER_CONFIG_TEXT_WRAP,
events = { events = {
{ {
event = "RedrawCurrentPage", event = "RedrawCurrentPage",
@ -171,14 +172,14 @@ KoptOptions = {
name_text = WORD_GAP_STR, name_text = WORD_GAP_STR,
toggle = {SMALL_STR, MEDIUM_STR, LARGE_STR}, toggle = {SMALL_STR, MEDIUM_STR, LARGE_STR},
values = {0.05, 0.15, 0.375}, values = {0.05, 0.15, 0.375},
default_value = 0.15, default_value = DKOPTREADER_CONFIG_WORD_SAPCING,
}, },
{ {
name = "defect_size", name = "defect_size",
name_text = DEFECT_SIZE_STR, name_text = DEFECT_SIZE_STR,
toggle = {SMALL_STR, MEDIUM_STR, LARGE_STR}, toggle = {SMALL_STR, MEDIUM_STR, LARGE_STR},
values = {1.0, 8.0, 15.0}, values = {1.0, 8.0, 15.0},
default_value = 1.0, default_value = DKOPTREADER_CONFIG_DEFECT_SIZE,
event = "DefectSizeUpdate", event = "DefectSizeUpdate",
}, },
{ {
@ -186,21 +187,21 @@ KoptOptions = {
name_text = RENDER_QUALITY_STR, name_text = RENDER_QUALITY_STR,
toggle = {LOW_STR, DEFAULT_STR, HIGH_STR}, toggle = {LOW_STR, DEFAULT_STR, HIGH_STR},
values={0.5, 1.0, 1.5}, values={0.5, 1.0, 1.5},
default_value = 0.8, default_value = DKOPTREADER_CONFIG_RENDER_QUALITY,
}, },
{ {
name = "auto_straighten", name = "auto_straighten",
name_text = AUTO_STRAIGHTEN_STR, name_text = AUTO_STRAIGHTEN_STR,
toggle = {ZERO_DEG_STR, FIVE_DEG_STR, TEN_DEG_STR}, toggle = {ZERO_DEG_STR, FIVE_DEG_STR, TEN_DEG_STR},
values = {0, 5, 10}, values = {0, 5, 10},
default_value = 0, default_value = DKOPTREADER_CONFIG_AUTO_STRAIGHTEN,
}, },
{ {
name = "detect_indent", name = "detect_indent",
name_text = INDENTATION_STR, name_text = INDENTATION_STR,
toggle = {ON_STR, OFF_STR}, toggle = {ON_STR, OFF_STR},
values = {1, 0}, values = {1, 0},
default_value = 1, default_value = DKOPTREADER_CONFIG_DETECT_INDENT,
show = false, show = false,
}, },
} }

@ -1,6 +1,7 @@
require "ui/reader/readerflip" require "ui/reader/readerflip"
require "ui/reader/readerfooter" require "ui/reader/readerfooter"
require "ui/reader/readerdogear" require "ui/reader/readerdogear"
require "defaults"
ReaderView = OverlapGroup:new{ ReaderView = OverlapGroup:new{
document = nil, document = nil,
@ -15,7 +16,7 @@ ReaderView = OverlapGroup:new{
offset = nil, offset = nil,
bbox = nil, bbox = nil,
}, },
outer_page_color = 0, outer_page_color = DOUTER_PAGE_COLOR,
-- hightlight -- hightlight
highlight = { highlight = {
lighten_color = 0.2, -- color range [0.0, 1.0] lighten_color = 0.2, -- color range [0.0, 1.0]
@ -27,7 +28,7 @@ ReaderView = OverlapGroup:new{
highlight_visible = true, highlight_visible = true,
-- PDF/DjVu continuous paging -- PDF/DjVu continuous paging
page_scroll = nil, page_scroll = nil,
page_bgcolor = 0, page_bgcolor = DBACKGROUND_COLOR,
page_states = {}, page_states = {},
scroll_mode = "vertical", scroll_mode = "vertical",
page_gap = { page_gap = {
@ -36,9 +37,9 @@ ReaderView = OverlapGroup:new{
color = 8, color = 8,
}, },
-- DjVu page rendering mode (used in djvu.c:drawPage()) -- DjVu page rendering mode (used in djvu.c:drawPage())
render_mode = 0, -- default to COLOR render_mode = DRENDER_MODE, -- default to COLOR
-- Crengine view mode -- Crengine view mode
view_mode = "page", -- default to page mode view_mode = DCREREADER_VIEW_MODE, -- default to page mode
hinting = true, hinting = true,
-- visible area within current viewing page -- visible area within current viewing page
@ -105,17 +106,14 @@ function ReaderView:paintTo(bb, x, y)
self.dim_area.w, self.dim_area.h self.dim_area.w, self.dim_area.h
) )
end end
-- draw saved highlight -- draw saved highlight
if self.highlight_visible then if self.highlight_visible then
self:drawSavedHighlight(bb, x, y) self:drawSavedHighlight(bb, x, y)
end end
-- draw temporary highlight -- draw temporary highlight
if self.highlight.temp then if self.highlight.temp then
self:drawTempHighlight(bb, x, y) self:drawTempHighlight(bb, x, y)
end end
-- paint dogear -- paint dogear
if self.dogear_visible then if self.dogear_visible then
self.dogear:paintTo(bb, x, y) self.dogear:paintTo(bb, x, y)
@ -478,7 +476,7 @@ function ReaderView:onReadSettings(config)
table.insert(self.ui.postInitCallback, function() table.insert(self.ui.postInitCallback, function()
self:onSetScreenMode(screen_mode) end) self:onSetScreenMode(screen_mode) end)
end end
self.state.gamma = config:readSetting("gamma") or 1.0 self.state.gamma = config:readSetting("gamma") or DGLOBALGAMMA
local full_screen = config:readSetting("kopt_full_screen") local full_screen = config:readSetting("kopt_full_screen")
if full_screen == nil then if full_screen == nil then
full_screen = self.document.configurable.full_screen full_screen = self.document.configurable.full_screen

@ -4,6 +4,7 @@ require "ui/inputevent"
require "ui/screen" require "ui/screen"
require "debug" require "debug"
require "gettext" require "gettext"
require "defaults"
-- initialize output module, this must be initialized before Input -- initialize output module, this must be initialized before Input
Screen:init() Screen:init()
@ -23,7 +24,7 @@ UIManager = {
-- after each ui loop -- after each ui loop
full_refresh = false, full_refresh = false,
-- trigger a full refresh when counter reaches FULL_REFRESH_COUNT -- trigger a full refresh when counter reaches FULL_REFRESH_COUNT
FULL_REFRESH_COUNT = 6, FULL_REFRESH_COUNT = DRCOUNTMAX,
refresh_count = 0, refresh_count = 0,
_running = true, _running = true,

Loading…
Cancel
Save