Download - Rocco pres-v1
Controlling the Canola2 Media Player on N900 with Zeemote
Romain Coltel, Sean Murphy
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
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
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
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
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
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
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
Issues
Steep learning curve› Python› Enlightenment› Canola› Dbus› ZCP
UI modifications to support remote control interaction
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
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