Plasma/Plasma Media Center: Difference between revisions

From KDE Community Wiki
(Created page with '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 M...')
 
(Cleanup and remove old information)
Line 18: Line 18:


=== Architecture  ===
=== Architecture  ===
(needs updating, we did not go the Mediacenter widget route)
[http://www.binarylooks.com/upload/PMC_structure.odp Source] (OpenOffice Presentation)
[[Image:PMC architecture v0 1.png|thumb|left]]
<br>
=== Video In A Separate Window  ===
Video will be played in a full screen, top level window with a full screen Plasma::View on top of it as a separate window. This means PMC will require working desktop effects and that the Plasma::View will need a transparent background in these cases rather than a wallpaper.
=== Envisioned Workflow  ===
Mockup: [[Image:Shitty Mockup by binarylooks.png|unfinished ugly mockup]]
another Mockup: http://docs.google.com/drawings/pub?id=1DQqFf303LVZ1iTnuUjQ_GdCcosMsUjwu9PROc8Vxkrc&w=961&h=1104
On PMC startup the user will see a beautiful home applet that has (PMC is meant to be fullscreen):
*Buttons to switch to the following media modes: Pictures, Music, Videos (later: Games, maybe an all Media Mode. For each mode we will see all existing dataengines on this screen
*Possibility to add normal plasmoids, like note apps, web slice,..(maybe we will have a dashboard mode?
*The need for a possibility to load fullscreen plasmoids is under consideration
Here some examples of dataengines that will be accessible from the home applet
*Pictures: Local (includes network), by Nepomuk Tags, by Digikam Albums, Flickr, Picasa...
*Video: Local (includes network), Nepomuk, you tube...
*Music: by artist, album, tags, web services?,..
*Later maybe: web, games (PMC is not really a desktop replacement but an addtion).
Each mode is subdivided in different modes:
<u>'''Pictures'''</u> (here you can do tagging, commenting, rating, basic picture manipulation like rotating. no editing!):
*Picture browsing mode: Grid View, list view, draggable, keyboard navigation, remote controls
*Single Picture browsing mode: This shows your pictures fullscreen and allows flicking through your collections
*Slideshow Mode
<u>'''Video'''</u> (tagging, rating, search imdb.com,...:
*Browsing, adding to playlist
*Playing.(browser hides)
<u>'''Music'''</u>
*Browsing/Playing with playlist. While playing music, browser stays visible
*Visualizations
<br>
Each mode has a top panel in which only controls are visible that make sense.&nbsp;Each mode has a bottom panel which shows information about the currently playing media<br>
Log of IRC Discussion on March 30th is [http://plasma.kde.org/meetings/plasma-mediacenter-irclog-mar-30.txt here.]


=== Mockups  ===
=== Mockups  ===
Line 83: Line 29:
[[Image:Nuno playlist.JPG|303x189px]]  
[[Image:Nuno playlist.JPG|303x189px]]  


=== Navigation within PMC: ===
=== Navigation within PMC  ===


*Wiimote. (thanks sebastian for the initial work on this)<br> * Keyboard<br> * Mouse<br> * Touch<br> * Remote control <br>
*Wiimote (thanks Sebastian for the initial work on this)
*Keyboard
*Mouse
*Touch
*Remote control


<br>'''Status Reports ==='''
== TODO  ==
 
'''2009''' [http://alediaferia.wordpress.com/2009/04/22/smells-like-summer-of-code/] [http://alediaferia.wordpress.com/2009/04/28/adventures-in-mediacenter-land/] [http://alediaferia.wordpress.com/2009/04/28/get-your-cover/] [http://alediaferia.wordpress.com/2009/05/27/plasmatube/] [http://alediaferia.wordpress.com/2009/06/11/browsing-your-medias/] [http://alediaferia.wordpress.com/2009/06/17/rating-your-medias/] [http://alediaferia.wordpress.com/2009/06/24/media-center-quick-update/] [http://alediaferia.wordpress.com/2009/07/11/still-alive/] [http://alediaferia.wordpress.com/2009/08/08/mediacenter-again/] [http://alediaferia.blogspot.com/2009/08/gsoc-ends-mediacenter-continues.html] [http://alediaferia.blogspot.com/2009/09/plug-your-model-in-mediacenter.html]
 
'''2010''' [http://alediaferia.blogspot.com/2010/03/call-for-devs-part-i.html] [http://alediaferia.blogspot.com/2010/04/welcome-to-my-gsoc-student-personal.html] [http://blog.binarylooks.com/2010/05/plasma-media-center-status-report-and-introduction/]
 
<br>


== Shantanu Tushar's GSoC Proposal  ==
=== Support for playlist ===
Right now users can select a media and play it, however a playlist concept is missing


(posted with permission)<br>Name: Shantanu Tushar<br>Freenode IRC Nick Shaan7<br>
=== Accessibility ===
Make sure that the following input methods work-
*Keyboard
*Mouse
*Touch Gestures (pinch, swipe etc)
*TV Remote (wiimote etc)


Proposal Title: Develop Plasma Media Center to make it usable for multimedia devices.
=== Port dataengines (youtube, flickr etc) to new plugins architecture ===
'''hayri?'''


<br>A Media Center plays an important role in a platform which is going to be used on multimedia centric devices. The currently existing Plasma Media Center is having basic set of features and a solid framework for extension, but is not ready for a public release as it misses some important features.
=== Support for grouping by tag, artists, album etc in Music Plugin ===
'''hayri?'''


<br>So, the main goal will be to add these features to the Media Center to make sure that its ready for a public release which people can enjoy. An important thing that will be kept in mind will be to make sure that it is usable when viewed on TVs and from a large distance.
=== Adding DVD/CD play support ===


<br>Use Cases:<br>Shantanu has a laptop which he uses as a multimedia device on the go, or at home. He fires up the Media Center, chooses his favourite movie and enjoys the show. If he gets bored, its easy to just switch to the family pictures he had taken last vacation and view a Slideshow.<br>Mary has a system (notebook, netbook, desktop) connected to a huge wide screen display and uses it as a Media Center. She uses Plasma Media Center to listen to her favourite music and view her vacation photographs at the same time.<br>Mani has a Media Center setup as in the previous example and controls it using a remote control. She doesn't like using too many buttons and wants to do things in minimum number of presses. Its useful to have a keyboard navigation that uses only few buttons.<br>Mamta has Music organized in multiple playlists according to mood, and can select and play whichever playlist she wants to.<br>Ann likes to watch movies at home with her family and uses the Plasma Media Center to play music videos, movies on her Media Center setup. The setup might be a big hall where the distance from the screen might be large, so the interface should be clear from that distance.<br>Expected Workflow-<br>The workflow envisioned for the Media Center consists of number of modes, each provided by a plugin for the Media Browser. As an example, lets consider 3 modes - Pictures, Music, Videos. Each mode will contain a browsing workflow which is further described below-<br>Each mode's browser will have a number of categories which can be used to organize and display the media which are associated with the currently selected mode. For example, Music browser can contain categories such as Artist, Album, Year and so on while Videos can be organized according to their location in the file system, or tags.<br>It is important to note that the browsing workflow will mostly remain the same for all the modes. For example, when modes are changed, only the options for categorization changes, but the categorization behaves in the same manner, irrespective of the mode.<br>By providing navigational controls to switch to currently running modes (say, music in the background), and controls for the currently active mode, we can enable the user a seamless browsing and playing experience. For example, the user can add some Music to the playlist, play them, and then switch to the Pictures mode where she starts a vacation slideshow. Now, lets assume she remembers that there was a video related to the currently displayed Picture, she instantly goes to the Home screen, selects the Video mode and browses to the video. After viewing the video, she can use the navigation controls to quickly switch to the Pictures mode and resume the Slideshow.<br>Further, in many of the cases where Plasma Media Center might be used, there may not be a pointer based input, so it will be very critical to have support for TV style remote controlled input for the browse and play workflow.<br>
=== In general add support for removable devices ===


[[Image:Shan_Mockup_1.jpg|thumb|center|Mockup by Shantanu Tushar]]
=== Documentation ===


<br>Implementation Details:<br>1. Plugin based modes-<br>As mentioned earlier, its planned to initially have three basic modes - Pictures, Music and Video which will be implemented using different plugins.<br>More specifically, the modes will be deriving from ModelPackage for implementation. For the categories, the existing controls in BrowsingWidget will be extended.<br>a. Videos Plugin for Media Browser-<br>The Videos plugin will essentially allow a browse of supported video files. Users will be able to add favorites for easy access.<br>Categorization options - Local Videos, Tags, Online<br>b. Music Plugin for Media Browser-<br>The Music plugin will allow Music organisation using the tags like Artist, Album etc. The user can add one or more media locations to scan for and organize content.<br>Categorization options - Album, Artist, Year, Genre, Year, All Music<br>c. Pictures Plugin and Picture Slideshows-<br>To make sure that there is minimum code duplication, we will be reusing the Plasma Picture Frame applet to display the slideshows. This will be implemented either as a Media Center component, or an applet shared with the Plasma Desktop, depending upon the feedback and suggestions from the developer community.<br>Categorization options - Local Photos, Tags, Online<br>Deliverables - Pictures Mode including Slideshows, Video Mode, Music Mode all with proper categorization<br>Mockups for the modes can be found at http://www.flickr.com/photos/8748559@N04/4478437139/in/set-72157623616440919/<br>2. Support for multiple playlists-<br>The playlist dataengine currently supports multiple playlists. The task remaining is to make sure that the playlist applet uses this information correctly. Additionally, the player will be redesigned so that instead of using its own internal playlist, it will now play media according to the signals emitted by the playlist widget. Saving playlists to the popular M3U format will be supported.<br>Deliverables - Creating new playlists, Saving playlists, Loading playlists<br>3. Keyboard/Remote Control key shortcuts-<br>Keyboard shortcuts will be added using the standard KDE shortcuts system, the Plasma tooltip manager will be used to provide informative tooltips for the UI elements, with graphic tips whenever possible. As mentioned earlier, touch screen devices will be kept in mind while developing.<br>Deliverables - 1. Full navigation and control support without the use of a pointing device<br>2. Keyboard shortcuts support (including multimedia keys) using KDE Shortcuts
=== Visualizations for music ===


== TODO  ==


=== Current Tasks:  ===
== Current contributors ==


(Add in the format - &lt;Job&gt; - &lt;Assignee&gt;<br>
'''Marco Martin''' - notmart on freenode


Mention your IRC Nick at the bottom of the page)
'''Shantanu Tushar''' - Shaan7 on freenode


<br>
'''Sinny Kumari''' - ksinny on freenode


*Support for multiple playlists - '''?'''
*Accessibility - '''?''' 
*Home Applet design (=browser startup model)- '''Chris'''
*Zoom slider for browsing pictures mode - '''Chris'''
*More video dataengines (yout tube,...) - '''hayri'''
*More Music Broswer Dataengines (browse by Artist, Album, etc) - '''hayri?'''
*More Picture Browser dataengines(by tag, nepomuk,...) - '''hayri?'''
*Adding DVD/CD play support - '''?'''
*In general add support for removable devices - '''?'''
*Documentation - '''?'''<br>
*Setting up common development repository - '''?'''
*Wiimote support - '''Sebastian, Alessandro'''
*Port everything to QGesture in order to map different type of inputs to common actions - '''Alessandro, Christopher Blauvelt,anybody interested in this please let me know'''
*Remote control interaction - '''Christopher Blauvelt'''
*Declarative UI integration - '''Christopher Blauvelt, Alessandro'''
*Nepomuk integration - '''Alessandro'''
*Add a way to allow filtering the content of the browser. Maybe disoplay a magnification glass that displays a textbox when clicked - '''?'''
*Add a way to quick jump to a certain letter in the browser - '''?'''
*Different display modes for playlist (no cover, tracknumber on/off,...) - '''?'''
*Visualizations for music - '''?'''
*Spectrum analyzer - '''?'''


<br>
== Past contributors ==


<br> '''Christophe Olinger''' - binarylooks on freenode, olingerc on gitorious.org<br>  
'''Christophe Olinger''' - binarylooks on freenode, olingerc on gitorious.org<br>  


'''Sebastian''' - sebas on freenode  
'''Sebastian''' - sebas on freenode  
Line 153: Line 83:
'''Christopher Blauvelt''' - cblauvelt on freenode  
'''Christopher Blauvelt''' - cblauvelt on freenode  


<br>
'''Lukas Appelhans'''


Plasma Media Center IRC&nbsp;Channel on Freenode<br>
'''Onur-Hayri Bakici'''


plasma-mediacenter on irc.freenode.net<br>
... add your name if you have contributed and its missing


=== Things to look at:  ===
== Plasma Media Center IRC&nbsp;Channel on Freenode ==
*geexbox’s libvalhalla. It might be a great way to populate tags based on filenames.
*how bangarang handles nepomuk tags
*The Nepomuk webextractor framework currently being implemented in GSoC2010 which will provide video metadata for movies and tv shows.


== Bugs  ==
* plasma-mediacenter on irc.freenode.net<br>
* Bottom bar widgets' layout is completely wrong (wait for QML?)
* Startup model should check which plugins exist and remove none exisitng
* On state change via background mode icons,  the browsing model does not change. We need an interface to tell the browser to load a model.
* The hover item for top row items (except fist item) disappears when the mouse is in the 3rd quarter from above
* In picture fullscreen mode, on picture change, artefacts appear
* In picture floating mode, on picture change, artefacts appear


== Repository  ==
== Repository  ==


Code is browsable at [http://websvn.kde.org/trunk/playground/base/plasma/MediaCenterComponents PMC @ kde websvn]
Code is browsable at [http://websvn.kde.org/trunk/playground/base/plasma/MediaCenterComponents PMC @ kde websvn]
=== Status Reports ===
'''2010''' [http://alediaferia.blogspot.com/2010/03/call-for-devs-part-i.html] [http://alediaferia.blogspot.com/2010/04/welcome-to-my-gsoc-student-personal.html] [http://blog.binarylooks.com/2010/05/plasma-media-center-status-report-and-introduction/]
'''2009''' [http://alediaferia.wordpress.com/2009/04/22/smells-like-summer-of-code/] [http://alediaferia.wordpress.com/2009/04/28/adventures-in-mediacenter-land/] [http://alediaferia.wordpress.com/2009/04/28/get-your-cover/] [http://alediaferia.wordpress.com/2009/05/27/plasmatube/] [http://alediaferia.wordpress.com/2009/06/11/browsing-your-medias/] [http://alediaferia.wordpress.com/2009/06/17/rating-your-medias/] [http://alediaferia.wordpress.com/2009/06/24/media-center-quick-update/] [http://alediaferia.wordpress.com/2009/07/11/still-alive/] [http://alediaferia.wordpress.com/2009/08/08/mediacenter-again/] [http://alediaferia.blogspot.com/2009/08/gsoc-ends-mediacenter-continues.html] [http://alediaferia.blogspot.com/2009/09/plug-your-model-in-mediacenter.html]

Revision as of 05:06, 8 February 2012

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".

Design Decisions

Architecture

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

2010 [1] [2] [3]

2009 [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14]