2016-01-31 14:57:54 -08:00
|
|
|
local isAndroid, _ = pcall(require, "android")
|
2021-05-19 03:54:08 +02:00
|
|
|
local lfs = require("libs/libkoreader-lfs")
|
2014-10-30 19:42:18 +01:00
|
|
|
local util = require("ffi/util")
|
|
|
|
|
|
|
|
|
|
local function probeDevice()
|
|
|
|
|
if isAndroid then
|
2021-05-19 03:54:08 +02:00
|
|
|
util.noSDL()
|
2014-10-30 19:42:18 +01:00
|
|
|
return require("device/android/device")
|
|
|
|
|
end
|
|
|
|
|
|
2021-05-19 03:54:08 +02:00
|
|
|
local kindle_test_stat = lfs.attributes("/proc/usid")
|
|
|
|
|
if kindle_test_stat then
|
|
|
|
|
util.noSDL()
|
2014-10-30 19:42:18 +01:00
|
|
|
return require("device/kindle/device")
|
|
|
|
|
end
|
|
|
|
|
|
2021-05-19 03:54:08 +02:00
|
|
|
local kobo_test_stat = lfs.attributes("/bin/kobo_config.sh")
|
|
|
|
|
if kobo_test_stat then
|
|
|
|
|
util.noSDL()
|
2014-10-30 19:42:18 +01:00
|
|
|
return require("device/kobo/device")
|
|
|
|
|
end
|
|
|
|
|
|
2015-04-27 13:10:16 +02:00
|
|
|
local pbook_test_stat = lfs.attributes("/ebrmain")
|
|
|
|
|
if pbook_test_stat then
|
2021-05-19 03:54:08 +02:00
|
|
|
util.noSDL()
|
2015-01-09 14:10:25 +00:00
|
|
|
return require("device/pocketbook/device")
|
|
|
|
|
end
|
|
|
|
|
|
2020-02-08 01:58:10 +01:00
|
|
|
local remarkable_test_stat = lfs.attributes("/usr/bin/xochitl")
|
|
|
|
|
if remarkable_test_stat then
|
2021-05-19 03:54:08 +02:00
|
|
|
util.noSDL()
|
2020-02-08 01:58:10 +01:00
|
|
|
return require("device/remarkable/device")
|
|
|
|
|
end
|
|
|
|
|
|
2018-09-07 20:37:04 -03:00
|
|
|
local sony_prstux_test_stat = lfs.attributes("/etc/PRSTUX")
|
|
|
|
|
if sony_prstux_test_stat then
|
2021-05-19 03:54:08 +02:00
|
|
|
util.noSDL()
|
2018-09-07 20:37:04 -03:00
|
|
|
return require("device/sony-prstux/device")
|
|
|
|
|
end
|
|
|
|
|
|
2018-10-31 23:48:36 +01:00
|
|
|
local cervantes_test_stat = lfs.attributes("/usr/bin/ntxinfo")
|
|
|
|
|
if cervantes_test_stat then
|
2021-05-19 03:54:08 +02:00
|
|
|
util.noSDL()
|
2018-10-31 23:48:36 +01:00
|
|
|
return require("device/cervantes/device")
|
|
|
|
|
end
|
|
|
|
|
|
2015-01-09 14:10:25 +00:00
|
|
|
-- add new ports here:
|
2016-02-09 23:01:52 -08:00
|
|
|
--
|
|
|
|
|
-- if --[[ implement a proper test instead --]] false then
|
2021-05-19 03:54:08 +02:00
|
|
|
-- util.noSDL()
|
2016-02-09 23:01:52 -08:00
|
|
|
-- return require("device/newport/device")
|
|
|
|
|
-- end
|
2015-01-09 14:10:25 +00:00
|
|
|
|
2021-05-19 03:54:08 +02:00
|
|
|
if util.isSDL() then
|
|
|
|
|
return require("device/sdl/device")
|
|
|
|
|
end
|
|
|
|
|
|
2018-03-14 12:00:01 -04:00
|
|
|
error("Could not find hardware abstraction for this platform. If you are trying to run the emulator, please ensure SDL is installed.")
|
2014-10-30 19:42:18 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
local dev = probeDevice()
|
|
|
|
|
dev:init()
|
|
|
|
|
return dev
|