Hi,

I just checked in the current status of the gui code. This mail should
explain something, show the roadmap and give some pointers were you
can help. Comments are welcome.

First something non GUI specific: the rc.app suff is gone now. We have
now applications (eventhandler.py). Examples for an application are
the menu, the image viewer, the audio player, mplayer and xine for
video. There can be only _one_ application at a time. It has the focus
and it is visible. If an applications show() itself, the application
above hide(). When it's done, it destroy() to show() the application
below. Popup boxes are always above all applications. An application
can also set the backend for drawing, 'default' is whatever is the
main backend (sdl), mplayer uses bmovl and xine none because you can't
display gui widgets inside xine.

Because of the changes, some plugins are deactivated. There are fours
reasons: 

1. It is broken and needs better integration into the gui code
2. It is broken, needs smaller updates to the new gui code. If you
   like, you can send a patch. If you have questions, ask
3. Similar to 2: some idlebar plugins are deactivated. Since they are
   no longer drawn inside the skin code, the draw() function needs to
   be rewritten. Please send a patch.
4. Maybe it's broken. I don't know, I didn't test all plugins. Please
   test such a plugin and send a patch or let my know if it still
   works. 

I will only reactivate plugins if they don't import osd or skin!

A next step for me is to break the menu. MenuWidget creates pages to
draw on the screen. This should be done inside the listing area
code. Right now, the menu asks about cols and rows. So I will spit
MenuWidget into the handling of the menu and move the drawing/initpage
code into gui.

Speaking of breaking things: while everything is broken, maybe it's a
good time to split the tv part of freevo into two independed modules:
tv showing inside freevo and tv code for the recordserver.

Some people ask about animations. I tested some stuff with the new gui
code. In image viewer, when you press DISPLAY, the osd moves in. This
is way to slow. I tried nice stuff like moving old items in the menu
to the left and let the new items come from the right...it's a
pain. The reason: for some strange reason pygame is the bottleneck.
pygame == sdl == for games. I don't see how. Maybe years ago. Even
creating a surface is slow (it should be only a malloc in C), blitting
surfaces together is too slow to do some nice animations. When you
look at bmovl, you see that it is possible to do fast blitting (the
osd is blitted on every frame in mplayer). 

So we need a new backend, not pygame. Or better, split the backend in
rendering and showing (this is possible with the new gui code). We
could use a fast renderer (imlib2 or gdkpixbuf) and show it with
pygame (or something else). Since I don't have time for all this,
someone else needs to play around with this, I won't. Without a better
backend, there will be no cool animation support! Please contact me if
you want to do this.


What can you do inside Freevo?

o fix some plugins
o create better backends

What can you do outside Freevo?

o add something like bmovl to xine / tvtime



Dischi

-- 
Nothing is ever a total loss; it can always serve as a bad example.



-------------------------------------------------------
This SF.Net email is sponsored by OSTG. Have you noticed the changes on
Linux.com, ITManagersJournal and NewsForge in the past few weeks? Now,
one more big change to announce. We are now OSTG- Open Source Technology
Group. Come see the changes on the new OSTG site. www.ostg.com
_______________________________________________
Freevo-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-devel

Reply via email to