Wednesday, August 25, 2010

GSoC: Media and Plugins

Hello World! 
This is my very first blog post (yay!) and now I'd like to share with you guys my results, which I achieved this summer in Google Summer of Code. I had a really great experience and successfully finished my project.
I worked with the application called Plasma MediaCenter (PMC), which is - you guessed it - a media center. However, before I got accepted I already worked on this project and the idea was to provide content, which is not on your computer:)
Under the hood it means to have a DataEngine (which was there) and to provide an interface for plugins that fetch media data (sending search queries) from multimedia content providers such as youtube or flickr. 
Since all this above mentioned program/plugins are written in C++, my contribution in GSoC was to write all this in JavaScript.
Why addons? Because each media provider has its own API implementation and therefore it offers such concept.


However....
In the middle of the project time, we noticed that DataEngines are not really suited well, because search queries should not be stored. Then the idea came up with to make a service out of it.
So now we have a service that binds the plugins dynamically, returns results and offers the plugins a general datastructure.
I wrote a service that can bind the plugins dynamically, returns results and offers the plugins a general datastructure.
The plugins are have the functionality to send requests to the multimedia providers and fill the offered datastructure.

Here are some screenshots:
Service with its loaded addons


Searchresults of s flickr request
Now with that API and addons in JavaScript we can update the addons without recompiling it, and users can easily get updates from GHNS.



Of course all this couldn't be done without the help of my mentor Alessandro Diaferia (alediaferia), who was always engaged and helped me when I had questions or troubles, Aaron Seigo (aseigo), who made DataEngines and Services in JavaScript possible and also for helping me out, when I had questions or troubles, last but not least I want to thank Marco Martin (notmart) for helping out, when I had some rookie kde build problems :)


cheers

3 comments:

  1. Really great job Hayri! I'm glad you achieved all this stuff!! I hope to be back working on PMC full time soon so that we can merge everything in a wonderful piece of software :)

    ReplyDelete
  2. Would you be so kind to mail me your piece of code for query youtube videos? I did someting related and maybe can help or use your dataengines.

    Do you plan to do a more technical introduction or a howto related to what you have done?

    Best regards,
    saLOUt

    ReplyDelete
  3. Hey saLOUt,

    you can get the code via svn.kde.org/home/kde/trunk/playground/base/plasma/MediaCenterComponents/dataengines/javascript for the dataengine and service and


    svn.kde.org/home/kde/trunk/playground/base/plasma/MediaCenterComponents/dataengines/addons for the addons

    you can install the service/dataengine via
    plasmapkg -t dataengine -i [directory of the service/dataengine]

    and the addons you can install via
    plasmapkg -t Plasma/JavascriptAddon -i [path to addon]

    yes, i will also do a technical introduction and a howto to write some plugins.

    bests

    ReplyDelete