Friday, 4 November 2011

Benefits of a Custom UCI Launcher

In my previous post concerning the way UCIs are implemented in Cowon's mp4 players, I touched upon the potential of the UCI launcher movie (or rather, the shortcomings). I would like to discuss more about what the launcher does and would like to introduce to you what one could do to improve your Cowon experience.

The different default UCIs of the Cowon J3, served to you by the launcher (Image courtesy of Cowon)

As you probably are aware of by now, a launcher.swf file located in \\System\Flash UI\ allows you to load a custom launcher. The launcher loads your UCIs for you and also lets you change between UCIs.

An additional hidden feature is the changing of the wallpaper, which could be misunderstood as being done by the firmware.
The wallpaper choosing menu for the picture UI for the Cowon J3 is shown on the right, marked with a red box.

A few functions are shown as being available via Cowon's sample UCI sources. These functions deal with detecting key inputs (buttons on your player), scroll `TextField`s, set popup `MovieClip`s and all sorts of jazz.
There are however many many undocumented functions available via the launcher which one can only find out by decoding the default launcher.swf which requires quite a few steps.
By writing a custom launcher, the minimal benefit would be that these functionalities would be exposed for new UCIs to make use of. This would increase UCI development speed and allow for less coding and more design.

"Surely though", you're thinking, "those few things aren't worth a blog post?".

Well of course not.

Yes, to the left of this chunk of text, you are seeing the next generation of UCI switching. This demo flash movie is unfortunately not a reality yet and is simply a mockup. However, I hope that it shows you what could be done effectively.

There are a total of 7 transition effects on display of which about 2 are repeats. This is because the moving left/right up/down would depend on the 'level' of the UCI. (ie. mainmenu UCIs would be of a 'higher' level and would move left/up.)

Hopefully, this small clip has got you excited. "What else? Tell me more!" I hear you shout.

Apart from giving you a smoother experience between UCIs, a modified launcher can also provide some shared elements such as a shared header bar for the player status, a shared notification system, a shared settings interface and more.
You would also get a significant boost in UCI loading. This is because UCIs coded with the launcher's framework would be able to skip the time-consuming steps of checking states.

In the perspective of a developer, you would have a vast array of simple methods to use without worry of performance loss. You would also receive more tools as the launcher receives added features. Widget sets could be shared across different UCIs as well. Simply put, you can do anything more easily and quickly.
What does this mean for users? More UCIs, More Choice, a Better Experience.

Now... getting that launcher is something we'd want to get onto doing right?

If you wish to take a look at the source for the mockup movie, download it here.