Re: [Rhythmbox-devel] Fwd: Beginning to contribute to Rhythmbox.

Hi Ankit,

I recently started developing Rhythmbox plugins too, so hopefully you'll find this of some use. (To other developers, if the following is offensively incomplete, I apologise sincerely.)

First up, there's a guide for writing Rhythmbox plugins on the Gnome website. It covers the basics of how to put together a plugin and make it do something (essentially, it boils down to having a plugin description file which references a named Python file containing your plugin code - from there, anywhere!). There's also a Python plugin example page, but I seem to recall this being a little out of date. It's probably worth a look anyway though.

The latest source code for Rhythmbox is always a handy reference. If you're planning on adding UI elements, you'll need to have a look at 'rhythmbox-ui.xml', in the 'data/ui' subdirectory. It also comes with the source code for all of the default plugins that Rhythmbox is shipped with. In particular, there's a fully working Python plugin example in the 'sample-plugins/sample-python' subdirectory which you might find a good starting point. Similarly, my first plugin, which shamelessly rips off its old Rhythmbox 0.13 counterpart, is probably a good minimal working example of a plugin with some UI.

The Rhythmbox Python API reference is pretty essential, and it doesn't seem to exist anywhere else on the web. If you're worried about the version numbering being out of date (that link is for Rhythmbox 2.97), or just want to generate your own, then check out John Jetmore's blog post here. The API reference is where you'll find functions relating to GStreamer, etc., although if you're looking for more detailed information then the GStreamer page itself is probably your best bet - the Python bindings just allow you to hook into the framework (and, then, only some parts of the framework - hopefully, what you're looking for will be exposed).

The third party Rhythmbox plugins are worth checking out too, especially if you want to see how a particular API is used in practice. The third party plugins page lists plugins for both Rhythmbox 2.9+ and the older 0.13 variety, so be careful if you're planning on copying code to teach yourself - the older code might look ok, but it's often subtly different from the new API, and you might find yourself scratching your head and wondering why something so basic just won't work, for hours and hours and hours...

Finally, if you're stuck, the other plugin developers are great to talk to. Most of us don't bite, and can often point in the direction of something we might have done in the course of writing one of our plugins, that you might find useful in writing yours.

That's about it, I think. It might seem like a lot to take it at first, but it's not too difficult to get the hang of. Besides, my Python was (is) very basic, so I'm sure you'll adapt a lot faster than I did...

All the best,

On Tue, Mar 12, 2013 at 9:16 AM, Ankit Arora <ankitarora121 gmail com> wrote:
Hey guys. I want to begin contributing to Rhythmbox, a Gnome project that I use the most. This'll be my first venture into Open source development so do forgive me if my question is to elementary.
I have a few good ideas on a few plugins that I want to develop for Rhythmbox and I'm sure they'll be of decent use to the community.

I just need some basic guidance on what are the basic prerequisites I need to have before I dive in. I've sufficient knowledge of Python so I'm covered there. But what else do I need to read up on or get familiar with before I start my first Rhythmbox plugin? I have no clue about GStreamer or GObject etc. 


rhythmbox-devel mailing list
rhythmbox-devel gnome org

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]