Few weeks ago we started an interesting collaboration demo project with Cybercom Sweden. They had a cool IVI demo when it comes to functionality, but it was missing a modern GUI. The old UI was Qt Widget based "Test UI" for testing functionality of a blueGO API, so it wasn't originally even designed for public demonstrations. Here is a screenshot of the old UI's Connect page to get a picture where we started:
We started the new UI from scratch, also meaning that we didn't have any UI design documents at that time and the spec was: follow the existing functionality from the old demo and focus on the graphics later. This meant that we didn't have any idea for example whether a button should display a text only, icon only or a text and icon both. In practice we didn't fine tune QML components too much beforehand, so what we did was a simple button which had a text and different behavior when pressing and releasing the button. Naturally it was emitting a signal on clicked. We used this approach for all custom QML elements we made. So, the interfaces for components were quite ok from the beginning and later we just added new a functionality there without breaking the old functionality.
As some of you might have noticed, a video called "Nokia N900 + MeeGo 1.1.80 + XBMC" was posted to the youtube in December 2010. At that time the XBMC was demonstrated only on N900 and also the video playback functionality was missing at that time. Some more work was done with the packaging and the compile process which is now fixed so that it is available for all the MeeGo 1.2 architectures, i.e., ia32, armv7el and armv7hl (hardfloat port).
In December 2010 there was no instructions published as the setup was very experimental and the compile had errors. However, now after a bit of more tuning and testing the installation of XBMC is quite stable so we felt that we should write the instructions for all the MeeGo community people how they could use this very nice HTPC application on their own devices running MeeGo.
NOTE:Before continuing it is recommended to read through the whole blog post before starting to download any MeeGo images.
The Linux Foundation announced Cybercom Group as its newest member. We recognize the benefits of working with Linux and the open source software community which were driving factors in joining the Linux Foundation. We will be contributing to MeeGo ARM work and IVI UX reference designs, just to mention a few.
The Linux Foundation is a nonprofit organization, which is dedicated to accelerate the growth of Linux and it was founded in 2007.
To read the official Linux Foundation’s announcement, please visit this link.
More about the Linux Foundation can be found from here.
In this article, we will introduce the RdUX™. The focus of the article is on the RdUX™ software: what it does and what technologies we used for building it. RdUX™ is developed and owned by the RdUX alliance. In RdUX, the content is the king – not applications or icons. RdUX™ is built with the latest software and hardware solutions; Linux®, Qt (Graphics View, Declarative UI, WebKit), multi-touch 7” display and Intel® Atom™ Processor. Couple of days ago we posted the first preview video of our RdUX™ software running on proto units. We will add more videos later where we introduce the actual device also.
Although the original idea was born several months ago and first pre-studies were ready in October 2009, the software project for RdUX™ was started six weeks ago. You read it right. Six weeks! If a project can be agile, this truly was agile. Well, of course we have still lots of work to do after the 2010 Mobile World Congress where the first public appearance will be. If you happen to be there, please come to check it out by yourself. You can find us from stand 1E19.
RdUX™ software is based on the Moblin Core from Moblin Netbook 2.1. Since we are using Intel® Atom™, the graphics stack uses Intel Embedded Graphics Driver, IEGD. And as you can imagine, with this CPU performance, GPU acceleration for graphics is a must. These were the main reasons why we selected Qt X11 for our implementation and not Qt Embedded Framework, for example. As it happened, X11 Qt and IEGD turned out be quite challenging combination. We will cover those challenges in upcoming blog writings.
The desktop, or the main canvas as we call it, is a boundless area that holds the device content (you can call them applications if you want to). The main canvas uses Qt Animation Framework & QStateMachine for zoom, panning and re-ordering transitions. Furthermore, the main canvas uses QLocalSocket and QSharedMemory for communication with the applications.
Since RdUX™ has no keyboard (actually, it has no keys or buttons at all!) the user interaction is based on touch screen gestures. RdUX™ has 7″ multi-touch display but since our proto units have only dual-touch displays, we currently use gestures with one or two fingers. The touch gestures are detected using QGesture and QGestureRecognizer. The gestures we have implemented so far:
one-finger pan
one-finger sweeps
one-finger tap for opening content in fullscreen
two-finger pinch zoom
two-finger bird’s eye view
two-finger hold for closing content from the main canvas
We have still work to do with the gestures, but they do work surprisingly well already now.
Although we had a very tight schedule, we wanted to give a try to Qt Declarative UI aka. QML. Despite of it’s potential, it’s in release candidate state, and it’s always risky business to use such a new technology in your project. As expected, we had some minor problems with Declarative UI, but as in overall, the developers were quite happy with it. We definitely see that Web and Hybrid applications have lots of potential in the future.
Perhaps the most annoying problem was flickering; when you launch an application, it flashes rapidly with white screen before showing its own content. With raster paint system, there was no flickering problem. Unfortunately, OpenGL is a must because of the device performance. The root cause for flickering is still unknown. Furthermore, IEGD is missing CombinedDepthStencil OpenGL extension so regular are not drawn in OpenGL Frame Buffer.
What we did with QML was Photo & Media Galleries. This was the first article of RdUX. We gave QML a try with virtual keyboard also but unfortunately we faced some strange QML problems that we were not able to solve within this time frame. Therefore we were forced to fall back more traditional design of virtual keyboard.
We will add there new articles of more detailed information of some techinques that we used to make all this possible. If you have any questions related on Qt development in Cybercom or technical questions, please contact with following people:
Business contact: Pertti Hannelin, pertti.hannelin(at)cybercom.com
Technical contact: Ville Marjusaari, ville.marjusaari(at)cybercom.com
hey guys ... this version is superb.. and amazing.. how to get this version to my N900.. can u plz respond to this comment.. plzzzzzzzzzzzzz.. or can u plz mail if any updates abt this version...
hey guys ... this version is superb.. and amazing.. how to get this version to my N900.. can u plz respond to this comment.. plzzzzzzzzzzzzz.. or can u plz mail if any updates abt this version...
Ecomnoies are in dire straits, but I can count on this!
Yup, that shloud defo do the trick!