Disko Forum logo Login  |  Register  |  Lost Password
<< Start < Prev 1 2 Next > End >>
Pls elaborate the processing flow of MMSEvent*!

Guido
Admin
Posts: 54
graphgraph

Re:Pls elaborate MMSSwitcher role! 5 Years, 11 Months ago  
Hi @all,

attached you will find the class diagramm of alanz.

@alanz: your file is too large to display directly in the post.

regards

bere
File Attachment:
File Name: UmlModel4EventProcessing.gz
File Size: 213816
 
 
Last Edit: 2008/11/12 12:08 By Guido.
  The administrator has disabled public write access.
Pls elaborate the processing flow of MMSEvent*!

Stefan
Admin
Posts: 91
graph

Re:Pls elaborate MMSSwitcher role! 5 Years, 11 Months ago  
Hi Alan,

the DirectFB input events and the disko events are 2 different things. The DFB events are handled by the MMSInput library, and are directly sent and processed by the gui.

The MMSEvents are used as a central communication framework within disko. This is mainly used for the inter-plugins communications.

A MMSEvent is not more than a textmessage with a heading and attached data. The attached data are one ore more key/value pairs. The receiver of the message must know the structure of the data, to process the the event correctly.

If a Plugin has subscribed one ore more Events using the EventSignup, the onEvent() method is called for every single message that is delivered by the EventDispatcher.

The EventSignup is very basic. To subsribe to one or more events, just specify the heading of the event to subscibe. To make it a bit more comfortable, it is also possible to specify wildcards.(e.g. "HAL.*" for all messages sent from the HAL backend plugin) The EventSignup is processed and stored by the EventSignupManager.

If an event is created and sent by a plugin, the EventDispatcher is used to determine the receiver plugin(s) using the EventSignupManager. If there is more than one receiver plugin, the message is being delivered in parallel to the different plugins.

The idea behind all this, was to provide similar services to different plugins. Best example is our HAL plugin, that is sending events if a new CD or DVD or USB Stick is inserted or ejected. There are 3 Morphine.TV Plugins that benefit from this plugin (AudioCD, DVD and Picture). A backend Plugin that provides an OSD Keyboard could be triggered by an event, to show the keyboard, and then sent the entered text back to the caller. There you have a central place where you can change the osd keyboard to the specific demand of an application without having to change a single line within an existing plugin.

I hope that brings a little light to the concepts.

have fun
Stefan
 
 
Last Edit: 2008/11/16 20:00 By Stefan.
  The administrator has disabled public write access.
<< Start < Prev 1 2 Next > End >>
Powered by FireBoard
get the latest posts directly to your desktop