Rockbox.org home
release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide



Rockbox mail archive

Subject: UI modelling with petri nets
From: tr16_at_mail.inf.tu-dresden.de
Date: 2002-06-29


hi,

it should be easier to configure and select UI features so anyone can
build or even setup his own rockbox. It should be as easy as creating
skins or themes. There are a lot of people who have the time and skill to
build these things but cannot produce the necessary code. On the other hand
developers usually don't have the time to wait for consensus on which
button should do what etc. Simple macros aren't powerful enough. So I
would suggest to use Petri nets (even simple classes should be sufficient)
to model the UI behaviour. Features like mp3 playing or showing text that
scrolls could be written as small components with a message(token)-passing
interface.
This would result in the following disadvantages:
-you need to be able to use petri nets
-the net class must be powerful enough to model the required features
-more development needed in the beginning
advantages:
-petri nets are easier to use than one might think, especially the less
 powerful classes, common sense should be enouhg
-they have a graphical representation
-can be easily simulated and even checked for deadlocks (depends on the
 class and the available tools) and other properties
-easy to read and modify for theme designers, for example button presses
 and mp3-EOF result in events which can then be "routed" to the apropiate
 actions
-they fit well to this kind of task (concurrent execution, "built in"
 synchronization, ... the components would mostly run in dedicated threads
 or are short enough to be run one after the other)
-no real need to compile them, the net's data structure could be created
 with a tool and attached to a pre-compiled binary, thus removing the
 (as it seems) trouble of rebuilding
-easier UI modeling for the theme designers -> more theme designers ->
 better and more rockbox flavours -> :)

I won't have the time to produce a detailed design description or even code
before mid July (I think it's better afterwards). But it shouldn't require
too much effort (normal net class simulators are fairly small, merging it
with the existing rockbox code could take some time, probably more time
needed for the tools). I'm working on a similar project, coloured petri nets
for perl (perlcpn.sourceforge.net). P/T nets and some extensions (time,...?)
could be powerful enough.

Please tell me what you think about this idea.

Torvald



Page was last modified "Jan 10 2012" The Rockbox Crew
aaa