fix fb:getOrientation method, adjust mode numbering

also use it in screen.lua
pull/2/merge
Qingping Hou 12 years ago
parent 7ce032c6a6
commit 937a91c297

@ -225,7 +225,23 @@ static int einkSetOrientation(lua_State *L) {
return luaL_error(L, "Wrong rotation mode %d given!", mode);
}
/* ioctl has a different definition for rotation mode. */
/* ioctl has a different definition for rotation mode.
* 1
* +--------------+
* | +----------+ |
* | | | |
* | | Freedom! | |
* | | | |
* | | | |
* 3 | | | | 2
* | | | |
* | | | |
* | +----------+ |
* | |
* | |
* +--------------+
* 0
* */
if (mode == 1)
mode = 2;
else if (mode == 2)
@ -242,6 +258,13 @@ static int einkGetOrientation(lua_State *L) {
FBInfo *fb = (FBInfo*) luaL_checkudata(L, 1, "einkfb");
ioctl(fb->fd, FBIO_EINK_GET_DISPLAY_ORIENTATION, &mode);
/* adjust ioctl's rotate mode definition to KPV's
* refer to screen.lua */
if (mode == 2)
mode = 1;
else if (mode == 1)
mode = 2;
#endif
lua_pushinteger(L, mode);
return 1;

@ -84,13 +84,8 @@ function Screen:getHeight()
end
function Screen:updateRotationMode()
if util.isEmulated() then -- in EMU mode always set to 0
self.cur_rotation_mode = 0
else
orie_fd = assert(io.open("/sys/module/eink_fb_hal_broads/parameters/bs_orientation", "r"))
updown_fd = assert(io.open("/sys/module/eink_fb_hal_broads/parameters/bs_upside_down", "r"))
self.cur_rotation_mode = orie_fd:read() + (updown_fd:read() * 2)
end
-- in EMU mode, you will always get 0 from getOrientation()
self.cur_rotation_mode = self.fb:getOrientation()
end
function Screen:saveCurrentBB()

Loading…
Cancel
Save