pycage is currently certified at Master level.

Name: Martin Grimme
Member since: 2004-02-14 09:31:58
Last Login: 2008-01-03 16:25:34

FOAF RDF Share This

Homepage: http://www.pycage.de

Recent blog entries by pycage

Syndication: RSS 2.0

4 Jun 2009 »

MediaBox Media Center 0.96.5 with New Features

After several weeks of development, I have now released version 0.96.5 of MediaBox Media Center. Lots of user feedback helped shape the new version.

Most notably the user interface looks a bit different now as it has been tidied up for a more consistent look & feel and much better performance with reduced memory footprint.

Quick Scrolling and Search

The item lists have a thumbable scrollbar and a index letter display helps you find your way while quick scrolling.

Finding stuff in long lists

While searching for an item with the onscreen-keyboard or a hardware-keyboard, you can skip to the previous and next search results by pressing up or down on the D-pad.

Falling Asleep and Waking Up with Music

If you like to fall asleep with music or want to wake up with music, you will love the new sleep timer. Simply set the time when MediaBox should start or stop playing in the preferences viewer and select the media you want to have played. The sleep timer simulates PLAY and STOP actions so it can be used with virtually any media. For instance, you can have MediaBox wake you up with FM radio on the N800. With this feature, my N800 finally earned a steady place next to my bed.

The new sleep timer

Timed Karaoke Lyrics

Do you like lyrics? MediaBox displays song lyrics in LRC format. LRC lyrics files need to match the file name of the song file, e.g. "Song.mp3" and "Song.lrc".
LRC is a popular file format in China, and you can find lots of lyrics on various lyrics servers. Since LRC files are text files, you can also create them yourself.
I plan on making a LRC editor for MediaBox in the near future, too.

As always, MediaBox is available for N800 and N810 in the maemo-extras repository.
Nokia 770 users can retrieve MediaBox from the SVN repository or manually pull the
deb packages from the Chinook maemo-extras repository server.

A full list of what's new can be found in the release notes.

Syndicated 2009-06-04 18:33:00 (Updated 2009-06-04 18:58:03) from Martin Grimme

19 May 2009 (updated 20 May 2009 at 08:08 UTC) »

Mer plays videos with MediaBox



Another milestone has been reached in the Mer project on its way to eventually replace Maemo on the N8x0 devices. It will be possible to play videos with Mer 0.13. The current SVN version of MediaBox supports Mer and uses the libxine backend for video playback.

After installing libxine and MediaBox SVN version on Mer, you will need to install the D-Bus-Xine service. D-Bus-Xine is a simple D-Bus service for embedding libxine in applications. It was originally written for enabling DVD playback
with MediaBox on PCs.

A version compiled for Mer-ARMEL can be found here. If you want to compile D-Bus-Xine yourself, you can also download its source code.

I haven't built deb packages for D-Bus-Xine yet, so you'll have to manually extract the tarball in the root directory (/) on Mer.

After having started MediaBox, you should enter its preferences view
and set the media backends to Xine for all filetypes that you want to be able play.
However, there is no sound support yet in Mer 0.13, so don't expect too much.

EDIT: see the comments for how to get sound

Syndicated 2009-05-19 20:06:00 (Updated 2009-05-20 07:50:41) from Martin Grimme

6 Mar 2009 »

MediaBox Media Center 0.96.4 released

Hilights of the new MediaBox release:

The overall performance of the user interface has been improved again and the lists now feature transition effects and remember the position where you where standing in the parent folder when you go back. This is especially handy when browsing UPnP/DLNA servers.



The mplayer backend has been optimized and mplayer now plays videos generally a lot smoother than before. Playback of higher resolution videos (e.g. 640 x 480) is now also smoother by automatic downscaling.

Media indexing has been improved and runs faster. And if you don't like indexing of ID tags, you can always browse the filesystem to play your media, of course.



Music can now also be browsed by genre, additional to browsing by artist, by album, and by folder.



MediaBox can now be told to keep the display lit while playing media. Stop playing, and the device may enter powersaving mode again.

If you use the Nokia headset that came with the device, you can now use the headset button to pause/play and skip to the next or previous track. Do this by pushing the button once, twice, or three times, respectively. Do not press the button to quickly because the headset is bad at detecting consecutive actions, though. Half a second between clicks is just right.

Syndicated 2009-03-06 21:46:00 (Updated 2009-03-06 21:48:14) from Martin Grimme

22 Jan 2009 »

Extending MediaBox: Creating a Simple Component

Note: If you're reading this article in a feed aggregator like planet.maemo.org, it might be truncated. Please click the link to the original feed to read the full article. Get your text editor ready because this time I'm showing you the basics of plugin development for MediaBox. Last time, I have explained the component system of MediaBox. If you haven't read this article yet, please do so as

Syndicated 2009-01-22 17:13:00 (Updated 2009-01-22 17:18:38) from Martin Grimme

17 Jan 2009 »

Extending MediaBox: The Component System Explained

I am going to write a bit about extending MediaBox with new plugins. Let's start with the basics of the component system first. I will show you some code examples in a later article.

Since version 0.96 MediaBox uses a component system for extensions. It is essential to understand this system when implementing plugins.

Components in MediaBox are independent objects connected to a message bus, where they can send messages or listen to messages from other components. Every component gets connected to the bus automatically when created. You don't have to take care about this step.

A plugin is a collection of one or more components grouped into a directory. The YouTube plugin, for instance, consists of a YouTube device component and a component for the preferences dialog.

Plugins can also add new messages to the vocabulary of messages that can be sent across the message bus.

Here's a little ASCII-art to summarize this all.

consist of connect to
Plugins -------------> Components ---------------> Message Bus
| | | |
| emit | | listen for |
| | | |
| | | |
| define v v transports |
+------------------> Messages <----------------------+


Let's take a closer look at the message stuff now.
As explained above, the vocabulary of messages that can be sent across the message bus is defined by the plugins. Most of the messages are defined by the "core" plugin (which is not really a plugin but contains many of the core components of MediaBox).

Some messages are of type event. They are used to notify other components about something that has just happened, e.g. that a new UPnP device has been discovered.
Some messages are of type action. They are used by components to trigger actions in other components.
There are also messages of type service call. While events and messages may be handled by any component that listents for these messages, a service call is only sent to one component and not visible to others. The message bus remembers which component can handle a particular service call and will route all subsequent calls for the same service to the same component again.

To sum it up with ASCII-art:

+------> Event
is either of type |
Message -------------------+------> Action
|
+------> Service Call


When a plugin defines a new message, it has to give it a name. The name is all uppercase and consists of a domain name, the message type, and some descriptive name.
The domain name helps to avoid name clashes of messages defined by different plugins. It should be the name of your plugin.
The message type tells programmers about the type of message. It is one of EV for events, ACT for actions, and SVC for service calls.

These are some examples of actual messages defined by components belonging to MediaBox:

  • CORE_EV_APP_IDLE_BEGIN (event: MediaBox is announcing to go idle in order to save battery)
  • CORE_EV_APP_IDLE_END (event: MediaBox is announcing to wake up from idle state)
  • NOTIFY_SVC_SHOW_MESSAGE (service call: show a short message)
  • HWKEY_EV_UP (event: user pressed up on the d-pad)
  • HWKEY_EV_DOWN (event: user pressed down on the d-pad)
  • HWKEY_EV_LEFT (event: user pressed left on the d-pad)
  • HWKEY_EV_RIGHT (event: user pressed right on the d-pad)
  • UI_ACT_SELECT_VIEWER (action: select a viewer)

Some messages take parameters. NOTIFY_SVC_SHOW_MESSAGE, for instance, takes as parameter the text of the message to show. Some service calls even have a return value.

These are the basics of the component system. Next time I will show you how components are integrated in MediaBox, and how to create a simple plugin.

Syndicated 2009-01-17 09:42:00 (Updated 2009-01-17 09:46:47) from Martin Grimme

86 older entries...

 

pycage certified others as follows:

  • pycage certified seb128 as Journeyer
  • pycage certified jamesh as Master
  • pycage certified TazForEver as Apprentice
  • pycage certified herzi as Journeyer
  • pycage certified ensonic as Master

Others have certified pycage as follows:

  • Uraeus certified pycage as Journeyer
  • gicmo certified pycage as Journeyer
  • seb128 certified pycage as Journeyer
  • TazForEver certified pycage as Journeyer
  • herzi certified pycage as Journeyer
  • macmarcel certified pycage as Journeyer
  • araeed156 certified pycage as Journeyer
  • chakie certified pycage as Journeyer
  • hiddenpower certified pycage as Journeyer
  • ensonic certified pycage as Master

[ Certification disabled because you're not logged in. ]

New Advogato Features

FOAF updates: Trust rankings are now exported, making the data available to other users and websites. An external FOAF URI has been added, allowing users to link to an additional FOAF file.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

X
Share this page