Register Guidelines E-Books Search Today's Posts Mark Forums Read

Go Back   MobileRead Forums > E-Book Readers > More E-Book Readers > iRex > iRex Developer's Corner

Notices

Reply
 
Thread Tools Search this Thread
Old 05-15-2010, 09:51 AM   #1
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: 712
Karma: 72743
Join Date: Feb 2008
Location: Here or there
Device: iRex iLiad, in love with iRex DR800S. Also a K4NT. Now a Kobo Aura
dillo2 & porting non gtk+ based programs

Hi,

as we know, DR way to manage screen refresh is handled by some modifications of the gtk+ code. Thus, porting non gtk+ based applications need to refresh screen on their own, similar to what xournal port does due to its use of a special gtk+ widget not covered by the method iRex uses.

So, here am I, trying to port dillo2, a tiny but quite functional web browser.
I've already compiled it successfully (btw, porting fltk2 library has been quite hard), but it's not usable because of the lack of screen refresh and the keyboard issues.

A good way to solve these problems would be to develop an external library we could call from these programs, managing refresh and keyboard, or an external daemon as some hacks on Iliad used.

Sadly, this is beyond my skills... is anyone tempted to help?

I have the same problem with xboard, a frontend for gnuchess.

I've attached a screenshot to show how beautiful dillo browsing could be
Attached Thumbnails
Click image for larger version

Name:	ss-dillo-1.png
Views:	247
Size:	166.0 KB
ID:	51588  
Iņigo is offline   Reply With Quote
Old 05-16-2010, 02:02 AM   #2
ericshliao
Guru
ericshliao will become famous soon enoughericshliao will become famous soon enoughericshliao will become famous soon enoughericshliao will become famous soon enoughericshliao will become famous soon enoughericshliao will become famous soon enough
 
Posts: 974
Karma: 687
Join Date: Nov 2007
Device: Dell X51v; iLiad v2
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.
ericshliao is offline   Reply With Quote
 
Enthusiast
Old 05-16-2010, 04:07 AM   #3
Mackx
Guru
Mackx is a splendid one to beholdMackx is a splendid one to beholdMackx is a splendid one to beholdMackx is a splendid one to beholdMackx is a splendid one to beholdMackx is a splendid one to beholdMackx is a splendid one to beholdMackx is a splendid one to beholdMackx is a splendid one to beholdMackx is a splendid one to beholdMackx is a splendid one to behold
 
Posts: 998
Karma: 19985
Join Date: Dec 2008
Location: Netherlands
Device: iRex DR1000S
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.
Mackx is offline   Reply With Quote
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: 712
Karma: 72743
Join Date: Feb 2008
Location: Here or there
Device: iRex iLiad, in love with iRex DR800S. Also a K4NT. Now a Kobo Aura
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] http://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
Old 05-17-2010, 02:36 AM   #5
Mackx
Guru
Mackx is a splendid one to beholdMackx is a splendid one to beholdMackx is a splendid one to beholdMackx is a splendid one to beholdMackx is a splendid one to beholdMackx is a splendid one to beholdMackx is a splendid one to beholdMackx is a splendid one to beholdMackx is a splendid one to beholdMackx is a splendid one to beholdMackx is a splendid one to behold
 
Posts: 998
Karma: 19985
Join Date: Dec 2008
Location: Netherlands
Device: iRex DR1000S
Quote:
Originally Posted by Iņigo View Post
For what I've read in GregorRichards' rxvt port [1] it's as easy as some ioctl here and there.

[1] http://www.mobileread.com/forums/showthread.php?t=81119
In the past (with R1.7.1 on the DR1000) I found some stability problems with Xournal, related to screen updates. (Maybe it is only the combination of scribbles- and screen- updates.) So I am not sure which method to use the direct ioctl or via the liberutils-display-functions? Maybe an iRex developer can comment on this?

Providing a separate library is a good idea. The proposed interface is sufficient, maybe add a (library-)prefix to the commands to avoid conflict with local names in the application.
Mackx is offline   Reply With Quote
Old 05-17-2010, 07:29 AM   #6
Gertjan
IRX developer
Gertjan doesn't litterGertjan doesn't litterGertjan doesn't litter
 
Gertjan's Avatar
 
Posts: 158
Karma: 224
Join Date: Oct 2008
Device: Irex DR800S, DR1000S, iLiad
Quote:
Originally Posted by Iņigo View Post
I was thinking on an external lib with some easy-to-use functions "update_fast()", "update_complete()", etc.
I suggest giving the code in liberutils (display_utils) a second look. It provides quite similar functionality all within the already available API of the iOn framework. I know it currently lacks documentation but Im happy to answer questions.
Gertjan is offline   Reply With Quote
Old 05-17-2010, 05:07 PM   #7
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: 712
Karma: 72743
Join Date: Feb 2008
Location: Here or there
Device: iRex iLiad, in love with iRex DR800S. Also a K4NT. Now a Kobo Aura
Quote:
Originally Posted by Gertjan View Post
I suggest giving the code in liberutils (display_utils) a second look. It provides quite similar functionality all within the already available API of the iOn framework. I know it currently lacks documentation but Im happy to answer questions.
First of all, thanks for your support, Gertjan.

I think you mean the display_update_xxx() functions. They call send_message:
Code:
static void send_message(int take_control, int waveform)
where waveform is a DM_HINT_XXX constant: 1=full, 4=partial, ...
but what means take_control? lock and unlock display... but with which purpose?

Thanks, Iņigo
Iņigo is offline   Reply With Quote
Old 05-18-2010, 03:30 AM   #8
Gertjan
IRX developer
Gertjan doesn't litterGertjan doesn't litterGertjan doesn't litter
 
Gertjan's Avatar
 
Posts: 158
Karma: 224
Join Date: Oct 2008
Device: Irex DR800S, DR1000S, iLiad
Code:
/* setup socket for display management (implicitly called by functions below) */
void display_init();

/* close socket for display management */
void display_finialize();

/* take control of display updates, stop automatic GTK+ updates */
void display_gain_control();

/* yield control, resume automatic GTK+ updates */
void display_return_control();

/* force display update and yield control */
void display_update_return_control(gint type);

/* force display update and keep control */
void display_update_keep_control(gint type);

/* block all display updates (both forced and automatic), expect for splash hints */
void display_splash_lock();

/* force display update to show splash screen */
void display_update_keep_splash_lock();

/* unblock display updates, resume forced/automatic updates */
void display_splash_unlock();
Hope that helps a bit.
Gertjan is offline   Reply With Quote
Old 05-18-2010, 05:18 AM   #9
Mackx
Guru
Mackx is a splendid one to beholdMackx is a splendid one to beholdMackx is a splendid one to beholdMackx is a splendid one to beholdMackx is a splendid one to beholdMackx is a splendid one to beholdMackx is a splendid one to beholdMackx is a splendid one to beholdMackx is a splendid one to beholdMackx is a splendid one to beholdMackx is a splendid one to behold
 
Posts: 998
Karma: 19985
Join Date: Dec 2008
Location: Netherlands
Device: iRex DR1000S
Thanks for the extra information!
Mackx is offline   Reply With Quote
Reply

Tags
dillo2, refresh

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Is a gtk version possible? frandavid100 Calibre 14 12-16-2008 03:09 PM
Cybook & text-based pdfs StephieP Bookeen 17 04-28-2008 11:50 AM
iLiad Problems porting GTK apps robinwatts iRex Developer's Corner 6 03-22-2008 06:19 AM
iLiad Need help getting started with gtk tribble iRex Developer's Corner 4 06-05-2007 12:38 PM


All times are GMT -4. The time now is 08:17 AM.


MobileRead.com is a privately owned, operated and funded community.