Copy and pasting the mediacontroller.py description here, since it takes some 
finding...

The implementation of a Media Manager
The idea is to separate the media related implementation into the plugin files
and unify the access from other parts of code
The media manager adds an own class for every type of backend
Currently these are QtWebkit, Phonon and planed Vlc.
On the other hand currently the previewController display only use phonon for 
media output.
So I would suggest to rename the maindisplay.py to display.py and modify the 
code,
so that the display class can be used for the maindisplay as well as for the 
previewController display.

Workflow idea:
- OpenLP is starting
- Live display and preview display are call setup
- Live display and preview display send signal with a pointer to their own to 
the media controller ('media_set_display')
- media controller register all available displays and create for each display 
all types of media backends (see setDisplay)
- in the OpenLP configuration dialog the user no longe will decide between 
using Webkit OR Phonon.
- instead of this there is a list widget with all available backends and the 
user can switch off/on the backends
and change the priority order
(this is necessary, because of not all backends can play all media files and 
text over video is currently only with QtWebkit possible)
- later on, if the user add a new media service item the signal ('media_video') 
will be send
- as a result of this the media manager checks which controller is needed for 
this filetyp
and assign the related backend controller to the right display
- Now all related media stuff (play, pause, ...) will be routed to the related 
backend controller and there processed
- if one or more medias loaded a generic 200ms Timer will be started 
peridiodically to refresh the UI
- Signal ('media_reset') will close the related video and disconnect the 
backend from the display

Advantages:
- clean and easy interface from other parts of code (slidecontroller and 
display classes)
- more and better configuration possibilities inside the special backend 
controllers
- same handling for preview and live display (or later on other additionally 
displays with their slide controllers)

Disadvantages:
- because of there will be display widgets created outside of the 
maindisplay.py file it is more complicate to read the code
- some more signals are send arround the system

Notices:
- the flash support uses the flash plugin from Mozilla. So there is a js-check 
that this plugin is installed.
- maybe there would be the installed flashplugin of the IE possible could also 
used, but I'm not sure about this?
- I would suggest to not hide the main toolbar in case of media, instead of 
this the media toolbar should be
visible as second toolbar (so the screen can be blanked also during a running 
video, ...)
-- 
https://code.launchpad.net/~crichter/openlp/media/+merge/58287
Your team OpenLP Core is subscribed to branch lp:openlp.

_______________________________________________
Mailing list: https://launchpad.net/~openlp-core
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp

Reply via email to