Add Banshee.WebBrowser and Banshee.AmazonMp3.Store
This is a big commit that introduces two to-die-for features into Banshee. First is a generic GTK WebKit-based embedded browser, called OssiferWebView, which extends WebKitWebView. OssiferWebView is written in C, because it makes fairly heavy use of WebKit and Soup APIs, for which the C# bindings are rather lacking. A simple, easy-to-bind API is exposed. In C#, Banshee.WebBrowser.OssiferWebView is available for extensions to use for embedding a reliable web browser. GTK WebKit 1.2.0+ is required. Fortunately, this is very easy to build on openSUSE 11.2-era systems. What is most important though, is the introduction of the Banshee.AmazonMp3.Store extension, which leverages Banshee.WebBrowser.OssiferWebView to provide an integrated and dedicated Amazon MP3 store browser. Music can be browsed, searched, and purchased in Banshee just as you would through Amazon MP3's web site in your regular browser, however there are two (current) user experience improvements: 1. A cookie is always set by Banshee that tells the Amazon MP3 web site that a valid Amazon MP3 downloader is installed, thus avoiding nagging messages about downloading the installer (which notoriously does not work on Linux systems); and 2. Mime-type hooks ensure that when audio/x-amzxml content is delivered by Amazon, that it is downloaded and immediately imported by the Banshee.AmazonMp3.AmazonMp3DownloaderService. The result being that as soon as a purchase is made, the purchase begins downloading and importing into your Banshee library automatically. Further browser improvements and polish will be on the way: 1. Basic back/forward navigation 2. Searching from within the regular Banshee UI 3. Ability to log out from within the regular Banshee UI 4. Lots of other stuff I haven't thought of I'm not as think as you drunk I am, Ossifer!
Showing with 1172 additions and 7 deletions