Implement this window, win a prize!

Last night Jorge (aka whiprush) was asking about a Mini-Mode for Banshee. I initially said it would probably be some time before such a feature showed up in Banshee land, but after some quick thought, and realizing once again the full potential of the new player engine core, I said it could be done in a few hours.

Banshee Mini-Mode Mockup

However, I think you should do it, oh dear Banshee enthusiast! So here is our proposal: The above screenshot is a mockup. If you choose to accept the challenge, you are tasked with implementing this design as a Banshee Plugin. I am estimating it can be done in maybe 100-200 lines, and most of that can be little cut-n-paste snippets from the main interface to update the mini-mode interface based on the player engine state, etc. That simply involves listening to the Banshee player engine message bus. There are many reusable Banshee widgets that will be of help.

The Starting Line

I am providing the boilerplate plugin code and build system, and a glade file that you can optionally use. It’s up to you if you want to implement the mockup above or do something totally different. However, your implementation should at least perform all functions shown in the mockup.

Additionally, the plugin needs to integrate with the “View” menu in the main Banshee interface. When this menu item is activated, the main interface is to be hidden, and the Mini Mode interface will be shown. The Mini Mode interface should have a way to reverse this behavior to restore the main interface.

For the Serious

I recommend using Banshee from HEAD to develop against, but a later (0.10.8+) release should suffice. Everyone should start from the banshee-minimode-plugin boilerplate, which can be checked out from Banshee Subversion:

svn co svn://svn.banshee-project.org/trunk/banshee-minimode-plugin

For all the details and some hints, read the README file. Makes sense, right? Be sure to read this before you get ./autogen.sh happy!

Also, and this is important: in an effort to attract some new faces, if you have any significant experience with the Banshee codebase, please sit off to the side and twiddle your thumbs :-D

The Finish Line

All submissions should be emailed to me by 3PM EST on Monday, March 27, 2006 (details in the README). We will review the submissions and rate the implementation objectively and the interface design, well, subjectively :) The author of the favorite submission can talk with Jorge, who has offered to provide something that is comparable in value to a CD or DVD (Book, Amazon Wishlist?), or just eternal fanboyism.

The Final Thought

Remember: this idea is all about fun, and I hope it helps folks like you to get your hands a little wet with Banshee code. If you do not agree with or find this idea unappealing, say nothing, and continue living your glorious day: I still love you!

Finally, in the name of “keeping it interesting,” Jorge gets all the credit for the idea, I’m just making it a reality.

This entry was posted in Uncategorized and tagged , , . Bookmark the permalink.

15 Responses to Implement this window, win a prize!

  1. nobody says:

    Great idea. I wonder if the same approach would work to get iPod playlist support? There must be stealable code in gtkpod.

  2. ipod-sharp has full playlist support, it is just not exposed in the Banshee interface.

    gtkpod is also written in C, Banshee in C#, and gtkpod is GPL, where Banshee is MIT, so there is in fact zero stealable code in gtkpod ;)

  3. Julian says:

    I don’t know if I’ll have time to attempt this, but this is exactly who these types of feature requests should be offered to. I commend you on continuing to provide nice entry points into OSS development like this!

  4. Michael says:

    Banshee is one of the most exciting free software projects around ATM! It’s such a nice and functional application, and this plugin will make it even nicer.

    What I’m currently wondering about, if plugins are powerful enough to change the interface like this, can the (in)famous browser patch perhaps be changed into a plugin?

  5. Phil says:

    This is a cool way to get people to contribute. If I knew a lick of C#, I would be quite tempted, but static-typed languages are really not my thing.

  6. Felipe Lessa says:

    Sounds really nice. I love Mono and Banshee but I never touched on the latters code, maybe this is my chance to do it for the first time? Is this a sign? =)

  7. Paulo Aboim Pinto says:

    This is a great ideia. This is like a way to create skins for Banshee. The Skin should have a Full Mode and Mini-Mode.

    There is any way to minimize the Banshee to be in the Application Tray of Gnome or KDE like Windows Media Player do in windows?
    (this is a bad ideia… but it’s an ideia).

    Continue the good work
    Paulo Aboim Pinto
    Odivelas – Portugal

  8. Actually, in the near future, the entire interface will be pluggable. The default implementation will be the main one, but plugins will be able to provide new interfaces, and one of them may choose to offer skin support.

    This is indeed a start for that, but it will be easier and more efficient in the future.

  9. Looks nice, but the Full Mode button is in a funny place.

  10. Viktor says:

    This is a great idea, to bad I probably won’t have the time to give it a go, but who knows? (Have an exam tomorrow, maybe time after that).

    A splendid way to get new and not so experienced programmers (such as me) familiar with the codebase. I hope more projects will do things like this.

  11. anonymono says:

    This is very interesting. I would also like to donate a similar prize if anybody writes the ipod playlist support.

  12. out of interest why does ‘Full Mode’ use the icon of a house? especially given that the home/house icon is a semantic simile of ~/ in most Linux DE’s.

  13. I don’t know, because I wanted it to be a house? This was just a mockup, and we will fine tune it all later, according to HIG, yada, yada, etc.

  14. Pingback: Aaron Bockover » Blog Archive » The Implemented Window

  15. wattesone says:

    Very needed information found here, thank you for your work

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>