[Rhythmbox-devel] Plugins have landed



G'day everyone,

I've just committed the plugin framework to cvs, with AudioScrobbler
ported, basic Python plugin support, and two sample plugins (one C and
one Python).

This means that every can start running around coding up cool plugins.
We don't have a Plugin Writers Guide (yet), so I'm going to answer a few
questions before everyone asks them.


To start a new plugin copy plugins/sample or plugins/sample-python to
plugins/your-plugin-name, then edit plugins/Makefile.am and the files
inside your plugin directory.

Plugins are designed to be built inside the Rhythmbox source tree, and
as such we aren't installing headers. The reason for this is that
plugins use RB's internal API, and we don't want to give the impression
that it is stable. In fact I can guarantee it will change, as we improve
things, and will probably break plugins people write.



What we can guarantee is that we will keep anything in CVS up-to-date
with changes. That means that if a plugin is part of the "official
plugins" set, we will try to ensure it doesn't get broken (and fix it if
it does).

The general consensus in a short discussion we had last week was that we
will be fairly liberal in what we accept into the official plugins set.
For a plugin to be added to the official set, it will need to be three
things: Useful, Good and Legal.

Useful is simple, it needs to be interesting to other people. This would
be fairly hard to fail unless we already have a plugin that does
basically what your does. If there already is a plugin, you'll need to
start a discussion on the mailing list about why yours is better and
should replace the existing one.

Good has a number of facets. Good code: it follows the Rhythmbox coding
style, doesn't have any obvious issues, and is easy to maintain. Good
user-interface: it's not horribly complicated to use, and preferably has
been posted to the mailing list so people can comment. Other good stuff:
uses gettext for translation, etc.

Legal, doesn't violate any licences. There was some discussion
previously about having a RB plugin for the iTunes Music Store (based on
SharpMusique); I haven't checked but this quite possibly violates the
Terms-of-Service, and if it does we probably couldn't have it in the
official set.



One last thing is that there are a number of things in Rhythmbox that
aren't currently capable of being extended at runtime, which means that
right now there are things you can't do with plugins.

We have plans to fix a number of these, and there are probably more that
we haven't though of. If you want to develop a plugin, but can't because
of limitation in Rhythmbox, please let us know - we're more likely to
give it a higher priority on our TODO lists is we know someone wants to
use it.


If anyone has any questions, feel free to ask here or on IRC (#rhythmbox
on irc.gimp.net). I'm hoping to get more internal API documentation done
soon, but until then just ask.


Cheers,

James "Doc" Livingston
-- 
Every fleeting thought you've ever had in your life, no matter how
bizarre, is someone's lifelong obsession. And he has a website.
    -- Skif's Internet Theorem

Attachment: signature.asc
Description: This is a digitally signed message part



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