View Single Post
Old 05-16-2010, 08:05 PM   #4
Iņigo
Guru
Iņigo did not drink the Kool Aid.Iņigo did not drink the Kool Aid.Iņigo did not drink the Kool Aid.Iņigo did not drink the Kool Aid.Iņigo did not drink the Kool Aid.Iņigo did not drink the Kool Aid.Iņigo did not drink the Kool Aid.Iņigo did not drink the Kool Aid.Iņigo did not drink the Kool Aid.Iņigo did not drink the Kool Aid.Iņigo did not drink the Kool Aid.
 
Posts: 730
Karma: 72743
Join Date: Feb 2008
Location: Here or there
Device: iRex iLiad, iRex DR800S. K4NT. Kobo Aura, Aura One, Libra 2.
Quote:
Originally Posted by Mackx View Post
Hi Iņigo,

I only studied this part of the firmware briefly, but it seems that there are already some provisions. See: \Sources\3.0\iRex\libs\erutils\src\display_utils.c . The code is used by the keyboard app: \Sources\3.0\iRex\erkeyb\src\erkeyb-display-sched.c.
The messages send by display_utils.c are handled by sysd (\Sources\3.0\iRex\sysd\src\display.c) there you can see what the effect will be from a message.
For what I've read in GregorRichards' rxvt port [1] it's as easy as some ioctl here and there.

[1] https://www.mobileread.com/forums/showthread.php?t=81119


Quote:
Originally Posted by ericshliao View Post
IMHO, porting xepdmgr to DR800 should be more feasible than adding eink-refresh code to FLTK.
In xepdmgr, "xepdmgr_einkfb.c" contains most eink-refresh control code. Some of them are iLiad-specific. I don't know if the required functions are available for DR800.
I was thinking on an external lib with some easy-to-use functions "update_fast()", "update_complete()", etc.


Code:
#include <sys/ioctl.h>
#include "delta.h"

int fb0fd=-1;

[...]

struct display_update_info duinfo;
if (fb0fd < 0)
    fb0fd = open("/dev/fb0", O_RDWR);
duinfo.waveform = 1; // 1=full, 6=quick, 9=partial
duinfo.color = 0;
ioctl(fb0fd, FBIO_DELTA_UPDATE_DISPLAY, &duinfo);
Iņigo is offline   Reply With Quote