← Back to team overview

openlp-core team mailing list archive

Re: [Merge] lp:~crichter/openlp/media into lp:openlp

 

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.


References