Gaurav's Blog Musings on Programming

Grilo Plugins: ownCloud source

This week concluded weeks 3-4 of my GSoC project on adding ownCloud support to GNOME Music. Carrying on from my previous post, after adding support for ownCloud Music in GOA, I’ve been working on implementing a grilo plugin for the same.

To a task that seemed fairly straightforward with ownCloud Music’s implementation of the Ampache API, it suffered a bit of a roadblock since the app didn’t support the Album Artist ID3 tag (TPE2). This was crucial since the grilo plugin would be used by gnome-music at a later stage which uses the tag quite often.

There seems to be a bit of an ambiguity around the usage of the Album Artist tag. After digging around a bit, Michael Koby’s article on the topic makes it pretty clear. Adding support for the tag in ownCloud music required changing the schema and rewriting a fair bit of the queries. On the frontend of ownCloud’s music app, the albums will now be grouped by Album Artists instead of Track Artists which makes finding albums easier at one place in case they have tracks by different artists. The code for the above changes is being reviewed and can be accessed at GitHub.

Grouping Albums by Album Artist

Moving on, I was excited to write the grilo plugin in LUA. While I didn’t have much experience with the language, it didn’t feel strange at all perhaps because of my familiarity with Python. Kudos to Tyler Neylon’s screencast on working with the C API and the LUA stack in particular, which immensely helped me in writing some wrapper methods in C.

grilo-test-api showing the ownCloud source in action

Shout out to Bastien Nocera and Victor Toso who helped me all along during the development of the plugin and the required wrapper methods :) Next up, working on queries and moving over to the gnome-music side of things!

comments powered by Disqus