This document summarizes work done to control the Canola2 media player on the Nokia N900 smartphone using a Zeemote remote control. Key points include:
- A driver was developed for the Zeemote remote that understands its protocol and can send events over DBus to the Canola2 media player.
- Canola2 was modified to show the currently selected item and respond to remote control events for basic menu navigation.
- More work is needed to enable full media playback control like play, pause, skip tracks.
- The next steps are to finish media control functionality and demonstrate the solution to Nokia and possibly Zeemote.
2. Objective & Motivation Objective: To develop solution for controlling media player with Zeemote Motivation: Zeemote mainly used for games so far Interesting to explore how it can be used to control media player
3. N900 – why? Zeemote experience available Jim had experimented with this and Zeemote Open Source media player available Canola2 TV out interface available Good for demonstration! Maemo more open than Android …although this point was not so significant
4. What is Canola2? Media player largely developed by Nokia Flexible, extensible Can handle different media types Good support for plugins Open source We can modify as necessary To implement Zeemote control functions Available as extra for Maemo devices Not shipped with OS by default
5. Canola2 - History Canola Nokia project to support touch screen control of media player Canola2 Rewrite based on new windowing system Faster, more lightweight, more flexible Canola is character from Irish mythology Inventor of the harp
6. Canola2 - UI Designed to support touch/mouse control Zeemote control somewhat different Specifically need to know current selected/focus item Requires small modifications to Canola2 visuals Designed based on Enlightenment window system Lightweight, powerful, pretty window system Not very widely used Used in Free STBs in France
7. Canola2 – implementation Written entirely in Python Built on python wrappers around Enlightenment Foundation Library (EFL) Python v2.5 Sophisticated class hierarchy Final application comprises of small modifications to parent classes Can be difficult to find where functionality exists in class hierarchy
8. Canola2 - internals Typical windows application Events, callback architecture Mouse and keyboard events supported Dbus events also supported Callback for activity on dbus Menu system for navigating around content Control mechanism for controlling external players Gstreamer, mplayer
9. Issues Steep learning curve Python Enlightenment Canola Dbus ZCP UI modifications to support remote control interaction
10. Status Developed python ‘driver’ for Zeemote Understands much of ZCP Developed standalone process which parses ZCP and sends events to Canola Over DBus Modified Canola to show current focus Modified Canola to respond to events Menu navigation possible More work needed on media control
11. Next steps Make modifications to enable full media player control Next week Demo to Nokia (?) Discuss with Zeemote(?) Can give python ZCP implementation to them Prob BSD style license Will probably put demo on youtube