Scratchpad:Media Plugin Rewrite

From OpenLP

Jump to: navigation, search

Put here some ideas for rewriting/ extend the media plugin.

Contents

Functionalities

Control elements

Controls at Media Manager

In case of setting a Media as Background, the available controls will apear in the related Controller The Media will not start automatically.

Controls at Controllers (Preview/Live)

The main toolbar will alway stay at the controllers. At loading of media files additionally control elements should be displayed:

Standard Controls

If the Media is a background item this additionally item will be displayed in the main toolbar

Special Controls (depends on the type of Media)

Controls at Service Manager

Controls at Theme Manger

Display elements

Work Flow

At startup the core should provide Services to add Items to the following Elements

The plugins should have Items for the following services

After loading a media in the Media Manager, nothing happening so far After send media to preview or live controller, the related plugin can show appropriate Control items Now the user can do some settings stuff for the media item(s) May the related controller preview list widget could show the media title(s) instead of the clapperboard picture After this the media could be started or moved to live (or maybe to Service Manager or as background for current Theme)

Open Issues

1. For providing Meta Infos of media files it is mostly needed to load a media file and start playing shortly. So there should be an own (hidden) display widget for all backend apis for the Service Manager. (This datas are needed for duration of media file.) May it is a good idea in general, because of when editing the media item in the Service Manager it would possible helpful to have a litte preview. 2. Where the media files should be saved (in case of putting it in a service or Theme)

Notices

1. Future enhancements such as linking songs to audio (backing tracks) and adding a video background to a theme, should be able to hook into the media displays without too much effort. Backing tracks would obviously need a way of pulling in the media controls cleanly. Some of this may determine how much code is in core and how much is in the media plugin.

2. If the media plugin is disabled, OpenLP should still function perfectly well, so what should happen about the items in #1

3. Plugins should not be accessing core classes/methods directly. I.e. we don't want a method in a plugin to just call something like mainwindow.livecontroller.doSomething(). We need a documented proper api. Signals are usually the preferred method for sending data/performing actions, but we also need to consider the occasions when a plugin needs to retrieve data from core.

4. Whether plugins should be adding items to the controller toolbar, or whether these should be provided by core, and the best way of doing whichever option we choose.

5. May in general we could use QGraphicsView and QGraphicsScene with proxyWidgets. So we could easy add more widgets to the display and control the position via z-index. 5.1 With this it would maybe possible to use phonon directly for background videos, because of a phonon widget can give the control to a proxy widget. (unfortunately this doesnt work for vlc) 5.2 with the scale option of a QGraphicsView we could remove the usage of screenshots for the preview screen in the preview controller

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox