Main Page

From SongbirdWiki

Jump to: navigation, search

Contents

Songbird Technical Overview

Songbird is a media player built on top of the XULrunner framework. Media playing services and collection management services are implemented using XPCOM components. Reusable bits of Javascript can be

New functionality is generally implemented in extensions. Extensions are overlays which target some part of the application and layer new elements onto existing ones. Skins are called feathers and allow users to create new appearances by swapping out image files and writing CSS. More advanced skins can be implemented by writing new layouts. Both of these are distributed as .XPI files and follow the same format used by Firefox, Thunderbird, and other applications built on top of the Mozilla stack. Some Firefox extensions have already been ported to be compatible with Songbird.

BREAKAGE

As of April 4th's nightly build we had to break library compatibility in order to give you massive speed improvements. Unfortunately this kind of thing happens from time to time in pre-release software, but we hope you'll enjoy the ability to use Songbird with much larger collections and on slower computers will more than make up for the inconvenience.

For our nightly users, we have provided this migration page to rescue your precious data.

Windows

Here's a little named tour of Songbird's many windows and dialogs.

  • Main Window - which is divided into:
    • Toolbar
      • Play/Pause/Stop
      • Faceplate (now playing information, click to go to the active track!)
    • Service pane (on the left, containing the list of playlists and bookmarks)
    • Tab browser (containing playlists, library views, and web pages)
    • Display panes (in the service pane, below, and to the right of the tab browser, see below for more details)
  • Cheezy Video Window (often hidden, but never actually gone! the playback core lives here, I'm told)
  • Jump-To Window
  • Track Editor Dialog
  • Preferences

Components

Some of the more important components to be aware of are:

for media:

for adding new user-visible features:

to observe certain kinds of data, such as currently playing track: DataRemote

Source Tree

Songbird is a huge project. It helps to have source tree map to find your way around.

Current Pieces (2006.11.09)

XUL/XBL Coding Standards

JavaScript Coding Standards

C++ Coding Standards

IDL Creation Standards

Testing

HOWTOs

Developer's Recipe Book

  • We are putting together a recipe book of code snippets (or developer recipes) for accomplishing tasks that many Songbird developers or Featherers will want to do. The aim of this is to build a collection of code that is highly portable and reusable for anyone to make use of. Please contribute and build out the recipe book with your own useful recipes.
  • RecipeBook

External Resources

Device Support

Google Summer of Code 2008

Personal tools