Register Guidelines E-Books Today's Posts Search

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

Notices

Reply
 
Thread Tools Search this Thread
Old 08-04-2010, 10:45 PM   #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: 730
Karma: 72743
Join Date: Feb 2008
Location: Here or there
Device: iRex iLiad, iRex DR800S. K4NT. Kobo Aura, Aura One, Libra 2.
which command does uds send to toggle fullscreen?

Hi,

I'm trying to discover the prefix and command popupmenu sends to uds to toggle fullscreen.
F.e. uds_full_screen.mode_full_screen or uds_actions.mode_full_screen...

I've tested all the combinations I can think of (system_top, system_bottom, uds_full_screen, uds_page_flow, uds_view_port, uds_zoom_factor, uds_tools, uds_views, uds_actions...) but with no success after 5 hours

The context is lines 126-141 of menustore.c file in popupmenu:
https://inigo.katxi.org/ereader/dr80...8c_source.html


I'm working on a new popupmenu for DR800 with some features taken from DR1000, continuing the work CoolDragon posted some time ago.

Any idea?

Thanks in advance,
Iņigo
Iņigo is offline   Reply With Quote
Old 08-05-2010, 12:30 AM   #2
CoolDragon
Addict
CoolDragon doesn't litterCoolDragon doesn't litter
 
Posts: 244
Karma: 124
Join Date: Feb 2010
Device: none
Good to hear that you are continuing my work :-) It's always a good idea to modify the DR800's code to enable "page flow" and "full screen" since its UDS already has the feature.

So you try to figure out the IPC message to send to UDS to enable "full screen"? I am not sure if that will work. My understanding is that this communication between UDS and Popupmenu is registered through callback function. The UDS should register the function to certain popupmenu item.

I could be wrong, this is just my understanding. Maybe we can de-assemble the UDS code and going through the assembly code?
CoolDragon is offline   Reply With Quote
Old 08-05-2010, 03:56 AM   #3
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 CoolDragon View Post
Good to hear that you are continuing my work :-) It's always a good idea to modify the DR800's code to enable "page flow" and "full screen" since its UDS already has the feature.

So you try to figure out the IPC message to send to UDS to enable "full screen"? I am not sure if that will work. My understanding is that this communication between UDS and Popupmenu is registered through callback function. The UDS should register the function to certain popupmenu item.

I could be wrong, this is just my understanding. Maybe we can de-assemble the UDS code and going through the assembly code?
By now I'm cleaning the code and adding simple bits here and there. I'll post once I finish and draw some icons.

This version will also need UDS binary from DR1000. It's a pity, because that means we won't be able to distribute the complete package, each user would need to get uds binaries by himself.


Regarding "fullscreen" message, as we can see from popupmenu's menustore.c (lines 126-141) there are a group and action labels (pmenu and imenu as are called on the sources). I suppose imenu is "mode_full_screen" but can't find out the group.

I've done a "strings uds" (a poor's man de-assembling) and tried many combinations of the strings found there. No luck. 5 hours of test after test, but no luck.

Gertjan, are you here, please?

Iņigo

PS: btw, have you tested my "ctb" version? It adds some cool features from DR1000 to the DR800. It doesn't need DR1000 uds.
Download from "Patch for DR1000 firmware" thread, message # 13: https://www.mobileread.com/forums/sho...0&postcount=13

My plan is to create a 2 different dr800+ packages:
1. with improved ctb (no uds nor popupmenu)
2. improved ctb, popupmenu, uds. In this case it requires DR1000's uds binary
Iņigo is offline   Reply With Quote
Old 08-05-2010, 05:46 AM   #4
Gertjan
ex-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
Thumbs down

Quote:
Originally Posted by Iņigo View Post
Regarding "fullscreen" message, as we can see from popupmenu's menustore.c (lines 126-141) there are a group and action labels (pmenu and imenu as are called on the sources). I suppose imenu is "mode_full_screen" but can't find out the group.
A trace with dbus-monitor can help, though it requires access to a DR1000 in this case. When the item is clicked in popupmenu, the following dbus message is sent:

Code:
method call sender=:1.4 -> dest=com.irexnet.uds path=/com/irexnet/uds; interface=com.irexnet.uds; member=menuItemActivated
   string "mode_full_screen"
   string "uds_navigation"
   string "uds_menu_reading"
   string "normal"
Meaning:
  • item: mode_full_screen
  • group: uds_navigation
  • menu: uds_menu_reading
  • state: normal (entering full screen), selected (leaving full screen)
The mode_full_screen menu item is not available in DR800 though, so just sending this command won't have the desired effect.
Gertjan is offline   Reply With Quote
Old 08-05-2010, 06:54 AM   #5
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 Gertjan View Post
A trace with dbus-monitor can help, though it requires access to a DR1000 in this case. When the item is clicked in popupmenu, the following dbus message is sent:

Code:
method call sender=:1.4 -> dest=com.irexnet.uds path=/com/irexnet/uds; interface=com.irexnet.uds; member=menuItemActivated
   string "mode_full_screen"
   string "uds_navigation"
   string "uds_menu_reading"
   string "normal"
Meaning:
  • item: mode_full_screen
  • group: uds_navigation
  • menu: uds_menu_reading
  • state: normal (entering full screen), selected (leaving full screen)
It works, it works!!!! Thanks a lot
What I needed was uds_navigation.mode_full_screen!!!


Quote:
The mode_full_screen menu item is not available in DR800 though, so just sending this command won't have the desired effect.
I'm using DR1000's uds in a DR800 with modified ctb and popupmenu.
See the attached screenshot

Thanks a lot,
Iņigo
Attached Thumbnails
Click image for larger version

Name:	dr800+-1.png
Views:	524
Size:	42.6 KB
ID:	56175   Click image for larger version

Name:	dr800+-2.png
Views:	534
Size:	40.4 KB
ID:	56176   Click image for larger version

Name:	dr800+-3.png
Views:	555
Size:	43.9 KB
ID:	56177  
Iņigo is offline   Reply With Quote
Old 08-05-2010, 11:06 AM   #6
CoolDragon
Addict
CoolDragon doesn't litterCoolDragon doesn't litter
 
Posts: 244
Karma: 124
Join Date: Feb 2010
Device: none
This looks great! My only problem with using DR1000's uds and modified popupmenu is that, sometimes, yes sometimes, when DR800 is disconnected from the PC, the menu are screwed up, the only way to restore the menu is rebooting, which is quite long and annoying.

Since I modified the popupmenu source code and still compiled for DR1000, I guess it is related to some DR1000 specific code. Do you have this problem in your current implementation? I assume you are modifying the DR800's code of popupmenu?
CoolDragon is offline   Reply With Quote
Old 08-05-2010, 12:57 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: 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 CoolDragon View Post
This looks great! My only problem with using DR1000's uds and modified popupmenu is that, sometimes, yes sometimes, when DR800 is disconnected from the PC, the menu are screwed up, the only way to restore the menu is rebooting, which is quite long and annoying.

Since I modified the popupmenu source code and still compiled for DR1000, I guess it is related to some DR1000 specific code. Do you have this problem in your current implementation? I assume you are modifying the DR800's code of popupmenu?
I haven't seen any problem with the modified popupmenu, and I was using your version until yesterday.

Try the packaged attached.
Copy "ctb" and "popupmenu" programs to "/usr/bin/", the .png images from the 2 directories (without the directories) to "/usr/share/icons/" and "ctb.rc" to "/usr/share/ctb/", then reboot the device.
Obviously you need DR1000 uds binary installed on "/usr/bin/" as well.

It's working smoothly on my DR800S.


And now the one-million dollar question:
I think the programs are ready to be announced and used for the general public, but I don't think I can include IREX DR1000 uds binary here due to its copyright, as is not GPL. Thus it's not possible to create a complete and easy to install package for normal users.

What do you think?

Iņigo
Attached Files
File Type: gz dr800+.tar.gz (111.2 KB, 444 views)
Iņigo is offline   Reply With Quote
Old 08-05-2010, 01:16 PM   #8
dima_tr
Groupie
dima_tr has learned how to read e-booksdima_tr has learned how to read e-booksdima_tr has learned how to read e-booksdima_tr has learned how to read e-booksdima_tr has learned how to read e-booksdima_tr has learned how to read e-booksdima_tr has learned how to read e-books
 
Posts: 175
Karma: 863
Join Date: Oct 2009
Location: Germany, Karlsruhe
Device: Iliad v2, DR800S (inlove)
Well, there's no way around if you really want features from DR1000's uds .. The pro's for DR1000 binary I can come to are pdf continuous mode, pdf full screen and nice page select bar (anything else missed?). Otherwise it is sufficient to use customized popupmenu and ctb; and this I actually do on my personal DR800.

So,
more features -> each user has to extract dr1000 uds manually
less features -> easy to install package
dima_tr is offline   Reply With Quote
Old 08-05-2010, 02:01 PM   #9
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 dima_tr View Post
Well, there's no way around if you really want features from DR1000's uds .. The pro's for DR1000 binary I can come to are pdf continuous mode, pdf full screen and nice page select bar (anything else missed?). Otherwise it is sufficient to use customized popupmenu and ctb; and this I actually do on my personal DR800.

So,
more features -> each user has to extract dr1000 uds manually
less features -> easy to install package
the hacked version of popupmenu here has 2 extras not in the standard DR800:
- taskbar: open several docs/apps simultaneously
- statusbar: page bar, fullscreen, continuous mode and some great usability shortcuts in the statusbar

Statusbar needs DR1000 uds, but taskbar works ok without it (compile-time flag *).
You can open different documents or apps, the only drawback is that is not possible to close them, except rebooting. A minor problem in my little testings.

Maybe the only solution is to provide 2 different packages, and include instructions on how to extract DR1000 uds in the second one.

Iņigo


* NOTE:
I've modified the sources to add some compile time flags to enable these advanced features in configure & compile easily:

$ export MACHINE_NAME=dr800s # or dr800sw or dr800sg
$ ./configure --host=arm-poky-linux-gnueabi --prefix=/usr --enable-epaper --enable-dr800plus

ctb, config.h:
#define DR800_ENABLE_SHORTCUTS 1
#define DR800_ENABLE_EXTRA_SORT 1
#define DR800_ENABLE_VIEWDETAILS 1

popupmenu, config.h:
#define DR800_ENABLE_TASKBAR 1
#define DR800_ENABLE_ADV_STATUSBAR 1
Iņigo is offline   Reply With Quote
Old 08-05-2010, 03:24 PM   #10
CoolDragon
Addict
CoolDragon doesn't litterCoolDragon doesn't litter
 
Posts: 244
Karma: 124
Join Date: Feb 2010
Device: none
Quote:
I haven't seen any problem with the modified popupmenu, and I was using your version until yesterday.
That's very interesting to know. For me, the "menu screw up" problem happens most times, after disconnecting from the PC. Maybe it is a Windows problem? :-)

Quote:
Try the packaged attached.
Copy "ctb" and "popupmenu" programs to "/usr/bin/", the .png images from the 2 directories (without the directories) to "/usr/share/icons/" and "ctb.rc" to "/usr/share/ctb/", then reboot the device.
Obviously you need DR1000 uds binary installed on "/usr/bin/" as well.

It's working smoothly on my DR800S.
I don't have the reader at hand now, but I tried on the emulator, looks great! Although I might like some more icons on the status bar, such as "select zoom" and "annotation". But that's just personal preference. I believe you are going to post the source when you release it?

Quote:
And now the one-million dollar question:
I think the programs are ready to be announced and used for the general public, but I don't think I can include IREX DR1000 uds binary here due to its copyright, as is not GPL. Thus it's not possible to create a complete and easy to install package for normal users.

What do you think?
The only thing needed for Windows is some tool to extract the rootfs.bin file. I have searched on the internet when I did the change, but no luck. On Linux, this is so easy. But if someone uses Linux, I don't think he/she needs this "one-step" setup program.
CoolDragon is offline   Reply With Quote
Old 08-05-2010, 03:29 PM   #11
CoolDragon
Addict
CoolDragon doesn't litterCoolDragon doesn't litter
 
Posts: 244
Karma: 124
Join Date: Feb 2010
Device: none
Quote:
Originally Posted by dima_tr View Post
Well, there's no way around if you really want features from DR1000's uds .. The pro's for DR1000 binary I can come to are pdf continuous mode, pdf full screen and nice page select bar (anything else missed?). Otherwise it is sufficient to use customized popupmenu and ctb; and this I actually do on my personal DR800.

So,
more features -> each user has to extract dr1000 uds manually
less features -> easy to install package
Actually, you don't need the DR1000's uds if you just want the features you listed in this post:
"continuous mode": also called "page flow", can be turned on if you set the field in metadata.db correctly. yacoob has a similar app for that. This can also be done with CTB. The disadvantage is that it is not on-demand: once the file is opened, it cannot be toggled.
"full screen": same as above.
"page select bar": Just a feature of popupmenu.
CoolDragon is offline   Reply With Quote
Old 08-05-2010, 03:32 PM   #12
CoolDragon
Addict
CoolDragon doesn't litterCoolDragon doesn't litter
 
Posts: 244
Karma: 124
Join Date: Feb 2010
Device: none
Quote:
Statusbar needs DR1000 uds, but taskbar works ok without it (compile-time flag *).
You can open different documents or apps, the only drawback is that is not possible to close them, except rebooting. A minor problem in my little testings.
Interesting, do you know why?
CoolDragon is offline   Reply With Quote
Old 08-05-2010, 05:32 PM   #13
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 CoolDragon View Post
I don't have the reader at hand now, but I tried on the emulator, looks great! Although I might like some more icons on the status bar, such as "select zoom" and "annotation". But that's just personal preference.
The reason behind this is to avoid filling the space with not so used icons and allow room for what they call "system icons" (inbox, 3g and battery indicators).

Also remember that all the missing actions you mention can be reached from the icon an the right, the one which cycles between different states (none, pencil, erase, pan, zoom). That's why I've removed those icons from the statusbar.

I've added a book info icon to the statusbar too. From that view we can select other views: toc, annotations and thumbnails.
My first choice was to add toc to statusbar, but as not all docs contain a valid toc it's sometimes disabled.

I've also added fullscreen and rotate actions.

Quote:
Actually, you don't need the DR1000's uds if you just want the features you listed in this post:
"continuous mode": also called "page flow", can be turned on if you set the field in metadata.db correctly. yacoob has a similar app for that. This can also be done with CTB. The disadvantage is that it is not on-demand: once the file is opened, it cannot be toggled.
"full screen": same as above.
"page select bar": Just a feature of popupmenu.
The point is that it is difficult to change those parameters without using DR1000 uds.
We could implement them on the popupmenu but we would need to write lot of code and change the way statusbar is used in DR800. I don't think is worth the effort.

Quote:
Quote:
Statusbar needs DR1000 uds, but taskbar works ok without it (compile-time flag *).
You can open different documents or apps, the only drawback is that is not possible to close them, except rebooting. A minor problem in my little testings.
Interesting, do you know why?
Simple, we don't have a "close" button.
We could add one, but it's the same work mentioned above.

Quote:
I believe you are going to post the source when you release it?
Of course.
I'm waiting for fixing some small issues and to see if we choose a common VCS and hosting infraestructure.

Anyway, I'm going on holidays this weekend and I'll be away for two weeks, so if not before, I'll publish them here (devel forum) next Friday or Saturday.

Iņigo
Iņigo is offline   Reply With Quote
Old 08-05-2010, 07:11 PM   #14
CoolDragon
Addict
CoolDragon doesn't litterCoolDragon doesn't litter
 
Posts: 244
Karma: 124
Join Date: Feb 2010
Device: none
Thanks for the explanation. The modified ctb and popupmenu look nice! Have a nice vacation!
CoolDragon is offline   Reply With Quote
Old 08-06-2010, 05:28 AM   #15
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.
DR800+ released

Hi,

I've released the package in https://www.mobileread.com/forums/showthread.php?t=93627

Iņigo
Iņigo is offline   Reply With Quote
Reply


Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Hacks Restore the text justification menu toggle without a hack Gearhead Amazon Kindle 68 08-15-2015 05:43 PM
Restore KindleDX's font dialog justification toggle Gearhead Kindle Developer's Corner 23 09-22-2010 05:40 PM
DR1000 Chinese Vertical Layout uds plugin plaintext Release spuggy iRex 4 09-18-2010 02:00 PM
Difference between emulator and real device (developing uds plugin for djvu) luite iRex 7 03-03-2010 08:55 PM
Problem with Volume Toggle? moxy789 Amazon Kindle 2 03-04-2009 03:37 PM


All times are GMT -4. The time now is 05:54 PM.


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