#14: SoK with PMC – 1

Welcome my readers. This one’s going to be about PMC so you can skip right away if you are not interested in the technicalities.

PMC is a ‘Media Center’ in essence. A one stop solution for music,pictures and videos. It was recently ported to Qt5/KF5. It’s based on Model View Controller Concept and its UI is in QML with the complete backend in C++ and Qt.

My aim is to ‘Improve it’s Architecture’ . A lot of functionality and code is lying around in different branches that needs to be pushed to master. So yeah, it’s my job to make it all fall together nice and crisp.

PMC is a shell. For the sake of simplicity, in the simplest terms, a shell is what the user uses to interact with a program. Your desktop is a shell for example. Now to know about what media you have on your local hard drive, PMC relies on baloo and also does a recursive file system search. This way when you open up PMC, you get a nicely laid out UI with your media contents it has fetched metadata of. Also, among other things is LastFm. PMC uses the lastfm API to get relevant info primarily images in this case and feeds it to PMC. Images such as artist or album art. With the previous architecture, this lastfm functionality was inside the core of PMC. In simple words you could say that, PMC had a function that would search for images. Removing this would mean , in a way crippling PMC. Although it’s pretty logical that such functionality is not a necessity. Likewise baloo. Suppose you have a 1TB Hard Disk filled to 500GB say, running at 5400RPM. Now imagine how much time would baloo take. For this we simply turned it off to avoid the nuisance. The reason being that baloo is implemented as a plugin. Implementing something as a plugin keeps the core independent of it. At run time, the core may need data from the plugin, in the  case of which it could simply load the plugin at run time. If not needed, it would not load the plugin. Simple 🙂

The first of my many tasks was to do this. Make it possible for PMC to load lastfm as a plugin. In this I learned about Pimpl idiom in C++. About Qt Signals and Slots. Precisely that we could connect a signal to another signal. Pretty neat 😀 . And a lot of other things that I don’t remember.

My mentor Ashish Bansal and the project’s maintainer Bhushan Shah have been a huge help.

That’s all for now.

Thanks for Reading.

#13 : SoK with Plasma Media Center – An Introduction

Hello people . Back with another post. This time about Season of KDE . For those who don’t know, SoK is a Google Summer of Code SpinOff in which students work on a project for an open source organization directly under the guidance of a seaoned mentor.

I got selected for my proposed idea of improving the Plasma Media Center Architecture. To be precise, it’s not just one task but a collection of tasks that I’ll be doing through my SoK period. SoK participants are required to blog about what they do, so I’ll be telling about it here often.

Apart from it, nothing new. Life’s usual. Have my Minors 2 right around and as usual I have no idea about anything. Got to finish close to 10 chapters for 2 subjects and finish one massive assignment before Monday, but here I am, your blogger. *slow claps please*

So this was the updates. More posts will follow. Also, I’ll be blogging thoroughly about SoK so stay tuned to catch up.

Thanks for Reading.