Friday, 25 July 2014

Another report

As I make progress on my project, I learn just as all gain is not monetary not all progress is code.

From the time of my last report (Sorry Myriam since it was more than a week ago), I have not written any "pushable" code i.e. only some code has been changed that serve as markers (like a TODO) for future work or some really minor bugs fixed that I stumbled upon as I use my flavor of Amarok.

Anyway, I was going through the collectionscanner code, trying to understand how it works: it as another process that the main Amarok process communicates with. It is designed to go through files and directories and mark files that are useful to Amarok. Like .mp3 , .ogg , etc. I am thinking to add .lrc to this list. For this I will have to create a class whose instance would represent an lrc file.

After this I will need to add these lyrics to the Amarok database. I still haven't been able to decide should I make this change in the generic core/collections/Collection.cpp class or the core-impl/collections/SqlCollection.cpp class. When this is over, I will just have to save the lyrics as lyrics tag and the LyricsApplet will pick it up.

Wednesday, 9 July 2014

post mid-term report

As I had written in my earlier post my job is two-fold. Now, for the second half of my GSoC project, I have to work on downloading the LRC file.

When I was writing my proposal it appeared that highlighting would be the tougher part compared to fetching .lrc files from webserivces. But if history has taught me anything, it is that proposals rarely ever end up like implementation. I had planned to pirate the LrcShow-X's code. It fetches .lrc files from a number of sites. But after spending a week on trying to understand it code, I am uncertain whether I would be able to reliably pirate even one such provider reliabally. If you know of such a webservice (that provides .lrc files) please comment.

Another way of implementing it would be making Amrok's scripting interface work directly with the .py files of LrcShow-X. It would mean that I will have to enable Amarok's scripting interface to work with python scripts (unless Amarok does not do so already). LRC-ShowX's source has different classes for different webservice engines, each of wich has a superclass "engine.py". Hence, all have a common interface. I would just have to use this.


I have not written any code as yet. Matters are a bit tense. I hope just as the highliting part turned out to be easier than I imagined, this part turns out to be easier as well.