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