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


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s