Difference between revisions of "Todo for OLPC"
(→Requirements for an XO version) |
|||
Line 6: | Line 6: | ||
* [http://wiki.laptop.org/go/External_Developers Externals Developers] | * [http://wiki.laptop.org/go/External_Developers Externals Developers] | ||
* [http://wiki.laptop.org/go/Sugar_Activity_Tutorial Example for new Sugar application] | * [http://wiki.laptop.org/go/Sugar_Activity_Tutorial Example for new Sugar application] | ||
− | + | * [http://wiki.laptop.org/go/Activity_DBus_API] | |
− | |||
− | * [http://wiki.laptop.org/go/ | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== GCompris without integration == | == GCompris without integration == | ||
− | I just received and OLPC XO. I have been able to run GCompris by | + | I just received and OLPC XO. I have been able to run GCompris by installing it through the Fedora YUM package installer. |
− | Once | + | Once installed, in Sugar, using the Alt+= key, you can run GCompris and it will be displayed in the Sugar area if nothing was started in before. |
I can already report the problems: | I can already report the problems: | ||
Line 36: | Line 24: | ||
Sugar and the XO brings some new requirements we had not previously in GCompris. | Sugar and the XO brings some new requirements we had not previously in GCompris. | ||
− | * Screen size | + | * (DONE) Screen size independence. GCompris should not resize the screen with xvidmode but use all the user screen size. |
* Dynamic screen size change. On the OLPC, it's possible to rotate the screen, we should support that. On PC in window mode, we should similarly be able to resize the window dynamically. | * Dynamic screen size change. On the OLPC, it's possible to rotate the screen, we should support that. On PC in window mode, we should similarly be able to resize the window dynamically. | ||
− | * The two first requirements means that using SVG is a must | + | * The two first requirements means that using SVG is a must. Sadly, even is we use SVG, the gnomecanvas just keep the pixmap created out of them. It means that when resizing (zooming) is requested, it does not re-render the svg but just scale the pixmaps like for png and jpg files. There is some changes to do in the gnomecanvas to let it know it's an svg and re-render it at the requested size properly. |
− | * We should be able to run all activities without the mouse, more | + | * We should be able to run all activities without the mouse, more specifically, with a gamepad. This allow it to be used with the OLPC in tablet mode but also with alternate peripherals or alternate platforms with no mouses. |
− | * Sugar bundle | + | * Sugar bundle interoperability. GCompris activity should be packaged as sugar bundles and can be used on the OLPC. On the other way, sugar activities should be playable under GCompris. |
− | * No more use SDL_Mixer and use gstreamer instead (DONE). | + | * (DONE) No more use SDL_Mixer and use gstreamer instead. |
+ | * (DONE) Added X Properties. Now the gcompris binary accept the params --sugarBundleId and --sugarActivityId. It sets the X Properties accordingly. | ||
+ | * (DONE) DBUS support for the set_active() method. | ||
+ | == Testing the GCompriXO branch == | ||
+ | |||
+ | The GCompriXO branch is the development branch focussed on Sugar integration. It is kept in sync with our trunk (GCompris 8.4). When complete, GCompriXO will be the new trunk (GCompris 8.5). | ||
+ | |||
+ | You can test this branch using: | ||
+ | <code><pre> | ||
+ | svn co svn+ssh://bcoudoin@svn.gnome.org/svn/gcompris/branches/gcomprixo | ||
+ | svn co http://svn.gnome.org/svn/gcompris/branches/gcomprixo | ||
+ | cd gcomprixo | ||
+ | sh autogen.sh --disable-sqlite --enable-dbus && make | ||
+ | </pre></code> | ||
+ | |||
+ | To test one activity: | ||
+ | <code><pre> | ||
+ | cd src/crane-activity/ | ||
+ | ./runit.sh | ||
+ | </pre></code> | ||
+ | |||
+ | To create an independent 'bundle' (not at the sugar standard yet) | ||
+ | <code><pre> | ||
+ | cd src | ||
+ | ./bundleit.sh crane-activity | ||
+ | </pre></code> | ||
+ | |||
+ | You have now a binary tarball crane-activity.tar.bz2 that contains only this activity with the resource it needs. | ||
+ | |||
+ | If you want translations, you can run a make install to have them | ||
+ | installed in /usr/local/share/locale and then in an activity directory | ||
+ | do: | ||
+ | <code><pre> | ||
+ | ln -s /usr/local/share/locale/ . | ||
+ | ./runit.sh (and it's translated) | ||
+ | </pre></code> | ||
+ | |||
+ | Or you can run the bundleit.sh script to get a localized binary tarball. | ||
+ | |||
+ | == What's left to do == | ||
+ | * Need to add the proper links in the resources directory to get the audio files. | ||
+ | * Add support for Sugar's Journal | ||
+ | * Add the auto creation of the activity.info menu file as Sugar requirements. It's easy to create it from our own activity menu. | ||
+ | * Add a wrappers to start GCompris activity properly as Sugar requirements | ||
+ | * add sugar compliant svg icon for each activity | ||
[[Category:Developer]] | [[Category:Developer]] |
Revision as of 11:57, 23 July 2007
Contents
OLPC links
- HIG
- HIG/Activities
- Getting started programming
- Externals Developers
- Example for new Sugar application
- [1]
GCompris without integration
I just received and OLPC XO. I have been able to run GCompris by installing it through the Fedora YUM package installer. Once installed, in Sugar, using the Alt+= key, you can run GCompris and it will be displayed in the Sugar area if nothing was started in before.
I can already report the problems:
- Default GCompris screen size is too small, we can improve the situation by using our 1024x768 setup.
- Texts are displayed too big.
- The background sound takes 30% of the CPU
- In activities with animation, it runs but so slow that it's unusable. We could easily make animations with a bigger step to improve the situation.
Requirements for an XO version
Sugar and the XO brings some new requirements we had not previously in GCompris.
- (DONE) Screen size independence. GCompris should not resize the screen with xvidmode but use all the user screen size.
- Dynamic screen size change. On the OLPC, it's possible to rotate the screen, we should support that. On PC in window mode, we should similarly be able to resize the window dynamically.
- The two first requirements means that using SVG is a must. Sadly, even is we use SVG, the gnomecanvas just keep the pixmap created out of them. It means that when resizing (zooming) is requested, it does not re-render the svg but just scale the pixmaps like for png and jpg files. There is some changes to do in the gnomecanvas to let it know it's an svg and re-render it at the requested size properly.
- We should be able to run all activities without the mouse, more specifically, with a gamepad. This allow it to be used with the OLPC in tablet mode but also with alternate peripherals or alternate platforms with no mouses.
- Sugar bundle interoperability. GCompris activity should be packaged as sugar bundles and can be used on the OLPC. On the other way, sugar activities should be playable under GCompris.
- (DONE) No more use SDL_Mixer and use gstreamer instead.
- (DONE) Added X Properties. Now the gcompris binary accept the params --sugarBundleId and --sugarActivityId. It sets the X Properties accordingly.
- (DONE) DBUS support for the set_active() method.
Testing the GCompriXO branch
The GCompriXO branch is the development branch focussed on Sugar integration. It is kept in sync with our trunk (GCompris 8.4). When complete, GCompriXO will be the new trunk (GCompris 8.5).
You can test this branch using:
svn co svn+ssh://bcoudoin@svn.gnome.org/svn/gcompris/branches/gcomprixo
svn co http://svn.gnome.org/svn/gcompris/branches/gcomprixo
cd gcomprixo
sh autogen.sh --disable-sqlite --enable-dbus && make
To test one activity:
cd src/crane-activity/
./runit.sh
To create an independent 'bundle' (not at the sugar standard yet)
cd src
./bundleit.sh crane-activity
You have now a binary tarball crane-activity.tar.bz2 that contains only this activity with the resource it needs.
If you want translations, you can run a make install to have them installed in /usr/local/share/locale and then in an activity directory do:
ln -s /usr/local/share/locale/ .
./runit.sh (and it's translated)
Or you can run the bundleit.sh script to get a localized binary tarball.
What's left to do
- Need to add the proper links in the resources directory to get the audio files.
- Add support for Sugar's Journal
- Add the auto creation of the activity.info menu file as Sugar requirements. It's easy to create it from our own activity menu.
- Add a wrappers to start GCompris activity properly as Sugar requirements
- add sugar compliant svg icon for each activity