View Slides
see more templates or propose new |
Description & Goals
The View Slides activity is meant to allow the XO laptop to read view the contents of a Zip file containing images named sequentially. Project Gutenberg has a few books as raw scanned images, and this can be a useful format for picture books, comic books, magazine articles, photo essays, etc.
The interface to View Slides is similar to the core Read activity, which should not be surprising as the toolbar code was adapted from Read's toolbar. You can use the up and down arrows or the game controller to move from page to page.
You can share documents just like the Read activity does. However, because sharing documents is slow and unreliable at this time this is not a practical way to distribute View Slides documents to a classroom. A much better solution is to set up a web server.
The image files can be JPEGs, GIFs, TIFFs, or PNGs. You can put them all in the root of the Zip file, or you can put them into subdirectories. The important thing is that the files and directories are named sequentially.
To make a file like this first create some image files and name them sequentially:
image001.jpg, image002.jpg, image003.jpg, ...
In Linux you can create the file with the zip command:
zip bookname *.jpg
will create a file named bookname.zip and put all the JPEGs in the current directory in it. I recommend using the suffix .zip for all of your files, especially if you plan to distribute them using a web server. The Apache web server uses the file suffix to determine the MIME type of the file. If you use a different suffix you may find that the Browse activity does not put the MIME type of the file in the Journal correctly and as a result the Journal entry won't have View Slides on its "Resume" menu.
A file you can use to try out View Slides can be downloaded from Project Gutenberg. Look for the file format "Raw page images".
Screenshots
Current Features
- Currently you can load a zip file containing images and page through them in sequence like a book. The images will be resized to best fit in the current screen resolution without scrolling. If you change the screen orientation the image will be resized to fit the new orientation.
- You can share documents with other users, using code adapted from the core Read activity. Currently this is not reliable. There is a text message on the "Read" toolbar showing how many bytes have been downloaded out of how many total. I plan to replace this message with a thermometer control when sharing is more reliable.
- Aggresive power management using code from Read activity.
Planned Features
- With the name "View Slides" it would be reasonable to expect a slideshow feature, possibly with fancy transitions. I may add another tab to the toolbox to provide this.
Activity .xo file
- ViewSlides.xo v.4
Bugs
- When you exit the activity it should save the current page number and resume on that page number when you resume the activity. This actually works, but because of a known bug in Journal the page number meta data does not persist after a reboot. Also, the page number cannot be saved when the images are loaded from an SD card or USB drive. These devices don't have the same support for metadata as the Journal does.
- On some versions of the XO OS the Journal cannot deal with large files (15 mb or larger). This will prevent you from using larger files containing images. You can fix this by updating the OS, which currently requires getting a developer key.
- The document sharing code is not reliable. Currently it uses Tubes to copy a file from one computer to another. When using Gabble the file is Base 64 encoded and sent using a method that has a lot of overhead, which is necessary because the two computers might be on different networks and have to deal with with firewalls and the like. This is very slow but seems to work most of the time. When using Salut (mesh network) the computers are known to be on the same network, so copying can be much faster. Unfortunately, this method fails more often than not. The transfer simply dies shortly after it begins.
- Another bug with sharing documents is that when you resume a shared activity and the document is still being shared by others your copy of the activity will download the document again. There seems to be no way for the activity to know that it already has the document and does not need to get it again. This is because of the way methods in the activity are invoked.