Difference between revisions of "Todo for OLPC"

From GCompris
Jump to: navigation, search
(What's left to do)
 
(25 intermediate revisions by 7 users not shown)
Line 1: Line 1:
 
[[Image:Gcompris on olpc.jpg|thumb|200 px|GCompris running on the OLPC XO]]
 
[[Image:Gcompris on olpc.jpg|thumb|200 px|GCompris running on the OLPC XO]]
== OLPC links ==
+
== Links @OLPC.org ==
* [http://wiki.laptop.org/go/OLPC_Human_Interface_Guidelines HIG]
+
* [http://wiki.sugarlabs.org/go/Human_Interface_Guidelines Human-Interface-Guidelines]
* [http://wiki.laptop.org/go/OLPC_Human_Interface_Guidelines/Activities HIG/Activities]
+
* [http://wiki.sugarlabs.org/go/Human_Interface_Guidelines/Activities HIG/Activities]
 
* [http://wiki.laptop.org/go/Getting_started_programming Getting started programming]
 
* [http://wiki.laptop.org/go/Getting_started_programming Getting started programming]
 
* [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 Activity DBus API]
  
== Abiword example ==
+
==How do I report a bug?==
* [http://wiki.laptop.org/go/AbiWord AbiWord on OLPC]
 
* a AbiWord GtkWidget with the abiword canvas is ine the libabiword, with python bindings. This widget takes it's interaction with GObjetc properties modifications. That make possibles easy python bindings, and integration qith custom interface.
 
  
== GCompris Widget possibility ==
+
We are very interested in bug reports. Please report bugs by sending email to "bruno.coudoin@free.fr". (Developers, for bugs related to the OLPC integration, please file bugs in the OLPC [http://dev.laptop.org/ tracking system].)
* We can do the same as AbiWord. a GCWidget with the main canvas (not the bar) can gets the keyboard/validate/replay/end/level/root_menu interation from gobject property.
 
* We need to make known some stuff like gcompris_bar_hide, gcompris_bar_set. We can do that emiting signals.
 
* that makes python bindings easy, so main interface (and bar) can be written in python for sugar integration; like abiword.
 
* properties can use g_object_property too. We need to choose wich property are Widget side, wich are main side.
 
  
== GCompris in Python ==
+
We are also interested in your suggestions for enhancements in GCompris. Community input and collaboration is vital to the success of OLPC, it's the same for GCompris. Thank you for your participation.
We can alternatively make a python version of GCompris main/bar/board for launch our python boards. That means integrate for OLPC only python boards.
 
  
 
== GCompris without integration ==
 
== GCompris without integration ==
  
I just received and OLPC XO. I have been able to run GCompris by intalling it through the Fedora YUM package installer.
+
I just received and OLPC XO. I have been able to run GCompris by installing it through the Fedora YUM package installer.
Once intalled, 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.
+
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 30:
 
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 independance. GCompris should not resize the screen but use all the user screen size.
+
* (DONE) Sugar requires that each activities must be in a single bundle. GCompris code base has to be deeply re-aranged so that each activities are in their own directory.
* 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.
+
* (DONE) Screen size independence. GCompris should not resize the screen with xvidmode but use all the user screen size.
* The two first requirements means that using SVG is a must
+
* (DONE) Sugar bundle interoperability. GCompris activity should be packaged as sugar bundles and can be used on the OLPC.
* We should be able to run all activities without the mouse, more specificaly, 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.
+
* (DONE) No more use SDL_Mixer and use gstreamer instead.
* Sugar bundle interoperabiliy. 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) 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 (needs testing).
 +
 
 +
* (DONE in gcomprixogoo branch) 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.
 +
* (DONE in gcomprisxogoo branch) The two first requirements mean that using SVG is a must. Sadly, even if we use SVG, the gnomecanvas just keeps the pixmap created out of them. It means that when resizing (zooming) is requested, it does not re-render the svg, but just scales the pixmaps like for png and jpg files. There are some changes yet to make in the gnomecanvas to let it know that it's an svg and re-render it at the requested size properly. SOLUTION: in gcomprisxogoo we have an SVG item and by default it scales pixmaps up much better than the gnomecanvas.
 +
* We should be able to run all activities without the mouse, more specifically, with a gamepad. This allows it to be used with the OLPC in tablet mode, but also with alternate peripherals or alternate platforms without a mouse.
 +
 
 +
== Testing the GCompriXO branch ==
 +
 
 +
The GCompriXO branch is the development branch focussed on Sugar integration. It is not keep in sync with our trunk (GCompris 8.4). There is another branch named gcomprixogoo that when complete, will be the new trunk (GCompris 8.5). The later branch included the splitting activity work of the gcomprixo branch and the switch from the gnomecanvas to the goocanvas.
 +
 
 +
You can test this branch using:
 +
<code><pre>
 +
git clone git://git.gnome.org/gcompris
 +
cd gcompris
 +
git checkout -b gcomprixo origin/gcomprixo
 +
sh autogen.sh --disable-sqlite --enable-dbus && make
 +
</pre></code>
 +
 
 +
To test one activity:
 +
<code><pre>
 +
cd src
 +
./runit.sh crane-activity
 +
</pre></code>
 +
 
 +
To create a Sugar bundle with an activity and a locale (for example here Brasilian Portuguese):
 +
<code><pre>
 +
cd src
 +
./bundleit.sh crane-activity pt_BR
 +
</pre></code>
 +
 
 +
You have now a binary tarball crane-activity.tar.bz2 that contains only this activity with the resource it needs.
 +
 
 +
== Installing the bundle on the XO ==
 +
 
 +
There is a script for that that comes with sugar but it did not worked for me.
 +
To install the GCompris bundle, transfer the .xo file on the XO. Then on the XO run:
 +
<code><pre>
 +
cd /usr/share/activities
 +
unzip /home/olpc/crane-activity.xo
 +
</pre></code>
 +
 
 +
Then restart sugar, the GCompris icon will appear in sugar at the bottom of the screen.
 +
 
 +
== Binary build (English) ==
 +
 
 +
If you just want to test a GCompris activity on the xo, you [http://gcompris.net/incoming/xo/ can download a pre-build version] in English and Spanish.
 +
 
 +
== What's left to do ==
 +
* [DONE] Need to add the proper links in the resources directory to get the audio files.
 +
* Add support for Sugar's Journal.
 +
* [DONE] Add the auto creation of the activity.info menu file as Sugar requirements. It's easy to create it from our own activity menu.
 +
* [DONE] Add a wrappers to start GCompris activity properly as Sugar requirements. By the way, I never saw the GCompris dbus code working, there is probably a little issue there.
 +
* [DONE] Add the locale translation with the GCompris bundle.
 +
* Add sugar compliant svg icon for each activity. See [[Icons_Sugarisation]].
  
 
[[Category:Developer]]
 
[[Category:Developer]]
 +
[[Category:English]]

Latest revision as of 12:21, 27 January 2015

GCompris running on the OLPC XO

Links @OLPC.org

How do I report a bug?

We are very interested in bug reports. Please report bugs by sending email to "bruno.coudoin@free.fr". (Developers, for bugs related to the OLPC integration, please file bugs in the OLPC tracking system.)

We are also interested in your suggestions for enhancements in GCompris. Community input and collaboration is vital to the success of OLPC, it's the same for GCompris. Thank you for your participation.

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) Sugar requires that each activities must be in a single bundle. GCompris code base has to be deeply re-aranged so that each activities are in their own directory.
  • (DONE) Screen size independence. GCompris should not resize the screen with xvidmode but use all the user screen size.
  • (DONE) Sugar bundle interoperability. GCompris activity should be packaged as sugar bundles and can be used on the OLPC.
  • (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 (needs testing).
  • (DONE in gcomprixogoo branch) 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.
  • (DONE in gcomprisxogoo branch) The two first requirements mean that using SVG is a must. Sadly, even if we use SVG, the gnomecanvas just keeps the pixmap created out of them. It means that when resizing (zooming) is requested, it does not re-render the svg, but just scales the pixmaps like for png and jpg files. There are some changes yet to make in the gnomecanvas to let it know that it's an svg and re-render it at the requested size properly. SOLUTION: in gcomprisxogoo we have an SVG item and by default it scales pixmaps up much better than the gnomecanvas.
  • We should be able to run all activities without the mouse, more specifically, with a gamepad. This allows it to be used with the OLPC in tablet mode, but also with alternate peripherals or alternate platforms without a mouse.

Testing the GCompriXO branch

The GCompriXO branch is the development branch focussed on Sugar integration. It is not keep in sync with our trunk (GCompris 8.4). There is another branch named gcomprixogoo that when complete, will be the new trunk (GCompris 8.5). The later branch included the splitting activity work of the gcomprixo branch and the switch from the gnomecanvas to the goocanvas.

You can test this branch using:

git clone git://git.gnome.org/gcompris
cd gcompris
git checkout -b gcomprixo origin/gcomprixo
sh autogen.sh --disable-sqlite --enable-dbus && make

To test one activity:

cd src
./runit.sh crane-activity

To create a Sugar bundle with an activity and a locale (for example here Brasilian Portuguese):

cd src
./bundleit.sh crane-activity pt_BR

You have now a binary tarball crane-activity.tar.bz2 that contains only this activity with the resource it needs.

Installing the bundle on the XO

There is a script for that that comes with sugar but it did not worked for me. To install the GCompris bundle, transfer the .xo file on the XO. Then on the XO run:

cd /usr/share/activities
unzip /home/olpc/crane-activity.xo

Then restart sugar, the GCompris icon will appear in sugar at the bottom of the screen.

Binary build (English)

If you just want to test a GCompris activity on the xo, you can download a pre-build version in English and Spanish.

What's left to do

  • [DONE] Need to add the proper links in the resources directory to get the audio files.
  • Add support for Sugar's Journal.
  • [DONE] Add the auto creation of the activity.info menu file as Sugar requirements. It's easy to create it from our own activity menu.
  • [DONE] Add a wrappers to start GCompris activity properly as Sugar requirements. By the way, I never saw the GCompris dbus code working, there is probably a little issue there.
  • [DONE] Add the locale translation with the GCompris bundle.
  • Add sugar compliant svg icon for each activity. See Icons_Sugarisation.