Plasma/Plasma Media Center

From KDE Community Wiki
Revision as of 08:49, 8 February 2012 by Shantanu Tushar (talk | contribs) (Add history link)

This page describes the goals for Plasma Media Center (PMC), explains the design choices being made and details the outstanding tasks remaining.

Use Cases

Viewing Media On The Go With a Laptop

Joe is on a train / airplane travelling between two cities. The trip is long enough to watch the latest episode of his favourite T.V. show which he downloaded the night before from his PVR at home. Joe pops open his laptop, clicks on the Desktop Toolbox and selects "Media Center". PMC loads and he selects "Video", which presents a list of videos on his internal hard drive.

Viewing Media At Home, Laptop -> T.V.

Jane is at home and wants to show her dinner guests pictures from the recent weekend trip she went on. Jane plugs her laptop into the living room television, opens the application launcher (Kickoff, Lancelot) and selects "Media Center". PMC starts up and she selects "Photos" which shows various sets of photo albums. After going through the "Weekend Ski Trip" photos, she goes back and selects Videos -> Youtube and loads a Youtube playlist of top 40 music videos to play in the background while they visit.

A PVR Style Experience

Jaqueline sits down on the couch with her husband Jack and they turn on the television and their Plasma Media Center set top box. They grab the remote control and check the videos that they had recorded / downloaded but haven't watched yet. They select an episode of House and another of Fawlty Towers and press "Play".

Media Center for Plasma Active

Efforts are on to make PMC capable of playing media files on Plasma Active.

Design Decisions

Architecture

On a very high level, PMC is composed of Plasma components such as Applets, Dataengines and associated Services

Applets

  • Media Browser

The media browser is an applet which is responsible in showing a UI to the user for browsing through her media items. The browser keeps track of the currently selected Mode in the MediaCenter Control dataengine and changes its backend accordingly.

  • Media Infobar

The media infobar is a simple applet which shows information about the current media to the user.

  • Media Player

This applet uses Phonon QML to play Audio/Video and show Images.

  • Media Welcome

This applet hosts the home welcome screen which is presented to the user when PMC starts up.

Dataengines

  • MediaCenter Control

This is the most important dataengine and behaves like a shared Blackboard where all applets synchronize the current media status.

  • Other dataengines

are not in use currently and are planned to be ported to either the new plugin system or deprecated

Browsing Backends

Another very important component of PMC, browsing backends support PMC to have different sources for media to be used. Backends are plguins so one can, for example, write a plugin to show all images from a image sharing website

  • Local files

This backend collection allows the user to browse her local filesystem for media. It exposes three backends-

    • Local pictures
    • Local music
    • Local videos
  • Metadata

This backend collection uses Plasma Active's metadata model to fetch media from Nepomuk. This should allow us to create groupings based on media tags (such as artist, album etc). Similar to local, this contains three backends-

    • Metadata pictures
    • Metadata music
    • Metadata videos

Containments

This contains Plasma Containment which load the applets

Libs

This has core MediaCenter classes to help in functionality.

Shells

This has the actual PMC shell which loads the containment.

Mockups

Here are three early Mockups by Nuno Pinheiro (with permission). The top/bottom panel idea has been taken from here (higher resolutions of these on svn)

Albums

Navigation within PMC

  • Wiimote (thanks Sebastian for the initial work on this)
  • Keyboard
  • Mouse
  • Touch
  • Remote control

TODO

Support for playlist

Right now users can select a media and play it, however a playlist concept is missing

Accessibility

Make sure that the following input methods work-

  • Keyboard
  • Mouse
  • Touch Gestures (pinch, swipe etc)
  • TV Remote (wiimote etc)

Port dataengines (youtube, flickr etc) to new plugins architecture

hayri?

Support for grouping by tag, artists, album etc in Music Plugin

hayri?

Adding DVD/CD play support

In general add support for removable devices

Documentation

Visualizations for music

Current contributors

Marco Martin - notmart on freenode

Shantanu Tushar - Shaan7 on freenode

Sinny Kumari - ksinny on freenode


Past contributors

Christophe Olinger - binarylooks on freenode, olingerc on gitorious.org

Sebastian - sebas on freenode

Alessandro - alediaferia on freenode

Christopher Blauvelt - cblauvelt on freenode

Lukas Appelhans

Onur-Hayri Bakici

... add your name if you have contributed and its missing

Plasma Media Center IRC Channel on Freenode

  • plasma-mediacenter on irc.freenode.net

Repository

Code is browsable at PMC @ kde websvn

Status Reports

2011 [1] [2] [3] [4]

2010 [5] [6] [7]

2009 [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18]


Find the older design and discussions here /History