Updated German translation
[banshee.git] / extras / YeOldeChangeLog
blob032e9a4754f54b0a456c85ef8a76e35b2d5f7885
1 2009-05-22  Aaron Bockover  <abock@gnome.org>
3         Friends, after 4 years and 3 months, this file has come to an end. This
4         was a good file, a noble file, and it should be respected and cherished.
5         Many wonderful people have contributed to this file. I thank them all.
7         The spirit of this file will live on in git log, and whatever worthy
8         change log tracking facility we may adopt in the future.
10         Also, I win. First and Last post. BUUUUUUURRRRRNNNN.
12 2009-04-16  Gabriel Burt  <gabriel.burt@gmail.com>
14         * src/Core/Banshee.Core/Banshee.Base/Tests/TaglibReadWriteTests.cs:
15         * src/Core/Banshee.Core/Banshee.Streaming/StreamTagger.cs:
16         * src/Core/Banshee.Core/Banshee.Streaming/SaveTrackMetadataJob.cs:
17         * src/Core/Banshee.Core/Makefile.am: Remove old save job and move its
18         save-to-file logic into StreamTagger.
20         * src/Core/Banshee.Services/Makefile.am:
21         * src/Core/Banshee.Services/Banshee.Metadata/SaveTrackMetadataService.cs:
22         * src/Core/Banshee.Services/Banshee.Metadata/SaveTrackMetadataJob.cs: New
23         service and job that save-to-file and move-on-info-save if/when
24         appropriate.
26         * src/Core/Banshee.Services/Banshee.Preferences/PreferenceService.cs: the
27         SchemaPreferences are now created in SaveTrackMetadataServices; use them.
29         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs: Start
30         the SaveTrackMetadataServices.
32         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TrackEditorDialog.cs:
33         Get rid of the old write-to-file and move-on-info-save job queueing; now
34         happens based on the Updated and LastSynced stamps in the db.
36         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteConnection.cs: Give
37         access to the underlying IDataReader from HyenaDataReader.
39         * src/Core/Banshee.Services/Banshee.Collection/MoveOnInfoSaveJob.cs:
40         Remove.
42 2009-04-16  Gabriel Burt  <gabriel.burt@gmail.com>
44         Add a smart, priority-aware, resource-contention-avoiding job scheduler
45         Net result is BPM analysis will pause while importing, etc (BGO #577772).
46         Still need to convert Banshee.Kernel jobs.
48         * src/Core/Banshee.Core/Banshee.Base/ProductInformation.cs:
49         * src/Core/Banshee.Core/Banshee.Base/Resource.cs: Rename to
50         AssemblyResource to avoid conflicts.
52         * src/Core/Banshee.Services/Banshee.Collection/ImportManager.cs:
53         * src/Core/Banshee.Services/Banshee.Collection/RescanPipeline.cs:
54         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
55         * src/Core/Banshee.Services/Banshee.Library/ThreadPoolImportSource.cs:
56         * src/Core/Banshee.Services/Banshee.MediaEngine/TranscoderService.cs:
57         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs:
58         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/DatabaseRebuilder.cs:
59         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdRipper.cs:
60         * src/Extensions/Banshee.Bpm/Banshee.Bpm/BpmDetectJob.cs:
61         Set PriorityHints and Resources for Jobs.
63         * src/Core/Banshee.Services/Banshee.Metadata/IMetadataLookupJob.cs:
64         * src/Core/Banshee.Services/Banshee.Metadata/MetadataServiceJob.cs: Add
65         Cancel method.
67         * src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs: Use the
68         new JobScheduler, checking for DataLossJobs on shutdown.
70         * src/Core/Banshee.Services/Banshee.ServiceStack/DbIteratorJob.cs: Rework
71         as subclass of SimpleAsyncJob.
73         * src/Core/Banshee.Services/Banshee.ServiceStack/JobScheduler.cs: Simple
74         new class that subclasses JobScheduler and is an IService.
76         * src/Core/Banshee.Services/Makefile.am:
77         * src/Core/Banshee.Services/Banshee.ServiceStack/UserJobManager.cs:
78         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:
79         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/ConfirmShutdownDialog.cs:
80         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TaskStatusIcon.cs:
81         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/UserJobTile.cs:
82         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/UserJobTileHost.cs:
83         * src/Extensions/Banshee.Bpm/Banshee.Bpm/BpmService.cs:
84         Use JobScheduler instead of UserJobManager.
86         * src/Core/Banshee.Services/Banshee.ServiceStack/TestUserJob.cs:
87         * src/Core/Banshee.Services/Banshee.ServiceStack/UserJob.cs: Inherit from
88         Hyena.Job.  Most UserJob code now lives in Hyena.Job
90         * src/Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtJob.cs: Inherit
91         from DbIteratorJob.
93         * src/Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtService.cs:
94         If we were cancelled, don't try to save the last_scan time.
96         * src/Libraries/Hyena/Makefile.am:
97         * src/Libraries/Hyena/Hyena.Jobs/Job.cs:
98         * src/Libraries/Hyena/Hyena.Jobs/JobExtensions.cs:
99         * src/Libraries/Hyena/Hyena.Jobs/PriorityHints.cs:
100         * src/Libraries/Hyena/Hyena.Jobs/Resource.cs:
101         * src/Libraries/Hyena/Hyena.Jobs/Scheduler.cs:
102         * src/Libraries/Hyena/Hyena.Jobs/SimpleAsyncJob.cs:
103         * src/Libraries/Hyena/Hyena.Jobs/Tests/SchedulerTests.cs: New set of
104         classes to implement smart scheduling of jobs, prioritizing jobs and
105         avoiding resource contention.
107         * src/Libraries/Hyena/Hyena/Timer.cs: Add params/format ctor.
109 2009-04-16  Gabriel Burt  <gabriel.burt@gmail.com>
111         This patch adds separate library folder preferences for Music Library,
112         Video Library, and Podcasts (BGO #404827).  They are all configurable via
113         the Preferences dialog.  It also changes the format used to store URIs in
114         the database, from sometime relative and sometimes absolute to always
115         absolute (BGO #564355).
117         * src/Core/Banshee.Core/Banshee.Base/FileNamePattern.cs:
118         * src/Core/Banshee.Core/Banshee.Base/Paths.cs:
119         * src/Core/Banshee.Core/Banshee.Configuration.Schema/LibrarySchema.cs:
120         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseImportManager.cs:
121         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
122         * src/Core/Banshee.Services/Banshee.Collection/MoveOnInfoSaveJob.cs:
123         * src/Core/Banshee.Services/Banshee.Collection/RescanPipeline.cs:
124         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
125         * src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs:
126         * src/Core/Banshee.Services/Banshee.Library/MusicLibrarySource.cs:
127         * src/Core/Banshee.Services/Banshee.Library/VideoLibrarySource.cs:
128         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistFileUtil.cs:
129         * src/Core/Banshee.Services/Banshee.Preferences/SourcePage.cs:
130         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs:
131         * src/Core/Banshee.Services/Makefile.am:
132         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TrackEditorDialog.cs:
133         * src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs:
134         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs:
135         * src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/DefaultPreferenceWidgets.cs:
136         * src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/NotebookPage.cs:
137         * src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/PageComboBox.cs:
138         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
139         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdRipper.cs:
140         * src/Extensions/Banshee.Bpm/Banshee.Bpm/BpmDetectJob.cs:
141         * src/Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtJob.cs:
142         * src/Extensions/Banshee.FileSystemQueue/Banshee.FileSystemQueue/FileSystemQueueSource.cs:
143         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
144         * src/Extensions/Banshee.PlayerMigration/Banshee.PlayerMigration/RhythmboxPlayerImportSource.cs:
145         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastSource.cs:
146         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs:
147         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService_Interface.cs:
148         * src/Extensions/Banshee.Podcasting/Resources/GlobalUI.xml:
149         * src/Libraries/Migo/Migo.Syndication/FeedsManager.cs:
150         * src/Core/Banshee.Services/Banshee.Library/LibraryLocationPreference.cs:
151         Remove assumptions about there being only one Library Location, instead
152         use the relevant PrimarySource's BaseDirectory.  Remove relative-URI
153         logic/munging; always use the absolute URI.  Add library location
154         preferences for Music, Video, and Podcasts.
156 2009-04-16  Aaron Bockover  <abock@gnome.org>
158         * Project: migrated to git, repository structure cleaned up and
159         organized; this is just a memento
161 2009-04-15  Alexander Kojevnikov  <alexander@kojevnikov.com>
163         * src/Core/Banshee.Core/Banshee.Base/FileNamePattern.cs:
164         * src/Libraries/Hyena/Hyena/StringUtil.cs:
165         * src/Libraries/Hyena/Hyena/Tests/StringUtilTests.cs: Trimming dots and
166         spaces in file and folder names (BGO #572999)
168 2009-04-15  Alexander Kojevnikov  <alexander@kojevnikov.com>
170         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/FullscreenWindow.cs:
171         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingInterface.cs:
172         Fixed the full-screen mode visual glitch in the Now Playing source
173         (BGO #539024)
175 2009-04-15  Alexander Kojevnikov  <alexander@kojevnikov.com>
177         * src/Libraries/Hyena.Gui/Hyena.Widgets/RatingEntry.cs: Fixed the
178         RatingEntry colors on dark themes (BGO #576459)
180 2009-04-15  Gabriel Burt  <gabriel.burt@gmail.com>
182         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdDiscModel.cs:
183         Handle YYYY release date strings from MusicBrainz (BGO #578073)
185 2009-04-15  Gabriel Burt  <gabriel.burt@gmail.com>
187         * build/m4/shamrock/nunit.m4: If nunit is not found, look for mono-nunit.
189 2009-04-14  Alexander Kojevnikov  <alexander@kojevnikov.com>
191         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/FilteredListSourceContents.cs:
192         Don't change the browser height when the recommendations pane is shown
193         (BGO #578896)
195 2009-04-14  Alexander Kojevnikov  <alexander@kojevnikov.com>
197         * src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/PreferenceDialog.cs:
198         Setting default height for the Preferences dialog (BGO #552620)
200 2009-04-14  Gabriel Burt  <gabriel.burt@gmail.com>
202         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TaskStatusIcon.cs: Set
203         the sensitivity based on whether any bg tasks are active, so less
204         intrusive when there aren't, and in general, distinguishable.
206 2009-04-14  Alexander Kojevnikov  <alexander@kojevnikov.com>
208         * .gitignore: Added *.mdb
210 2009-04-08  Gabriel Burt  <gabriel.burt@gmail.com>
212         * tests/Analyzer/Analyzer.cs: Fix warnings.
214 2009-04-08  Gabriel Burt  <gabriel.burt@gmail.com>
216         * src/Libraries/Mono.Data.Sqlite/Mono.Data.Sqlite/SQLite3.cs:
217         * src/Libraries/Mono.Data.Sqlite/Mono.Data.Sqlite/SQLiteBase.cs:
218         * src/Libraries/Mono.Data.Sqlite/Mono.Data.Sqlite/SQLiteCommand.cs:
219         * src/Libraries/Mono.Data.Sqlite/Mono.Data.Sqlite/SQLiteConvert.cs:
220         * src/Libraries/Mono.Data.Sqlite/Mono.Data.Sqlite/SQLiteDataReader.cs:
221         Performance fixes ported from upstream System.Data.Sqlite, making SqliteType
222         a class (not struct) and avoid unnecessary calls to TypeNameToDbType.
224 2009-04-08  Gabriel Burt  <gabriel.burt@gmail.com>
226         * src/Libraries/Mono.Data.Sqlite/bnc-490021_mds-even-better.patch:
227         * src/Libraries/Mono.Data.Sqlite/Mono.Data.Sqlite/SQLiteConvert.cs:
228         Building on Bertrand's patch, improve performance even more.
230 2009-04-08  Gabriel Burt  <gabriel.burt@gmail.com>
232         * src/tests/Performance/Makefile.am: Also build an exe, useful for
233         drilling into a performance problem with mono --profile.
235         * src/tests/Performance/PerformanceTests.cs: Categorize tests, add
236         FetchTrack, LoadTrack, and Select* tests testing relatively low level db
237         operations.
239 2009-04-08  Gabriel Burt  <gabriel.burt@gmail.com>
241         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteArrayDataReader.cs:
242         Dispose underlying reader after reading in all its values.
244 2009-04-08  Gabriel Burt  <gabriel.burt@gmail.com>
246         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteConnection.cs: Remove
247         old comment about how to fix the transactions code.
249 2009-04-06  Gabriel Burt  <gabriel.burt@gmail.com>
251         * configure.ac:
252         * tests/Analyzer/Analyzer.cs:
253         * tests/Analyzer/Makefile.am:
254         * tests/Makefile.am:
255         * tests/Performance/Makefile.am:
256         * tests/Performance/PerformanceTests.cs:
257         * tests/compare-perf-results:
258         * tests/test-perf: New scripts and tests for testing and comparing
259         performance across commits.
261 2009-04-05  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
263         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
264         Fix confusing typo in debug message.
266 2009-04-04  Alexander Kojevnikov  <alexander@kojevnikov.com>
268         * src/Libraries/Hyena.Gui/Hyena.Gui/RatingRenderer.cs: Fixed zero rating
269         display in the main menu (BGO #577835)
271 2009-04-03  Gabriel Burt  <gabriel.burt@gmail.com>
273         * src/Libraries/Mono.Data.Sqlite/Mono.Data.Sqlite/SQLiteConvert.cs:
274         * src/Libraries/Mono.Data.Sqlite/bnc-490021_mds-improve-type-lookup.patch:
275         Apply patch from Bertrand Lorentz optimizing the method that does type
276         lookups (BNC #490021)
278 2009-04-02  Alexander Kojevnikov  <alexander@kojevnikov.com>
280         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Header.cs:
281         Allowing to resize track list view columns as long as one column to the
282         left and to the right is not fixed-width (BGO #538085)
284 2009-04-02  Gabriel Burt  <gabriel.burt@gmail.com>
286         * src/Core/Banshee.ThickClient/Resources/banshee-dialogs.glade: Improve
287         language for smart playlists predefined button.
289 2009-04-02  Alexander Kojevnikov  <alexander@kojevnikov.com>
291         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
292         Fixed row rendering glitch when hscroll position is non-zero
293         (BGO #548526)
295 2009-04-02  Alexander Kojevnikov  <alexander@kojevnikov.com>
297         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCellRating.cs:
298         * src/Libraries/Hyena.Gui/Hyena.Gui/RatingRenderer.cs:
299         * src/Libraries/Hyena.Gui/Hyena.Widgets/RatingEntry.cs: Changed the
300         RatingEntry widget to make it easier to edit and reset the ratings
301         (BGO #572260)
303 2009-04-02  Gabriel Burt  <gabriel.burt@gmail.com>
305         * src/Core/Banshee.Core/Banshee.Streaming/StreamTagger.cs: Patch from
306         Alexander Kojevnikov working around issue in TagLib# where it
307         miscalculates the bitrate for VBR tracks if the duration isn't set
308         yet (BGO #562582)
310         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
311         Bump the metadata version to trigger a refresh.  Users of trunk will get
312         yet another refresh, where users coming from 1.4 won't see a difference;
313         they already were going to get a refresh.
315 2009-04-02  Gabriel Burt  <gabriel.burt@gmail.com>
317         Updated to latest MusicBrainz# courtesy of Scott Peterson and Tom Corner.
319         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdDiscModel.cs:
320         Use the new MB# API.
322         * src/Libraries/MusicBrainz/*: Updated to latest from musicbrainz.org.  I
323         did comment out the DiscWin32NT references in LocalDisc.
325 2009-04-02  Gabriel Burt  <gabriel.burt@gmail.com>
327         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodTrackInfo.cs: Patch from
328         Andrés G. Aragoneses fixing bug with ratings not getting transferred to
329         iPods (BGO #577396)
331 2009-04-01  Gabriel Burt  <gabriel.burt@gmail.com>
333         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/DefaultColumnController.cs: 
334         Set the indicator bug to have an empty title.
336 2009-04-01  Gabriel Burt  <gabriel.burt@gmail.com>
338         * libbanshee/banshee-bpmdetector.c: Fix warnings.
340 2009-03-31  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
342         * src/Core/Banshee.Core/Banshee.Base/Localization.cs: Reduce startup
343         time by compiling and caching XPath expressions (BGO #577100).
345 2009-03-30  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
347         * src/Core/Banshee.Services/Banshee.Playlists.Formats/Tests/PlaylistFormatTests.cs:
348         * tests/Banshee.Services/playlist-data/reference_local.asx:
349         * tests/Banshee.Services/playlist-data/reference_remote.asx: Add some
350         unit tests for ASF reference playlists. The remote test, like all
351         ASX tests with a remote URL, is broken because we have to change
352         http:// to mmsh://.
354 2009-03-30  Gabriel Burt  <gabriel.burt@gmail.com>
356         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Patch from Andrés G.
357         Aragoneses disposing the sync object when the dap is disposed, fixing a
358         crash if automatic-sync was enabled (BGO #577072)
360 2009-03-29  Alexander Kojevnikov  <alexander@kojevnikov.com>
362         * src/Core/Banshee.Services/Banshee.PlaybackController/PlaybackControllerService.cs:
363         * src/Core/Banshee.Services/Banshee.PlaybackController/PlaybackRepeatMode.cs:
364         * src/Core/Banshee.Services/Banshee.PlaybackController/PlaybackShuffleMode.cs:
365         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackRepeatActions.cs:
366         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackShuffleActions.cs:
367         Update the UI when repeat and shuffle mode is changed using DBus
368         (BGO #575383).
370 2009-03-29  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
372         * src/Core/Banshee.Services/Banshee.Playlists.Formats/PlaylistParser.cs:
373         * src/Core/Banshee.Services/Banshee.Playlists.Formats/AsfReferencePlaylistFormat.cs:
374         * src/Core/Banshee.Services/Banshee.Services.csproj:
375         * src/Core/Banshee.Services/Makefile.am: Patch from Félix Velasco
376         adding support for ASF reference playlists, with small changes by me
377         (BGO #545646).
379 2009-03-26  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
381         * src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs:
382         Fix my previous patch to properly handle the case when a table is not
383         in sqlite_stat1.
385 2009-03-26  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
387         * src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs:
388         * src/Core/Banshee.Services/Banshee.Configuration/DatabaseConfigurationClient.cs:
389         Automatically analyze the database when the number of records in a 
390         table has changed significantly since last analysis. This should ensure
391         optimal use of the indices (BGO #555937).
393 2009-03-26  Gabriel Burt  <gabriel.burt@gmail.com>
395         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
396         Update some indices to use the new SortKey columns.
398 2009-03-26  Gabriel Burt  <gabriel.burt@gmail.com>
400         * src/Core/Banshee.Core/Resources/translators.xml: Updated
402         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/FilteredListSourceContents.cs:
403         Disable smooth-scroll by default (pass --smooth-scroll at runtime to
404         enable) since still not ready.
406 2009-03-25  John Millikin  <jmillikin@gmail.com>
408         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/LargeTrackInfoDisplay.cs:
409         * src/Libraries/Hyena/Hyena/Tests/StringUtilTests.cs:
410         * src/Libraries/Hyena/Hyena/StringUtil.cs:
411         When splitting the "Now playing" info text into lines, only split
412         if there are at least two info sections (BGO #560886).
414 2009-03-25  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
416         * src/Core/Banshee.Widgets/Banshee.Widgets/SeekSlider.cs: Patch from
417         Alexander Kojevnikov fixing the position calculation for clicks on the
418         seek slider (BGO #575635).
420 2009-03-24  Gabriel Burt  <gabriel.burt@gmail.com>
422         * build/m4/banshee/torrent.m4:
423         * src/Extensions/Banshee.Torrent/Banshee.Torrent/TorrentFileDownloadTask.cs:
424         * src/Extensions/Banshee.Torrent/Banshee.Torrent/TorrentService.cs: Some
425         cleanup and build fixes.
427 2009-03-24  Gabriel Burt  <gabriel.burt@gmail.com>
429         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
430         * src/Core/Banshee.Services/Banshee.Database/BansheeModelProvider.cs:
431         Patch from Alexander Kojevnikov and myself fixing an issue with migration
432         caused by using a SqliteModelProvider within the migrations which assume
433         the schema has already been updated.
435 2009-03-23  Gabriel Burt  <gabriel.burt@gmail.com>
437         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
438         Patch from Brian Lucas reenabling and updating the old folder_depth
439         handling code (BGO #537367)
441 2009-03-23  Gabriel Burt  <gabriel.burt@gmail.com>
443         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/AlbumArtistEntry.cs:
444         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/PageNavigationEntry.cs:
445         Make the track artist sync button not sensitive when IsCompilation, and
446         don't change the title forward button's sensitivity.
448         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/SortingPage.cs:
449         Make the title sort field NoSync.
451         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/ExtraTrackDetailsPage.cs:
452         * src/Core/Banshee.ThickClient/Makefile.am:
453         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/LicenseEntry.cs:
454         Add a combo entry for editing the LicenseURI field.
456 2009-03-23  Gabriel Burt  <gabriel.burt@gmail.com>
458         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/PageNavigationEntry.cs:
459         Set a tooltip on the next/arrow button, and make sure the title entry is
460         focused after we switch tracks.
462 2009-03-20  Gabriel Burt  <gabriel.burt@gmail.com>
464         * src/Clients/Booter/Booter/Entry.cs:
465         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs:
466         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
467         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
468         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
469         * src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs:
470         * src/Core/Banshee.Services/Banshee.SmartPlaylist/Migrator.cs:
471         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/DefaultColumnController.cs:
472         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/StatisticsPage.cs:
473         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmTrackInfo.cs:
474         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastTrackInfo.cs:
475         Patch from Brian Lucas and Alexander Kojevnikov adding a score
476         column/field that is updated automatically based on how far a song was
477         played before it was skipped (or over).  It has a value of 0 to 100, where
478         100 would mean that every time you played the song you listened to the
479         whole thing (BGO #555116)
481 2009-03-20  John Millikin  <jmillikin@gmail.com>
483         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
484         Fix typo in the version 28 database migration.
486 2009-03-20  John Millikin  <jmillikin@gmail.com>
488         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs:
489         Remove parentheses around track count in sources lists. (BGO #561339)
491 2009-03-20  John Millikin  <jmillikin@gmail.com>
493         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
494         * src/Libraries/Hyena/Hyena/Tests/StringUtilTests.cs:
495         * src/Libraries/Hyena/Hyena/StringUtil.cs:
496         Collapse runs of spaces into a single space when searching for
497         strings. (BGO #573484)
499 2009-03-20  John Millikin  <jmillikin@gmail.com>
501         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellTrackAndCount.cs:
502         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellDiscAndCount.cs:
503         If the total disc or track count is 0, display only the disc/track
504         number. If neither count is >0, display nothing. (BGO #573093)
506 2009-03-20  Gabriel Burt  <gabriel.burt@gmail.com>
508         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs: Patch
509         from Alexander Kojevnikov fixing focus loss when renaming non-active
510         source (BGO #527508)
512 2009-03-20  Gabriel Burt  <gabriel.burt@gmail.com>
514         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
515         Patch from Alexander Kojevnikov fixing a dragged column rendering glitch
516         when hscroll position is non-zero (BGO #536853)
518 2009-03-20  Gabriel Burt  <gabriel.burt@gmail.com>
520         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
521         Patch from Alexander Kojevnikov fixing mouse interactions with ListView's
522         cells (such as the rating) when hscroll position is non-zero (BGO #538535)
524 2009-03-20  Gabriel Burt  <gabriel.burt@gmail.com>
526         * src/Core/Banshee.ThickClient/Banshee.SmartPlaylist.Gui/Editor.cs:
527         * src/Core/Banshee.ThickClient/Resources/banshee-dialogs.glade: Patch from
528         Alexander Kojevnikov fixing bug with predefined smart playlists'
529         descriptions being so wide they caused ugly horizontal scrolling (BGO
530         #556887)
532 2009-03-19  Gabriel Burt  <gabriel.burt@gmail.com>
534         * src/Core/Banshee.Services/Banshee.Database/SortKeyUpdater.cs: When the
535         locale has changed, update the SearchKeys as well.
537 2009-03-19  Gabriel Burt  <gabriel.burt@gmail.com>
539         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
540         Update the MetadataHash for tracks that have an unknown artist, album,
541         and/or title, fixing a problem where such items got removed and readded to
542         devices on every sync (BGO #569379)
544 2009-03-19  Gabriel Burt  <gabriel.burt@gmail.com>
546         * src/Core/Banshee.Core/Banshee.Collection/AlbumInfo.cs:
547         * src/Core/Banshee.Core/Banshee.Collection/ArtistInfo.cs:
548         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs:
549         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumInfo.cs:
550         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistInfo.cs:
551         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
552         * src/Core/Banshee.Services/Banshee.Collection.Database/Tests/DatabaseAlbumInfoTests.cs:
553         * src/Core/Banshee.Services/Banshee.Collection.Database/Tests/DatabaseArtistInfoTests.cs:
554         * src/Core/Banshee.Services/Banshee.Collection.Database/Tests/DatabaseTrackInfoTests.cs:
555         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
556         * src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs:
557         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtistListView.cs:
558         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellAlbum.cs:
559         * src/Libraries/Hyena/Hyena/StringUtil.cs: Patch from Andrés G.
560         Aragoneses with input from John Millikin to keep displaying and sorting
561         unknown artist/albums/tracks as "Unknown .." but to keep the actual
562         value of the artist/album/title in the database (and written back to
563         files) null (BGO #528493)
565 2009-03-18  Gabriel Burt  <gabriel.burt@gmail.com>
567         * src/Core/Banshee.Services/Banshee.Preferences/Root.cs:
568         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs:
569         * src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/WidgetFactory.cs:
570         Handle the Name/ShortDescription of a pref changing.
572         * src/Dap/Banshee.Dap/Banshee.Dap/DapLibrarySync.cs: Update the Name of
573         each library sync option when we recaculate the sync, showing the # items
574         to add and remove.
576 2009-03-18  Gabriel Burt  <gabriel.burt@gmail.com>
578         * src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapContent.cs:
579         * src/Dap/Banshee.Dap/Banshee.Dap/DapLibrarySync.cs:
580         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs:
581         * src/Dap/Banshee.Dap/Banshee.Dap/DapSync.cs: Remove cruft and unnecessary
582         logging.
584 2009-03-15      * src/Dap/Banshee.Dap/  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
586         * src/Libraries/Hyena.Gui/Hyena.Widgets/RatingMenuItem.cs: Patch from
587         Alexander Kojevnikov fixing the bug where right-clicking on a track in
588         the Play Queue would clear its rating (BGO #575384).
590 2009-03-15  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
592         * autogen.sh: Print a proper error message when (g)libtoolize is not
593         found. Patch from Andreas Neustifter, with a small change by me
594         (BGO #563839).
596 2009-03-14  John Millikin  <jmillikin@gmail.com>
598         * src/Core/Banshee.Core/Makefile.am:
599         * src/Core/Banshee.Core/Banshee.Base/Tests/CoverArtSpecTests.cs:
600         Add tests for escaping cover art filename fragments.
602 2009-03-12  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
604         * libbanshee/banshee-tagger.c: Patch from Roderich Schupp setting the
605         right merge mode, so that tags are not lost when importing a CD with
606         GStreamer 0.10.22 (BGO #573813).
608 2009-03-12  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
610         * build/TranslatorExtractor.cs: Update the special case for sr@latin,
611         as the po file was renamed.
613         * build/Makefile.am: Fix typo that caused translators credits not to be
614         updated.
616         * src/Core/Banshee.Core/Resources/translators.xml: Updated, long
617         overdue because of the above bug.
619 2009-03-11  Gabriel Burt  <gabriel.burt@gmail.com>
621         * Banshee.sln:
622         * libbanshee/libbanshee.cproj:
623         * *.csproj: Updated by MonoDevelop, removing empty elements and saving
624         some per-project preferences like use-spaces-for-tabs etc.
626 2009-03-11  Gabriel Burt  <gabriel.burt@gmail.com>
628         * Makefile.am: Add 'make csharp' target that references Gtk#, Hyena,
629         Banshee etc for convenient/quick shell usage.
631 2009-03-09  Gabriel Burt  <gabriel.burt@gmail.com>
633         * src/Extensions/Banshee.FileSystemQueue/Banshee.FileSystemQueue/FileSystemQueueSource.cs:
634         Don't switch to the FSQ source when some files are loaded if the playing
635         item is a video (BGO #570382)
637 2009-03-09  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
639         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Recommendations/RecommendationService.cs:
640         Patch from Christoph Burgdorf to update the recommendation pane when
641         the track info is updated (BGO #574628).
643 2009-03-09  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
645         * src/Libraries/Hyena.Gui/Hyena.Widgets/MenuButton.cs: Patch from
646         Alexander Kojevnikov fixing the Next button so that its pressed state
647         is always displayed properly (BGO #554685).
649 2009-03-09  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
651         * src/Core/Banshee.ThickClient/Banshee.Addins.Gui/AddinView.cs: Patch
652         from Alexander Kojevnikov fixing a visual glitch in the extension
653         manager (BGO #531575).
655 2009-03-08  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
657         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs:
658         Move the line added in my previous commit, to prevent a crash when
659         switching to the Mini Mode.
661 2009-03-08  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
663         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs:
664         Set the source name as the text of the renderer, for a11y.
666 2009-03-08  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
668         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Patch from
669         Alexander Kojevnikov fixing a localization issue with the "Delete From
670         Drive" action (BGO #560455).
672         * src/Dap/Banshee.Dap/Banshee.Dap/MediaGroupSource.cs: Do not set the
673         "Delete From Drive" label, it's overwritten in TrackActions anyway.
675 2009-03-08  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
677         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackActions.cs:
678         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Fix
679         localization issues in Playback menu by having separate string for each
680         media type. Original patch from Alexander Kojevnikov, modified by me
681         (BGO #570546).
683 2009-03-05  John Millikin  <jmillikin@gmail.com>
685         * src/Libraries/Hyena.Gui/Hyena.Query.Gui/QueryLimitBox.cs:
686         Patch from Alexander Kojevnikov: Change "limit to" entry in the smart
687         playlist editor to a SpinButton (BGO #557321).
689 2009-03-05  John Millikin  <jmillikin@gmail.com>
691         * src/Libraries/Hyena/Hyena/Log.cs:
692         Patch from Neil Loknath: Change the color used for warning messages to
693         dark yellow (BGO #546647).
695 2009-03-05  John Millikin  <jmillikin@gmail.com>
697         * src/Core/Banshee.Services/Banshee.Database/QueuedSqliteDatabase.cs:
698         Removed dead code.
700 2009-03-05  John Millikin  <jmillikin@gmail.com>
702         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TaskStatusIcon.cs:
703         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TaskStatusButton.cs:
704         Use an animated image, rather than a button *containing* an animated
705         image, for the task status icon (BGO #574298).
706         
707         * src/Clients/Nereid/Nereid/PlayerInterface.cs:
708         * src/Core/Banshee.ThickClient/Makefile.am:
709         Rename TaskStatusButton to TaskStatusIcon.
711 2009-03-05  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
713         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs: Fix
714         parameter order for the SourcePreferences action entry.
716         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml:
717         Move misplaced SourcePreferences menu item.
719 2009-03-05  Gabriel Burt  <gabriel.burt@gmail.com>
721         * src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/DefaultPreferenceWidgets.cs:
722         * src/Core/Banshee.Services/Banshee.Library/MusicLibrarySource.cs: Move
723         the folder selector into its own section, add a new misc section, and
724         override the label for the new SourcePreferences action. Add the
725         music-library prefs that were defined in PreferenceService.
727         * src/Core/Banshee.Services/Banshee.Preferences/PreferenceService.cs: Name
728         the file-related prefs section File Policies and show the label. Add a
729         source-specific tab and remove music-library prefs. Move Banshee-specific
730         preferences from Page to the PreferenceService.  Add ChildPages and
731         IconName properties to Page class, allowing Pages to have child Pages.
733         * src/Core/Banshee.Services/Makefile.am:
734         * src/Core/Banshee.Services/Banshee.Preferences/SourcePage.cs: New
735         convenience subclass of Page that adds a source-specific page.
737         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Add virtual
738         PreferencesPageId property that if !null will mean the
739         SourcePreferencesAction will appear in the source's context menu, and will
740         open the Preferences dialog to the relevant souce-specific section. Add
741         PreferencesPage property that creates a source-specific prefs page for this
742         source, and Dispose it when the source is Removed.
744         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml:
745         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs: Add new
746         SourcePreferences action as described elsewhere.
748         * src/Core/Banshee.ThickClient/Makefile.am:
749         * src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/PageComboBox.cs:
750         New ComboBox subclass to switch a Notebook between Pages, with the ability
751         to set the active source-specific page via its Id.
753         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdService.cs: Pass
754         the appropriate Order to the prefs ctor. Add the new Audio CDs page as a
755         source-specific page so it appears in the Source Specific preferences tab,
756         instead of its own tab.
758         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdSource.cs:
759         Override PreferencesPageId and the SourcePreference label.
761         * src/Extensions/Banshee.AudioCd/Resources/GlobalUI.xml: Show the
762         SourcePreferencesAction in the audio cd context menu.
764         * src/Extensions/Banshee.Bpm/Banshee.Bpm/BpmService.cs: Add the BPM pref
765         to the Music source-specific section instead of the Generic tab.
767         * src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/NotebookPage.cs: If
768         a page has ChildPages, create a PageComboBox and Notebook to
769         contain/switch between them.
771 2009-03-04  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
773         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Fix a crash on
774         detection of a Daap server, related to the new source sorting stuff
775         (BGO #573686).
777 2009-03-04  Aaron Bockover  <abock@gnome.org>
779         * configure.ac: Bump to 1.5.0
781 2009-03-04  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
783         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackActions.cs: Patch
784         from Alexander Kojevnikov that makes the Previous button go to the
785         previous track only if position is less than 4 seconds, otherwise it
786         restarts the current song (BGO #539085).
788 2009-03-04  Gabriel Burt  <gabriel.burt@gmail.com>
790         * src/Core/Banshee.Core/Resources/contributors.xml: Add a bunch of people
791         as developers and contributors, most of whom should have been in here for
792         some time.
794 2009-03-04  Gabriel Burt  <gabriel.burt@gmail.com>
796         * src/Core/Banshee.Services/Banshee.Library/MusicLibrarySource.cs: Fix
797         mistake in default smart playlist name.
799 2009-03-03  John Millikin  <jmillikin@gmail.com>
801         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdDiscModel.cs:
802         Only increment the loop counter once when setting compilation
803         properties on tracks from the Audio CD model.
805 2009-03-02  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
807         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmActions.cs:
808         * src/Extensions/Banshee.Lastfm/Resources/GlobalUI.xml: Patch from
809         Alexander Kojevnikov adding a refresh action in the context menu for
810         Last.fm stations (BGO #536655).
812 2009-03-01  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
814         * src/Core/Banshee.Services/Banshee.Playlists.Formats/XspfPlaylistFormat.cs:
815         Do not throw an exception when trying to sniff an invalid file.
817 2009-03-01  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
819         Various fixes to the unit tests. There are still a few failures left,
820         but at least they don't seem to be caused by the test system itself.
822         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/Tests/MtpDapTests.cs: Remove
823         a celebratory Console.WriteLine.
825         * src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs: Do not
826         crash when there's no entry assembly. This happens when running the unit
827         tests.
829         * src/Libraries/Hyena/Hyena/Tests/TestBase.cs: Add a TestsDir property 
830         to help find the test data files.
832         * src/Core/Banshee.Services/Banshee.Playlists.Formats/Tests/PlaylistFormatTests.cs:
833         Use TestsDir and initialize the AddinManager.
835         * src/Core/Banshee.Core/Banshee.Base/Tests/TaglibReadWriteTests.cs: Use
836         TestsDir.
838         * src/Libraries/Mono.Media/Media.Playlists.Xspf/Tests/XspfTests.cs: Fix
839         the path to the test files.
841         * tests/Mono.Media/xspf/complete.xml: Fix typo.
843         * tests/Makefile.am: Add Mono.Media to the list of assemblies to test.
845 2009-02-27  Gabriel Burt  <gabriel.burt@gmail.com>
847         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Rename
848         SortTypes to ChildSortTypes.
850         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Add configuration
851         for separate children by type, get rid of "Ascending" in Name sort option,
852         add a TypeName property that defaults to GetType ().Name that is used by
853         the separate-by-type sort option.
855         * src/Core/Banshee.Services/Banshee.Sources/SourceSortType.cs: Add a Sort
856         method that uses an internal IComparer to separate by type if desired,
857         sort by the main function (size, etc), and then fallback to sorting by
858         name.
860         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs: Add
861         separate-by-type option.
863         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSource.cs: Get
864         rid of 'Station Type' sort option since now redundant.
866         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationSource.cs:
867         Override TypeName to replicate old Station Type sort behavior.
869 2009-02-27  Gabriel Burt  <gabriel.burt@gmail.com>
871         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs:
872         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmActions.cs:
873         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastActions.cs:
874         Add ellipses to the end of some action labels, and add short labels
875         without them for use in toolbars.
877 2009-02-27  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
879         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/NotificationAreaService.cs:
880         Patch from Valentin Sawadski removing the Skip button from notifications
881         when playing from a radio station (BGO #572971).
883 2009-02-27  Gabriel Burt  <gabriel.burt@gmail.com>
885         Patch from John Millikin, with a few enhancements by me, adding support
886         for sorting sources in real time and saving/restoring the preference for each
887         primary source, in a general way so that sources can add their own sort
888         options (BGO #556976)
890         * src/Core/Banshee.Services/Makefile.am:
891         * src/Core/Banshee.Services/Banshee.Sources/SourceSortType.cs: New class
892         for defining sort types, giving them a name, id, and comparer.
894         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Add new properties
895         for defining how the children of a source can be sorted (if applicable),
896         listening for the Updated event on all child sources and resorting when
897         changed (so if sorted by size and a playlist gets a new item, it will be
898         resorted immediately).  Save and restore the sort type configuration.
900         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Override the
901         child sort properties, adding name and size asc/desc options.
903         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs: Dynamically
904         generate the Sort by menu from the SortTypes a given source has (if any).
905         Allow overriding its label.
907         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/CellEditEntry.cs: Fix
908         firing the EditingDone event twice.
910         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs: Handle
911         resorting a little differently.
913         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml:
914         * src/Extensions/Banshee.InternetRadio/Resources/GlobalUI.xml:
915         * src/Extensions/Banshee.Podcasting/Resources/GlobalUI.xml:
916         * src/Extensions/Banshee.Lastfm/Resources/GlobalUI.xml: Use the new
917         SortChildrenAction in the context menu for these types.
919         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmActions.cs:
920         Instead of using a totally custom menu for sorting Last.fm stations, use
921         the new, generic Source SortTypes method for defining them.
923         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSource.cs:
924         Remove custom sort logic since now handled upstream of us, customize the
925         SortChildrenAction label, pass the typeUniqueId to the base ctor.
927         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationSource.cs:
928         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingSource.cs:
929         Pass the typeUniqueId to the base ctor so it's set that much earlier.
930         Really should clarify/enforce a sensible API here.
932 2009-02-27  Gabriel Burt  <gabriel.burt@gmail.com>
934         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Recommendations/RecommendationPane.cs:
935         Patch from Alexander Kojevnikov to ignore/not fetch recommendations for
936         Unknown etc artists (BGO #560722)
938 2009-02-27  Gabriel Burt  <gabriel.burt@gmail.com>
940         * src/src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/StatisticsPage.cs:
941         Patch from Alexander Kojevnikov making it so that even if the statistics
942         TreeView is focused you can still use ctrl-pageup/down to switch tabs in
943         the track editor (BGO #565438)
945 2009-02-27  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
947         * src/Core/Banshee.Core/Banshee.Base/Tests/TaglibReadWriteTests.cs:
948         Initialize the AddinManager before running tests. Original patch by
949         John Millikin (BGO #568046).
951         * tests/data/test.mp3: Add a sample mp3 file required by the taglib-sharp
952         tests.
954         * tests/Makefile.am: Run nunit-console2 with -noshadow so that tests
955         can find the sample mp3 file.
957 2009-02-26  Eoin Hennessy <eoin@randomrules.org>
959         * src/Libraries/Mono.Media/Media.Playlists.Xspf/Playlist.cs: The current
960         path is not gauranteed to be a valid Uri (especially when running from a
961         bundle on OSX). If creating the default base Uri from the current path
962         fails, set it to Location.
964 2009-02-26  Gabriel Burt  <gabriel.burt@gmail.com>
966         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackActions.cs:
967         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/IListView.cs:  Patch from
968         Alexander Kojevnikov moving the focus to the list of songs when
969         jumping (Ctrl-J) to the currently playing song (BGO #558940)
971 2009-02-26  Gabriel Burt  <gabriel.burt@gmail.com>
973         * src/Libraries/Hyena/Hyena.Query/ExactStringQueryValue.cs:
974         * src/Libraries/Hyena/Hyena.Query/StringQueryValue.cs: Patch from Andrés
975         G. Aragoneses and John Millikin fixing the wildcard escaping
976         ExactStringQueryValues in LIKE queries (BGO #570312)
978         * src/Libraries/Hyena/Hyena.Query/Tests/QueryTests.cs: New tests Andrés
979         testing the behavior for Exact and non LIKE queries.
981 2009-02-26  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
983         * src/Libraries/Hyena/Hyena.Query/AliasedObjectSet.cs: Move the ToLower
984         call added in my previous commit outside of the loop. Let's not waste
985         CPU cycles.
987 2009-02-26  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
989         * src/Libraries/Hyena/Hyena.Query/AliasedObjectSet.cs: Make search
990         fields not case sensitive, so that "Search by Matching Album" works
991         with german locale (BGO #573268).
993 2009-02-26  Gabriel Burt  <gabriel.burt@gmail.com>
995         * src/Core/Banshee.Services/Banshee.Database/SortKeyUpdater.cs: Slightly
996         nicer debug output.
998 2009-02-26  Gabriel Burt  <gabriel.burt@gmail.com>
1000         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistFileUtil.cs:
1001         * src/Core/Banshee.Services/Banshee.Playlists.Formats/IPlaylistFormat.cs:
1002         * src/Core/Banshee.Services/Banshee.Playlists.Formats/PlaylistFormatBase.cs:
1003         * src/Core/Banshee.Services/Banshee.Playlists.Formats/PlaylistParser.cs:
1004         * src/Core/Banshee.Services/Banshee.Playlists.Formats/XspfPlaylistFormat.cs:
1005         * src/Core/Banshee.Services/Makefile.am:
1006         * src/Libraries/Mono.Media/Media.Playlists.Xspf/Playlist.cs:
1007         * src/Libraries/Mono.Media/Media.Playlists.Xspf/Track.cs:
1008         Patch from John Millikin adding support for importing and exporting XSPF
1009         playlist files (BGO #389537)
1011 2009-02-26  Gabriel Burt  <gabriel.burt@gmail.com>
1013         Massive, awesomely-well-done patch by John Millikin adding proper support
1014         for unicode-compatibile, case-insensitive, current-culture-aware
1015         collation/sorting (BGO #499650)
1017         * src/Core/Banshee.Core/Banshee.Collection/AlbumInfo.cs:
1018         * src/Core/Banshee.Core/Banshee.Collection/ArtistInfo.cs:
1019         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Save
1020         String.Empty as null for *Sort properties.
1022         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumInfo.cs:
1023         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistInfo.cs:
1024         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
1025         Add internal *SortKey properties that run their respective *Sort values
1026         through Hyena.StringUtil.SortKey.  Change *Lowered properties to internal.
1029         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumListModel.cs:
1030         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistListModel.cs:
1031         * src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs:
1032         Sort by the new *SortKey columns instead of the *Lowered columns, and use
1033         the custom SQLite collation method (HYENA_COLLATION_KEY) for columns
1034         without cached collation keys.
1036         * src/Core/Banshee.Services/Makefile.am:
1037         * src/Core/Banshee.Services/Banshee.Collection.Database/Tests/DatabaseAlbumInfoTests.cs:
1038         * src/Core/Banshee.Services/Banshee.Collection.Database/Tests/DatabaseArtistInfoTests.cs:
1039         * src/Core/Banshee.Services/Banshee.Collection.Database/Tests/DatabaseTrackInfoTests.cs:
1040         Test the *Lowered, *Sort, and *SortKey properties.
1042         * src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs:
1043         * src/Core/Banshee.Services/Banshee.Database/SortKeyUpdater.cs: If the
1044         locale is different than the last run, regenerate the cached SortKey
1045         values.
1047         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
1048         Add *SortKey columns for album/artist/title values.  Since these columns
1049         are very commonly sorted on, having the proper collation-key values
1050         already generated gives us a performance win.
1052         * src/Core/Banshee.Services/Banshee.Database/BansheeModelProvider.cs:
1053         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs: Allow
1054         turning of the table checking (that adds columns automatically).
1056         * src/Core/Banshee.ThickClient/Makefile.am:
1057         * src/Core/Banshee.ThickClient/Banshee.ThickClient.addin.xml:
1058         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/SortingPage.cs:
1059         Simple new tab in the track editor for modifying the *Sort properties.
1061         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteCommand.cs: Handle
1062         sqlifying byte[] as blobs.
1064         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteUtils.cs: Recognize byte[]
1065         as blobs, and add new HYENA_COLLATION_KEY custom SQLite function that uses
1066         Hyena.StringUtils.SortKey.
1068         * src/Libraries/Hyena/Hyena.Data.Sqlite/Tests/SqliteCommandTests.cs: Test
1069         the sqlifying of various object types.
1071         * src/Libraries/Hyena/Makefile.am:
1072         * src/Libraries/Hyena/Hyena.Data.Sqlite/Tests/SqliteUtilTests.cs: Test the
1073         collation and search custom methods.
1075         * src/Libraries/Hyena/Hyena/StringUtil.cs: Add SortKey method that
1076         generates a case-insensitive, current-culture-aware byte[] collation key.
1078         * src/Libraries/Hyena/Hyena/Tests/StringUtilTests.cs: Test the new SortKey
1079         method.
1081 2009-02-25  Gabriel Burt  <gabriel.burt@gmail.com>
1083         * src/Clients/Halie/Halie/Client.cs: Fix bug where the --hide command
1084         would call .Hide () on the window, but then it would get Presented which
1085         Shows it (BGO #540172)
1087         * src/Clients/Muinshee/Muinshee/PlayerInterface.cs:
1088         * src/Clients/Nereid/Nereid/PlayerInterface.cs:
1089         * src/Core/Banshee.ThickClient/Banshee.Gui/BaseClientWindow.cs: Add
1090         protected InitialShowPresent method that subclasses can use when they are
1091         ready to be shown/presented, but that respects the command line options.
1093 2009-02-25  Gabriel Burt  <gabriel.burt@gmail.com>
1095         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Header.cs:
1096         * src/Libraries/Hyena/Hyena.Data/ColumnDescription.cs: Fix another freeze
1097         in the RecalculateColumnSize code due to some values getting set to NaN.
1099 2009-02-24  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
1101         * src/Libraries/Hyena/Hyena.Query/Tests/QueryTests.cs: Fix a test by
1102         adding the SQL escape clause that is now used.
1104 2009-02-23  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
1106         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs:
1107         Fix a visual glitch when sidebar is very narrow. Patch from Neil Loknath
1108         with code formatting fixes by me (BGO #524705).
1110 2009-02-23  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
1112         * src/Core/Banshee.Core/Banshee.Configuration.Schema/LibrarySchema.cs:
1113         * src/Core/Banshee.Core/Banshee.Base/FileNamePattern.cs: Add support
1114         for %album_artist_initial% as a variable for file/folder name patterns.
1115         Initial patch from aquavitae69, improved by Alexander Kojevnikov and me
1116         (BGO #562786).
1118 2009-02-21  Eoin Hennessy <eoin@randomrules.org>
1120         * src/run-banshee: Enable running uninstalled on OSX and make sure that the value
1121         for 'db' is actually used.
1123         * build/osx/build.env: Taglib# is now installed into /share, add it to build env.
1125 2009-02-20  Gabriel Burt  <gabriel.burt@gmail.com>
1127         Patch from John Millikin removing some cruft and changing the podcast
1128         cache location.
1130         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs:
1131         Store partially downloaded episodes in
1132         ~/.cache/banshee-1/extensions/podcasting/partial-downloads/ instead of
1133         under ~/.config (BGO #569436).  Migration path included.
1135         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService_Interface.cs:
1136         Fix header.
1138         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastCore.cs:
1139         Remove unused file.
1141 2009-02-20  Gabriel Burt  <gabriel.burt@gmail.com>
1143         * src/Core/Banshee.Widgets/Banshee.Widgets/Tile.cs:
1144         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Recommendations/RecommendationPane.cs:
1145         Patch from Chris Jones fixing theming issue (BGO #558656)
1147 2009-02-20  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
1149         * src/Extensions/Banshee.NotificationArea/Notifications/Notification.cs:
1150         Fix compilation of the in-tree notify-sharp.
1152 2009-02-20  Gabriel Burt  <gabriel.burt@gmail.com>
1154         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/AlbumArtistEntry.cs:
1155         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/BasicTrackDetailsPage.cs:
1156         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/EditorUtilities.cs:
1157         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/ExtraTrackDetailsPage.cs:
1158         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/FieldPage.cs:
1159         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/PageNavigationEntry.cs:
1160         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/RangeEntry.cs:
1161         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TextViewEntry.cs:
1162         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TrackEditorDialog.cs:
1163         * src/Extensions/Banshee.Bpm/Banshee.Bpm/BpmEntry.cs: Patch from Alexander
1164         Kojevnikov adding mnemonics for track editor fields (BGO #563606)
1166 2009-02-19  Eoin Hennessy <eoin@randomrules.org>
1168         * build/osx/targets/bundle-40-managed-libs.targets: Bump taglib# version.
1170 2009-02-19  Gabriel Burt  <gabriel.burt@gmail.com>
1172         This patch fixes support for hiding/restoring from the notification icon
1173         properly even if you hid the window via the X/close button, and even if
1174         you're in MiniMode (BGO #437938)
1176         * src/Extensions/Banshee.MiniMode/Banshee.MiniMode/MiniModeWindow.cs:
1177         Subclass from BaseClientWindow so we can set the Minimode window as the
1178         PrimaryWindow when it's enabled.
1180         * src/Extensions/Banshee.MiniMode/Banshee.MiniMode/MiniModeService.cs:
1181         When entering Minimode, initialize the window w/ the current
1182         PrimaryWindow, set it as the new one, and call the new Enable method.
1184         * src/Core/Banshee.ThickClient/Banshee.Gui/PersistentWindowController.cs:
1185         Check that the window is in an ok state before saving or restoring its
1186         size/position.  Speed up the save timeout, and grab the size/pos
1187         immediately instead of after the timeout.
1189 2009-02-19  Gabriel Burt  <gabriel.burt@gmail.com>
1191         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/NextButton.cs: Patch
1192         from Alexander Kojevnikov setting tooltip (BGO #572336)
1194 2009-02-18  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
1196         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/ExtraTrackDetailsPage.cs:
1197         Patch from Alexander Kojevnikov fixing auto-growing of the Comment 
1198         text box on the Edit Track dialog (BGO #553581).
1200 2009-02-18  Gabriel Burt  <gabriel.burt@gmail.com>
1202         * data/audio-profiles/wavpack.xml.in:
1203         * src/Core/Banshee.ThickClient/Banshee.MediaProfiles.Gui/ProfileConfigurationDialog.cs:
1204         Fix localization issues (BNC #449788)
1206 2009-02-18  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
1208         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Recommendations/RecommendationActions.cs:
1209         Properly set the state of the Show Recommandations check box on startup
1210         (BGO #572204).
1212 2009-02-17  Gabriel Burt  <gabriel.burt@gmail.com>
1214         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapContainerSource.cs: Patch
1215         from Alexander Kojevnikov making the Shared Music source remember whether
1216         the user had it expanded or not (BGO #561931)
1218 2009-02-17  Gabriel Burt  <gabriel.burt@gmail.com>
1220         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TrackEditorDialog.cs:
1221         Patch from Alexander Kojevnikov making the header labels in the track
1222         editor ellipsize (BGO #569442)
1224 2009-02-17  Gabriel Burt  <gabriel.burt@gmail.com>
1226         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Patch from
1227         Alexander Kojevnikov making Delete from Disk still default to Cancel but
1228         the Remove actions to OK/Confirm (BGO #569870)
1230 2009-02-17  Gabriel Burt  <gabriel.burt@gmail.com>
1232         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdDiscModel.cs: Use
1233         the SortName information from MusicBrainz, and detect if an album is a
1234         compilation album and set the album and all the tracks appropriate if it
1235         is.
1237         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdRipper.cs: Set the
1238         FileModifiedStamp and LastSyncedStamp when a track is ripped.
1240 2009-02-16  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
1242         * src/Backends/Banshee.Gnome/Banshee.GnomeBackend/GConfConfigurationClient.cs:
1243         Log exceptions raised when reading a GConf key, if they are not a
1244         NoSuchKeyException.
1246 2009-02-12  Gabriel Burt  <gabriel.burt@gmail.com>
1248         * src/Core/Banshee.Core/Banshee.Base/Tests/FileNamePatternTests.cs: Remove
1249         old EscapeFilename test.
1251 2009-02-12  Gabriel Burt  <gabriel.burt@gmail.com>
1253         * src/Libraries/Hyena/Hyena/StringUtil.cs: Patch from John Millikin
1254         revamping the illegal_chars array, removing a bunch of chars that should
1255         be fine, and making sure it escapes all chars that are invalid in FAT32,
1256         HFS, and ext3 (BGO #458224).  Changes by me to handle null input, and move
1257         the Regex creation to static init instead of lazy load.
1259         * src/Libraries/Hyena/Hyena/Tests/StringUtilTests.cs: Tests for the
1260         revamped EscapeFilename method.
1262 2009-02-11  Gabriel Burt  <gabriel.burt@gmail.com>
1264         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/Column.cs:
1265         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCellText.cs: Patch from
1266         John Millikin (with some style fixups added in by me) that right-aligns
1267         the header text for right-aligned columns (BGO #560918)
1269 2009-02-10  Gabriel Burt  <gabriel.burt@gmail.com>
1271         Patch from Andrés G. Aragoneses fixing bug with string matching functions
1272         that use the SQL 'like' command not escaping % and _ properly.
1274         * DateQueryValue.cs:
1275         * ExactStringQueryValue.cs:
1276         * IntegerQueryValue.cs:
1277         * NullQueryValue.cs:
1278         * RelativeTimeSpanQueryValue.cs:
1279         * TimeSpanQueryValue.cs: Change all to override the ToSql (op) instead of
1280         ToSql () method.
1282         * QueryField.cs: Call ToSql w/ the op we already have at hand.
1284         * QueryValue.cs: Add new abstract ToSql (op) method and change the ToSql
1285         method to call it with a null op.
1287         * StringQueryValue.cs: Fix bug with not escaping % and _ characters which
1288         are treated specially by SQLite in LIKE expressions (BGO #570312)
1290 2009-02-10  Gabriel Burt  <gabriel.burt@gmail.com>
1292         * build/m4/banshee/taglib.m4: Bump requirement to 2.0.3.2 (taglib-sharp
1293         trunk atm)
1295 2009-02-10  Gabriel Burt  <gabriel.burt@gmail.com>
1297         Patch from John Millikin adding support for full/proper case-insensitive
1298         unicode search, and additional support for fuzzy searching where n matches
1299         ñ etc - NonSpacingMarks are stripped from a-z chars (BGO #528498)
1301         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumInfo.cs:
1302         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistInfo.cs:
1303         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
1304         Instead of calling ToLower on *Lowered properties, use the new
1305         Hyena.StringUtil.SearchKey that also strips accents from Latin chars.
1307         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
1308         Update the existing *Lowered values by using the new HYENA_SEARCH_KEY
1309         custom Sqlite method that just calls SearchKey.
1311         * src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs: Mark MimeType,
1312         License, and Location as ExactStringQueryValue fields (as opposed to the
1313         new default which strips accents and lowercases).
1315         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteUtils.cs: New custom
1316         HYENA_SEARCH_KEY sqlite method.
1318         * src/Libraries/Hyena/Hyena.Query/QueryField.cs: Get rid of the old/hacky
1319         Sqlite-LOWER workaround, replacing it with the custom HYENA_SEARCH_KEY
1320         method where appropriate.
1322         * src/Libraries/Hyena/Hyena.Query/StringQueryValue.cs: In ToSql return the
1323         value passed through SearchKey.
1325         * src/Libraries/Hyena/Hyena.Query/Tests/QueryTests.cs: Test the new fuzzy
1326         and exact string matching.
1328         * src/Libraries/Hyena/Makefile.am:
1329         * src/Libraries/Hyena/Hyena/StringUtil.cs: New SearchKey method that
1330         lowercases and strips accents of a-z chars.
1332         * src/Libraries/Hyena/Hyena/Tests/StringUtilTests.cs: Test the SearchKey
1333         method.
1335         * src/Libraries/Hyena/Hyena.Query/ExactStringQueryValue.cs: New
1336         StringQueryValue subclass that doesn't pass the value through SearchKey.
1338 2009-02-10  Gabriel Burt  <gabriel.burt@gmail.com>
1340         Patch from John Millikin adding support for sort values for artist, album,
1341         title, and album artist.  They are read in and written out using TagLib#,
1342         but are not yet editable in the track editor.  Actually, they are not yet
1343         used for sorting either, that will come in a subsequent patch.
1345         * src/Core/Banshee.Core/Banshee.Collection/AlbumInfo.cs:
1346         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs:
1347         * src/Core/Banshee.Core/Banshee.Collection/ArtistInfo.cs:
1348         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumInfo.cs:
1349         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
1350         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistInfo.cs:
1351         Add *Sort properties.
1353         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
1354         Add columns for new *Sort properties, and trigger a metadata refresh to
1355         read them in from the files in the library.
1357         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistListModel.cs: 
1359         * src/Core/Banshee.Core/Banshee.Streaming/SaveTrackMetadataJob.cs:
1360         * src/Core/Banshee.Core/Banshee.Streaming/StreamTagger.cs:
1361         * src/Core/Banshee.Core/Banshee.Streaming/CommonTags.cs: Handle reading
1362         and writing the *Sort values from/to files.
1364 2009-02-10  Gabriel Burt  <gabriel.burt@gmail.com>
1366         Patch from John Millikin fixing issue with downloading some podcasts.
1368         * Core/Banshee.Core/Banshee.Base/FileNamePattern.cs:
1369         * Libraries/Hyena/Hyena/StringUtil.cs: Move Escape method to Hyena so
1370         reusable in Migo, and mark the Regex it uses as Compiled.
1372         * Libraries/Migo/Migo.DownloadCore/DownloadManager.cs:
1373         * Libraries/Migo/Migo.Syndication/Feed.cs: Use Hyena's new EscapeFilename
1374         method to fix bug with downloading podcasts with special characters in
1375         their title (BGO #567293).
1377 2009-02-10  Gabriel Burt  <gabriel.burt@gmail.com>
1379         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/StatisticsPage.cs:
1380         Patch from John Millikin setting the values of the stats tab as not
1381         editable (BGO #562792)
1383 2009-02-10  Gabriel Burt  <gabriel.burt@gmail.com>
1385         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: In the status bar
1386         use ndashes instead of ", " to separate the elements (BGO #551650)
1388 2009-02-10  Gabriel Burt  <gabriel.burt@gmail.com>
1390         * src/Libraries/Mtp/Mtp/MtpDevice.cs:
1391         * src/Libraries/Mtp/Mtp/Track.cs: Modified patch from William Pettersson
1392         fixing NRE with transferring song to MTP devices (BGO #571023)
1394 2009-02-10  Gabriel Burt  <gabriel.burt@gmail.com>
1396         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpSource.cs: Patch from William
1397         Pettersson catching exceptions thrown when trying to get the battery level
1398         (BGO #571022)
1400 2009-02-10  Cody Russell  <bratsche@gnome.org>
1402         * src/Extensions/Banshee.NotificationArea/Notifications/Notification.cs:
1403         When adding a new action, first check that the notification daemon supports
1404         actions. (BGO #571177)
1406 2009-02-09  Gabriel Burt  <gabriel.burt@gmail.com>
1408         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmActions.cs:
1409         Remove illogical setting of IsImporting.
1411         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSource.cs:
1412         * src/Extensions/Banshee.Lastfm/Resources/ActiveSourceUI.xml:
1413         * src/Extensions/Banshee.InternetRadio/Resources/ActiveSourceUI.xml:
1414         * src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/InternetRadioSource.cs:
1415         Set source actions to propagate to child playlists, and show Add Station
1416         action in the Media menu when selected (BGO #539019)
1418         * src/Extensions/Banshee.Podcasting/Resources/ActiveSourceUI.xml:
1419         * src/Extensions/Banshee.Podcasting/Resources/GlobalUI.xml: Only show
1420         Subscribe to Podcast action when the Podcasts source (or a child) is
1421         selected.
1423 2009-02-09  Gabriel Burt  <gabriel.burt@gmail.com>
1425         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Header.cs:
1426         Check for a very small change in the remaining width in the column size
1427         calculation to avoid an infinite loop.
1429 2009-02-08  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
1431         * src/Libraries/Migo/Migo.Syndication/Rfc822DateTime.cs: patch from
1432         Christian Krause fixing the timezone handling (BGO #570721).
1434         * src/Libraries/Migo/Migo.Syndication/Tests/XmlTests.cs: Update the 
1435         tests for the above fix.
1437 2009-02-08  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
1439         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs: Patch from
1440         John Millikin fixing the export of a playlist that was never browsed
1441         (BGO #570842).
1443 2009-02-05  Gabriel Burt  <gabriel.burt@gmail.com>
1445         * configure.ac: Require Mono 1.9.1 - C# 3.0 here we come!
1447 2009-02-04  Gabriel Burt  <gabriel.burt@gmail.com>
1449         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs:
1450         * src/Core/Banshee.Core/Banshee.Collection/ITrackInfo.cs:
1451         * src/Core/Banshee.Core/Banshee.Configuration.Schema/LibrarySchema.cs:
1452         * src/Core/Banshee.Core/Banshee.Base/FileNamePattern.cs: Patch from John
1453         Millikin adding support for %album_artist% as a variable for file/folder
1454         name patterns.  This also changes the existing pattern code to treat
1455         %artist% as album_artist, so that compilation albums will be stored in a
1456         single directory now (BGO #570298)
1458 2009-02-03  Gabriel Burt  <gabriel.burt@gmail.com>
1460         * src/Libraries/Makefile.am:
1461         * src/Libraries/Mono.Data.Sqlite/Makefile.am:
1462         * src/Libraries/Mono.Data.Sqlite/Mono.Data.Sqlite/*: Add copy of
1463         Mono.Data.Sqlite from Mono svn (revision 120995), with a patch from John
1464         Millikin that fixes its support for custom functions.
1466         * src/Libraries/Mono.Data.Sqlite/bug-470042_mds-custom-functions_v2.patch:
1467         John's patch as applied to the M.D.S source.
1469         * build/build.environment.mk:
1470         * build/pkg-config/banshee-1-hyena.pc.in:
1471         * configure.ac:
1472         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteArrayDataReader.cs:
1473         Adjust to build/work with the bundled Mono.Data.Sqlite
1475 2009-02-03  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
1477         * configure.ac: Patch from Diego E. Pettenò removing the call to
1478         AC_CANONICAL_SYSTEM (BGO #566460).
1480 2009-02-03  Gabriel Burt  <gabriel.burt@gmail.com>
1482         This patch fixes issues with adding tracks to a MTP device, the symptoms
1483         of which are Banshee freezing and files not getting added (BGO #567093)
1485         * Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpSource.cs: Do a better job of
1486         locking various MTP functions.
1488         * Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpTrackInfo.cs: Fix bug where we
1489         set the filesize of the Mtp.Track to the TrackInfo's FileSize, when it
1490         should be set to the file size of the passed in track URI (which might be
1491         different than track.Uri if it was transcoded).
1493         * Libraries/Mtp/Mtp/Error.cs: Style fix.
1495         * Libraries/Mtp/Mtp/Track.cs: Treat any m4* extension as mp4.
1497 2009-02-03  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
1499         * src/Core/Banshee.ThickClient/Banshee.Playlist.Gui/PlaylistExportDialog.cs:
1500         Patch from John Millikin to escape the suggested filename when exporting
1501         a playlist (BGO #457390).
1503 2009-02-03  Gabriel Burt  <gabriel.burt@gmail.com>
1505         * src/Dap/Banshee.Dap/Banshee.Dap/DapLibrarySync.cs:
1506         * src/Dap/Banshee.Dap/Banshee.Dap/DapSync.cs: Patch from Andrés G.
1507         Aragoneses, moving the removal of DAP playlists from being called on each
1508         LibrarySync (eg once for Music, Video, etc) to the overall DapSync, fixing
1509         bug where playlists didn't sync to DAPs because they were deleted when the
1510         PodcastSource synced (BGO #560970)
1512 2009-02-03  Gabriel Burt  <gabriel.burt@gmail.com>
1514         * libbanshee/banshee-player.c:
1515         * src/Core/Banshee.Widgets/Banshee.Widgets/SeekSlider.cs: Slightly
1516         modified patch from Moritz Schallaböck that makes CanSeek always false if
1517         the duration is zero, and that imroves the seek slider by letting you
1518         scroll-wheel over it or left-click to jump (BGO #565795)
1520 2009-02-02  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
1522         * src/Libraries/Lastfm/Lastfm.Data/DataEntry.cs: Patch from John Millikin
1523         to unescape URLs returned by Last.fm (BGO #563076).
1525 2009-02-02  Gabriel Burt  <gabriel.burt@gmail.com>
1527         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
1528         Fix bug I just introduced to TogglePlaying where if Paused we wouldn't
1529         start playing again when called (BGO #570051).
1531 2009-02-02  Gabriel Burt  <gabriel.burt@gmail.com>
1533         * src/Core/Banshee.Services/Banshee.ServiceStack/DbIteratorJob.cs: Fix
1534         build.
1536 2009-02-02  Gabriel Burt  <gabriel.burt@gmail.com>
1538         * src/Extensions/Banshee.Bpm/Banshee.Bpm/BpmDetectJob.cs: Subclass from
1539         DbIteratorJob, making this class quite simple, and fixing a bug with
1540         getting stuck in an infinite loop processing a given item.
1542         * src/Extensions/Banshee.Bpm/Banshee.Bpm/BpmService.cs: Use new RunAsync
1543         method instead of Start.
1545 2009-02-02  Gabriel Burt  <gabriel.burt@gmail.com>
1547         * src/Core/Banshee.Services/Makefile.am:
1548         * src/Core/Banshee.Services/Banshee.ServiceStack/DbIteratorJob.cs: New
1549         subclass of UserJob for use by tasks that need to process N items from the
1550         database one at a time; eg BPM detection, cover art download, etc.
1552 2009-02-02  Gabriel Burt  <gabriel.burt@gmail.com>
1554         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TaskStatusButton.cs:
1555         Show only background UserJobs in the task status button.
1557 2009-01-31  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
1559         * src/Extensions/Banshee.Bookmarks/Banshee.Bookmarks/BookmarksService.cs:
1560         Explicitly convert integers coming from the DB, as Mono.Data.Sqlite
1561         returns them as Int64 (BGO #569966).
1563 2009-01-30  Gabriel Burt  <gabriel.burt@gmail.com>
1565         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackActions.cs: Show the
1566         pause/stop button when Loading/Loaded.
1568         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ConnectedSeekSlider.cs:
1569         Handle Loading player state, set Live property on the position label, and
1570         use the position label's enum state property instead of a handful of bools
1572         * src/Core/Banshee.Services/Banshee.Streaming/RadioTrackInfo.cs: Start
1573         playing internet radio playlists in a separate thread to avoid blocking
1574         the UI (BGO #548040, BNC #376532).  Handle the case where the user
1575         presses stop or switches to a different track while we're
1576         downloading/processing the playlist file (previously we would have started
1577         playing once ready, even if the user had already moved on).  Also, fix
1578         bug where errors reported by the MediaEngine (GStreamer) weren't shown to
1579         the user.
1581         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngine.cs: If the
1582         engine is in PlayerState.Contacting, don't Close/stop since this is a
1583         state we set in managed land for loading internet radio tracks.
1585         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
1586         Add Start/EndSynthesizeContacting internal methods for use by
1587         RadioTrackInfo - basically a hack until we move the playlist loading logic
1588         from RadioTrackInfo to the PlayerENgine to get UI bits updated
1589         appropriately.  Fix IsPlaying to include Contacting/Loading/Loaded, so
1590         that TogglePlaying will Pause if in any of those states (not just if in
1591         the Playing state), and Play only when in Ready, Idle, or Paused.
1593         * src/Core/Banshee.Widgets/Banshee.Widgets/StreamPositionLabel.cs: Use an
1594         enum to track the player state instead of a handful of bools.  Show the
1595         "Contacting..." label when inthe Loading state (for now - will change to
1596         Loading... in a separate patch).
1598         * src/Core/Banshee.Widgets/Banshee.Widgets/SeekSlider.cs: If the new Value
1599         is more than the Duration, set the Duration to MaxValue so that the slider
1600         stays at the left side of the Range, avoiding the glitchy-looking UI going
1601         from Idle (where the slider is all the way left) to playing radio (where
1602         it was all the way right).
1604 2009-01-29  Gabriel Burt  <gabriel.burt@gmail.com>
1606         * src/Libraries/Mtp/Mtp/File.cs:
1607         * src/Libraries/Mtp/Mtp/Playlist.cs:
1608         * src/Libraries/Mtp/Mtp/Track.cs: Fix up the libmtp8 support which was
1609         crashing on loading MTP devices due to playlists (BGO #542117, BNC #470722)
1611 2009-01-29  Gabriel Burt  <gabriel.burt@gmail.com>
1613         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Dialog/PodcastFeedPropertiesDialog.cs:
1614         Add ability to edit podcasts' names in their properties dialog
1616 2009-01-29  Gabriel Burt  <gabriel.burt@gmail.com>
1618         * src/Clients/Nereid/Nereid/PlayerInterface.cs: Patch from
1619         Christoph Burgdorf making it so you have to actually click on the status
1620         bar text to change it - clicking on the bar but not on the text no longer
1621         changes it (BGO #568891)
1623 2009-01-27  Gabriel Burt  <gabriel.burt@gmail.com>
1625         * src/Extensions/Banshee.FileSystemQueue/Banshee.FileSystemQueue/FileSystemQueueSource.cs:
1626         Set CanDeleteTracks to false until we actually implement DeleteTrack.
1628 2009-01-27  Gabriel Burt  <gabriel.burt@gmail.com>
1630         * src/Extensions/Banshee.FileSystemQueue/Banshee.FileSystemQueue/FileSystemQueueSource.cs:
1631         Fix crash on delete from FSQ (BNC #467377)
1633 2009-01-27  Gabriel Burt  <gabriel.burt@gmail.com>
1635         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteArrayDataReader.cs:
1636         Convert ArrayList to List<T>.
1638 2009-01-27  Gabriel Burt  <gabriel.burt@gmail.com>
1640         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
1641         * src/Core/Banshee.Services/Banshee.Services.csproj:
1642         * src/Core/Banshee.Services/Banshee.Database/QueuedSqliteDatabase.cs:
1643         * src/Libraries/Hyena/Makefile.am:
1644         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteUtils.cs:
1645         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteArrayDataReader.cs:
1646         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteCommand.cs:
1647         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteConnection.cs:
1648         * docs/Hyena/en/Hyena.Data.Sqlite/ExecutingEventArgs.xml:
1649         * build/pkg-config/banshee-1-hyena.pc.in:
1650         * build/build.environment.mk:
1651         * configure.ac: Patch from John Millikin transitioning us from
1652         Mono.Data.SqliteClient to Mono.Data.Sqlite (BGO #568787).  He solved the
1653         threading issue I found when I tried about a year ago; SqliteClient read
1654         the entire result into an array before handing it back, so we just do that
1655         with the M.D.Sqlite results.  This should be all we need to start using
1656         prepared SQL statements and custom extension functions in Sqlite.
1658 2009-01-27  Gabriel Burt  <gabriel.burt@gmail.com>
1660         * Banshee.sln: 
1661         * src/Extensions/Banshee.Bpm/Banshee.Bpm.csproj:
1662         * src/Extensions/Banshee.Bpm/Makefile.am: Add Banshee.Bpm properly
1663         to MonoDevelop.
1665 2009-01-27  Gabriel Burt  <gabriel.burt@gmail.com>
1667         * src/Extensions/Banshee.Bpm/Banshee.Bpm.addin.xml: Put the track editor
1668         modifier in a <Module> and specify that it depends on Banshee.ThickClient.
1670 2009-01-27  Gabriel Burt  <gabriel.burt@gmail.com>
1672         * .gitignore: Add *.userprefs
1674 2009-01-27  Gabriel Burt  <gabriel.burt@gmail.com>
1676         * configure.ac: Check for .git in addition to .svn to determine whether to
1677         set release variable.
1679 2009-01-27  Gabriel Burt  <gabriel.burt@gmail.com>
1681         * libbanshee/Makefile.am:
1682         * libbanshee/libbanshee.cproj:
1683         * src/Backends/Banshee.GStreamer/Banshee.GStreamer.csproj:
1684         * src/Core/Banshee.Services/Banshee.Services.csproj:
1685         * src/Core/Banshee.ThickClient/Banshee.ThickClient.csproj:
1686         * src/Core/Banshee.ThickClient/Makefile.am:
1687         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd.csproj:
1688         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.csproj: Sync with
1689         Makefiles.
1691 2009-01-26  Gabriel Burt  <gabriel.burt@gmail.com>
1693         * src/Core/Banshee.CollectionIndexer/Banshee.Collection.Indexer.RemoteHelper/IndexerClient.cs:
1694         Fix bug with getting into a loop, constantly trying to reconnect to an
1695         indexer while in the middle of connecting to it.
1697 2009-01-25  Gabriel Burt  <gabriel.burt@gmail.com>
1699         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteConnection.cs: Fix a
1700         warning.
1702 2009-01-25  Gabriel Burt  <gabriel.burt@gmail.com>
1704         * Core/Banshee.ThickClient/Makefile.am:
1705         * Core/Banshee.ThickClient/Banshee.Gui.Widgets/TaskStatusButton.cs: New
1706         button that is insensitive if there are no background UserJobs registered,
1707         and that animates slowly and lists them in a tooltip when there are.
1709         * Clients/Nereid/Nereid/PlayerInterface.cs:
1710         * Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml: Add
1711         a TaskStatusButton to the the bottom left corner, in the status bar.
1713         * Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtJob.cs: Set
1714         IsBackground = true.
1716         * Extensions/Banshee.Bpm/Banshee.Bpm/BpmEntry.cs: Remove using Mono.Addins
1718 2009-01-25  Gabriel Burt  <gabriel.burt@gmail.com>
1720         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TrackEditorDialog.cs:
1721         Fix issue with album art and the album/artist/title overlapping in the
1722         TrackEditor for tracks w/ long album names.
1724 2009-01-25  Gabriel Burt  <gabriel.burt@gmail.com>
1726         * Core/Banshee.Services/Banshee.Collection.Database/DatabaseFilterListModel.cs:
1727         * Core/Banshee.Services/Banshee.Collection.Database/DatabaseImportManager.cs:
1728         * Core/Banshee.Services/Banshee.Collection/FilterListModel.cs:
1729         * Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs:
1730         * Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs:
1731         * Extensions/Banshee.Daap/Banshee.Daap/DaapSource.cs:
1732         * Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteCommand.cs:
1733         * Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteConnection.cs:
1734         * Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs: Fix the
1735         Begin/Commit/RollbackTransaction methods in HyenaSqliteConnection.  Use
1736         transactions when importing media, loading DAAP shares, and reloading
1737         filter models.
1739 2009-01-25  Gabriel Burt  <gabriel.burt@gmail.com>
1741         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSource.cs:
1742         Don't do any checks about whether the user is a subscriber or not before
1743         adding a station to their list.  If they try to access a list they're not
1744         authorized to, they'll get that message, and we avoid false negatives.
1746         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationSource.cs: Add
1747         another default station for songs tagged 'Creative Commons'
1749 2009-01-25  Gabriel Burt  <gabriel.burt@gmail.com>
1751         * src/Extensions/Banshee.Podcasting/Makefile.am:
1752         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastEpisodePage.cs:
1753         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.addin.xml: Add new
1754         information tab to the track editor/properties, only shown for podcast
1755         episodes, that shows the description, author, published date, etc.
1757 2009-01-25  Gabriel Burt  <gabriel.burt@gmail.com>
1759         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastActions.cs:
1760         Make unsubscribe, download episodes, and refresh options work even if
1761         multiple podcasts (feeds) selected
1763 2009-01-25  Gabriel Burt  <gabriel.burt@gmail.com>
1765         * libbanshee/Makefile.am:
1766         * libbanshee/banshee-bpmdetector.c: 
1767         * build/build.environment.mk:
1768         * configure.ac:
1769         * src/Extensions/Banshee.Bpm/Banshee.Bpm.addin.xml:
1770         * src/Extensions/Banshee.Bpm/Banshee.Bpm.csproj:
1771         * src/Extensions/Banshee.Bpm/Banshee.Bpm/BpmDetectJob.cs:
1772         * src/Extensions/Banshee.Bpm/Banshee.Bpm/BpmEntry.cs:
1773         * src/Extensions/Banshee.Bpm/Banshee.Bpm/BpmService.cs:
1774         * src/Extensions/Banshee.Bpm/Banshee.Bpm/BpmTapAdapter.cs:
1775         * src/Extensions/Banshee.Bpm/Banshee.Bpm/BpmTrackEditorModifier.cs:
1776         * src/Extensions/Banshee.Bpm/Makefile.am:
1777         * src/Extensions/Makefile.am: New extension that adds a preference (disabled
1778         by default) to automatically detect the BPM for all songs, and modified
1779         the track editor dialog's BPM entry, adding a button to auto detect the
1780         BPM, a button to play the song being edited, and a button to tap out the
1781         BPM manually.  This feature uses the GStreamer bpmdetect element.
1783         * src/Backends/Banshee.GStreamer/Banshee.GStreamer.addin.xml:
1784         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/BpmDetector.cs:
1785         * src/Backends/Banshee.GStreamer/Makefile.am:
1786         * src/Core/Banshee.Services/Makefile.am:
1787         * src/Core/Banshee.Services/Banshee.Services.addin.xml:
1788         * src/Core/Banshee.Services/Banshee.MediaEngine/IBpmDetector.cs: Support
1789         for various backends to provide bpm detection.
1791         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/UserJobTileHost.cs:
1792         * src/Core/Banshee.Services/Banshee.ServiceStack/IUserJob.cs:
1793         * src/Core/Banshee.Services/Banshee.ServiceStack/UserJob.cs: Add
1794         IsBackground property, and if set, don't show such jobs as normal job
1795         tiles.
1797         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/FieldPage.cs:
1798         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/ITrackEditorModifier.cs:
1799         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TrackEditorDialog.cs:
1800         * src/Core/Banshee.ThickClient/Banshee.ThickClient.addin.xml:
1801         * src/Core/Banshee.ThickClient/Makefile.am: Make the track editor more
1802         extensible and modifiable, including the ability to remove fields.
1804 2009-01-25  Gabriel Burt  <gabriel.burt@gmail.com>
1805         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellCreativeCommons.cs:
1806         Double using, broke the build.
1808 2009-01-25  Gabriel Burt  <gabriel.burt@gmail.com>
1810         * Banshee.Services/Banshee.Query/BansheeQuery.cs:
1811         * Banshee.ThickClient/Banshee.Collection.Gui/DefaultColumnController.cs:
1812         Add LicenseUri as a search and smart playlist field and as a column.
1814         * Banshee.ThickClient/Makefile.am:
1815         * Banshee.ThickClient/ThemeIcons/16x16/emblems/creative-commons-by.png:
1816         * Banshee.ThickClient/ThemeIcons/16x16/emblems/creative-commons-nc.png:
1817         * Banshee.ThickClient/ThemeIcons/16x16/emblems/creative-commons-nd.png:
1818         * Banshee.ThickClient/ThemeIcons/16x16/emblems/creative-commons-pd.png:
1819         * Banshee.ThickClient/ThemeIcons/16x16/emblems/creative-commons-sa.png:
1820         * Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellCreativeCommons.cs:
1821         New cell that detects Creative Commons licenses in the LicenseUri field
1822         and render them as images.
1824 2009-01-25  Gabriel Burt  <gabriel.burt@gmail.com>
1826         * src/Libraries/Hyena.Gui/Hyena.Widgets/SmoothScrolledWindow.cs: Improve
1827         the smooth scrolling by stopping in a nearly constant amount of
1828         time, and avoiding several small (1px) movements at the end of slowing
1829         down by making the minimum velocity 2px per cycle
1831 2009-01-25  Gabriel Burt  <gabriel.burt@gmail.com>
1833         * .gitignore: New file, for those using git-svn at home and to prepare for
1834         GNOME's git migration.
1836 2009-01-25  Gabriel Burt  <gabriel.burt@gmail.com>
1838         * src/Extensions/Banshee.Daap/Daap/Client.cs:
1839         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapProxyWebServer.cs:
1840         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs:
1841         * src/Core/Banshee.Services/Banshee.Base/ThreadAssist.cs:
1842         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
1843         * src/Core/Banshee.Core/Banshee.Kernel/Scheduler.cs:
1844         * src/Libraries/Migo/Migo.TaskCore/TaskGroup.cs: Name threads so
1845         kill -s QUIT thread dumps are easier to grok.
1847 2009-01-25  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
1849         * src/Backends/Banshee.NowPlaying.X11/libbnpx11/bacon-resize.h: Patch
1850         from Przemysław Grzegorczyk to clean up gtk includes to use only toplevel
1851         headers (BGO #565027).
1853 2009-01-25  Gabriel Burt  <gabriel.burt@gmail.com>
1855         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/OverlayWindow.cs:
1856         * src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapPropertiesDialog.cs:
1857         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/BansheeDialog.cs:
1858         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/CellEditEntry.cs:
1859         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/FilteredListSourceContents.cs:
1860         * src/Core/Banshee.Services/Banshee.Hardware/IVolume.cs:
1861         * src/Core/Banshee.Core/Banshee.Streaming/StreamTagger.cs:
1862         * src/Backends/Banshee.Hal/Banshee.HalBackend/CdromDevice.cs:
1863         * src/Backends/Banshee.Hal/Banshee.HalBackend/UsbDevice.cs:
1864         * src/Backends/Banshee.Hal/Banshee.HalBackend/DiskDevice.cs:
1865         * src/Libraries/Hyena/Hyena/Log.cs:
1866         * src/Libraries/Hyena.Gui/Hyena.Widgets/SegmentedBar.cs: Fix compilation
1867         issues when building with Mono 2.2
1869 2009-01-25  Gabriel Burt  <gabriel.burt@gmail.com>
1871         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/FilteredListSourceContents.cs:
1872         Enable smooth (kinetic) scrolling of track/artist/album etc lists (all but
1873         source list) by default.  Can be disabled by passing --no-smooth-scroll.
1874         Please test and give feedback. (BGO #461393)
1876 2009-01-25  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
1878         * libbanshee/banshee-player-video.c: Move a typedef so that it builds
1879         without clutter.
1881 2009-01-24  Aaron Bockover  <abock@gnome.org>
1883         * src/Extensions/Banshee.NowPlaying.Clutter/Clutter/Actor.cs:
1884         * src/Extensions/Banshee.NowPlaying.Clutter/Banshee.NowPlaying.Clutter/NowPlayingInterface.cs:
1885         More stuff just for fun
1887 2009-01-24  Aaron Bockover  <abock@gnome.org>
1889         * src/Extensions/Banshee.NowPlaying.Clutter/Clutter/Actor.cs: Added
1890         RotationX, RotationY, RotationZ properties just for fun
1892         * src/Extensions/Banshee.NowPlaying.Clutter/Banshee.NowPlaying.Clutter/NowPlayingInterface.cs:
1893         Add sliders to change rotation angles, because it is fun
1895 2009-01-24  Aaron Bockover  <abock@gnome.org>
1897         Second pass, working video display and sizing, not hacky at all, just 
1898         pure awesome on the way. Super high performance video.
1900         * src/Extensions/Banshee.NowPlaying.Clutter/Banshee.NowPlaying.Clutter/NowPlayingSource.cs:
1901         Bare source for the new clutter now playing extension
1903         * src/Extensions/Banshee.NowPlaying.Clutter/Banshee.NowPlaying.Clutter/NowPlayingInterface.cs:
1904         Basic clutter UI for rendering the video texture from the clutter sink
1905         in the media pipeline; simple embed + stage + texture and size/position
1906         logic is in place
1908         * src/Extensions/Banshee.NowPlaying.Clutter/Clutter/Group.cs:
1909         * src/Extensions/Banshee.NowPlaying.Clutter/Clutter/Color.cs:
1910         * src/Extensions/Banshee.NowPlaying.Clutter/Clutter/Texture.cs:
1911         * src/Extensions/Banshee.NowPlaying.Clutter/Clutter/Stage.cs:
1912         * src/Extensions/Banshee.NowPlaying.Clutter/Clutter/Actor.cs:
1913         * src/Extensions/Banshee.NowPlaying.Clutter/Clutter.Gtk/Embed.cs:
1914         Very basic and simple Clutter bindings; just enough for what I need now.
1915         These will go away as I work on clutter-sharp and make it a dependency
1916         later. I just wanted to get off the ground quickly.
1918         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingContents.cs:
1919         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingSource.cs:
1920         Move the VideoDisplayContextType detection to the source, throw if it is
1921         not valid so the source does not appear
1923         * libbanshee/banshee-player-vis.c: Fix a double-free bug
1925 2009-01-24  Aaron Bockover  <abock@gnome.org>
1927         First hacky pass at Clutter integration; nothing to see, and I probably
1928         broke some things. trunk is going to be sketchy for a bit...
1930         * src/Core/Banshee.Services/Banshee.MediaEngine/VideoDisplayContextType.cs:
1931         Enum of context types pipelines might support for video (e.g. xoverlay,
1932         clutter, cairo, etc.)
1934         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/VideoDisplay.cs:
1935         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingContents.cs:
1936         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/IVideoDisplay.cs:
1937         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/XOverlayVideoDisplay.cs:
1938         Updated to support the video context API changes in the player engine
1940         * src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs: Temporary
1941         clutter initialization, to be moved into the clutter extension
1943         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:
1944         Fix a small string.format bug
1946         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngine.cs:
1947         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
1948         Instead of a simple SupportsVideo bool, replace with 
1949         VideoDisplayContextType, and change the VideoWindow property to 
1950         VideoDisplayContext with both a getter and setter, the meaning of which
1951         depends on VideoDisplayContextType
1953         * src/Core/Banshee.Services/Banshee.MediaEngine/NullPlayerEngine.cs:
1954         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs:
1955         Implement changes to API above
1957         * libbanshee/banshee-player-video.c: Implement inital clutter support,
1958         and the backend implementation for the new video context API above,
1959         providing both xoverlay (GDK) and clutter contexts
1961         * libbanshee/clutter-gst-shaders.h:
1962         * libbanshee/clutter-gst-video-sink.h: 
1963         * libbanshee/clutter-gst-video-sink.c: Clutter GStreamer integration
1964         from the clutter-gst package; currently I don't want to take the dep
1965         as changes might need to be made
1967         * libbanshee/banshee-player-private.h: Add the clutter texture if we
1968         are building with clutter support
1970         * build/m4/banshee/libbanshee.m4: Check for clutter (optional)
1972         * configure.ac: Clean up the configure summary, make it nicer and more
1973         organized
1975         * build/m4/banshee/dap-karma.m4: Small fix
1977 2009-01-23  Gabriel Burt  <gabriel.burt@gmail.com>
1979         * src/Extensions/Makefile.am:
1980         * src/Extensions/Banshee.PlayerMigration/Banshee.PlayerMigration.addin.xml:
1981         * src/Extensions/Banshee.PlayerMigration/Makefile.am:
1982         * src/Core/Banshee.Services/Banshee.Services.addin.xml:
1983         * src/Core/Banshee.Services/Banshee.Library/ImportSourceManager.cs:
1984         * src/Core/Banshee.Services/Makefile.am:
1985         * src/Core/Banshee.Services/Banshee.PlayerMigration/RhythmboxPlayerImportSource.cs:
1986         * src/Core/Banshee.Services/Banshee.PlayerMigration/AmarokPlayerImportSource.cs:
1987         * build/build.environment.mk:
1988         * configure.ac: Move the Rhythmbox and Amarok migrators into a non-Core
1989         extension, enabled by default of course.
1991 2009-01-23  Gabriel Burt  <gabriel.burt@gmail.com>
1993         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseImportManager.cs:
1994         Move UpdateProgress out of ImportTrack method to avoid triggering the
1995         Scanning.. user job when we're directly importing.
1997         * src/Core/Banshee.Services/Banshee.Services.addin.xml:
1998         * src/Core/Banshee.Services/Banshee.Library/ImportSourceManager.cs:
1999         * src/Core/Banshee.Services/Makefile.am:
2000         * src/Core/Banshee.Services/Banshee.PlayerMigration/RhythmboxPlayerImportSource.cs:
2001         * src/Core/Banshee.Services/Banshee.PlayerMigration/AmarokPlayerImportSource.cs:
2002         Patch from Paul Lange adding back Rhythmbox import support, and making the
2003         migrators into extensions (though still in Core/) fixes (BGO #554511)
2005 2009-01-23  Gabriel Burt  <gabriel.burt@gmail.com>
2007         * src/Dap/Banshee.Dap/Banshee.Dap/DapService.cs: Patch from Félix Velasco
2008         removing unnecessary lock that was causing some hangs (BGO #559479)
2010 2009-01-23  Gabriel Burt  <gabriel.burt@gmail.com>
2012         * src/Libraries/Migo/Migo.Syndication/FeedUpdateTask.cs: Fix bug with
2013         IfModifiedSince header that prevented subscribing to some feeds.
2015 2009-01-23  Aaron Bockover  <abock@gnome.org>
2017         * data/desktop-files/update-desktop-file.sh:
2018         * data/desktop-files/banshee-1-audiocd.desktop.in.in:
2019         * data/desktop-files/banshee-1-media-player.desktop.in.in: Ensure the
2020         MimeType field in the desktop files has a trailing ; which is apperently
2021         required by the spec, or at least RPMLINT seems to think so
2023 2009-01-21  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
2025         * src/Clients/Muinshee/Muinshee/BaseDialog.cs: Patch from Wouter Bolsterlee
2026         to improve the labels on two buttons (BGO #557866).
2028 2009-01-21  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
2030         * src/Clients/Booter/Booter/Entry.cs: Patch from Daniel Siegel to add
2031         an option missing from the help output (BGO #554713).
2033 2009-01-21  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
2035         * src/Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtJob.cs:
2036         Change the count query to avoid an infinite loop (BGO #548131).
2038 2009-01-21  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
2040         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
2041         Patch from David Spreen making sure podcasts are copied to the Podcasts
2042         folder on mass-storage devices. Otherwise they are indistinguishable
2043         from Music (BGO #561786).
2045 2009-01-21  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
2047         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageDevice.cs:
2048         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
2049         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Make sure that folder depth
2050         defaults to -1 if it's not set, and transfer cover art to the DAP in this
2051         case (BGO #561914).
2053 2009-01-21  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
2055         * src/Libraries/Hyena/Hyena/StringUtil.cs: Make a regex a static field,
2056         for a small performance improvement (BGO #560234).
2058 2009-01-21  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
2060         * docs/monodoc.mk: Fix parallel build for docs (BGO #559917).
2062 2009-01-21  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
2064         * build/icon-theme-installer: Also update the icon cache during 
2065         "make uninstall" (BGO #561461).
2067 2009-01-21  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
2069         * build/m4/shamrock/programs.m4: Properly detect when a program is not
2070         found (BGO #562185).
2072 2009-01-20  Aaron Bockover  <abock@gnome.org>
2074         Banshee 1.4.2 Released
2076 2009-01-20  Aaron Bockover  <abock@gnome.org>
2078         * configure.ac: Bump to 1.4.2, set vendor to svn or tarball automatically
2080         * NEWS: Updated
2082 2009-01-20  Aaron Bockover  <abock@gnome.org>
2084         * src/AssemblyInfo.cs.in:
2085         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/AboutDialog.cs:
2086         Updated Copyright strings for 2009
2088 2009-01-17  Gabriel Burt  <gabriel.burt@gmail.com>
2090         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellTrackNumber.cs:
2091         Patch from Christoph Burgdorf to right align this (BGO #553322)
2093         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellPositiveInt.cs:
2094         Apply the same fix for all int-based columns (bpm, play/skip count, etc)
2096 2009-01-13  Gabriel Burt  <gabriel.burt@gmail.com>
2098         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/RangeEntry.cs:
2099         Allow setting the track/disc number/counts to > 99 (up to 999 now).
2101 2009-01-13  Gabriel Burt  <gabriel.burt@gmail.com>
2103         * src/Core/Banshee.Services/Banshee.Collection.Indexer/CollectionIndexerService.cs:
2104         Fix bug in logic of whether to raise a collection changed event.  We
2105         should have been ignoring all changes unless to a field other than
2106         LastPlayed/Skipped or Play/SkipCount but weren't (BGO #567552)
2108         * src/Core/Banshee.CollectionIndexer/Banshee.Collection.Indexer.RemoteHelper/IndexerClient.cs:
2109         * src/Core/Banshee.CollectionIndexer/Banshee.Collection.Indexer.RemoteHelper/SimpleIndexerClient.cs:
2110         Add IndexWhenCollectionChanged property to allow disabling the default
2111         behavior of retriggering a reindex on every collection change event.
2113 2009-01-13  Gabriel Burt  <gabriel.burt@gmail.com>
2115         * src/Core/Banshee.Services/Banshee.Metadata/MetadataServiceJob.cs: Change
2116         the timeout to 10s to alleviate long waits from not-responding servers
2117         (BGO #540178).
2119 2009-01-13  Gabriel Burt  <gabriel.burt@gmail.com>
2121         * src/Dap/Banshee.Dap.Karma/Banshee.Dap.Karma/KarmaSource.cs: Patch from
2122         Bob Copeland improving Karma detection and adding OnTracksAdded call (BGO
2123         #566205)
2125 2009-01-13  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
2127         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.csproj:
2128         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.csproj:
2129         * src/Core/Banshee.Services/Banshee.Services.csproj:
2130         * src/Backends/Banshee.Gnome/Banshee.Gnome.csproj:
2131         * src/Backends/Banshee.GStreamer/Banshee.GStreamer.csproj: Various fixes and 
2132         updates.
2134         * src/Libraries/Lastfm/Lastfm.csproj:
2135         * src/Libraries/Lastfm.Gui/Lastfm.Gui.csproj: Enable Makefile integration.
2137         * src/Libraries/Lastfm/Makefile.am:
2138         * src/Libraries/Lastfm.Gui/Makefile.am: Whitespace changes and re-ordering,
2139         to keep MonoDevelop happy, now that Makefile integration is enabled for these
2140         projects.
2142 2009-01-12  Aaron Bockover  <abock@gnome.org>
2144         * src/Core/Banshee.ThickClient/Banshee.Equalizer.Gui/EqualizerWindow.cs:
2145         Patch to fix unlocalised text on Equalizer (BNC #447606)
2147 2009-01-11  Gabriel Burt  <gabriel.burt@gmail.com>
2149         * src/Extensions/Banshee.FileSystemQueue/Banshee.FileSystemQueue/FileSystemQueueSource.cs:
2150         Use SafeUri to unescape and get the file://-less path if possible, fixes
2151         bug with Firefox launching us with a file:// playlist URI (BNC #456120)
2153 2009-11-01  Eoin Hennessy <eoin@randomrules.org>
2154         * build/osx/targets/bundle-30-gstreamer.targets: Re-add gst-plugins-ugly 
2155         to OSX build dependecies. The m3parse element is required for mp3 playback 
2156         with qtwrapper. We don't build *any* other elements from -ugly.
2158 2009-01-11  Gabriel Burt  <gabriel.burt@gmail.com>
2160         * src/Libraries/Lastfm/Lastfm/AudioscrobblerConnection.cs: Fix recently
2161         introduced bug that hung Banshee when Last.fm submitted Now Playing
2162         information (BNC #465215) 
2164 2009-01-11  Aaron Bockover  <abock@gnome.org>
2166         This commit addresses BNC #461677, allowing device commands to be sent
2167         to a new or existing process. Device commands allow Banshee to perform
2168         actions against a device, such as activating the source in the UI or 
2169         starting playback of an Audio CD. Two .desktop files exist for Nautilus/GIO
2170         to use to activate device commands on Banshee.
2172         * src/Core/Banshee.Services/Banshee.Hardware/DeviceCommand.cs: Simple
2173         structure that parses device action arguments such as --device-activate=x
2174         or --device-activate-play=y
2176         * src/Core/Banshee.Services/Banshee.Hardware/HardwareManager.cs: Provide
2177         a DeviceCommand event which is raised whenever a DeviceCommand argument
2178         described above is passed; this provides a simple facility for services
2179         to listen to actions to be applied against devices (e.g. the play CD
2180         action from Nautilus)
2182         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdService.cs: 
2183         Listen to the HW manager's DeviceCommand event and handle cdda actions
2185         * src/Dap/Banshee.Dap/Banshee.Dap/DapService.cs: Listen to the HW
2186         manager's DeviceCommand and pass them off to children DapSources at the
2187         right time for actual handling
2189         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs:
2190         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
2191         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs:
2192         Added/implemented CanHandleDeviceCommand so the DapService can know if
2193         a DeviceCommand action applies to the DAP
2195         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
2196         Fix a race where services may try to play a stream before the player
2197         engine has entered the READY state; this happens for example when Banshee
2198         is started with a --device-play or --device-activate-play command that
2199         may be handled before the player engine READYs
2201 2009-01-11  Aaron Bockover  <abock@gnome.org>
2203         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapService.cs: Add null checks
2204         around the source_map and its children when disposing since it won't be
2205         initialized if dispose is called before delayed initialize (BNC #465159)
2207         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs: As
2208         an extra precaution, wrap all service disposals in an exception handling
2209         block and just report the exception in the log
2211 2009-01-11  Aaron Bockover  <abock@gnome.org>
2213         * src/Clients/Booter/banshee-1.in: Use XDG_CONFIG_HOME instead of an
2214         explicit ~/.config; do not allow --redirect-log if another banshee-1
2215         process is running (this overwrites the original log); and allow for
2216         a special file ~/.config/banshee-1/always-debug that if present always
2217         will turn on debug mode, useful for when launched from a desktop file/GUI
2219 2009-01-11  Aaron Bockover  <abock@gnome.org>
2221         * src/Clients/Booter/banshee-1.in: Output the exec line when 
2222         the log is being redirected
2224 2009-01-11  Aaron Bockover  <abock@gnome.org>
2226         ATTENTION PACKAGERS: This is a VERY important commit; please read this
2227         ChangeLog message as it applies to YOU :). Conforming to this will
2228         help with bug reports.
2230         * configure.ac: Accept --with-vendor-build-id=<foo> for packagers to use.
2231         This string should always be set by packagers and detail the distro 
2232         name and version (e.g. openSUSE 11.1), and the repository origin, such
2233         as 'Banshee Team PPA'; for example, the %distribution macro is used in
2234         the openSUSE Build Service, which expands to something like this:
2235         'home:gabrielburt:branches:Banshee / openSUSE_Factory'; also the
2236         build/configure time is stored along with the host OS and CPU
2238         * src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs: Print all
2239         build metadata at startup so it hits the log file, should be very helpful
2240         for bug reports, especially when debugging against patched builds
2242         * src/AssemblyInfo.cs.in: Store build metadata from configure in assembly
2243         attributes (vendor, build time, host os/cpu)
2245         * src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs: Added
2246         APIs for accessing the build metadata
2248 2009-01-10  Aaron Bockover  <abock@gnome.org>
2250         * libbanshee/banshee-ripper.c: Second pass at the mime type detection
2251         without typefind, better mime type prioritization, and use the new 
2252         BANSHEE_GST_ITERATOR_ITERATE macro instead of the bulky functions I 
2253         wrote last night (BGO #558526, BNC #464889)
2255         * libbanshee/banshee-gst.h: Implement BANSHEE_GST_ITERATOR_ITERATE, 
2256         a macro that handles the typical implementation of walking a GstIterator
2258 2009-01-10  Gabriel Burt  <gabriel.burt@gmail.com>
2260         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs:
2261         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/ItmsPodcast.cs:
2262         * src/Extensions/Banshee.Podcasting/Makefile.am: Add support for itms://
2263         podcast links that you see on many podcast websites (BNC #465149).
2264         I think setting Banshee as the app Firefox (etc) uses when they are
2265         clicked has to be done manually, unfortunately
2267         * src/Core/Banshee.Services/Banshee.Web/HttpRequest.cs: Transparently
2268         support gzip'd responses, add ResponseBody property.
2270 2009-01-10  Aaron Bockover  <abock@gnome.org>
2272         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Dialog/PodcastSubscribeDialog.cs:
2273         * src/Core/Banshee.ThickClient/Banshee.MediaProfiles.Gui/ProfileConfigurationDialog.cs:
2274         Call PackStart (w, b, b, u) instead of the deprecated default (BGO #567154)
2276 2009-01-09  Aaron Bockover  <abock@gnome.org>
2278         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/AudioCdRipper.cs:
2279         Handle the new mimetype callback and set it on the track (BGO #558526,
2280         BNC #464889)
2282         * libbanshee/banshee-ripper.c: Implemented support for the typefind
2283         element in the pipeline after the encoder to query a proper mime type
2284         for the encoded and muxed content
2286         * libbanshee/banshee-gst.h:
2287         * libbanshee/banshee-gst.c: Factored out a generic callback invoking
2288         version of gst_bin_iterate_recurse and gst_bin_iterate_all_by_interface
2289         to avoid duplicating a lot of iterator boilerplate code
2291 2009-01-09  Gabriel Burt  <gabriel.burt@gmail.com>
2293         * src/Extensions/Banshee.FileSystemQueue/Banshee.FileSystemQueue/FileSystemQueueSource.cs:
2294         If passed a playlist file from /tmp, try to load/play it as a radio
2295         station (BNC #456120).  Also, clear/delete playlists when Cleared.
2297         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistFileUtil.cs: Avoid
2298         bug where duplicate playlists were created.
2300         * src/Core/Banshee.Core/Banshee.Base/Paths.cs: Add SystemTempDir property.
2302 2009-01-09  Aaron Bockover  <abock@gnome.org>
2304         * src/Core/Banshee.Services/Banshee.Streaming/RadioTrackInfo.cs: Added
2305         Open/OpenPlay helper methods that handle the typical case of simply 
2306         opening a stream/playlist, connecting to error/event handling, and 
2307         playing the stream
2309         * src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs: Use the
2310         new RadioTrackInfo.OpenPlay method, moved the original code into that
2311         new API implementation; no functional change
2313 2009-01-08  Aaron Bockover  <abock@gnome.org>
2315         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdSource.cs:
2316         Implement IImportSource so the disc shows up in the Import Media dialog,
2317         fixing a functional regression from legacy 0.13.x (BNC #457918)
2319 2009-01-08  Aaron Bockover  <abock@gnome.org>
2321         * src/Core/Banshee.Core/Banshee.Base/Localization.cs: Look for xml:lang
2322         nodes with lang codes in the form of xx_YY not xx-YY; intltool should be 
2323         using xx-YY per xml:lang convention, but we'll bend for now (BNC #449788)
2325 2009-01-07  Aaron Bockover  <abock@gnome.org>
2327         * build/m4/banshee/libbanshee.m4: If the gtk+-2.0 target check fails,
2328         explicitly check for gtk+-2.0 as an entire module to show the standard
2329         missing devel package error message from pkg-config
2331 2009-01-07  Gabriel Burt  <gabriel.burt@gmail.com>
2333         * data/desktop-files/*: Make banshee-1-subscription.desktop, handling RSS,
2334         OPML, and Miro's OPML subscription mimetypes.
2336 2009-01-07  Gabriel Burt  <gabriel.burt@gmail.com>
2338         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs:
2339         * src/Core/Banshee.Services/Banshee.Collection/RescanPipeline.cs: Avoid
2340         dealing with Podcast files at all (BGO #552976).
2342         * src/Core/Banshee.Core/Banshee.Streaming/StreamTagger.cs: Add another
2343         TrackInfoMerge override, avoid a NRE.
2345 2009-01-07  Gabriel Burt  <gabriel.burt@gmail.com>
2347         * src/Core/Banshee.Services/Banshee.Collection/RescanPipeline.cs: Fix
2348         issue with the Rescan tool where it popped up/removed lots and lots of
2349         progress bars (UserJobs) during a given import, which caused a ton of
2350         unnecessary CPU usage (BGO #552561).
2352 2009-01-07  Gabriel Burt  <gabriel.burt@gmail.com>
2354         * src/Libraries/Migo/Migo.Net/AsyncWebClient.cs: Patch from Benjamín
2355         Valero Espinosa fixing bug with not handling the XML encoding attribute
2356         properly; RSS feeds in non-UTF-8 should now parse correctly (BGO #538224)
2358 2009-01-01  Gabriel Burt  <gabriel.burt@gmail.com>
2360         * src/Libraries/Hyena.Gui/Hyena.Gui/GtkUtilities.cs: Add both upper and
2361         lowercase versions of file extensions to the file chooser filter, so that
2362         my.MP3 will appear in the Local Files import dialog (BGO #566224).
2364 2008-12-29  Gabriel Burt  <gabriel.burt@gmail.com>
2366         * src/Libraries/Migo/Migo.Syndication/RssParser.cs: If RFC 822 datetime
2367         parsing fails, try falling back to parsing the pubDate etc with
2368         DateTime.TryParse (BGO #561381)
2370 2008-12-29  Gabriel Burt  <gabriel.burt@gmail.com>
2372         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseQueryFilterModel.cs:
2373         Update to new QueryField api - will probably need some work when we
2374         re-enable other filters (genre browser, etc).
2376         * src/Libraries/Hyena/Hyena.Query/QueryField.cs: Based on patch from
2377         Félix Velasco, fix case-sensitivity bug with genre and other string
2378         matching (BGO #555120)
2380 2008-12-29  Gabriel Burt  <gabriel.burt@gmail.com>
2382         * src/Libraries/Lastfm/Lastfm/AudioscrobblerConnection.cs: Patch from John
2383         Millikin fixing bug encoding/scrobbling non-ASCII info (BGO #539963)
2385 2008-12-29  Gabriel Burt  <gabriel.burt@gmail.com>
2387         * src/Libraries/Hyena.Gui/Hyena.Widgets/ImageButton.cs: Patch from Wouter
2388         Bolsterlee fixing mnemonic support (BGO #557880)
2390 2008-12-29  Gabriel Burt  <gabriel.burt@gmail.com>
2392         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastTrackInfo.cs:
2393         Fix bug with the published date of a playing podcast episode not getting
2394         loaded/displayed properly (BGO #565863)
2396 2008-12-29  Gabriel Burt  <gabriel.burt@gmail.com>
2398         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumInfo.cs: 
2399         Patch from John Millikin fixing issue with an album sometimes being listed
2400         twice, once as a compilation album and once not (BGO #557313)
2402         * src/Core/Banshee.Core/Banshee.Streaming/StreamTagger.cs: Add some notes
2403         in a comment.
2405 2008-12-29  Gabriel Burt  <gabriel.burt@gmail.com>
2407         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/BasicTrackDetailsPage.cs:
2408         Patch from Ivan Zlatev, fixing bug where the first track's TrackCount
2409         value wasn't set properly when using the automagic-button (BGO #561083)
2411 2008-12-26  Eoin Hennessy <eoin@randomrules.org>
2413         * build/osx/targets/bundle-30-gstreamer.targets: We can't ship anything from 
2414         gst-plugins-ugly, so remove it from dependencies.
2416 2008-12-26  Aaron Bockover  <abock@gnome.org>
2418         * src/Core/Banshee.Services/Banshee.Services.addins: Remove /tmp from
2419         the list of paths to scan for addins (BGO #556656)
2421 2008-12-19  Gabriel Burt  <gabriel.burt@gmail.com>
2423         * src/Core/Banshee.Services/Banshee.Collection/SelectAllSelection.cs: Fix
2424         a bug with determining if a selection (of podcasts, etc) was 'all'; this
2425         prevented users who had only one subscription from deleting it (BGO
2426         #560210)
2428 2008-12-19  Gabriel Burt  <gabriel.burt@gmail.com>
2430         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapService.cs: Delay the
2431         initialization of the DAAP plugin for 3 seconds in an attempt to avoid the
2432         lock-related freezes (BNC #450125)
2434 2008-12-19  Gabriel Burt  <gabriel.burt@gmail.com>
2436         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdSource.cs: Fix
2437         crasher bug with using Banshee in a language that has a non-ASCII
2438         character in "Audio CD" (BGO #565059).
2440         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
2441         Prevent NRE.
2443 2008-12-19  Gabriel Burt  <gabriel.burt@gmail.com>
2445         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastTrackListModel.cs:
2446         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs:
2447         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpSource.cs:
2448         * src/Dap/Banshee.Dap/Banshee.Dap/DapLibrarySync.cs:
2449         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs:
2450         Fix crash that happened toward the end of syncing a DAP device, caused by
2451         not including in the FROM clause all the tables needed for the WHERE
2452         conditions of podcast-related playlists (BGO #558662)
2454 2008-12-02  Eoin Hennessy <eoin@randomrules.org>
2456         * build/osx/targets/bundle-30-gstreamer.targets: Added gst-plugins-ugly to
2457         osx dependency targets. The mp3parse element is necessary for duration queries 
2458         to work on mp3 audio pipelines.
2460         * build/osx/targets/bundle-10-xiph-libs.target: Readded FLAC support to 
2461         osx dependencies. 
2463 2008-12-04  Gabriel Burt  <gabriel.burt@gmail.com>
2465         * src/Backends/Banshee.Hal/Banshee.HalBackend/DeviceMediaCapabilities.cs:
2466         Fix bug that prevents 'portable_audio_player.cover_art_file_type' property
2467         from being used (BGO #563290)
2469 2008-12-04  Gabriel Burt  <gabriel.burt@gmail.com>
2471         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/FilteredListSourceContents.cs:
2472         Use Pack instead of Add when adding items to Panes, so that the min-size
2473         of children is respected and they can't be practically hidden - fixes bug
2474         with podcasts list being zero height and therefore not visible on small
2475         screens (BGO #560675)
2477 2008-11-24  Aaron Bockover  <abock@gnome.org>
2479         * src/Clients/Booter/banshee-1.in: Fixed quoting in wrapper script so
2480         filenames with spaces work; especially important since Dolphin/Konqueror do
2481         not use URIs for local file paths even though %U is specified in the 
2482         .desktop file (BNC #440883)
2484         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TrackEditorDialog.cs:
2485         * src/Libraries/Hyena.Gui/Hyena.Gui/GtkUtilities.cs: Moved ForeachWidget
2486         method into GtkUtilities so it can be reused by third party extensions,
2487         which is particularly useful (BGO #562151)
2489 2008-11-21  Aaron Bockover  <abock@gnome.org>
2491         * src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/DefaultPreferenceWidgets.cs:
2492         Create the muisc directory before setting it on the FileChooserButton
2493         to prevent GTK from wigging out and then setting the directory to
2494         $HOME, causing the preference to save; if the music directory we create
2495         here ends up not being chosen by the user, try to remove it (if it is
2496         empty, which it should be since we created it) (BNC #432754)
2498 2008-11-21  Aaron Bockover  <abock@gnome.org>
2500         * data/banshee-1.desktop.in.in:
2501         * data/mimetypes.txt: Remove Real Audio/Video mime types (BNC #440615)
2503 2008-11-18  Gabriel Burt  <gabriel.burt@gmail.com>
2505         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
2506         Patch from Brandon Perry fixing warning that mono svn raises (BGO #561392)
2508 2008-11-17  Gabriel Burt  <gabriel.burt@gmail.com>
2510         * src/Core/Banshee.ThickClient/Banshee.Equalizer.Gui/EqualizerWindow.cs:
2511         Patch from Erik Schmidt adding support for hitting Esc to close the
2512         equalizer dialog (BGO #552818).
2514 2008-11-12  Gabriel Burt  <gabriel.burt@gmail.com>
2516         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
2517         Patch from Benjamín Valero Espinosa fixing bug that prevented the last
2518         tracks in a folder from being deleted (BGO #560550).
2520 2008-11-10  Aaron Bockover  <abock@gnome.org>
2522         Banshee 1.4.1 Released
2524 2008-11-10  Aaron Bockover  <abock@gnome.org>
2526         * configure.ac:
2527         * src/AssemblyInfo.cs.in:
2528         * src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs: Added a
2529         third version concept, since we need the assembly version to stay the
2530         same to reflect the stable API version
2532 2008-11-10  Aaron Bockover  <abock@gnome.org>
2534         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/AndroidDevice.cs:
2535         Return the device name simply as what's in the VendorProductInfo
2536         object
2538         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage.addin.xml:
2539         Change to Android G1 Phone, detaching from T-Mobile
2541 2008-11-10  Aaron Bockover  <abock@gnome.org>
2543         * src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapPropertiesDisplay.cs: Extend
2544         Gtk.Alignment and render the frame manually so content can be
2545         centered
2547         * src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapContent.cs: Reworked content
2548         layout to be more visually appealing and space optimizing
2550         * src/Dap/Banshee.Dap.MassStorage/ThemeIcons/16x16/categories/amazon-mp3-source.png:
2551         * src/Dap/Banshee.Dap.MassStorage/ThemeIcons/22x22/categories/amazon-mp3-source.png:
2552         Super hot new store icon from jimmac
2554 2008-11-10  Aaron Bockover  <abock@gnome.org>
2556         * src/Dap/Banshee.Dap.MassStorage/ThemeIcons/32x32/devices/phone-htc-g1-white.png:
2557         * src/Dap/Banshee.Dap.MassStorage/ThemeIcons/16x16/devices/phone-htc-g1-white.png:
2558         * src/Dap/Banshee.Dap.MassStorage/ThemeIcons/22x22/devices/phone-htc-g1-white.png:
2559         * src/Dap/Banshee.Dap.MassStorage/ThemeIcons/48x48/devices/phone-htc-g1-white.png:
2560         * src/Dap/Banshee.Dap.MassStorage/ThemeIcons/128x128/devices/phone-htc-g1-white.png:
2561         Awesome G1 icons from jimmac
2563         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Make FallbackIcon public
2564         and static so other DapSources can use it
2566         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/AndroidDevice.cs:
2567         Use jimmac's awesome G1 icons
2569         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
2570         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageDevice.cs:
2571         Allow devices to override the source icon; set the G1 source 
2573 2008-11-10  Aaron Bockover  <abock@gnome.org>
2575         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageDevice.cs:
2576         Don't use var because gmcs 1.2.5 sucks more than I thought it did
2578         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/DeviceMapper.cs:
2579         Unbreak the build
2581 2008-11-10  Aaron Bockover  <abock@gnome.org>
2583         * src/Core/Banshee.Services/Banshee.Hardware/VendorProductDeviceNode.cs:
2584         Custom Mono.Addins extension node that allows targeting device class
2585         definitions as extensions
2587         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage.addin.xml:
2588         Defined a MassStorageDevice extension point and custom node; added
2589         the T-Mobile G1 devices as extensions using new node support
2591         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/DeviceMapper.cs:
2592         Use Mono.Addins and the new extension node to load custom devices, so
2593         other devices can be supported in the future without requiring
2594         modifications to Banshee
2596         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/AndroidDevice.cs:
2597         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageDevice.cs:
2598         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/CustomMassStorageDevice.cs:
2599         Updated API to ensure everything works well with Mono.Addins'
2600         TypeExtensionNode instantiation
2602 2008-11-09  Eoin Hennessy <eoin@randomrules.org>
2604         * src/Backends/Banshee.Osx/Banshee.OsxBackend/OsxBackend.cs: Fixed issue 
2605         with dock events being ignored due to change in ige-mac-integration api.
2606         Disabled quitting via dock item menu until BGO #560108 is fixed. 
2608 2008-11-09  Sandy Armstrong  <sanfordarmstrong@gmail.com>
2610         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/DeviceMapper.cs:
2611         Add support for T-Mobile G1 with USB Debugging enabled (product_id
2612         changes to 0x0c02).  Fixes BGO #560096.
2614 2008-11-10  Ivan N. Zlatev  <contact@i-nz.net>
2616         * src/Clients/Booter/Booter/Entry.cs:
2617         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
2618         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs:
2619         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
2620         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs:
2621         * src/Core/Banshee.Services/Banshee.Playlist/AbstractPlaylistSource.cs:
2622         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs:
2623         * src/Core/Banshee.Services/Banshee.Sources/Source.cs:
2624         * src/Core/Banshee.Services/Banshee.Collection/BansheeListModel.cs:
2625         * src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs:
2626         * src/Backends/Banshee.Hal/Banshee.HalBackend/Device.cs:
2627         * src/Libraries/MusicBrainz/MusicBrainz/LocalDisc.cs:
2628         * src/Libraries/Migo/Migo.Syndication/FeedEnclosure.cs:  Fix missing () 
2629         in ?? operator usage. Fixes compilation with gmcs HEAD (BGO #559616).
2631 2008-11-10  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
2633         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/FileChooserDialog.cs:
2634         Patch from Cosmin Banu to prevent a crash when importing a file from
2635         recent items (BGO #559823).
2637 2008-11-09  Alan McGovern <alan.mcgovern@gmail.com>
2639         * src/Extensions/Banshee.Torrent/Banshee.Torrent/TorrentService.cs: If the
2640         service is not already running when banshee calls it, we need to ping it a
2641         second time to see if it auto-started.
2643 2008-11-09  Alan McGovern <alan.mcgovern@gmail.com>
2645         * src/Extensions/Banshee.Torrent/Banshee.Torrent/TorrentService.cs:
2646         * src/Extensions/Banshee.Torrent/Banshee.Torrent/TorrentFileDownloadTask.cs:
2647         Update to work with the latest monotorrent.dbus
2649 2008-11-09  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
2651         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageDevice.cs:
2652         Patch from Florent Thoumie to fix compilation with mono 1.2.5 and 1.2.6
2653         (BGO #559776).
2655 2008-11-08  Gabriel Burt  <gabriel.burt@gmail.com>
2657         * src/Extensions/Banshee.Torrent/Banshee.Torrent/TorrentService.cs: Add
2658         explicit private.
2660         * src/Extensions/Banshee.Torrent/Makefile.am:
2661         * build/m4/banshee/torrent.m4: Install and uninstall the MonoTorrent
2662         assemblies.
2664 2008-11-07  Eoin Hennessy <eoin@randomrules.org>
2666         * build/osx/build.env: Added CXX_FLAGS to build env so that C++ gstreamer
2667         plugins are compiled with -mmacosx-version-min. Was the cause of various
2668         crashes on OSX 10.4. 
2670 2008-11-07  Gabriel Burt  <gabriel.burt@gmail.com>
2672         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/StatisticsPage.cs:
2673         Fix the build, broken by the last commit.
2675 2008-11-07  Alexandre Prokoudine  <alexandre.prokoudine@gmail.org>
2677         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/StatisticsPage.cs:
2678         Somebody forgot to mark this message for translation, and there are even 
2679         more in this file.
2681 2008-11-07  Aaron Bockover  <abock@gnome.org>
2683         Banshee 1.4.0.1 Released
2685 2008-11-07  Aaron Bockover  <abock@gnome.org>
2687         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/AndroidDevice.cs:
2688         Ensure a proper folder depth and path layout
2690         * src/Dap/Banshee.Dap/Banshee.Dap/MediaGroupSource.cs: Removed some
2691         overhead do to reworking of the PurchasedMusicActions
2693         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
2694         See if the device provides its own track path and use it if so,
2695         otherwise create one
2697         * src/Core/Banshee.Services/Banshee.Collection/ImportManager.cs: Do not
2698         use number formatting on what will always be integers; copy and paste
2699         failbaug
2701         * src/Dap/Banshee.Dap/Banshee.Dap.Gui/PurchasedMusicActions.cs: Fixed
2702         bug where only one device per instance would show up due to the UI
2703         actions already being registered
2705         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageDevice.cs:
2706         Allow the device to provide a preferred path layout
2708 2008-11-07  Aaron Bockover  <abock@gnome.org>
2710         Banshee 1.4.0 Released
2712 2008-11-07  Aaron Bockover  <abock@gnome.org>
2714         * src/Dap/Banshee.Dap/Banshee.Dap.Gui/PurchasedMusicActions.cs: UI
2715         actions for IPurchasedMusicSource
2717         * src/Dap/Banshee.Dap/Resources/PurchasedMusicSourceUI.xml: UI for
2718         importing purchased music
2720         * src/Dap/Banshee.Dap/Banshee.Dap/IPurchasedMusicSource.cs: Interface
2721         for advertising that the purchased music UI should be connected
2723         * src/Dap/Banshee.Dap/Banshee.Dap/MediaGroupSource.cs: If self
2724         implements IPurchasedMusicSource, connect that UI
2726         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/AndroidDevice.cs:
2727         Implement IPurchasedMusicSource
2729 2008-11-07  Aaron Bockover  <abock@gnome.org>
2731         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/AndroidDevice.cs:
2732         Implemented special support for grouping tracks purchased from the
2733         Amazon MP3 store on the G1 into their own source; also do not allow
2734         deleting these tracks in the main Music source on the device; they
2735         can only be deleted from the Purchased Music source
2737         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageDevice.cs:
2738         Implemented SourceInitialize and DeleteTrackHook methods
2740         * src/Dap/Banshee.Dap/Banshee.Dap/VideoGroupSource.cs:
2741         * src/Dap/Banshee.Dap/Banshee.Dap/PodcastGroupSource.cs: Set AutoHide to
2742         true so these sources will only show up if there is content in them
2744         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
2745         Call SourceInitialize on the MassStorageDevice if we have one and
2746         after the source itself is initialized; call DeleteTrackHook on the
2747         MassStorageDevice if we have one and return false if the hook returns
2748         false, effectively voiding the track deletion from both the disk and
2749         the database
2751         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Make
2752         DeleteTrack return bool; in DeleteTrackList, cache the track against
2753         which DeleteTrack returns false in a skip list and when the cache
2754         iteration is complete, remove any skip list tracks from the cache
2755         list before executing the database purge against the cache list.
2756         Phew.
2758         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Do not add the video and
2759         podcasts group sources since they are now AutoHide and will manage
2760         that on their own
2762         * src/Dap/Banshee.Dap/Banshee.Dap/MediaGroupSource.cs: Implemented an
2763         AutoHide feature that will only show items when the feature is on if
2764         there are actually items in the source
2766         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpSource.cs:
2767         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs:
2768         * src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs:
2769         * src/Dap/Banshee.Dap.Karma/Banshee.Dap.Karma/KarmaSource.cs: Updated to
2770         reflect API change in PrimarySource
2772         * src/Core/Banshee.Services/Banshee.Collection.Database/CachedList.cs:
2773         Implement a Remove method that allows trimming the cache
2775         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Implemented
2776         ContainsChildSource method
2778 2008-11-06  Aaron Bockover  <abock@gnome.org>
2780         This commit provides my first pass at allowing for custom USB mass storage
2781         device profiles. It allows writing customized classes to special case
2782         certain devices that are just USB mass storage where extra features and
2783         polish are desired. As an example, basic out of the box support for the
2784         T-Mobile G1/Android Phone is implemented. This means the G1 should work
2785         out of the box with no .is_audio_player necessary or any changes to HAL
2787         It supports reading/syncing music purchased through the Amazon MP3 store
2788         on the G1 and syncing cover art along with music.
2790         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageDevice.cs:
2791         Moved the is_audio_player reader into new base device properties class
2793         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/KeyValueParser.cs:
2794         Lots of fixes for parsing the key/value file for is_audio_player
2796         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/CustomMassStorageDevice.cs:
2797         MassStorageDevice class that custom device support classes should derive
2799         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/AndroidDevice.cs:
2800         An implementation of a custom device for the T-Mobile G1/Android phone
2802         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/DeviceMapper.cs:
2803         Given a USB Device, find out what kind of device profile to create, 
2804         checking a table of custom supported devices (e.g. Android devices), and
2805         falling back to the base MassStorageDevice that supports reading 
2806         is_audio_player
2808         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
2809         Use the new MassStorageDevice class for reading customized properties
2810         that are not part of DeviceMediaCapabilities (e.g. from HAL); also when
2811         deleting tracks, check to see if the directory will become empty after
2812         removing the track, and if so, also remove the cover art file if one
2813         exists.
2815         * src/Core/Banshee.Services/Banshee.Hardware/IUsbDevice.cs: New interface
2816         for USB specific device properties
2818         * src/Core/Banshee.Services/Banshee.Hardware/IDevice.cs: Defined
2819         ResolveRootUsbDevice which is to return the top level USB device
2820         as an IUsbDevice
2822         * src/Core/Banshee.Services/Banshee.Hardware/VendorProductInfo.cs: 
2823         Struct to define USB devices through vendor/product IDs
2825         * src/Backends/Banshee.Hal/Banshee.HalBackend/Device.cs:
2826         * src/Backends/Banshee.Hal/Banshee.HalBackend/UsbDevice.cs: Implement the
2827         new IUsbDevice support against HAL
2829         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/PodSleuthDevice.cs: Proxy
2830         the ResolveRootUsbDevice method now defined on IDevice
2832 2008-11-05  Eoin Hennessy <eoin@randomrules.org>
2834         * build/osx/targets/gst-plugins-bad-qtwrapper-fixes.patch:
2835         Added a patch containing a number of fixes for qtwrapper issues in 
2836         gst-plugins-bad 0.10.9 backported from current cvs. Makes playback on 
2837         OSX considerably more stable.
2839 2008-11-05  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
2841         * src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs:
2842         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/AboutDialog.cs: Patch
2843         from Maxim Ermilov to make the about dialog not modal (BGO #558050).
2845 2008-11-04  Aaron Bockover  <abock@gnome.org>
2847         * configure.ac: Automatically --enable-release if there is
2848         no .svn directory (this is for you, packagers)
2850         * src/Libraries/Hyena.Gui/Hyena.Gui.dll.config: linux->osx
2852 2008-11-04  Aaron Bockover  <abock@gnome.org>
2854         * build/build.rules.mk:
2855         * configure.ac: Do not run the DllImport verification when 
2856         configured as a release build
2858 2008-11-04  Aaron Bockover  <abock@gnome.org>
2860         * build/Makefile.am:
2861         * build/DllMapVerifier.cs:
2862         * build/dll-map-makefile-verifier:
2863         * build/build.rules.mk: Wrote a DllImport and config file map verifier
2864         tool that analyzes source code and the build to ensure that any DllImport
2865         reference in the code must have a map in the config file or an explicit
2866         ignore in the build; also ensures that if a config file exists, it is
2867         included in module_SCRIPTS so it gets installed in the system
2869         * src/Clients/Booter/Makefile.am:
2870         * src/Clients/Booter/Banshee.exe.config:
2871         * src/Clients/Booter/Booter/Entry.cs: 
2872         * src/Backends/Banshee.Unix/Banshee.Unix.dll.config:
2873         * src/Backends/Banshee.Unix/Makefile.am:
2874         * src/Libraries/Hyena.Gui/Hyena.Gui.dll.config: Fixed up more DLL maps
2876 2008-10-31  Sandy Armstrong  <sanfordarmstrong@gmail.com>
2878         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
2879         Remove unneeded "using System.Linq;" that was breaking the build on
2880         older Mono installations.
2882 2008-10-31  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
2884         * src/Core/Banshee.Core/Banshee.Base/SafeUri.cs:
2885         * src/Core/Banshee.Core/Banshee.Base/Localization.cs:
2886         * src/Backends/Banshee.Unix/Banshee.IO.Unix/Directory.cs:
2887         * src/Libraries/Hyena.Gui/Hyena.Gui.dll.config:
2888         * src/Libraries/Hyena.Gui/Hyena.Gui/PangoCairoHelper.cs: Fix a 
2889         DllNotFoundException by making the DllImport statements match the dllmap
2890         in the .config files (BGO #557868).
2892 2008-10-29  Gabriel Burt  <gabriel.burt@gmail.com>
2894         * src/Clients/Nereid/Nereid/PlayerInterface.cs: Use a method instead of an
2895         anonymous delegate to handle a ButtonPress event, fixing a strange crash
2896         that I think is probably an issue in Mono (BGO #556573).
2898 2008-10-27  Aaron Bockover  <abock@gnome.org>
2900         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/FieldPage.cs:
2901         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/HelpPage.cs:
2902         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/ITrackEditorPage.cs:
2903         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/StatisticsPage.cs:
2904         Removed Changed, not needed
2906         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
2907         Add EnqueueTrack, generalize the other Enqueue methods to use EnqueueId
2909 2008-10-27  Gabriel Burt  <gabriel.burt@gmail.com>
2911         * libbanshee/libbanshee.cproj:
2912         * *.csproj: Add custom make and make run commands for build/execute
2914         * Banshee.sln: Remove Torrent and MediaWeb projects from the build
2916         * build/build.rules.mk: Add run target that does make run in the top dir
2918 2008-10-26  Aaron Bockover  <abock@gnome.org>
2919         
2920         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/EditorTrackInfo.cs:
2921         Implemented a GenerateDiff method and DiffCount property returning the
2922         number of changed fields on the track; this ensures the confirm changes
2923         dialog only shows up when something actually changes; before the dialog
2924         was based on some hacked GUI change tracking, which could easily be fooled
2926         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/FieldPage.cs:
2927         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TrackEditorDialog.cs:
2928         Updated to use the new track diffing logic
2930         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/BasicTrackDetailsPage.cs:
2931         Implemented the auto-order range closure for track number/count
2933         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/RangeEntry.cs:
2934         Implemented an auto-order UI action (optional)
2936         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/PageNavigationEntry.cs:
2937         Make the navigatable text entry generic since we need to use it for
2938         the track artist if we are editing a compilation album
2940         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/AlbumArtistEntry.cs: 
2941         Control the two navigation entries
2943         * src/Core/Banshee.ThickClient/Banshee.ThickClient.addin.xml: Removed
2944         the help page for now since it only has a picture of jcastro
2946 2008-10-25  Gabriel Burt  <gabriel.burt@gmail.com>
2948         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
2949         Patch from Cosmin Banu to prevent NRE (BGO #557867).
2951 2008-10-25  Wouter Bolsterlee  <wbolster@svn.gnome.org>
2953         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/BasicTrackDetailsPage.cs:
2954         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/StatisticsPage.cs:
2955         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpSource.cs:
2956         * src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapActions.cs:
2958         Added/updated translator comments.
2960 2008-10-25  Wouter Bolsterlee  <wbolster@svn.gnome.org>
2962         * src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs:
2963         Corrected translator comments.
2965 2008-10-25  Aaron Bockover  <abock@gnome.org>
2967         Banshee 1.3.3 Released
2969 2008-10-24  Aaron Bockover  <abock@gnome.org>
2971         * Makefile.am: Patch from patch-master-organizer Bertrand Lorentz
2972         to allow localized uninstalled instances ala 'make run'; his make foo
2973         is strong (BGO #393046)
2975 2008-10-24  Aaron Bockover  <abock@gnome.org>
2977         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/IPlayQueue.cs:
2978         DBus doesn't allow overriding methods, so remove the convenience/default
2980 2008-10-23  Gabriel Burt  <gabriel.burt@gmail.com>
2982         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
2983         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/IPlayQueue.cs: Patch
2984         from Alex Launi and myself adding the ability to prepend a track to the
2985         Play Queue (BGO #557526).
2987 2008-10-22  Gabriel Burt  <gabriel.burt@gmail.com>
2989         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
2990         Fix bug with Play Queue stopping after every song (BGO #557386).
2992 2008-10-22  Aaron Bockover  <abock@gnome.org>
2994         Patch from Eoin Hennessy <eoin@randomrules.org> (BGO #557190)
2996         * src/Backends/Banshee.OSX: Added OSX backend. Consists of a service 
2997         that uses ige-mac-integration-sharp to bind the gtk menu to the 
2998         global menu, make menus more osx-like etc.. and a hardware manager, 
2999         which rigth now, doesn't do anything
3001         * src/Extensions/Banshee.NotificationArea/Makefile.am: Disable the 
3002         NotificationArea extension on OSX as the 'close-to-tray' behaviour it adds 
3003         doesn't really make sense on OSX.
3004         
3005         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs:
3006         Swapping the rendering order of source icon and title fixes a 
3007         rendering glitch on OSX where the icon for a source's first child is 
3008         not rendered. 
3009         
3010 2008-10-22  Gabriel Burt  <gabriel.burt@gmail.com>
3012         * src/Backends/Banshee.Gnome/Banshee.Gnome.addin.xml: Comment out the
3013         DefaultApplicationHelper extension.
3015         * src/Backends/Banshee.Gnome/Makefile.am: Remove the commented out
3016         DefaultApplicationHelper.cs line.
3018         * gstreamer/equalizer/gstiirequalizer.c: Patch from Sebastian Dröge, see
3019         BGO #557260.
3021 2008-10-22  Aaron Bockover  <abock@gnome.org>
3023         This commit fixes a number of OS X build issues and eliminates all 
3024         dependencies on macports. It is now possible to build Banshee simply by
3025         installing Xcode and the Mono 2.0 SDK
3027         * build/osx/build.env: No longer require macports to bootstrap the 
3028         bundle dependencies
3030         * build/osx/oss-00-base-libs.targets: New targets, including intltool and
3031         gettext so we can fully host the dependency build environment; no longer
3032         do we require pieces from macports
3034         * build/osx/build-deps.sh: Use curl instead of wget (provided by macports)
3036         * build/m4/shamrock/i18n.m4:
3037         * configure.ac:
3038         * autogen.sh: Use only intltool, not a mix of gettext and intltool, which
3039         we've used for quite some time and I'm not sure why
3041 2008-10-21  Gabriel Burt  <gabriel.burt@gmail.com>
3043         * src/Backends/Banshee.Gnome/Makefile.am: Remove the
3044         DefaultApplicationHelper from the build because it needs more work;
3045         it should probably be using GIO/g_app_info to set itself as the default,
3046         and it shouldn't cause the "Want to set Banshee as the default?" dialog to
3047         appear on distros where it's already the default.
3049 2008-10-21  Aaron Bockover  <abock@gnome.org>
3051         This is round one of Eoin's core fixes for OS X support. This commit
3052         yields an almost running Banshee. Getting very close. (BGO #557190)
3054         * src/Extensions/Banshee.MultimediaKeys/Makefile.am: Only enable if 
3055         we are on GNOME
3057         * src/Dap/Banshee.Dap/Banshee.Dap/DapService.cs: Don't initialize DAP
3058         service without a HardwareManager instance. Necessary on OS X until we
3059         have a backend implemented
3061         * src/Core/Banshee.Widgets/Banshee.Widgets/VolumeButton.cs:
3062         * src/Core/Banshee.Core/Banshee.Base/SafeUri.cs:
3063         * src/Core/Banshee.Core/Banshee.Base/Localization.cs:
3064         * src/Backends/Banshee.Unix/Banshee.IO.Unix/Directory.cs:
3065         * src/Libraries/Hyena.Gui/Hyena.Gui/CairoExtensions.cs:
3066         * src/Libraries/Hyena.Gui/Hyena.Gui/PangoCairoHelper.cs:
3067         * src/Libraries/Hyena.Gui/Hyena.Gui/CompositeUtils.cs:
3068         * src/Libraries/Hyena.Gui/Hyena.Gui/PixbufImageSurface.cs: Fixed up all
3069         DllImport attributes to import directly against the Win32 target, to be
3070         remapped to proper libraries on linux or osx through the newly fixed
3071         dll map config files
3073         * src/Core/Banshee.Widgets/Banshee.Widgets.dll.config:
3074         * src/Core/Banshee.Core/Banshee.Core.dll.config:
3075         * src/Libraries/Hyena.Gui/Hyena.Gui.dll.config: Made sure all dll maps
3076         will work on Win32 without a .config, map these fixed up names to proper
3077         .so or .dylib targets depending on whether the os is linux or osx
3078         
3079         * src/Core/Banshee.Core/Makefile.am: Include the new .config file
3081         * build/m4/banshee/osx.m4: OS X specific check
3083         * build/m4/banshee/dap-njb.m4: Removed, obsolete
3084         
3085         * build/osx/build.env: Fix up ACLOCAL_FLAGS
3086         
3087         * build/osx/autogen.sh: Pass --enable-osx 
3089         * build/osx/oss-40-managed-libs.targets: Added ige-mac-integration-sharp,
3090         removed mono-addins since that's part of the Mono 2.0 SDK
3091         
3092         * configure.ac: Added --enable-osx configure option, currently just 
3093         makes sure we have ige-mac-integration-sharp. It should also check that we
3094         actually have OS X
3096 2008-10-19  Gabriel Burt  <gabriel.burt@gmail.com>
3098         * configure.ac: Fix typo, text => test.
3100 2008-10-19  Aaron Bockover  <abock@gnome.org>
3102         * build/osx/collect-deps.sh: Script to collect all the privately built
3103         dependencies for bundling
3105         * build/osx/build-deps.sh: Call collect (har har har)
3107 2008-10-19  Aaron Bockover  <abock@gnome.org>
3109         * build/m4/banshee/libbanshee.m4: Require either the x11 or quartz backend
3110         in GDK depending on the target from GTK (based on Eoin's patch)
3112         * configure.ac: Show what graphics backend we'll be building against
3114         * build/osx/autogen.sh: Pass --disable-boo, and always restore the orignal
3115         configure.ac after the script runs
3117         * build/osx/build-deps.sh: Pull in ndesk-dbus, ndesk-dbus-glib, taglib-sharp
3118         and mono-addins as bundle dependencies
3120 2008-10-19  Aaron Bockover  <abock@gnome.org>
3122         This commit adds preliminary build scripts/environment/directions for
3123         building Banshee on OS X, based heavily on Eoin's great work on porting
3124         Banshee to OS X. Banshee does not actually build yet on OS X with this
3125         commit, so don't try. This is phase one of merging Eoin's great work 
3126         into our trunk.
3128         * build/osx/*: Scripts and an awesome README for building on OS X
3130         * autogen.osx.sh: Helper to call into the real OS X autogen wrapper
3132 2008-10-13  Aaron Bockover  <abock@gnome.org>
3134         * configure.ac: Support --disable-gnome, should make building on OS X
3135         a lot nicer; also support --enable-release, which sets the RELEASE
3136         define in gmcs and also turns off -warnaserror; pass --enable-release
3137         when we run distcheck
3139         * build/build.rules.mk: Use the new GMCS_FLAGS generated by configure
3141         * src/Backends/Banshee.Gnome/Makefile.am:
3142         * build/Makefile.am: Respect GCONF_SCHEMAS_INSTALL and ENABLE_GNOME
3144         * src/Core/Banshee.Core/Resources/translators.xml: Updated
3146 2008-10-12  Aaron Bockover  <abock@gnome.org>
3148         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Made ArtworkId
3149         exportable for the collection indexer
3151 2008-10-11  Aaron Bockover  <abock@gnome.org>
3153         Banshee 1.3.2 Released
3155 2008-10-11  Aaron Bockover  <abock@gnome.org>
3157         * src/Core/Banshee.CollectionIndexer/Banshee.Collection.Indexer.RemoteHelper/SimpleIndexerClient.cs:
3158         Implement virtual hook functions (OnStarted, OnBeginUpdateIndex, 
3159         OnEndUpdateIndex); only call OnShutDownWhileIndexing if indeed we were
3160         shutdown while indexing
3162         * build/pkg-config/banshee-1-collection-indexer.pc.in: A separate 
3163         pkg-config file for the standalone and bundleable collection indexer
3164         helper libary 
3166         * NEWS: Small fixes
3168 2008-10-10  Gabriel Burt  <gabriel.burt@gmail.com>
3170         * src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/InternetRadioSource.cs:
3171         Don't accept input from any source.
3173 2008-10-09  Aaron Bockover  <abock@gnome.org>
3175         * src/Clients/Beroe/Beroe/IndexerClient.cs: 
3176         * src/Clients/Beroe/Beroe/RemoteClient.cs: Remove the client from the 
3177         indexer server
3179         * src/Core/Banshee.Services/Banshee.Collection.Indexer/ICollectionIndexer.cs:
3180         * src/Core/Banshee.Services/Banshee.Collection.Indexer/CollectionIndexer.cs:
3181         Fix standalone API issues
3183         * src/Core/Banshee.CollectionIndexer/Hyena/ConsoleCrayon.cs:
3184         * src/Core/Banshee.CollectionIndexer/Hyena/Log.cs:
3185         * src/Core/Banshee.CollectionIndexer/Hyena/DateTimeUtil.cs: Synced from
3186         Hyena
3188         * src/Core/Banshee.CollectionIndexer/Demo/RemoteClient.cs: Moved the 
3189         demo indexer client into its own assembly with simple build
3191         * src/Core/Banshee.CollectionIndexer/update-includes: Script to sync
3192         the stuff from hyena and the indexer dbus interfaces that we need
3194 2008-10-09  Aaron Bockover  <abock@gnome.org>
3196         * src/Core/Banshee.Services/Banshee.Collection.Indexer/CollectionIndexerService.cs:
3197         Update to reflect clensing of the interfaces
3199         * src/Core/Banshee.CollectionIndexer/Banshee.Collection.Indexer.RemoteHelper:
3200         Moved the collection indexer remote helper into a standalone assembly
3201         suitable for including in other projects
3203         * src/Core/Banshee.Services/Banshee.Collection.Indexer/CollectionIndexer.cs:
3204         Fix indexing bug, was using the wrong index for fetching items from
3205         the model
3207         * src/Core/Banshee.Services/Banshee.Collection.Indexer/IIndexerClient.cs:
3208         * src/Core/Banshee.Services/Banshee.Collection.Indexer/ICollectionIndexer.cs:
3209         * src/Core/Banshee.Services/Banshee.Collection.Indexer/ICollectionIndexerService.cs:
3210         Ensure the interfaces are fully standalone and do not depend on any
3211         Banshee API
3213         * Banshee.sln:
3214         * configure.ac:
3215         * build/build.environment.mk:
3216         * src/Core/Banshee.CollectionIndexer/Makefile.am:
3217         * src/Core/Banshee.CollectionIndexer/Banshee.CollectionIndexer.csproj:
3218         Build stuff for moving the collection indexer helper API into its own
3219         light weight and standalone assembly
3221 2008-10-09  Gabriel Burt  <gabriel.burt@gmail.com>
3223         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
3224         Keep track of the track that was playing (if any) before the play queue
3225         took over so we can return playback to the song after it (BGO #547213).
3227         * src/Core/Banshee.Services/Banshee.PlaybackController/PlaybackControllerService.cs:
3228         Add a public PriorTrack property that outside code can use to make the
3229         QueryLinear code grab the next track after the one set, instead of the one
3230         after the 'CurrentTrack' (eg the last one played).  Used to return
3231         playback to the right spot in a source after the queue is finished.
3233 2008-10-09  Gabriel Burt  <gabriel.burt@gmail.com>
3235         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
3236         When finished playing from the play queue, don't play from the prior
3237         source if it wasn't playing when the play queue took over.  Partially
3238         fixes BGO #547213.
3240 2008-10-09  Gabriel Burt  <gabriel.burt@gmail.com>
3242         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TrackEditorDialog.cs:
3243         Clarify the logging we do when a track editor page fails to initialize -
3244         it's not necessarily b/c it doesn't implement ITrackEditorPage.
3246         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/AlbumArtistEntry.cs:
3247         Fix regression where the basic editor page wouldn't load when editing a
3248         single item.
3250 2008-10-08  Gabriel Burt  <gabriel.burt@gmail.com>
3252         This patch refactors the Podcast code so that it can have playlists and
3253         smart playlists.
3255         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastImageFetchJob.cs:
3256         Don't assume the PodcastSource is the only podcast-containing source since
3257         we now have playlists too.
3259         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: 
3260         * src/Clients/Nereid/Nereid/PlayerInterface.cs: Add and use new
3261         Source#GetProperty convenience method.
3263         * src/Core/Banshee.ThickClient/Banshee.Gui/InterfaceActionService.cs:
3264         Support propagation of ActiveSource properties, so that podcast playlists
3265         can have the same actions as the Podcasts source.
3267         * src/Core/Banshee.ThickClient/Banshee.Gui/BansheeActionGroup.cs: Change
3268         Add to accept params.
3270         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/Column.cs: Get rid of cruft, and
3271         take the Id for a column from the sub-property if it exists, otherwise
3272         from the Property (as before).
3274         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastItemView.cs:
3275         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastTrackInfo.cs:
3276         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs:
3277         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/ColumnCellPodcastStatusIndicator.cs:
3278         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastActions.cs:
3279         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Dialog/PodcastPropertiesDialog.cs:
3280         PodcastTrackInfo no longer subclasses from DatabaseTrackInfo - instead its
3281         the ExternalObject to the TrackInfos that are under the PodcastSource.
3282         Change code accessing the PodcastTrackInfo propeties to get to them via
3283         the PodcastTrackInfo.From (track_info) helper.
3285         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/ColumnCellPodcast.cs:
3286         Don't dispose images after rendering them the first time.
3288         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastSourceContents.cs:
3289         Allow other DatabaseSources (eg PlaylistSources) to be used in this view.
3291         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastSource.cs:
3292         Allow playlists, set Artwork and ExternalObject handlers, clean up, change
3293         to reflect PodcastTrackInfo changes, etc.
3295         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastTrackListModel.cs:
3296         Subclass only to set add some default conditions/FROM tables, but no
3297         longer is a model for/returns PodcastTrackInfo objects.
3299         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastFeedModel.cs:
3300         Change the reload fragment to work with playlists.
3302         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs:
3303         * src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/InternetRadioSource.cs:
3304         New (overridable) DatabaseSource API for creating the TrackModel and
3305         default Filters for a DatabaseSource.  Child DatabaseSource objects use
3306         their parent's Create methods so that they get any customizations they
3307         might have (like Podcasts pulling in other tables/conditions).
3309         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
3310         Override ArtworkId and ExternalObject to use the PrimarySource's handlers,
3311         if any, to return these values.  Allows us to customize the ArtworkId for
3312         podcast episodes to be "podcast-$podcasttitle", for instance.
3314         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs:
3315         Allow overriding the default string of table names to select from.
3317         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs: Don't
3318         accept DnD input from the Play Queue (or any parentless
3319         non-PrimarySource).
3321         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Add
3322         ExternalObject and ArtworkId delegates that will change the default
3323         behavior for tracks within this source.
3325         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Add a static
3326         PlaybackFinished event that is fired after play/skip counts are
3327         incremented.  Used by PodcastTrackInfo to set the Item as not new once
3328         it's been played.  Add a default (returning null) implementation of
3329         ExternalObject property.
3331         * src/Libraries/Hyena/Hyena.Query/RelativeTimeSpanQueryValue.cs: Call
3332         DetermineFactor in the static helper so that the factor is set
3333         appropriately; wasn't called anymore after my recent fix to remember the
3334         unit the user entered.
3336         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCell.cs: Allow setting a
3337         sub-property, either with SubProperty = or by setting Property to a value
3338         containing a period.  So setting Property to "Foo.Bar" would call the Bar
3339         getter on the object returning from the Foo getter (called on the object
3340         bound to the cell, usually a DatabaseTrackInfo in Banshee).  This lets us
3341         have columns based on properties of, say, the TrackInfo#ExternalObject,
3342         which we do for Podcasts for Description, PublishedDate, etc.
3344         * src/Libraries/Hyena/Hyena.Collections/Selection.cs: Expose the
3345         RangeCollection in a protected getter.
3347         * src/Core/Banshee.Services/Banshee.Collection/SelectAllSelection.cs: Fix
3348         bug where we considered any selection of Count 2 that contained the 1st
3349         item to be 'all'.
3351 2008-10-08  Aaron Bockover  <abock@gnome.org>
3353         * src/Clients/Beroe/Beroe/RemoteClient.cs: Updated for
3354         SimpleIndexerClient API changes
3356 2008-10-08  Aaron Bockover  <abock@gnome.org>
3358         * src/Core/Banshee.Services/Banshee.Collection.Indexer/CollectionIndexerService.cs:
3359         * src/Core/Banshee.Services/Banshee.Collection.Indexer/ICollectionIndexerService.cs:
3360         Make time a long, since it's time_t
3362         * src/Core/Banshee.Services/Banshee.Collection.Indexer.RemoteHelper/SimpleIndexerClient.cs:
3363         Support getting available export fields, and setting which fields you
3364         want exported to you; abstract the HasCollectionChanged by adding
3365         CollectionCount and CollectionLastModified abstract members that make
3366         the API a little less confusing
3368 2008-10-08  Aaron Bockover  <abock@gnome.org>
3370         * src/Clients/Beroe/Beroe/RemoteClient.cs: Whitespace; stupid MD
3372         * src/Core/Banshee.Services/Banshee.Collection.Indexer.RemoteHelper/SimpleIndexerClient.cs:
3373         More abstraction to make remote clients easier, but I'm mainly just
3374         playing around and seeing what sticks right now
3376         * src/Core/Banshee.Services/Banshee.Collection.Indexer/CollectionIndexer.cs:
3377         Add a lame temporary debug line
3379         * src/Core/Banshee.Services/Banshee.Collection.Indexer.RemoteHelper/IndexerClient.cs:
3380         Fix some raciness; I completely forgot that the remote Index call was
3381         async
3383 2008-10-08  Aaron Bockover  <abock@gnome.org>
3385         * src/Core/Banshee.Services/Banshee.Collection.Indexer.RemoteHelper/SimpleIndexerClient.cs:
3386         Pulled out the implementation from the Beroe remote client example
3387         into a further encapsulation
3389         * src/Clients/Beroe/Beroe/RemoteClient.cs: Now extend the new
3390         SimpleIndexerClient
3392 2008-10-08  Aaron Bockover  <abock@gnome.org>
3394         * src/Clients/Beroe/Beroe/RemoteClient.cs: Check for Shutdown when
3395         processing the index
3397 2008-10-08  Aaron Bockover  <abock@gnome.org>
3399         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TrackEditorDialog.cs:
3400         Only click sync buttons when they are sensitive
3402         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/BasicTrackDetailsPage.cs:
3403         Save the field slot for the track artist and pass it to the album
3404         artist field
3406         * src/Libraries/Hyena.Gui/Hyena.Widgets/PulsingButton.cs: Stop pulsing
3407         when the widget goes to the insensitive state
3409         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/FieldPage.cs:
3410         Return the FieldSlot when adding a field
3412         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/AlbumArtistEntry.cs:
3413         When the compilation button is checked, disable the sync button for
3414         the track artist; that is, if a selection sets album
3415         artist/compilation, track artist will no longer sync, since that
3416         would suck
3418 2008-10-08  Aaron Bockover  <abock@gnome.org>
3420         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TextEntry.cs:
3421         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/GenreEntry.cs:
3422         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/EditorEditableUndoAdapter.cs:
3423         Updated to use the now generic EditableUndoAdapter
3425         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TextViewEntry.cs:
3426         Use the new TextViewEditable, implement ICanUndo
3428         * src/Libraries/Hyena.Gui/Hyena.Gui/EditableUndoAdapter.cs:
3429         * src/Libraries/Hyena.Gui/Hyena.Gui/EditableEraseAction.cs:
3430         * src/Libraries/Hyena.Gui/Hyena.Gui/EditableInsertAction.cs: Make
3431         generic, adapting widgets implementing Gtk.Editable instead of only
3432         against Gtk.Entry
3434         * src/Libraries/Hyena/Hyena/IUndoAction.cs: Whitespace
3436         * src/Libraries/Hyena.Gui/Hyena.Widgets/TextViewEditable.cs: A
3437         Gtk.TextView that implements Gtk.Editable
3439 2008-10-08  Aaron Bockover  <abock@gnome.org>
3441         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/LargeTrackInfoDisplay.cs:
3442         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ClassicTrackInfoDisplay.cs:
3443         Like I fixed for the ListView yesterday, do not recreate the pango
3444         layouts on each expose; this is a slight perf improvement, but mostly,
3445         it stops a huge leak (BGO #555365). Thanks to Michael Monreal for
3446         helping to track this one down!
3448         * src/Libraries/Hyena.Gui/Hyena.Gui/CairoExtensions.cs: Always create a
3449         new layout and return it instead of accepting it as a ref parameter;
3450         dispose the context after we request it from PangoCairoHelper
3452         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
3453         Updated to reflect API change of CairoExtensions.CreateLayout
3455         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
3456         Added a virtual OnThemeChanged to simplify things for sub classes so
3457         they don't have to worry about awkward logic often necessary with
3458         OnStyleSet
3460 2008-10-08  Aaron Bockover  <abock@gnome.org>
3462         * src/Core/Banshee.Services/Banshee.Collection.Indexer/CollectionIndexer.cs:
3463         Add a missing lock, which was causing a crash+race
3465         * src/Clients/Beroe/Beroe/RemoteClient.cs: Add missing call to Index so
3466         we actually can get results from the server
3468 2008-10-06  Aaron Bockover  <abock@gnome.org>
3470         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
3471         Do not re-create the layout on every expose; this fixes a pretty bad leak
3472         and possibly speeds up rendering
3474 2008-10-06  Gabriel Burt  <gabriel.burt@gmail.com>
3476         * src/Core/Banshee.ThickClient/Banshee.Query.Gui/RatingQueryValueEntry.cs:
3477         Always show stars in the Rating widget shown in the smart playlist editor.
3479 2008-10-06  Gabriel Burt  <gabriel.burt@gmail.com>
3481         * src/Libraries/Hyena/Hyena.csproj: Ref System.Xml
3483         * src/Libraries/Hyena/Hyena.Query/FileSizeQueryValue.cs:
3484         * src/Libraries/Hyena/Hyena.Query/RelativeTimeSpanQueryValue.cs:
3485         * src/Libraries/Hyena/Hyena.Query/TimeSpanQueryValue.cs:  Persist and read
3486         the factor to/from XML, so we remember if the user chose '45 days' and
3487         no longer turn it into 1.5 months the next time they edit a smart
3488         playlist (BGO #545887).
3490 2008-10-06  Aaron Bockover  <abock@gnome.org>
3492         This commit finishes the port to using Cairo surface in almost all places
3493         where we do rendering, and adds a surface cache system for improving 
3494         performance in some places.
3496         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellAlbum.cs:
3497         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/ColumnCellPodcast.cs:
3498         Use the new surface methods from artwork manager to directly render
3499         surfaces as stored in the LRU cache
3501         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtworkManager.cs:
3502         Implement a surface caching system that should help improve the rendering
3503         speed of the album browser. Tuned to never grow beyond 1MB of image data
3504         per cache.
3506         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtworkRenderer.cs:
3507         Accept surfaces as input instead of pixbufs. Yay.
3509         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
3510         Port the beast to use cairo image surfaces directly intead of pixbufs,
3511         get rid of the surface cache hack
3513         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/LargeTrackInfoDisplay.cs:
3514         Updated to reflect the surface changes in base class, cache the scene
3515         surfaces to avoid re-rendering on each pass (was cached before, but using
3516         a different mechanism)
3518         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ClassicTrackInfoDisplay.cs:
3519         * src/Clients/Muinshee/Muinshee/MuinsheeTrackInfoDisplay.cs:
3520         Updated to reflect surface changes in the base class
3521                 
3522         * src/Libraries/Hyena/Hyena.Collections/LruCache.cs: Implement a somewhat
3523         lame generic LRU cache collection
3525         * src/Libraries/Hyena.Gui/Hyena.Gui/PixbufImageSurface.cs: Add a new 
3526         ctor that disposes the input pixbuf when done with it, nice for 
3527         inlining pixbuf->surface without temporary variables or leaking
3529         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
3530         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpSource.cs:
3531         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/NotificationAreaService.cs:
3532         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSourceContents.cs:
3533         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TrackEditorDialog.cs:
3534         Updated to reflect API rename in the artwork manager
3536 2008-10-06  Gabriel Burt  <gabriel.burt@gmail.com>
3538         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationType.cs:
3539         Support for creating a station in the station dialog from a lastfm:// URL,
3540         based on a patch from Russ Smith, slightly modified by myself (BGO
3541         #554724).
3543 2008-10-06  Gabriel Burt  <gabriel.burt@gmail.com>
3545         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/GenreEntry.cs:
3546         Comment out Gtk+ 2.12 property (EntryCompletion#InlineSelection).
3548         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TextEntry.cs: Add
3549         another ctor to enable autocomplete.
3551         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/BasicTrackDetailsPage.cs:
3552         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/AlbumArtistEntry.cs:
3553         Use new TextEntry ctor to enable autocomplete for artist, album, and album
3554         artist (BGO #526014).
3556 2008-10-06  Gabriel Burt  <gabriel.burt@gmail.com>
3558         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/GenreEntry.cs:
3559         Implement IEditorField so that changes are noticed and saved (BGO
3560         #553555).  Also create/set an EntryCompletion so that autocomplete works.
3562 2008-10-06  Gabriel Burt  <gabriel.burt@gmail.com>
3564         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
3565         Change way in which we mark the album or artist as changed (and therefore
3566         know to save it) to account for splitting the load-from-db properties out
3567         from the public properties used by the editor etc.  Fixes issue with the
3568         artist info not getting saved in the editor (BGO #555111).
3570 2008-10-06  Gabriel Burt  <gabriel.burt@gmail.com>
3572         * src/Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtJob.cs: When
3573         cancelled make the UserJob go away immediately (BGO #555197).
3575 2008-10-05  Gabriel Burt  <gabriel.burt@gmail.com>
3577         * src/Clients/Nereid/Nereid/ViewContainer.cs: Change "All Columns" in the
3578         search menu to "Artist, Album, or Title" since it does in fact only search
3579         those columns, not all of them (BGO #555122).
3581         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Apply the same
3582         fix as before, suggested by Benoit Boissinot, if the disc_count is zero,
3583         don't do the trick where we return the DiscNumber
3585 2008-10-03  Aaron Bockover  <abock@gnome.org>
3587         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtworkManager.cs:
3588         Implement Surface lookup methods
3590         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/LargeTrackInfoDisplay.cs:
3591         Use PixbufImageSurface
3593         * src/Libraries/Hyena.Gui/Hyena.Gui/CairoExtensions.cs: Use Paint instead 
3594         of Rectangle+Fill, slight perf improvement
3596         * src/Libraries/Hyena.Gui/Hyena.Gui/PixbufImageSurface.cs: A new Cairo 
3597         ImageSurface that directly blits pixel data from a GdkPixbuf; better than 
3598         using Gdk.CairoHelper since this does not require a context (direct 
3599         pixbuf->surface instead of pixbuf->(internal surface)->context->
3600         pattern->surface)
3602 2008-10-03  Gabriel Burt  <gabriel.burt@gmail.com>
3604         This patch adds support for importing all white-listed file formats, even
3605         if TagLib# can't process them.  That includes mov, flv, mkv, divx, and
3606         more (BGO #524595).
3608         * src/Core/Banshee.ThickClient/Banshee.Library.Gui/FileImportSource.cs:
3609         Update to use new ExtensionSet class.
3611         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseImportManager.cs:
3612         Use ExtensionSet class, move the IsWhiteListedFile check to the actual
3613         ImportTrack method because its public and we don't want API-consumers to
3614         be able to bypass the whitelist check.
3616         * src/Core/Banshee.Services/Banshee.Metadata.Embedded/EmbeddedQueryJob.cs:
3617         * src/Core/Banshee.Core/Banshee.Streaming/SaveTrackMetadataJob.cs:
3618         StreamTagger.ProcessUri will return null now if TagLib# can't process a
3619         file, instead of throwing an exception.  Adjust users of that method
3620         accordingly.
3622         * src/Core/Banshee.Core/Makefile.am:
3623         * src/Core/Banshee.Core/Banshee.Core.csproj:
3624         * src/Core/Banshee.Core/Banshee.IO/ExtensionSet.cs: New simple class that
3625         takes an array of strings/extensions and can tell you if a give file
3626         has one of the extensions in the set.
3628         * src/Core/Banshee.Core/Banshee.Streaming/StreamTagger.cs: Catch TagLib#'s
3629         exceptions in ProcessUri and return null.  Change MergeTrackInfo to accept
3630         a null TagLib.File argument, and use a ExtensionSet of several video
3631         extensions that might not work in taglib#, so we can properly mark such
3632         files as videos.
3634         * src/Libraries/Hyena.Gui/Hyena.Gui/GtkUtilities.cs: Change GetFileFilter
3635         helper to take an IEnumerable<string> intead of a string array.
3637 2008-10-03  Gabriel Burt  <gabriel.burt@gmail.com>
3639         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/ExtraTrackDetailsPage.cs:
3640         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/BasicTrackDetailsPage.cs:
3641         Use ValueAsInt instead of casting Value.
3643         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/RangeEntry.cs:
3644         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/SpinButtonEntry.cs:
3645         Instead of listening for the Changed event on SpinButtons, listen for the
3646         ValueChanged.  Fixes issue with not saving any spin-entry values unless
3647         you clicked the up/down arrows (BGO #552698).
3649 2008-10-03  Gabriel Burt  <gabriel.burt@gmail.com>
3651         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
3652         Add TODO about writing metadata to the DAP file to make sure its
3653         MetadataHash will match that of the in-Library track when we load the DAP
3654         next time.
3656 2008-10-03  Gabriel Burt  <gabriel.burt@gmail.com>
3658         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapSource.cs: Add TODO to use
3659         transactions when loading tracks and use slightly better TrackCount method
3660         instead of accessing Tracks.Count twice.
3662         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapTrackInfo.cs: Set BitRate
3663         as well.
3665         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteConnection.cs: Add
3666         thoughts on how to fix the transaction bug so we can bring back the
3667         transaction methods.  Not going to do it now, too fundamental of a change
3668         too close to 1.4.
3670 2008-10-03  Gabriel Burt  <gabriel.burt@gmail.com>
3672         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodTrackInfo.cs: Optimize
3673         cover art setting so that we only create a Pixbuf of the track's cover art
3674         if it's not already set.
3676         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/BasicTrackDetailsPage.cs:
3677         Reconnect the height of the year label to the height of the album artist
3678         label, and make the minimum for the year entry 0 not 1000 so that for
3679         tracks without a year set, it shows up as 0 not 1000.
3681         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/AlbumArtistEntry.cs:
3682         Expose the LabelWidget (the checkbox, actually) so the year label's height
3683         can be set off it.
3685 2008-10-02  Gabriel Burt  <gabriel.burt@gmail.com>
3687         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/FieldPage.cs: Don't
3688         assume a slot has a Label or a LabelClosure.
3690         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/BasicTrackDetailsPage.cs: 
3691         Instead of creating the Is Compilation checkbox here and setting that as
3692         the label for Album Artist, move it and its logic into a dedicated
3693         AlbumArtistEntry widget.  Net effect is you can now sync the Is
3694         Compilation checkbox and the Album Artist value via the single sync
3695         button.
3697         * src/Core/Banshee.ThickClient/Makefile.am:
3698         * src/Core/Banshee.ThickClient/Banshee.ThickClient.csproj:
3699         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/AlbumArtistEntry.cs:
3700         New editor widget that has a checkbox and a text entry.  Add tooltips to
3701         the checkbox and entry to explain what these values are.
3703         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
3704         Add *Field properties for actually loading/saving field values from/to the
3705         database - avoiding the checks and such that happen when you use the
3706         AlbumTitle et al setters.  Based on patch from Benoit Boissinot, remove
3707         the restrictions on setting the AlbumArtist based on IsCompilation to avoid
3708         race condition with whether the IsCompilation bool was set true before
3709         trying to set the AlbumArtist value (BGO #554723).
3711         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Also based on 
3712         the same patch from Benoit, is IsCompilation is false, in the AlbumArtist
3713         getter always return ArtistName, otherwise return the value of the album
3714         artist or Various Artists if its not set.
3716 2008-10-02  Gabriel Burt  <gabriel.burt@gmail.com>
3718         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Patch from Benoit
3719         Boissinot. If the track_count is zero, don't do the trick where we return
3720         the TrackNumber (BGO #554720).
3722 2008-10-02  Gabriel Burt  <gabriel.burt@gmail.com>
3724         * src/Libraries/Migo/Migo.Syndication/FeedUpdateTask.cs:
3725         * src/Libraries/Migo/Migo.TaskCore/Migo.TaskCore.Collections/TaskList.cs:
3726         Style fixes.
3728 2008-10-01  Gabriel Burt  <gabriel.burt@gmail.com>
3730         This commit fixes jump-to-playing for podcasts and radio, avoids some
3731         hangs when loading playlists from the command line or Media menu.
3733         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationSource.cs:
3734         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
3735         * src/Core/Banshee.Services/Banshee.PlaybackController/ICanonicalPlaybackController.cs:
3736         * src/Core/Banshee.Services/Banshee.PlaybackController/PlaybackControllerService.cs:
3737         * src/Core/Banshee.Services/Banshee.PlaybackController/IBasicPlaybackController.cs:
3738         Change the Next/Previos/First methods to return a bool saying whether they
3739         handled the action.  So sources can implement IBasicPlaybackController and
3740         return false if they want the normal controller to handle that action.
3742         * src/Extensions/Banshee.FileSystemQueue/Banshee.FileSystemQueue/FileSystemQueueSource.cs:
3743         * src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs:
3744         Make sure playlist parsing (which could involved network access) is done
3745         not on the GUI thread.
3747         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastImageFetchJob.cs:
3748         Reload the whole source when done fetching podcast artwork.
3750         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastSourceContents.cs:
3751         * src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/InternetRadioSourceContents.cs:
3752         Implement ITrackModelSourceContents so jump-to-playing track works for
3753         podcasts and radio.
3755         * src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/InternetRadioSource.cs:
3756         Implement IBasicPlaybackController, and play the next/previous stream
3757         within the station (if any) when Next/Previous are called.
3759         * src/Core/Banshee.Services/Banshee.Playlists.Formats/PlaylistParser.cs:
3760         Add AssertNotInMainThread to help identify places we call this from the
3761         GUI thread.
3763         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs:
3764         In IndexOf method, if the track is a RadioTrackInfo, lookup the IndexOf
3765         its parent track, since RadioTrackInfo is a wrapper.
3767         * src/Core/Banshee.Services/Banshee.Streaming/RadioTrackInfo.cs: Add
3768         PlayPreviousStream method, and return whether able to play next/previous
3769         in those methods, so we can fall back on the normal playback controller if
3770         not.
3772 2008-10-01  Gabriel Burt  <gabriel.burt@gmail.com>
3774         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpSource.cs: Use
3775         track.ArtworkId instead of explicitly calling CreateArtistAlbumId.
3777         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtworkManager.cs:
3778         Remove unused override.
3780         * src/Core/Banshee.Services/Banshee.Metadata/MetadataService.cs: Don't
3781         lookup a track if its ArtworkId is null.
3783         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
3784         Don't set the AlbumArtist value if IsCompilation is false.
3786         * src/Core/Banshee.Core/Banshee.Base/CoverArtSpec.cs: Set null ArtworkId
3787         if either the artist or album is unknown (BGO #549320).
3789 2008-10-01  Gabriel Burt  <gabriel.burt@gmail.com>
3791         * src/Core/Banshee.Services/Banshee.Metadata/MetadataServiceJob.cs: Factor
3792         out the save-to-temp-file-then-move logic into a method, SaveAtomically,
3793         that takes any input Stream and saves it to a file with that save
3794         strategy.
3796         * src/Core/Banshee.Services/Banshee.Metadata.Embedded/EmbeddedQueryJob.cs:
3797         If the file is already a JPG, save it directly as a JPG but using the new
3798         SaveAtomically method.  If it's not a JPG, save it with .cover extension
3799         as before.
3801         * src/Core/Banshee.Services/Banshee.Metadata.FileSystem/FileSystemQueryJob.cs:
3802         Look for PNG and BMP files too (BGO #547841), and save as .cover if not
3803         JPG, and use SaveAtomically method to avoid race.  Also, increase to 30
3804         the threshold number of files in a folder above which we don't take any
3805         image from it.
3807 2008-10-01  Gabriel Burt  <gabriel.burt@gmail.com>
3809         * src/Clients/Nereid/Nereid/PlayerInterface.cs:
3810         * src/Core/Banshee.ThickClient/Banshee.Gui/BaseClientWindow.cs: Add stupid
3811         protected IntPtr ctors.
3813         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Set the transcoder
3814         ErrorHandler and add an entry to the ErrorSource when there is a transcode
3815         error.
3817         * src/Core/Banshee.Services/Banshee.MediaEngine/TranscoderService.cs:
3818         Instead of popping up a dialog with a transode error and cancelling all
3819         other queued transcodes, simply call the error handler for the track and
3820         move on.
3822 2008-09-30  Gabriel Burt  <gabriel.burt@gmail.com>
3824         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtworkManager.cs:
3825         We allow putting files with extension .cover in the ~/.cache/album-art
3826         folder, which means we should, on a later pass, cover them to jpeg if
3827         necessary.  That code path was broken, which also broke embedded cover art
3828         fetching because it always names the files it fetches with a .cover
3829         extension (BGO #388162).
3831 2008-09-30  Gabriel Burt  <gabriel.burt@gmail.com>
3833         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs:
3834         Every 10 minutes refresh any podcasts that haven't been updated in over an
3835         hour (BGO #508418).
3837 2008-09-30  Gabriel Burt  <gabriel.burt@gmail.com>
3839         * src/Dap/Banshee.Dap/Banshee.Dap/DapSync.cs: Ensure that the Sync happens
3840         not on the main thread.  If you changed the Automatic Sync option, it
3841         woudl trigger a sync immediately, but that sync was happening on the GUI
3842         thread.
3844         * src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapActions.cs: DapSync takes care of
3845         threading now, remove SpawnFromMain call here.
3847         * src/Core/Banshee.Services/Banshee.Base/ThreadAssist.cs: Add helper
3848         method AssertNotInMainThread useful for debugging.
3850 2008-09-29  Gabriel Burt  <gabriel.burt@gmail.com>
3852         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Add SupportsVideo and
3853         SupportsPodcast bools with protected setters so subclasses can turn off
3854         the Video and Podcast child sources.
3856         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs: Only enable
3857         video support (syncing and the child source) for devices that support it.
3858         Also don't sync playlists to iPod shuffle devices.  Give feedback about
3859         out-of-space errors.
3861         * src/Dap/Banshee.Dap/Banshee.Dap/DapSync.cs: Don't show/sync video if not
3862         supported.  Sync Music library first.  Improve/fix auto-syncing when you
3863         change your libraries it should work better now.
3865         * src/Dap/Banshee.Dap/Banshee.Dap/DapLibrarySync.cs: Delete playlists if
3866         they end up having no tracks when put on the device.
3868 2008-09-29  Gabriel Burt  <gabriel.burt@gmail.com>
3870         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/XmlColumnController.cs:
3871         Allow setting the LongTitle in the xml.
3873         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastSource.cs:
3874         * src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/InternetRadioSource.cs:
3875         * src/Core/Banshee.Services/Banshee.Library/VideoLibrarySource.cs:
3876         Override the long-title too so that the column names in the context menu
3877         are changed appropriately.
3879 2008-09-29  Aaron Bockover  <abock@gnome.org>
3881         * src/Core/Banshee.ThickClient/Banshee.MediaProfiles.Gui/ProfileComboBox.cs:
3882         Ensure that if there's a mimetype restriction filter and no profiles 
3883         exist to match that filter that the combo box becomes insensitive and
3884         displays 'no profiles'
3886         * src/Core/Banshee.ThickClient/Banshee.MediaProfiles.Gui/ProfileComboBoxConfigurable.cs:
3887         Do not show the profile description box if the combo is insensitive
3889         * src/Core/Banshee.Services/Banshee.MediaProfiles/MediaProfileManager.cs:
3890         When loading profile configurations, re-run the mimetype check to ensure
3891         that the profile is actually valid for the request
3893 2008-09-29  Gabriel Burt  <gabriel.burt@gmail.com>
3895         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/ExtraTrackDetailsPage.cs:
3896         Set some properties on the BPM spin entry - 3 chars max, 0 decimal digits,
3897         and numeric = true.  Also, it shouldn't be syncable.
3899         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCellText.cs: Comment out
3900         Gtk# 2.12-dependent features; only used in commented out tooltip code
3901         anyway.
3903 2008-09-29  Aaron Bockover  <abock@gnome.org>
3905         * src/Clients/Beroe/Beroe/IndexerClient.cs: Log when the client has started
3907         * src/Clients/Beroe/Beroe/RemoteClient.cs: Stubbed out some more 
3908         example client indexer stuff
3909         
3910         * src/Core/Banshee.Services/Banshee.Collection.Indexer.RemoteHelper/IndexerClient.cs:
3911         Add a helper method for creating indexers; fix a small race bug
3913         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellLocation.cs:
3914         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/DefaultColumnController.cs:
3915         Added a new location cell to show local paths as paths and not URIs
3917 2008-09-29  Gabriel Burt  <gabriel.burt@gmail.com>
3919         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
3920         Ignore 0169 warning.
3922 2008-09-29  Gabriel Burt  <gabriel.burt@gmail.com>
3924         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastTrackInfo.cs:
3925         Remove a bunch of old, commented-out code.
3927         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCellRating.cs:
3928         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/IInteractiveCell.cs: Whitespace
3930         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
3931         Factor some useful bits out of ProxyEventToCell that can be reused for
3932         tooltip code.
3934         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView.cs: Implement
3935         tooltips for ListView for ellipsized ColumnCellText cells, but comment it
3936         out for now because there is a segfault bug in Gtk+ or Gtk# that rears its
3937         head once in a while.
3939         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCellText.cs: Add public
3940         UpdateText method and IsEllipsized and Text properties.
3942 2008-09-26  Gabriel Burt  <gabriel.burt@gmail.com>
3944         * src/Core/Banshee.Widgets/Banshee.Widgets/SeekSlider.cs: We were calling
3945         base.OnButtonPressEvent instead of base.OnButtonReleaseEvent in our
3946         ButtonReleaseEvent override -- whoops!  Somehow this used to work with
3947         older Gtk#s, but no longer; anyway, fixed (BGO #536397).
3949 2008-09-25  Gabriel Burt  <gabriel.burt@gmail.com>
3951         This patch adds a Description column to podcasts.
3953         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs:
3954         Fix newline removing migration (remove \r\n first then \n), and add a new
3955         migration to initialize the new Item.StrippedDescription property.
3957         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastSource.cs:
3958         Add a Description column that is stripped of HTML and newlines and
3959         HtmlDecoded (BGO #503481).
3961         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastTrackInfo.cs:
3962         Add a Description property, proxying the item.StrippedDescription.
3964         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastTrackListModel.cs:
3965         Handle sorting by description.
3967         * src/Libraries/Hyena/Hyena/Tests/StringUtilTests.cs: Test the new
3968         RemoveHtml method.
3970         * src/Libraries/Hyena/Hyena/StringUtil.cs: Add RemoveHtml method, very
3971         simple, removes anything that looks like a tag, eg <*>.
3973         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnHeaderCellText.cs:
3974         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCellText.cs: Move the
3975         clipping to the ColumnCellText itself so that all text columns get
3976         properly clipped (was an issue for very long descriptions).
3978         * src/Libraries/Migo/Migo.csproj: Reference System.Web.
3980         * src/Libraries/Migo/Migo.Syndication/FeedItem.cs: Add StrippedDescription
3981         property and UpdateStrippedDescription that handles removing the HTML and
3982         HtmlDecoding.
3984         * src/Libraries/Migo/Migo.Syndication/RssParser.cs: Call
3985         StringUtil.RemoveNewlines here when setting item and feed
3986         title/descriptions.
3988         * src/Libraries/Migo/Migo.Syndication/Feed.cs: The RemoveNewlines call is
3989         now done in RssParser.
3991 2008-09-25  Gabriel Burt  <gabriel.burt@gmail.com>
3993         * src/Libraries/Mtp/Mtp/MtpDevice.cs: Prevent NRE (BGO #552428).
3995 2008-09-25  Gabriel Burt  <gabriel.burt@gmail.com>
3997         * src/Extensions/Banshee.Podcasting/Makefile.am:
3998         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.csproj:
3999         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/ColumnCellYesNo.cs:
4000         New cell for bools that renders yes/no.
4002         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastSource.cs:
4003         Get rid of old combined status column, and add downloaded and new columns
4004         that are sortable.
4006         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastTrackListModel.cs:
4007         Implement sorting for IsNew/IsDownloaded.
4009         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCellText.cs: Whitespace.
4011 2008-09-25  Marek Habersack  <mhabersack@novell.com>
4013         * src/Libraries/Migo/Migo.Syndication/MigoModelProvider.cs: newer
4014         versions of gmcs enforce ordering of 'where' constraints from less
4015         concrete to more concrete types (i.e. interface constraints must
4016         go last).
4018 2008-09-25  Gabriel Burt  <gabriel.burt@gmail.com>
4020         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs: Don't sync on
4021         eject if the device IsReadOnly, and consider the device to be readonly if
4022         the database isn't supported.
4024 2008-09-24  Gabriel Burt  <gabriel.burt@gmail.com>
4026         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs:
4027         Run UPDATE queries against CoreTracks and PodcastItems to remove any
4028         newlines.
4030         * src/Libraries/Hyena/Hyena/Tests/StringUtilTests.cs:
4031         * src/Libraries/Hyena/Hyena/StringUtil.cs: Add and test new method for
4032         removing all newlines from a string.
4034         * src/Libraries/Migo/Migo.Syndication/Feed.cs: Remove newlines from title
4035         and description when setting them (BGO #550008).
4037 2008-09-24  Gabriel Burt  <gabriel.burt@gmail.com>
4039         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TrackEditorDialog.cs:
4040         Fix another NRE.
4042 2008-09-24  Gabriel Burt  <gabriel.burt@gmail.com>
4044         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
4045         Fix NRE (BGO #553665) when editing audio cd tracks.
4047 2008-09-24  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
4049         * src/Extensions/Banshee.Sample/Banshee.Sample/SampleSource.cs: Update
4050         the sample extension so that it compiles again (BGO #551860).
4052 2008-09-24  Gabriel Burt  <gabriel.burt@gmail.com>
4054         * src/Backends/Banshee.Hal/Banshee.HalBackend/DeviceMediaCapabilities.cs:
4055         Catch exceptions thrown by managed dbus (BGO #551311).
4057 2008-09-24  Gabriel Burt  <gabriel.burt@gmail.com>
4059         * src/Dap/Banshee.Dap/Banshee.Dap/DapSync.cs: Call OnUpdated when the
4060         auto-sync pref changes too.
4062 2008-09-24  Gabriel Burt  <gabriel.burt@gmail.com>
4064         * src/Libraries/Hyena/Hyena/StringUtil.cs: Use the invariant culture to
4065         avoid invalid gconf keys (BGO #548144).
4067 2008-09-24  Gabriel Burt  <gabriel.burt@gmail.com>
4069         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/FullscreenWindow.cs:
4070         * src/Clients/Nereid/Nereid/PlayerInterface.cs: Make F11 work to
4071         fullscreen/unfullscreen Banshee too (BGO #553440).
4073 2008-09-24  Gabriel Burt  <gabriel.burt@gmail.com>
4075         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs: Instead of
4076         calling QueueSync after every added or deleted track call it only in
4077         OnTracksAdded/Deleted and when not syncing.  Should fix bug with 'Syncing
4078         iPod' showing up every 10 songs (BGO #552543).  Shorten the timeout till
4079         the actual sync since we no longer rely on it being long enough we'll
4080         add/remove a song and push it back before it goes off.  Could probably get
4081         rid of it altogther.
4083         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Add
4084         AcceptsUserInputFromSource method that returns the same value as
4085         AcceptsInputFromSource.
4087         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Override
4088         AccepsUserInputFromSource to base && CanAddTracks - which is set to false
4089         if the user shouldn't be able to drag tracks from a source to this one, if
4090         the destination is readonly, or a not-manually-managed dap, say.
4092         * src/Dap/Banshee.Dap/Banshee.Dap/RemovableSource.cs: Fix bug with sync
4093         not working because AcceptsInputFromSource was returning false because
4094         sync was enabled;  added another AcceptsUserInputFromSource that is used
4095         to turn on/off DnD from SourceView etc and that returns false still.
4097         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Make sure the file we're
4098         talking about transferring is exists.
4100         * src/Dap/Banshee.Dap/Banshee.Dap/DapLibrarySync.cs: Remove some logging.
4102         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/UserJobTile.cs: Don't
4103         hide the Status label iff it's ever been set to non-null/empty to avoid
4104         the height of the tile changing rapidly in some cases.
4106         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView_DragAndDrop.cs:
4107         Use new AccepsUserInputFromSource method.
4109         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
4110         Avoid NRE that was caught but spewed a lot of logging.
4112         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Style fixes,
4113         and don't set the AddTrackJob status to empty between tracks because that
4114         causes a strange height-change flicker.
4116 2008-09-24  Gabriel Burt  <gabriel.burt@gmail.com>
4118         * src/Clients/Nereid/Nereid/PlayerInterface.cs:
4119         * src/Clients/Nereid/Nereid/ViewContainer.cs: Change the order of some
4120         hides so that the footer widget is hidden before changing the main source
4121         contents widget.
4123         * src/Libraries/Hyena.Gui/Hyena.Widgets/RoundedFrame.cs: Fix bug with
4124         SizeRequest handler that caused the DapInfoBar and the Recommendations
4125         pane to not show up.
4127 2008-09-24  Gabriel Burt  <gabriel.burt@gmail.com>
4129         * src/Core/Banshee.ThickClient/Banshee.Gui/BaseClientWindow.cs: Add a
4130         SetVisible method to allow explicitly setting the state, as opposed to
4131         relying on the Toggle logic, which breaks alt-f4 closing because
4132         apparently the window !IsActive when that's pressed (BNC #257350).
4134         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/NotificationAreaService.cs:
4135         Call SetVisible (false) explicitly from the CloseWindow method.
4137 2008-09-23  Gabriel Burt  <gabriel.burt@gmail.com>
4139         * src/Dap/Banshee.Dap/Banshee.Dap/DapSync.cs: Update the sensitivities of
4140         the library sync prefs when the Manual Sync pref changes, and raise
4141         Updated when that happens too so that the Sync action is immediately
4142         hidden/shown (BGO #552654).
4144         * src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/WidgetFactory.cs:
4145         Fix listening to changes on the Preference and setting the sensitivity and
4146         visibility of the widgets.
4148 2008-09-23  Aaron Bockover  <abock@gnome.org>
4150         * src/Libraries/Hyena.Gui/Hyena.Gui/GtkUtilities.cs: Do nothing if the
4151         theme is null
4153 2008-09-23  Aaron Bockover  <abock@gnome.org>
4155         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Windowing.cs:
4156         Removed the old Style override that didn't even work and caused theme
4157         change breakage
4159         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
4160         Use the new and working AdaptGtkRcStyle utility 
4162         * src/Libraries/Hyena.Gui/Hyena.Gui/GtkUtilities.cs: Implement
4163         AdaptGtkRcStyle utility to look up colors through GtkRc and adapt 
4164         them to a given widget
4166 2008-09-23  Aaron Bockover  <abock@gnome.org>
4168         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
4169         Implement IPlayQueue
4171         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/IPlayQueue.cs:
4172         Basic interface for adding files that are already in the library to the
4173         play queue
4175         * src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs: Implement
4176         IDBusExportable and automatically register and unregister sources on the
4177         bus that implement IDBusExportable as well
4179 2008-09-23  Gabriel Burt  <gabriel.burt@gmail.com>
4181         * src/Libraries/Mtp/Mtp/Folder.cs:
4182         * src/Libraries/Mtp/Mtp/Album.cs:
4183         * src/Libraries/Mtp/Mtp/Track.cs: Patch from Salah Coronya adding support
4184         for libmtp >= 0.3.0 (aka libmtp8).  Modified by myself to #if/else the
4185         patch out if building against older versions of libmtp - so still
4186         compatible with libmtp >= 0.2.0 (BGO #542117).
4188         * src/Libraries/Mtp/Makefile.am: Set the define appropriately based on the
4189         version of libmtp we're building against.
4191         * build/m4/banshee/dap-mtp.m4: Allow libmtp >= 0.30.
4193         * build/build.rules.mk: Pass the BUILD_DEFINES variable to the actual
4194         build command, so assemblies can define things to #if around.
4196 2008-09-23  Gabriel Burt  <gabriel.burt@gmail.com>
4198         * src/Core/Banshee.Services/Banshee.Metadata.FileSystem/FileSystemQueryJob.cs:
4199         Log a message when we ignore cover art in folders b/c too many files in
4200         the folder.
4202 2008-09-23  Aaron Bockover  <abock@gnome.org>
4204         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdDiscModel.cs:
4205         Add a method for raising the reloaded event, NotifyUpdated
4207         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdSource.cs:
4208         Call NotifyUpdated on the model, not OnUpdated on the source; fixes the 
4209         redrawing when locking/unlocking tracks for playback during the rip 
4211         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdRipper.cs: Do not 
4212         show the rip speed factor (e.g. 15x) until it has settled to an appropriate
4213         value, somewhere between 1x and 200x
4215         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/AudioCdRipper.cs: Load
4216         either the Vorbis or FLAC audio profiles if there is no configured rip
4217         profile and set the active profile in this case; this fixes the bug where
4218         ripping a CD is not possible unless the user first chooses/changes the
4219         ripping profile in the preferences dialog (BGO #528621)
4221 2008-09-22  Aaron Bockover  <abock@gnome.org>
4223         Banshee 1.3.1 Released
4225 2008-09-22  Aaron Bockover  <abock@gnome.org>
4227         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdDiscModel.cs:
4228         Compute the PCM file size for each track, set it on AudioCdTrackInfo, 
4229         and aggregate these values into a disc size
4231         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdSource.cs: 
4232         Implement IFileSizeAggregator and report the disc size
4234         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/EditorTrackInfo.cs:
4235         Only dump the taglib read exception if the URI scheme is file
4237         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TrackEditorDialog.cs:
4238         Show either an Editor or Properties title based on the editor mode
4240 2008-09-22  Gabriel Burt  <gabriel.burt@gmail.com>
4242         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdSource.cs:
4243         Override HasViewable/EditableTrackProperties to true so can finally edit
4244         audio CD track information again before ripping (BGO #532467).
4246         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Don't require
4247         the source to have a DatabaseTrackListModel to view/edit props
4249 2008-09-22  Aaron Bockover  <abock@gnome.org>
4251         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
4252         Only draw the header separator if the column can be resized, or a previous
4253         header separator has already been drawn - this allows leading columns
4254         to appear as one column
4256 2008-09-22  Aaron Bockover  <abock@gnome.org>
4258         * src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/InternetRadioSource.cs:
4259         Disable viewing read only properties
4261         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: 
4262         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml:
4263         Support read only and editable property items
4265         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Added 
4266         HasViewableTrackProperties and HasEditableTrackProperties items, defaulting
4267         to false
4269         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Override
4270         the new properties above to be true
4272         * src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs: Renamed
4273         Title to Name
4275 2008-09-20  Gabriel Burt  <gabriel.burt@gmail.com>
4277         * src/Extensions/Banshee.MediaWeb/Banshee.MediaWeb/MediaWebSource.cs:
4278         * src/Extensions/Banshee.MediaWeb/Banshee.MediaWeb/MediaWebView.cs: Add
4279         debugging, and send to hulu not miroguide.com b/c the later doensn't work
4280         atm due to SSL certs.
4282         * configure.ac: Echo any manually-enabled unstable/unfinished features.
4284         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/DownloadManager/DownloadUserJob.cs:
4285         Currently transferring => Transferring
4287 2008-09-19  Gabriel Burt  <gabriel.burt@gmail.com>
4289         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Header.cs:
4290         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
4291         Fix bug I introduced the other day with not being able to DnD more than
4292         one track because all but the pointed-to track would get unselected when
4293         you tried to drag (BGO #552715).
4295 2008-09-19  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
4297         * src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs: Patch from
4298         Michael Monreal to make the help menu HIG compliant (BGO #552700).
4300 2008-09-18  Aaron Bockover  <abock@gnome.org>
4302         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Header.cs: Use
4303         the foreground selected color from the menu item, not the label
4305 2008-09-18  Gabriel Burt  <gabriel.burt@gmail.com>
4307         * src/Core/Banshee.ThickClient/Banshee.ThickClient.csproj:
4308         * src/Core/Banshee.ThickClient/Makefile.am:
4309         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellTrackAndCount.cs:
4310         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellDiscAndCount.cs:
4311         New classes for N of M columns for track/disc #/count.
4313         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/DefaultColumnController.cs:
4314         Make the track # column have no title in its header, and get rid of the
4315         disc/track count and disc # columns, replacing them with two new ones from
4316         the new classes.
4318         * src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs: Rename
4319         DiscField to DiscNumberField, and sort the disc sort-key similar to how
4320         track# is sorted.
4322         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/Column.cs: Allow setting the Id.
4324         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCellText.cs: Allow setting
4325         the min/max strings directly.  Used by two new columns to avoid creating
4326         TrackInfo objects just to set the min/max strings.
4328 2008-09-18  Aaron Bockover  <abock@gnome.org>
4330         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Header.cs:
4331         Fix math for choosing the number of rows to influence the number of
4332         columns for aesthetic column menu
4334 2008-09-18  Aaron Bockover  <abock@gnome.org>
4336         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Header.cs:
4337         Force the foreground color of embedded menu labels in the prelight state
4338         to use the foreground color from the selected state (BGO #524897)
4340 2008-09-18  Gabriel Burt  <gabriel.burt@gmail.com>
4342         * src/Libraries/Hyena/Hyena.Data/ColumnDescription.cs: Add a LongTitle
4343         property.
4345         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/DefaultColumnController.cs:
4346         Use the QueryField.ShortLabel in the ColumnDescription for the Title, and
4347         set the LongTitle to the field's Label property.
4349         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Header.cs: Use
4350         the LongTitle in the menus.
4352 2008-09-18  Gabriel Burt  <gabriel.burt@gmail.com>
4354         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/ColumnCellPublished.cs:
4355         Use the new SetMinMaxStrings method in ColumnCellText to define the
4356         min/max widths for these columns.
4358         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/ColumnCellUnheard.cs:
4359         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/ColumnCellDownloadStatus.cs:
4360         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellQueryText.cs:
4361         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellDateTime.cs:
4362         Update to new ColumnCellText API, replacing the Text property with a
4363         GetText method so we can get the text for any arbitrary object (the
4364         min/max strings, for example) instead of just the bound object.
4366         * src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs: Add ShortLabels
4367         for a few fields, and make sorting by Grouping the same as sorting by
4368         track.
4370         * src/Libraries/Hyena/Hyena.Query/QueryField.cs: Add a ShortLabel property
4371         that default to the value of Label.
4373         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/XmlColumnController.cs:
4374         Only set the min/max widths if they were actually specified in the XML.
4376         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellFileSize.cs:
4377         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellTrackNumber.cs:
4378         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellPositiveInt.cs:
4379         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellDuration.cs:
4380         Use the new SetMinMaxStrings method and change to the new GetText method.
4382         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/DefaultColumnController.cs:
4383         Set the Uri column to ellipsize in the middle of the string, and change
4384         the ColumnCellPositiveInt columns to use its new ctor to specify the
4385         min/max number of digits (eg always 4 for Year).  Use the QueryFields'
4386         ShortLabel property for the column Title.
4388         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnHeaderCellText.cs: Add
4389         static GetArrowWidth method and get rid of MinWidth property.
4391         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ISizeRequestCell.cs: Replace
4392         GetSize method with GetWidthRange.
4394         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/Column.cs: Add CalculateWidths
4395         method that is passed a Pango.Layout so we can calculate an accurate
4396         Min/Max width for a column
4398         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/IHeaderCell.cs: Get rid of
4399         MinWidth property.
4401         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Header.cs: Call
4402         column.CalculateWidths before accessing the Min/MaxWidth properties.  When
4403         resizing a column, don't let it be resized bigger than the MaxWidth.
4405         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
4406         Handle escape key to stop column moving/DnD.  Reorder conditional to avoid
4407         iterating over all columns to see if there is a resizable column at the x
4408         position every time MotionEvent is fired - no need to do that unless the
4409         motion was inside the header. 
4411         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCellText.cs: Replace Text
4412         property that returned the BoundObject with a GetText method that takes
4413         any object.  Add protected SetMinMaxStrings method that subclasses can
4414         use to specify objects, which are converted to strings using GetText and
4415         then their width retrieved using the Pango.Layout passed to GetWidthRange.
4417         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCellRating.cs: Set the Xpad
4418         to 0 - there previously was too much padding on the left/right.  And
4419         replace GetSize and GetWidthRange.
4421         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCellCheckBox.cs: Replace
4422         GetSize with GetWidthRange.
4424 2008-09-18  Aaron Bockover  <abock@gnome.org>
4426         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Header.cs:
4427         Break the column menu into multiple columns so it's easier to read and
4428         navigate, hopefully avoiding crappy menu scrolling in GTK; make the
4429         hide menu item have an icon and italicize the column name
4431 2008-09-18  Aaron Bockover  <abock@gnome.org>
4433         * src/Core/Banshee.Widgets/Banshee.Widgets/LinkLabel.cs: Implement
4434         proper size allocation and requisitioning, read the focus style properties
4435         from a GtkCheckButton on style set, and properly render the checkbutton
4436         focus style; fixes spacing/padding/theme issues with focus (was the 
4437         button style before, at the wrong offset/padding)
4439 2008-09-18  Gabriel Burt  <gabriel.burt@gmail.com>
4441         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/FullscreenWindow.cs:
4442         Fix bug with not resetting the SkipTaskBar/Pager properties when the
4443         fullscreen window is hidden (BGO #546866).
4445 2008-09-18  Gabriel Burt  <gabriel.burt@gmail.com>
4447         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/LargeTrackInfoDisplay.cs:
4448         Fix System.ArgumentOutOfRangeException (BGO #552820).
4450 2008-09-17  Aaron Bockover  <abock@gnome.org>
4452         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Removed
4453         commented out invocation of the old editor
4455         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/TrackEditor.cs:
4456         Removed the old editor implementation
4458         * src/Core/Banshee.ThickClient/Resources/banshee-dialogs.glade: Removed
4459         the old track editor and the obsolete/legacy burner options dialogs
4461 2008-09-17  Aaron Bockover  <abock@gnome.org>
4463         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TrackEditorDialog.cs:
4464         Iterate over all ICanUndo's and disconnect/connect the adapters when
4465         loading new tracks; factored out the ForeachSyncButton methods into
4466         a generic ForeachWidget method taking a generic closure
4468         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/EditorEntryUndoAdapter.cs:
4469         Implement a one-to-many adapter for entry undo adapters; this allows entry
4470         undo adapters to be adapted on a per-track basis to each editor field
4472         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/ICanUndo.cs: 
4473         Interface for fields that support undo/redo
4475         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/GenreEntry.cs:
4476         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TitleEntry.cs:
4477         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TextEntry.cs:
4478         Implement ICanUndo by way of EditorEntryUndoAdapter
4480         * src/Libraries/Hyena.Gui/Hyena.Gui/EntryUndoAdapter.cs: Added 
4481         Connect and Disconnect methods so multiple adapters can listen on the
4482         same widget
4484 2008-09-17  Aaron Bockover  <abock@gnome.org>
4486         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/FieldPage.cs:
4487         Set the Changed property on the current track in the Changed event
4488         
4489         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/EditorTrackInfo.cs:
4490         Added a Changed property
4492         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TrackEditorDialog.cs:
4493         Implemented saving finally, it should work. Test it. File bugs. Made the
4494         message in the confirm cancel dialog slicker by showing the number of
4495         changed out of the total tracks
4497 2008-09-17  Aaron Bockover  <abock@gnome.org>
4499         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellDuration.cs:
4500         Use the new static override in DurationStatusFormatters
4502         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/FieldPage.cs:
4503         Implement Changed event, raise when fields actually change
4505         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/ITrackEditorPage.cs:
4506         Add Changed event
4508         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/HelpPage.cs:
4509         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/StatisticsPage.cs:
4510         Implement Change event, do not raise, because um, nothing is editable here
4512         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TrackEditorDialog.cs:
4513         Open a confirmation dialog when the user tries to cancel and has made
4514         changes
4516         * src/Core/Banshee.Services/Banshee.Sources/DurationStatusFormatters.cs:
4517         Added a new duration formatter, ApproximateVerboseFormatter and added
4518         overrides that do not require a StringBuilder
4520         * src/Core/Banshee.Widgets/Banshee.Widgets/HigMessageDialog.cs: Expose
4521         MessageLabel so it can be edited after the fact
4523 2008-09-17  Aaron Bockover  <abock@gnome.org>
4525         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TrackEditorDialog.cs:
4526         Added logic to make focus and prelight play nice when doing the pulsing
4528 2008-09-16  Aaron Bockover  <abock@gnome.org>
4530         * src/Libraries/Hyena.Gui/Hyena.Gui.Theatrics/Pulsator.cs: Added a 
4531         Stopping property
4533 2008-09-16  Aaron Bockover  <abock@gnome.org>
4535         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TrackEditorDialog.cs:
4536         When the mouse is over the sync all button, tell all the other sync
4537         buttons to start pulsing
4539         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/SyncButton.cs:
4540         Extend PulsingButton instead of Button
4542         * src/Libraries/Hyena.Gui/Hyena.Widgets/PulsingButton.cs: New button that
4543         pulses, it's hot
4545         * src/Libraries/Hyena.Gui/Hyena.Gui.Theatrics/Tests/ChoreographerTests.cs:
4546         Unit tests for the choreographer compositions
4548         * src/Libraries/Hyena.Gui/Hyena.Gui.Theatrics/Choreographer.cs: Factored
4549         out the scaling and pixel rounded from the core compose functions into
4550         separate methods
4552         * src/Libraries/Hyena.Gui/Hyena.Gui.Theatrics/Pulsator.cs: Small Actor<T>
4553         wrapper that implements pulsing logic
4555         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/UserJobTileHost.cs:
4556         * src/Libraries/Hyena.Gui/Hyena.Widgets/AnimatedWidget.cs:
4557         * src/Libraries/Hyena.Gui/Hyena.Widgets/AnimatedBox.cs: Updated for
4558         API changes in Choreographer
4560 2008-09-16  Gabriel Burt  <gabriel.burt@gmail.com>
4562         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/Models/ListModel.cs:
4563         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/Models/FilterableListModel.cs:
4564         Comment out unused classes; should probably be removed.
4566         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapPlaylistSource.cs:
4567         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
4568         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs:
4569         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpSource.cs:
4570         * src/Dap/Banshee.Dap/Banshee.Dap/MediaGroupSource.cs:
4571         * src/Dap/Banshee.Dap/Banshee.Dap/DapSync.cs:
4572         * src/Dap/Banshee.Dap/Banshee.Dap/DapLibrarySync.cs:
4573         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs:
4574         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs:
4575         * src/Core/Banshee.ThickClient/Banshee.SmartPlaylist.Gui/Editor.cs:
4576         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs:
4577         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView_DragAndDrop.cs:
4578         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistFileUtil.cs:
4579         * src/Core/Banshee.Services/Banshee.Playlist/AbstractPlaylistSource.cs:
4580         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs:
4581         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs:
4582         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistDefinition.cs:
4583         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
4584         Update to use new DatabaseSource ctor that takes a PrimarySource, not its DbId.
4586         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
4587         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs:
4588         Use new ctor, and explicitly set TrackModel.CanReorder to true.
4590         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/PersistentColumnController.cs:
4591         Persist on a per-source basis the sort column/direction (BGO #524656).
4593         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/BaseTrackListView.cs:
4594         Set IsEverReordereable to true; but whether the TrackList is actually
4595         reorderable also depends on the IsReorderable property, which is set
4596         automatically if the SortColumn's SortType is None (BGO #551969).
4598         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs:
4599         Added logic to ignore Sort requests if we already are sorted by the
4600         current key/direction.  Also, return true/false based on whether a new
4601         sort was applied (and therefore the model should be Reloaded).  Move the
4602         logic that iterates through None/Asc/Desc and that sets the initial
4603         direction to Asc when sorting by a different column into the ListView.
4605         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Rename
4606         ConfigurationId property to ParentConfigurationId, and add a new
4607         ConfigurationId property that is actually unique to this source.
4609         * src/Core/Banshee.Services/Banshee.Sources/ErrorSource.cs:
4610         * src/Core/Banshee.Services/Banshee.Collection/BansheeListModel.cs:
4611         * src/Libraries/Hyena/Hyena.Data/IListModel.cs:
4612         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListViewTestModule.cs:
4613         Add CanReorder property.
4615         * src/Core/Banshee.Services/Banshee.Library/VideoLibrarySource.cs: Remove
4616         some more columns from the default (music) column list, and set a default
4617         sort-column.
4619         * src/Backends/Banshee.Gnome/Banshee.GnomeBackend/GConfConfigurationClient.cs:
4620         Replace / chars in the namespace with _ for .-separated keys.
4622         * src/Libraries/Hyena/Hyena.Data/ISortable.cs: Change Sort to return bool.
4624         * src/Libraries/Hyena/Hyena.Data/ISortableColumn.cs: Add Id getter.
4626         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnController.cs: Add
4627         SortColumn property, used to get access to the currently-sorted-by column.
4629         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_DragAndDrop.cs:
4630         Replace Reorderable property into IsReorderable and IsEverReorderable,
4631         both of which must be set to true for the ListView to turn be a drag
4632         source/drop dest (overridable as before w/ the Force* properties).
4634         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
4635         Reorderable renamed to IsReorderable.
4637         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
4638         Moved the logic for iterating through None/Asc/Desc here from
4639         DatabaseTrackListModel.cs.
4641         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Model.cs: When
4642         setting the ListView's model, update the sort column, since it is
4643         remembered on a per-source basis now.
4645 2008-09-15  Gabriel Burt  <gabriel.burt@gmail.com>
4647         * src/Core/Banshee.ThickClient/Banshee.Gui/BaseClientWindow.cs: Change the
4648         ToggleVisibility method to Present the window if the window is minimized,
4649         hidden in the tray, or simply not the focused window.  Iff it is the
4650         active window, hide it (BGO #551916).
4652 2008-09-15  Gabriel Burt  <gabriel.burt@gmail.com>
4654         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
4655         Allow shrinking selections with the shift-key pressed (BGO #535561).
4657 2008-09-15  Aaron Bockover  <abock@gnome.org>
4659         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Use the
4660         new editor, even though I still haven't finished implementing save
4662         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/FieldPage.cs:
4663         Support setting a tooltip on the sync buttons
4665         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/StatisticsPage.cs:
4666         Fix a crasher/NRE
4668         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TrackEditorDialog.cs:
4669         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/BasicTrackDetailsPage.cs:
4670         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/ExtraTrackDetailsPage.cs:
4671         Add tooltips
4673 2008-09-15  Gabriel Burt  <gabriel.burt@gmail.com>
4675         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Model.cs: Bring
4676         back logic that scrolls to the first selected item when the view is
4677         refreshed unless it's already in the view (BGO #551970).
4679 2008-09-15  Gabriel Burt  <gabriel.burt@gmail.com>
4681         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastSourceContents.cs:
4682         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/CompositeTrackSourceContents.cs:
4683         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/FilteredListSourceContents.cs:
4684         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseFilterListModel.cs:
4685         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs:
4686         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs:
4687         * src/Core/Banshee.Services/Banshee.Collection/IFilterListModel.cs:
4688         * src/Core/Banshee.Services/Banshee.Collection/FilterListModel.cs:
4689         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Model.cs: Fix
4690         issue with the ListViews getting scrolled to the top of the list every
4691         time you switched sources.
4693 2008-09-15  Gabriel Burt  <gabriel.burt@gmail.com>
4695         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationEditor.cs:
4696         Apply the translation domain fix here too.
4698         * src/Core/Banshee.Core/Banshee.I18n/Catalog.cs: Add a note about the
4699         hardcoded "banshee" for if/when we use this class.
4701 2008-09-15  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
4703         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/GladeWindow.cs: Set
4704         the proper translation domain when loading glade XML files (BGO #536268).
4706 2008-09-15  Aaron Bockover  <abock@gnome.org>
4708         * src/Clients/Beroe/Beroe/IndexerClient.cs: Call ForceShutdown on the
4709         collection indexer service after 2.5 seconds to kick off anyone that
4710         did not respect the CleanupAndShutdown signal
4712         * src/Core/Banshee.Services/Banshee.Collection.Indexer/CollectionIndexerService.cs:
4713         Implemented a ForceShutdown method
4715 2008-09-15  Aaron Bockover  <abock@gnome.org>
4717         * src/Clients/Beroe/Beroe/RemoteClient.cs: Turn debugging on
4719         * src/Core/Banshee.Services/Banshee.Collection.Indexer.RemoteHelper/IndexerClient.cs:
4720         Add debug messages
4722         * src/Core/Banshee.Services/Banshee.Collection.Indexer/CollectionIndexerService.cs:
4723         * src/Core/Banshee.Services/Banshee.Collection.Indexer/ICollectionIndexer.cs:
4724         * src/Core/Banshee.Services/Banshee.Collection.Indexer/ICollectionIndexerService.cs:
4725         * src/Core/Banshee.Services/Banshee.Collection.Indexer/CollectionIndexer.cs:
4726         Moved internal interfaces from the DBus interface to the implementations
4728 2008-09-15  Gabriel Burt  <gabriel.burt@gmail.com>
4730         * src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapContent.cs:
4731         * src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapPropertiesDisplay.cs:
4732         * src/Libraries/Hyena.Gui/Hyena.Widgets/RoundedFrame.cs: Add protected
4733         IntPtr ctor to avoid GLib.MissingIntPtrCtorException I don't honestly
4734         understand (BGO #552169).
4736 2008-09-15  Aaron Bockover  <abock@gnome.org>
4738         * src/Clients/Beroe/Beroe/IndexerClient.cs: Support a --client option to
4739         run the fake indexer client
4741         * src/Clients/Beroe/Beroe/RemoteClient.cs: An example client indexer
4742         that doesn't really do anything
4744         * src/Core/Banshee.Services/Banshee.Collection.Indexer.RemoteHelper/IndexerClient.cs:
4745         First pass at a wrapper implementing the proper logic for interacting
4746         with the Banshee indexer and respecting the boot sequence and client
4747         startup hints
4749 2008-09-12  Gabriel Burt  <gabriel.burt@gmail.com>
4751         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdSource.cs:
4752         Whitespace.
4754         * src/Backends/Banshee.Gnome/Banshee.GnomeBackend/GConfConfigurationClient.cs:
4755         Replace all whitespace with underscores to prevent an invalid key/crash.
4757 2008-09-12  Gabriel Burt  <gabriel.burt@gmail.com>
4759         * src/Extensions/Banshee.PlayQueue/Makefile.am:
4760         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue.csproj:
4761         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
4762         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueActions.cs:
4763         Separate out the PlayQueue actions into their own subclass of
4764         BansheeActionGroup, so they are disposed of properly when the plugin is,
4765         etc (BGO #552005).  Also, don't show Add to Play Queue action when in the
4766         play queue iteslf (BGO #551672).
4768         * src/Core/Banshee.ThickClient/Banshee.Gui/BansheeActionGroup.cs: Check
4769         whether the action group is already registered before [un]registering.
4771 2008-09-12  Gabriel Burt  <gabriel.burt@gmail.com>
4773         * src/Extensions/Banshee.RemoteAudio/Banshee.RemoteAudio/RemoteAudioService.cs:
4774         Avoid NRE when disposing if the network isn't connected.
4776 2008-09-12  Aaron Bockover  <abock@gnome.org>
4778         * src/Core/Banshee.Services/Banshee.Collection.Indexer/CollectionIndexerService.cs:
4779         Remove unused variable
4781         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Recommendations/RecommendationService.cs:
4782         * src/Libraries/Hyena/Hyena.Collections/QueuePipelineElement.cs: Fixes to
4783         work around compiler bugs in gmcs 1.2.5
4785 2008-09-11  Aaron Bockover  <abock@gnome.org>
4787         Banshee 1.3.0 Released
4789 2008-09-11  Aaron Bockover  <abock@gnome.org>
4791         * src/Core/Banshee.Services/Banshee.Collection.Indexer/CollectionIndexerService.cs:
4792         * src/Core/Banshee.Services/Banshee.Collection.Indexer/ICollectionIndexerService.cs:
4793         Split HasCollectionChanged method to HasCollectionCountChanged and 
4794         HasCollectionLastModifiedChanged methods
4796 2008-09-11  Aaron Bockover  <abock@gnome.org>
4798         * src/Extensions/Banshee.FileSystemQueue/Banshee.FileSystemQueue/FileSystemQueueSource.cs:
4799         Implement playlist loading into the FSQ
4801         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistFileUtil.cs:
4802         Allow playlist importing to work against any PrimarySource
4804         * configure.ac: Disable the DEVEL_BUILD
4806 2008-09-11  Gabriel Burt  <gabriel.burt@gmail.com>
4808         * build/m4/banshee/dap-ipod.m4: Bump ipod-sharp to 0.8.1
4810 2008-09-11  Gabriel Burt  <gabriel.burt@gmail.com>
4812         * src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs:
4813         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml: Add
4814         Rescan action that triggers rescan of the Music Library folder.
4816         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseImportManager.cs:
4817         Remove unnecessary DateAdded set.
4819         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
4820         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Add
4821         FileModifiedStamp and LastSyncedStamp properties.
4823         * src/Core/Banshee.Services/Makefile.am:
4824         * src/Core/Banshee.Services/Banshee.Services.csproj:
4825         * src/Core/Banshee.Services/Banshee.Collection/RescanPipeline.cs: New file
4826         that scans all files in a Library's BaseDirectory, importing new items,
4827         removing items no longer on disk, and identifying items that were renamed.
4829         * src/Libraries/Hyena/Hyena.Collections/QueuePipelineElement.cs:
4830         * src/Core/Banshee.Services/Banshee.Collection/ImportManager.cs: Factor a
4831         lot of the counting of the ImportElement up into QueuePipelineElement.
4833         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
4834         Add the LastSynced and FileModified columns.
4836         * src/Core/Banshee.Core/Banshee.IO.SystemIO/File.cs:
4837         * src/Core/Banshee.Core/Banshee.IO/File.cs:
4838         * src/Core/Banshee.Core/Banshee.IO/IFile.cs:
4839         * src/Backends/Banshee.Unix/Banshee.IO.Unix/File.cs: Add GetModifiedTime
4840         method.
4842         * src/Core/Banshee.Core/Banshee.Streaming/StreamTagger.cs: Set
4843         FileModified and LastSynced stamps.
4845         * src/Libraries/Hyena/Hyena.Collections/QueuePipeline.cs: Make sure no
4846         elements still have items left to process when considering if the pipeline
4847         is finished/empty.
4849         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs: Add
4850         CreateFetchCommand method that returns a HyenaSqliteCommand useful for
4851         fetching items from a model with a custom condition/limit/order.
4853 2008-09-11  Aaron Bockover  <abock@gnome.org>
4855         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/AboutDialog.cs: Do
4856         not display the two version strings if they are the same; Wiki->Website
4857         string update
4859         * configure.ac: Bump version to 1.3.0
4861 2008-09-11  Aaron Bockover  <abock@gnome.org>
4863         * src/Clients/Beroe/Beroe/IndexerClient.cs: Call 
4864         IndexerService.RegisterCleanupAndShutdown to notify any connected client
4865         using the indexer that it should release it and let the user use Banshee
4867         * src/Core/Banshee.Services/Banshee.Collection.Indexer/CollectionIndexerService.cs:
4868         * src/Core/Banshee.Services/Banshee.Collection.Indexer/ICollectionIndexerService.cs:
4869         Added CleanupAndShutdown event for the DBus interface and a method
4870         for the client to trigger the raising of the event
4872         * src/generate-dbus-docs: Stupid script to dump DBus interfaces to an
4873         HTML blob that I can update on the web site:
4874         http://banshee-project.org/contribute/write-code/dbus-interfaces/
4876 2008-09-11  Aaron Bockover  <abock@gnome.org>
4878         * src/Core/Banshee.Services/Banshee.Collection.Indexer/CollectionIndexerService.cs:
4879         * src/Core/Banshee.Services/Banshee.Collection.Indexer/ICollectionIndexer.cs:
4880         * src/Core/Banshee.Services/Banshee.Collection.Indexer/ICollectionIndexerService.cs:
4881         * src/Core/Banshee.Services/Banshee.Collection.Indexer/CollectionIndexer.cs:
4882         Use Hyena.Action instead of System.Action
4884         * src/Libraries/Hyena/Hyena/Delegates.cs: Implement Hyena.Action delegate
4886 2008-09-11  Aaron Bockover  <abock@gnome.org>
4888         * src/Clients/Halie/Halie/Client.cs: Moved the indexer reboot hint to 
4889         the booter client
4891         * src/Clients/Booter/Booter/Entry.cs: Finished implementing the new 
4892         boot sequence
4894         * src/Clients/Beroe/Beroe/IndexerClient.cs: DBus fixes
4896         * src/Core/Banshee.Services/Banshee.ServiceStack/DBusConnection.cs:
4897         * src/Core/Banshee.Services/Banshee.ServiceStack/DBusServiceManager.cs:
4898         Support registering and finding objects on multiple busses without 
4899         horribly breaking API
4901         * src/Core/Banshee.Services/Banshee.Collection.Indexer/CollectionIndexerService.cs:
4902         * src/Core/Banshee.Services/Banshee.Collection.Indexer/ICollectionIndexer.cs:
4903         * src/Core/Banshee.Services/Banshee.Collection.Indexer/ICollectionIndexerService.cs:
4904         * src/Core/Banshee.Services/Banshee.Collection.Indexer/IIndexerClient.cs:
4905         * src/Core/Banshee.Services/Banshee.Collection.Indexer/CollectionIndexer.cs:
4906         Register the indexer stuff on a new bus so it can be activated without
4907         spawning the thick client: org.bansheeproject.CollectionIndexer
4909         * configure.ac:
4910         * data/Makefile.am: 
4911         * data/org.bansheeproject.CollectionIndexer.service.in: Add the new 
4912         activatable service
4914 2008-09-11  Aaron Bockover  <abock@gnome.org>
4916         * src/Clients/Booter: New client to take care of the booting of other
4917         clients based on the crazy boot sequence logic (to be added)
4919         * src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs: Moved
4920         the non-GUI related boot logic to the new Booter client
4922         * src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs:
4923         Call DBusConnection.Connect
4925         * src/Core/Banshee.Services/Banshee.ServiceStack/DBusConnection.cs:
4926         * src/Core/Banshee.Services/Banshee.ServiceStack/DBusServiceManager.cs:
4927         Refactored slightly to allow for the use of multiple busses
4928         
4929         * src/Clients/Halie/Halie/Client.cs:
4930         * src/Clients/Beroe/Beroe/IndexerClient.cs: Updated to reflect small API
4931         change in DBusConnection
4933         * build/build.environment.mk:
4934         * Banshee.sln:
4935         * configure.ac: Add Booter
4937 2008-09-10  Aaron Bockover  <abock@gnome.org>
4939         * src/Core/Banshee.Services/Banshee.Collection.Indexer/CollectionIndexerService.cs:
4940         * src/Core/Banshee.Services/Banshee.Collection.Indexer/ICollectionIndexerService.cs:
4941         Fixed query, implemented Hello
4942         
4943         * src/Core/Banshee.Services/Banshee.Collection.Indexer/CollectionIndexer.cs:
4944         * src/Core/Banshee.Services/Banshee.Collection.Indexer/ICollectionIndexer.cs:
4945         Use the Action delegate
4947 2008-09-10  Gabriel Burt  <gabriel.burt@gmail.com>
4949         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/BaseTrackListView.cs:
4950         Add UriList as a DragDropSource and handle setting the data when such
4951         DragDataGet requests come in, meaning DnD to nautilus works again (BGO
4952         #535128).
4954         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs: Add a
4955         debug message.
4957         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_DragAndDrop.cs:
4958         Allow overriding the DnD Drag and SourceEntries.
4960 2008-09-10  Aaron Bockover  <abock@gnome.org>
4962         * src/Core/Banshee.Services/Banshee.Collection.Indexer/CollectionIndexerService.cs:
4963         * src/Core/Banshee.Services/Banshee.Collection.Indexer/ICollectionIndexerService.cs:
4964         Implemented HasCollectionChanged and a signal for listening to live
4965         collection changes; these facilities are useful for third parties to
4966         know whether or not they should actually create a new index
4968         * src/Core/Banshee.Services/Banshee.Collection.Indexer/CollectionIndexer.cs:
4969         Use LibrarySource, not DatabaseSource
4971 2008-09-10  Aaron Bockover  <abock@gnome.org>
4973         * src/Clients/Halie/Halie/Client.cs: If an IIndexerClient is located
4974         on the bus, tell that client to reboot with any command line arguments
4975         passed, and exit, deferring the invocation
4977         * src/Clients/Beroe/Beroe/IndexerClient.cs: Made a real client, expose
4978         as IIndexerClient on DBus, and support booting into a separate Banshee
4979         process if desired (i.e. someone opens an MP3 file in nautilus while the
4980         indexer client process is running, this still respects the users action)
4982         * src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs: If 
4983         --indexer is passed, run the Beroe indexer client assembly
4985         * src/Core/Banshee.Services/Banshee.Collection.Indexer/CollectionIndexerService.cs:
4986         * src/Core/Banshee.Services/Banshee.Collection.Indexer/ICollectionIndexerService.cs:
4987         Support shutting down
4989         * src/Core/Banshee.Services/Banshee.Collection.Indexer/IIndexerClient.cs:
4990         Interface for the indexer client with the RebootWhenFinished method
4992         * src/Core/Banshee.Services/Banshee.Collection.Indexer/CollectionIndexer.cs:
4993         Print some debugging info, use TrackInfo.ExportVersion
4995         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Added
4996         ExportVersion field
4998 2008-09-10  Aaron Bockover  <abock@gnome.org>
5000         * src/Clients/Halie/Halie/Client.cs: Do not present the UI if the 
5001         indexer argument is passed
5003         * src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs: Run
5004         Beroe if an indexer argument is present and Banshee is not already
5005         running
5007         * src/Core/Banshee.Services/Banshee.Collection.Indexer/CollectionIndexer.cs:
5008         Use TrackInfo.ExportVersion in the output
5010         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Added an 
5011         ExportVersion field
5013 2008-09-10  Aaron Bockover  <abock@gnome.org>
5015         * src/Core/Banshee.Services/Banshee.Collection.Indexer/ICollectionIndexerService.cs:
5016         * src/Core/Banshee.Services/Banshee.Collection.Indexer/CollectionIndexerService.cs:
5017         Implement GetAvailableExportFields method
5019         * src/Core/Banshee.Services/Banshee.Collection.Indexer/ICollectionIndexer.cs:
5020         * src/Core/Banshee.Services/Banshee.Collection.Indexer/CollectionIndexer.cs:
5021         Implement SaveToXml; added SetExportFields; added SaveToXmlFinished event
5023         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Support exporting
5024         only certain fields; make GetExportableProperties public; since 
5025         GetExportableProperties is now public, enforce type derivation; do not
5026         export 0 value fields
5028 2008-09-10  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
5030         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
5031         Patch from Andrés G. Aragoneses to allow emptying the artist and album
5032         fields (BGO #549414).
5034 2008-09-09  Gabriel Burt  <gabriel.burt@gmail.com>
5036         * src/Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtService.cs:
5037         Patch from Bertrand Lorentz working around crasher caused by brokenness in
5038         DatabaseConfigurationClient with respect to dates (BGO #538354).
5040 2008-09-09  Gabriel Burt  <gabriel.burt@gmail.com>
5042         * src/Core/Banshee.Services/Banshee.Playlists.Formats/PlaylistParser.cs:
5043         Patch from Eric Butler, fixed up HACKING-wise by myself, adding support
5044         for HTTP auth in URLs for Internet Radio stations (BGO #548044).
5046 2008-09-09  Gabriel Burt  <gabriel.burt@gmail.com>
5048         * src/Core/Banshee.Core/Resources/contributors.xml: Add David.
5050 2008-09-09  Gabriel Burt  <gabriel.burt@gmail.com>
5052         Patch from David Spreen adding cover art support to Mass Storage DAPs.
5054         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
5055         Add .is_audio_player options CoverArtSize, CoverArtFileName and CoverArtFileType 
5056         where a size of -1 means disabled, 0 means 'just use the current size of specific 
5057         cover' and x > 0 means resize cover to x by x pixels.
5058         Add code to transfer cover to mass storage device art in accordance with those 
5059         values to AddTrackToDevice method.
5061         * src/Core/Banshee.Services/Banshee.Hardware/IDeviceMediaCapabilities.cs:
5062         Add CoverArtSize, CoverArtFileName and CoverArtFileType to IDeviceMediaCapabilities.
5064         * src/Backends/Banshee.Hal/Banshee.HalBackend/DeviceMediaCapabilities.cs:
5065         Add CoverArtSize, CoverArtFileName and CoverArtFileType to HAL backend.
5067 2008-09-09  Gabriel Burt  <gabriel.burt@gmail.com>
5069         * src/Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtJob.cs: 
5070         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Fix bug with
5071         improperly getting the Uri of some tracks when fetching cover art (BGO
5072         #546234).
5074 2008-09-09  Aaron Bockover  <abock@gnome.org>
5076         This commit implements the first pass at providing a mechanism for
5077         third party applications to query and index Banshee's collection in
5078         a safe way - both in process and over DBus. This is for you, GNOME Do.
5079         Still incomplete, but soon to be there. Lots already working. Yay.
5081         * src/Core/Banshee.Services/Banshee.Collection.Indexer/CollectionIndexerService.cs:
5082         * src/Core/Banshee.Services/Banshee.Collection.Indexer/ICollectionIndexerService.cs:
5083         Factory service for creating indexers; accessible internally or over DBus
5085         * src/Core/Banshee.Services/Banshee.Collection.Indexer/ICollectionIndexer.cs:
5086         * src/Core/Banshee.Services/Banshee.Collection.Indexer/CollectionIndexer.cs:
5087         Collection indexer implementation; allows snapshotting a track model
5088         and iterating over it to request tracks internally or over DBus; will
5089         be the object for third party applications to use to query/index Banshee's
5090         collection (GNOME Do, Beagle, Tangerine...)
5092         * src/Clients/Beroe/Beroe/Client.cs: A small standalone client that 
5093         boots only enough services to run the collection indexer service so
5094         applications can read the collection even if Banshee may not already 
5095         be running
5096         
5097         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Finish
5098         implementing the exportable reflector, cache reflection results for faster
5099         subsequent exports; support property aggregation and set linking through
5100         the type hirearchy so all properties marked as exportable are handled
5101         regardless of the defining type; used for exporting/serializing objects
5102         over DBus and for merging different track objects (track editor)
5103         
5104         * src/Core/Banshee.Services/Banshee.Sources/ITrackModelSource.cs:
5105         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs:
5106         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationSource.cs:
5107         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdSource.cs:
5108         * src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs:
5109         Implement/Added ITrackModelSource.Indexable property
5111         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:
5112         Split the service manager initialization/registration chunks into separate
5113         methods so clients can have more control over which services they will
5114         depend on
5115         
5116         * src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs:
5117         Call the new startup methods on the service manager in a new Initialize
5118         method that clients can use
5120         * src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs: Call
5121         Application.Initialize
5123         * src/Core/Banshee.Services/Banshee.ServiceStack/DBusConnection.cs:
5124         Added GLib mainloop support for clients that may strictly do DBus (Beroe)
5126         * src/Core/Banshee.Services/Banshee.ServiceStack/DBusServiceManager.cs:
5127         Implemented object unregistering
5129         * src/Core/Banshee.Services/Banshee.Collection.Database/CachedList.cs:
5130         Implement a method to snapshot the origin model into a cache model
5131         
5132         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs:
5133         Made UnfilteredQuery property public
5135         * src/Core/Banshee.Core/Banshee.Configuration/MemoryConfigurationClient.cs:
5136         Implemented a configuration client that stores everything to memory
5137         and does not persist
5139         * src/Core/Banshee.Services/Banshee.Configuration/DatabaseConfigurationClient.cs:
5140         Small fixes/optimization
5142         * src/Core/Banshee.Core/Banshee.Configuration/ConfigurationClient.cs:
5143         Make MemoryConfigurationClient the default client if Mono.Addins is
5144         not initialized, otherwise clients are loaded from extensions, and 
5145         the XmlConfigurationClient is the fallback      
5147         * src/Libraries/Hyena/Hyena/Timer.cs: Output the timer to stderr
5149         * src/Libraries/Hyena/Hyena.Query/QueryOrder.cs:
5150         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs:
5151         * src/Libraries/Migo/Migo.Syndication/Feed.cs:
5152         * build/build.rules.mk: Build fixes for gmcs 2.0
5154 2008-09-09  Gabriel Burt  <gabriel.burt@gmail.com>
5156         * src/Extensions/Banshee.FileSystemQueue/Banshee.FileSystemQueue/FileSystemQueueSource.cs:
5157         Don't set the active source to the FSQ until it's done importing and
5158         actually imported something.  Prevents it from popping up when OPML files
5159         are passed in.
5161         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs:
5162         Fix copyright header, handle OPML files passed in on the command line (or
5163         by Firefox from the Miro Guide, say).
5165         * src/Backends/Banshee.Gnome/Banshee.GnomeBackend/DefaultApplicationHelper.cs:
5166         Refactor a bit.
5168         * src/Libraries/Migo/Migo.Syndication/OpmlParser.cs: Patch from Brandan
5169         Lloyd, cleaned up and modified slightly by me, for actually parsing feed
5170         URLs out of OPML files.
5172         * data/banshee-1.desktop.in.in:
5173         * data/mimetypes.txt: Add x-miro/x-democracy mimetypes.
5175 2008-09-09  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
5177         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/NotificationAreaService.cs:
5178         Fix a crash after executing "banshee-1 --stop" (BGO #550777).
5180 2008-09-09  Gabriel Burt  <gabriel.burt@gmail.com>
5182         * src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs: When the
5183         client is started and if appropriate, pop up a dialog asking if the user
5184         wants to set Banshee as the default media player.
5186         * src/Core/Banshee.ThickClient/Makefile.am:
5187         * src/Core/Banshee.ThickClient/Banshee.ThickClient.csproj:
5188         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/DefaultApplicationHelperDialog.cs:
5189         New dialog asking the user if they want to set Banshee as the default, and
5190         with a checkbox to remember the decision.
5192         * src/Core/Banshee.Services/Banshee.Services.addin.xml: Add extension
5193         point for DefaultApplicationHelpers.
5195         * src/Core/Banshee.Services/Makefile.am:
5196         * src/Core/Banshee.Services/Banshee.Services.csproj:
5197         * src/Core/Banshee.Services/Banshee.Configuration/DefaultApplicationHelper.cs:
5198         New static class that loads DefaultApplicationHelper backends (only one
5199         for GNOME exists atm), provides a simple API, and contains the
5200         SchemaEntrys for remembering the users previous choice in the matter.
5202         * src/Core/Banshee.Widgets/Banshee.Widgets/HigMessageDialog.cs: Add
5203         a convenience method for adding a custom Button.
5205         * src/Backends/Banshee.Gnome/Banshee.GnomeBackend/GConfConfigurationClient.cs:
5206         Handle the namespace already being absolute (starting in '/') by not
5207         prepending it with /app/banshee-1/.
5209         * src/Backends/Banshee.Gnome/Banshee.Gnome.addin.xml:
5210         * src/Backends/Banshee.Gnome/Banshee.Gnome.csproj:
5211         * src/Backends/Banshee.Gnome/Makefile.am:
5212         * src/Backends/Banshee.Gnome/Banshee.GnomeBackend/DefaultApplicationHelper.cs:
5213         GNOME specific backend to the DefaultApplicationHelper extension point.
5214         Sets Banshee as the default handler for several uri schems, for audio
5215         devices, cds, and media in general.
5217 2008-09-08  Gabriel Burt  <gabriel.burt@gmail.com>
5219         * data/banshee-1.desktop.in.in: Patch from Pacho Ramos removing deprecated
5220         Encoding field and Application category (BGO #550449).
5222 2008-09-08  Gabriel Burt  <gabriel.burt@gmail.com>
5224         * src/Libraries/Hyena.Gui/Hyena.Widgets/ImageButton.cs: Fill and expand
5225         the label so that it's centered (BGO #551436).
5227 2008-09-08  Gabriel Burt  <gabriel.burt@gmail.com>
5229         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs: Fix threading
5230         issues with syncing playlists on eject/dispose.
5232         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Fix typo in comment
5234 2008-09-08  Gabriel Burt  <gabriel.burt@gmail.com>
5236         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Don't add duplicate tracks
5237         to devices.
5239         * src/Libraries/Mtp/Mtp/AbstractTrackList.cs: Remove random WriteLine.
5241 2008-09-08  Gabriel Burt  <gabriel.burt@gmail.com>
5243         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastActions.cs:
5244         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastSource.cs:
5245         Set the PlayCount of items to zero when marked new and 1 when marked read,
5246         and add PlayCount = 0 as a SyncCondition so that only new items are synced.
5248         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
5249         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs:
5250         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpSource.cs:
5251         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Call SyncPlaylists when
5252         ejecting and Sync not enabled, because while tracks are transferred
5253         immeidately when you DnD them etc, playlists aren't saved.
5255         * src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapContent.cs: Remove the testing
5256         status label and hrule.
5258 2008-09-08  Gabriel Burt  <gabriel.burt@gmail.com>
5260         * src/Core/Banshee.Services/Banshee.Networking/Network.cs: Have the
5261         disable-network-features preference take effect immediately.
5263 2008-09-08  Gabriel Burt  <gabriel.burt@gmail.com>
5265         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
5266         * src/Dap/Banshee.Dap/Banshee.Dap/RemovableSource.cs:
5267         * src/Dap/Banshee.Dap/Banshee.Dap/DapSync.cs:
5268         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs:
5269         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs:
5270         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs:
5271         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs:
5272         * src/Core/Banshee.Services/Banshee.Playlist/AbstractPlaylistSource.cs:
5273         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs:
5274         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
5275         Fix things up so that when Sync is enabled for a device the user cannot
5276         DnD tracks or sources onto it, can't create playlists, can't modify
5277         playlists on the device, etc.
5279 2008-09-08  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
5281         * src/Core/Banshee.Services/Banshee.Playlists.Formats/AsxPlaylistFormat.cs:
5282         http URLs in ASX files are in fact mmsh URLs. Patch by Félix Velasco with
5283         a suggestion from Gabriel (BGO #545646).
5285 2008-09-08  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
5287         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapSource.cs: Fix a crash
5288         triggered by DAAP errors (BGO #549192).
5290 2008-09-08  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
5292         * src/Extensions/Banshee.FileSystemQueue/Banshee.FileSystemQueue/FileSystemQueueSource.cs:
5293         Handle relative paths as parameters on the command line (BGO #537600).
5295 2008-09-08  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
5297         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs: Fix
5298         an incorrect condition, so that DelayedInitialize is called on extensions
5299         that are enabled through the banshee UI (BGO #550555).
5301 2008-09-08  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
5303         * src/Backends/Banshee.NowPlaying.X11/libbnpx11/Makefile.am:
5304         * libbanshee/Makefile.am:
5305         * build/build.rules.mk: Some build fixes to allow parallel build with
5306         "make -j2" (BGO #546944).
5308 2008-09-07  Gabriel Burt  <gabriel.burt@gmail.com>
5310         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Create GUI objects on the
5311         GUI thread.
5313         * src/Dap/Banshee.Dap/Makefile.am:
5314         * src/Dap/Banshee.Dap/Resources/ActiveSourceUI.xml:
5315         * src/Dap/Banshee.Dap/Resources/GlobalUI.xml: Move the Sync context menu
5316         item to GlobalUI.
5318         * src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapContent.cs:
5319         * src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapActions.cs: Make the DapActions
5320         static and work for multiple DapSources, including updating properly when
5321         right-clicked on even if not the ActiveSource.
5323         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs: Add an event
5324         for when we update the actions, so that other action groups or code that
5325         needs to update them for right-click context menus can easily do that.
5327 2008-09-07  Gabriel Burt  <gabriel.burt@gmail.com>
5329         * src/Clients/Muinshee/Resources/GlobalUI.xml:
5330         * src/Clients/Muinshee/Muinshee/PlayerInterface.cs: Add the Play
5331         Song/Album items to the Media menu, and add the AccelGroup to the main
5332         window so that s and a (and other accels) work.
5334 2008-09-07  Gabriel Burt  <gabriel.burt@gmail.com>
5336         * src/Core/Banshee.ThickClient/Banshee.Gui/PersistentWindowController.cs:
5337         Don't set the events mask for the controlled window to all - not needed.
5339 2008-09-07  Gabriel Burt  <gabriel.burt@gmail.com>
5341         * src/Core/Banshee.ThickClient/Banshee.Gui/PersistentWindowController.cs:
5342         Fix NRE (BGO #550918).
5344 2008-09-07  Gabriel Burt  <gabriel.burt@gmail.com>
5346         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Add a
5347         StorageName property that defaults to 'Drive', and is used for the
5348         DeleteFromDrive action's label.
5350         * src/Dap/Banshee.Dap/Banshee.Dap/RemovableSource.cs: When the Name
5351         property is set, set the StorageName too, so that the DeleteFromDrive
5352         action's label is still 'Delete From iPod' etc.
5354         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Clarify a couple error
5355         messages.
5357         * src/Core/Banshee.ThickClient/Banshee.Gui/BansheeActionGroup.cs: Don't
5358         inherit action Label and IconName overrides from sources' parents since
5359         that can lead to strange things.  Fixes bug with the UnmapSourceAction's
5360         IconName being the eject icon for playlists under DapSources (BGO #549183)
5362         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Use the
5363         StorageName property on the PrimarySource to set the DeleteFromDrive
5364         label.
5366 2008-09-07  Gabriel Burt  <gabriel.burt@gmail.com>
5368         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/UserJobTile.cs: Fix NRE
5369         in icon code (BGO #551302).
5371 2008-09-06  Gabriel Burt  <gabriel.burt@gmail.com>
5373         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Fix deadlock hang
5374         triggered by Last.fm (BGO #551175).
5376 2008-09-06  Gabriel Burt  <gabriel.burt@gmail.com>
5378         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs:
5379         Fix from Bertrand Lorentz (also applied to new FirstIndexOf method by me)
5380         fixing race condition that caused the Next button to not work half the
5381         time when you had a filter active (BGO #544415).
5383 2008-09-06  Gabriel Burt  <gabriel.burt@gmail.com>
5385         This commit adds playlist support to USB Mass Storage players, and fixes a
5386         bug that causes very slow initial loading of their tracks.
5388         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastFeedModel.cs:
5389         Fix model so that it's filtered by the filters before it.
5391         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
5392         Add playlist support, respecting the HAL
5393         portable_audio_player.playlist_format and playlist_path keys.
5395         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs:
5396         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Add helper
5397         AddYesNoDapProperty method and use it.
5399         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpSource.cs: Call OnTracksAdded
5400         manually after loading the tracks off the device.
5402         * src/Dap/Banshee.Dap/Banshee.Dap/DapSync.cs: Don't reload the models when
5403         the dap isn't yet loaded, or when we're syncing.
5405         * src/Core/Banshee.Services/Banshee.Playlists.Formats/PlaylistFormatDescription.cs:
5406         * src/Core/Banshee.Services/Banshee.Playlists.Formats/M3uPlaylistFormat.cs:
5407         * src/Core/Banshee.Services/Banshee.Playlists.Formats/AsxPlaylistFormat.cs:
5408         * src/Core/Banshee.Services/Banshee.Playlists.Formats/PlsPlaylistFormat.cs:
5409         Add a MimeType property to the description objects.
5411         * src/Core/Banshee.Services/Banshee.Playlists.Formats/PlaylistFormatBase.cs:
5412         In the BaseUri setter, make sure it ends with a directory separator char,
5413         and if not, fix it.
5415         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistFileUtil.cs: Add a
5416         new Load method, factored out from the ImportPlaylist method.
5418         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseImportManager.cs:
5419         ImportFinished renamed to Finished because uses the QueuePipeline event
5420         now. Allow setting the BaseUri in the Load/Import methods.
5422         * src/Core/Banshee.Services/Banshee.Collection/ImportManager.cs: Fix
5423         painful bug caused by the pipelining of the importer.  The track
5424         processing element would sometimes (often) have zero items left when the
5425         scanning element was still working, but we were raising ImportFinished
5426         when that happened, instead of waiting for all elements in the pipeline to
5427         be finished (BGO #548254).
5429         * src/Libraries/Hyena/Hyena.Collections/QueuePipelineElement.cs: Add a
5430         Finished event.
5432         * src/Libraries/Hyena/Hyena.Collections/QueuePipeline.cs: Add a finished
5433         event, raised when all elements in the pipeline are finished.
5435 2008-09-05  Gabriel Burt  <gabriel.burt@gmail.com>
5437         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/DownloadManager/DownloadUserJob.cs:
5438         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/DownloadManager/DownloadManagerInterface.cs:
5439         Slightly more useful job status, shows how many total downloads in the job
5441         * src/Libraries/Mtp/Mtp/Track.cs: Hack around .m4v issue.
5443         * build/m4/banshee/dap-mtp.m4:
5444         * NEWS: Don't allow libmtp8 for now, and clarify how packages need to
5445         require libmtp (to ensure users have the same version the package was
5446         compiled against).
5448 2008-09-05  Gabriel Burt  <gabriel.burt@gmail.com>
5450         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs: Create a
5451         HyenaSqliteCommand to reuse for adding tracks to playlists - should be
5452         faster.
5454         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpSource.cs: Load and save
5455         playlists on MTP devices.
5457         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpTrackInfo.cs: Save the
5458         Mtp.Track's ID in the ExternalID column, cleanup cruft.
5460         * src/Dap/Banshee.Dap/Banshee.Dap/DapLibrarySync.cs: Don't add empty
5461         playlists to devices.
5463         * src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs: Fix
5464         gui-thread issue.
5466         * src/Libraries/Mtp/Mtp/Folder.cs: Override ToString for debugging.
5468         * src/Libraries/Mtp/Mtp/Album.cs: Factor a lot of code that's useful for
5469         the Playlist class into AbstractTrackList, subclass from it.
5471         * src/Libraries/Mtp/Makefile.am:
5472         * src/Libraries/Mtp/Mtp/AbstractTrackList.cs: Factored out code from Album
5474         * src/Libraries/Mtp/Mtp/MtpDevice.cs: Add GetPlaylists () method.
5476         * src/Libraries/Mtp/Mtp/Playlist.cs: Subclass from AbstractTrackList,
5477         implement required methods, add to build.
5479 2008-09-05  Gabriel Burt  <gabriel.burt@gmail.com>
5481         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastTrackListModel.cs:
5482         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs:
5483         Make UpdateUnfilteredAggregates public so we can get an accurate count
5484         without doing a full reload.
5486         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Support
5487         getting an accurate count before having reloaded the track model via a new
5488         UpdateCounts method.
5490         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs: Handle loading
5491         playlists when the device is plugged in, and syncing them.  Podcast
5492         playlists are still TODO - will require changes to ipod-sharp.
5494         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodTrackInfo.cs: Do a better,
5495         more complete job of syncing metadata between TrackInfos and IPod.Track.
5497         * src/Dap/Banshee.Dap/Banshee.Dap/DapSync.cs: Call SyncPlaylists on the
5498         dap source when syncing.  Not a great API, but needed atm at least to tell
5499         the iPod support it needs to save the playlists even if (possibly) zero
5500         tracks were added/removed.
5502         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Remove playlists too when
5503         removing smart playlists.  Remove warning about playlists.
5505         * src/Dap/Banshee.Dap/Banshee.Dap/DapLibrarySync.cs: Handle syncing all
5506         playlists from a library to the device.
5508         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
5509         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs: Fix bug
5510         where we listened for TracksChanged etc events on our PrimarySource even
5511         before we were saved/had an id (BGO #550921).
5513         * src/Core/Banshee.Core/Banshee.Collection/TrackMediaAttributes.cs: Add
5514         comments.
5516 2008-09-04  Brad Taylor  <brad@getcoded.net>
5518         * src/Core/Banshee.ThickClient/Banshee.Gui/InterfaceActionService.cs:
5519         Fix the build under Mono 1.2.6.  For some reason, it doesn't like the
5520         anonymous delegate that was here.
5522 2008-09-04  Aaron Bockover  <abock@gnome.org>
5524         * *.csproj: fixups
5526         * src/Clients/Beroe: Stubbed new indexer client
5528 2008-09-04  Gabriel Burt  <gabriel.burt@gmail.com>
5530         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Correct
5531         logged comment, and fix bug I just introduced with remember the expansion
5532         state of primary sources.
5534 2008-09-04  Gabriel Burt  <gabriel.burt@gmail.com>
5536         * src/Core/Banshee.Services/Banshee.Metadata.Embedded/EmbeddedQueryJob.cs:
5537         * src/Core/Banshee.Services/Banshee.Metadata.FileSystem/FileSystemQueryJob.cs:
5538         Handle more gracefully the case that the directory or file is missing.
5540 2008-09-04  Gabriel Burt  <gabriel.burt@gmail.com>
5542         * src/Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtService.cs:
5543         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Recommendations/RecommendationService.cs:
5544         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastActions.cs:
5545         * src/Extensions/Banshee.MiniMode/Banshee.MiniMode/SourceModel.cs:
5546         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapContainerSource.cs:
5547         * src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/InternetRadioSource.cs:
5548         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdSource.cs:
5549         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
5550         * src/Clients/Nereid/Nereid/PlayerInterface.cs:
5551         * src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapContent.cs:
5552         * src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapActions.cs:
5553         * src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapInfoBar.cs:
5554         * src/Core/Banshee.ThickClient/Banshee.Gui/InterfaceActionService.cs:
5555         * src/Core/Banshee.ThickClient/Banshee.Gui/BansheeActionGroup.cs:
5556         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs:
5557         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs:
5558         * src/Core/Banshee.ThickClient/Banshee.Library.Gui/ImportDialog.cs:
5559         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/UserJobTileHost.cs:
5560         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/UserJobTile.cs:
5561         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs:
5562         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceModel.cs:
5563         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/FilteredListSourceContents.cs:
5564         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceComboBox.cs:
5565         * src/Backends/Banshee.Gnome/Banshee.GnomeBackend/Brasero.cs: Use
5566         ThreadAssist.ProxyToMain to ensure GUI actions happen on the main thread.
5568         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationSource.cs:
5569         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSource.cs:
5570         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingSource.cs:
5571         * src/Extensions/Banshee.FileSystemQueue/Banshee.FileSystemQueue/FileSystemQueueSource.cs:
5572         Get rid of virtual TypeUniqueId property, replace with protected setter.
5574         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastSource.cs:
5575         Use the TypeUniqueId setter, and define SyncCondition and MediaType
5576         properties.
5578         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastTrackInfo.cs:
5579         Set the Podcast MediaType flag after loading the track info from file (if
5580         downloaded) to ensure it doesn't get unset.
5582         * src/Dap/Banshee.Dap.Mtp/Makefile.am:
5583         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/Tests/MtpDapTests.cs: Tests for
5584         converting from TrackInfo to Mtp.Track and back.
5586         * tests/Makefile.am: Add Banshee.Dap.Mtp to list of assemblies to test.
5588         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpSource.cs: Be more careful
5589         about threading, add a GetFolderForTrack method to support Podcasts, and
5590         move the TrackInfo/Mtp.Track conversion into MtpTrackInfo.
5592         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpTrackInfo.cs: Try harder to
5593         set the MediaAttributes, and add an internal method for converting from
5594         TrackInfo to Mtp.Track.
5596         * src/Dap/Banshee.Dap/Makefile.am:
5597         * src/Dap/Banshee.Dap/Banshee.Dap/PodcastGroupSource.cs: New child of
5598         DAPs.
5600         * src/Dap/Banshee.Dap/Banshee.Dap/VideoGroupSource.cs:
5601         * src/Dap/Banshee.Dap/Banshee.Dap/MusicGroupSource.cs: Set the condition
5602         based on the Music/VideoLibrary's AttributesCondition.
5604         * src/Dap/Banshee.Dap/Banshee.Dap/DapSync.cs: Implement IDisposable, fix
5605         up preferences, listen for libraries to change and auto-sync if
5606         appropriate, move the to_remove list into each DapLibrarySync so they
5607         don't clobber other libraries' items.
5609         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Add PodcastGroupSource,
5610         use new TypeUniqueId setter, and auto-sync when plugged in if appropriate.
5612         * src/Dap/Banshee.Dap/Banshee.Dap/DapLibrarySync.cs: Add to_remove smart
5613         playlist, and actually implement deleting the tracks from the DAP and
5614         adding the new ones.
5616         * src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/WidgetFactory.cs:
5617         If the ShowDescription property of the pref is true, then pack the widget
5618         into a VBox and put the description in a label below it.
5620         * src/Core/Banshee.ThickClient/Makefile.am:
5621         * src/Core/Banshee.ThickClient/Banshee.MediaProfiles.Gui/ProfileComboBoxConfigurable.cs:
5622         * src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/DescriptionLabel.cs:
5623         New class that shows text formatted and can be updated via a delegate,
5624         factored out from code in ProfileComboBoxConfigurable.
5626         * src/Core/Banshee.Services/Banshee.MediaProfiles/MediaProfileManager.cs:
5627         Add new GetProfileForExtension helper method.
5629         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
5630         Lazily initialize the provider.
5632         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs:
5633         Prevent NRE and handle empty strings in the AddCondition method.
5635         * src/Core/Banshee.Services/Banshee.Preferences/Root.cs:
5636         * src/Core/Banshee.Services/Banshee.Preferences/Collection.cs: Override
5637         Sensitive and Visible setters, setting the value for each child.
5639         * src/Core/Banshee.Services/Banshee.Preferences/SchemaPreference.cs:
5640         * src/Core/Banshee.Services/Banshee.Preferences/Preference.cs: Raise
5641         ValueChanged event when the value is changed.
5643         * src/Core/Banshee.Services/Banshee.Preferences/Section.cs: Return the
5644         SchemaPreference<T> object created in the Add (SchemaEntry<T>) helper.
5646         * src/Core/Banshee.Services/Banshee.Preferences/PreferenceBase.cs: Add
5647         ShowDescription property, and ValueChanged event.
5649         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs:
5650         * src/Core/Banshee.Services/Banshee.Playlist/AbstractPlaylistSource.cs:
5651         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs:
5652         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Use the new
5653         TypeUniqueId setter, and fix how DbId and AfterInitialize etc are called.
5655         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Add
5656         DeleteAllTracks method, refactor creation of expanded_schema, and
5657         ProxyToMain OnTracksAdded etc calls.
5659         * src/Core/Banshee.Services/Banshee.Sources/ErrorSource.cs: Use new
5660         TypeUniqueId setter and ProxyToMain for OnCleared and OnReloaded methods.
5662         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
5663         Set the Podcast MediaAttribute on all items in the Podcast primary source,
5664         since we had that bug in PodcastTrackInfo that's now fixed.
5666         * src/Core/Banshee.Services/Banshee.Library/LibraryLocationPreference.cs:
5667         Raise ValueChanged where appropriate.
5669         * src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs: Add
5670         SyncCondition, AttributesCondition, MediaTypes, and NotMediaTypes
5671         properties.
5673         * src/Core/Banshee.Services/Banshee.Library/VideoLibrarySource.cs:
5674         * src/Core/Banshee.Services/Banshee.Library/MusicLibrarySource.cs: Set
5675         MediaTypes and NotMediaTypes to filter on audio/video/podcasts as
5676         appropriate.
5678         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
5679         New AddCondition method for restricting a SmartPlaylist beyond the
5680         ConditionTree.
5682         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Rename IsMedia to
5683         HasAttribute, and add SetAttributeIf (bool, attr) helper.
5685         * src/Core/Banshee.Core/Banshee.Streaming/StreamTagger.cs: Only add new
5686         attributes in FindTrackMediaAttributes, don't remove current ones.
5688         * src/Backends/Banshee.Gnome/Banshee.GnomeBackend/GConfConfigurationClient.cs:
5689         Handle null keys.
5691         * src/Libraries/Mtp/Mtp/MtpDevice.cs: Make sure the folder is set, falling
5692         back to the MusicFolder if it's not.
5694         * src/Libraries/Mtp/Mtp/Track.cs: Add a Year helper property that sets the
5695         ReleaseDate appropriately, and add InFolder method.
5697         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs: Fix bug
5698         where VirtualColumns (values from tables other than the primary one)
5699         caused the join-condition with their table to be duplicated.
5701         * Makefile.am: Add make mdb helper, though I haven't really gotten it to
5702         work great yet.
5704 2008-09-04  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
5706         * src/Libraries/Lastfm/Lastfm.Data/LastfmData.cs: Patch from Iain Lane to
5707         not validate characters in XML returned from Last.fm. The Last.fm API 
5708         accepts (and returns) invalid characters sent to it (BGO #538206).
5710 2008-09-03  Gabriel Burt  <gabriel.burt@gmail.com>
5712         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastSourceContents.cs:
5713         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/DownloadStatusFilterView.cs:
5714         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/ColumnCellDownloadStatus.cs:
5715         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastSource.cs:
5716         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/DownloadStatusFilterModel.cs:
5717         * src/Extensions/Banshee.Podcasting/Makefile.am:
5718         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.csproj: Add another
5719         filter for episode downloaded status.
5721 2008-09-03  Gabriel Burt  <gabriel.burt@gmail.com>
5723         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs:
5724         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpSource.cs: Add more
5725         properties that show up in the properties dialog.
5727         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp.csproj: Reference Mtp.
5729         * src/Dap/Banshee.Dap/Banshee.Dap/DapSync.cs: Fix typo.
5731         * src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapContent.cs: Subclass from
5732         DapPropertiesDiaplay and pack in the LargeIcon.
5734 2008-09-03  Gabriel Burt  <gabriel.burt@gmail.com>
5736         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs: Add a bunch of
5737         properties (model, color, firmware, etc) to the properties dialog.  When
5738         loading tracks, don't fail entirely if there is an exception on one.
5739         Improve how/when the name is retrieved off the device, and set as
5740         Activatable so the new Sync UI is visible.
5742         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
5743         Don't automatically save in the PlaybackError setter (BGO #539696).
5745         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Add a
5746         SavePlaybackError method that sets it and then saves it.
5748         * src/Core/Banshee.Services/Banshee.Streaming/RadioTrackInfo.cs:
5749         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
5750         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs: Use
5751         the new SavePlaybackError method.
5753         * configure.ac: Remove remote audio/moonlight from the echo since they're
5754         not yet finished/usable.
5756 2008-09-03  Aaron Bockover  <abock@gnome.org>
5758         * libbanshee/banshee-player-pipeline.c: Disabled the visualization 
5759         pipeline for now since it's a huge CPU hog
5761 2008-09-03  Aaron Bockover  <abock@gnome.org>
5763         Converted project infrastructure from MonoDevelop 1.0 format (mds/mdp) to 
5764         VisualStudio 2005 format (sln/csproj) to help in getting the managed
5765         code to build in Windows
5767 2008-09-03  Gabriel Burt  <gabriel.burt@gmail.com>
5769         Merged branches/banshee/gburt/ -r4443:4452 to trunk (muinshee, working
5770         well but no easy way for end users to run it other than cli).
5772 2008-09-03  Aaron Bockover  <abock@gnome.org>
5774         Merged branches/banshee/abock/@4403 to trunk (the hot new track editor,
5775         but it's still not complete and is disabled by default right now)
5777 2008-09-02  Aaron Bockover  <abock@gnome.org>
5779         * src/Libraries/Hyena.Gui/Hyena.Gui.Theming/GtkTheme.cs: Change
5780         GetCairoTextMidColor to use AlphaBlend function (BGO #544840)
5782         * src/Libraries/Hyena.Gui/Hyena.Gui/CairoExtensions.cs: Implemented simple
5783         color alpha blending utility [P=(1-a)P_0 + aP_1]
5785         * src/Libraries/Hyena.Gui/Hyena.Gui/Contrast.cs: Add some color contrast
5786         utilities, copied from Tomboy and modified to work with Cairo colors
5788 2008-08-30  Aaron Bockover  <abock@gnome.org>
5790         * src/Core/Banshee.Core/Resources/contributors.xml: Added his highness, Brad
5791         
5792         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/LargeTrackInfoDisplay.cs:
5793         Increase spacing to 30px
5795 2008-08-28  Brad Taylor  <brad@getcoded.net>
5797         * src/Extensions/Banshee.RemoteAudio/Resources:
5798         * src/Extensions/Banshee.RemoteAudio/Resources/GlobalUI.xml:
5799         * src/Extensions/Banshee.RemoteAudio/Banshee.RemoteAudio.addin.xml:
5800         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml:
5801         * src/Extensions/Banshee.RemoteAudio/Banshee.RemoteAudio/RemoteAudioActions.cs:
5802         * src/Extensions/Banshee.RemoteAudio/Banshee.RemoteAudio/RemoteSpeakersComboBox.cs:
5803         * src/Extensions/Banshee.RemoteAudio/Banshee.RemoteAudio/RemoteSpeakersWidget.cs:
5804         Add UI to select a remote speaker.
5806         * src/Extensions/Banshee.RemoteAudio/Banshee.RemoteAudio/RemoteAudioService.cs:
5807         Thread safety and add debugging information.
5809         * src/Extensions/Banshee.RemoteAudio/Banshee.RemoteAudio/RemoteSpeaker.cs:
5810         Add a Name property that will hold the fuzzy name of the device.
5812         * src/Core/Banshee.Widgets/Banshee.Widgets/DictionaryComboBox.cs: Add a
5813           clear method, and handle setting ActiveValue to null to deselect.
5815 2008-08-28  Gabriel Burt  <gabriel.burt@gmail.com>
5817         * src/Clients/Muinshee/Resources/GlobalUI.xml: Add missing file.
5819 2008-08-28  Gabriel Burt  <gabriel.burt@gmail.com>
5821         * src/Clients/Nereid/Nereid/PlayerInterface.cs:
5822         * src/Clients/Muinshee/Muinshee/PlayerInterface.cs:
5823         * src/Core/Banshee.ThickClient/Banshee.Gui/BaseClientWindow.cs: Move a lot
5824         of method up to BaseClientWindow from Nereid's PlayerInterface so can be
5825         used by Muinshee too.
5827         * src/Clients/Muinshee/Makefile.am:
5828         * src/Clients/Muinshee/Muinshee.mdp: Add and remove files.
5830         * src/Clients/Nereid/Nereid/Client.cs:
5831         * src/Clients/Muinshee/Muinshee/Client.cs:
5832         * src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs: Factor our a
5833         lot of common functionality into the parent class.
5835         * src/Clients/Muinshee/Muinshee/ViewContainer.cs: Deleted
5837         * src/Clients/Muinshee/Muinshee/MuinsheeActions.cs: Set disc icon on Play
5838         Album action, and launch the Dialogs when the actions are activated.
5840         * src/Clients/Muinshee/Muinshee/MuinsheeTrackInfoDisplay.cs:
5842         * src/Clients/Muinshee/Muinshee/AlbumDialog.cs:
5843         * src/Clients/Muinshee/Muinshee/SongDialog.cs:
5844         * src/Clients/Muinshee/Muinshee/BaseDialog.cs: Split dialog classes out,
5845         and implement query, queue, and play functionality.
5847         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellTrack.cs:
5848         Implement ITextCell.
5850         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/BaseTrackListView.cs:
5851         Factored out from TrackListView.
5853         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
5854         Inherit from BaseTrackListview.
5856         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TerseTrackListView.cs:
5857         Inherit from BaseTrackListview, getting us lots of goodies - DnD, context
5858         menu, o-to-play, and double-click to play.
5860         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackFilterListView.cs:
5861         Hide the header, and move RowActivated handler to virtual method.
5863         * src/Core/Banshee.ThickClient/Makefile.am:
5864         * src/Core/Banshee.ThickClient/Banshee.ThickClient.mdp: Add new files.
5866         * src/Core/Banshee.ThickClient/Banshee.Gui/PersistentWindowController.cs:
5867         New class that can save and restore the size and/or position of a
5868         Gtk.Window.
5870         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
5871         Lazily load the missing pixbufs.
5873         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/BansheeDialog.cs: Add
5874         another convenience override.
5876         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumListModel.cs:
5877         Whitespace.
5879         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs:
5880         Add nifty IndexOfFirst (TrackInfo) class that uses the super-powers of
5881         MetadataHash.
5883         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Make the
5884         CurrentStatusFormat public.
5886         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ITextCell.cs: New inteface that
5887         has a FontWeight property.
5889         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCellText.cs: Implement
5890         ITextCell.
5892         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
5893         Instead of checking for ColumnCellText objects and setting their weight,
5894         do the same for all ITextCell instances.
5896         * src/Libraries/Hyena.Gui/Hyena.Gui.mdp:
5897         * src/Libraries/Hyena.Gui/Makefile.am:
5898         * src/Libraries/Hyena.Gui/Hyena.Widgets/ImageButton.cs: New convenience
5899         class for a Button that has an image and a label in it.
5901         * build/build.environment.mk: Add vars to enable linking against the
5902         PlayQueue.
5904         * Makefile.am: Temporarily start Banshee with the Muine client.  This
5905         needs to be reworked so that the previously used client is automatically
5906         used.
5908 2008-08-28  Gabriel Burt  <gabriel.burt@gmail.com>
5910         * src/Core/Banshee.ThickClient/Banshee.Gui/BansheeActionGroup.cs: Fix bug
5911         by ensuring we get the UI resource file from the calling assembly.
5913 2008-08-28  Gabriel Burt  <gabriel.burt@gmail.com>
5915         * src/Core/Banshee.ThickClient/Banshee.Gui/BansheeActionGroup.cs: Add
5916         Register and UnRegister methods that Add/Remove the ActionGroup from the
5917         InterfaceActionService.
5919 2008-08-27  Brad Taylor  <brad@getcoded.net>
5921         * configure.ac:
5922         * build/build.environment.mk:
5923         * src/Extensions/Makefile.am:
5924         * build/m4/banshee/remote-audio.m4:
5925         * src/Extensions/Banshee.RemoteAudio/: Begin support for Remote Audio (aka
5926           AirTunes).
5928 2008-08-27  Gabriel Burt  <gabriel.burt@gmail.com>
5930         * src/Core/Banshee.Widgets/Banshee.Widgets/RatingActionProxy.cs:
5931         * src/Core/Banshee.Widgets/Banshee.Widgets/CustomActionProxy.cs: Make work
5932         with Toolbars as well, so we can have custom toolbar widgets connected to
5933         Gtk.Actions.
5935 2008-08-26  Aaron Bockover  <abock@gnome.org>
5937         * src/Core/Banshee.Services/Banshee.Services.addins: Tell Mono.Addins
5938         to look in /tmp/banshee-addins-dev for extensions; developers who wish
5939         to run external extensions they are developing should copy their extensions
5940         here, run banshee
5942 2008-08-26  Aaron Bockover  <abock@gnome.org>
5944         * configure.ac: Fix the assembly versioning to eliminate the build 
5945         revision so MD doesn't go apeshit. Awesome. (BNC #352440, not fixed)
5947         * src/Core/Banshee.Core/Banshee.IO/StreamAssist.cs: Provide some overrides
5948         to avoid closing streams when writing if desired
5950         * src/Core/Banshee.Services/Banshee.Web/HttpRequest.cs: A reusable
5951         HttpRequest object that makes fetching streams and making requests easier
5952         and more unified and consistent for Banshee; probably not complete and
5953         not used anywhere yet
5955         * src/Core/Banshee.Core/Resources/translators.xml: Updated
5957 2008-08-26  Gabriel Burt  <gabriel.burt@gmail.com>
5959         * src/Clients/Muinshee/Makefile.am:
5960         * src/Clients/Muinshee/Muinshee.mdp:
5961         * src/Clients/Muinshee/Muinshee/MuinsheeActions.cs: New file adding
5962         Muinshee's Gtk.Actions and UIManager XML.
5964         * src/Clients/Muinshee/Muinshee/PlayerInterface.cs: Instantiate and
5965         dispose the MuinsheeActions.
5967         * src/Clients/Muinshee/Muinshee/Client.cs: Change client's name.
5969 2008-08-26  Gabriel Burt  <gabriel.burt@gmail.com>
5971         * src/Clients/Clients.mds:
5972         * src/Clients/Makefile.am:
5973         * src/Clients/Muinshee/Makefile.am:
5974         * src/Clients/Muinshee/Muinshee.mdp:
5975         * src/Clients/Muinshee/Muinshee/PlayerInterface.cs:
5976         * src/Clients/Muinshee/Muinshee/ViewContainer.cs:
5977         * src/Clients/Muinshee/Muinshee/Client.cs:
5978         * configure.ac: Groundwork for a new client: Muinshee
5980 2008-08-25  Aaron Bockover  <abock@gnome.org>
5982         * build/pkg-config/Makefile.am:
5983         * build/pkg-config/*.pc.in: Use @libdir@ to make sure the .pc file 
5984         work on 64 bit (lib64)
5986         * configure.ac: Bump version
5988 2008-08-24  Aaron Bockover  <abock@gnome.org>
5990         Phase 1 of Hackweek: wrote JSON tokenizer and parser/deserializer and 
5991         lots of unit tests. It covers 100% of the 'spec' at json.org, implemented
5992         from reading the grammar images published there.
5994         * src/Libraries/Hyena/Hyena.Json/Tokenizer.cs: Lex JSON according to
5995         the spec on json.org, transform to stream of tokens
5997         * src/Libraries/Hyena/Hyena.Json/Deserializer.cs: Parser built on top
5998         of the tokenizer that constructs the JSON objects from the token stream
5999         
6000         * src/Libraries/Hyena/Hyena.Json/IJsonCollection.cs: Collection interface
6001         providing Dump methods
6003         * src/Libraries/Hyena/Hyena.Json/JsonArray.cs:
6004         * src/Libraries/Hyena/Hyena.Json/JsonObject.cs: The two collection 
6005         objects in JSON, derived from List and Dictionary respectively
6007         * src/Libraries/Hyena/Hyena.Json/Token.cs:
6008         * src/Libraries/Hyena/Hyena.Json/TokenType.cs: Token class and type flags
6010         * src/Libraries/Hyena/Hyena.Json/Tests/DeserializerTests.cs:
6011         * src/Libraries/Hyena/Hyena.Json/Tests/TokenizerTests.cs: Unit tests for
6012         the tokenizer and deserializer
6014 2008-08-23  Gabriel Burt  <gabriel.burt@gmail.com>
6016         * src/Extensions/Banshee.Podcasting/Resources/ActiveSourceUI.xml: Put
6017         'Mark New' above 'Mark Old'.
6019         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/DefaultColumnController.cs:
6020         Add Album Artist, Comment, Track Count, Disc Count, Bpm, BitRate,
6021         Conductor, and Grouping column.
6023         * src/Core/Banshee.ThickClient/Banshee.Gui/InterfaceActionService.cs:
6024         * src/Core/Banshee.ThickClient/Banshee.Gui/BansheeActionGroup.cs: Add
6025         helpers for adding/removing UIManager elements.
6027         * src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs: Add
6028         AlbumArtist, Disc Count, TrackCount, Bpm, BitRate, Conductor, and Gruping
6029         query fields and sorting.  Add TrackNumber, which previously was defined
6030         as a query field but not in the default FieldSet.
6032         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
6033         Don't increment the play/skip count if the file had an error.
6035 2008-08-22  Gabriel Burt  <gabriel.burt@gmail.com>
6037         * src/Dap/Banshee.Dap/Makefile.am:
6038         * src/Dap/Banshee.Dap/Banshee.Dap.mdp: Add new files.
6040         * src/Dap/Banshee.Dap/Banshee.Dap/RemovableSource.cs: Use the Name not the
6041         GenericName in the unmap and delete tracks action labels.
6043         * src/Dap/Banshee.Dap/Banshee.Dap/DapLibrarySync.cs:
6044         * src/Dap/Banshee.Dap/Banshee.Dap/DapSync.cs: Use Banshee.Preferences.
6046         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Use Banshee.Preferences,
6047         expose DapSync object, set a Nereid.SourceContents override (and make
6048         activatable), and override Count to 0 so it doesn't show next to the main
6049         dap source.
6051         * src/Dap/Banshee.Dap/Resources/ActiveSourceUI.xml: Add eject and sync to
6052         the toolbar, and sync to the source context menu.
6054         * src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapContent.cs: New class, completely
6055         unfinished, displays the preferences for syncing etc.
6057         * src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapActions.cs: Add and handle a
6058         Synchronize action.
6060         * src/Core/Banshee.ThickClient/Banshee.Gui/InterfaceActionService.cs: Add
6061         and check a source property for the assembly the ActiveSourceUIResource
6062         file is located in.
6064         * src/Core/Banshee.ThickClient/Banshee.Gui/BansheeActionGroup.cs: Make all
6065         actions important by default, but add protected property to use old
6066         behavior.  Add another override to UpdateAction.
6068         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackActions.cs: Set the
6069         default to not be all actions important.
6071         * src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/WidgetFactory.cs:
6072         Listen for the preference's Changed event to update visible/sensitive.
6074         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml: Add a
6075         placeholder in the removable source context menu.
6077         * src/Core/Banshee.Services/Banshee.Preferences/Root.cs: Add a Changed
6078         event and fire it when sensitive/visible change.
6080         * src/Core/Banshee.Services/Banshee.Preferences/Section.cs: Add
6081         convenience Add override that takes a SchemaEntry and creates a
6082         SchemaPreference automatically from its Short and LongDescription.
6084 2008-08-22  James Willcox  <snorp@novell.com>
6086         * src/Extensions/Banshee.Lastfm/Resources/lastfm.glade:
6088         Make the entry activate the default action.
6090 2008-08-22  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
6092         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
6093         * src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs: Fix a crash 
6094         caused by the DiscNumber property name change (BGO #548975).
6096 2008-08-21  Gabriel Burt  <gabriel.burt@gmail.com>
6098         * src/Dap/Banshee.Dap/Makefile.am:
6099         * src/Dap/Banshee.Dap/Banshee.Dap.mdp: Add new files.
6101         * src/Dap/Banshee.Dap/Banshee.Dap/DapSync.cs:
6102         * src/Dap/Banshee.Dap/Banshee.Dap/DapLibrarySync.cs: New classes that
6103         contain all the logic for syncing a DAP to the libraries.  Use smart
6104         playlists to represent the 
6106         * src/Dap/Banshee.Dap/Banshee.Dap/RemovableSource.cs: Add a virtual
6107         BytesAvailable property.
6109         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Remove temporary sync code
6110         I recently committed, add a schema pref for space_for_data and respect it
6111         when transferring files, override the BytesAvailable to subtract out the
6112         bytes reserved for data.
6114         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
6115         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Move the
6116         MetadataHash property to TrackInfo.
6118         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs:
6119         * src/Core/Banshee.Services/Banshee.Playlist/AbstractPlaylistSource.cs:
6120         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
6121         Add an IsTemporary property, and delete temporary playlists from the
6122         database on startup.
6124         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Add another
6125         CreateSchema override that takes a namespace.
6127         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
6128         Add IsTemporary columns to CorePlaylists/SmartPlaylists/PrimarySources.
6130         * src/Core/Banshee.Core/Resources/contributors.xml: Add Andrew Conkling -
6131         he has done so much work for so long in Bugzilla, should have been listed
6132         here long ago.
6134         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteConnection.cs: Fix
6135         small bug in HyenaDataReader in how/when it calls .Read on the underlying
6136         IDataReader.
6138         * build/m4/banshee/taglib.m4: Require 2.0.3 since that's when
6139         IsCompilation was introduced.
6141 2008-08-21  Aaron Bockover  <abock@gnome.org>
6143         * src/Core/Banshee.Services/Banshee.Networking/Network.cs: Turned into
6144         a real service and support overriding the connection status to support
6145         an offline mode, configurable in preferences
6146         
6147         * src/Core/Banshee.Services/Banshee.ServiceStack/IRegisterOnDemandService.cs
6148         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:
6149         Added support for services to be registered when they are first requested
6150         
6151         * src/Core/Banshee.Services/Banshee.Equalizer/EqualizerSetting.cs:
6152         Use the player_engine namespace like the rest of the engine settings
6154         * src/Core/Banshee.Services/Banshee.Preferences/Page.cs: 
6155         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs:
6156         Added a misc section to the general prefs section; put replaygain there;
6157         not happy with this but it'll have to work for now
6159         * src/Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtService.cs:
6160         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSource.cs:
6161         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Audioscrobbler/AudioscrobblerService.cs:
6162         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastImageFetchJob.cs:
6163         * src/Core/Banshee.Services/Banshee.Metadata/MetadataServiceJob.cs:
6164         * src/Core/Banshee.Services/Banshee.Metadata.LastFM/LastFMQueryJob.cs:
6165         * src/Core/Banshee.Services/Banshee.Metadata.Rhapsody/RhapsodyQueryJob.cs:
6166         * src/Core/Banshee.Services/Banshee.Metadata.MusicBrainz/MusicBrainzQueryJob.cs:
6167         Updated to use the slightly changed network service API
6169 2008-08-21  Sandy Armstrong  <sanfordarmstrong@gmail.com>
6171         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtworkManager.cs:
6172         Don't try to to scale cover art if the size specified is <= 1.  Fixes
6173         hangs described in BGO #548300.
6175 2008-08-20  Aaron Bockover  <abock@gnome.org>
6177         Committed a revised/reorganized version of Chris Howie's <cdhowie@gmail.com>
6178         visualization support patch (BGO #529479); this does not actually implement
6179         visualization, but adds support for extensions to do so by harvesting
6180         spectrum data that is now readily available.
6182         * src/Core/Banshee.Services/Banshee.MediaEngine/IVisualizationDataSource.cs:
6183         * src/Core/Banshee.Services/Banshee.MediaEngine/VisualizationDataCallback.cs:
6184         Add interface for PlayerEngines that can provide data for visualizations.
6186         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs:
6187         Implement IVisualizationDataSource, binding the unmanaged visualization
6188         support from libbanshee's BansheePlayer
6190         * libbanshee/banshee-player-vis.c
6191         * libbanshee/banshee-player-vis.h: Unmanaged support for gathering
6192         visualization data on the pipeline using the spectrum element
6194         * libbanshee/banshee-player-pipeline.c:
6195         * libbanshee/banshee-player-private.h: Integrate new vis code into the
6196         pipeline and player object
6198 2008-08-20  Gabriel Burt  <gabriel.burt@gmail.com>
6200         * src/Dap/Banshee.Dap/Banshee.Dap/MediaGroupSource.cs: Use the
6201         UnfilteredFileSize so that the dap info bar isn't inaccurate when
6202         filtering (BGO #537366).
6204         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs: 
6205         Get the unfiltered total file size in addition to the count.
6207         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Make the
6208         getter for DatabaseTrackModel public.
6210 2008-08-22  Aaron Bockover  <abock@gnome.org>
6212         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TrackEditorDialog.cs:
6213         Recursively find all SyncButton instances inside of the notebook and
6214         click them - this enables the 'sync all fields' button
6216         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/FieldPage.cs:
6217         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/EditorUtilities.cs:
6218         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/SyncButton.cs:
6219         Removed the utility to create a sync button, replaced with a proper 
6220         SyncButton class so that type detection can be done at runtime
6222 2008-08-22  Aaron Bockover  <abock@gnome.org>
6224         This commit enables view and edit modes for the dialog and allows pages
6225         to be displayed or hidden based on their type and the mode of the editor;
6226         help is also moved into its own extension page
6228         * src/Core/Banshee.ThickClient/Banshee.ThickClient.addin.xml: Add help page
6230         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Use wrapper
6231         API for running the editor dialog
6233         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/PageType.cs:
6234         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/EditorMode.cs:
6235         Added enum for page types and editor mode
6237         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/FieldPage.cs:
6238         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/StatisticsPage.cs:
6239         Updated to implement new ITrackEditor page API
6241         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/ITrackEditorPage.cs:
6242         Added TabWidget and PageType properties
6244         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TrackEditorDialog.cs:
6245         Support edit modes (view and edit) and only show pages as appropriate to
6246         the mode based on their type
6248         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/HelpPage.cs: Moved
6249         the Help into an actual extension page
6251 2008-08-22  Aaron Bockover  <abock@gnome.org>
6253         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/StatisticsPage.cs:
6254         Name it "properties"
6256         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TrackEditorDialog.cs:
6257         Add a label showing which track/count we're at
6259 2008-08-22  Aaron Bockover  <abock@gnome.org>
6261         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/GenreEntry.cs:
6262         Use QueryEnumerable
6264         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/StatisticsPage.cs:
6265         Some cleanup
6267 2008-08-22  Aaron Bockover  <abock@gnome.org>
6269         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellDuration.cs:
6270         Use the DurationStatusFormatters.ConfusingPreciseFormatter to display dur
6272         * src/Core/Banshee.Services/Banshee.Sources/DurationStatusFormatters.cs:
6273         Do not display minutes as {0:00} if hours < 1
6274         
6275         * src/Core/Banshee.ThickClient/Banshee.ThickClient.addin.xml: Added stats
6276         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/ExtraTrackDetailsPage.cs:
6277         Fix bug, name the tab "Extra"
6279         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/GenreEntry.cs:
6280         Implemented the genre combo box entry
6282         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/StatisticsPage.cs:
6283         Implemented an awesome new stats page to show detailed file info
6285         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/EditorTrackInfo.cs:
6286         Implement the TagLib file property
6288         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TrackEditorDialog.cs:
6289         Make the sync all button nicer
6291         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TextViewEntry.cs:
6292         Restrict the comments field two two lines of text
6294         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/BasicTrackDetailsPage.cs:
6295         Use the new genre entry
6297 2008-08-20  Aaron Bockover  <abock@gnome.org>
6299         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/FieldPage.cs:
6300         Hook up field syncing
6301         
6302         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/EditorTrackInfo.cs:
6303         Support setting the index of the track in editor speak
6305         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TrackEditorDialog.cs:
6306         Split LoadTrack and GetTrack, provide ForeachNonCurrentTrack method
6308 2008-08-20  Aaron Bockover  <abock@gnome.org>
6310         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/ExtraTrackDetailsPage.cs:
6311         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/BasicTrackDetailsPage.cs:
6312         Change the expand=false parameters to pass FieldOptions.Shrink; pass
6313         the dialog reference to the title entry field
6315         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/FieldPage.cs:
6316         Do not add a sync button if the field has the FieldOptions.NoSync option
6318         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TrackEditorDialog.cs:
6319         Make the navigation API public
6321         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/FieldOptions.cs:
6322         Added an enum of options to reduce the AddField overloads
6324         * src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TitleEntry.cs:
6325         Implement keyboard navigation when activating the title entry
6327 2008-08-19  Gabriel Burt  <gabriel.burt@gmail.com>
6329         * src/Core/Banshee.Services/Banshee.Metadata/MetadataService.cs: Avoid NRE.
6331 2008-08-19  Gabriel Burt  <gabriel.burt@gmail.com>
6333         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Ensure TrackCount
6334         and DiscCount are never less than TrackNumber and DiscNumber respectively.
6336 2008-08-19  Gabriel Burt  <gabriel.burt@gmail.com>
6338         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdDiscModel.cs:
6339         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdSource.cs:
6340         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/TrackEditor.cs:
6341         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumInfo.cs:
6342         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
6343         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistInfo.cs:
6344         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
6345         * src/Core/Banshee.Core/Banshee.Collection/AlbumInfo.cs:
6346         * src/Core/Banshee.Core/Banshee.Collection/FileTrackInfo.cs:
6347         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs:
6348         * src/Core/Banshee.Core/Banshee.Streaming/SaveTrackMetadataJob.cs:
6349         * src/Core/Banshee.Core/Banshee.Streaming/StreamTagger.cs:
6350         * src/Core/Banshee.Core/Banshee.Streaming/CommonTags.cs:
6351         * src/Core/Banshee.Core/Banshee.Base/Tests/TaglibReadWriteTests.cs:
6352         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/TagList.cs: Read BPM,
6353         Grouping, Bitrate, Conductor, DiscCount, and IsCompilation from TagLib#,
6354         and write the values that make sense (all but Bitrate).  This update
6355         triggers a metadata refresh to read in this info.
6357 2008-08-18  Gabriel Burt  <gabriel.burt@gmail.com>
6359         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Add inner class for
6360         testing sync logic.  Currently will calculate how many items are on the
6361         device but not in the library and vice versa, and logs that info.
6363         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteConnection.cs: Add new
6364         HyenaDataReader convenience class.
6366         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs: Use the
6367         QueryEnumerable<T> method instead of manually reading the IDataReader.
6369 2008-08-17  Ruben Vermeersch  <ruben@savanne.be>
6371         * src/Core/Banshee.Services/Banshee.Preferences/Page.cs: Add a checkbox to
6372         enable the renaming of files and folders.
6374 2008-08-17  Ruben Vermeersch  <ruben@savanne.be>
6376         * src/Core/Banshee.Core/Banshee.IO/Utilities.cs: Split
6377         TrimEmptyDirectories out of DeleteFileTrimmingParentDirectories, useful in
6378         case  you don't need the Delete.
6380         * src/Core/Banshee.Services/Banshee.Collection/MoveOnInfoSaveJob.cs:
6381         Added. Moves a file after changing the metadata. This maintains the
6382         FileNamePattern even after changing metadata.
6384         * src/Core/Banshee.Services/Makefile.am: Add the new file to the build.
6386         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/TrackEditor.cs: Queue a
6387         MoveOnInfoSaveJob when saving.
6389 2008-08-17  Gabriel Burt  <gabriel.burt@gmail.com>
6391         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Fix bug with custom icon
6392         naming scheme for DAPs; was missing multimedia-player- prefix (BGO
6393         #537368).
6395 2008-08-17  Gabriel Burt  <gabriel.burt@gmail.com>
6397         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs:
6398         Avoid scheduling artwork tasks for feeds we already have icons for.
6400         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/ColumnCellPodcast.cs:
6401         Fix the same disposing-the-default-pixbuf error.
6403 2008-08-17  Gabriel Burt  <gabriel.burt@gmail.com>
6405         * src/Core/Banshee.Services/Banshee.Hardware/IDevice.cs:
6406         * src/Backends/Banshee.Hal/Banshee.HalBackend/Device.cs:
6407         * src/Backends/Banshee.Hal/Banshee.HalBackend/Volume.cs:
6408         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/PodSleuthDevice.cs:
6409         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpSource.cs: Add Serial
6410         property, keeping Uuid for the HAL udi (or equiv on other backends).
6412         * src/Dap/Banshee.Dap/Banshee.Dap/DapService.cs: Make more thread safe.
6414         * src/Core/Banshee.Services/Banshee.Base/ThreadAssist.cs: Add
6415         AssertInMainThread method; logs a warning if in --debug mode and not
6416         called from the main thread.
6418         * src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs: Assert that
6419         we're in the main thread when adding and removing sources.
6421         * src/Core/Banshee.Core/Banshee.Kernel/Scheduler.cs: Fix up the logging so
6422         that jobs that have exceptions are actually logged.
6424 2008-08-17  Gabriel Burt  <gabriel.burt@gmail.com>
6426         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs:
6427         Only update a feed on startup if it hasn't been updated in over an hour.
6429 2008-08-16  Gabriel Burt  <gabriel.burt@gmail.com>
6431         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
6432         Avoid NRE (BGO #546864).
6434 2008-08-16  Gabriel Burt  <gabriel.burt@gmail.com>
6436         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellAlbum.cs:
6437         Don't dispose the missing-coverart pixbuf, fixes recent issue with it
6438         disappearing.
6440         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtworkRenderer.cs:
6441         Fix issue with the Album Browser being really slow/mushy to scroll by only
6442         calling GC.Collect every 100th pixbuf.Dispose (BGO #547628).
6444 2008-08-16  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
6446         * src/Libraries/Hyena/Hyena.Query/UserQueryParser.cs: Fix handling of 
6447         special characters in quotes (BGO #547078).
6449         * src/Libraries/Hyena/Hyena.Query/Tests/QueryTests.cs: Unit test for
6450         the above bug, written by Sandy Armstrong and modified by me.   
6452 2008-08-16  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
6454         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Check if
6455         the cast of the TrackModel to DatabaseTrackListModel succeeded, to avoid
6456         a potential crash (BGO #547092).
6458 2008-08-16  Alexander Hixon  <hixon.alexander@mediati.org>
6460         * src/Libraries/Hyena/Hyena/DateTimeUtil.cs:
6461         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/TrackEditor.cs: Enable
6462         the track editor to display the duration of tracks one hour or longer
6463         correctly. Adds some overloaded FormatDuration methods. Fixes BGO #537774.
6465 2008-08-15  Gabriel Burt  <gabriel.burt@gmail.com>
6467         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapProxyWebServer.cs: Don't
6468         log DAAP socket errors.
6470 2008-08-15  Gabriel Burt  <gabriel.burt@gmail.com>
6472         * src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapInfoBar.cs: Avoid NRE, and move a
6473         delegate to a method.
6475         * configure.ac: turn DEVEL_BUILD back on
6477 2008-08-15  Gabriel Burt  <gabriel.burt@gmail.com>
6479         * src/Dap/Banshee.Dap/Banshee.Dap/DapService.cs: Be more careful about
6480         what we do inside lock().  Do actual interaction with SourceManager
6481         outside the lock() for Map/Unmap dap functions.
6483 2008-08-15  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
6485         * src/Dap/Banshee.Dap.Karma/Banshee.Dap.Karma.addin.xml:
6486         * src/Dap/Banshee.Dap.Karma/Banshee.Dap.Karma/KarmaTrackInfo.cs:
6487         * src/Dap/Banshee.Dap.Karma/Banshee.Dap.Karma/KarmaSource.cs:
6488         * src/Dap/Banshee.Dap.Karma/Makefile.am:
6489         * src/Dap/Makefile.am:
6490         * build/build.environment.mk:
6491         * configure.ac: Patch from Bob Copeland to add Karma DAP support. It is 
6492         enabled through the --enable-karma configure option and requires karma-sharp
6493         (BGO #541828).
6495 2008-08-15  Gabriel Burt  <gabriel.burt@gmail.com>
6497         * src/Clients/Nereid/Nereid/PlayerInterface.cs: Fix bug with sometimes doing
6498         GTK/UI work not in the main thread.
6500 2008-08-15  Gabriel Burt  <gabriel.burt@gmail.com>
6502         * src/Libraries/Hyena/Hyena.Data/PropertyStore.cs: Fix deadlock caused by
6503         a property change event triggering a propety get/set/remove.
6505 2008-08-15  Gabriel Burt  <gabriel.burt@gmail.com>
6507         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
6508         Fix bug with not triggering metadata refresh when migrating from 0.13.2.
6510 2008-08-15  Alexander Hixon  <ahixon@gnome.org>
6512         * src/Libraries/Lastfm/Lastfm/AudioscrobblerConnection.cs: Only use 'Log'
6513         rather than 'Hyena.Log' in the code since we've already referenced it.
6515         * src/Extensions/Banshee.MiniMode/Banshee.MiniMode/MiniModeWindow.cs:
6516         Make sure we can use the hotkeys from the main window. Based on a patch by
6517         Ruben Vermeersch. Fixes BGO #385849.
6519 2008-08-15  Alexander Hixon  <ahixon@gnome.org>
6521         * src/Libraries/Lastfm/Lastfm/AudioscrobblerConnection.cs: Only post Now
6522         Playing information to AS servers after all tracks have been uploaded.
6523         Should also fix consecutive Now Playing updates. Closes BGO #524992.
6525 2008-08-14  Aaron Bockover  <abock@gnome.org>
6527         * src/Clients/banshee-1.in: Fixes BGO #547725 (hyperair)
6529 2008-08-14  Aaron Bockover  <abock@gnome.org>
6531         Merged the really nice and blingy cover art display back from r4350 now
6532         that 1.2.1 is out and we can afford more time to stress test it. Please
6533         file bugs.
6535         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/VideoDisplay.cs:
6536         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/XOverlayVideoDisplay.cs:
6537         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingInterface.cs:
6538         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/FullscreenWindow.cs:
6539         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtworkRenderer.cs:
6540         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
6541         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ClassicTrackInfoDisplay.cs:
6542         * src/Libraries/Hyena.Gui/Hyena.Gui/CairoExtensions.cs:
6544 2008-08-14  Aaron Bockover  <abock@gnome.org>
6546         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs: 
6547         Implement ReplayGain preference and cope with the volume format change
6549         * libbanshee/banshee-player.c:
6550         * libbanshee/banshee-player-pipeline.c:
6551         * libbanshee/banshee-player-private.h: Integrate the ReplayGain support
6552         into the pipeline/player object; store user volume in the player object
6553         since the pipeline volume may have a ReplayGain scale factor; use a 
6554         double [0..1] to store the volume to make life easier
6556         * libbanshee/banshee-player-replaygain.c:
6557         * libbanshee/banshee-player-replaygain.h: Implemented ReplayGain volume
6558         scaling, reading data from GST_TAG_[TRACK|ALBUM]_[GAIN|PEAK] tags; 
6559         implemented based on the http://replaygain.hydrogenaudio.org/ spec, 
6560         including the 10 track scale history to implement average scale on 
6561         tracks without ReplayGain data
6563         * src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/NotebookPage.cs:
6564         Do not show empty sections
6565         
6566         * src/Core/Banshee.Services/Banshee.Preferences/Page.cs: Add an empty
6567         playback section
6568         
6569         * src/Core/Banshee.Services/Banshee.Preferences/SchemaPreference.cs:
6570         Support a notification callback when the schema value is toggled
6572 2008-08-14  Gabriel Burt  <gabriel.burt@gmail.com>
6574         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
6575         Add protected MetadataHash property, really only used to store a hashed
6576         string of title, artist, album, genre, duration, etc.  Will be used for
6577         sql-powered sync - select all the MetadataHashes that are in the library
6578         but not the device, and vice-versa.
6580         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
6581         Add MetadataHash column to CoreTracks, and trigger metadata refresh so the
6582         hashes are generated for existing tracks.
6584         * src/Libraries/Hyena/Hyena/CryptoUtil.cs: Speed up the MD5 hashing by
6585         caching the MD5 algorithm object, and speed up the IsMd5Encoded method by
6586         caching the Regex.
6588         * src/Libraries/Hyena/Hyena/Tests/CryptoUtilTests.cs: Make public instead
6589         of internal so these tests are actually ran, and add tests for null/empty
6590         strings.
6592 2008-08-14  Gabriel Burt  <gabriel.burt@gmail.com>
6594         * src/Dap/Banshee.Dap/Banshee.Dap/DapService.cs: Lock on private object,
6595         not this to avoid deadlock with external code locking on this.
6597 2008-08-14  Gabriel Burt  <gabriel.burt@gmail.com>
6599         * src/Extensions/Banshee.Torrent/Banshee.Torrent/TorrentService.cs: Fix
6600         style issues.
6602 2008-08-13  Gabriel Burt  <gabriel.burt@gmail.com>
6604         * src/Extensions/Extensions.mds:
6605         * src/Extensions/Makefile.am:
6606         * src/Extensions/Banshee.Torrent/Banshee.Torrent.mdp:
6607         * src/Extensions/Banshee.Torrent/Banshee.Torrent/TorrentService.cs:
6608         * src/Extensions/Banshee.Torrent/Banshee.Torrent/TorrentFileDownloadTask.cs:
6609         * src/Extensions/Banshee.Torrent/Makefile.am:
6610         * src/Extensions/Banshee.Torrent/Banshee.Torrent.addin.xml:
6611         * build/m4/banshee/torrent.m4:
6612         * build/build.environment.mk:
6613         * configure.ac: Patch from Alan McGovern adding support for downloading
6614         .torrent podcast enclosures, with some build/style fixes by me.  Is not
6615         built by default (requires --enable-torrent option) and probably not
6616         buildable at all except within MonoDevelop.  Still under development, do
6617         not enable unless you know what you're doing.
6619 2008-08-13  Gabriel Burt  <gabriel.burt@gmail.com>
6621         Patch from Alan McGovern laying the groundwork for torrent support in Migo.
6623         * src/Libraries/Migo/Migo.DownloadCore/DownloadManager.cs: Add support for
6624         other types of DownloadTasks.
6626         * src/Libraries/Migo/Migo.Syndication/FeedEnclosure.cs: Strip the trailing
6627         .torrent extension for the file name.
6629 2008-08-12  Gabriel Burt  <gabriel.burt@gmail.com>
6631         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/VideoDisplay.cs:
6632         Fix a NRE in the cover art display when the ArtworkId for a track is null
6633         (BGO #547520).
6635 2008-08-12  Aaron Bockover  <abock@gnome.org>
6637         Banshee 1.2.1 Released
6639 2008-08-12  Aaron Bockover  <abock@gnome.org>
6641         * configure.ac: Bump version to 1.2.1
6643         * NEWS: Update
6645         * src/Extensions/Banshee.SqlDebugConsole/Makefile.am:
6646         * src/Extensions/Makefile.am: Fix build
6648 2008-08-12  Gabriel Burt  <gabriel.burt@gmail.com>
6650         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Recommendations/RecommendationPane.cs:
6651         Fix bug where top album buttons tried to open the wrong URL.
6653 2008-08-12  Aaron Bockover  <abock@gnome.org>
6655         * Revert: svn merge -r 4350:4349; backed out my large commit from yesterday
6656         due to some apparent internal windowing regressions experience by some;
6657         unfortunately no bling for 1.2.1, but I'll work to get it back into 1.2.2
6659 2008-08-12  Gabriel Burt  <gabriel.burt@gmail.com>
6661         * src/Core/Banshee.Services/Banshee.PlaybackController/PlaybackControllerService.cs:
6662         If there is no track loaded/playing and the user presses Play, if one or
6663         more items are selected, play the first intead of playing the first item
6664         in the source.
6666 2008-08-12  Gabriel Burt  <gabriel.burt@gmail.com>
6668         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Catch and log exceptions
6669         thrown while loading the device's items.
6671         * src/Core/Banshee.Services/Banshee.Collection/ImportManager.cs: Don't
6672         create the user job if it's just going to be hidden.  Avoid a NRE if the
6673         ImportElement already fired the Finished event and the job was destroyed.
6675         * src/Libraries/Hyena/Hyena.Collections/QueuePipelineElement.cs: Prevent
6676         NRE by making sure the element is threaded.  This and the above NRE fix
6677         should fix the bug with mass storage devices not getting loaded (BGO
6678         #545604).
6680 2008-08-12  Gabriel Burt  <gabriel.burt@gmail.com>
6682         * src/Libraries/Lastfm/Lastfm.Data/DataCore.cs: Patch from Félix Velasco
6683         and myself adding NRE protection, should fix some issues with
6684         recommendation pane not showing up (BGO #547177).
6686 2008-08-11  Aaron Bockover  <abock@gnome.org>
6688         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/LargeTrackInfoDisplay.cs:
6689         Implemented a new high resolution track info display; quite optimized for
6690         smooth xfade at higher resolutions through cairo; sits in the now playing
6691         source and works in full screen
6693         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
6694         Support Cairo Surface caching
6696         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ClassicTrackInfoDisplay.cs:
6697         Fixed some windowing issues
6699         * src/Libraries/Hyena.Gui/Hyena.Gui/CairoExtensions.cs: Added a 
6700         CreateSurfaceForPixbuf method
6702         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/VideoDisplay.cs:
6703         Removed non-video rendering code (idle logo, album art)
6705         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingTrackInfoDisplay.cs:
6706         LargeTrackInfoDisplay themed for the now playing source
6708         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingContents.cs:
6709         Base contents widget for now playing source; random things can be packed,
6710         including the video display and the album art view
6712         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/XOverlayVideoDisplay.cs:
6713         Eliminate an internal GdkWindow, attaching the video window to the root
6715         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingInterface.cs:
6716         Use the NowPlayingContents widget as the main widget to be detached for
6717         fullscreen mode
6719         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/FullscreenWindow.cs:
6720         Fixed rendering/mapping issue
6722         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtworkRenderer.cs:
6723         Support specifying which corners to round
6725 2008-08-11  Gabriel Burt  <gabriel.burt@gmail.com>
6727         * src/Libraries/Hyena/Hyena.Query/RelativeTimeSpanQueryValue.cs:
6728         * src/Libraries/Hyena/Hyena.Query/DateQueryValue.cs: Patch from Félix
6729         Velasco that makes never played tracks match 'last played > X' type
6730         queries (BGO #542930).
6732 2008-08-08  Aaron Bockover  <abock@gnome.org>
6734         * src/Core/Banshee.ThickClient/Banshee.Equalizer.Gui/EqualizerBandScale.cs:
6735         Show the dB value in a tooltip against the band sliders
6737 2008-08-08  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
6739         * src/Extensions/Banshee.Daap/Daap/ServiceLocator.cs: Prevent a crash on
6740         exit when the DAAP browser could not start.
6742 2008-08-07  Gabriel Burt  <gabriel.burt@gmail.com>
6744         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
6745         Make sure no modifiers are set when handling o like enter.
6747         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseImportManager.cs:
6748         Only reload a max of 5 times during a given import; every 250 items or
6749         20%, whatever is more.
6751         * src/Core/Banshee.Services/Banshee.Collection/ImportManager.cs: Add a
6752         protected TotalCount property for the above 20% to use.
6754         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
6755         Fix bug where the metadata refresh was triggered for brand new databases.
6757         * src/Core/Banshee.Services/Banshee.PlayerMigration/AmarokPlayerImportSource.cs:
6758         Fix bug with rounding Amarok's ratings down (eg 7 down to 3, etc), and not
6759         migrating the added and last played stamps.
6761 2008-08-06  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
6763         * src/Libraries/Hyena.Gui/Hyena.Query.Gui/QueryTermBox.cs: Patch from 
6764         Félix Velasco fixing a crash when editing a smart playlist with a date 
6765         field (BGO #539960).
6767 2008-08-05  Gabriel Burt  <gabriel.burt@gmail.com>
6769         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/VideoDisplay.cs:
6770         Show cover art here when playing music (BGO #539180).
6772         * src/Core/Banshee.Services/Banshee.Metadata.FileSystem/FileSystemQueryJob.cs:
6773         Fix bug just introduced by recent commit that ignored the
6774         too-many-random-files-in-this-folder limit if the file was cover.jpg etc.
6776 2008-08-05  Gabriel Burt  <gabriel.burt@gmail.com>
6778         * src/Clients/Nereid/Nereid/Client.cs: Patch from Jo Shields fixing bug
6779         where --help-query-player didn't work (BGO #546334).
6781 2008-08-05  Gabriel Burt  <gabriel.burt@gmail.com>
6783         * src/Core/Banshee.Services/Banshee.Playlists.Formats/PlaylistParser.cs:
6784         Instead of throwing an exception when the uri scheme isn't one we support,
6785         simply return false to indicate the parsing failed.  Fixes bug where
6786         mms:// URIs wouldn't load (BGO #546392).
6788         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteConnection.cs: Call
6789         typeof (T) once instead of N times.
6791 2008-08-05  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
6793         * src/Core/Banshee.Services/Banshee.Playlists.Formats/AsxPlaylistFormat.cs:
6794         Another patch from Félix Velasco, this time to fix the parsing of ASX 
6795         playlists (BGO #545646).
6797 2008-08-05  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
6799         * src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/InternetRadioSource.cs:
6800         Patch from Félix Velasco to select the proper source when showing the radio
6801         station editor (BGO #539397).
6803 2008-08-05  Gabriel Burt  <gabriel.burt@gmail.com>
6805         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackFilterListView.cs:
6806         Enable dragging filter items (artists/albums/etc) the same as you would
6807         drag tracks - onto the play queue, etc (BGO #524418).
6809         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView_DragAndDrop.cs:
6810         Check where the drag came from, and if it wasn't directly from the track
6811         view, assume it was from a filter view, and add everything in the track
6812         model to the drop destination instead of just the user-selected items.
6814         * src/Core/Banshee.Core/Resources/translators.xml: Updated
6816 2008-08-05  Gabriel Burt  <gabriel.burt@gmail.com>
6818         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
6819         Factor out activate-selection code into protected method.
6821         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
6822         Handle 'o' the same as enter - activate the row(s), which starts playing
6823         them.
6825         * src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs: Update links to
6826         the website.
6828         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Update
6829         copyright.
6831         * src/Core/Banshee.Services/Banshee.Library/ThreadPoolImportSource.cs:
6832         Make sure errors are reported on the main thread, avoid hanging when
6833         importing from Amarok.
6835 2008-08-04  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
6837         * src/Core/Banshee.Services/Banshee.Metadata.FileSystem/FileSystemQueryJob.cs:
6838         Patch from  Benjamín Valero Espinosa that adds preferential filenames when 
6839         looking for cover art file (BGO #545911).
6841 2008-08-01  Gabriel Burt  <gabriel.burt@gmail.com>
6843         * src/Extensions/Makefile.am:
6844         * src/Extensions/Extensions.mds:
6845         * src/Extensions/Banshee.MediaWeb/*: New but totally-unfinished extension
6846         for embedding WebKit.
6848         * configure.ac:
6849         * build/build.environment.mk:
6850         * build/m4/banshee/mediaweb.m4: Add config option to --enable-mediaweb
6851         that also checks for webkit-sharp.
6853         * src/Extensions/Template/Makefile.am:
6854         * src/create-extension: A few tweaks to do more for the user.
6856         * src/Core/Banshee.ThickClient/Banshee.Library.Gui/PhotoFolderImportSource.cs:
6857         Add a couple more possible photo folder paths.
6859         * NEWS:
6860         * src/Core/Banshee.Core/Resources/contributors.xml: Make our credits of
6861         Christopher Halse Rogers consistent.
6863         * src/Libraries/Lastfm/Lastfm.mdp: Remove duplicate Hyena ref.
6865 2008-07-31  Gabriel Burt  <gabriel.burt@gmail.com>
6867         * src/Backends/Banshee.Gnome/Banshee.GnomeBackend/GnomeScreensaverManager.cs:
6868         Log a friendlier warning when the GNOME screensaver isn't running (BGO
6869         #545600).
6871 2008-07-31  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
6873         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Recommendations/RecommendationPane.cs:
6874         Mark a string for translation (BGO #545677).
6876 2008-07-31  Gabriel Burt  <gabriel.burt@gmail.com>
6878         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastTrackListModel.cs:
6879         Fix bug with podcasts not getting sorted by published date on startup.
6881 2008-07-30  Gabriel Burt  <gabriel.burt@gmail.com>
6883         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceIconResolver.cs:
6884         Whoops, revert crasher from previous GetString changes.
6886         * data/audio-profiles/mp3-lame.xml.in: Add 256 kbps as an option.
6888 2008-07-30  Gabriel Burt  <gabriel.burt@gmail.com>
6890         * src/Extensions/Extensions.mds:
6891         * src/Extensions/Banshee.SqlDebugConsole/Makefile.am:
6892         * src/Extensions/Banshee.SqlDebugConsole/Resources/GlobalUI.xml:
6893         * src/Extensions/Banshee.SqlDebugConsole/Banshee.SqlDebugConsole.addin.xml:
6894         * src/Extensions/Banshee.SqlDebugConsole/Banshee.SqlDebugConsole.mdp:
6895         * src/Extensions/Banshee.SqlDebugConsole/Banshee.SqlDebugConsole/SqlActions.cs:
6896         * src/Core/Banshee.ThickClient/Banshee.Addins.Gui/AddinView.cs: New addin,
6897         not yet finished or really working, to view SQL queries that are run in
6898         Banshee, and eventually be able to run them and arbitrary queries in
6899         Banshee's connection, with an option to run them 50 or whatever times to
6900         benchmark them.
6902         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteCommand.cs: Add a new
6903         EventArgs subclass for the new CommandExecuted event.  This event is only
6904         fired if LogAll is true.
6906         * src/Core/Banshee.ThickClient/Banshee.ThickClient.addin.xml:
6907         * src/Extensions/Template/Template.addin.xml:
6908         * src/create-extension:
6909         * configure.ac: Clarify and simplify extension creation.
6911 2008-07-30  Gabriel Burt  <gabriel.burt@gmail.com>
6913         * src/Core/Banshee.ThickClient/Banshee.ThickClient.addin.xml: Forgot to
6914         commit this, actually adds the photo folder import source.
6916 2008-07-30  Gabriel Burt  <gabriel.burt@gmail.com>
6918         * src/Core/Banshee.ThickClient/Makefile.am:
6919         * src/Core/Banshee.ThickClient/Banshee.ThickClient.mdp:
6920         * src/Core/Banshee.ThickClient/Banshee.Library.Gui/PhotoFolderImportSource.cs:
6921         New import source to help people import videos they took on their digital
6922         cameras, located in their Photos directory.
6924 2008-07-30  Gabriel Burt  <gabriel.burt@gmail.com>
6926         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
6927         * src/Core/Banshee.ThickClient/Banshee.Gui/InterfaceActionService.cs:
6928         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs:
6929         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceIconResolver.cs:
6930         * src/Core/Banshee.Services/Banshee.Sources/Source.cs:
6931         * src/Libraries/Hyena/Hyena.Data/PropertyStore.cs: Change GetString calls
6932         to Get<string> calls, to avoid a lot of strings being marked for
6933         translation when they shouldn't be.
6935 2008-07-30  Gabriel Burt  <gabriel.burt@gmail.com>
6937         Fix a bunch of translatability issues (BGO #545239).
6939         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapSource.cs: Fix plural
6940         string issue.
6942         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpSource.cs:
6943         * src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs:
6944         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
6945         * src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs:
6946         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmActions.cs: Add
6947         and clarify translator comments.
6949         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/DownloadManager/DownloadUserJob.cs:
6950         Avoid contraction.
6952         * src/Core/Banshee.ThickClient/Banshee.Gui/ViewActions.cs: Avoid 'toggle'.
6954 2008-07-30  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
6956         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs:
6957         * src/Core/Banshee.Core/Banshee.Collection/ITrackInfo.cs:
6958         * src/Core/Banshee.Core/Banshee.Configuration.Schema/LibrarySchema.cs:
6959         * src/Core/Banshee.Core/Banshee.Base/FileNamePattern.cs: Patch from 
6960         Brian Teague adding the genre option to the file name pattern 
6961         construction (BGO #492181).
6963 2008-07-29  Aaron Bockover  <abock@gnome.org>
6965         Banshee 1.2 Final (1.2.0) Released
6967 2008-07-29  Aaron Bockover  <abock@gnome.org>
6969         * src/Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtJob.cs:
6970         Reworked the count query so that it really is fast now
6972 2008-07-29  Gabriel Burt  <gabriel.burt@gmail.com>
6974         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSource.cs: Fix
6975         bug where the station list wasn't reloaded properly when a subscribed user
6976         was logged in, meaning their personal stations etc never loaded (BGO
6977         #512464).
6979 2008-07-29  Gabriel Burt  <gabriel.burt@gmail.com>
6981         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
6982         Add an index on CoreTracks that should help with the performance of the
6983         cover art query.
6985 2008-07-29  Aaron Bockover  <abock@gnome.org>
6987         * gstreamer/equalizer/Makefile.am: -lm
6989         * src/Backends/Banshee.NowPlaying.X11/libbnpx11/Makefile.am: -lXrandr
6991 2008-07-29  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
6993         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumInfo.cs:
6994         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistInfo.cs:
6995         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Reset the
6996         fields about the last artist and last album imported when the artists 
6997         and albums are pruned from the DB.
6999 2008-07-29  Gabriel Burt  <gabriel.burt@gmail.com>
7001         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapService.cs: Catch
7002         exceptions caused by not having any DAAP backends (avahi, etc).
7004 2008-07-29  Gabriel Burt  <gabriel.burt@gmail.com>
7006         * src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs: Shorten track
7007         and title query labels.
7009 2008-07-29  Gabriel Burt  <gabriel.burt@gmail.com>
7011         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackActions.cs: Fix bug
7012         where IsLive tracks wouldn't change the play icon to stop (BGO #539021).
7014 2008-07-29  Gabriel Burt  <gabriel.burt@gmail.com>
7016         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs:
7017         Make UpdateUnfilteredAggregates virtual, expose UnfilteredCount setter and
7018         Connection via protected properties.
7020         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastTrackListModel.cs:
7021         Use the above changes to show the # of new podcast items in the
7022         SourceView, instead of the total # of items.
7024 2008-07-29  Wouter Bolsterlee  <wbolster@svn.gnome.org>
7026         * src/Clients/Nereid/Nereid/ViewContainer.cs: Added
7027         translator comment.
7029 2008-07-28  Gabriel Burt  <gabriel.burt@gmail.com>
7031         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml:
7032         * src/Core/Banshee.ThickClient/Banshee.Gui/ViewActions.cs: Comment out
7033         Show Cover Art menu item/action.
7035 2008-07-27  Gabriel Burt  <gabriel.burt@gmail.com>
7037         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Remove cruft.
7039         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackActions.cs: Set the
7040         focus index as well as the selection when jumping to current song (BGO
7041         #538227).
7043 2008-07-27  Gabriel Burt  <gabriel.burt@gmail.com>
7045         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmActions.cs:
7046         Replace spaces with underscores in artist name before encoding for
7047         Wikipedia URL (BGO #537682).
7049 2008-07-27  Gabriel Burt  <gabriel.burt@gmail.com>
7051         * src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/XspfMigrator.cs:
7052         Catch exceptions when migrating old internet radio stations over (BGO
7053         #539424).
7055         * NEWS: Some updates for 1.2
7057 2008-07-27  Gabriel Burt  <gabriel.burt@gmail.com>
7059         * build/m4/banshee/daap.m4: Enable DAAP by default.
7061         * configure.ac: Remove unstable warning for DAAP in configure.
7063 2008-07-27  Gabriel Burt  <gabriel.burt@gmail.com>
7065         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView_DragAndDrop.cs:
7066         Fix the regression where the New Playlist wouldn't appear in the sources
7067         list when you were drag and dropping some tracks.
7069 2008-07-27  Gabriel Burt  <gabriel.burt@gmail.com>
7071         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/ScreensaverManager.cs:
7072         Keep track of whether the screensaver is already inhibited.  Implement
7073         IDisposable and uninhibit when Disposed.
7075         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingInterface.cs:
7076         Override Dispose and call Dispose on the ScreensaveManager.
7078         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingSource.cs:
7079         Call Dispose on the NowPlayingInterface.
7081         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Make all track
7082         actions not visible/sensitive when dealing with a non ITrackModelSoure,
7083         for example the Now Playing source (BGO #538398).
7085 2008-07-27  Gabriel Burt  <gabriel.burt@gmail.com>
7087         Patches from Bertrand Lorentz fixing issues with files in folders whose
7088         name start the same as the library folder.
7090         * src/Core/Banshee.Core/Banshee.Base/Paths.cs: Add
7091         CachedLibraryLocationWithSeparator property.  Fix MakePathRelative method
7092         to add a path seperator as needed (BGO #539511).
7094         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
7095         Use the new -WithSeparator property, fixing copy-on-import (BGO #533177).
7097         * src/Core/Banshee.Core/Banshee.Base/Tests/FileNamePatternTests.cs: Unit
7098         tests written by me to make sure MakePathRelative works how we expect it
7099         to.
7101 2008-07-27  Gabriel Burt  <gabriel.burt@gmail.com>
7103         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/DefaultColumnController.cs:
7104         Create default columns within a private method so we can manipulate them
7105         beyond just their ctor (not yet done, but will use this to set better
7106         widths soon).  Also, use the new Column/QueryField integration to avoid
7107         duplication of names/labels.
7109         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Fix
7110         properly the detection of if any of the columns changed in a TracksChanged
7111         event are being sorted by, using the new Field property on SortableColumn.
7113         * src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs: Add a
7114         PropertyName property used to create/bind columns from a QueryField
7115         object.  Add a comment field.  Modify the GetSort method just enough to
7116         work with the new 'sort keys' (QueryField.Name) that will be passed in.
7118         * src/Libraries/Hyena/Hyena.Query/QueryField.cs:
7119         * src/Libraries/Hyena/Hyena.Query/Tests/QueryTests.cs: Add PropertyName.
7121         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/SortableColumn.cs:
7122         * src/Libraries/Hyena/Hyena.Data/ISortableColumn.cs: Add QueryField Field
7123         property, the first step in integrating columns with QueryFields, which
7124         should probably be named something more generic like ModelFields.
7126         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCellText.cs: Implement
7127         ISizeRequestCell and add delegate property to allow external code to
7128         specify what width a text cell should have.  Not used yet.
7130 2008-07-27  Gabriel Burt  <gabriel.burt@gmail.com>
7132         * src/Core/Banshee.ThickClient/Banshee.Gui/BansheeActionGroup.cs: Add
7133         static UpdateAction convenience methods that set the
7134         visiblity/sensitivity of actions.
7136         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs: Hide the
7137         browser-related actions when the source doesn't have any filters.
7139         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/CompositeTrackSourceContents.cs:
7140         Fix issue with not allowing sources that didn't implement
7141         IFilterableSource to be used by this view.  Patch also created by Bertrand
7142         Lorentz (BGO #544989).
7144         * src/Core/Banshee.Services/Banshee.Sources/IFilterableSource.cs: Add
7145         AvailableFilters getter to the interface.
7147         * src/Core/Banshee.Services/Banshee.Library/VideoLibrarySource.cs:
7148         Override HasArtistAlbum to false.
7150 2008-07-27  Gabriel Burt  <gabriel.burt@gmail.com>
7152         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseFilterListModel.cs:
7153         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs:
7154         * src/Core/Banshee.Services/Banshee.Collection.Database/IDatabaseTrackModelCache.cs:
7155         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs:
7156         Remove ClearManagedCache method, was redundant w/ Clear method.
7158         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: When the
7159         source is Deactivated, call InvalidateCache on the Track model and all
7160         filter models.  This should help prevent Banshee from using more and more
7161         RAM as you switch sources and scroll through lists.
7163 2008-07-27  Gabriel Burt  <gabriel.burt@gmail.com>
7165         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView_DragAndDrop.cs:
7166         When a Uri list is dropped onto a source, import the uris into the
7167         library.
7169 2008-07-27  Gabriel Burt  <gabriel.burt@gmail.com>
7171         * src/Core/Banshee.ThickClient/Banshee.Gui.DragDrop/DragDropUtilities.cs:
7172         Change the SplitSelectionData method to use String.Split, and to remove
7173         empty items.
7175 2008-07-27  Todd Berman  <tberman@off.net>
7177         * src/Dap/Banshee.Dap.Ipod/IpodSource.cs: Implement Import (BGO #541684)
7179 2008-07-25  Gabriel Burt  <gabriel.burt@gmail.com>
7181         * src/Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtJob.cs: Ok,
7182         last fix for Cover Art, I swear.  Thought I'd fixed all the sql issues in
7183         the last commit, but hadn't - this one should really fix BGO #541469.
7185 2008-07-25  Gabriel Burt  <gabriel.burt@gmail.com>
7187         * src/Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtService.cs:
7188         When the update cover art action is triggered, force refresh of cover art
7189         even for albums we've checked within the last N days.
7191 2008-07-25  Aaron Bockover  <abock@gnome.org>
7193         * src/Core/Banshee.Widgets/Banshee.Widgets/StreamPositionLabel.cs:
7194         Prevent crash when switching to mini-mode in a paused state; ensure stream
7195         position label's layout is rebuilt when the theme changes to account for
7196         any potential font size change (BGO #541102)
7198 2008-07-25  Gabriel Burt  <gabriel.burt@gmail.com>
7200         * src/Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtJob.cs: Fix
7201         major performance issue I introduced within the last week.  With this and
7202         snorp and my earlier commits, BGO #541469 is fixed.
7204 2008-07-25  James Willcox  <snorp@snorp.net>
7206         * src/Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtService.cs:
7207         Properly respond to TrackChanged events, and only fetch cover art
7208         if something changed that we care about.
7210 2008-07-25  Gabriel Burt  <gabriel.burt@gmail.com>
7212         * src/Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtJob.cs:
7213         Schedule the cover art lookup job w/ the lowest priority.
7215 2008-07-25  Aaron Bockover  <abock@gnome.org>
7217         * build/Makefile.am: Patch from Bertrand Lorentz to force UTF-8 local
7218         when extracting strings from po files to populate the translator
7219         credits (BGO #506556)
7221 2008-07-24  Aaron Bockover  <abock@gnome.org>
7223         * src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/InternetRadioSource.cs:
7224         * src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/InternetRadioSourceContents.cs:
7225         Temporary hack that provides a Genre browser for Internet Radio
7227         * src/Clients/Nereid/Nereid/PlayerInterface.cs: Support inherited
7228         source contents
7230         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/ITrackModelSourceContents.cs:
7231         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/CompositeTrackSourceContents.cs:
7232         Remove unnecessary interface API and disable the genre browser for now
7234         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/FilteredListSourceContents.cs:
7235         Support forced positioning of the browser
7237 2008-07-24  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
7239         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Fix the 
7240         comparison between the field column and the current sort column, so that
7241         "CoreTracks.skippedcount" doesn't match "Track". Makes BGO #544415 less
7242         likely to happen, but doesn't fix it.
7244 2008-07-24  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
7246         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
7247         * src/Core/Banshee.Core/Banshee.Base/FileNamePattern.cs: Replace string 
7248         concatenations with Path.Combine calls, and get rid of useless Substring
7249         call (BGO #544427).
7251 2008-07-24  Aaron Bockover  <abock@gnome.org>
7253         * src/Libraries/Hyena.Gui/Hyena.Gui/GtkWorkarounds.cs: Work around a nasty
7254         little bug in GDK and subsequently Gdk# (2.8.5 through 2.12.1) where
7255         managed Gdk.Window.Destroy function does not obtain a normal (non-toggle)
7256         reference on the GdkWindow before calling gdk_window_destroy on it,
7257         which the native function apparently expects. This work around ensures
7258         that GdkWindows will be properly destroyed regardless of the Gdk# 
7259         version in use
7261         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Windowing.cs:
7262         Use GtkWorkarounds.WindowDestroy
7264 2008-07-22  Gabriel Burt  <gabriel.burt@gmail.com>
7266         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Add a
7267         UriToSafeUri method that checks to see if the uri is relative and does the
7268         right thing.
7270         * src/Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtJob.cs: Set the
7271         Uri on the track object we pass to the metadata provider, fixes bug where
7272         the cover art extension wasn't able to use the new cover-art-in-folder
7273         lookup provider (BGO #544226).
7275 2008-07-22  Gabriel Burt  <gabriel.burt@gmail.com>
7277         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Header.cs:
7278         Optimize the loop that checks to see if a click happened on a column's
7279         resize area.  Add some comments.
7281 2008-07-22  Gabriel Burt  <gabriel.burt@gmail.com>
7283         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
7284         Fix glitch where the resize cursor would flash away when you actually
7285         pressed the mouse button, but then come back when you started moving.
7287 2008-07-22  Gabriel Burt  <gabriel.burt@gmail.com>
7289         * src/Core/Banshee.Services/Banshee.Services.mdp:
7290         * src/Core/Banshee.Services/Makefile.am:
7291         * src/Core/Banshee.Services/Banshee.Metadata.FileSystem/FileSystemMetadataProvider.cs:
7292         * src/Core/Banshee.Services/Banshee.Metadata.FileSystem/FileSystemQueryJob.cs:
7293         New provider that gets cover art files from the folder a track is in (BGO
7294         #528137, BGO #336249).  Looks for the largest JPG file in the folder.
7296         * src/Core/Banshee.Services/Banshee.Metadata/MetadataService.cs: Use the
7297         new provider, after the embedded provider.
7299         * src/Core/Banshee.Core/Banshee.Collection/IBasicTrackInfo.cs: Add Uri
7300         property.
7302 2008-07-22  Gabriel Burt  <gabriel.burt@gmail.com>
7304         This commit does the backend (non-UI) work to make filters (eg
7305         artist/album/genre/etc browsers) on sources customizable.  All the UI work
7306         still needs to be done - actually supporting showing an arbitrary number
7307         and set of filters, and the UI, perhaps menus, to actually
7308         add/remove/replace filters.
7310         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationSource.cs:
7311         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdSource.cs:
7312         Since the FilterModels property was removed from the ITrackModelSource, no
7313         longer need to implement it for sources that aren't filterable.
7315         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs:
7316         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/CompositeTrackSourceContents.cs:
7317         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastSourceContents.cs:
7318         Renamed FilterModels property to CurrentFilters.
7320         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastSource.cs:
7321         Use the new AvailableFilters and DefaultFilters properties instead of just
7322         overriding the FilterModels property.
7324         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumListModel.cs:
7325         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistListModel.cs:
7326         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseQueryFilterModel.cs:
7327         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastFeedModel.cs:
7328         Pass a name and label to the filter ctor, so we can expose the label in a
7329         menu later to make the filters customizable.
7331         * src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/InternetRadioSource.cs:
7332         Make the changes necessary to display a genre browser, but keep it hidden
7333         for now because the Composite widget is hard coded to show three filters,
7334         even if a source only has one.
7336         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseFilterListModel.cs:
7337         Set the FilterName and Label from the new ctor args.
7339         * src/Core/Banshee.Services/Makefile.am:
7340         * src/Core/Banshee.Services/Banshee.Services.mdp:
7341         * src/Core/Banshee.Services/Banshee.Sources/IFilterableSource.cs: New
7342         interface that exposes CurrentFilters property and a FiltersChanged event.
7344         * src/Core/Banshee.Services/Banshee.Sources/ITrackModelSource.cs: Remove
7345         the FilterModels property (and comment cruft).
7347         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Add a bunch
7348         of methods for allowing customization of filters -
7349         adding/removing/replacing them, and saving/loading to/from gconf.
7351         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Add CreateSchema
7352         convenience methods that given a name and a T give you a source-scoped
7353         SchemaEntry.
7355         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Avoid NRE by
7356         using a lazily-loaded property instead of its backing variable.
7358         * src/Core/Banshee.Services/Banshee.Collection/IFilterListModel.cs:
7359         * src/Core/Banshee.Services/Banshee.Collection/FilterListModel.cs: Add
7360         InvalidateCache method.
7362 2008-07-21  Alexander Hixon  <ahixon@gnome.org>
7364         * src/Libraries/Lastfm/Lastfm.Data/DataCore.cs: Make sure that we check
7365         the hash string length before performing a substring operation to avoid
7366         out-of-range exceptions.
7368 2008-07-21  Alexander Hixon  <ahixon@gnome.org>
7370         * src/Backends/Banshee.Gnome/Banshee.Gnome.addin.xml: Forgot to commit
7371         this so that the GNOME ScreensaverManager implementation gets loaded.
7373 2008-07-20  Gabriel Burt  <gabriel.burt@gmail.com>
7375         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Add curlies.
7377         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistListModel.cs:
7378         Fix whitespace.
7380         * src/Core/Banshee.Services/Banshee.Collection/IFilterListModel.cs:
7381         * src/Core/Banshee.Services/Banshee.Collection/FilterListModel.cs: Add
7382         FilterName and FilterLabel properties that will be used in making the
7383         filters configurable.
7385         * src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs: Add TODO
7386         comment, and get rid of static ctor where we set the labels for the
7387         QueryValue operators (they are set in Hyena now).
7389         * src/Libraries/Hyena/Hyena.Query/IntegerQueryValue.cs:
7390         * src/Libraries/Hyena/Hyena.Query/QueryOperator.cs:
7391         * src/Libraries/Hyena/Hyena.Query/StringQueryValue.cs:
7392         * src/Libraries/Hyena/Hyena.Query/NullQueryValue.cs:
7393         * src/Libraries/Hyena/Hyena.Query/RelativeTimeSpanQueryValue.cs:
7394         * src/Libraries/Hyena/Hyena.Query/DateQueryValue.cs: Set the translated
7395         labels for the operators in their ctors.
7397 2008-07-20  Bertrand Lorentz  <bertrand.lorentz@gmail.com>
7399         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ClassicTrackInfoDisplay.cs:
7400         Add constructors to prevent seemingly random crashes (BGO #540728).
7402 2008-07-20  Gabriel Burt  <gabriel.burt@gmail.com>
7404         * src/Libraries/Lastfm/Lastfm.Data/DataEntry.cs: Patch from Arthur Carli
7405         fixing issue with parsing percentages from Last.fm without culture
7406         invariant info (BGO #539528).
7408 2008-07-20  Bertrand Lorentz  <lorentz@siva>
7410         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Add a lock 
7411         statement on the error_source field, to prevent a deadlock when importing
7412         songs with invalid mpeg headers (BGO #542915). 
7414 2008-07-20  Gabriel Burt  <gabriel.burt@gmail.com>
7416         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
7417         Patch from Fabian Jost fixing issue with migrations - I added the new
7418         columns in both the migration and the initial db creation, but I forgot to
7419         add the columns to the data migration code (BGO #542345).
7421 2008-07-20  Gabriel Burt  <gabriel.burt@gmail.com>
7423         * src/Core/Banshee.Widgets/Banshee.Widgets/Tile.cs: Prevent NRE when
7424         setting the Pixbuf of a Tile to null (BGO #542921).
7426 2008-07-20  Gabriel Burt  <gabriel.burt@gmail.com>
7428         * src/Core/Banshee.Services/Banshee.Metadata.MusicBrainz/MusicBrainzQueryJob.cs:
7429         Patch from Peter de Kraker, looks up the release using the AlbumArtist
7430         instead of the track artist (BGO #539570).
7432 2008-07-20  Gabriel Burt  <gabriel.burt@gmail.com>
7434         Patch from Peter de Kraker adding support for fetching cover art from
7435         Last.fm (BGO #536132), with a few tiny changes (mostly HACKING style
7436         issues) by me.
7438         * src/Core/Banshee.Services/Banshee.Metadata/MetadataService.cs:
7439         Whitespace issues, and add the Lastfm provider.
7441         * src/Core/Banshee.Services/Banshee.Services.addins:
7442         * src/Core/Banshee.Services/Makefile.am:
7443         * src/Core/Banshee.Services/Banshee.Services.mdp:
7444         * src/Core/Banshee.Services/Banshee.Metadata.LastFM/LastFMMetadataProvider.cs:
7445         * src/Core/Banshee.Services/Banshee.Metadata.LastFM/LastFMQueryJob.cs: New
7446         files implementing cover art fetching from Last.fm.
7448         * src/Core/Banshee.Services/Banshee.Metadata.MusicBrainz/MusicBrainzQueryJob.cs:
7449         Whitespace fixes.
7451         * src/Libraries/Lastfm/Lastfm.mdp:
7452         * src/Libraries/Lastfm/Makefile.am:
7453         * src/Libraries/Lastfm/Lastfm.Data/DataEntry.cs:
7454         * src/Libraries/Lastfm/Lastfm.Data/LastfmAlbumData.cs: Wrap album
7455         information from Last.fm.
7457         * src/Core/Banshee.Core/Banshee.Core.mdp:
7458         * build/build.environment.mk: Banshee.Services now depends on Lastfm.
7459         Ideally we will move these providers out into extensions at some point.
7461         * src/Core/Banshee.Core/Resources/contributors.xml: Add Peter and Sandy.
7463 2008-07-20  Gabriel Burt  <gabriel.burt@gmail.com>
7465         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapSource.cs:
7466         * src/Dap/Banshee.Dap/Banshee.Dap/RemovableSource.cs:
7467         * src/Core/Banshee.ThickClient/Banshee.Library.Gui/FileImportSource.cs:
7468         * src/Core/Banshee.ThickClient/Banshee.Library.Gui/FolderImportSource.cs:
7469         * src/Core/Banshee.Services/Banshee.PlayerMigration/AmarokPlayerImportSource.cs:
7470         * src/Core/Banshee.Services/Banshee.Library/ThreadPoolImportSource.cs:
7471         * src/Core/Banshee.Services/Banshee.Library/HomeDirectoryImportSource.cs:
7472         * src/Core/Banshee.Services/Banshee.Library/IImportSource.cs: Add a
7473         SortOrder int property so we can hint at the order import sources should
7474         be displayed in the import dialog.  In particular, puts the folder import
7475         first.
7477         * src/Core/Banshee.ThickClient/Banshee.Library.Gui/ImportDialog.cs: Sort
7478         the import sources before adding them to the combo box.
7480         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Add a static
7481         IsPlayingMethod delegate used by the new IsPlaying property to determine
7482         if the current instance is playing.
7484         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
7485         Set the TrackInfo.IsPlayingMethod to our IsPlaying (track) method.
7487         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Model.cs: Fix
7488         issue with the ListView position getting scrolled to the top of the list
7489         when it probably shouldn't be.  Add RowBoldPropertyName (like
7490         RowSensitivePropertyName) and IsRowBold method.
7492         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
7493         Set the RowBoldPropertyName to use TrackInfo's IsPlaying property.
7495         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
7496         If IsRowBold set the FontWeight property to bold for all ColumnCellText
7497         cells.
7499         * src/Core/Banshee.Core/Resources/translators.xml: Automatically updated.
7501 2008-07-20  Gabriel Burt  <gabriel.burt@gmail.com>
7503         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/FilteredListSourceContents.cs:
7504         Add comments.
7506 2008-07-20  Gabriel Burt  <gabriel.burt@gmail.com>
7508         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseFilterListModel.cs:
7509         Fix bug where if a filter model (eg artist or album browser) had zero
7510         items in it (just the All Albums item), it wouldn't filter the view, so
7511         that if you had an artist selected and searched for a string that didn't
7512         match, the artist filter would be cleared and the search ran against all
7513         artists - not what you'd expect.  So this fixed that bug, but it should be
7514         improved more by remembering and restoring the last filter selection
7515         before the zero items query, so that when you back out your search you'll
7516         still have that artist (or albums, etc) selected.
7518 2008-07-20  Gabriel Burt  <gabriel.burt@gmail.com>
7520         * src/Dap/Banshee.Dap/Banshee.Dap/DapService.cs: Use Banshee.Kernel
7521         instead of ThreadAssist.SpawnFromMain.
7523 2008-07-20  Gabriel Burt  <gabriel.burt@gmail.com>
7525         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
7526         Cast CacheEntryIds to ints to get value comparison.  Fixes bug where the
7527         playback indicator next to the playing track would disappear, which was
7528         introduced when I committed the genre filter support and made the
7529         CacheEntryId an object.
7531 2008-07-19  Alexander Hixon  <ahixon@gnome.org>
7533         Patch from Christopher Halse Rogers to disable the screensaver when
7534         watching fullscreen video (BGO #531192) under GNOME (with the ability to
7535         use other backends).
7537         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/IScreensaverManager.cs: 
7538         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/ScreensaverManager.cs: 
7539         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying.addin.xml: Add an
7540         extension point for screensaver extensions for disabling the screensaver
7541         or power management while playing fullscreen.
7542         
7543         * src/Backends/Banshee.Gnome/Banshee.GnomeBackend/GnomeScreensaverManager.cs: 
7544         Implement a ScreensaverManager to control GNOME screensaver.
7546         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingInterface.cs: 
7547         Use ScreensaverManager to inhibit the screensaver when switching to
7548         fullscreen, and re-enable it when switching away.
7550         * build/build.environment.mk:
7551         Add Banshee.NowPlaying to the references for Banshee.GnomeBackend to build
7552         GnomeScreensaverManager.
7554 2008-07-17  Aaron Bockover  <abock@gnome.org>
7556         * src/Libraries/Hyena/Hyena.Collections/RangeCollection.cs: Make
7557         CompareRanges static
7559 2008-07-16  Aaron Bockover  <abock@gnome.org>
7561         * src/Libraries/Hyena/Hyena.Collections/Tests/RangeCollectionTests.cs:
7562         Added some more tests, including negative indexes, and a real world
7563         IP address range test from Alan
7565         * src/Libraries/Hyena/Hyena.Collections/RangeCollection.cs: Fixed a serious
7566         bug with range and value-in-range comparisons exposed by MS.NET. The
7567         IComparable interface was removed from Range and the comparisons were
7568         split into the respective binary search implementations; no longer is
7569         Array.BinarySearch used either when searching for a value in a range
7570         so the comparison can be done inline without extra method calls; should
7571         be ever so slightly more efficient and works (all tests pass) on Mono
7572         and MS.NET
7574 2008-07-15  Daniel Nylander <po@danielnylander.se>
7576         * data/banshee-1.desktop.in.in: Changed Comment to be translatable.
7578 2008-07-15  Gabriel Burt  <gabriel.burt@gmail.com>
7580         * src/Libraries/Hyena/Hyena.Query/UserQueryParser.cs: Patch from Michael
7581         Kaiser fixing issue with parsing user queries starting with a "-" (BGO
7582         #538203).  Fixes the two broken query parsing unit tests.
7584 2008-07-01  Aaron Bockover  <abock@gnome.org>
7586         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/X11NotificationAreaBox.cs:
7587         Ignore the first size allocation since it's the default window size and
7588         causes the notification area to resize to a huge dimension until a new
7589         request is queued for the actual icon size (BGO #540885)
7591 2008-06-27  Gabriel Burt  <gabriel.burt@gmail.com>
7593         * src/Core/Banshee.Services/Banshee.Library/ThreadPoolImportSource.cs:
7594         Fix NRE that totally broke the Amarok importer.
7596         * src/Core/Banshee.Services/Banshee.PlayerMigration/AmarokPlayerImportSource.cs:
7597         Improve the Amarok importer, including fixes for broken rating importing.
7598         Also, migrate the podcast subscriptions.
7600 2008-06-27  Gabriel Burt  <gabriel.burt@gmail.com>
7602         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastFeedModel.cs:
7603         Sort podcasts by case-insensitive title.
7605         * src/Extensions/Banshee.Daap/Daap/Database.cs: Fix bug with not
7606         specifying what meta fields to return when fetching playlists (actually
7607         crashed new RB and got bad data from old RB).
7609         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapService.cs: Proxy UI
7610         actions to the main loop, and don't flash new shares within 5 seconds of
7611         starting the locator.
7613         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapSource.cs: Make Disconnect
7614         and Import actions insensitive unless connected.  Handle disconnecting
7615         while loading the tracks (BGO #526817).  When we disconnect, show the
7616         disconnected error view.  Proxy ui actions to main loop.  While loading
7617         tracks, reload fewer times for big collections.
7619         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapPlaylistSource.cs: Proxy
7620         OnUpdated call to main.
7622         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs: Listen for
7623         the active source's Updated event and UpdateActions when it is raised.
7625         * src/Core/Banshee.Services/Banshee.Web/Browser.cs: Fix typo in UserAgent
7626         string (no closing parenthesis.
7628         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs:
7629         * src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs:
7630         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Don't set a source
7631         as the active source unless source.CanActivate is true.
7633         * src/Libraries/Migo/Migo.Net/AsyncWebClient.cs: Some servers seem to
7634         return Bad Request when HttpWebRequest auto redirects (because it sets
7635         Content-Length:0, apparently) - so work around that by grabbing the final
7636         URI directly.  Fixes, for example, the ogg podcast of "this WEEK in Tech".
7638 2008-06-27  Gabriel Burt  <gabriel.burt@gmail.com>
7640         * src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs: Fix
7641         bug I introduced yesterday for people starting w/ no db.
7643 2008-06-26  Gabriel Burt  <gabriel.burt@gmail.com>
7645         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapService.cs: Make the
7646         service a DelayedInitializeService.  Seems to fix most (all?) of the
7647         problems finding shares on startup.
7649 2008-06-26  Gabriel Burt  <gabriel.burt@gmail.com>
7651         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
7652         Remove WriteLines.
7654         * src/Core/Banshee.Services/Banshee.Collection.Database/FilterModelProvider.cs:
7655         Remove expensive ifnull call; all blank (empty or all white space) strings
7656         should now be saved as null.
7658         * src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs:
7659         Increase the cache size if the library has > 10K tracks, use LogAll = true
7660         for sql debugging.
7662         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
7663         Update CoreTracks genre, composer etc to be null if blank/whitespace.
7664         Drop the CoreCache table - will be recreated as needed, and as a temporary
7665         table (small performance win).  Vacuum and analyze the db, for good
7666         measure.
7668         * src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs: Remove
7669         expensive sort by Uri as the fallback for most non-URI sort options.
7671         * src/Libraries/Hyena/Hyena.Query/QueryTermNode.cs: Explicitly set the
7672         no-field-specified operator (to contains).
7674         * src/Libraries/Hyena/Hyena.Data.Sqlite/Tests/SqliteModelProviderTests.cs:
7675         Test that blank/whitespace strings get saved as null.
7677         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteUtils.cs: If a string is
7678         empty or whitespace only, save it as null.
7680         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteConnection.cs: Change
7681         Exists function to check sqltie_temp_master too.
7683         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs: Wrap the
7684         reload query (delete + insert into CoreCache) in a transaction.  Make the
7685         CoreCache table a TEMP table for performance.
7687 2008-06-26  Gabriel Burt  <gabriel.burt@gmail.com>
7689         This commit adds manual playlist (including play queue) sorting.  To
7690         manually sort a playlist, you need to turn off column sorting by clicking
7691         the sorted column until the sort arrow disappears (it has three states,
7692         asc, desc, manual sort order).
7694         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
7695         Fix bug with my return-to-previous-playback-source code where if the Play
7696         Queue was the *next* playback source and was then emptied, it wouldn't
7697         fall back to the previous and/or current.  Also, force sorting by
7698         ViewOrder, enabling manual sort order.
7700         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
7701         Handle DragDrop for playlists, reordering the selected tracks.
7703         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs:
7704         Handle the new SortType (None) for playlists, sorting by ViewOrder.
7706         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs: Implement
7707         reordering and setting default order when adding tracks to a playlist.
7708         Adding tracks still uses a constant number of queries, but reordering uses
7709         N + 2 or 3 where N is the number of tracks you dragged.
7711         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
7712         Make sure the playlist order column is initialized w/ decent values.
7714         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Add a
7715         MediaTypeName property, will be used for menu items and other UI for
7716         calling an item by a more descriptive name (eg Podcast, Video, etc).
7718         * src/Libraries/Hyena/Hyena.Data/SortType.cs: Add None type.
7720         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnHeaderCellText.cs: Don't
7721         draw an arrow if sort type is None.
7723         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/SortableColumn.cs: Explicitly set
7724         the default sort type to ascending.
7726         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_DragAndDrop.cs:
7727         Add protected helper method GetDragRow (int y) that returns the drop row
7728         index for a given y, such that if over the top half of a row, returns that
7729         index, else returns the one after.
7731         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Windowing.cs:
7732         Add protected helper, TranslateToListY that subtracts the header height.
7734         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
7735         Factor out the reorder line painting into its own method, and fix a bug
7736         where the line wasn't drawn if the position was after the last row.
7738 2008-06-25  Gabriel Burt  <gabriel.burt@gmail.com>
7740         This commit has a few goodies.  The track header info for radio stations
7741         is much improved, showing song information (if we have it) plus the
7742         station name.  Transferring of DAAP tracks to the library (by DnD and via
7743         Importing) works now (with smooth progress updates for the transfer).  The
7744         AddTrack to library job is now cancellable.
7746         * src/Extensions/Banshee.Daap/Daap/Database.cs: Rework the Fetch/Stream
7747         methods to not require a Track object, but only the track_id and type,
7748         which is all they really need.  This lets us avoid the O(n) track lookup.
7749         Add yield return progress updates to the DownloadTrack method.
7751         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapSource.cs: Implement
7752         CopyTrackTo and Import so that dragging and importing tracks from a DAAP
7753         share into the library works.
7755         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapTrackInfo.cs: Tweak the
7756         mimetype to save the DAAP.Track's Format without modification.
7758         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapPlaylistSource.cs: Get a
7759         more accurate count if some (or all) tracks are null.
7761         * src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/InternetRadioSource.cs:
7762         Set the track's Album and Artist from the station editor.
7764         * src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/StationEditor.cs:
7765         Factor out the table-row entry code, and add a Station Creator row (aka
7766         artist).
7768         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/UserJobTileHost.cs:
7769         Ensure no user job is displayed for less than 1 second, to avoid things
7770         appearing and disappearing so fast some times.
7772         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
7773         Refactor a lot of code, and special case RadioTrackInfo objects, tacking
7774         on "on {radio station name}" to the second line if it has an artist or
7775         album, or just using the station name as the second line if it doesn't.
7777         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/UserJobTile.cs: When
7778         the stop button is pressed and confirmed, set the job title to
7779         "Stopping..." and make the button not sensitive.
7781         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Not sure
7782         what SourceMergeType.All is really for, but treat it the same as
7783         SourceMergeType.Source.
7785         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Override
7786         AddAllTracks the same as AddSelectedTracks is overriden.  Allow cancelling
7787         the add job.
7789         * src/Core/Banshee.Services/Banshee.ServiceStack/IUserJob.cs: Expose
7790         IsCancelRequested property.
7792         * src/Core/Banshee.Services/Banshee.Streaming/RadioTrackInfo.cs: Default
7793         the title/artist/album for the track to its parent's values.
7795         * src/Core/Banshee.Services/Banshee.Collection.Database/CachedList.cs: Add
7796         another static helper for creating a cached list from an entire model.
7798         * src/Core/Banshee.Core/Banshee.Streaming/StreamTagger.cs: Bring code over
7799         from stable, that when given a new track title splits it on " - " if the
7800         track.IsLive.
7802 2008-06-25  Bertrand Lorentz <bertrand.lorentz@gmail.com> 
7804         * build/m4/banshee/boo.m4: Add a disable-boo flag. If boo is not present and
7805         disable-boo is not set, configure will fail (BGO #532420).
7807 2008-06-25  Bertrand Lorentz <bertrand.lorentz@gmail.com> 
7809         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmActions.cs: Fix
7810         bug where the repeat and shuffle mode were restored when switching
7811         between two Last.fm stations (BGO #538946).
7813 2008-06-25  Gabriel Burt  <gabriel.burt@gmail.com>
7815         * src/Libraries/Hyena/Hyena.Query/Tests/QueryTests.cs: Make the query
7816         tests that used to pass pass again.
7818 2008-06-25  Aaron Bockover  <abock@gnome.org>
7820         This commit fixes two new errors exposed due to fixes in gmcs trunk
7822         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/PodSleuthDevice.cs: Due to 
7823         different assignment evaluation, type checking happens differently so
7824         int can't be assigned to short during zero-value initialization
7825         
7826         * src/Core/Banshee.Services/Banshee.MediaProfiles/MediaProfileManager.cs:
7827         Update ignore pragma for the different (more correct) warning 
7828         that is thrown now
7830 2008-06-24  Gabriel Burt  <gabriel.burt@gmail.com>
7832         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/NotificationAreaService.cs:
7833         Patch from Sandy Armstrong and Bertrand Lorentz, fixes bug where
7834         notification popups were no longer showing on track change (BGO #537004).
7836 2008-06-24  Gabriel Burt  <gabriel.burt@gmail.com>
7838         * src/Libraries/Lastfm.Gui/Lastfm.Gui/AccountLoginDialog.cs:
7839         * src/Libraries/Lastfm.Gui/Lastfm.Gui/AccountLoginForm.cs: Patch from
7840         Peter de Kraker adds ability to press enter from password entry on Last.fm
7841         login form to save and close the dialog (BGO #536328).
7843 2008-06-24  Gabriel Burt  <gabriel.burt@gmail.com>
7845         * src/Extensions/Banshee.Daap/Banshee.Daap.mdp: Reflect addins mv and
7846         proxy file from last commit, new error view file and refs this commit.
7848         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapSource.cs: Set the
7849         ErrorView when we fail to login to a share we detected.
7851         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapErrorView.cs: Tweak for
7852         trunk, subclassing from RoundedFrame and no border, and implementing
7853         ISourceContents.
7855         * src/Extensions/Banshee.Daap/Makefile.am:  Add the new error view.
7857         * src/Clients/Nereid/Nereid/PlayerInterface.cs: Listen for changed to the
7858         active source's Nereid.SourceContents property, keeping it synced - so
7859         that we can change to the error source for a daap share, and then back to
7860         the normal contents by unsetting the property.
7862 2008-06-24  Gabriel Burt  <gabriel.burt@gmail.com>
7864         * src/Extensions/Banshee.Daap/Daap/Database.cs: Style.
7866         * src/Extensions/Banshee.Daap/Resources/Banshee.Daap.addin.xml:
7867         * src/Extensions/Banshee.Daap/Banshee.Daap.addin.xml: Move up from
7868         Resources, and add original DAAP plugin authors.
7870         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapProxyWebServer.cs: Copied
7871         from stable branch.
7873         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapService.cs: Create a new
7874         proxy server instance.  Make new shares pulsate.  Dispose shares
7875         recursively.
7877         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapSource.cs: Prevent creating
7878         playlists/smart playlists, initialize count to 0, [un]register our
7879         database with the proxy server.
7881         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapTrackInfo.cs: Use the proxy
7882         server url, don't set CanSavetoDatabase to false, that prevents daap
7883         tracks from being used with the queue.
7885         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapPlaylistSource.cs: Override
7886         quite a few things: no removing/deleting tracks, renaming, unmapping, or
7887         adding tracks.
7889         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapContainerSource.cs:
7890         CanRename = false.
7892         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapErrorView.cs: Copied from
7893         stable, not yet used.
7895         * src/Extensions/Banshee.Daap/Makefile.am: Add the proxy server class,
7896         move the addins file.
7898 2008-06-24  Aaron Bockover  <abock@gnome.org>
7900         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
7901         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ClassicTrackInfoDisplay.cs:
7902         Split out layout rendering and event logic from TrackInfoDisplay, 
7903         which is now abstract, into ClassicTrackInfoDisplay so the widget is 
7904         now easier to maintain and also new displays can be built by extending 
7905         TrackInfoDisplay - the extending class only has to worry about 
7906         rendering frames (no animation, group, xfade, etc.)
7908         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/TrackInfoPopup.cs:
7909         * src/Extensions/Banshee.MiniMode/Banshee.MiniMode/MiniModeWindow.cs:
7910         * src/Clients/Nereid/Nereid/PlayerInterface.cs:
7911         Updated to use ClassicTrackInfoDisplay
7913 2008-06-24  Gabriel Burt  <gabriel.burt@gmail.com>
7915         Importing playlists (.m3u and .pls) should work again.
7917         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapPlaylistSource.cs: Fix
7918         typo/bug.
7920         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml:
7921         * src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs: Uncomment out
7922         the playlist import action/handler.
7924         * src/Core/Banshee.ThickClient/Banshee.Library.Gui/FileImportSource.cs:
7925         * src/Core/Banshee.ThickClient/Banshee.Library.Gui/FolderImportSource.cs:
7926         Set some default shortcut folders for the file choosers, and set a
7927         FileFilter from the white listed files for the File importer.
7929         * src/Core/Banshee.Services/Banshee.Collection/ImportManager.cs: Add
7930         exception handling/logging.
7932         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseImportManager.cs:
7933         Make string [] of white listed extensions public/readonly.
7935         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
7936         Reduce duplication in still-ugly *ForUri static methods.
7938         * src/Core/Banshee.Services/Banshee.Playlists.Formats/PlaylistParser.cs:
7939         Dispose of the input stream when finished with it.
7941         * src/Core/Banshee.Services/Banshee.Playlists.Formats/PlaylistFormatBase.cs:
7942         Add TODO.
7944         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistFileUtil.cs: Add
7945         ImportPlaylistToLibrary method, and use it for the Import Playlist(s)
7946         actions.  Implement the ImportPlaylistWorker class to work with trunk.
7948         * src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs: Add
7949         convenience method GetTrackIdForUrl that uses the DatabaseTrackInfo
7950         methods.
7952         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
7953         Add some indices, and fix a bug where the changes from migration 12 were
7954         not also done for the intial db creation code.
7956         * src/Libraries/Hyena.Gui/Hyena.Gui/GtkUtilities.cs: Add two methods, one
7957         for creating a FileFilter from a string [] of extensions, and one for
7958         setting a bunch of shortcut folders for a file chooser (w/ try/catch).
7960 2008-06-23  Gabriel Burt  <gabriel.burt@gmail.com>
7962         Some good changes to the DAAP extension.  It should now load the remote
7963         track list much much faster.  Still needs work though.
7965         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastTrackInfo.cs:
7966         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
7967         Bind the ExternalId in DatabaseTrackInfo.
7969         * src/Extensions/Banshee.Daap/Daap/ServiceLocator.cs: Clean up logging.
7971         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapService.cs: Remove the
7972         container source when disposing the service.
7974         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapSource.cs: Get rid of the
7975         Dictionary track_map (instead use the CoreTracks.ExternalId column),
7976         improve logging, and purge tracks and unmap playlists when disposed.
7978         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapTrackInfo.cs: Set the
7979         MimeType and ExternalId properties.
7981         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapPlaylistSource.cs: First
7982         pass at making playlists much more efficient (one SQL command instead of
7983         N).
7985 2008-06-23  Gabriel Burt  <gabriel.burt@gmail.com>
7987         * src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs: Avoid
7988         collection modified exception in AddSource.
7990 2008-06-23  Gabriel Burt  <gabriel.burt@gmail.com>
7992         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
7993         Remember the last playback source when switching to the play queue, so
7994         when the queue is empty we can switch back to it.
7996         * src/Core/Banshee.Services/Banshee.PlaybackController/PlaybackControllerService.cs:
7997         Have the playback source follow the active source when first started up.
7999 2008-06-23  Gabriel Burt  <gabriel.burt@gmail.com>
8001         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellQueryText.cs:
8002         New class that shows the Text of the object, or if blank, a given string.
8004         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/QueryFilterView.cs:
8005         A simple ListView derivative for showing a ColumnCellQueryText column.
8007         * src/Core/Banshee.ThickClient/Banshee.ThickClient.mdp:
8008         * src/Core/Banshee.ThickClient/Makefile.am: The new files above.
8010         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs:
8011         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/CompositeTrackSourceContents.cs:
8012         Add a genre browser, hardcoded in for now (like artist/album).  We should
8013         make these configurable, rearrangable, etc.
8015         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseQueryFilterModel.cs:
8016         Class that makes it very easy to have a new database-backed model for
8017         filters based on arbitrary columns from CoreTracks.  Currently used for
8018         the new genre browser.
8020         * src/Core/Banshee.Services/Banshee.Collection.Database/FilterModelProvider.cs:
8021         New class, derived from SqliteModelProvider, used for the new model
8022         mentioned above.  Overrides the Select statement so we'll be able to do
8023         things like "select distinct year/10" to get the decades of a track
8024         collection.
8026         * src/Core/Banshee.Services/Banshee.Collection.Database/QueryFilterInfo.cs:
8027         New class for each result row of the FilterModelProvider.  Holds the
8028         value, eg the decade in the above example, and has a settable Title.
8030         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseFilterListModel.cs:
8031         Update FetchCount to 40, implement new CachesValues property, and don't
8032         require the connection be a BansheeDbConnection.
8034         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumListModel.cs:
8035         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistListModel.cs:
8036         Tweak both reload SQL fragments for performance.
8038         * src/Libraries/Hyena/Hyena.Data.Sqlite/ICacheableDatabaseModel.cs:
8039         * src/Core/Banshee.Services/Banshee.Collection.Database/CachedList.cs:
8040         Add CachesValues property.
8042         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs:
8043         Implement CachesValues, and fix IndexOf to use new, improved
8044         cache.IndexOf.
8046         * src/Core/Banshee.Services/Banshee.Collection.Database/IDatabaseTrackModelCache.cs:
8047         Change IndexOf method to accept a ICacheableItem, and add an override that
8048         takes a cache_entry_id object.
8050         * src/Core/Banshee.Services/Banshee.Services.mdp:
8051         * src/Core/Banshee.Services/Makefile.am: Add new files.
8053         * src/Libraries/Migo/Migo.Syndication/MigoItem.cs:
8054         * src/Libraries/Hyena/Hyena.Data/ICacheableItem.cs:
8055         * src/Core/Banshee.Core/Banshee.Collection/CacheableItem.cs: CacheEntryId
8056         is now an object.
8058         * src/Libraries/Hyena/Hyena.Query/IntegerQueryValue.cs:
8059         * src/Libraries/Hyena/Hyena.Query/StringQueryValue.cs:
8060         * src/Libraries/Hyena/Hyena.Query/NullQueryValue.cs:
8061         * src/Libraries/Hyena/Hyena.Query/DateQueryValue.cs:
8062         * src/Libraries/Hyena/Hyena.Query/QueryValue.cs:
8063         * src/Libraries/Hyena/Hyena.Query/TimeSpanQueryValue.cs:
8064         * src/Libraries/Hyena/Hyena.Query/QueryField.cs: Add abstract LoadString
8065         method and implement in subclasses.  Also fix the
8066         NullQueryValue.IsNullOrEmpty operator.
8068         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs: Add new
8069         AddColumn protected method so subclasses can manually define their
8070         columns.
8072         * src/Libraries/Hyena/Hyena.Data.Sqlite/DatabaseColumn.cs: Make classes
8073         public, not internal.
8075         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs: Implement new
8076         IndexOf methods, and check model.CachesValues, and if so, select straight
8077         out of the CoreCache table the stored distinct genre values, say.
8079         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/IListView.cs: Expose the
8080         SelectionProxy.
8082         * src/Libraries/Hyena.Gui/Hyena.Query.Gui/StringQueryValueEntry.cs: Use
8083         ParseUserQuery instead of SetValue, since the input text is from the user.
8085 2008-06-23  Gabriel Burt  <gabriel.burt@gmail.com>
8087         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Recommendations/RecommendationPane.cs:
8088         Use the Banshee.Kernel to schedule/cancel recommendation refresh jobs.
8090 2008-06-23  Gabriel Burt  <gabriel.burt@gmail.com>
8092         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/DownloadManager/DownloadUserJob.cs:
8093         Change the download user job's name to specify it's downloading podcasts.
8095 2008-06-23  Gabriel Burt  <gabriel.burt@gmail.com>
8097         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSource.cs:
8098         Don't put (disconnected) in the source name; it confuses some users,
8099         making them think scrobbling won't work, it's not very useful, and it
8100         makes the source name quite long.
8102 2008-06-21  Aaron Bockover  <abock@gnome.org>
8104         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying.addin.xml: Define
8105         the new FullscreenAdapter extension point
8107         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/FullscreenAdapter.cs:
8108         The manager fullscreen adapter that also provides stock GTK fullscreening
8110         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/FullscreenWindow.cs:
8111         Get rid of the type hint since it really confuses older Compiz (on 10.3)
8113         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/IFullscreenAdapter.cs:
8114         A basic interface for FullscreenAdapter extensions which allow platforms
8115         to define solid fullscreen behavior above and beyond that which stock
8116         GTK can provide
8118         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingInterface.cs:
8119         Use the FullscreenAdapter stuff to go fullscreen
8121         * src/Backends/Banshee.NowPlaying.X11/Banshee.NowPlaying.X11: An X11 
8122         specific backend for providing an IFullscreenAdapter extension to the
8123         now playing video extension; this binds the hard and valued work of
8124         BaconResize found in Totem. Respek.
8126         * build/m4/banshee/bnpx11.m4:
8127         * src/Backends/Banshee.NowPlaying.X11/libbnpx11/bacon-resize.c: 
8128         * src/Backends/Banshee.NowPlaying.X11/libbnpx11/bacon-resize.h: Lovingly
8129         borrowed from our good friends, Totem. <3 Bastien. That is, the X11/XRandR
8130         support for doing proper fullscreen in some annoying situations, and the
8131         configure foo to detect it at build time
8133 2008-06-20  Aaron Bockover  <abock@gnome.org>
8135         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Recommendations/RecommendationPane.cs:
8136         Fix remaining layout and style issues, handle height allocation enforcement
8138         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Recommendations/SimilarArtistTile.cs:
8139         Created a SimilarArtist tile
8141 2008-06-20  Gabriel Burt  <gabriel.burt@gmail.com>
8143         * src/Core/Banshee.Core/Banshee.Collection/IBasicTrackInfo.cs: Patch from
8144         Peter de Kraker adding AlbumArtist property (BGO #539305).
8146 2008-06-19  Gabriel Burt  <gabriel.burt@gmail.com>
8148         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Have AlbumArtist
8149         fall back on ArtistName.  Fixes issue with Last.fm cover art.
8151 2008-06-19  Gabriel Burt  <gabriel.burt@gmail.com>
8153         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs:
8154         Try to subscribe to any uri passed on the command line that contains rss,
8155         xml, feed, or starts with itpc.
8157 2008-06-19  Gabriel Burt  <gabriel.burt@gmail.com>
8159         * src/Extensions/Banshee.Lastfm/Makefile.am: MD sorting.
8161         * src/Clients/Nereid/Nereid/ViewContainer.cs: Change the main vbox spacing
8162         to 8px, like all the other boxes.
8164 2008-06-19  Aaron Bockover  <abock@gnome.org>
8166         * src/Core/Banshee.ThickClient/Banshee.Gui/ViewActions.cs:
8167         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml:
8168         Enabled the equalizer again in the UI
8170         * gstreamer/equalizer/gstiirequalizer.c:
8171         * gstreamer/equalizer/remove-n-and-3-bands.diff: Rename the built-in
8172         equalizer element 'banshee-equalizer' so we don't have to do as much
8173         inspection at runtime to figure out if the element is built-in or not
8175         * libbanshee/banshee-player-equalizer.c: Added a _bp_equalizer_new function
8176         that will always return a non-buggy equalizer or NULL; that is, it will
8177         check to see if the built-in equalizer is available, and if not, if
8178         the system equalizer is available /and/ is 0.10.9 or newer; the detection
8179         state is saved so the probing only needs to be done once
8181         * libbanshee/banshee-player-pipeline.c: Use _bp_equalizer_new and only
8182         create the other elements if we were actually given an equalizer (instead
8183         of always creating the other elements and unreffing if the equalizer was
8184         not returned)
8186         * libbanshee/banshee-player-equalizer.h: Expose _bp_equalizer_new       
8188         * libbanshee/banshee-player-private.h: Added a equalizer_status field to
8189         the private player structure
8191         * src/Core/Banshee.Core/Resources/translators.xml: Updated
8193 2008-06-19  Gabriel Burt  <gabriel.burt@gmail.com>
8195         * src/Libraries/Hyena.Gui/Hyena.Widgets/RoundedFrame.cs: Fix the
8196         OnSizeRequested override so that the Recommendations pane is the right
8197         height.  Proper implementation gleaned from gtkframe.c.
8199 2008-06-19  Gabriel Burt  <gabriel.burt@gmail.com>
8201         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/NotificationAreaService.cs:
8202         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/DefaultColumnController.cs:
8203         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
8204         Fix misleading API, where setting the Rating on a DatabaseTrackInfo would
8205         automatically save.  Now if you want that behavior, use the SavedRating
8206         property.  This is the property now bound to the ListView, for example.
8208 2008-06-19  Sebastian Dröge  <slomo@circular-chaos.org>
8210         * gstreamer/equalizer/Makefile.am:
8211         Link the equalizer with libgstaudio-0.10 to actually make it work.
8213 2008-06-18  Gabriel Burt  <gabriel.burt@gmail.com>
8215         First pass at bringing the recommendations extension back.  It's got three
8216         big bugs atm: 1) background isn't white 2) height is too small 3) the
8217         similar artist tiles are not sized properly (they're tiny).
8219         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Recommendations/RecommendationActions.cs:
8220         Small class for adding/removing/handling the Show Recommendations action.
8222         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Recommendations/RecommendationService.cs:
8223         Ported from 0.13.2, listens to the source changes and player engine
8224         changes and shows the recommendation pane when appropriate.
8226         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Recommendations/RecommendationPane.cs:
8227         Ported from 0.13.2 but made to use the Lastfm library, shows similar
8228         artists and the top albums and tracks for an artist.
8230         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSourceContents.cs:
8231         Move the TitledList class to not be an inner class; should really be in
8232         its own file.
8234         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.addin.xml: Update authors,
8235         add recommendations service.
8237         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.mdp: Add recommendations
8238         source files, and add hyena refs.
8240         * src/Extensions/Banshee.Lastfm/Makefile.am: Add recommendation sources
8241         and resouces.
8243         * src/Extensions/Banshee.Lastfm/Resources/RecommendationMenu.xml: Brought
8244         over verbatim from 0.13.2.
8246         * src/Clients/Nereid/Nereid/PlayerInterface.cs:
8247         * src/Core/Banshee.ThickClient/Banshee.Gui/BaseClientWindow.cs: Add
8248         ViewContainer property so that recommendations can put itself below the
8249         track list.
8251         * src/Core/Banshee.Widgets/Banshee.Widgets/Tile.cs: Add a convenience ctor
8252         for setting the primary text.
8254         * src/Libraries/Lastfm/Lastfm.mdp: Add a bunch of assembly refs.
8256         * src/Libraries/Lastfm/Lastfm.Data/DataEntry.cs: Add a couple missing
8257         properties to the SimilarArtist class.
8259         * src/Libraries/Lastfm/Lastfm.Data/LastfmData.cs: Set the collection this
8260         class backs to a static empty collection until it's loaded its own, so
8261         that the ICollection fucntions will not crash if called before its set.
8262         Move download code into DataCore.
8264         * src/Libraries/Lastfm/Lastfm.Data/DataCore.cs: Moved a bunch of functions
8265         here from LastfmData, and expose a new DownloadContent method so that the
8266         recommendations extension can download cover art and cache it in the
8267         lastfm cache.
8269         * src/Libraries/Lastfm/Lastfm.Data/DataEntryCollection.cs: In the
8270         XmlNodeList ctor, handle the list being null (used by the static
8271         collection mentioned in LastfmData above).
8273 2008-06-18  Aaron Bockover  <abock@gnome.org>
8275         * gstreamer/equalizer/: Copied the GStreamer equalizer (10-band) element
8276         from GStreamer CVS so we can include it without depending on the very
8277         latest GStreamer. It has a number of necessary bug fixes which won't
8278         be available to many users for quite some time through normal distribution
8279         channels
8281         * gstreamer/COPYING: A copy of the LGPL
8282         
8283         * gstreamer/gst-package.mk: Define some metadata required for GStreamer
8284         plugins inside of the main GStreamer build environment
8286 2008-06-18  Gabriel Burt  <gabriel.burt@gmail.com>
8288         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
8289         Fix crasher caused by trying to migrate playlist data from old (pre
8290         0.13.2) versions of Banshee (BGO #538993).
8292 2008-06-18  Gabriel Burt  <gabriel.burt@gmail.com>
8294         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/OverlayWindow.cs:
8295         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs:
8296         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs:
8297         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView_DragAndDrop.cs:
8298         Patch from Alex Launi, adds some parenthesis that Mono 1.2.6 seems to need
8299         to compile Banshee (BGO #538973).
8301 2008-06-18  Gabriel Burt  <gabriel.burt@gmail.com>
8303         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:
8304         Another unnecessary type check.
8306 2008-06-18  Gabriel Burt  <gabriel.burt@gmail.com>
8308         * src/Core/Banshee.Services/Banshee.Hardware/HardwareManager.cs: Remove
8309         unnecessary type check.
8311 2008-06-17  Aaron Bockover  <abock@gnome.org>
8313         * src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/RadioColumnController.cs:
8314         Removed in favor of the XML column controller stuff I completely forgot
8315         that I had implemented
8317         * src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/InternetRadioSource.cs:
8318         Implement the column controller in XML
8320         * src/Core/Banshee.ThickClient/Banshee.Gui/BansheeActionGroup.cs:
8321         Get action labels and icons through source inheritance 
8323         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Allow the
8324         track properties action to have its settings overridden
8326         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Gabe implemented
8327         GetInheritedProperty that will look for a given property in the
8328         source chain, walking up to the parent
8330         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_DragAndDrop.cs:
8331         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Header.cs:
8332         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
8333         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
8334         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Model.cs:
8335         Fixes to ensure that the view will still work if there are no 
8336         adjustments (not packed in a scrolled window) or no model is set
8338 2008-06-17  Gabriel Burt  <gabriel.burt@gmail.com>
8340         This commit adds support for multi-artist (compilation) albums.  It
8341         triggers a metadata refresh for already imported items to get the
8342         AlbumArtist metadata from the files, and gets it for new ones on import.
8343         It also writes AlbumArtist back to the files if the preference is set.
8344         Given proper AlbumArtist info (editable in the information editor), the
8345         issues with sorting and many-copies-of-one-album in the album list should
8346         be fixed (BGO #517671)
8348         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdDiscModel.cs: 
8349         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdTrackInfo.cs:
8350         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdRipper.cs:
8351         Remove the AlbumArtist code, since this is taken care of at a higher level
8352         now.
8354         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/DefaultColumnController.cs:
8355         Set the default sort column to track #, since sorting by artist doesn't
8356         work for compilation albums.
8358         * src/Core/Banshee.ThickClient/Resources/banshee-dialogs.glade:
8359         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/TrackEditor.cs: Add a
8360         row for editing the album artist.
8362         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumInfo.cs: 
8363         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
8364         Add ArtistName and ArtistNameLowered columns to CoreAlbums.
8366         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumListModel.cs:
8367         * src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs:
8368         Order by the Album Artist named (lowered), fixed issues with
8369         sorting/grouping for compilation albums.
8371         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
8372         When saving, find/create the album based on the AlbumArtist, which is set
8373         equal to the ArtistName by default, unless explicitly set to something
8374         else.  Add the AlbumArtist virtual column property.
8376         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseFilterListModel.cs:
8377         Whitespace.
8379         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Add AlbumArtist
8380         virtual property.
8382         * src/Core/Banshee.Core/Banshee.Streaming/SaveTrackMetadataJob.cs:
8383         * src/Core/Banshee.Core/Banshee.Streaming/StreamTagger.cs: Save and load
8384         the AlbumArtist metadata.
8386         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs: Make sure
8387         the model's table gets listed first in the FROM list of tables.  Fixes a
8388         performance issue I was noticing occuring every so often.
8390 2008-06-17  Sandy Armstrong <sanfordarmstrong@gmail.com> 
8392         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/X11NotificationAreaBox.cs:
8393         Get top_level_window from notification area box's event_box, so
8394         that panel orientation can be determined correctly (BGO #537679)
8396 2008-06-17  Aaron Bockover  <abock@gnome.org>
8398         Ok, so I'm calling internet radio support 85% complete. Needs more polish,
8399         but it's working pretty well. Am almost liking it.
8401         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
8402         If the track's PrimarySource and its TrackEqualHandler is set, proxy
8403         the comparison through that handler; split out the ID comparison into
8404         a reusable static method
8406         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Added
8407         a TrackEqualHandler delegate/property that allows a primary source to
8408         override the default TrackEqual comparison on its child tracks
8410         * src/Core/Banshee.Services/Banshee.Streaming/RadioTrackInfo.cs: Support
8411         holding a reference to a parent track
8413         * src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/InternetRadioSource.cs:
8414         Run the XspfMigrator on startup; provide a TrackEqualHandler that ensures
8415         any RadioTrackInfo object bound to the player engine is associated 
8416         with its parent station track in the controller/view
8418         * src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/XspfMigrator.cs:
8419         Added the first pass at migrating old XSPF stored playlists, so we don't
8420         piss users off by forgetting about their old stations :)
8422         * src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/RadioColumnController.cs:
8423         Added an 'Artist' column (the station creator/owner)
8425         * src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/StationTrackInfo.cs:
8426         * src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/StationEditor.cs:
8427         Reverted to not using a StationTrackInfo since we don't need it
8429 2008-06-16  Aaron Bockover  <abock@gnome.org>
8431         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/DefaultColumnController.cs:
8432         Added the column for the Comments field
8434         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs:
8435         Support a TrackPropertiesHandler property that is an InvokeHandle; if set
8436         it runs the handle instead of the default track editor dialog; this allows
8437         sources to provide their own track editor
8439         * src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/InternetRadioSource.cs:
8440         Support station adding, editing, playback, and a custom column controller,
8441         making internet radio maybe 70% complete; it works, but it's still missing 
8442         polish and finishing touches, so stay tuned
8444         * src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/RadioColumnController.cs:
8445         Custom column controller that exposes and customizes applicable fields
8446         for internet radio stations
8448         * src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/StationEditor.cs:
8449         Added rating and support loading and saving of station data
8451         * src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/StationTrackInfo.cs:
8452         DatabaseTrackInfo wrapper, not in use yet
8454 2008-06-16  Aaron Bockover  <abock@gnome.org>
8456         * src/Extensions/Banshee.InternetRadio/: Created the internet radio 
8457         extension skeleton - it currently doesn't do anything
8459         * src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/InternetRadioSource.cs:
8460         The parent radio source, does nothing right now
8461         
8462         * src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/StationEditor.cs:
8463         Ported from legacy
8465         * src/Extensions/Banshee.InternetRadio/ThemeIcons/: Added radio icons
8467         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSource.cs:
8468         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingSource.cs:
8469         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdSource.cs:
8470         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
8471         * src/Dap/Banshee.Dap/Banshee.Dap/RemovableSource.cs:
8472         * src/Core/Banshee.Services/Banshee.Library/VideoLibrarySource.cs:
8473         * src/Core/Banshee.Services/Banshee.Library/MusicLibrarySource.cs:
8474         * src/Extensions/Banshee.FileSystemQueue/Banshee.FileSystemQueue/FileSystemQueueSource.cs:
8475         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastSource.cs:
8476         Updated source orders
8478 2008-06-16  Aaron Bockover  <abock@gnome.org>
8480         * src/Extensions/Banshee.FileSystemQueue/Banshee.FileSystemQueue/FileSystemQueueSource.cs:
8481         Fix some special case playback issue that was broken depending on cache
8482         state between library and FSQ - if an item is not available yet, do not
8483         disable the play_enqueued state, instead defer to the next reload; fix
8484         the regression where the source was not visible at startup; I really hope
8485         this fixes the last of the FSQ issues - it's working *really* well for me
8486         but I am about to stab my eye balls out over this code.
8488         * src/Core/Banshee.Services/Banshee.Collection/ImportManager.cs:
8489         * src/Libraries/Hyena/Hyena.Collections/QueuePipelineElement.cs: Removed
8490         two errant write lines
8492 2008-06-16  Aaron Bockover  <abock@gnome.org>
8494         * src/Extensions/Banshee.FileSystemQueue/Banshee.FileSystemQueue/FileSystemQueueSource.cs:
8495         Lots of bug fixes with FSQ behavior around starting a new instance with
8496         items in the queue, queueing items remotely, and playing back from the
8497         queue automaticaly when --play-enqueued is passed
8498         
8499         * src/Core/Banshee.Services/Banshee.Collection/ImportManager.cs: Major
8500         update to use the new QueuePipeline and DirectoryScannerPipelineElement
8501         for improved parallelism, fixed threading issues, and more readable and
8502         reliable code
8504         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseImportManager.cs:
8505         Added an ImportResult event; small API cleanup
8507         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseImportResultHandler.cs:
8508         New delegate and args class that the DatabaseImportManager uses for the
8509         new result event
8511         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
8512         Remove unnecessary casting
8514         * src/Libraries/Hyena/Hyena.Collections/QueuePipeline.cs: Container class
8515         for the async queue pipeline; links elements together
8517         * src/Libraries/Hyena/Hyena.Collections/QueuePipelineElement.cs: Base
8518         element class for the pipeline; items pushed into the element's queue are
8519         processed async and then pushed to the downstream element in the pipeline,
8520         which may run in its own thread; this allows for good parallelism in an
8521         easy, safe way (i.e. walk a directory tree while processing results from
8522         earlier in the walk at the same time)
8524         * src/Libraries/Hyena/Hyena.Collections/WriteLineElement.cs: A simple
8525         sync element that dumps results to stdout
8527         * src/Libraries/Hyena/Hyena.Collections/Tests/QueuePipelineTests.cs:
8528         Some unit tests for QP/QPE
8530         * src/Core/Banshee.Services/Banshee.Library/HomeDirectoryImportSource.cs:
8531         * src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs:
8532         * src/Core/Banshee.ThickClient/Banshee.Library.Gui/FileImportSource.cs:
8533         * src/Core/Banshee.ThickClient/Banshee.Library.Gui/FolderImportSource.cs:
8534         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
8535         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastImportManager.cs:
8536         Updated to reflect small API changes in base ImportManager class
8538         * src/Core/Banshee.Services/Banshee.Base/ThreadAssist.cs: 
8539         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ConnectedMessageBar.cs:
8540         * src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs: Remove
8541         EventHandler override for doing Invoke/ProxyToMain; just use InvokeHandler
8543         * src/Core/Banshee.Core/Banshee.IO/DirectoryScannerPipelineElement.cs:
8544         Moved the directory scanning code from ImportManager to a nice
8545         QueuePipelineElement so it can be reused inside threaded queue pipelines
8547         * src/Core/Banshee.Core/Banshee.Base/ApplicationContext.cs:
8548         * src/Libraries/Hyena/Hyena.CommandLine/CommandLineParser.cs: Remove the
8549         notion of --enqueue and just assume anything that does not start with --
8550         is a 'file'
8552         * src/Clients/Halie/Halie/Client.cs: handle files after all commands are
8553         handled, so the remote process can get an idea of what is coming
8555         * src/Clients/banshee-1.in: Added --redirect-log argument that dumps
8556         stdin/error to ~/.config/banshee-1/log; sort of a hack job
8557         
8558         * data/banshee-1.desktop.in.in: Pass --redirect-log and remove --enqueue
8559         
8560         * build/m4/shamrock/nunit.m4: Fix nunit detection
8562 2008-06-13  Gabriel Burt  <gabriel.burt@gmail.com>
8564         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService_Interface.cs:
8565         Patch from Bertrand Lorentz to properly dispose the podcast actions when
8566         the extension is disposed (BGO #537066).
8568 2008-06-12  Aaron Bockover  <abock@gnome.org>
8570         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs:
8571         Ignore the prelit state if we're not embedded in a combo, fixes an
8572         works around a bug with some themes (ubuntu studio in particular)
8574 2008-06-12  Aaron Bockover  <abock@gnome.org>
8576         * src/Clients/banshee-1.in: Ensure we're not always passing --debug to
8577         mono; this was quite an oversight and the wrapper script logic from
8578         0.13.x has been ported here - should account for about a 5MB savings of
8579         RSS on startup and could fix a number of mysterious leaks, since in 
8580         many cases Mono leaks stack traces when an exception is thrown in --debug
8581         mode (only in --debug mode, Mono does not leak otherwise); Whoops.
8583         * src/Core/Banshee.Core/Resources/translators.xml: Updated
8585         * configure.ac: Bump version and turn on the dev build
8587 2008-06-06  Alan McGovern  <alan.mcgovern@gmail.com>
8588         
8589         * src/Libraries/Migo/Migo.Syndication/RssParser.cs:
8590         XmlDocument can't load xml which starts with whitespace.
8592 2008-06-05
8594         Banshee 1.0 Final (1.0.0) Released
8596 2008-06-05  Aaron Bockover  <abock@gnome.org>
8598         * libbanshee/banshee-player-pipeline.c: Enable the plugin installer support
8600         * libbanshee/banshee-player-private.h:
8601         * libbanshee/banshee-player-missing-elements.c: Keep the missing element
8602         details list preserved throughout the instance and allow showing the 
8603         installer for each different missing codec, but only once per codec
8605 2008-06-05  Gabriel Burt  <gabriel.burt@gmail.com>
8607         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs:
8608         Avoid NRE.
8610 2008-06-05  Gabriel Burt  <gabriel.burt@gmail.com>
8612         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs:
8613         Fix bug in migrating download preference for feeds.
8615 2008-06-05  Gabriel Burt  <gabriel.burt@gmail.com>
8617         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
8618         Fix bug with our cell_context.Drawable going missing b/c we weren't
8619         transferring it to the new cell_context within OnStyleSet.
8621 2008-06-05  Gabriel Burt  <gabriel.burt@gmail.com>
8623         * src/Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtJob.cs: Set
8624         DelayShow = true to avoid it popping up so briefly so often.
8626 2008-06-05  Gabriel Burt  <gabriel.burt@gmail.com>
8628         * src/Libraries/Lastfm/Lastfm/AudioscrobblerConnection.cs: Remove some
8629         verbose logging.
8631         * src/Extensions/Banshee.Podcasting/Resources/GlobalUI.xml:
8632         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml: Add
8633         the Subscribe to Podcast menu item to the Media menu.
8635 2008-06-05  Gabriel Burt  <gabriel.burt@gmail.com>
8637         * src/Core/Banshee.Services/Banshee.PlaybackController/PlaybackControllerService.cs:
8638         Only try 5 unplayable items instead of 20 before stopping playback.
8640 2008-06-04  Gabriel Burt  <gabriel.burt@gmail.com>
8642         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellPositiveInt.cs:
8643         Prevent NRE (BGO #536724).
8645 2008-06-04  Aaron Bockover  <abock@gnome.org>
8647         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Windowing.cs:
8648         Use Gtk.Rc.GetStyleByPaths to grab the GtkTreeView style directly and
8649         attach it to our ListView; this is the proper "fix" to bug (BGO #534731),
8650         though the bug in LP is again, still quite valid
8652         * src/Clients/Nereid/Nereid/PlayerInterface.cs:
8653         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListViewBase.cs:
8654         Reverted the hacky version of my theme fix from earlier today
8656 2008-06-04  Gabriel Burt  <gabriel.burt@gmail.com>
8658         * src/Libraries/Migo/Migo.Syndication/FeedManager.cs: Get rid of some racy
8659         wait handle usage that was causing shutdown to freeze sometimes.
8661 2008-06-04  Gabriel Burt  <gabriel.burt@gmail.com>
8663         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs:
8664         * src/Libraries/Migo/Migo.Syndication/RssParser.cs: Fix bug with earlier
8665         fix for <item> guids that would cause some duplicates under some
8666         circumstances.
8668 2008-06-04  Gabriel Burt  <gabriel.burt@gmail.com>
8670         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmActions.cs: Fix
8671         bug with link we were generating for the Last.fm track page (BGO #536682).
8673 2008-06-04  Gabriel Burt  <gabriel.burt@gmail.com>
8675         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs: Remove the
8676         icon from the Source Rename action (BGO #536559).
8678 2008-06-04  Aaron Bockover  <abock@gnome.org>
8680         * src/Clients/Nereid/Nereid/PlayerInterface.cs:
8681         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Windowing.cs:
8682         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_DragAndDrop.cs:
8683         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Header.cs:
8684         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListViewBase.cs:
8685         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
8686         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
8687         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView.cs:
8688         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Model.cs:
8689         A pretty disgusting hack that forces the style of our source view 
8690         GtkTreeView into our custom ListView widget so at least the ListView 
8691         will end up with the same color set as the GtkTreeView; this is a 
8692         giant and ugly hack that works around a pretty serious bug in some of 
8693         Ubuntu's themes where the selection background color is different for
8694         GtkTreeView widgets than for other widgets causing inconsistency and 
8695         usability issues when reading text on the darker background (BGO #534731);
8696         https://bugs.launchpad.net/ubuntu/+source/human-theme/+bug/237261
8698         The only reason I opted to work around this downstream bug was that some
8699         users reported it difficult to read text due to the contrast issue, so
8700         I view this as a usability problem more than a cosmetic one.
8702 2008-06-04  Gabriel Burt  <gabriel.burt@gmail.com>
8704         * src/Core/Banshee.Services/Banshee.MediaProfiles/MediaProfileManager.cs:
8705         Avoid NRE, fixes BGO #536234.
8707 2008-06-04  Gabriel Burt  <gabriel.burt@gmail.com>
8709         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs:
8710         * src/Libraries/Migo/Migo.Syndication/FeedItem.cs:
8711         * src/Libraries/Migo/Migo.Syndication/Feed.cs: Fix bug with the guid we
8712         use for identifying podcast items.  Some feeds don't give a guid for
8713         items, so we were using the <link>, but that isn't unique.  Instead, fall
8714         back to using a combination of the title and pubdate.  Fixes BGO #536555.
8716         * src/Core/Banshee.ThickClient/Banshee.Gui/ViewActions.cs:
8717         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml:
8718         Comment out the eq actions.
8720 2008-06-04  Aaron Bockover  <abock@gnome.org>
8722         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ConnectedSeekSlider.cs:
8723         When the widget is created and the engine is in the paused state, 
8724         synthesize an engine iterate event so the correct state is reflected
8725         in the slider and label (BGO #536564)
8727         * src/Core/Banshee.Widgets/Banshee.Widgets/StreamPositionLabel.cs:
8728         Implement OnSizeRequested to properly do size requisitioning (BGO #536564)
8730         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/TrackInfoPopup.cs:
8731         Updated to reflect small API change
8733 2008-06-04  Aaron Bockover  <abock@gnome.org>
8735         * src/Core/Banshee.Services/Banshee.Sources/ISource.cs:
8736         * src/Core/Banshee.Services/Banshee.Sources/Source.cs:
8737         * src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs:
8738         Disabled exporting of the source manager and its children over DBus
8739         since there are issues that need to be worked out in NDesk DBus itself
8740         before this can be useful and working (BGO #536526)
8742         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ConnectedSeekSlider.cs:
8743         Expose the StreamPositionLabel
8745         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/TrackInfoPopup.cs:
8746         Set FormatString on the slider's label to small, not bold; fix padding
8747         and spacing after dropping unnecessary alignment
8749 2008-06-03  Gabriel Burt  <gabriel.burt@gmail.com>
8751         * src/Libraries/Migo/Migo.Syndication/RssParser.cs: If we fail to load a
8752         XML document b/c it's invalid, remove any non-linebreak control
8753         characters from it and try loading it again.
8755 2008-06-03  Aaron Bockover  <abock@gnome.org>
8757         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/NotificationAreaService.cs:
8758         Remove the Iterate event from the event mask
8759         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/X11NotificationAreaBox.cs:
8760         Do not update the popup since now all of its children do their own
8761         state/event handling
8763         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/TrackInfoPopup.cs:
8764         Removed a bunch of crappy legacy code for showing the position/duration
8765         via the label and progress bar; replaced with our standard 
8766         SeekSlider widget in horizontal mode (BGO #536396)
8768 2008-06-03  Gabriel Burt  <gabriel.burt@gmail.com>
8770         * src/Libraries/Migo/Migo.Syndication/RssParser.cs: If a XML blob isn't
8771         valid XML, log the actual error so we have a hope of fixing or working
8772         around the problem.
8774 2008-06-03  Gabriel Burt  <gabriel.burt@gmail.com>
8776         * src/Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtJob.cs: Avoid
8777         issue with last_scan being MinValue and trying to subtract retry_every
8778         from it.  Also, wrap the entire fetch loop in a try/catch to make sure we
8779         exit the user job and log any exception.
8781         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
8782         Don't stop the entire migration because one track fails.  Log the
8783         exception, and keep going.
8785 2008-06-03  Aaron Bockover  <abock@gnome.org>
8787         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/FullscreenWindow.cs:
8788         Fixed focus bug with metacity (BGO #531187)
8790         * src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapInfoBar.cs: Use only the normal
8791         background color and create a darker version of that to do the subtle
8792         gradient behind the bar (BGO #536052)
8794 2008-06-03  Gabriel Burt  <gabriel.burt@gmail.com>
8796         * src/Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtJob.cs:
8797         * src/Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtService.cs:
8798         Remove verbose logging.
8800         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ConnectedSeekSlider.cs:
8801         Fix bug where stream position label didn't return to 'Idle' when playback
8802         was stopped.
8804 2008-06-03  Aaron Bockover  <abock@gnome.org>
8806         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/FullscreenWindow.cs:
8807         Reconfigure the window when we're shown so we'll fullscreen to the
8808         proper monitor (whatever monitor the parent is on) (BGO #535982)
8810 2008-06-03  Aaron Bockover  <abock@gnome.org>
8812         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
8813         In Play (), always call OnPlayWhenIdleRequest if we are in the idle state,
8814         otherwise call Play on the base engine (BGO #534472)
8815         
8816         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseImportManager.cs:
8817         Also add mpga to the white list
8819 2008-06-03  Aaron Bockover  <abock@gnome.org>
8821         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Remove the footer widget
8822         property after destroying the widget to avoid a property notification cycle
8824         * src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapInfoBar.cs: Wrap UpdateUsage
8825         in an exception catch/log
8827         * src/Backends/Banshee.Hal/Banshee.HalBackend/HardwareManager.cs: Catch
8828         any exceptions that HAL might through (particularly if the device no
8829         longer exists) when adding devices (BGO #528957)
8831         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseImportManager.cs:
8832         Added oga and ogv file extensions to the white list (BGO #532561)
8834         * src/Extensions/Banshee.BooScript/Resources/vorbis-oga-extension.boo:
8835         Added a sample script that will change the Vorbis profile to write files
8836         with a .oga extension instead of a .ogg (BGO #532561)
8838 2008-06-03  Gabriel Burt  <gabriel.burt@gmail.com>
8840         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/NotificationAreaService.cs:
8841         Get rid of unnecessary Save call; DatabaseTrackInfo already calls save
8842         when you set the Rating.
8844         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
8845         Expose rating and some other members as protected so subclasses can set it
8846         without triggering the save (eg to load initial state).
8848         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodTrackInfo.cs:
8849         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpTrackInfo.cs: Hacky fix for
8850         BGO #535898, use the protected rating member instead of the Rating
8851         property to initialize the rating, to avoid callign Save when we didn't
8852         mean to.
8854 2008-06-03  Aaron Bockover  <abock@gnome.org>
8856         * src/Clients/Nereid/Nereid/Client.cs: Use ?? 
8858 2008-06-03  Aaron Bockover  <abock@gnome.org>
8860         * src/Clients/Halie/Halie/Client.cs: Translate a few query fields to be
8861         more familiar, allow setting volume and seeking, support window hiding
8863         * src/Clients/Nereid/Nereid/Client.cs: Added --help and --version displays
8865         * src/Core/Banshee.ThickClient/Banshee.Gui/IClientWindow.cs: Added Hide ()
8866         
8867         * src/Libraries/Hyena/Hyena.Collections/CollectionExtensions.cs: Added
8868         some Join methods
8870         * src/Libraries/Hyena/Hyena.CommandLine/Layout.cs: Support displaying
8871         specific sets of groups
8873         * src/Libraries/Hyena/Hyena.CommandLine/CommandLineParser.cs: Added a
8874         ContainsStart method
8876         * src/Libraries/Hyena/Hyena.CommandLine/LayoutGroup.cs: Added index support
8878 2008-06-03  Gabriel Burt  <gabriel.burt@gmail.com>
8880         * src/Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtJob.cs:
8881         * src/Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtService.cs: And
8882         recommit the patch, now that Aaron approves. :)
8884 2008-06-03  Gabriel Burt  <gabriel.burt@gmail.com>
8886         * src/Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtJob.cs:
8887         * src/Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtService.cs:
8888         Revert last commit, apparently abock has some grand plans he didn't tell
8889         me about.
8891 2008-06-03  Gabriel Burt  <gabriel.burt@gmail.com>
8893         * src/Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtJob.cs:
8894         * src/Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtService.cs: Add
8895         a CoverArtDownloads table to keep track of when we last tried to download
8896         cover art for an album and if we were successful.  With this information,
8897         we can avoid trying to download artwork for an album more than once a
8898         week.  Fixes BGO #535988.  Should also fix issue with the cover art job
8899         saying it's at 100% while it keeps going for many more minutes.
8901 2008-06-03  Gabriel Burt  <gabriel.burt@gmail.com>
8903         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellFileSize.cs:
8904         Avoid NRE, fix BGO #536148.
8906 2008-06-03  Jordi Mas <jmas@softcatala.org>
8908         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumListModel.cs:
8909         Add GetString to localizable strings
8911         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistListModel.cs:
8912         Add GetString to localizable strings
8914 2008-06-02  Gabriel Burt  <gabriel.burt@gmail.com>
8916         * src/Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtJob.cs: Don't
8917         display cover art as we download, but do show the same Network icon as
8918         shown for the podcast download job.  Fixes BGO #535989.
8920 2008-06-02  Aaron Bockover  <abock@gnome.org>
8922         * src/Libraries/Hyena.Gui/Hyena.Widgets/RatingMenuItem.cs:
8923         * src/Libraries/Hyena.Gui/Hyena.Widgets/RatingEntry.cs: Only set the rating
8924         when the mouse is released; fix some small issues with leave notify on
8925         the menu item (BGO #535338)
8927 2008-06-02  Gabriel Burt  <gabriel.burt@gmail.com>
8929         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmActions.cs:
8930         Patch from Bertrand Lorentz fixing BGO #536306; stop listening for player
8931         engine events after we're disposed.
8933 2008-06-02  Aaron Bockover  <abock@gnome.org>
8935         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/X11NotificationAreaBox.cs:
8936         Added Boyd's panel icon sizing code from Tomboy so we display the best
8937         icon for a given panel size, only scaling if we're in SVG territory; 
8938         this is so hot I think I'll make my panel like KDE now (BGO #526333)
8940         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying.addin.xml:
8941         Make the Now Playing extension required for now
8943         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/FullscreenWindow.cs:
8944         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/TrackInfoPopup.cs:
8945         Set the window hint to notification to prevent compiz from doing strange
8946         things with the windows when they are mapped/unmapped (BGO #526326)
8948         * src/Core/Banshee.ThickClient/Banshee.Addins.Gui/AddinView.cs: Do not
8949         show addins where the category starts with 'required:'
8950         
8951         * src/Core/Banshee.Services/Banshee.ServiceStack/DBusServiceManager.cs:
8952         Avoid possible NRE (BGO #532215)
8954 2008-06-02  Aaron Bockover  <abock@gnome.org>
8956         * src/Extensions/Banshee.FileSystemQueue/Banshee.FileSystemQueue/FileSystemQueueSource.cs:
8957         Switch to the FSQ source when items get added to it, set it as the next
8958         playback source if the --play-enqueued argument has been passed either
8959         locally or remotely
8961 2008-06-02  Jordi Mas <jmas@softcatala.org>
8963         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
8964         Add GetString to localizable strings
8966 2008-06-02  Aaron Bockover  <abock@gnome.org>
8968         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdDuplicator.cs:
8969         Bootstrapper for locating and running an IDiscDuplicator extension
8971         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdSource.cs:
8972         Implement disc duplication by calling into AudioCdDiscDuplicator if 
8973         it is supported
8975         * src/Core/Banshee.Services/Banshee.Hardware/IDiscDuplicator.cs: Interface
8976         to expose disc duplication support
8978         * src/Core/Banshee.Services/Banshee.Services.addin.xml: Define a 
8979         DiscDuplicator extension point
8981         * src/Backends/Banshee.Gnome/Banshee.GnomeBackend/Brasero.cs:
8982         * src/Backends/Banshee.Gnome/Banshee.GnomeBackend/GnomeService.cs: Expose
8983         Brasero functionality internally
8985         * src/Backends/Banshee.Gnome/Banshee.GnomeBackend/DiscDuplicator.cs:
8986         Implement an IDiscDuplicator that first tries to use Brasero and falls
8987         back to nautilus-cd-burner
8989         * src/Backends/Banshee.Gnome/Banshee.Gnome.addin.xml: Implement the 
8990         DiscDuplicator extension point
8992         * data/banshee-1.desktop.in.in: Change the Name field to 'Banshee' to
8993         eliminate redundancy between Name and GenericNam
8995 2008-06-02  Gabriel Burt  <gabriel.burt@gmail.com>
8997         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmActions.cs:
8998         Avoid NRE, fixes BGO #535909.
9000 2008-06-02  Gabriel Burt  <gabriel.burt@gmail.com>
9002         * src/Clients/Nereid/Nereid/ViewContainer.cs: Add the separator back
9003         between the filter options and the Help item.  Attempt to fix the
9004         "GdkWindow unexpectedly destroyed" warnings (and related partial UI
9005         freezing) by hiding the old content, adding and showing the new content,
9006         and then removing the old content when switching source contents.
9008         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/FilteredListSourceContents.cs:
9009         Remove WriteLine cruft.
9011 2008-06-02  Aaron Bockover  <abock@gnome.org>
9013         * src/Core/Banshee.Core/Banshee.Base/PlatformHacks.cs: Removed the 
9014         gdk_set_program_class call since it's GUI code and not even really a
9015         platform hack
9017         * src/Core/Banshee.Core/Makefile.am: 
9018         * src/Core/Banshee.Core/Banshee.Core.dll.config: Removed .config, not needed
9020         * src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs: Replaced
9021         the PlatformHacks.GdkSetProgramClass call with the proper 
9022         Gdk.Global.ProgramClass property setter
9024 2008-06-02  Sebastian Dröge  <slomo@circular-chaos.org>
9026         * src/Core/Banshee.Core/Banshee.Core.dll.config:
9027         * src/Core/Banshee.Widgets/Banshee.Widgets.dll.config: Only add
9028         the required dllmaps.
9030 2008-06-02  Jordi Mas <jmas@softcatala.org>
9032         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs:
9033         Add GetString to localizable strings
9035 2008-06-02  Sebastian Dröge  <slomo@circular-chaos.org>
9037         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs:
9038         Rename local variable from db to scale as it holds a scale factor
9039         which was calculated from a db value and not the other way around.
9041         * src/Core/Banshee.Services/Banshee.Equalizer/EqualizerManager.cs:
9042         * src/Core/Banshee.Services/Banshee.Equalizer/EqualizerSetting.cs:
9043         0dB is passthrough and should be used as default value. 1dB will make
9044         the sound a bit louder and can already lead to clipping in rare
9045         situations.
9047         * src/Core/Banshee.ThickClient/Banshee.Equalizer.Gui/EqualizerView.cs:
9048         Make the preamp levels more consistent with the eq levels and don't
9049         always do (level / 10) * 10.
9051 2008-06-02  Sebastian Dröge  <slomo@circular-chaos.org>
9053         * src/Core/Banshee.Core/Banshee.Core.dll.config:
9054         * src/Core/Banshee.Core/Makefile.am:
9055         * src/Core/Banshee.Widgets/Banshee.Widgets.dll.config:
9056         * src/Core/Banshee.Widgets/Makefile.am: Add some missing dllmaps.
9058 2008-05-30  Aaron Bockover  <abock@gnome.org>
9060         Banshee 1.0 RC1 (0.99.3) Released
9062 2008-05-30  Aaron Bockover  <abock@gnome.org>
9064         * src/Extensions/Banshee.NotificationArea/Makefile.am: Build fix
9066 2008-05-30  Aaron Bockover  <abock@gnome.org>
9068         * configure.ac: Bump to RC1
9070         * src/Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtJob.cs: Remove
9071         redundant status message part
9073 2008-05-30  Aaron Bockover  <abock@gnome.org>
9075         * src/Clients/Nereid/Nereid/ViewContainer.cs:
9076         * src/Core/Banshee.Widgets/Banshee.Widgets/SearchEntry.cs: Make the 
9077         filter menu work by inserting a query part when items are selected
9079         * libbanshee/banshee-player-pipeline.c: Disabled the equalizer yet again
9080         because the element is still too buggy in GStreamer causing static
9082 2008-05-30  Gabriel Burt  <gabriel.burt@gmail.com>
9084         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Audioscrobbler/Queue.cs:
9085         Don't use Hyena.DateTimeUtil since it has a bug with
9086         timezone/daylight-savings that reports times an hour off in some cases.
9087         Should fix BGO #528195.
9089 2008-05-30  Aaron Bockover  <abock@gnome.org>
9091         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdRipper.cs:
9092         Show the correct number of songs that are ripping in the status area
9094         * src/Clients/Nereid/Nereid/PlayerInterface.cs:
9095         * src/Clients/Nereid/Nereid/ViewContainer.cs: Removed disk usage stuff
9096         and added footer widget support
9098         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs: 
9099         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodTrackInfo.cs:
9100         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/DatabaseRebuilder.cs:
9101         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/UnsupportedDatabaseView.cs:
9102         Ported the database rebuilder and the unsupported database UI from 0.13.x
9103         so now unsupported databases can be rebuilt and users will at least know
9104         their shitty iPod won't work in Banshee because they used it with shitty
9105         iTunes. Buy an MTP device.
9107         * src/Dap/Banshee.Dap.Ipod/ThemeIcons/scalable/devices/*.svg: Added the
9108         vector versions of the iPods
9110         * src/Dap/Banshee.Dap/Banshee.Dap/MediaGroupSource.cs: 
9111         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Support the new DapInfoBar
9112         in the footer of the source to show the stats on audio, video, and data
9113         usage for each DAP
9115         * src/Dap/Banshee.Dap/Makefile.am:
9116         * src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapInfoBar.cs: Sweet display for
9117         showing disk usage stats
9119         * src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapPropertiesDisplay.cs:
9120         Start of a GUI page for DAPs, not really used yet except for the iPod
9121         when the database can't be read
9123         * src/Core/Banshee.Widgets/Banshee.Widgets/MessagePane.cs: Cleaned up
9124         to derive directly from table, less window hackery
9126         * src/Libraries/Hyena/Hyena.Query/FileSizeQueryValue.cs: Added support
9127         for converting terabytes and petabytes (IT WILL HAPPEN ONE DAY - GOOGLE
9128         ALREADY PROCESSES 20PB/day - JUST WAIT)
9130         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCellRating.cs: Fix NRE
9132         * src/Libraries/Hyena.Gui/Hyena.Gui.Theming/Theme.cs:
9133         * src/Libraries/Hyena.Gui/Hyena.Gui.Theming/GtkTheme.cs:
9134         * src/Libraries/Hyena.Gui/Hyena.Widgets/RoundedFrame.cs: Support setting
9135         a pattern as the background for the rounded frame background
9137         * src/Libraries/Hyena.Gui/Hyena.Widgets/SegmentedBar.cs: More fixes,
9138         support horizontal padding, greadly simplified the segment rendering
9139         by using two pattern passes instead of N pattern passes, fixes bugs where
9140         a segment was shorter than the radius causing strange shit to happen
9142 2008-05-30  Gabriel Burt  <gabriel.burt@gmail.com>
9144         * src/Clients/Nereid/Nereid/ViewContainer.cs: Remove the fields listed in
9145         the menu that popped up when you clicked the icon next to the search
9146         entry, since they did nothing.  Will probably be added back later, and
9147         made to prepend "artist" etc fields.
9149 2008-05-30  Gabriel Burt  <gabriel.burt@gmail.com>
9151         * src/Libraries/Hyena/Hyena.Collections/Selection.cs: Don't clear the
9152         FocusedIndex when we clear the selection - they shouldn't be so tightly
9153         linked.  Fixes bug with pressing enter not playing the focused song.
9154         Fixes BGO #535587.
9156 2008-05-30  Gabriel Burt  <gabriel.burt@gmail.com>
9158         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
9159         * src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs: Respect
9160         copy-to-library when dragging FileSystemQueue items to the library.
9162 2008-05-30  Gabriel Burt  <gabriel.burt@gmail.com>
9164         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Add property
9165         defining whether we support playlists or not.
9167         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastSource.cs:
9168         For now, at least, we don't support playlists.
9170         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
9171         Show the Add to Play Queue option if the source is a db source, not just
9172         if it's a library source.
9174         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs:
9175         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Hide
9176         playlist-related actions unless the primary source SupportsPlaylists.
9178 2008-05-30  Gabriel Burt  <gabriel.burt@gmail.com>
9180         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Save and
9181         restore the expanded state of all primary sources.
9183 2008-05-29  Gabriel Burt  <gabriel.burt@gmail.com>
9185         * src/Core/Banshee.ThickClient/Banshee.Addins.Gui/AddinTile.cs: Make some
9186         text translatable.
9188         * src/Core/Banshee.Services/Banshee.Preferences/Page.cs: Change "Manage
9189         Extensions" tab to "Extensions".
9191 2008-05-29  Gabriel Burt  <gabriel.burt@gmail.com>
9193         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs:
9194         * src/Core/Banshee.Services/Banshee.Sources/Source.cs:
9195         * src/Core/Banshee.Services/Banshee.Collection/AlbumListModel.cs:
9196         * src/Core/Banshee.Services/Banshee.Collection/TrackListModel.cs:
9197         * src/Core/Banshee.Services/Banshee.Collection/BansheeListModel.cs:
9198         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs:
9199         Remove a bunch of crufty code and replace a bunch of NIEXs with Log.Error.
9201 2008-05-29  Gabriel Burt  <gabriel.burt@gmail.com>
9203         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs:
9204         Don't pulse the podcasts source when feeds are changes, just when items
9205         are added.
9207         * src/Libraries/Migo/Migo.Syndication/FeedUpdateTask.cs: If the feed
9208         hasn't been updated since we last checked, pass notify=false to feed.Save.
9210         * src/Libraries/Migo/Migo.Syndication/Feed.cs: Don't raise FeedsChanged
9211         when DownloadStatus set, just in Save and Delete.  Add override to Save
9212         that takes bool notify arg.
9214 2008-05-29  Gabriel Burt  <gabriel.burt@gmail.com>
9216         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Don't throw
9217         an exception when CopyTo isn't implemented, but log a warning.
9219 2008-05-29  Gabriel Burt  <gabriel.burt@gmail.com>
9221         * src/Core/Banshee.Services/Banshee.Playlist/AbstractPlaylistSource.cs:
9222         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Move the
9223         NeedsReload methods into DatabaseSource so they can be used by
9224         PrimarySource and others.
9226         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Only reload
9227         when track(s) change if needed, otherwise just invalidate the cache.
9228         Should help some with performance/CPU usage when changing songs.
9230 2008-05-29  Gabriel Burt  <gabriel.burt@gmail.com>
9232         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs: Fix crasher
9233         in save-selection by being properly defensive and not assuming the item
9234         pointed to by the selection focus is still in the model.
9236 2008-05-29  Gabriel Burt  <gabriel.burt@gmail.com>
9238         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
9239         Fix bug where if the play queue was empty but you double clicked on it, it
9240         would go recursive/eat all your RAM.  Should fix BGO #535369.
9242 2008-05-29  Gabriel Burt  <gabriel.burt@gmail.com>
9244         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Add a bool
9245         IsLocal property.  If it's false and you drag tracks to a LibrarySource,
9246         it will ask the owning PrimarySource to copy the file to a given location
9247         by calling its CopyTrackTo method defined here (and implemented in each
9248         non-local subclass).
9250         * src/Extensions/Banshee.FileSystemQueue/Banshee.FileSystemQueue/FileSystemQueueSource.cs:
9251         Reload the FSQ on start to make sure it shows itself if it had saved
9252         items.  Also, set IsLocal = true so dragging files between the libraries
9253         and it doesn't do a file copy.
9255         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
9256         Fix bug with importing to the Library not just from the audio folders.
9257         Implement CopyTrackTo.
9259         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs: Add commented
9260         out CopyTrackTo skeleton.
9262         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpSource.cs: Implement
9263         CopyToTrack - the nicest implementation in a way, because we get granular
9264         progress updates.
9266         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs:
9267         Add some NRE defense and debugging for a NRE I saw but don't understand.
9269         * src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs:
9270         Set IsLocal = true, and fix up AddTrack method so that if the file is from
9271         a IsLocal PrimarySource it just 'moves' it (eg changes the
9272         PrimarySourceId) but otherwise it asks the owning PrimarySource to copy
9273         the file to a location in the library folder.
9275         * src/Core/Banshee.Services/Banshee.MediaEngine/TranscoderService.cs: Set
9276         the updatd MimeType on the file after transcoding it.
9278         * src/Core/Banshee.Core/Banshee.Base/FileNamePattern.cs: Add a BuildFull
9279         convenience overload.
9281 2008-05-29  Aaron Bockover  <abock@gnome.org>
9283         * src/Libraries/Hyena.Gui/Hyena.Widgets/SegmentedBar.cs: Add label support
9285 2008-05-29  Gabriel Burt  <gabriel.burt@gmail.com>
9287         * src/Clients/Nereid/Nereid/PlayerInterface.cs: Fix crasher introduced by
9288         yesterday's keybinding fix.  Thanks to wfarr for catching it.
9290 2008-05-29  Aaron Bockover  <abock@gnome.org>
9292         * src/Core/Banshee.ThickClient/Banshee.Equalizer.Gui/EqualizerView.cs:
9293         Small rounding fix
9295         * src/Core/Banshee.ThickClient/Banshee.Equalizer.Gui/EqualizerWindow.cs:
9296         Ported from glade, some fixes
9298         * src/Core/Banshee.ThickClient/Banshee.Gui/ViewActions.cs: Only allow one
9299         instance of the equalizer to be shown; present the open version if exists
9301         * src/Core/Banshee.ThickClient/Resources/banshee-dialogs.glade: Removed
9302         the equalizer
9304         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs
9305         * libbanshee/banshee-player-equalizer.c: White space cleanup
9307         * libbanshee/banshee-player-pipeline.c: White space cleanup and removed
9308         a redundant element link
9310 2008-05-29  Gabriel Burt  <gabriel.burt@gmail.com>
9312         * src/Clients/Halie/Halie/Client.cs: Don't turn strings that start with
9313         *:// into local file paths.
9315         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationSource.cs: Add
9316         method for creating a station given a lastfm:// url.
9318         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSource.cs:
9319         Listen for command line file arguments starting in lastfm:// and try to
9320         create new stations for them.
9322         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs:
9323         Handle feed:// command line files, subscribing to them.
9325         * src/Core/Banshee.Core/Banshee.Base/CoverArtSpec.cs: Add TODO
9327 2008-05-29  Sebastian Dröge  <slomo@circular-chaos.org>
9329         * libbanshee/banshee-player-equalizer.c: (bp_equalizer_set_gain),
9330         (bp_equalizer_get_bandrange), (bp_equalizer_get_nbands),
9331         (bp_equalizer_get_frequencies):
9332         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs:
9333         Get the number of frequency bands from the element and always take
9334         the complete gain range. Guard against some possible crashes and
9335         don't return an array that is allocated on the stack to the caller
9336         who provided us with a correctly allocated array already.
9337         
9338         * libbanshee/banshee-player-pipeline.c: (_bp_pipeline_construct):
9339         Some cleanup and only use the capsfilter hack with equalizer versions
9340         that had the clipping bug on integer samples.
9342 2008-05-28  Gabriel Burt  <gabriel.burt@gmail.com>
9344         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/ColumnCellPodcastStatusIndicator.cs:
9345         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastItemView.cs:
9346         Change grey to mean the podcast item is old, and the blue indicator to
9347         mean the podcast item has been downloaded.  Different than iTunes, but
9348         then so are we.  (Plus we let you stream podcast items).
9350         * src/Dap/Banshee.Dap/Banshee.Dap/RemovableSource.cs:
9351         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView_DragAndDrop.cs:
9352         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceModel.cs:
9353         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs:
9354         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs:
9355         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs: Fix up
9356         drag and droppability for sources and tracks.  Fix bug with sources having
9357         a border drawn around them when a dnd is cancelled.  Only allowed but
9358         not-yet-functional dnd is from DapSource subclass (eg Music) to a library.
9360 2008-05-28  Aaron Bockover  <abock@gnome.org>
9362         * src/Clients/Nereid/Nereid/Client.cs: Force the gtk-menu-popup-delay
9363         setting to be 225ms (the GTK+ default value) to avoid a nasty bug when
9364         it is possibly set to 0ms by some gtkrc files (BGO #524706)
9366 2008-05-28  Aaron Bockover  <abock@gnome.org>
9368         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdService.cs:
9369         Split audio CD preferences into a separate tab
9371         * src/Core/Banshee.Services/Banshee.Preferences/Collection.cs:
9372         * src/Core/Banshee.Services/Banshee.Preferences/Root.cs:
9373         Ensure sections and pages actually get inserted in the proper sort order
9375         * src/Libraries/Hyena/Hyena.Collections/CollectionExtensions.cs:
9376         * src/Libraries/Hyena/Hyena.Collections/Tests/RangeCollectionTests.cs:
9377         Moved SortedInsert into a new CollectionExtensions helper class
9379 2008-05-28  Aaron Bockover  <abock@gnome.org>
9381         * src/Extensions/Banshee.FileSystemQueue/Banshee.FileSystemQueue/FileSystemQueueSource.cs:
9382         Load from the local instance argument queue at startup
9384         * src/Clients/Halie/Halie/Client.cs: Handle some crasher cases
9386         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
9387         Work around a shitty managed DBus bug where sending an empty dictionary 
9388         will crash - related to the other shitty null bug
9390 2008-05-28  Gabriel Burt  <gabriel.burt@gmail.com>
9392         * src/Extensions/Banshee.FileSystemQueue/Banshee.FileSystemQueue/FileSystemQueueSource.cs:
9393         Fix bug with removing all items and the ListView crashing.
9395 2008-05-28  Aaron Bockover  <abock@gnome.org>
9397         * src/Extensions/Banshee.FileSystemQueue/Banshee.FileSystemQueue/FileSystemQueueSource.cs:
9398         The new file system queue, much like the old local queue - not finished
9399         but mostly working
9401         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
9402         Fixed source order
9404         * src/Clients/Halie/Halie/Client.cs: Support presenting the main window
9406         * src/Clients/Nereid/Nereid/PlayerInterface.cs:
9407         * src/Clients/Nereid/Nereid/Client.cs: Call NotifyStartupComplete in case
9408         an instance was already running and the new process exits quickly; this
9409         prevents GTK/GDK/GNOME from spinning a cursor if the process was started
9410         through a GUI launcher
9412         * src/Core/Banshee.ThickClient/Banshee.Gui/IClientWindow.cs: New interface
9413         for client windows to expose remote functionality
9415         * src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs: Added support
9416         for an AutoAddSource property - if it's set to false an extension source
9417         will not get added automatically to the source manager
9419         * src/Core/Banshee.Services/Banshee.ServiceStack/IDBusObjectName.cs:
9420         An interface that can be used to override the export name of a remote object
9422         * src/Core/Banshee.Services/Banshee.ServiceStack/DBusServiceManager.cs:
9423         Support IDBusObjectName interface naming
9425 2008-05-28  Gabriel Burt  <gabriel.burt@gmail.com>
9427         * src/Clients/Nereid/Nereid/PlayerInterface.cs: Add the AccelGroup back as
9428         soon as the focus leaves the focused Gtk.Entry.  Fixes bug where if you
9429         searched, then click to select a track, and hit a keybinding, it wouldn't
9430         work until the second press.  Thanks to Jorge Castro for investigating.
9432 2008-05-28  Aaron Bockover  <abock@gnome.org>
9434         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs:
9435         Listen to the new DBusCommandService
9437         * src/Clients/Halie/Halie/Client.cs: Proxy files to the DBusCommandService
9439         * src/Core/Banshee.Services/Banshee.ServiceStack/DBusCommandService.cs:
9440         A light weight remote object that raises events for command line arguments
9441         and files that can be pushed into it
9443         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:
9444         Register the DBusCommandService
9446         * src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs:
9447         Use InternalName
9449 2008-05-28  Aaron Bockover  <abock@gnome.org>
9451         * src/Clients/Halie/Halie/Client.cs: Added command line support for 
9452         mostly fully controlling the engine and the playback controller
9454 2008-05-28  Gabriel Burt  <gabriel.burt@gmail.com>
9456         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Only set the
9457         AcceptableMimeTypes if they are null/haven't been set.
9459         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
9460         Parse the .is_audio_player output_formats key.  The last fix required to
9461         close BGO #531769.
9463 2008-05-28  Gabriel Burt  <gabriel.burt@gmail.com>
9465         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
9466         Only load files from the audio_folders directories.
9468 2008-05-28  Gabriel Burt  <gabriel.burt@gmail.com>
9470         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdRipper.cs: Set the
9471         FileSize for just-ripped tracks.  Fixes BGO #532077.
9473 2008-05-28  Gabriel Burt  <gabriel.burt@gmail.com>
9475         * src/Libraries/Hyena/Hyena.Query/QueryField.cs: Fix bug with querying and
9476         smart playlists with "genre!:rock" would still match Rock.
9477         Fixes BGO #533143.
9479 2008-05-28  Gabriel Burt  <gabriel.burt@gmail.com>
9481         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/FullscreenControls.cs:
9482         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ConnectedSeekSlider.cs:
9483         Add method to disconnect the seek slider so it's not still listening for
9484         player engine events and trying to update itself after it's been
9485         destroyed.  Fixes BGO #535213.
9487         * src/Libraries/Hyena.Gui/Hyena.Query.Gui/QueryTermBox.cs: Be more
9488         defensive to avoid ArrayIndexOutOfBounds.  Fixes BGO #535269;
9490 2008-05-28  Aaron Bockover  <abock@gnome.org>
9492         * src/Clients/Halie/Halie/Client.cs: A new Banshee client that runs only
9493         only the console and proxies command line arguments into DBus calls to
9494         communicate with and control an already running Banshee client
9496         * src/Core/Banshee.Services/Banshee.ServiceStack/DBusConnection.cs: Moved
9497         the connection logic out of the service since it needs to be used before
9498         any services start at the client level for single instance reasons
9500         * src/Core/Banshee.Services/Banshee.ServiceStack/DBusServiceManager.cs:
9501         Cleaned up, use DBusConnection
9503         * src/Core/Banshee.Services/Banshee.PlaybackController/PlaybackControllerService.cs:
9504         * src/Core/Banshee.Services/Banshee.PlaybackController/IPlaybackController.cs:
9505         * src/Core/Banshee.Services/Banshee.PlaybackController/IPlaybackControllerService.cs:
9506         Worked around stupid issues in NDesk dbus so the controller actually works
9507         as a remote object now
9509         * src/Libraries/Hyena/Hyena.CommandLine/CommandLineParser.cs: Added
9510         an Arguments property and added internal logic to keep sort order preserved
9511         on the arguments so they can be iterated over in proper order
9513 2008-05-28  Gabriel Burt  <gabriel.burt@gmail.com>
9515         * src/Extensions/Banshee.CoverArt/CoverArtJob.cs:
9516         * src/Extensions/Banshee.CoverArt/Makefile.am:
9517         * src/Extensions/Banshee.CoverArt/CoverArtService.cs: Fix the build and
9518         put C# files in their proper namespace directory.
9520 2008-05-28  James Willcox  <snorp@novell.com>
9522         * src/Extensions/Extensions.mds:
9523         * src/Extensions/Banshee.CoverArt/CoverArtJob.cs:
9524         * src/Extensions/Banshee.CoverArt/Banshee.CoverArt.addin.xml:
9525         * src/Extensions/Banshee.CoverArt/Banshee.CoverArt.mdp:
9526         * src/Extensions/Banshee.CoverArt/CoverArtService.cs:
9527         * src/Extensions/Makefile.am:
9529         Add Banshee.CoverArt extension which allows user-initiated and
9530         automatic cover art fetching for the entire MusicLibrary.
9532         * src/Core/Banshee.Services/Banshee.Metadata.Rhapsody/RhapsodyQueryJob.cs:
9533         Close the response when we're done with it, fixes some timeout
9534         issues when fetching many things at a time.
9536         * src/Core/Banshee.Services/Banshee.Metadata.Embedded/EmbeddedQueryJob.cs:
9537         Don't assume Track.Uri is set
9539         * build/build.environment.mk: Add refs for Banshee.CoverArt extension
9540         * configure.ac: 
9542 2008-05-28  Alexander Hixon  <hixon.alexander@mediati.org>
9544         * src/Core/Banshee.ThickClient/Banshee.Equalizer.Gui/EqualizerView.cs:
9545         Fix small bug where when loading presets from the EQ editor caused the
9546         manager to set the dB value for the preamp to 10 times what the value
9547         should have been.
9549 2008-05-27  Aaron Bockover  <abock@gnome.org>
9551         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellStatusIndicator.cs:
9552         Fix bug where pixbuf wasn't centered in the cell
9554 2008-05-27  Aaron Bockover  <abock@gnome.org>
9556         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/ColumnCellPodcastStatusIndicator.cs:
9557         Added support for the classic new item blue ball
9559         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastItemView.cs:
9560         Implemented a cell data handler to set the opacity on text renderers
9562         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastTrackInfo.cs:
9563         Implemented a StatusText cell and some helper properties
9565         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastSource.cs:
9566         Added a Status column
9568         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
9569         Added a virtual ColumnCellDataProvider method that is called as soon as
9570         a data item is bound to a cell so the view can configure the cell
9572         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCellText.cs:
9573         Added an opacity property
9575 2008-05-27  Gabriel Burt  <gabriel.burt@gmail.com>
9577         * src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs: Change
9578         InternalName from banshee to banshee-1, so we actually set the process
9579         name correctly, register the right name with MMKeys, etc.
9581 2008-05-27  Gabriel Burt  <gabriel.burt@gmail.com>
9583         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/NotificationAreaService.cs:
9584         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs:
9585         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs:
9586         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
9587         * src/Libraries/Hyena.Gui/Hyena.Widgets/RatingMenuItem.cs: Fix bug with
9588         not saving the rating when set from either the context menu or the
9589         notification menu.
9591 2008-05-27  Aaron Bockover  <abock@gnome.org>
9593         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/XmlColumnController.cs:
9594         Support changing the renderer on columns
9596         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellStatusIndicator.cs:
9597         Renamed to Status indicator instead of Playback indicator
9599         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/DefaultColumnController.cs:
9600         Updated to reflect rename of the indicator object
9602         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/Column.cs:
9603         Support removing and clearing renderers
9605         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/ColumnCellPodcast.cs:
9606         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Dialog/PodcastSubscribeDialog.cs:
9608         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastSource.cs:
9609         Load the podcast icons from the theme, not as resources
9611         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/ColumnCellPodcastStatusIndicator.cs:
9612         A custom indicator renderer to show podcast item status
9614 2008-05-27  Gabriel Burt  <gabriel.burt@gmail.com>
9616         * src/Libraries/Hyena.Gui/Hyena.Widgets/RatingMenuItem.cs:
9617         * src/Libraries/Hyena.Gui/Hyena.Widgets/RatingEntry.cs: Fix bug where
9618         preview-on-hover stars weren't cleared before showing the track context
9619         menu (or notification menu) so you'd see whatever hover stars had been
9620         there the last time you opened it (even if for another track).  Fixes BGO
9621         #534460.
9623 2008-05-27  Gabriel Burt  <gabriel.burt@gmail.com>
9625         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs:
9626         * src/Core/Banshee.Services/Banshee.Collection.Database/IDatabaseTrackModelCache.cs:
9627         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs: Fix two bugs,
9628         one I introduced in my last big podcast commit that made the play queue
9629         keep repeating the same song, and another more subtle one, in our
9630         implementation of IndexOf for findind the index of an item in playlists.
9631         Fixes BGO #534863.
9633 2008-05-27  Aaron Bockover  <abock@gnome.org>
9635         * src/Core/Banshee.Services/Banshee.Equalizer/EqualizerManager.cs:
9636         Handle when the equalizer XML file does not exist
9638 2008-05-27  Michael Monreal  <mmonreal@svn.gnome.org>
9640         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastActions.cs:
9641         Use gtk-add instead of gtk-new icon in the podcast source to match the
9642         Last.fm source. Fixes BGO #534817.
9644 2008-05-27  Gabriel Burt  <gabriel.burt@gmail.com>
9646         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastTrackInfo.cs:
9647         Return the item's PubDate as the ReleaseDate.
9649         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs: If
9650         the current track is a podcast item, display "from X published Y" instead
9651         of "by X from Z".
9653 2008-05-25  Gabriel Burt  <gabriel.burt@gmail.com>
9655         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastUnheardFilterView.cs:
9656         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/FilteredListSourceContents.cs:
9657         Fix the build.
9659 2008-05-25  Gabriel Burt  <gabriel.burt@gmail.com>
9661         This patch adds another filter to the podcast browser - the ability to
9662         filter on all/new/old items.  The default is to only show New Items, in
9663         keeping with the most common use case of podcast users.  Items are marked
9664         as old after being played.  They can be marked old manually via the
9665         Edit menu and track context menu, or by selecting one or more items and
9666         pressing y.
9668         * *.mdp: MonoDevelop changed some <Project> attributes across all these.
9670         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs:
9671         Add hack to be able to not handle FeedItem changes when doing bulk ops.
9673         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastQuery.cs:
9674         New class, commented out, will replace BansheeQuery when in podcasting.
9675         Zero work done on it so far.
9677         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastSourceContents.cs:
9678         Add another filter list view with three options: All Items, New Items, and
9679         Old Items.
9681         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastActions.cs:
9682         Change the Mark as Old keybinding to y (ala gmail archive).  Implement
9683         mark old/new.
9685         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Source/PodcastSourceContents.cs:
9686         Move go Banshee.Podcasting.Gui namespace directory.  Add the all/new/old
9687         filter view.
9689         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Source/PodcastSource.cs:
9690         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Source/Models/PodcastItemModel.cs:
9691         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Source/Models/PodcastFeedModel.cs:
9692         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Source/Views/PodcastFeedView.cs:
9693         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Source/Views/PodcastItemView.cs:
9694         Move to namespace directories.
9696         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/ColumnCellUnheard.cs:
9697         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastUnheardFilterView.cs:
9698         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastUnheardFilterModel.cs:
9699         New classes to implement the all/new/old filter.
9701         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastTrackInfo.cs:
9702         Override IncrementPlayCount and set the item as old (if not already set)
9703         when incremented.  Catch exceptions in processing file w/ taglib#.
9705         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastSource.cs:
9706         Move PodcastListModel out of here.  Create the all/new/old filter model
9707         and add it to the FilterModels.
9709         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastTrackListModel.cs:
9710         Moved out of PodcastSource into its own file.
9712         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistListModel.cs:
9713         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumListModel.cs:
9714         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastFeedModel.cs:
9715         DatabaseBrowsableListModel renamed to DatabaseFilterListModel, and
9716         ItemToFilterValue made protected.
9718         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.mdp:
9719         * src/Extensions/Banshee.Podcasting/Makefile.am: Reflect new files and
9720         moevs.
9722         * src/Extensions/Banshee.Podcasting/Resources/ActiveSourceUI.xml: Add
9723         track actions to the Edit menu (not just the track context menu).
9725         * src/Core/Banshee.ThickClient/Banshee.Gui/PersistentPaneController.cs:
9726         Use String.Format not +, properly handle setting a new Paned when one was
9727         already set (stop listening to old one's events), avoid saving when the
9728         value hasn't changed.
9730         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/CompositeTrackSourceContents.cs:
9731         Give parent class a name for us (albumartist) for unique gconf position
9732         entries
9734         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/FilteredListSourceContents.cs:
9735         Take a name in the ctor so we can save positions in gconf per
9736         filtered-list type (eg podcast and albumartist, atm).  Go back and
9737         implement packing the N filter views into Gtk.Paneds.  Refactor
9738         LayoutLeft/Top code to be the same.
9740         * src/Core/Banshee.Services/Banshee.Collection/IFilterListModel.cs: New
9741         interface.
9743         * src/Core/Banshee.Services/Banshee.Collection/AlbumListModel.cs:
9744         Implement Clear.
9746         * src/Core/Banshee.Services/Banshee.Collection/BrowsableListModel.cs:
9747         * src/Core/Banshee.Services/Banshee.Collection/FilterListModel.cs: Rename,
9748         made to not require that the filter model itself be database backed (eg
9749         the all/new/old model is just an in-memory enum model).
9751         * src/Core/Banshee.Services/Banshee.Collection/BansheeListModel.cs:
9752         Comment out (should remove) virtual implementations that just threw NIE.
9754         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumInfo.cs:
9755         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
9756         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistInfo.cs:
9757         Move ICacheableItem up (to parent class of *TrackInfo).
9759         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseBrowsableListModel.cs:
9760         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseFilterListModel.cs:
9761         Rename.
9763         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs:
9764         Handle the provider.Where clause being empty, add spaces around AND'd
9765         sql filter fragments from our filtering models.
9767         * src/Core/Banshee.Services/Banshee.Services.mdp:
9768         * src/Core/Banshee.Services/Makefile.am: New/moved files.
9770         * src/Libraries/Migo/Migo.Syndication/MigoModelProvider.cs:
9771         * src/Libraries/Migo/Migo.Syndication/MigoItem.cs:
9772         * src/Core/Banshee.Services/Banshee.Database/BansheeModelCache.cs: Add
9773         using Hyena.Data because ICacheableItem moved there.
9775         * src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs: Cosmetic
9776         changes, getting ready to refactor so sources can set/customize the fields
9777         they can be queried with.
9779         * src/Core/Banshee.Core/Banshee.Collection/AlbumInfo.cs:
9780         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs:
9781         * src/Core/Banshee.Core/Banshee.Collection/ArtistInfo.cs: Add empty ctor,
9782         inherit from CacheableItem.
9784         * src/Core/Banshee.Core/Makefile.am:
9785         * src/Core/Banshee.Core/Banshee.Core.mdp:
9786         * src/Core/Banshee.Core/Banshee.Collection/CacheableItem.cs: New class,
9787         just a simple implementation of ICacheableItem.
9789         * src/Core/Banshee.Core/Resources/translators.xml: Updated.
9791         * src/Core/Banshee.Core/Banshee.Base/CoverArtSpec.cs: Check that the
9792         escaped artist/album strings aren't empty either (not just null).
9794         * src/Libraries/Mtp/Mtp/MtpDevice.cs: Move LIBMTP_Init into static ctor,
9795         get rid of internal method that called it; wouldn't want to call it twice.
9797         * src/Libraries/Hyena/Hyena.Collections/Selection.cs: Add convenience
9798         properties for FirstIndex and LastIndex.
9800         * src/Libraries/Hyena/Hyena.mdp:
9801         * src/Libraries/Hyena/Makefile.am:
9802         * src/Libraries/Hyena/Hyena.Data.Sqlite/ICacheableItem.cs:
9803         * src/Libraries/Hyena/Hyena.Data/ICacheableItem.cs: Moved here from
9804         Hyena.Data.Sqlite.
9806         * src/Libraries/Hyena/Hyena.Data/ICacheableModel.cs: Inherit ISelctable.
9808         * src/Libraries/Hyena/Hyena.Data/ArrayModelCache.cs:
9809         * src/Libraries/Hyena/Hyena.Data/ModelCache.cs:
9810         * src/Libraries/Hyena/Hyena.Data/DictionaryModelCache.cs: Specify that T
9811         must be ICacheableItem.
9813         * src/Libraries/Hyena/Hyena.Data.Sqlite/ICacheableDatabaseModel.cs:
9814         Inheritance from ISelectable moved to parent interface.
9816         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs: When
9817         restoring the selection across a reload, restore the focused index as
9818         well, if possible.
9820         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCell.cs: If the item to
9821         bind is null, set the bound object and parent object to null too.
9823         * src/Libraries/Hyena.Gui/Hyena.Widgets/AccordionPane.cs: New class,
9824         completely not done (or really started).  Would be great to refactor the
9825         awesome column sizing code out of ListView so could be used by this.  The
9826         idea is a new Paned-type widget with N children with min/max/relative
9827         widths etc all set, and resizing one will resize others to their min
9828         width, etc.
9830         * src/Libraries/Migo/Migo.Syndication/FeedItem.cs: Add an index to IsRead
9831         since we'll be filtering on it a lot.
9833         * data/mimetypes.txt: Add video/ogg and video/x-theora.
9835 2008-05-25  Gabriel Burt  <gabriel.burt@gmail.com>
9837         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
9838         Be more careful about NREs in the metadata migration.  And, in case we do
9839         hit an unexpected exception, close the user-job so it doesn't stay up
9840         forever.
9842 2008-05-23  Sebastian Dröge  <slomo@circular-chaos.org>
9844         * libbanshee/banshee-player-pipeline.c: (_bp_pipeline_construct):
9845         Enable the equalizer again and workaround the clipping bug that will
9846         be fixed with gst-plugins-good 0.10.10. Also don't leak some elements
9847         if the equalizer plugin is not installed.
9849 2008-05-22  Aaron Bockover  <abock@gnome.org>
9851         Banshee 1.0 Beta 2 (0.99.2) Released
9853 2008-05-22  Gabriel Burt  <gabriel.burt@gmail.com>
9855         * src/Libraries/Migo/Migo.Syndication/FeedItem.cs: Fix issue with feed
9856         item Guids being empty so we'd have duplicates of items.
9858 2008-05-22  Gabriel Burt  <gabriel.burt@gmail.com>
9860         * src/Clients/Nereid/Nereid/PlayerInterface.cs: Don't set the
9861         PersistentColumnController within the composite_view check, move it to
9862         TrackListView so it's more general.
9864         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/PersistentColumnController.cs:
9865         Set loaded to false whenever reloading the source's settings.
9867         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
9868         When setting the model, also set the source on the controller if it's a
9869         PersistentColumnController.
9871         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Header.cs: Fix
9872         bug with column cache not being invalidated, which caused checkboxes to
9873         try to show up in the music library after ejecting an audio cd, causing a
9874         crash.  Also, don't do anything if we're already set to the controller in
9875         question.
9877         * src/Libraries/Hyena/Hyena.Data/ColumnDescription.cs:
9878         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/FilteredListSourceContents.cs:
9879         Comment out verbose logging.
9881 2008-05-22  Aaron Bockover  <abock@gnome.org>
9883         * configure.ac: Bumped to 1.0 Beta 2 (0.99.2)
9885 2008-05-22  Gabriel Burt  <gabriel.burt@gmail.com>
9887         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdService.cs:
9888         Improve eject-when-done-importing label.
9890         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellFileSize.cs:
9891         Display nothing for file sizes == 0.
9893         * src/Core/Banshee.Core/Resources/contributors.xml: Add and alphabetize
9894         names.
9896         * src/Backends/Banshee.Gnome/Banshee.GnomeBackend/Brasero.cs: Add ... at
9897         end of Write to CD label.
9899         * NEWS: Updated for forthcoming 0.99.2 release.
9901 2008-05-22  Aaron Bockover  <abock@gnome.org>
9903         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Added a
9904         SelectionChanged event
9906         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml:
9907         Allow the placeholders in the edit menu above the add to playlist entry
9909         * src/Core/Banshee.Core/Banshee.Base/Paths.cs: Added FindProgramInPath
9911         * src/Backends/Banshee.Gnome/Banshee.GnomeBackend/Brasero.cs: A quick 
9912         hack to allow launching selected tracks in Brasero as an audio CD project
9914         * src/Backends/Banshee.Gnome/Banshee.GnomeBackend/GnomeService.cs: Load
9915         Brasero support if it's found on the system
9917 2008-05-22  Aaron Bockover  <abock@gnome.org>
9919         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
9920         Offset the cell damage areas by the view adjustment values
9922 2008-05-22  Gabriel Burt  <gabriel.burt@gmail.com>
9924         There were some pretty big performance issues with podcasting if you had
9925         quite a few items in your library.  The two issues were not having proper
9926         indices (to join CoreTracks.ExternalID = PodcastItems.ItemID for example)
9927         and hitting the database to get Migo.Feed/FeedItem/FeedEnclosure objects
9928         when we already had them cached in our MigoModelProviders' dictionaries.
9930         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs:
9931         Schedule a delegate job to reload the feeds on startup.
9933         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
9934         Add an index on CoreTracks for the ExternalID column.
9936         * src/Core/Banshee.Core/Makefile.am:
9937         * src/Core/Banshee.Core/Banshee.Core.mdp:
9938         * src/Core/Banshee.Core/Banshee.Kernel/DelegateJob.cs: New class for
9939         running parameterless methods/delegates as a Job.
9941         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs: Add a
9942         CreateIndex convenience method, and make FetchSingle virtual
9944         * src/Libraries/Migo/Migo.Syndication/FeedItem.cs:
9945         * src/Libraries/Migo/Migo.Syndication/FeedEnclosure.cs:
9946         * src/Libraries/Migo/Migo.Syndication/Feed.cs: Add indices, speeds up
9947         podcast queries a whole lot.
9949         * src/Libraries/Migo/Migo.Syndication/MigoModelProvider.cs: Override
9950         FetchSingle to pull directly from the dictionary and avoid the DB entirely
9951         if possible (happens very frequently).
9953         * src/Libraries/Migo/Migo.Syndication/FeedManager.cs: Only download 2
9954         feeds at at time, not 4.
9956 2008-05-22  Aaron Bockover  <abock@gnome.org>
9958         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCellCheckBox.cs: Save and
9959         reset the bound object on motion/pointer leave to a hover object variable
9960         and draw the checkbox as prelit if that's set
9962 2008-05-22  Gabriel Burt  <gabriel.burt@gmail.com>
9964         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Source/PodcastSourceContents.cs:
9965         * src/Core/Banshee.ThickClient/Banshee.ThickClient.mdp:
9966         * src/Core/Banshee.ThickClient/Makefile.am:
9967         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/ListBrowserSourceContents.cs:
9968         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/CompositeTrackSourceContents.cs:
9969         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/FilteredListSourceContents.cs:
9970         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Source/PodcastSourceContents.cs:
9971         Rename ListBrowserSourceContents to FilteredListSourceContents.
9973         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellDuration.cs:
9974         Right align durations.
9976         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Header.cs:
9977         Avoid passing null string to gtk.
9979 2008-05-22  James Willcox  <snorp@novell.com>
9981         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/UserJobTiles.cs:
9982         Set tooltips on the status label since it frequently gets ellipsized
9984 2008-05-21  Scott Peterson  <lunchtimemama@gmail.com>
9986         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs:
9987         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs:
9988         * src/Libraries/Migo/Migo/Migo.Syndication/FeedManager.cs:
9989         * src/Libraries/Migo/Migo/Migo.Syndication/Feed.cs:
9990         Add IsSubscribed to Feed and modified migration code to use true as the
9991         default.
9993 2008-05-21  Scott Peterson  <lunchtimemama@gmail.com>
9995         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Source/PodcastSourceContents.cs:
9996         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/CompositeTrackSourceContents.cs:
9997         Add null checks to avoid NRE.
9999         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Windowing.cs:
10000         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
10001         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Model.cs:
10002         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Header.cs:
10003         Removed rendering canvases.
10005         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
10006         Removed rendering canvases and fixed some bugaboos with cell event
10007         proxying.
10009 2008-05-21  Gabriel Burt  <gabriel.burt@gmail.com>
10011         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/ColumnCellPodcast.cs:
10012         Replace the disc image for 'All Podcasts' with the podcast icon.
10014         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Dialog/PodcastSubscribeDialog.cs:
10015         If the user has some text on the clipboard that starts with http,
10016         automatically put that in the url entry.  Make the dialog a big wider.
10018 2008-05-21  Gabriel Burt  <gabriel.burt@gmail.com>
10020         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs:
10021         When migrating old podcast data, call SyncWithFeedItem to get a bunch of
10022         good settings (Genre, MediaAttributes, etc).
10024 2008-05-21  Gabriel Burt  <gabriel.burt@gmail.com>
10026         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Source/PodcastSource.cs:
10027         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Source/Models/PodcastFeedModel.cs:
10028         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs:
10029         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumListModel.cs:
10030         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseBrowsableListModel.cs:
10031         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistListModel.cs:
10032         Change BrowsableListModels to automatically filter on any 'upstream'
10033         filters (ones defined before them), so upshot is albums filters on artists
10034         again.
10036 2008-05-21  Gabriel Burt  <gabriel.burt@gmail.com>
10038         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs:
10039         Migrate podcast feeds and items from 0.13.2 podcast plugin.
10041         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Source/PodcastSource.cs:
10042         Allow sorting on download status and published date, make the default
10043         PubDate descending.
10045         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/XmlColumnController.cs:
10046         Allow defining the sort direction in addition to the default sort column.
10048         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
10049         Add an override for GetTrackForUri method.
10051         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs:
10052         Expose SortQuery via protected property, and make GenerateSortQueryPart
10053         virtual.
10055         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
10056         Skip items with non-local URIs.
10058         * src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs: Add FileSize
10059         sorting.
10061         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteConnection.cs: Add
10062         QueryEnumerable<T> methods.
10064         * src/Libraries/Migo/Migo/Migo.Syndication/FeedItem.cs:
10065         * src/Libraries/Migo/Migo/Migo.Syndication/FeedEnclosure.cs:
10066         * src/Libraries/Migo/Migo/Migo.Syndication/Feed.cs: Create the model
10067         within the Init function.
10069 2008-05-21  Scott Peterson  <lunchtimemama@gmail.com>
10071         * src/Libraries/Hyena.Gui/Hyena.Gui.Theming/GtkTheme.cs: Fixed rendering
10072         problem with sort arrow if the first column was sorted.
10074 2008-05-21  Scott Peterson  <lunchtimemama@gmail.com>
10076         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
10077         Fixed first column being unsortable.
10079 2008-05-21  Aaron Bockover  <abock@gnome.org>
10081         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdDiscModel.cs:
10082         Added an EnabledCount property
10084         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdSource.cs:
10085         Added a check box column to control the RipEnabled property on each CD 
10086         track; when the EnabledCount on the model is zero, disable the rip action
10088         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdTrackInfo.cs:
10089         When RipEnabled is set or unset, increment or decrement the EnabledCount
10090         on the model if the value actually changes
10092         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: NRE protection
10094         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCellText.cs: Do not layout
10095         text if it's null or empty
10097 2008-05-21  Aaron Bockover  <abock@gnome.org>
10099         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/IInteractiveCell.cs:
10100         Added a PointerLeaveEvent method
10102         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
10103         Save last cell reference so it can be sent a pointer leave event when 
10104         the pointer focuses on another cell or leaves the widget entirely; 
10105         computer proper cell damage rectangles for when Scott fixes area redrawing
10107         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCellRating.cs:
10108         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCellCheckBox.cs:
10109         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListViewTestModule.cs:
10110         Implemented PointerLeaveEvent
10112 2008-05-21  Scott Peterson  <lunchtimemama@gmail.com>
10114         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Headers.cs:
10115         Make sure that a columns max height is not less that its min height. This
10116         fixes some aweful bugs.
10118 2008-05-21  Mike Urbanski  <michael.c.urbanski@gmail.com>
10120         * src/Libraries/Migo/Makefile.am: 
10121         * src/Libraries/Migo/Migo.mdp: 
10122         * src/Libraries/Migo/Migo/Migo.TaskCore/AsyncCommandQueue/CommandQueueManager.cs: 
10123         Added CommandQueueManager.
10125         * src/Libraries/Migo/Migo/Migo.TaskCore/GroupStatusManager.cs:
10126         * src/Libraries/Migo/Migo/Migo.TaskCore/GroupProgressManager.cs: 
10127         * src/Libraries/Migo/Migo/Migo.TaskCore/AsyncCommandQueue/AsyncCommandQueue.cs:
10128         * src/Libraries/Migo/Migo/Migo.TaskCore/Migo.TaskCore.Collections/TaskCollection.cs:
10129         * src/Libraries/Migo/Migo/Migo.TaskCore/TaskGroup.cs:
10130         * src/Libraries/Migo/Migo/Migo.TaskCore/Task.cs:
10131         * src/Libraries/Migo/Migo/Migo.DownloadCore/DownloadManager.cs:
10132         * src/Libraries/Migo/Migo/Migo.DownloadCore/DownloadGroupStatusManager.cs:
10133         * src/Libraries/Migo/Migo/Migo.DownloadCore/HttpFileDownloadTask.cs:
10134         * src/Libraries/Migo/Migo/Migo.Syndication/FeedsManager.cs:
10135         Transparent architectural changes to promote looser coupling between 
10136         TaskCore components (i.e.  removing hacketry.)
10138 2008-05-21  Aaron Bockover  <abock@gnome.org>
10140         * src/Core/Banshee.Services/Banshee.Metadata/MetadataServiceJob.cs:
10141         Return the full HttpWebResponse instead of the response stream
10143         * src/Core/Banshee.Services/Banshee.Metadata.MusicBrainz/MusicBrainzQueryJob.cs:
10144         Updated to reflect API change above
10146         * src/Core/Banshee.Services/Banshee.Metadata.Rhapsody/RhapsodyQueryJob.cs:
10147         Updated to reflect API change above and to check the content type on
10148         the response to ensure it's text/xml - Rhapsody now redirects to the
10149         best-match HTML page if there is no exact match - before they just gave
10150         a 404 response
10152 2008-05-21  Gabriel Burt  <gabriel.burt@gmail.com>
10154         * src/Extensions/Banshee.Lastfm/Makefile.am: Reorder.
10156         * src/Extensions/Banshee.Podcasting/Resources/GlobalUI.xml:
10157         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastActions.cs:
10158         Add Download All action to podcast context menu.
10160         * src/Libraries/Migo/Migo/Migo.Syndication/FeedEnclosure.cs: Avoid
10161         queueing the download if we're already download.
10163 2008-05-20  Gabriel Burt  <gabriel.burt@gmail.com>
10165         With the amazing help of Scott Peterson, we have knocked out two subtle,
10166         but annoying Last.fm bugs.
10168         * src/Extensions/Banshee.NotificationArea/Resources/NotificationAreaMenu.xml:
10169         Add placeholder.
10171         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationSource.cs:
10172         Implement IBasicPlaybackController, so that if we are selected as the new
10173         playback source and asked to play First or Next, we will as soon as we've
10174         loaded some songs (and we're still the playback source).
10176         * src/Extensions/Banshee.Lastfm/Makefile.am:
10177         * src/Extensions/Banshee.Lastfm/Resources/LastfmTrackActions.xml:
10178         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmActions.cs:
10179         Load some TrackActions when we're the playback source (specifically, put
10180         Love/Hate in the notification menu).
10182         * src/Core/Banshee.Services/Banshee.Services.mdp:
10183         * src/Core/Banshee.Services/Makefile.am:
10184         * src/Core/Banshee.Services/Banshee.Collection/IHasTrackSelection.cs:
10185         Removed.
10187         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteConnection.cs: TODO
10188         note.
10190 2008-05-20  Gabriel Burt  <gabriel.burt@gmail.com>
10192         * src/Core/Banshee.Core/Banshee.Streaming/SaveTrackMetadataJob.cs: Disable
10193         writing metadata to file for video files for now, since TagLib# seems to run
10194         at 100% and consume lots of memory when we try.
10196 2008-05-20  Aaron Bockover  <abock@gnome.org>
10198         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCellRating.cs: Tell the
10199         renderer what opacities we like
10201         * src/Libraries/Hyena.Gui/Hyena.Gui/RatingRenderer.cs: Take the color
10202         opacities from the argument stack instead of hard coding
10204         * src/Libraries/Hyena.Gui/Hyena.Widgets/RatingEntry.cs: Set desired
10205         opacities and added an AlwaysShowEmptyStars property; moved the motion
10206         event handler to an internal HandleMotionNotify method
10208         * src/Libraries/Hyena.Gui/Hyena.Widgets/RatingMenuItem.cs: Proxy the
10209         menu's motion notify event to the entry so we get the sweet preview;
10210         do not activate the menu when we set the rating so the menu stays visible
10211         and we can see the rating actually changed
10213 2008-05-20  Gabriel Burt  <gabriel.burt@gmail.com>
10215         This commit fixes a major (though one-line) bug with threading that should
10216         fix "xcb" related crashes.  It improves podcast support, including
10217         automatically switching to Now Playing for videos and supporting Media RSS
10218         feeds.
10220         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingSource.cs:
10221         Also switch to Now Playing if the trackinfo is updated and it is a video.
10223         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs:
10224         Delay refreshing the feeds, and don't try to download artwork if feed not
10225         fetched.
10227         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastActions.cs:
10228         Implement deleting a podcast feed, feed context menu.
10230         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Source/PodcastSource.cs:
10231         Show a message if the user creates a playlist under the Podcast source.
10232         Should be allowed, but doesn't work properly yet, so we don't allow it.
10234         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastTrackInfo.cs:
10235         Set the LicenseUri and MediaAttributes.
10237         * src/Extensions/Banshee.Podcasting/Resources/GlobalUI.xml: Add a context
10238         menu just for the All Podcasts item.
10240         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellFileSize.cs:
10241         Right align and always show one decimal point.
10243         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastImageFetchJob.cs:
10244         * src/Core/Banshee.Services/Banshee.Metadata/IMetadataLookupJob.cs:
10245         * src/Core/Banshee.Services/Banshee.Metadata/MetadataService.cs:
10246         * src/Core/Banshee.Services/Banshee.Metadata/MetadataSettings.cs:
10247         * src/Core/Banshee.Services/Banshee.Metadata/IMetadataProvider.cs:
10248         * src/Core/Banshee.Services/Banshee.Metadata/BaseMetadataProvider.cs:
10249         * src/Core/Banshee.Services/Banshee.Metadata/MetadataServiceJob.cs:
10250         * src/Core/Banshee.Services/Makefile.am:
10251         * src/Core/Banshee.Services/Banshee.Metadata.MusicBrainz/MusicBrainzMetadataProvider.cs:
10252         * src/Core/Banshee.Services/Banshee.Metadata.MusicBrainz/MusicBrainzQueryJob.cs:
10253         * src/Core/Banshee.Services/Banshee.Metadata.Rhapsody/RhapsodyMetadataProvider.cs:
10254         * src/Core/Banshee.Services/Banshee.Metadata.Rhapsody/RhapsodyQueryJob.cs:
10255         * src/Core/Banshee.Services/Banshee.Metadata.Embedded/EmbeddedMetadataProvider.cs:
10256         * src/Core/Banshee.Services/Banshee.Metadata.Embedded/EmbeddedQueryJob.cs:
10257         * src/Core/Banshee.Services/Banshee.Services.mdp:
10258         Get rid of MetadataSettings and use NetworkDetect.  Don't lookup if
10259         podcast MediaAttribute set.  Fix bug with calling GTK+ things from the
10260         metadata update thread; probably the cause of the xcb crashes.
10262         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
10263         Trim artist and album names when set.
10265         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngine.cs: Don't
10266         ignore media engine tags if the current track is not a local file.  This
10267         lets GStreamer tell us the streaming file is a video so Now Playing can
10268         switch to itself.
10270         * src/Core/Banshee.Core/Banshee.Collection/IBasicTrackInfo.cs: Add
10271         ArtworkId and MediaAttributes properties.
10273         * src/Core/Banshee.Core/Banshee.Collection/LicenseInfo.cs: New file, not
10274         in build.  Idea is to parse and represent Creative Commons license info.
10276         * src/Core/Banshee.Core/Banshee.Streaming/StreamTagger.cs: Handle the
10277         VideoCodec tag, setting the VideoStream attribute.
10279         * src/Libraries/Hyena/Hyena/StringUtil.cs:
10280         * src/Libraries/Hyena/Hyena.Query/FileSizeQueryValue.cs: Allow specifying
10281         that one decimal point should always been shown.  By default, we hide the
10282         decimal point and tenths place if the number is within 0.05 of an int.
10284         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs: Make
10285         Delete methods virtual, add LIMIT 1 to FetchFirstMatching, and use
10286         DeleteCommand property instead of field.
10288         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCellText.cs: Add a
10289         protected Pango.Alignment property.
10291         * src/Libraries/Migo/Makefile.am:
10292         * src/Libraries/Migo/Migo.mdp:
10293         * src/Libraries/Migo/Migo/Migo.Syndication/XmlUtils.cs: Removed, code
10294         moved into RssParser.
10296         * src/Libraries/Migo/Migo/Migo.Syndication/FeedItem.cs: Add LicenseUri
10297         property, and fix loading of the enclosure.
10299         * src/Libraries/Migo/Migo/Migo.Syndication/FeedEnclosure.cs: Tweaks.
10301         * src/Libraries/Migo/Migo/Migo.Syndication/RssParser.cs: Merge the code
10302         from XmlUtils into here, add more namespaces so can pull out Creative
10303         Commons LicenseUri and can pull the highest bitrate <media:content> if
10304         there is no <enclosure> tag - eg for The Onion News Network.  Should
10305         probably allow setting global or per-podcast preference for preferred
10306         quality if there are ever options.
10308         * src/Libraries/Migo/Migo/Migo.Syndication/MigoModelProvider.cs: Make
10309         Delete methods override; as 'new' they weren't working.
10311         * src/Libraries/Migo/Migo/Migo.Syndication/Feed.cs: Get rid of TTL and
10312         Interval properties, replace with UpdatePeriodMinutes property.  Fix
10313         Delete method.
10315         * configure.ac: Enable the podcast extension by default.
10317 2008-05-19  Aaron Bockover  <abock@gnome.org>
10319         * build/build.rules.mk: Set ENABLE_TESTS as a define variable; this will
10320         allow unit tests to be compiled in only if Nunit is available and we are
10321         not building a release
10323         * Tons of files: Surgery to move unit tests into the proper assemblies
10324         instead of one big test assembly hack job thing; some stuff is still 
10325         broken and incomplete
10327 2008-05-19  Aaron Bockover  <abock@gnome.org>
10329         * tests/Hyena/RangeCollectionTests.cs: Use a SortedInsert method instead
10330         of Add*N + Sort for the reference collection so it's a little faster;
10331         reduce the iterations to 75k to appease Gabe
10333 2008-05-19  Aaron Bockover  <abock@gnome.org>
10335         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtworkRenderer.cs:
10336         Added native handle NULL checks when checking for null against a Gdk.Pixbuf;
10337         for some reason we sometimes get a managed GdkPixbuf object that wraps
10338         a NULL native GdkPixbuf pointer - possibly a bug in Gdk# - though it only
10339         seems to happen when image data comes from the Net, so it could just be
10340         a case of bad things happening with bad image data
10342 2008-05-18  Gabriel Burt  <gabriel.burt@gmail.com>
10344         * tests/Makefile.am: Patch from Bertrand Lorentz that forces tests to be
10345         run in Italian with timezone = Chicago, apparently fixing failures for him.
10347 2008-05-17  Gabriel Burt  <gabriel.burt@gmail.com>
10349         Massive commit that brings Podcasting back to the land of the living.  Our
10350         internal classes for doing track filtering and showing the browsers have
10351         been made generic, so that Podcasting can use all of them to show its
10352         Browser (with a single Podcast filter).  I still do NOT recommend users use
10353         this; it needs more work to migrate 0.13.2 podcasting data, and probably
10354         has bugs that will eat your children.
10356         * src/Core/Banshee.ThickClient/Banshee.Gui/ViewActions.cs:
10357         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackActions.cs:
10358         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackRepeatActions.cs:
10359         * src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs:
10360         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs:
10361         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackShuffleActions.cs:
10362         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/NotificationAreaService.cs:
10363         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmActions.cs:
10364         Update to use new BansheeActionGroup ctor and properties.
10366         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdSource.cs:
10367         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationSource.cs:
10368         Implement empty FilterModels property.
10370         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs:
10371         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService_Interface.cs:
10372         Listen to the events offered up in Migo, grab podcast artwork, and move
10373         most of the action-related code into PodcastActions.cs.
10375         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastImageFetchJob.cs:
10376         New MetadataServiceJob subclass for fetching podcast artwork.
10378         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastCore_Interface.cs:
10379         Renamed to PodcastService.
10381         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/ColumnCellPodcast.cs:
10382         Hot new renderer for podcasts, showing artwork, name, and when last
10383         updated.  Duplicates a ton of code with ColumnCellAlbum, should be
10384         refactored.
10386         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/ColumnCellPublished.cs:
10387         Override for ColumnCellDateTime to just print the short date.
10389         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastActions.cs:
10390         New class, a BansheeActionGroup subclass, for registering and handling
10391         podcast actions.  Quite a few actions aren't implemented yet (like mark
10392         new/old and delete podcast).
10394         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Dialog/PodcastFeedPropertiesDialog.cs:
10395         Get rid of bold titles, make casing consistent, don't put ""s around the
10396         description.
10398         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Dialog/PodcastSubscribeDialog.cs:
10399         Casing, grammer, get rid of expander.
10401         * src/Extensions/Banshee.Podcasting/Makefile.am:
10402         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastItem.cs:
10403         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastTrackInfo.cs:
10404         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Dialog/PodcastPropertiesDialog.cs:
10405         PodcastItem renamed to PodcastTrackInfo, pulls more data from FeedItem and
10406         the enclosure/file.
10408         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Source/ColumnCells/PixbufColumnCell.cs:
10409         Add new ctor required by new ColumnController business.
10411         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Source/ColumnCells/ItemActivityColumnCell.cs:
10412         Add new ctor, get rid of Video and New Item icons; just show download status
10414         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Source/PodcastSourceContents.cs:
10415         Change to be a ListBrowserSourceContents subclass, which is what
10416         CompositeTrackListView inherit from too.
10418         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Source/PodcastSource.cs:
10419         Change to inherit from LibrarySource, add a XML column controller property
10420         to add Published and Download Status columns.
10422         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Source/Models/PodcastFeedModel.cs:
10423         Change to inherit from DatabaseBrowsableListModel, which goes against the
10424         db and knows how to filter the track model.
10426         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Source/Views/PodcastFeedView.cs:
10427         Change to inherit from TrackFilterListView and to use the new Podcast
10428         renderer.
10430         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Source/Views/PodcastItemView.cs:
10431         Fix up columns, names.
10433         * src/Extensions/Banshee.Podcasting/Resources/ActiveSourceUI.xml: Use the
10434         normal TrackContextMenu for podcast items, but add some things to it when
10435         podcast source is active.
10437         * src/Extensions/Banshee.Podcasting/Resources/GlobalUI.xml: Get rid of
10438         PodcastItemViewPopup, add several normal Library-source context menu
10439         items, remove some items from PodcastFeedPopup that didn't make sense.
10441         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.addin.xml: Update
10442         copyright info.
10444         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.mdp: Lots of new
10445         files, ref TagLib, System.Xml, gdk.
10447         * src/Clients/Nereid/Nereid/PlayerInterface.cs: Fix assumptions regarding
10448         composite_view, and get rid of IHasTrackSelection crap.
10450         * src/Core/Banshee.Services/Banshee.Metadata.Embedded/EmbeddedQueryJob.cs:
10451         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs:
10452         * src/Core/Banshee.Services/Banshee.Metadata.MusicBrainz/MusicBrainzQueryJob.cs:
10453         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodTrackInfo.cs:
10454         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
10455         Rename TrackInfo.ArtistAlbumId to ArtworkId.
10457         * src/Dap/Banshee.Dap/Banshee.Dap/MediaGroupSource.cs: Fix delete from
10458         drive action label, reload after intialized.
10460         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Add the two media sources
10461         before loading, avoiding ThreadAssist nastiness.
10463         * src/nuke-gconf-keys: New scriptlet for clearing your banshee-1 gconf
10464         keys, for testing from a clean slate.
10466         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/XmlColumnController.cs:
10467         Add ability to set a default <sort-column>column-id</sort-column>.
10469         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/AlbumListView.cs:
10470         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtistListView.cs:
10471         Inherit from TrackFilterListView, getting rid of a lot of dupe code.
10473         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellFileSize.cs:
10474         New column cell renderer for file sizes.  Should be changed to always spit
10475         out one decimal point and to right align, for scanability.
10477         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
10478         Move RowActivated handler here from Nereid.PlayerInterface, so that any
10479         TrackListView instance/subclass will start playing when you double click
10480         on a row.
10482         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackFilterListView.cs:
10483         New class, refactored Album and Artist code here.
10485         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellDuration.cs:
10486         Don't display anything if duration is zero.
10488         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/DefaultColumnController.cs:
10489         Add FileSize column, make duration column a bit smaller by default.
10491         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellDateTime.cs:
10492         Add DateTimeFormat to control what format of date/time string is used.
10494         * src/Core/Banshee.ThickClient/Banshee.ThickClient.mdp: Add new files.
10496         * src/Core/Banshee.ThickClient/Banshee.Gui/BansheeActionGroup.cs: Add
10497         ShowContextMenu method, take the interface_action_service in the ctor and
10498         expose through Actions property.
10500         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Get rid of
10501         awful TrackSelector crap.
10503         * src/Core/Banshee.ThickClient/Makefile.am: Updates.
10505         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/ListBrowserSourceContents.cs:
10506         Refactored out of CompositeTrackSourceContents, made generic so can be
10507         used with any ITrackModelSource with its arbitrary FilterModels.  Means we
10508         can have different types of browsers for different sources (Music Library
10509         vs Podcasts, for instance) and they share a lot of code, and the top/left
10510         preference.
10512         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/CompositeTrackSourceContents.cs:
10513         Inherit from ListBrowserSourceContents.
10515         * src/Core/Banshee.Services/Banshee.Metadata/MetadataServiceJob.cs: Fix
10516         bug where files were used before they were fully downloaded by saving to a
10517         temp file and moving once finished writing.
10519         * src/Core/Banshee.Services/Banshee.Sources/Source.cs:
10520         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs:
10521         * src/Core/Banshee.Services/Banshee.Sources/ITrackModelSource.cs: Get rid
10522         of AlbumModel and ArtistModel, replaced by generic FilterModels.
10524         * src/Core/Banshee.Services/Banshee.Playlist/AbstractPlaylistSource.cs:
10525         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Add the
10526         conditions intead of setting them, meaning we can play nicely with
10527         other conditions instead of racing.
10529         * src/Core/Banshee.Services/Banshee.Collection/BrowsableListModel.cs: New
10530         abstract subclass of BansheeListModel, that defines the Selection as a
10531         SelectAllSelection.
10533         * src/Core/Banshee.Services/Banshee.Collection/BansheeListModel.cs: Add
10534         FocusedItem getter, and make RaiseReloaded public.
10536         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumListModel.cs:
10537         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistListModel.cs:
10538         Inherit from DatabaseBrowsableListModel
10540         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseBrowsableListModel.cs:
10541         New abstract class for filter models.
10543         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
10544         Sort of lame, but put the actual Provider.Save/Refresh calls inside
10545         virtual methods so that PodcastTrackInfo can use its own provider.
10547         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs:
10548         Get rid of ReloadTrigger enum, replaced by just passing in the actual
10549         IFilterModel that triggered the reload (if any).  Reload algorithm made
10550         generic, uses the ITrackModelSource's list of FilterModels, so will work
10551         with 0 - N filter models (used by PodcastSource to filter just on Podcast,
10552         atm).  Get rid of built-in album/artist assumptions.
10554         * src/Core/Banshee.Services/Banshee.Services.mdp: New files.
10556         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
10557         New migration, drop any podcast tables created using the 1.0 series
10558         - 0.13.2 data shouldn't be affected - so we can start over.  Add an
10559         ExternalId column to CoreTracks.
10561         * src/Core/Banshee.Services/Banshee.Database/BansheeModelCache.cs: Don't
10562         require BansheeModelProvider since SqliteModelProvider suffices fine.
10564         * src/Core/Banshee.Services/Makefile.am: New files.
10566         * src/Core/Banshee.Core/Resources/translators.xml: Updated.
10568         * src/Core/Banshee.Core/Banshee.Base/CoverArtSpec.cs: Make the actual
10569         escaping code public (so we can use it to make podcast artwork ids).  Log
10570         a message stating where the album art directory is.
10572         * src/Libraries/Hyena/Hyena.Collections/Selection.cs: Add a FocusedIndex
10573         property, factored out of ListView, so that we can get to it so long as we
10574         can get to the Selection, instead of having to get to the ListView.
10576         * src/Libraries/Hyena/Hyena/Log.cs: Add WarningFormat.
10578         * src/Libraries/Hyena/Hyena.Query/RelativeTimeSpanQueryValue.cs: Added
10579         convenience factory method RelativeToNow.
10581         * src/Libraries/Hyena/Hyena.Query/TimeSpanQueryValue.cs: Determine the
10582         best factor after having our value set.
10584         * src/Libraries/Hyena/Hyena.Data/IFilterable.cs: Rename Filter to
10585         UserQuery.
10587         * src/Libraries/Hyena/Hyena.Data/IListModel.cs: Add non-generic IListModel
10588         interface.
10590         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs: Make Save,
10591         Load, and Delete methods virtual, change FetchFirstMatching to not
10592         duplicate FetchAllMatching code, change both to accept params, fix bug
10593         with Refresh, and add protected PrimaryKeyFor method.
10595         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/IListView.cs: Add non-generic
10596         interface.
10598         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCell.cs: Add useful
10599         debugging logging if a specified property doesn't exist.
10601         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
10602         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
10603         Change to use Selection.FocusedIndex.
10605         * src/Libraries/Migo/Migo.mdp:
10606         * src/Libraries/Migo/Makefile.am: New files, only build if
10607         --enable-podcast set.
10609         * src/Libraries/Migo/Migo/Migo.Net/AsyncWebClient.cs: Add a public static
10610         UsreAgent property so we can set it to Banshee.Web.Browser.UserAgent.  Get
10611         rid of many try {} catch {} statements to avoid swallowing exceptions.
10613         * src/Libraries/Migo/Migo/Migo.TaskCore/AsyncCommandQueue/AsyncCommandQueue.cs:
10614         * src/Libraries/Migo/Migo/Migo.DownloadCore/DownloadManager.cs:
10615         * src/Libraries/Migo/Migo/Migo.TaskCore/TaskGroup.cs: Fix formatting,
10616         logging.
10618         * src/Libraries/Migo/Migo/Migo.DownloadCore/HttpFileDownloadTask.cs: Don't
10619         set the UserAgent here.
10621         * src/Libraries/Migo/Migo/Migo.Syndication/FeedsManager.cs: Separated most
10622         of this code out into FeedManager and EnclosureManager.  This class was
10623         trying to be too many things to too many users.
10625         * src/Libraries/Migo/Migo/Migo.Syndication/XmlUtils.cs: Add
10626         GetNamespaceManager method, and GetITunesDuration method.
10628         * src/Libraries/Migo/Migo/Migo.Syndication/FeedItem.cs: Default active to
10629         true, change provider to be a MigoModelProvider, add static Exists (guid)
10630         method, many of fixes.
10632         * src/Libraries/Migo/Migo/Migo.Syndication/FeedEnclosure.cs: Change
10633         provider and inherit from MigoItem, fix up SetFileImpl method, database
10634         properties, etc.
10636         * src/Libraries/Migo/Migo/Migo.Syndication/Feed.cs: Inherit from MigoItem,
10637         uset MigoModelProvider, fix up db properties, add method that starts
10638         automatically downloading any new items when appropriate.
10640         * src/Libraries/Migo/Migo/Migo.Syndication/Rfc822DateTime.cs: Fix so
10641         parses some dates it wasn't parsing before.
10643         * src/Libraries/Migo/Migo/Migo.Syndication/OpmlParser.cs: New class, not
10644         at all finished, for parsing OPML files.
10646         * src/Libraries/Migo/Migo/Migo.Syndication/RssParser.cs: Get the image url
10647         from itunes:image first, since it's probably higher quality.  Get the
10648         keywords and category properties too.  Get the duration for enclosures, if
10649         set.
10651         * src/Libraries/Migo/Migo/Migo.Syndication/MigoModelProvider.cs: A
10652         subclass of SqliteModelProvider with an interesting twist: every item that
10653         is retrieved is cached in a Dictionary indexed by DbId, which allows us to
10654         combine the power of Migo's downloading ability (which wouldn't work if
10655         there were multiple instances of a FeedItem, for example, that all
10656         represented the same actual item/db row, with the power of
10657         SqliteModelProvider for finding items.  So you can do
10658         Feed.Provider.FetchAllMatch ("LastDownloadedAt < ?', some datetime) and
10659         be returned the already-instantiated objects.
10661         * src/Libraries/Migo/Migo/Migo.Syndication/FeedUpdateTask.cs: Fixed up.
10663         * src/Libraries/Migo/Migo/Migo.Syndication/EventArgs/FeedItemEventArgs.cs:
10664         Chagned, but I don't think this is used anymore.  Should be culled.
10666         * src/Libraries/Migo/Migo/Migo.Syndication/FeedManager.cs:
10667         * src/Libraries/Migo/Migo/Migo.Syndication/EnclosureManager.cs: New
10668         classes taking over for things FeedsManager did before (namely, managing
10669         downloads and firing off events).
10671         * src/Libraries/Migo/Migo/Migo.Syndication/MigoItem.cs: Simple abstract
10672         class that implements ICacheableItem and has an abstract DbId property.
10674         * build/build.environment.mk: Tidy up MIGO deps.
10676         * tests/Makefile.am: Add Migo/XmlTests.
10678         * tests/Migo/XmlTests.cs: Add tests for itunes:duration parsing and
10679         Rfc822DateTime parsing.
10681         * tests/BansheeTests.cs: add TransformPair struct.
10683 2008-05-17  Aaron Bockover  <abock@gnome.org>
10685         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/TrackEditor.cs: Added
10686         Genre list population back to the track editor (BGO #533530)
10688 2008-05-17  Aaron Bockover  <abock@gnome.org>
10690         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
10691         Bind to a private rating field and call Save in the property setter
10693         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/DefaultColumnController.cs:
10694         Add the rating column with the new hot rating cell
10696 2008-05-17  Aaron Bockover  <abock@gnome.org>
10698         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/Column.cs: FIxed improper ctor
10699         chain; set Min/MaxWidth if a cell is ISizeRequestCell when packing
10700         by calling GetSize on the cell
10702         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCell.cs: Allow setting
10703         BoundObject on a cell, added a BoundObjectParent that can be used
10704         to track which data item (instead of which data property on an item)
10705         is being bound
10707         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCellCheckBox.cs: Implemented
10708         a check box interactive cell renderer that binds to boolean properties
10710         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCellRating.cs: Implemented
10711         a rating cell renderer based on the new rating renderer
10713         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/IInteractiveCell.cs: Interface
10714         for cells that would like to have keyboard/mouse events proxied to them
10716         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ISizeRequestCell.cs: Interface
10717         for cells that actually care about their size and refuse to adapt to
10718         what the view can provide
10720         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
10721         Implemented first pass at cell level interaction - namely through 
10722         ProxyEventToCell which currently supports transforming and proxying
10723         Gdk.EventButton and Gdk.EventMotion events from the view to a cell; also
10724         fix a bunch of potential NRE when the model selection is null
10726         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Model.cs:
10727         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
10728         Fix a bunch of potential NRE when the model selection is null
10730         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListViewTestModule.cs: Started
10731         a test module for stressing functionality of the ListView
10732         
10733         * src/Libraries/Hyena.Gui/Hyena.Gui/RatingRenderer.cs: A new renderer to
10734         do all drawing/logic for things that want to embed a rating
10736         * src/Libraries/Hyena.Gui/Hyena.Widgets/ComplexMenuItem.cs: Moved to
10737         Hyena.Widgets
10739         * src/Libraries/Hyena.Gui/Hyena.Widgets/RatingEntry.cs: Moved to 
10740         Hyena.Widgets and largely rewritten to use the new RatingRenderer
10742         * src/Libraries/Hyena.Gui/Hyena.Widgets/RatingMenuItem.cs:  Moved to
10743         Hyena.Widgets and do not call into the EventBox rendering hack since the
10744         RatingEntry no longer derives from EventBox
10745         
10746         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/TrackEditor.cs:
10747         * src/Core/Banshee.ThickClient/Banshee.Query.Gui/RatingQueryValueEntry.cs:
10748         * src/Core/Banshee.Widgets/Banshee.Widgets/CustomActionProxy.cs:
10749         * src/Core/Banshee.Widgets/Banshee.Widgets/RatingActionProxy.cs:
10750         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/NotificationAreaService.cs:
10751         Updated to reflect the move of Rating stuff to Hyena.Gui
10753 2008-05-17  Aaron Bockover  <abock@gnome.org>
10755         * src/Libraries/Hyena/Hyena.Collections/RangeCollection.cs: Made the
10756         indexer code more sexy so it doesn't look like I wrote it at 4:30 in
10757         the morning, ensure that negative indexes throw IOORE
10759         * tests/Hyena/RangeCollectionTests.cs: Added an indexer stress test and
10760         some extra specific tests for ensuring IndexOutOfRange is thrown when
10761         it should be
10763 2008-05-17  Aaron Bockover  <abock@gnome.org>
10765         * src/Libraries/Hyena/Hyena.Collections/RangeCollection.cs: Fixed the 
10766         horribly broken indexer that looked like a late night copy and paste of
10767         the IndexOf logic but never worked - we don't use it, so it's never been
10768         a problem, but the unit test had always complained - yay tests
10770         * tests/Hyena/RangeCollectionTests.cs: Improved test for the indexer
10772 2008-05-17  Aaron Bockover  <abock@gnome.org>
10774         Patch from Bertrand Lorentz (BGO #533099)
10776         * src/Libraries/Hyena/Hyena.Collections/RangeCollection.cs: Fix a 
10777         dyslexia bug in the NET_1_1 version of the array resize code
10779         * build/build.rules.mk: Define NET_2_0 on the build so we end up
10780         using the better version of RangeCollection - whoops
10782         * tests/Hyena/RangeCollectionTests.cs: Added test to check for the
10783         NET_1_1 array resize bug fixed above
10785 2008-05-14  Aaron Bockover  <abock@gnome.org>
10787         * src/Core/Banshee.Core/Banshee.Base/FileNamePattern.cs: Added %year% 
10788         from stable 
10790 2008-05-14  Aaron Bockover  <abock@gnome.org>
10792         * src/Core/Banshee.Services/Banshee.Library/VideoLibrarySource.cs: Defined
10793         a column controller for video sources
10795         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellPlaybackIndicator.cs:
10796         Added the proper ctor
10798         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/DefaultColumnController.cs:
10799         Made the default column properties instance properties since they can
10800         now be modified and should not be global
10802         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
10803         If a source has an XML column controller definition but not a column
10804         controller object, load the object from the XML and persist/use it
10806         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/XmlColumnController.cs:
10807         A new column controller that extends the default controller and allows
10808         new columns to be fully defined, existing ones to be modified or removed
10810         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/SortableColumn.cs: Allow SortKey
10811         to be set
10813         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceComboBox.cs:
10814         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs:
10815         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs:
10816         Use a common cell layout data handler delegate
10818 2008-05-13  Aaron Bockover  <abock@gnome.org>
10820         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/DefaultColumnController.cs:
10821         Implemented a proper default column controller with the columns as static
10822         properties so derived implementations don't have to redefine common columns
10824         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
10825         Use the new DefaultColumnController; check the active source (walking
10826         up to the root parent) for a column controller to use instead of the
10827         default; if none found, use the default
10829         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmColumnController.cs:
10830         Implement a custom column controller for Last.fm derived
10832         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSource.cs:
10833         Set LastfmColumnController on the source
10835         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Model.cs:
10836         Make SetModel virtual
10838         * data/audio-profiles/wavpack.xml.in: Small fix to the pipeline
10840         * src/Core/Banshee.Core/Resources/contributors.xml: Added the Andy
10842 2008-05-12  Gabriel Burt  <gabriel.burt@gmail.com>
10844         * src/Core/Banshee.Core/Banshee.Streaming/SaveTrackMetadataJob.cs: Patch
10845         from Nicholas Parker working around bug in TagLib# where setting the genre
10846         to string [] {null} would crash.
10848         * tests/Banshee.Core/TaglibReadWriteTests.cs: Unit test for above fix.
10850 2008-05-09  Aaron Bockover  <abock@gnome.org>
10852         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceComboBox.cs:
10853         Set ParentWidget on the renderer to self
10855         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs:
10856         Fixed small selection rendering regression and fix the state calculation
10857         for when the widget is a combo box and is prelit but not showing the menu
10859 2008-05-09  Aaron Bockover  <abock@gnome.org>
10861         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceComboBox.cs:
10862         Moved from MiniMode; use the new SourceModel and use the SourceRowRenderer
10864         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceModel.cs: Pulled
10865         out model specific code from SourceView into a new TreeModel subclass
10866         that SourceView and SourceComboBox can use
10868         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs:
10869         Implemented proper CellRendererState -> StateType mapping so the renderer
10870         works properly inside other widgets (i.e. GtkComboBox); add some default
10871         sizing for non TreeView widgets
10873         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs:
10874         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView_DragAndDrop.cs:
10875         Fixed up to use the new SourceModel
10877         * src/Extensions/Banshee.MiniMode/Banshee.MiniMode/MiniModeWindow.cs:
10878         Fixed up to use the new SourceComboBox
10880 2008-05-09  Gabriel Burt  <gabriel.burt@gmail.com>
10882         This commit greatly improves performance when editing/saving track
10883         information and on each track transition by avoiding many unnecessary
10884         source reloads.
10886         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdSource.cs: Improve
10887         auto-rip label.
10889         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ConnectedSeekSlider.cs:
10890         Avoid changing to 'Idle' when transitioning between songs, and avoid
10891         jumpiness by not setting the duration until the first Iteration event.
10892         Makes things much smoother.
10894         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/TrackEditor.cs: Fix the
10895         horrible save performance by avoiding reloading until after having saved
10896         all the tracks, instead of after each one.  Fix whitespace.
10898         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Change
10899         OnTracksChanged to take an array of QueryFields that were modified.  Add
10900         protected InvalidateCaches method used to clear the managed cache for the
10901         track/artist/album model, but not reload it (eg the display data has
10902         changed, but sort order/contents have not).
10904         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Change
10905         TracksChanged to QueryField array.
10907         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumListModel.cs:
10908         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistListModel.cs:
10909         Remove ClearCache method, and add InvalidateCache method.
10911         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
10912         Specify which fields are updated in the IncrementPlay/SkipCount methods to
10913         allow sources to optimize whether they need to reload b/c of the change.
10915         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs:
10916         Add InvalidateCache method, and expose the currently parsed QueryNode, if
10917         any.
10919         * src/Core/Banshee.Services/Banshee.Collection.Database/IDatabaseTrackModelCache.cs:
10920         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs:
10921         Add ClearManagedCache method.
10923         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs:
10924         * src/Core/Banshee.Services/Banshee.Playlist/AbstractPlaylistSource.cs:
10925         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
10926         In TrackChanged handler, only Reload if we are actually affected by the
10927         change - so if the change was play count, and we're not sorted by it,
10928         querying on it, or if we're a smart playlist, defined by it, then just
10929         InvalidateCaches.
10931         * src/Libraries/Hyena/Hyena.Query/QueryOrder.cs:
10932         * src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs: Associate a
10933         QueryField with QueryOrders.
10935         * src/Core/Banshee.Widgets/Banshee.Widgets/StreamPositionLabel.cs: Avoid
10936         updating twice as often as needed.  Use String.Format instead of +.
10938         * src/Libraries/Hyena/Hyena.Query/QueryNode.cs: Add GetTerms and GetFields
10939         convenience methods.
10941 2008-05-08  Gabriel Burt  <gabriel.burt@gmail.com>
10943         * src/Libraries/Hyena.Gui/Hyena.Widgets/SmoothScrolledWindow.cs: Increase
10944         both accel and decel, and fix bug where things would bounce back and
10945         forth, overshooting the target.
10947 2008-05-08  Gabriel Burt  <gabriel.burt@gmail.com>
10949         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs: Fix
10950         issue with parent source not getting expanded when it should.  MTP and
10951         iPod sources should autoexpand properly now.
10953 2008-05-08  Gabriel Burt  <gabriel.burt@gmail.com>
10955         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpSource.cs: Fix bug with
10956         updating/removing the album when removing a track.
10958 2008-05-08  Gabriel Burt  <gabriel.burt@gmail.com>
10960         * src/Libraries/Mtp/Mtp/MtpDevice.cs: Add mimetype for .m4a files.
10962 2008-05-08  Sebastian Dröge  <slomo@circular-chaos.org>
10964         * src/Libraries/Hyena.Gui/Makefile.am: Dist and install
10965         Hyena.Gui.dll.config.
10967 2008-05-07  Gabriel Burt  <gabriel.burt@gmail.com>
10969         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdService.cs: Add
10970         AutoRip and EjectAfterRipped schemas and preferences.  Fix the mnemonic
10971         for the profile chooser.
10973         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdSource.cs: If
10974         AutoRip is true, start ripping when the CD is loaded (assuming it's not
10975         already in the library).  When a CD is done importing, eject if 
10976         EjectAfterRipped is true.
10978         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdRipper.cs: Add a
10979         Finished event.
10981         * src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/WidgetFactory.cs:
10982         * src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/SectionBox.cs:
10983         * src/Core/Banshee.Services/Banshee.Preferences/Root.cs: Add a
10984         optional MnemonicWidget property.  If not set, returns the DisplayWidget,
10985         otherwise can be used to override the mnemonic widget.
10987         * src/Core/Banshee.ThickClient/Banshee.MediaProfiles.Gui/ProfileComboBoxConfigurable.cs:
10988         Always SetDescription, so even if a user doesn't yet have a preference,
10989         the description shows the currently selected option.
10991         * build/m4/banshee/dap-mtp.m4:
10992         * build/m4/banshee/dap-ipod.m4:
10993         * configure.ac: Make iPod and MTP support the default, such that if you
10994         don't have ipod-sharp or libmtp, you will get a configure error unless you
10995         pass --disable-ipod/mtp.  Should help clarify what we view a default
10996         Banshee install to include.
10998 2008-05-06  Aaron Bockover  <abock@gnome.org>
11000         Banshee 1.0 Beta 1 (0.99.1) Released
11002 2008-05-06  Aaron Bockover  <abock@gnome.org>
11004         * configure.ac:
11005         * src/Dap/Banshee.Dap.Ipod/Makefile.am:
11006         * src/Extensions/Banshee.BooScript/Makefile.am:
11007         * src/Extensions/Banshee.MiniMode/Makefile.am: Fixed last build issues
11009 2008-05-06  Gabriel Burt  <gabriel.burt@gmail.com>
11011         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
11012         Fix bug with play queue getting recreated each time.  Ugh.
11014 2008-05-06  Aaron Bockover  <abock@gnome.org>
11016         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapSource.cs:
11017         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastCore.cs:
11018         Build fixes
11020 2008-05-06  Gabriel Burt  <gabriel.burt@gmail.com>
11022         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/NotificationAreaService.cs:
11023         * src/Extensions/Banshee.NotificationArea/Resources/NotificationAreaMenu.xml:
11024         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml: Put
11025         the Next action above the Previous action.
11027 2008-05-06  Aaron Bockover  <abock@gnome.org>
11029         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs: Make the
11030         progress notification for iPod syncing much better
11032 2008-05-06  Gabriel Burt  <gabriel.burt@gmail.com>
11034         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
11035         Parse the .is_audio_player file, except not setting the output formats
11036         yet.  Install some dap properties.
11038         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Add DapProperties property
11039         that the Dap dialog shows.
11041         * src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapPropertiesDialog.cs: Show the
11042         DapProperties.
11044         * src/Backends/Banshee.Hal/Banshee.HalBackend/Device.cs: Cache the uuid.
11046         * src/Backends/Banshee.Hal/Banshee.HalBackend/Volume.cs: Catch property
11047         exception for volume that was suddenly removed.
11049 2008-05-06  Gabriel Burt  <gabriel.burt@gmail.com>
11051         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Fix a bug where we
11052         attempted to transcode video files.  We don't support that yet.
11054 2008-05-06  Gabriel Burt  <gabriel.burt@gmail.com>
11056         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
11057         Fix bug just introduced with mass storage support via .is_a_p files.
11059         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Get rid of silly non-DAP
11060         fallbacks for generic name and icons.
11062 2008-05-06  Gabriel Burt  <gabriel.burt@gmail.com>
11064         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
11065         Ignore iPods unless they have a .is_audio_player file.
11067         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs: Remove
11068         unnecessary override and OnTracksAdded call.
11070 2008-05-06  Aaron Bockover  <abock@gnome.org>
11072         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Revert CanPlay
11073         to not be smart with playback errors; it's probably best if the engine
11074         just be allowed to try whenever a track is requested to play
11076         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
11077         Consolidated Open and OpenPlay logic into a single method to eliminate
11078         duplication
11080         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs: Implemented
11081         track remove support
11083 2008-05-06  Gabriel Burt  <gabriel.burt@gmail.com>
11085         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
11086         Style.
11088         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Fix bug that caused mass
11089         storage DAPs to be ignored.
11091 2008-05-06  Gabriel Burt  <gabriel.burt@gmail.com>
11093         * src/Backends/Banshee.Hal/Banshee.HalBackend/Volume.cs: Catch exceptions
11094         while trying to identify a HAL device as a volume.  Should fix BGO
11095         #528481.
11097 2008-05-06  Gabriel Burt  <gabriel.burt@gmail.com>
11099         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationSource.cs:
11100         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSource.cs:
11101         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Make SetStatus and
11102         HideStatus methods public.
11104         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpSource.cs: Move loading of
11105         tracks into LoadFromDevice method.
11107         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Override SetStatus and
11108         HideStatus methods to set it on the parent source and all of our children.
11110 2008-05-06  Gabriel Burt  <gabriel.burt@gmail.com>
11112         * src/Dap/Banshee.Dap/Banshee.Dap/RemovableSource.cs: Don't delay add and
11113         delete user jobs, since removable devices are slow and we might as well
11114         show the progress bars asap.
11116         * src/Dap/Banshee.Dap/Banshee.Dap/DapService.cs: Make sure the device
11117         mapping doesn't happen on the main thread.  Aaron will love this.  MTP's
11118         DeviceInitialize method can be very slow (10+ seconds) and we definitely
11119         shouldn't block the ui for it.
11121         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Make sure
11122         adding files to a primary source happens not on the main thread.  Add
11123         protected properties for deciding whether to delay the add/delete jobs.
11125 2008-05-06  Gabriel Burt  <gabriel.burt@gmail.com>
11127         * src/Libraries/Mtp/Mtp/Album.cs: Be more careful with native code.
11129         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
11130         Avoid NRE.
11132 2008-05-05  Gabriel Burt  <gabriel.burt@gmail.com>
11134         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/AlbumSet.cs:
11135         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpDap.cs: Removed old files.
11137         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpSource.cs: Add and remove
11138         album art as needed when adding/removing files.
11140         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs:
11141         * src/Core/Banshee.Services/Banshee.Playlist/AbstractPlaylistSource.cs:
11142         Move DeleteSelectedTracks handler to Abstract class so is inherited by
11143         SmartPlaylistSource too.
11145         * src/Libraries/Mtp/Mtp/Album.cs: Add public GetById method.
11147         * src/Libraries/Mtp/Mtp/MtpDevice.cs: Add FileType to mimetype method.
11149 2008-05-05  Aaron Bockover  <abock@gnome.org>
11151         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs:
11152         Implement the new iPod syncing model - it's mostly done, but still some
11153         glitches that need to be addressed
11155         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodTrackInfo.cs: Implemented
11156         full two way copy of database tracks to iPod tracks and back again - 
11157         track media attributes are preserved in both directions, so this allows
11158         for video syncing - yes, I said video syncing. You can now use Banshee
11159         to manage videos on your iPod. Epic. Stop using iPods though, they suck.
11160         Buy an MTP device, save a seal, vote Obama.
11162         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView_DragAndDrop.cs:
11163         Removed the thread stuff which needs to be moved to DapSource (not done,
11164         so don't tell Gabe)
11166 2008-05-05  Gabriel Burt  <gabriel.burt@gmail.com>
11168         * src/Core/Banshee.Services/Banshee.Library/VideoLibrarySource.cs: Move
11169         favorites before unwatched.
11171         * src/Core/Banshee.Services/Banshee.Library/MusicLibrarySource.cs: Moved
11172         Unhear to defaults, and Unrated to predefined.  Added Recently Added.
11174         * NEWS: Some updates for the upcoming release.
11176 2008-05-05  Gabriel Burt  <gabriel.burt@gmail.com>
11178         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellPlaybackIndicator.cs:
11179         Be more defensive with checking for null/cast errors.
11181 2008-05-05  Gabriel Burt  <gabriel.burt@gmail.com>
11183         * src/Core/Banshee.Services/Banshee.Library/VideoLibrarySource.cs: Heh,
11184         whoops, unwatched should be plays=0 not plays=4.
11186 2008-05-05  Gabriel Burt  <gabriel.burt@gmail.com>
11188         * src/Core/Banshee.ThickClient/Banshee.Query.Gui/PlaylistQueryValueEntry.cs:
11189         * src/Core/Banshee.ThickClient/Banshee.Query.Gui/SmartPlaylistQueryValueEntry.cs:
11190         Better handle there not being any playlists or smart playlists.
11192         * src/Core/Banshee.ThickClient/Banshee.SmartPlaylist.Gui/Editor.cs: Fix
11193         loading a predefined playlist into the editor.
11195         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: If the user
11196         has no smart playlists and we've never done this before, create the
11197         default smart playlists for a primary source.
11199         * src/Core/Banshee.Services/Banshee.Library/VideoLibrarySource.cs: Define
11200         some default smart playlists.
11202         * src/Core/Banshee.Services/Banshee.Library/MusicLibrarySource.cs: Tweak a
11203         default smart playlist.
11205         * src/Libraries/Hyena.Gui/Hyena.Query.Gui/QueryTermBox.cs: Fix bug with
11206         not setting the value of the editor entry to the value of the saved smart
11207         playlist.
11209         * src/Libraries/Hyena.Gui/Hyena.Query.Gui/QueryTermsBox.cs: When setting
11210         the QueryNode condition tree, clear out any old conditions that may be
11211         in the editor already.
11213 2008-05-05  Aaron Bockover  <abock@gnome.org>
11215         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Moved the smart playlist
11216         purging to a separate method
11218         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Load
11219         the DbId when it is first requested
11221 2008-05-05  Gabriel Burt  <gabriel.burt@gmail.com>
11223         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs:
11225 2008-05-05  Gabriel Burt  <gabriel.burt@gmail.com>
11227         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSource.cs: Fix
11228         up disposing.
11230         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
11231         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: 
11232         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Get rid of
11233         IDisposable in DatabaseSource, reflect changes in subclasses.
11235         * src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs: When the
11236         SourceManager is being disposed, recursively dispose any extension
11237         sources.  Also dispose them when their extension goes away.  Do not
11238         dispose other sources; leave that to whoever created them.
11240         * src/Core/Banshee.Core/Banshee.Streaming/SaveTrackMetadataJob.cs: Remove
11241         WriteLines.
11243         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteCommand.cs: Add public
11244         static LogAll property that can be enabled/disabled at run time to turn on
11245         logging/timing for every single SQL command.
11247         * tests/ConsoleUi.cs: Modified to not use a separate test AppDomain,
11248         allowing us to fully load Banshee from within a unit test.
11250         * tests/Banshee.ThickClient/GuiTests.cs: Still commented out, some tweaks
11251         though.
11253         * tests/Makefile.am: Put the assemblies into DIR_BIN, and run from there;
11254         simplifies the MONO_PATH and mono.addins business when running tests.
11256         * tests/Banshee.Core/TaglibReadWriteTests.cs: Update paths.
11258         * tests/BansheeTests.cs: Tweaks to the StartBanshee stuff, not used yet.
11260 2008-05-05  Aaron Bockover  <abock@gnome.org>
11262         * src/Libraries/Hyena.Gui/Hyena.Widgets/SegmentedBar.cs: Added a 
11263         ShowReflection property to enable/disable the reflection
11265 2008-05-05  Aaron Bockover  <abock@gnome.org>
11267         * src/Libraries/Hyena.Gui/Hyena.Widgets/SegmentedBar.cs: Minor fixes
11269 2008-05-04  Aaron Bockover  <abock@gnome.org>
11271         * src/Libraries/Hyena.Gui/Hyena.Widgets/SegmentedBar.cs: Added a spin
11272         entry to change the height for testing; queue a resize when the bar
11273         height changes
11275 2008-05-04  Aaron Bockover  <abock@gnome.org>
11277         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/UserJobTile.cs: Only
11278         update the progress if it hasn't changed and if we're already pulsing
11279         and at 0
11281         * src/Core/Banshee.Services/Banshee.Collection/ImportManager.cs: Show
11282         the number of files walked while building the total count so it doesn't
11283         look like we might have frozen while walking a huge directory tree
11285         * src/Libraries/Hyena.Gui/Hyena.Gui/CairoExtensions.cs: Added some
11286         Rgb uint->cairo color utility functions, make ColorShade preserve alpha
11288         * src/Libraries/Hyena.Gui/Hyena.Widgets/SegmentedBar.cs: Started working
11289         on a hot disk usage bar for DAP; very incomplete - run 'make hg' to see
11291 2008-05-04  Aaron Bockover  <abock@gnome.org>
11293         * src/Core/Banshee.Services/Banshee.PlaybackController/PlaybackControllerService.cs:
11294         Added error handling so that no more than 20 attempts will be made to 
11295         play from the active source if those attempts result in an error
11297         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
11298         Bind to the PlaybackError property to the LastStreamError column so any
11299         errors (missing codec, resource not found, etc.) are persisted in the 
11300         database
11302         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
11303         Added a migration for adding the new LastStreamError column on CoreTracks
11305         * src/Core/Banshee.Services/Banshee.MediaEngine/NullPlayerEngine.cs:
11306         Updated to reflect API changes in the base class
11308         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEvent.cs: Added
11309         the loading state
11311         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngine.cs:
11312         Make Play/Pause abstract instead of virtual; do not set any event or
11313         state in Open and make the underlying engine responsible for these
11315         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
11316         Changed the definition of IsPlaying to mean the engine is in one of
11317         playing, paused, or loaded states
11319         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: made CanPlay
11320         return the set value and whether or not there is a playback error set
11322         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs:
11323         Set the engine states based on state transitions from GStreamer proper
11324         instead of synthesizing so many based on API
11326         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellPlaybackIndicator.cs:
11327         Indicate an error if one is set on the track
11329         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
11330         Updated to act on proper engine state
11332         * libbanshee/banshee-player.c:
11333         * libbanshee/banshee-player-pipeline.c:
11334         * libbanshee/banshee-player-missing-elements.c: Add some playbin checks
11335         to prevent warning messages from being spewed when playbin is torn down
11336         in some cases, particularly when there is a pipeline error
11338 2008-05-02  Gabriel Burt  <gabriel.burt@gmail.com>
11340         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Save the
11341         cached count after every reload.
11343 2008-05-02  Aaron Bockover  <abock@gnome.org>
11344         
11345         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
11346         Set the sensitive property on the cell context 
11348         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCellText.cs: Render 
11349         insensitive rows by changing the normal text color's alpha
11351         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/CellContext.cs: Added a 
11352         Sensitive property since Gtk.StateType sucks and we care to preserve
11353         the selection state for insensitive rows
11355 2008-05-02  Gabriel Burt  <gabriel.burt@gmail.com>
11357         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmActions.cs: Set
11358         Love/Hate as Important so text shows up; accidentally removed.
11360         * src/Core/Banshee.ThickClient/Banshee.SmartPlaylist.Gui/Editor.cs: Get
11361         the list of predefined smart playlists from the PrimarySource.  Show the
11362         SmartPlaylistDescription to make a prettier, more informative TreeView of
11363         predefined options.
11365         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Add
11366         Default/NonDefault/PredefinedSmartPlaylist properties.
11368         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs: Remove
11369         unnecessary ConfigurationClient.Initialize ().
11371         * src/Core/Banshee.Services/Banshee.Library/MusicLibrarySource.cs:
11372         Override the SmartPlaylist properties.
11374         * src/Core/Banshee.Services/Makefile.am:
11375         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistDefinition.cs:
11376         New struct that holds the definition of a smart playlist (and a
11377         description), and that has a method for producing a SmartPlaylistSource
11378         from itself.
11380         * src/Core/Banshee.Core/Banshee.Configuration/ConfigurationClient.cs: Do
11381         not require Initialization call, instead do it implicitly/lazily.
11383         * src/Core/Banshee.Core/Banshee.Base/Paths.cs: Use GetExecutingAsembly
11384         intead of GetEntryAssembly in attempt to get Nereid-within-unit-test
11385         working.
11387         * src/Libraries/Hyena/Hyena.CommandLine/CommandLineParser.cs: Allow
11388         programatically setting a command line option's value.
11390         * build/build.environment.mk: Add LINK/DEPS vars for Nereid so unit tests
11391         can link against it.
11393         * tests/Hyena/RangeCollectionTests.cs:
11394         * tests/Hyena/DbBoundType.cs:
11395         * tests/Hyena/SqliteModelProviderTests.cs:
11396         * tests/Hyena/CryptoUtilTests.cs:
11397         * tests/Hyena/SqliteCommandTests.cs:
11398         * tests/Hyena/StringUtilTests.cs:
11399         * tests/Banshee.Services/PlaylistFormatTests.cs:
11400         * tests/Banshee.Core/FileNamePatternTests.cs:
11401         * tests/Banshee.Core/KernelTests.cs:
11402         * tests/Hyena/SelectionTests.cs: Add copyright information.
11404         * tests/Hyena/QueryTests.cs: Subclass from BansheeTests, and move the
11405         AssertForEach to it.
11407         * tests/Hyena/BansheeTests.cs: New abstract class that provides
11408         AssertForEach method, and some new methods for progamatically starting
11409         Banshee (currently unused, not working).
11411         * tests/Banshee.ThickClient/GuiTests.cs: New class for testing starting
11412         banshee from unit test.  Currently commented out.
11414         * tests/Banshee.Services/SmartPlaylistTests.cs: New tests to ensure all
11415         predefined smart playlists can be created successfully.  Currently
11416         commented out.
11418         * tests/Makefile.am: Add new test classes.
11420         * tests/Banshee.Core/TaglibReadWriteTests.cs: Subclass from BansheeTests
11421         and move some static initialization there.
11423 2008-05-02  Gabriel Burt  <gabriel.burt@gmail.com>
11425         * src/Libraries/Hyena/Hyena.Query/QueryField.cs: Fix bug with queries on
11426         fields that have a custom 'column' (eg maybe they search two different
11427         columns at once, like MimeTypeField does) not having necessary parenthesis
11428         around them.
11430 2008-05-02  Aaron Bockover  <abock@gnome.org>
11432         * src/Libraries/Hyena.Gui/Hyena.Gui.Theming/GtkTheme.cs: Explicitly 
11433         destroy gradient patterns and tweak the selection gradient a bit
11435 2008-05-02  Aaron Bockover  <abock@gnome.org>
11437         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
11438         Use ColumnCellPositiveInt to show the year so 0 will show as empty
11440 2008-05-02  Aaron Bockover  <abock@gnome.org>
11442         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellAlbum.cs:
11443         Do all layout rendering directly to Cairo, not through GTK
11445 2008-05-02  Gabriel Burt  <gabriel.burt@gmail.com>
11447         * tests/Hyena/SqliteCommandTests.cs: Update to not use ApplyValues; fix
11448         the build.
11450 2008-05-02  Gabriel Burt  <gabriel.burt@gmail.com>
11452         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSource.cs: Set
11453         SourceManager.Dispose property to true so that the SourceManager knows to
11454         Dispose us, even though we're an extension source.
11456         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmActions.cs:
11457         Listen to the PlaybackController.SourceChanged event, and disable
11458         shuffle/repeat when switching to a StationSource, and restore when
11459         switching away and Disposing (so that the original state is not
11460         overwritten in gconf).  Fixes BGO #526033.
11462         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
11463         Fix silly bug that caused the playback source to switch to the Music
11464         Library erroneously.
11466         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
11467         Load the tracks in the LoadFromDevice method, and turn threading off on
11468         the importer since LoadFromDevice is already called from a thread.
11470         * src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs: Comment out
11471         ImportPlaylist stuff that's not done.
11473         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackShuffleActions.cs:
11474         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackRepeatActions.cs: Add
11475         Sensitive override that triggers the Changed event.
11477         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/RepeatActionButton.cs:
11478         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/NextButton.cs:
11479         Set the sensitivity of the button to the ActionGroup's sensitivity.
11481         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Fix bug
11482         where we had a SqliteModelProvider created for every DatabaseSource
11483         instead of sharing one.
11485         * src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs: Dispose
11486         extension sources that have the property SourceManager.Dispose == true.
11488         * tests/Hyena/QueryTests.cs: 
11489         * src/Libraries/Hyena/Hyena.Query/FileSizeQueryValue.cs:
11490         * src/Libraries/Hyena/Hyena.Query/TimeSpanQueryValue.cs:
11491         * src/Core/Banshee.Services/Banshee.Sources/DurationStatusFormatters.cs:
11492         * src/Libraries/Hyena/Hyena/StringUtil.cs:
11493         Renamed FormatDouble to DoubleToTenthsPrecision.  Also changed it to use
11494         Math.Round and fixed bug where 14.96 would show up as 15.0 instead of 15.
11495         Also changed it to use the N string formatter, which causes separators to
11496         be shown, eg 1,000
11498         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Remove
11499         superflous assignment. 
11501         * src/Core/Banshee.Services/Banshee.Collection/ImportManager.cs: Add a
11502         Threaded bool property, and if false don't use the ThreadPool.
11504         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
11505         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs:
11506         * src/Core/Banshee.Services/Banshee.Configuration/DatabaseConfigurationClient.cs:
11507         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs:
11508         Do not explicitly call ApplyValues, but pass the values in the Query or
11509         Execute method calls.
11511         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseImportManager.cs:
11512         Comment out use of transactions for now; were causing deadlock;
11514         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistFileUtil.cs: Comment
11515         out unfinished playlist import code.
11517         * tests/Hyena/StringUtilTests.cs: Add tests for DoubleToTenthsPrecision
11518         and DoubleToPluralInt methods.
11520         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteCommand.cs: Make
11521         ApplyValues an internal method, accessibly implicitly by passing params to
11522         the Query or Execute methods.
11524         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteConnection.cs: Lock the
11525         command before calling ApplyValues.  Comment out the transaction methods,
11526         since they can cause deadlock.
11528         * src/Libraries/Lastfm/Lastfm/AudioscrobblerConnection.cs: Better logging.
11530         * src/Libraries/Hyena.Gui/Hyena.Widgets/MenuButton.cs: Rename member,
11531         add protected Arrow and ToggleButton properties so that their sensitivity
11532         can be changed, etc.
11534 2008-05-02  Aaron Bockover  <abock@gnome.org>
11536         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
11537         New event system for raising handlers based on a desired event mask; 
11538         handler masks can be modified, handlers can be removed, and handlers
11539         can be prepended or appended to the event handler list
11541         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEvent.cs: New
11542         player event definitions and argument classes
11544         * src/Core/Banshee.Services/Banshee.MediaEngine/IPlayerEngineService.cs:
11545         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngine.cs:
11546         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs:
11547         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/GtkNotificationAreaBox.cs:
11548         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/NotificationAreaService.cs:
11549         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/INotificationAreaBox.cs:
11550         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/X11NotificationAreaBox.cs:
11551         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationSource.cs:
11552         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmActions.cs:
11553         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Audioscrobbler/AudioscrobblerService.cs:
11554         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/VideoDisplay.cs:
11555         * src/Extensions/Banshee.Bookmarks/Banshee.Bookmarks/BookmarksService.cs:
11556         * src/Extensions/Banshee.MiniMode/Banshee.MiniMode/MiniModeWindow.cs:
11557         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
11558         * src/Clients/Nereid/Nereid/PlayerInterface.cs:
11559         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
11560         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellPlaybackIndicator.cs:
11561         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/AlbumListView.cs:
11562         * src/Core/Banshee.ThickClient/Banshee.Gui/ViewActions.cs:
11563         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackActions.cs:
11564         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ConnectedSeekSlider.cs:
11565         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ConnectedVolumeButton.cs:
11566         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
11567         * src/Core/Banshee.Services/Banshee.PlaybackController/PlaybackControllerService.cs:
11568         Updated to use the new player events API
11570 2008-05-01  Gabriel Burt  <gabriel.burt@gmail.com>
11572         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtistListView.cs:
11573         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/AlbumListView.cs:
11574         * src/Extensions/Banshee.MiniMode/Banshee.MiniMode/SourceComboBox.cs:
11575         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs:
11576         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs:
11577         * src/Clients/Nereid/Nereid/PlayerInterface.cs:
11578         Use NextSource instead of Source.
11580         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue.mdp: Updated.
11582         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
11583         Change to the play queue on the next transition after adding items to it.
11584         Fixes BGO #524637.
11586         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackActions.cs: Clean up method.
11588         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Override ToString = Name
11590         * src/Core/Banshee.Services/Banshee.PlaybackController/PlaybackControllerService.cs:
11591         Add NextSource property, which you can set to change the source on the
11592         next transition.
11594         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
11595         Add IsPlaying () convenience method.
11597 2008-05-01  Gabriel Burt  <gabriel.burt@gmail.com>
11599         * src/Libraries/Migo/*: Move some files up into their namespace folder.
11601 2008-05-01  Gabriel Burt  <gabriel.burt@gmail.com>
11603         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellDuration.cs:
11604         Fancy rounding commented out since it's not consistent with what is done
11605         in libbanshee.  Fixes BGO #520648.
11607 2008-05-01  Gabriel Burt  <gabriel.burt@gmail.com>
11609         * build/m4/banshee/dap-mtp.m4:
11610         * configure.ac: Enable MTP support by default (if libmtp is available).
11612 2008-05-01  Gabriel Burt  <gabriel.burt@gmail.com>
11614         * build/build.environment.mk:
11615         * configure.ac:
11616         * src/Extensions/Banshee.MiniMode/Banshee.MiniMode.addin.xml:
11617         * src/Extensions/Banshee.MiniMode/Banshee.MiniMode.mdp:
11618         * src/Extensions/Banshee.MiniMode/Banshee.MiniMode/MiniModeService.cs:
11619         * src/Extensions/Banshee.MiniMode/Banshee.MiniMode/MiniModeWindow.cs:
11620         * src/Extensions/Banshee.MiniMode/Banshee.MiniMode/SourceComboBox.cs:
11621         * src/Extensions/Banshee.MiniMode/Banshee.MiniMode/SourceModel.cs:
11622         * src/Extensions/Banshee.MiniMode/Makefile.am:
11623         * src/Extensions/Banshee.MiniMode/Resources/minimode.glade:
11624         * src/Extensions/Extensions.mds:
11625         * src/Extensions/Makefile.am: Patch from Bertrand Lorentz porting mini
11626         mode from stable, fixes BGO #527412.  The extension is built by default,
11627         but must be enabled in the Preferences dialog.
11629 2008-04-30  Aaron Bockover  <abock@gnome.org>
11631         * build/m4/banshee/boo.m4: Require Boo 0.8.1
11633         * src/Extensions/Banshee.BooScript/Makefile.am: Do not try to build if
11634         we don't actually have the Boo requirement met
11636         * src/Extensions/Banshee.BooScript/Resources/duration-status-formats.boo:
11637         Fixed header
11639 2008-04-30  Aaron Bockover  <abock@gnome.org>
11641         * build/build.environment.mk:
11642         * build/m4/banshee/boo.m4:
11643         * configure.ac: Build stuff for the BooScript extension
11645         * src/Core/Banshee.Core/Banshee.Base/Paths.cs: Added GetTempFileName
11647         * src/Core/Banshee.Services/Banshee.MediaEngine/TranscoderService.cs:
11648         Use the new Paths.GetTempFileName
11650         * src/Core/Banshee.Services/Banshee.Sources/DurationStatusFormatters.cs:
11651         Created a new collection that holds formatter handlers and add our 
11652         default formatters; this allows scripts and extensions can add their own
11654         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Move the default
11655         duration formatters into DurationStatusFormatters and create a static
11656         instance of that collection to use for sources
11658         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodTrackInfo.cs:
11659         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs: Small progress
11660         on syncing, not much
11662         * src/Libraries/Hyena/Hyena.CommandLine/CommandLineParser.cs: Require
11663         arguments taking value to have the --arg=value form on the command line
11664         and treat all non -- starting arguments as 'files'
11666         * src/Extensions/Banshee.BooScript/Banshee.BooScript.addin.xml:
11667         * src/Extensions/Banshee.BooScript/Banshee.BooScript/BooScriptService.cs:
11668         Ported the Boo scripting support from old Banshee
11670         * src/Extensions/Banshee.BooScript/Resources/duration-status-formats.boo:
11671         * src/Extensions/Banshee.BooScript/Resources/filename-transform.boo:
11672         The first two Boo scripts that work on the new Banshee
11674 2008-04-30  Gabriel Burt  <gabriel.burt@gmail.com>
11676         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Reload the music and video
11677         child sources after creating them, since Reloads don't happen
11678         automatically any more.
11680 2008-04-30  Gabriel Burt  <gabriel.burt@gmail.com>
11682         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
11683         Don't begin/commit a transaction or run InnerMigrate if the version is
11684         current.  Use Hyena.Log instead of WriteLines.
11686         * src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs: Got rid
11687         of unnecessary if.
11689         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs: Add
11690         better logging for when a required service fails to start.
11692         * src/Core/Banshee.Services/Banshee.SmartPlaylist/Migrator.cs:
11694         * src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs: Dispose all
11695         non-extension sources and their children, but don't dispose extension
11696         sources.
11698         * src/Extensions/Banshee.PlayQueue/Makefile.am:
11699         * src/Extensions/Banshee.PlayQueue/Resources/Banshee.PlayQueue.addin.xml:
11700         Move addin.xml file up from Resources
11702         * src/Libraries/Hyena/Hyena/Log.cs: Make showUser default to false
11703         everywhere.
11705         * src/Libraries/Lastfm/Lastfm/AudioscrobblerConnection.cs:
11706         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpSource.cs:
11707         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtworkManager.cs:
11708         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs:
11709         * src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs:
11710         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
11711         Explicitly set showUser = true.
11713 2008-04-30  Gabriel Burt  <gabriel.burt@gmail.com>
11715         * src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs: Add a
11716         ClientStarted event, which is raised for clients that are already started
11717         and for new ones.
11719         * src/Core/Banshee.Services/Banshee.ServiceStack/Client.cs: Add a
11720         IsStarted property, and change the Started event to use a Action<> handler.
11722         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
11723         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs: Use
11724         new Application.ClientStarted event, and handle in method, not anonymous
11725         delegate.
11727 2008-04-29  Gabriel Burt  <gabriel.burt@gmail.com>
11729         * src/Backends/Banshee.Unix/Banshee.IO.Unix/Directory.cs: Comment style.
11731         * src/Core/Banshee.Services/Banshee.ServiceStack/Client.cs:
11732         * src/Clients/Nereid/Nereid/Client.cs: Use Log.InformationFormat instead of
11733         Log.Information (String.Format
11735         * src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs: Add a
11736         log statement.
11738         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
11739         Get rid of unnecessary thread, and move reload all from anonymous delegate
11740         to private method.
11742         * src/Core/Banshee.Services/Banshee.Sources/Source.cs:
11743         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs:
11744         * src/Dap/Banshee.Dap/Banshee.Dap/DapService.cs: Make OnUserNotifyUpdated
11745         protected and add public NotifyUser method.
11747 2008-04-29  Gabriel Burt  <gabriel.burt@gmail.com>
11749         Prior to this commit, all sources (playlists, etc) were reloaded on
11750         startup, meaning startup got slower and slower the more playlists you had.
11751         This is no longer the case, playlists are reloaded the first time you
11752         activate (select) them.
11754         * src/Clients/Nereid/Nereid/Client.cs: Add information line at start of
11755         Main, useful to get more accurate startup timing.
11757         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
11758         Add columns for SavedCount to CorePrimarySources etc.  Trigger all the
11759         sources to reload when the client is started up, just one more time, to
11760         bootstrap the SavedCount.
11762         * src/Core/Banshee.Services/Banshee.ServiceStack/Client.cs: Log when the
11763         client has fully started up.
11765         * src/Core/Banshee.Services/Banshee.Playlist/AbstractPlaylistSource.cs:
11766         Save is now an override, and got rid of NotifyUpdated since not needed now
11767         that Source.OnUserNotifyUpdated is public.
11769         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs:
11770         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs:
11771         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
11772         Load and save SavedCount.
11774         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Add a
11775         SavedCount protected property, used to be able to show a count in the
11776         source list on startup without having to query every soure. Implement
11777         IDisposable, and Save the source when disposed.  Also, implement default
11778         Activate method that checks if the source has been reloaded this session,
11779         and reloads it if not.
11781         * src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs: Make sure
11782         all sources are Disposed (if : IDisposable) when removed, including child
11783         sources.
11785         * src/Core/Banshee.Services/Banshee.Sources/Source.cs:
11786         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs: Make
11787         OnUserNotifyUpdated method public, and use it in SourceActions.
11789         * src/Dap/Banshee.Dap/Banshee.Dap/DapService.cs: Call OnUserNotifyUpdated
11790         on new DapSources so they pulse in the source list.
11792         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
11793         Chain Dispose calls.
11795 2008-04-29  Aaron Bockover  <abock@gnome.org>
11797         * src/Libraries/Hyena.Gui/Hyena.Widgets/AnimatedImage.cs: Do not chain
11798         SizeAllocated if the allocation doesn't actuall change - not sure why
11799         GtkImage raises this when the image changes even if the dimensions are 
11800         the same. Lame.
11802 2008-04-29  Gabriel Burt  <gabriel.burt@gmail.com>
11804         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs:
11805         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
11806         Get media capabilities from the volume's parent (the block device).
11808 2008-04-29  Gabriel Burt  <gabriel.burt@gmail.com>
11810         * src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs: Add
11811         ClientAdded event.
11813         * src/Core/Banshee.Services/Makefile.am:
11814         * src/Core/Banshee.Services/Banshee.ServiceStack/IDelayedInitializeService.cs:
11815         New interface for services that shouldn't be started until there is at
11816         least one Client that has started.  In practice, means DapService doesn't
11817         scan and load DAPs until after the GTK client is fully loaded.
11819         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs: When
11820         at least one client is started, call DelayedInitialize on
11821         IDelayedInitializeServices.
11823         * src/Core/Banshee.Services/Banshee.ServiceStack/Client.cs:
11824         * src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs: Add Started
11825         event and call it when appropriate.
11827         * src/Dap/Banshee.Dap/Banshee.Dap/DapService.cs: Implement
11828         IDelayedInitializeService.
11830         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ConnectedMessageBar.cs:
11831         Remove bandaid fix for AnimatedImage since abock has committed the real
11832         fix.
11834         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpSource.cs: Remove self from
11835         SourceManager within Dispose, so MTP source actually disappears when
11836         ejected.
11838 2008-04-29  Aaron Bockover  <abock@gnome.org>
11840         * src/Libraries/Hyena.Gui/Hyena.Widgets/AnimatedImage.cs: When hidden,
11841         preserve the active state and pause the stage to prevent iterations and
11842         restore the active state/resume the stage (if active); the more correct
11843         fix for the cause of BGO #523646.
11845         * src/Libraries/Hyena.Gui/Hyena.Widgets/MessageBar.cs: Explicitly show/hide
11846         the animated image when the bar show/hides
11848 2008-04-29  Gabriel Burt  <gabriel.burt@gmail.com>
11850         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Be more careful
11851         with unregistering handlers to status message events.
11853         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ConnectedMessageBar.cs:
11854         Fix memory leak/cpu usage seen after selecting a Last.fm source, caused by
11855         AnimatedImage's stage continuing to play after the status message should
11856         have been hidden/removed.  Its still strange that while the AnimatedImage
11857         is shown/animating it triggers so many ExposeEvents on the ListView, but
11858         at least they stop once the status message goes away.  Fixes BGO #523646.
11860         * src/Libraries/Lastfm/Lastfm/AudioscrobblerConnection.cs: Explicitly mark
11861         private members as private.
11863 2008-04-29  Gabriel Burt  <gabriel.burt@gmail.com>
11865         * tests/Hyena/DbBoundType.cs: Fix build.
11867 2008-04-28  Gabriel Burt  <gabriel.burt@gmail.com>
11869         * src/Core/Banshee.ThickClient/Banshee.Gui/InterfaceActionService.cs: Add
11870         RemoveActionGroup convenience override.
11872         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmActions.cs:
11873         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSource.cs: Make
11874         sure to dispose actions when the extension is disposed, fixing crasher
11875         when you tried to disable/reenable the extension.
11877 2008-04-28  Gabriel Burt  <gabriel.burt@gmail.com>
11879         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationEditor.cs:
11880         * src/Extensions/Banshee.Lastfm/Resources/lastfm.glade: Remove name entry
11881         from Last.fm dialog.
11883 2008-04-28  Gabriel Burt  <gabriel.burt@gmail.com>
11885         * src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs:
11886         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
11887         * src/Libraries/Hyena/Hyena.Query/QueryOrder.cs: Implement smart
11888         playlists limited by file size and duration.  Fixes BGO #522889.
11890 2008-04-28  Gabriel Burt  <gabriel.burt@gmail.com>
11892         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
11893         Fix bug with incrementing skip count instead of play count when a song
11894         ended and the next one began (behavior was correct if the song hadn't
11895         ended and the user manually pressed next.)  Fixes BGO #527879.
11897 2008-04-28  Gabriel Burt  <gabriel.burt@gmail.com>
11899         WARNING: This commit is a first pass at reworking some of the Podcast/Migo
11900         internals to use Hyena and be more consistent with Banshee's style.  It
11901         severely breaks the podcast extension for the time being, so unless you
11902         are working with Mike and me to fix it, you should not build or run it.
11904         * build/build.environment.mk: Link Migo against Hyena.
11906         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumInfo.cs:
11907         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistInfo.cs:
11908         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
11909         Update to new Load method (w/o superflous int arg).
11911         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
11912         Fix DatabaseColumn attributes to be on properties, not private members.
11914         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs:
11915         Use new IDatabaseTrackModel[Provider|Cache] interfaces to allow this class
11916         to handle DatabaseTrackInfo subclasses (eg to handle PodcastInfo objects).
11918         * src/Core/Banshee.Services/Banshee.Playlist/AbstractPlaylistSource.cs:
11919         Override AfterInitialized method, moving quite a bit of track model
11920         property setting there.
11922         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs:
11923         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs:
11924         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
11925         Change static LoadAll method to take a primary source id, so that as
11926         primary sources are loaded, they fetch/load only their playlists.
11928         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Add virtual
11929         HasArtistAlbum property so sources can avoid instantiating the
11930         Artist/Album models at all if they don't use them.
11932         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Check the
11933         artist/album models aren't null before using them.
11935         * src/Core/Banshee.Services/Makefile.am:
11936         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackModelCache.cs:
11937         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackModelProvider.cs:
11938         * src/Core/Banshee.Services/Banshee.Collection.Database/IDatabaseTrackModelCache.cs:
11939         * src/Core/Banshee.Services/Banshee.Collection.Database/IDatabaseTrackModelProvider.cs:
11940         New interfaces/classes to enable DatabaseTrackInfo subclasses to be
11941         used/loaded by DatabaseTrackListModel and therefore any DatabaseSource
11942         subclass.
11944         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
11945         Override HasArtistAlbum to false.
11947         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastItem.cs:
11948         Migo's FeedItem class is backed by a database table (PodcastItems), so
11949         the idea is intead of having another table for Banshee specific podcast item
11950         information, push as much as possible into Migo, and have PodcastItem
11951         actually subclass from DatabaseTrackInfo, and pull in information from the
11952         Migo tables as necessary (using VirtualDatabaseColumn attributes).
11954         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastFeed.cs:
11955         Deleted, since we just use the Migo table/Feed class now.
11956         
11957         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Dialog/PodcastFeedPropertiesDialog.cs:
11958         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Dialog/PodcastPropertiesDialog.cs:
11959         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Dialog/PodcastSubscribeDialog.cs:
11960         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Dialog/SyncPreferenceComboBox.cs:
11961         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Source/ColumnCells/FeedActivityColumnCell.cs:
11962         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Source/Models/PodcastFeedModel.cs:
11963         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Source/PodcastSourceContents.cs:
11964         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Source/Views/PodcastFeedView.cs:
11965         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Source/Views/PodcastItemView.cs:
11966         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastCore.cs:
11967         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastCore_Interface.cs:
11968         Many HACKING fixes, quite a lot of work to do still.
11970         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Source/Models/PodcastItemModel.cs:
11971         Remove the custom model since we use a DatabaseTrackListModel now.
11973         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Source/PodcastSource.cs:
11974         Change to subclass from PrimarySource.
11976         * src/Libraries/Hyena/Hyena.Data.Sqlite/DatabaseColumn.cs: Fix bug in
11977         exception logging.
11979         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs: Use
11980         Action<IDataReader> instead of custom delegate type for AggregatesUpdated
11981         event.
11983         * src/Core/Banshee.Services/Banshee.Database/BansheeModelProvider.cs:
11984         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs: Make not
11985         abstract, taking default properties and empty virtual methods from
11986         BansheeModelProvider.  Remove unused int arg in Load method.  Add
11987         FetchAllMatching, FetchFirstMatching, FetchSingle (id), and Delete
11988         methods.
11990         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteCommand.cs:
11991         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteUtils.cs: Handle bools.
11993         * src/Libraries/Migo/Makefile.am:
11994         * src/Libraries/Migo/Migo.mdp: Several files removed, a few added.
11996         * src/Libraries/Migo/Migo/Migo.Syndication/EventArgs/FeedDownloadCompletedEventArgs.cs:
11997         * src/Libraries/Migo/Migo/Migo.Syndication/EventArgs/FeedDownloadCountChangedEventArgs.cs:
11998         * src/Libraries/Migo/Migo/Migo.Syndication/EventArgs/FeedEventArgs.cs:
11999         * src/Libraries/Migo/Migo/Migo.Syndication/EventArgs/FeedItemCountChangedEventArgs.cs:
12000         * src/Libraries/Migo/Migo/Migo.Syndication/EventArgs/FeedItemEventArgs.cs:
12001         Renamed to follow HACKING.
12003         * src/Libraries/Migo/Migo/Migo.Syndication/Feed.cs:
12004         * src/Libraries/Migo/Migo/Migo.Syndication/FeedEnclosure.cs:
12005         * src/Libraries/Migo/Migo/Migo.Syndication/FeedItem.cs:
12006         * src/Libraries/Migo/Migo/Migo.Syndication/FeedUpdateTask.cs:
12007         * src/Libraries/Migo/Migo/Migo.Syndication/FeedsManager.cs: Many updates,
12008         including HACKING fixes, trying to get rid of unnecessary dictionaries
12009         etc.  There are some commented out pieces of code in this commit that have
12010         broken podcasts temporarily until they are 'ported'.  For the
12011         database-backed classes (Feed, FeedItem, and FeedEnclosure) use
12012         Hyena.Data.Sqlite [DatabaseColumn] attributes to flag db-backed
12013         properties.
12015         * src/Libraries/Migo/Migo/Migo.Syndication/IFeed.cs:
12016         * src/Libraries/Migo/Migo/Migo.Syndication/IFeedEnclosure.cs:
12017         * src/Libraries/Migo/Migo/Migo.Syndication/IFeedItem.cs:
12018         * src/Libraries/Migo/Migo/Migo.Syndication/IFeedsManager.cs: Deleted.
12020         * src/Libraries/Migo/Migo/Migo.Syndication/Migo.Syndication.Data/TablesManagers/EnclosuresTableManager.cs:
12021         * src/Libraries/Migo/Migo/Migo.Syndication/Migo.Syndication.Data/TablesManagers/FeedsTableManager.cs:
12022         * src/Libraries/Migo/Migo/Migo.Syndication/Migo.Syndication.Data/TablesManagers/ItemsTableManager.cs:
12023         * src/Libraries/Migo/Migo/Migo.Syndication/Migo.Syndication.Data/Utilities/DataUtility.cs:
12024         * src/Libraries/Migo/Migo/Migo.Syndication/Migo.Syndication.Data/Utilities/DatabaseManager.cs:
12025         * src/Libraries/Migo/Migo/Migo.Syndication/Migo.Syndication.Data/Utilities/DbDefines.cs:
12026         * src/Libraries/Migo/Migo/Migo.Syndication/Migo.Syndication.Data/Utilities/QueuedDbCommand.cs:
12027         * src/Libraries/Migo/Migo/Migo.Syndication/Migo.Syndication.Data/Utilities/SQLiteUtility.cs:
12028         Deleted; Migo uses Hyena.Data.Sqlite now for db related functionality.
12030         * src/Libraries/Migo/Migo/Migo.Syndication/Migo.Syndication.Data/Wrappers/Db/DataWrapper.cs:
12031         * src/Libraries/Migo/Migo/Migo.Syndication/Migo.Syndication.Data/Wrappers/Db/FeedDataWrapper.cs:
12032         * src/Libraries/Migo/Migo/Migo.Syndication/Migo.Syndication.Data/Wrappers/Db/FeedEnclosureDataWrapper.cs:
12033         * src/Libraries/Migo/Migo/Migo.Syndication/Migo.Syndication.Data/Wrappers/Db/FeedItemDataWrapper.cs:
12034         * src/Libraries/Migo/Migo/Migo.Syndication/Migo.Syndication.Data/Wrappers/IFeedEnclosureWrapper.cs:
12035         * src/Libraries/Migo/Migo/Migo.Syndication/Migo.Syndication.Data/Wrappers/IFeedItemWrapper.cs:
12036         * src/Libraries/Migo/Migo/Migo.Syndication/Migo.Syndication.Data/Wrappers/IFeedWrapper.cs: 
12037         * src/Libraries/Migo/Migo/Migo.Syndication/Migo.Syndication.Data/Wrappers/Rss/RssFeedEnclosureWrapper.cs:
12038         * src/Libraries/Migo/Migo/Migo.Syndication/Migo.Syndication.Data/Wrappers/Rss/RssFeedItemWrapper.cs:
12039         * src/Libraries/Migo/Migo/Migo.Syndication/Migo.Syndication.Data/Wrappers/Rss/RssFeedWrapper.cs:
12040         Deleted; Wrapper concept had a lot of redundancy in property definitions
12041         etc.  The Db wrappers are unnecessary since Hyena.Data.Sqlite uses
12042         reflection to instantiate objects/set properties.
12044         * src/Libraries/Migo/Migo/Migo.Syndication/Migo.Syndication.Data/RssParser.cs:
12045         New class largley taken from the Rss*Wrapper classes.
12047         * tests/Hyena/SqliteCommandTests.cs: Test SQLification of bools.
12049 2008-04-28  Aaron Bockover  <abock@gnome.org>
12051         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
12052         Make ConditionSql virtual and add a protected setter; make CanUnmap virtual
12054         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Add Music and Video 
12055         group sources; delete all smart playlists and entires associated with
12056         the primary source when starting and disposing
12058         * src/Dap/Banshee.Dap/Banshee.Dap/MediaGroupSource.cs: Base source for
12059         media groups, extends SmartPlaylistSource
12061         * src/Dap/Banshee.Dap/Banshee.Dap/MusicGroupSource.cs:
12062         * src/Dap/Banshee.Dap/Banshee.Dap/VideoGroupSource.cs: A source to show
12063         all music on the device and one for all video
12065         * src/Dap/Banshee.Dap/Banshee.Dap/RemovableSource.cs: Do not implement
12066         IDiskUsageReporter - MediaGroupSource does this now
12068         * src/Libraries/Hyena.Gui/Hyena.Gui/TestModuleAttribute.cs: Attribute
12069         for flagging UI test modules
12071         * src/Libraries/Hyena.Gui/Hyena.Gui/TestModuleRunner.cs: Show a list
12072         of UI test modules and run them when activated
12074         * src/Libraries/Hyena.Gui/Hyena.Query.Gui/QueryDebugger.cs: A UI test 
12075         module for playing with the query parser
12077 2008-04-26  Aaron Bockover  <abock@gnome.org>
12079         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs: Do not try
12080         to read the name from the iTunesDB until after we have finished loading
12081         that database
12083 2008-04-26  Aaron Bockover  <abock@gnome.org>
12085         * src/Core/Banshee.Services/Banshee.Hardware/HardwareManager.cs:
12086         Support runtime loading/unloading of hardware provider extensions
12088         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/PodSleuthDeviceProvider.cs:
12089         * src/Core/Banshee.Services/Banshee.Hardware/ICustomDeviceProvider.cs:
12090         Implement IDisposable
12092         * src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs:
12093         Support runtime loading/unloading of extension sources
12095         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod.addin.xml: Order the 
12096         hardware provider for podsleuth first in the extension list just in case
12098 2008-04-25  Aaron Bockover  <abock@gnome.org>
12100         * src/Core/Banshee.Services/Banshee.ServiceStack/IExtensionService.cs:
12101         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/Service.cs: Require
12102         all extension services to implement IDisposable
12104         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:
12105         Listen to the addin manager for when service extensions are enabled or
12106         disabled and enable/disable accordingly; this allows all service extensions
12107         to now be enabled or disabled at runtime
12109         * src/Core/Banshee.ThickClient/Banshee.Gui/BansheeActionGroup.cs:
12110         Added an override for removing an action by name
12112         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdService.cs:
12113         Moved the UI actions from the source to the service since all of the
12114         UI here is global; fixes issue where there were UI conflicts with multiple
12115         CDs and also helps with the runtime enable/disable of the service
12117         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdSource.cs: 
12118         Reflect said changes above
12120         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/NotificationAreaService.cs:
12121         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/X11NotificationAreaBox.cs:
12122         Many fixes for runtime enable/disable
12124 2008-04-25  Aaron Bockover  <abock@gnome.org>
12126         This commit hopefully addresses remaining hardware and threading issues
12127         with DAP support and fixes the Mono.Addins dependency issue that people
12128         have been complaining about for the last couple of days
12130         * src/Backends/Banshee.Hal/Banshee.HalBackend/Volume.cs: Cache the uuid
12131         of the volume once it's been resolved so the device doesn't have to
12132         be queried for it again, which is problematic if the device is removed
12133         forcefully
12135         * src/Core/Banshee.Services/Banshee.Hardware/HardwareManager.cs:
12136         Listen directly on the inner manager for device added/removed and 
12137         raise those events from within the service scope, performing the 
12138         cast to custom device in the device added event
12140         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs: Defer the
12141         loading of the database to the LoadFromDevice threaded call so startup
12142         is faster; implement eject
12144         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/PodSleuthDeviceProvider.cs:
12145         Allow the provider to adapt the PodSleuthDevice to either the top level
12146         iPod storage device or the actual iPod data volume so iPod support works
12147         when an iPod is plugged in while Banshee was already running
12149         * src/Dap/Banshee.Dap/Banshee.Dap/DapService.cs: Reworked the DapSource
12150         instantiation to deal with older Mono.Addins; fully dispose and unmap
12151         any devices bound to a DAP provider extension if that extension is
12152         removed at runtime; fully tear down the top level DAP service if it
12153         is disposed, so DAP support can be fully disabled at runtime as well
12155         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Replaced the IDevice
12156         ctor with a virtual DeviceInitialized method to cope with older
12157         Mono.Addins - this should fix the problem people have been complaining
12158         about for 2 days; store the addin ID on the source as well for 
12159         unmapping in the service
12161         * src/Dap/Banshee.Dap/Banshee.Dap/RemovableSource.cs: Removed bad
12162         threading decisions, race issues, and excessive dispose calls; it is
12163         up to the device implementation to call dispose as needed inside eject
12165         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
12166         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpSource.cs: Updated to reflect
12167         minor DapSource API changes due to Mono.Addins
12169         * src/Libraries/Hyena/Hyena/Log.cs: Walk the exception chain to generate
12170         a full stack trace printout 
12172 2008-04-24  Aaron Bockover  <abock@gnome.org>
12174         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Added
12175         a PurgeTracks method that will nuke all entries in CoreTracks with
12176         a matching primary source ID
12178         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs: Read the
12179         track database from the iPod
12181         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodTrackInfo.cs: Map the
12182         iPod tracks to Banshee database tracks
12184         * src/Dap/Banshee.Dap/Banshee.Dap/DapService.cs: Call LoadDeviceContents
12185         after creating a DapSource
12187         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Added LoadDeviceContents
12188         and a virtual LoadFromDevice method; LoadFromDevice should be implemented
12189         by DapSources and will run async - currently only used by IpodSource
12191 2008-04-24  Aaron Bockover  <abock@gnome.org>
12193         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs: Some more 
12194         cleanup, organizing, and implemeneted icon name support
12196         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Whitespace
12198 2008-04-24  Aaron Bockover  <abock@gnome.org>
12200         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs:
12201         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpSource.cs:
12202         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
12203         Updated to the new DapSource API
12205         * src/Dap/Banshee.Dap/Banshee.Dap/DapService.cs: Uses the new enforced
12206         IDevice ctor that DapSources must have to create the device, if 
12207         InvalidDeviceException is thrown, the source is discarded
12209         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Lots of refactoring and
12210         cleaning; get rid of Resovle and Initialize (IDevice) and rolled all
12211         that into the ctor; better error messages, more result checking, easier
12212         to read code
12214         * src/Dap/Banshee.Dap/Banshee.Dap/InvalidDeviceException.cs: New exception
12215         that DapSource implementors must throw in the ctor if they can't support
12216         the device being passed to them
12218         * src/Libraries/Hyena/Hyena/Log.cs: Log exceptions through Log.Warning
12219         and added an override to provide a message with the exception
12221 2008-04-24  Gabriel Burt  <gabriel.burt@gmail.com>
12223         * src/Dap/Banshee.Dap.Ipod/Makefile.am: Disable ipod build unless
12224         ENABLE_IPOD set.
12226 2008-04-24  Gabriel Burt  <gabriel.burt@gmail.com>
12228         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackActions.cs: Fix bug
12229         with seek and jump-to-playing not being sensitive when they should be.
12230         Fixes BGO #528198.
12232 2008-04-24  Aaron Bockover  <abock@gnome.org>
12234         * build/build.environment.mk:
12235         * build/build.rules.mk:
12236         * build/m4/banshee/dap-ipod.m4:
12237         * configure.ac: Build foo for iPod support
12239         * src/Backends/Banshee.Hal/Banshee.HalBackend/BlockDevice.cs: Do not
12240         check if info.category is storage since the capability query for block
12241         will validate the device, and info.category may not be storage for all
12242         storage devices (it could be portable_audio_player)
12244         * src/Core/Banshee.Services/Banshee.Hardware/IDevice.cs:
12245         * src/Backends/Banshee.Hal/Banshee.HalBackend/Device.cs: Added HAL 
12246         method wrappers for properties that should only be used with extreme care;
12247         probably need to enforce how these are used. They're really just for
12248         proxying custom properties from custom IDevices; I'm not totally happy
12249         with this
12251         * src/Dap/Banshee.Dap/Banshee.Dap/DapService.cs:
12252         * src/Backends/Banshee.Hal/Banshee.HalBackend/Volume.cs:
12253         * src/Backends/Banshee.Hal/Banshee.HalBackend/HardwareManager.cs: Some
12254         cleanups, notes
12256         * src/Core/Banshee.Services/Banshee.Services.addin.xml:
12257         * src/Core/Banshee.Services/Banshee.Hardware/HardwareManager.cs:
12258         Implemented the ICustomDeviceProvider extension, pass all IDevice queries
12259         through the custom device providers to allow them to transform/replace
12260         a device with some custom device
12262         * src/Core/Banshee.Services/Banshee.Hardware/ICustomDeviceProvider.cs:
12263         The new interface for custom device providers
12265         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod.addin.xml: iPod extension def
12267         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs: The beginning
12268         of the iPod DAP support; doesn't do anything yet
12270         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/PodSleuthDevice.cs: A device
12271         that translates PodSleuth properties to the iPod device from ipod-sharp
12273         * src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/PodSleuthDeviceProvider.cs:
12274         Custom device provider for taking an iPod storage device and transforming
12275         its iPod volume into a PodSleuthDevice
12277 2008-04-23  Gabriel Burt  <gabriel.burt@gmail.com>
12279         * src/Libraries/Lastfm.Gui/Lastfm.Gui/AccountLoginDialog.cs: Fix bug with
12280         not saving the account info when the user clicked (vs pressing space or
12281         enter) the save button.
12283 2008-04-23  Scott Peterson <lunchtimemama@gmail.com> 
12285         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/UserJobTileHost.cs:
12286         Use new StartPadding.
12288         * src/Libraries/Hyena.Gui/Hyena.Widgets/AnimatedBox.cs: Added
12289         StartPadding and EndPadding properties.
12291 2008-04-23  Gabriel Burt  <gabriel.burt@gmail.com>
12293         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpSource.cs: Be more careful
12294         when Disposing.
12296 2008-04-23  Gabriel Burt  <gabriel.burt@gmail.com>
12298         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Handle the situation of
12299         the user not having any encoders and trying to transfer an unsupported
12300         file type.
12302 2008-04-23  Aaron Bockover  <abock@gnome.org>
12304         * src/Core/Banshee.ThickClient/Banshee.Addins.Gui/AddinDetailsDialog.cs:
12305         * src/Core/Banshee.ThickClient/Banshee.Addins.Gui/AddinTile.cs:
12306         * src/Core/Banshee.ThickClient/Banshee.Addins.Gui/AddinView.cs: Moved
12307         these widgets into their own proper namespace
12309         * src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/DefaultPreferenceWidgets.cs:
12310         Changed to reflect said move
12312 2008-04-23  Aaron Bockover  <abock@gnome.org>
12314         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/BansheeDialog.cs:
12315         Allow setting the parent/transient for window
12317         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/AddinDetailsDialog.cs:
12318         Added a simple details dialog for an addin
12320         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/AddinView.cs:
12321         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/AddinTile.cs:
12322         Better tile UI and added enable/disable and details buttons to the tile;
12323         actually enable/disable addins when the button is pressed - BE WARNED
12324         this has not been tested too much yet
12326         * src/Libraries/Hyena.Gui/Hyena.Widgets/WrapLabel.cs: Added a Wrap
12327         property that will allow text to be ellipsized to one line if unset
12329         * src/Core/Banshee.ThickClient/Banshee.MediaProfiles.Gui/ProfileComboBoxConfigurable.cs:
12330         * src/Core/Banshee.ThickClient/Banshee.MediaProfiles.Gui/ProfileConfigurationDialog.cs:
12331         * src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/DefaultPreferenceWidgets.cs:
12332         Updated to use the new WrapLabel
12334         * src/Libraries/Hyena.Gui/Hyena.Widgets/TextViewLabel.cs: Removed now
12335         that we have a proper WrapLabel
12336         
12337         * src/Backends/Banshee.GStreamer/Banshee.GStreamer.addin.xml:
12338         * src/Backends/Banshee.Gnome/Banshee.Gnome.addin.xml:
12339         * src/Backends/Banshee.Hal/Banshee.Hal.addin.xml:
12340         * src/Backends/Banshee.Unix/Banshee.Unix.addin.xml:
12341         * src/Core/Banshee.Core/Banshee.Core.addin.xml:
12342         * src/Core/Banshee.Services/Banshee.Services.addin.xml:
12343         * src/Core/Banshee.ThickClient/Banshee.ThickClient.addin.xml:
12344         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage.addin.xml:
12345         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp.addin.xml:
12346         * src/Dap/Banshee.Dap/Banshee.Dap.addin.xml:
12347         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd.addin.xml:
12348         * src/Extensions/Banshee.Bookmarks/Banshee.Bookmarks.addin.xml:
12349         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.addin.xml:
12350         * src/Extensions/Banshee.MultimediaKeys/Resources/Banshee.MultimediaKeys.addin.xml:
12351         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying.addin.xml:
12352         * src/Extensions/Banshee.PlayQueue/Resources/Banshee.PlayQueue.addin.xml:
12353         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.addin.xml:
12354         Updated addin metadata
12356 2008-04-23  Gabriel Burt  <gabriel.burt@gmail.com>
12358         * src/Libraries/Migo/*: Rename a few more enums.
12360 2008-04-23  Gabriel Burt  <gabriel.burt@gmail.com>
12362         * src/Extensions/Banshee.Podcasting/*:
12363         * src/Libraries/Migo/*: Rename FEEDS_DOWNLOAD_STATUS enum to
12364         FeedDownloadStatus.  (Props to MD for making this dead easy).
12366 2008-04-23  Gabriel Burt  <gabriel.burt@gmail.com>
12368         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Fix typo in
12369         delete tracks user job message.
12371         * src/Extensions/Banshee.Podcasting/*:
12372         * src/Libraries/Migo/*: Fix assembly references in .mdp, and rename one
12373         enum and its values to FDG standards.
12375 2008-04-23  Aaron Bockover  <abock@gnome.org>
12377         This commit adds the initial work for the extension manager to allow
12378         you to enable and disable extensions; it does not yet work and there 
12379         are still many interaction and rendering issues; no complaining
12381         * src/Core/Banshee.Services/Banshee.Preferences/Page.cs: Add the new
12382         extensions page to the preference set
12384         * src/Core/Banshee.Services/Banshee.Preferences/PreferenceBase.cs:
12385         * src/Core/Banshee.Services/Banshee.Preferences/Root.cs: Moved
12386         DisplayWidget to Root
12388         * src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/DefaultPreferenceWidgets.cs:
12389         Adapt the new AddinView for our extensions to the extensions page
12391         * src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/NotebookPage.cs:
12392         Support pages with their own DisplayWidgets
12394         * src/Libraries/Hyena.Gui/Hyena.Widgets/WrapLabel.cs: Added a new label
12395         that doesn't suck for proper wrapping; this label uses a width allocation
12396         from its parent to compute the layout and forces a height request to
12397         fit the wrapped layout; it is awesome; someone tell me if the standard
12398         GtkLabel can do this - I have in many years never been able to do this
12400         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/AddinTile.cs: Hot 
12401         new tile widget that displays information about an addin/extension and
12402         will allow you to enable/disable it; not completely done
12404         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/AddinView.cs: A view
12405         that lays out the AddinTiles
12407 2008-04-22  Gabriel Burt  <gabriel.burt@gmail.com>
12409         This commit adds transcoding support to DAPs.  Transcoded files are stored
12410         in ~/.config/banshee-1/transcoder/, and that folder is deleted every
12411         Banshee session.  One improvement over stable's transcoding is file
12412         transfers can happen at the same time as transcoding.
12414         * src/Dap/Banshee.Dap/Banshee.Dap/RemovableSource.cs: Make IsReadOnly public.
12416         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Enable property dialogs
12417         for DapSources.  Also, override AddTrack methods to first transcode if
12418         necessary.
12420         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
12421         Reflect updates in two parent classes.
12423         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpSource.cs:  Lock use of the
12424         mtp device so only one operation happens at a time.  Make adding track
12425         work with new transcoding support.  Add fine-grained progress when adding
12426         tracks.
12428         * src/Dap/Banshee.Dap/Makefile.am:
12429         * src/Dap/Banshee.Dap/Banshee.Dap.Gui:
12430         * src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapPropertiesDialog.cs: Ported from
12431         stable.  Advanced properties and owner entry commented out.
12433         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs: If the Source
12434         has a property named 'SourceProperties.GuiHandler' that is a
12435         OpenPropertiesDelegate, invoke it OnSourcePropertiesAction.
12437         * src/Core/Banshee.ThickClient/ThemeIcons/22x22/actions:
12438         * src/Core/Banshee.ThickClient/ThemeIcons/22x22/actions/encode.png: Copy
12439         icon from stable.
12441         * src/Core/Banshee.ThickClient/Banshee.MediaProfiles.Gui/ProfileConfigurationDialog.cs:
12442         * src/Core/Banshee.ThickClient/Banshee.MediaProfiles.Gui/ProfileComboBoxConfigurable.cs:
12443         * src/Core/Banshee.Services/Banshee.MediaProfiles/MediaProfileManager.cs:
12444         * src/Core/Banshee.Services/Banshee.MediaProfiles/PipelineVariable.cs:
12445         * src/Core/Banshee.Services/Banshee.MediaProfiles/Profile.cs:
12446         * src/Core/Banshee.Services/Banshee.MediaProfiles/Pipeline.cs:
12447         * src/Core/Banshee.Services/Banshee.MediaProfiles/ProfileConfiguration.cs:
12448         Renamed *ID properties to *Id.  Also, use the ProfileConfiguration in
12449         several places we used to return just the Profile, since multiple
12450         ProfileConfigurations can share a Profile, we need to make sure this
12451         configurations variables are loaded when we use it.
12453         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Define
12454         OpenPropertiesDelegate.
12456         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Handle
12457         AddTracks not being synchronous (since there may be transcoding).
12459         * src/Core/Banshee.Services/Banshee.ServiceStack/BatchUserJob.cs: Add
12460         DetailedProgress that is the percent complete of the current sub-job.
12462         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs: Load
12463         the TranscoderService.
12465         * src/Core/Banshee.Services/Banshee.Services.addin.xml: Define
12466         /Banshee/MediaEngine/Transcoder extension node.
12468         * src/Core/Banshee.Services/Makefile.am:
12469         * src/Core/Banshee.Services/Banshee.Services.mdp:
12470         * src/Core/Banshee.Services/Banshee.MediaEngine/ITranscoder.cs:
12471         * src/Core/Banshee.Services/Banshee.MediaEngine/TranscoderService.cs: New
12472         files that give us transcoding.  Largely ported code from stable.
12474         * src/Backends/Banshee.Gnome/Banshee.GnomeBackend/GConfConfigurationClient.cs:
12475         Remove / characters from key names.
12477         * src/Backends/Banshee.GStreamer/Makefile.am:
12478         * src/Backends/Banshee.GStreamer/Banshee.GStreamer.addin.xml:
12479         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/Transcoder.cs: Add
12480         GStreamer implementation of MediaEngine.ITranscoder, mostly ported from
12481         stable.
12483         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/AudioCdRipper.cs: Tweak
12484         way Profiles are loaded to ensure they're configured.
12486         * src/Libraries/Mtp/Mtp/Track.cs: Remove WriteLine.
12488         * libbanshee/banshee-transcoder.c: Fix broken progress updates, and Gtk
12489         criticals.
12491         * build/build.environment.mk: Require Banshee.ThickClient in Banshee.Dap
12492         now b/c of properties dialog.
12494         * data/audio-profiles/*.xml.in: Add taglib/* mimetypes.
12496         * data/banshee-1.desktop.in.in:
12497         * data/mimetypes.txt: Update list of mimetypes with some ones from TagLib#
12498         we didn't have.
12500 2008-04-22  Aaron Bockover  <abock@gnome.org>
12502         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/PreferencesDialog.cs:
12503         * src/Core/Banshee.ThickClient/Resources/banshee-dialogs.glade: Nuke
12504         the old crappy hardcoded preferences dialog
12506 2008-04-22  Aaron Bockover  <abock@gnome.org>
12508         * src/Core/Banshee.Services/Banshee.Preferences/Page.cs: Cleaned up 
12509         the default preferences
12511         * src/Core/Banshee.Services/Banshee.Preferences/PreferenceService.cs:
12512         Added an InstallWidgetAdapters event and a RequestWidgetAdapters method
12514         * src/Core/Banshee.Services/Banshee.Preferences/VoidPreference.cs:
12515         A wrapper to use for fake preferences that will basically be containers
12516         for advanced widgets bound to other preferences
12518         * src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/DefaultPreferenceWidgets.cs:
12519         A little cleanup and use VoidPreference
12521         * src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/PreferenceDialog.cs:
12522         Call RequestWidgetAdapters to notify listeners that they need to create
12523         and bind their widget adapters to preferences they own
12525         * src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/SectionBox.cs:
12526         Set the MnemonicWidget if the preference gets a label
12528         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdService.cs:
12529         Last of the preference migration - adds the import profile combo
12531 2008-04-22  Aaron Bockover  <abock@gnome.org>
12533         * src/Core/Banshee.Services/Banshee.MediaEngine/IAudioCdRipper.cs:
12534         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/AudioCdRipper.cs:
12535         Added a enableErrorCorrection argument to the Begin method
12537         * src/Core/Banshee.Core/Banshee.Configuration.Schema/ImportSchema.cs:
12538         Removed the error correction schema
12540         * src/Core/Banshee.Services/Banshee.Preferences/Collection.cs: Added remove
12542         * src/Core/Banshee.Services/Banshee.Preferences/Preference.cs:
12543         * src/Core/Banshee.Services/Banshee.Preferences/Root.cs:
12544         * src/Core/Banshee.Services/Banshee.Preferences/SchemaPreference.cs:
12545         Added Description property and ctor overrides
12547         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/PreferencesDialog.cs:
12548         Removed crap
12550         * src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/SectionBox.cs:
12551         Set tooltips
12553         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdRipper.cs:
12554         Pass the schema value ot Begin
12556         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdService.cs:
12557         Add the first preference for audio CD support
12558         
12559         * src/Libraries/Hyena.Gui/Hyena.Gui/TooltipSetter.cs: A new awesome
12560         tooltip wrapper that will either use the old Gtk.Tooltips API or the new
12561         Gtk.Widget.TooltipText property, depending on what is available
12563 2008-04-22  Aaron Bockover  <abock@gnome.org>
12565         * src/Core/Banshee.Services/Banshee.Preferences/Page.cs: Set up default
12566         preferences for some more things
12568         * src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/DefaultPreferenceWidgets.cs:
12569         Added widget adapters for the file/folder pattern preferences
12571         * src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/SectionBox.cs:
12572         Layout preference widgets properly using a table so everything lines 
12573         up and looks pretty
12575         * src/Core/Banshee.Services/Banshee.Preferences/Collection.cs: Added
12576         FindOrAdd method
12578         * src/Core/Banshee.Services/Banshee.Preferences/PreferenceBase.cs:
12579         Added a ShowLabel property
12580         
12581         * src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/WidgetFactory.cs:
12582         Remove a console.writeline
12584         * src/Libraries/Hyena.Gui/Hyena.Widgets/TextViewLabel.cs: Moved from
12585         somewhere in Banshee proper
12587         * src/Core/Banshee.ThickClient/Banshee.MediaProfiles.Gui/ProfileComboBoxConfigurable.cs:
12588         * src/Core/Banshee.ThickClient/Banshee.MediaProfiles.Gui/ProfileConfigurationDialog.cs:
12589         Reflect the moving of TextViewLabel to Hyena.Widgets
12591 2008-04-22  Aaron Bockover  <abock@gnome.org>
12593         This commit adds very initial and incomplete support for better preference
12594         management that makes it easy for extensions to add new preferences
12596         * src/Core/Banshee.Services/Banshee.Preferences/Root.cs: A root object
12597         for all things preferency
12599         * src/Core/Banshee.Services/Banshee.Preferences/Collection.cs: A base
12600         preference object that represents a collection of preference things
12602         * src/Core/Banshee.Services/Banshee.Preferences/Page.cs: Non gui collection
12603         representing pages for the preference dialog
12605         * src/Core/Banshee.Services/Banshee.Preferences/Section.cs: A section
12606         is a group of preferences in a page
12608         * src/Core/Banshee.Services/Banshee.Preferences/Preference.cs: Generic
12609         preference object that maps to as single preference item
12611         * src/Core/Banshee.Services/Banshee.Preferences/PreferenceBase.cs: Base
12612         single item preference object (non-generic)
12614         * src/Core/Banshee.Services/Banshee.Preferences/PreferenceService.cs:
12615         The core preference service
12617         * src/Core/Banshee.Services/Banshee.Preferences/SchemaPreference.cs:
12618         A preference item object that binds to our lovely SchemaEntry configuration
12619         objects that makes exposing configuration as preferences really easy
12621         * src/Core/Banshee.Services/Banshee.Library/LibraryLocationPreference.cs:
12622         Preference object for setting the library location
12624         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:
12625         Load the preference service
12627         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/BansheeDialog.cs:
12628         A new base dialog object that makes writing new dialogs very nice
12630         * src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/PreferenceDialog.cs:
12631         The new preference dialog
12633         * src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/NotebookPage.cs:
12634         A GUI wrapper for the preference Page object
12635         
12636         * src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/SectionBox.cs:
12637         A GUI wrapper for the preference Section object
12639         * src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/WidgetFactory.cs:
12640         A static class that builds and binds widgets to non-GUI preferences
12642         * src/Core/Banshee.ThickClient/Banshee.Preferences.Gui/DefaultPreferenceWidgets.cs:
12643         A set of default preference widget adaptors that represent more complex
12644         UI for interacting with preferences
12645         
12646         * src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs: Open the
12647         new preferences dialog
12649 2008-04-19  Aaron Bockover  <abock@gnome.org>
12651         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ConnectedVolumeButton.cs:
12652         Added a classic ctor override
12654         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/RepeatActionButton.cs:
12655         Allow the button to have only the icon
12657         * src/Core/Banshee.Widgets/Banshee.Widgets/VolumeButton.cs:
12658         Added a classic mode that just pops up the slider above the widget,
12659         which is best for fullscreen
12661         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/FullscreenControls.cs:
12662         Ensure the controls don't go away if the volume button is active
12664         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/FullscreenWindow.cs:
12665         Some fixes; increase the timeout to 5s
12667         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/OverlayWindow.cs:
12668         Make the background slightly transparent if compositing is supported
12670         * src/Libraries/Hyena.Gui/Hyena.Gui/CompositeUtils.cs: Utilities for
12671         dealing with awesome stuff in composited environments that doesn't 
12672         require the latest bleeding GTK; ported from F-Spot, thank you Larry
12674         * src/Libraries/Hyena.Gui/Hyena.Widgets/RoundedFrame.cs: Fix the 
12675         frame rendering
12677 2008-04-19  Aaron Bockover  <abock@gnome.org>
12679         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/FullscreenControls.cs:
12680         Add the default accel group and make it as wide as the screen (probably 
12681         lame but gabaug was complaining)
12683         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/FullscreenWindow.cs:
12684         Add the default accel group and some custom keybindings for seeking
12685         and showing/hiding the control bar
12687         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/OverlayWindow.cs:
12688         Make gabaug happy and move the bar to the bottom of the screen
12690 2008-04-19  Aaron Bockover  <abock@gnome.org>
12692         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ConnectedSeekSlider.cs:
12693         Added new horizontal layout mode that is nice for fullscreen
12695         * src/Core/Banshee.Widgets/Banshee.Widgets/StreamPositionLabel.cs: 
12696         Rebuild the layouts when the format string changes
12698         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/FullscreenControls.cs:
12699         Allow the seek slider to fill any remaining space in the window and
12700         make sure the window takes 85% of the screen width
12702         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/FullscreenWindow.cs:
12703         Fixed the popup auto-hide when the mouse was over the controls
12705         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/OverlayWindow.cs:
12706         Added better sizing to allow the window to adapt to the screen size
12708         * src/Libraries/Hyena.Gui/Hyena.Widgets/MenuButton.cs:
12709         Implemented two empty method overrides to avoid GtkContainer's bitching
12711 2008-04-19  Aaron Bockover  <abock@gnome.org>
12713         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/FullscreenControls.cs:
12714         First pass at adding fullscreen controls - it's by no means complete, and
12715         yes I know there are some bugs and missing items
12717         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/FullscreenWindow.cs:
12718         Show/hide the controls overlay window when necessary
12720         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/OverlayWindow.cs:
12721         Started porting the overlay controls window from F-Spot
12723         * src/Core/Banshee.ThickClient/Banshee.Gui/ViewActions.cs: Use F instead
12724         of F11 as the fullscreen accel
12726         * src/Libraries/Hyena.Gui/Hyena.Widgets/MenuButton.cs: Moved the widget
12727         construction to a protected function and added a default ctor
12729         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/NextButton.cs: Added
12730         a small wrapper for creating the next action button
12731         
12732         * src/Clients/Nereid/Nereid/PlayerInterface.cs: Use the new NextButton
12734 2008-04-19  Aaron Bockover  <abock@gnome.org>
12736         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/FullscreenWindow.cs:
12737         Lots of window manager and parent window interaction stuff so that 
12738         fullscreen behaves properly when a user does strange window management
12739         like alt-tab when in fullscreen
12741         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingInterface.cs:
12742         Ensure that if for some reason the source is changed underneath the
12743         fullscreen, it's merged back into the source UI
12745         * src/Libraries/Hyena.Gui/Hyena.Widgets/RoundedFrame.cs: Use the proper
12746         drawing call for non-standard border renders
12748 2008-04-18  Aaron Bockover  <abock@gnome.org>
12750         * libbanshee/banshee-player-video.c: (bp_video_find_xoverlay): Do not
12751         let the video sink handle X events
12753 2008-04-18  Aaron Bockover  <abock@gnome.org>
12755         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/FullscreenWindow.cs:
12756         Hide the cursor if it hasn't moved in 2.5 seconds, allow 150px of movement
12757         before showing it again if it was hidden already
12759 2008-04-18  Aaron Bockover  <abock@gnome.org>
12761         This commit adds video rendering to the fullscreen window and fixes all
12762         of the GTK CRITICAL messages that could be seen when switching from the
12763         now playing source to something else
12765         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingInterface.cs:
12766         Implemented a sweet widget reparenting hack to work around the windowing
12767         issues with GstXOverlay; when the video wiget is not to be displayed,
12768         it is reparented to the fullscreen window, which will be hidden; this
12769         also implements the rest of fullscreen support as far as video rendering
12770         is concerned (there are no fullscreen controls yet, but you can press
12771         escape to close the window)
12773         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/FullscreenWindow.cs:
12774         Hide and unfullscreen self instead of destroying
12776         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/VideoDisplay.cs:
12777         Abstracted non GstXOverlay specific pieces of the video widget to make
12778         the code easier to maintain
12780         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/XOverlayVideoDisplay.cs:
12781         Fixes with the internal windowing to better work with the reparenting
12782         hack outlined above
12784 2008-04-18  Scott Peterson <lunchtimemama@gmail.com> 
12786         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
12787         We were instantiating a List<string> on every render. Now we just
12788         use one list per instance and clear it on each render.
12790 2008-04-17  Aaron Bockover  <abock@gnome.org>
12792         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingInterface.cs:
12793         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingSource.cs:
12794         Moved the fullscreen UI logic from the source to the interface
12796         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/FullscreenWindow.cs:
12797         Use Destroy explicitly
12799 2008-04-17  Scott Peterson <lunchtimemama@gmail.com> 
12801         * tests/Hyena/SqliteModelProviderTests.cs: Added test for null strings.
12803 2008-04-17  Scott Peterson <lunchtimemama@gmail.com> 
12805         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs: Look
12806         for DB-bound members amoung the public fields. Don't know what we
12807         didn't do that before.
12809         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteConnection.cs: Don't
12810         throw an exception if we can't retrieve a schema due to the table
12811         not existing. This is important because the Provider uses
12812         Scheme.Count == 0 to detect a non-existant table!
12814         * tests/Hyena/DbBoundType.cs: A type which can be used with an
12815         SqliteModelProvider for testing purposes.
12817         * tests/Hyena/SqliteModelProviderTests.cs: Logical tests for the
12818         SqliteModelProvider.
12820 2008-04-16  Aaron Bockover  <abock@gnome.org>
12822         * Makefile.am: Add a gdb target
12824         * src/Core/Banshee.ThickClient/Banshee.Gui/BansheeActionGroup.cs: Added
12825         AddImportant override for ToggleActionEntry
12827         * src/Core/Banshee.ThickClient/Banshee.Gui/BaseClientWindow.cs: Moved
12828         the fullscreen code
12830         * src/Core/Banshee.hickClient/Banshee.Gui/ViewActions.cs: Implement the
12831         fullscreen action and allow the fullscreen logic to be overridden
12833         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/FullscreenWindow.cs:
12834         The window that will house the fullscreen UI for video playback
12836         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingInterface.cs:
12837         Add a property for getting the VideoDisplay widget
12839         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingSource.cs:
12840         Added a custom fullscreen handler that will fullscreen the video window
12841         when fullscreen action is toggled and the now playing source is active
12843         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/VideoDisplay.cs:
12844         Inherit from GtkEventBox since it does what we needed and simplifies some
12845         things; still has that CRITICAL warning though
12847         * src/Extensions/Banshee.NowPlaying/Resources/ActiveSourceUI.xml: UI for
12848         merging the fullscreen action into the toolbar
12850 2008-04-16  Alexander Hixon  <hixon.alexander@mediati.org>
12852         * build/build.environment.mk
12853         * src/Extensions/Banshee.Daap/Daap/ServiceLocator.cs: We don't like
12854         bandaids.
12856 2008-04-16  Wouter Bolsterlee  <wbolster@svn.gnome.org>
12858         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapLoginDialog.cs:
12859         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastCore_
12860         Interface.cs:
12862         Added a few translator comments.
12864 2008-04-16  Gabriel Burt  <gabriel.burt@gmail.com>
12866         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpSource.cs: Specify what
12867         folder to upload the track to - Music or Video.
12869         * src/Libraries/Mtp/Mtp/MtpDevice.cs: Set the parent_id on the track
12870         before uploading it.
12872         * src/Libraries/Mtp/Mtp/Track.cs: Improve the DetectFileType method.
12874         * src/Libraries/Hyena/Hyena.Query/FileSizeQueryValue.cs:
12875         * src/Libraries/Hyena/Hyena.Query/RelativeTimeSpanQueryValue.cs:
12876         * src/Libraries/Hyena/Hyena.Query/TimeSpanQueryValue.cs: Parse values as
12877         doubles instead of ints, allowing queryies and smart playlists to specy
12878         "size>2.2MB" for instance.
12880         * src/Libraries/Hyena.Gui/Hyena.Query.Gui/FileSizeQueryValueEntry.cs:
12881         * src/Libraries/Hyena.Gui/Hyena.Query.Gui/TimeSpanQueryValueEntry.cs: Add
12882         a single decimal place to the spin button.
12884         * src/Libraries/Hyena/Hyena/StringUtil.cs: Improve FormatDouble method,
12885         now returns 1 if N < 1.1, etc.
12887 2008-04-16  Gabriel Burt  <gabriel.burt@gmail.com>
12889         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
12890         When the CorePrimarySource table was modified a few commits back (after
12891         Alpha 3, I think) I forgot to make the change for new databases as well.
12892         Patch from Bertrand Lorentz, fixes BGO #528469.
12894 2008-04-16  Gabriel Burt  <gabriel.burt@gmail.com>
12896         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs: Fix bug
12897         introduced by Alex's last commit.  Fix a couple style issues.
12899 2008-04-16  Scott Peterson <lunchtimemama@gmail.com> 
12901         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs:
12902         * src/Libraries/Hyena/Hyena.Data.Sqlite/DatabaseColumn.cs: Reverted
12903         IL injection changes.
12905 2008-04-16  Alexander Hixon  <hixon.alexander@mediati.org>
12907         This commit basically changes the DAAP namespace to Daap, removes the
12908         server bits from daap-sharp, and puts in support for using avahi-sharp
12909         instead of Mono.Zeroconf when compiling the extension (note that the
12910         build stuff hasn't quite been hooked up yet). There's also a few
12911         changes to using generics in daap-sharp, and DaapPlaylistSource uses
12912         the database, rather than keeping stuff in memory.
12914         * src/Extensions/Banshee.Daap/Daap/ContentFetcher.cs:
12915         * src/Extensions/Banshee.Daap/Daap/Client.cs:
12916         * src/Extensions/Banshee.Daap/Daap/User.cs:
12917         * src/Extensions/Banshee.Daap/Daap/ServerInfo.cs:
12918         * src/Extensions/Banshee.Daap/Daap/BrokenMD5.cs:
12919         * src/Extensions/Banshee.Daap/Daap/ContentParser.cs:
12920         * src/Extensions/Banshee.Daap/Daap/LoginException.cs:
12921         * src/Extensions/Banshee.Daap/Daap/AuthenticationException.cs:
12922         * src/Extensions/Banshee.Daap/Daap/Playlist.cs:
12923         * src/Extensions/Banshee.Daap/Daap/Utility.cs:
12924         * src/Extensions/Banshee.Daap/Daap/Track.cs:
12925         * src/Extensions/Banshee.Daap/Daap/ContentWriter.cs
12926         * src/Extensions/Banshee.Daap/Daap/Hasher.cs:
12927         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapLoginDialog.cs:
12928         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapService.cs:
12929         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapTrackInfo.cs:
12930         Simple namespace change from DAAP to Daap.
12932         * src/Extensions/Banshee.Daap/Daap/ContentCodeBag.cs:
12933         * src/Extensions/Banshee.Daap/Daap/Database.cs: Use Generics instead of
12934         regular Collection classes. Also update the namespaces from DAAP to Daap.
12936         * src/Extensions/Banshee.Daap/Daap/ServiceLocator.cs: Provide support for
12937         avahi-sharp as well as Mono.Zeroconf. Also use Hyena logging instead of
12938         spewing via Console.WriteLine.
12940         * src/Extensions/Banshee.Daap/Daap/sync-tree.sh: Remove this since it's
12941         practically useless now.
12943         * src/Extensions/Banshee.Daap/Daap/Server.cs: Remove this since we're
12944         not serving up DAAP shares from Banshee directly anymore.
12946         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapSource.cs:
12947         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapPlaylistSource.cs: Track
12948         the database IDs rather than the entire track information, and use the
12949         new namespace.
12951         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs:
12952         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Add
12953         virtual AddTrack method that should be overriden by implementing classes
12954         before use.
12956         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs: New
12957         AddTrack methods for adding existing tracks from the database to a
12958         playlist without reassigning the ParentSource property.
12960         * build/build.environment.mk: Nasty hack to include the avahi-sharp
12961         bindings at compile time. This should really be optional, but my auto*
12962         foo is poor. Good thing we don't enable DAAP by default. :)
12964 2008-04-16  Alexander Hixon  <hixon.alexander@mediati.org>
12966         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
12967         Patch by Bertrand Lorentz that fixe an NRE when the player engine would be
12968         disposed before the TrackInfoDisplay. Fixes BGO #527888.
12970 2008-04-16  Scott Peterson <lunchtimemama@gmail.com> 
12972         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/UserJobTileHost.cs:
12973         Use a BorderWidth of 8 for the AnimatedVBox. This adds 8 pixels on
12974         all sides.
12976 2008-04-16  Scott Peterson <lunchtimemama@gmail.com> 
12978         * src/Libraries/Hyena.Gui/Hyena.Gui.Theatrics/Choreographer.cs: More
12979         accurate easing equations.
12981 2008-04-16  Scott Peterson <lunchtimemama@gmail.com> 
12983         * src/Libraries/Hyena.Gui/Hyena.Widgets/AnimatedBox.cs: Added support
12984         for BorderWidth. Sexeh!
12986         * src/Libraries/Hyena.Gui/Hyena.Widgets/AnimatedWidget.cs: Use
12987         QueueRedrawNoResize rather than QueueRedraw. This makes things
12988         smoother with Downstage blocking.
12990         * src/Libraries/Hyena.Gui/Hyena.Gui.Theatrics/SingleActorStage.cs: Add
12991         an overload for Reload which takes a new duration.
12993 2008-04-15  Scott Peterson <lunchtimemama@gmail.com> 
12995         This patch does two things. First, it cleans up the AnimatedBox classes
12996         and improves the spacing logic. Spacing should now behave correctly
12997         under all situations. Second, we use Relfection.Emit to compile IL that
12998         gets and sets database-bound members to and from the database
12999         formats. We were previously using regular old relfection. This puts to
13000         rest any concerns about the performance of an attribute-based
13001         model design.
13003         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs: Changed
13004         to handle generic DatabaseColumn.
13006         * src/Libraries/Hyena/Hyena.Data.Sqlite/DatabaseColumn.cs: Made
13007         DatabaseColumn classes generic. Generate IL for saving/loading data
13008         to database-bound members.
13010         * src/Libraries/Hyena.Gui/Hyena.Widgets/AnimatedBox.cs: Previously
13011         there was a lot of code dup between AnimatedVBox and AnimatedHBox
13012         with the only differences being the height/width properties. All
13013         size negotiation is now done in the abstract AnimatedBox which has
13014         a "horizontal" bool in its protected constructor.
13016         * src/Libraries/Hyena.Gui/Hyena.Widgets/AnimatedVBox.cs:
13017         * src/Libraries/Hyena.Gui/Hyena.Widgets/AnimatedHBox.cs: Moved logic
13018         into base class.
13020         * src/Libraries/Hyena.Gui/Hyena.Widgets/AnimatedWidget.cs:
13021         AnimatedWidgets now have thier own size computation logic. They
13022         also have a horizontal bool in the ctor.
13024 2008-04-13  Christopher James Halse Rogers  <chalserogers@gmail.com>
13026         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/AudioCdRipper.cs:
13027         Hook up the paranoia-mode logic to the error-correction preference.
13029 2008-04-12  Gabriel Burt  <gabriel.burt@gmail.com>
13031         This commit adds usable MTP device support.  Still no transcoding for any
13032         DAPs, but that's next.
13034         * src/Backends/Banshee.Hal/Banshee.HalBackend/Device.cs: If usb.serial
13035         property exists on the device, use it for the Uuid.  Used for matching Mtp
13036         devices to the libmtp device list.
13038         * src/Clients/Nereid/Nereid/PlayerInterface.cs:
13039         * src/Clients/Nereid/Nereid/ViewContainer.cs: Add a disk usage
13040         label/progres bar and display it when the source implements
13041         IDiskUsageReporter.  Also, show the source context menu when the source's
13042         title in the view container is right clicked.
13044         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Set the default
13045         MediaAttributes to Default.
13047         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
13048         Add GetTrackIdForUri method, used by Mtp support to associate existing
13049         tracks when mtp device entries.
13051         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
13052         Change CorePrimarySource entries for Library/VideoLibrary to use UniqueId.
13054         * src/Backends/Banshee.Hal/Banshee.HalBackend/HardwareManager.cs:
13055         * src/Core/Banshee.Services/Banshee.Hardware/HardwareManager.cs:
13056         * src/Core/Banshee.Services/Banshee.Hardware/IHardwareManager.cs: Add
13057         GetAllDevices call.
13059         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Use UniqueId
13060         to identify primary sources, not TypeUniqueId.  Add user notify calls when
13061         deleting items.  And every 10 items added or deleted, refresh.
13063         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Use String.Format
13064         instead of concat.
13066         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpSource.cs: Implement track
13067         loading, adding, and deleting.  Implement disk usage, and eject, and
13068         renaming.
13070         * src/Core/Banshee.Services/Makefile.am:
13071         * src/Core/Banshee.Services/Banshee.Sources/IDiskUsageReporter.cs: New
13072         interface for sources that want disk usage info displayed (eg DAPs).
13074         * src/Dap/Banshee.Dap.Mtp/Makefile.am:
13075         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpDapTrackInfo.cs:
13076         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpTrackInfo.cs: Fixes to
13077         property mapping, renamed, added to build.
13079         * src/Dap/Banshee.Dap/Banshee.Dap/DapService.cs: Listen for DapSources
13080         being removed by the SourceManager and remove them from the map. Also,
13081         when unmapping them, call Dispose on them.
13083         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs:  Override AddChildSourc
13084         with warning about how they aren't saved to the device (yet).  Add
13085         internal Device property.
13087         * src/Dap/Banshee.Dap/Banshee.Dap/RemovableSource.cs: Implement
13088         IDiskUsageReporter.
13090         * src/Libraries/Mtp/Mtp/Track.cs: Style fixes.
13092         * Makefile.am: 
13093         * tests/Makefile.am: Change make test instead of make run-test
13095         * tests/Banshee.Core/TaglibReadWriteTests.cs: Add unit tests to make sure
13096         Banshee.IO.System and Banshee.IO.Unix read and write tags properly.
13098         * src/Backends/Banshee.Unix/Banshee.IO.Unix/DemuxVfs.cs: Fix major bug
13099         where writing metadata to file wasn't working in trunk if you were using
13100         Banshee.IO.Unix (which most/all people are).
13102 2008-04-11  Aaron Bockover  <abock@gnome.org>
13104         * src/Clients/Nereid/Nereid/PlayerInterface.cs: Do not automatically
13105         resize the source view (BGO #527340)
13107 2008-04-11  Aaron Bockover  <abock@gnome.org>
13109         * libbanshee/banshee-gst.c: 
13110         * libbanshee/banshee-gst.h: Implemented our own logging functions that
13111         can call a handler function which is defined in managed code; this allows
13112         libbanshee to use the same logging facilities that are available to managed
13113         code
13115         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/Service.cs: Implement
13116         the native logging function and proxy calls to the Hyena logger
13118         * libbanshee/banshee-player-private.h: Made the bp_debug macro expand to
13119         the new native logging function
13121         * src/Libraries/Hyena/Hyena/Log.cs: Made Commit method public
13123         * src/Clients/Nereid/Nereid/PlayerInterface.cs: Pack the status label in
13124         an EventBox; when the event box is clicked, call CycleStatusFormat on
13125         the active source; use the new MainMenu widget instead of fetching it
13126         directly from the UI manager
13128         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Implemented
13129         CycleStatusFormat and some supporting properties; and two new status
13130         formatters for time; added a ConfigurationId property
13132         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/PersistentColumnController.cs:
13133         Use the Source.ConfigurationId property
13135         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/MainMenu.cs: Load the
13136         main menu from the UI manager and connect the new repeat and shuffle menus
13138         * src/Core/Banshee.ThickClient/Banshee.Gui/InterfaceActionService.cs:
13139         Split FindAction into a FindActionGroup method
13141         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackRepeatActions.cs:
13142         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackShuffleActions.cs:
13143         Implemented CreateSubmenu and AttachSubmenu methods
13145         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Add some
13146         NRE defenses
13148         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml:
13149         Removed the hardcoded menu entries for shuffle and repeat
13151         * src/Extensions/Banshee.NotificationArea/Resources/NotificationAreaMenu.xm:
13152         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/NotificationAreaService.cs:
13153         Added shuffle and repeat menus back to the tray menu
13155 2008-04-11  Gabriel Burt  <gabriel.burt@gmail.com>
13157         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
13158         Fix IndexOutOfBounds exception.
13160 2008-04-11  Scott Peterson <lunchtimemama@gmail.com> 
13162         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
13163         Make sure we don't handle header-related interaction stuff if the
13164         header isn't shown. Fixes BGO #527510.
13166 2008-04-11  Sebastian Dröge  <slomo@circular-chaos.org>
13168         * build/m4/banshee/gtk-sharp.m4: gconf-sharp is part of gnome-sharp
13169         so check for it there and not a second time here.
13171 2008-04-11  Scott Peterson <lunchtimemama@gmail.com> 
13173         * src/Libraries/Hyena.Gui/Hyena.Widgets/AnimatedBox.cs: Use bools
13174         instead of the None enums (previously instituted to eliminate some
13175         nullables.
13176         
13177         * src/Libraries/Hyena.Gui/Hyena.Widgets/MenuButton.cs: Got rid of
13178         OnRealized OnUnrealized overrides - we don't really need them.
13179         
13180         * src/Libraries/Hyena.Gui/Hyena.Gui.Theatrics/Choreographer.cs: Got rid
13181         of Easing and Blocking.None
13183 2008-04-10  Aaron Bockover  <abock@gnome.org>
13185         Banshee 1.0 Alpha 3 (0.98.3) Released
13187 2008-04-10  Scott Peterson <lunchtimemama@gmail.com> 
13189         * src/Libraries/Hyena.Gui/Hyena.Widgets/AnimatedWidget.cs: Fixed stupid
13190         stupid crash.
13192 2008-04-10  Aaron Bockover  <abock@gnome.org>
13194         * NEWS: Updated
13195         
13196         * configure.ac: Turned off the DEVEL_BUILD flag for the release
13198 2008-04-10  Aaron Bockover  <abock@gnome.org>
13200         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/VideoDisplay.cs:
13201         Do /not/ call base.OnRealized because we don't like to crash
13203 2008-04-10  Gabriel Burt  <gabriel.burt@gmail.com>
13205         * NEWS: Update for 0.98.3
13207 2008-04-10  Scott Peterson <lunchtimemama@gmail.com> 
13209         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
13210         We now inherit from Widget and render to the parent GdkWindow and
13211         call base.OnRealize (). This fixes BGO #524429.
13213         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_DragAndDrop.cs:
13214         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Windowing.cs:
13215         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Header.cs:
13216         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
13217         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
13218         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView.cs:
13219         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Model.cs:
13220         Call base.OnRealize () and inherit from Widget.
13222         * src/Libraries/Hyena.Gui/Hyena.Widgets/MenuButton.cs:
13223         * src/Libraries/Hyena.Gui/Hyena.Widgets/AnimatedWidget.cs:
13224         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/VideoDisplay.cs:
13225         * src/Libraries/Hyena.Gui/Hyena.Widgets/AnimatedBox.cs: Call
13226         base.OnRealize ().
13228 2008-04-10  Aaron Bockover  <abock@gnome.org>
13230         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdTrackInfo.cs:
13231         Added an override for TrackEqual that addresses audio CD track equality
13233 2008-04-10  Aaron Bockover  <abock@gnome.org>
13235         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/AlbumListView.cs:
13236         Refresh when a track info updated event is raised by the player engine;
13237         this fixes BGO #524865
13239 2008-04-10  Gabriel Burt  <gabriel.burt@gmail.com>
13241         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Audioscrobbler/AudioscrobblerService.cs:
13242         Fix capitalization of menu items, use 'Last.fm' instead of 'Audioscrobbler'.
13244         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmActions.cs:
13245         Encode url bits.
13247         * src/Libraries/Lastfm.Gui/Lastfm.Gui/AccountLoginDialog.cs: Replace Close
13248         button with Cancel / Save and Log In buttons.  Should fix BGO #525585.
13250         * src/Libraries/Lastfm.Gui/Lastfm.Gui/AccountLoginForm.cs: Make Save
13251         method public.
13253 2008-04-10  Gabriel Burt  <gabriel.burt@gmail.com>
13255         * src/Clients/Nereid/Nereid/PlayerInterface.cs:
13256         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/AlbumListView.cs:
13257         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtistListView.cs:
13258         Call Next () instead of First () when source/artist/album activated, so that
13259         random works.  Fixes BGO #527218.
13261         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs:
13262         Lock around Reload, GetRandom, and this[] to avoid refresh race.  Fixes
13263         BGO #525031.
13265         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
13266         Fix bug with double clicking on an item not activating it every other
13267         time.
13269 2008-04-10  Gabriel Burt  <gabriel.burt@gmail.com>
13271         * src/Core/Banshee.Services/Banshee.Collection/TrackListModel.cs:
13272         * src/Core/Banshee.Services/Banshee.Collection/MemoryTrackListModel.cs:
13273         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs:
13274         Implement GetRandom method, using SQL for DatabaseTrackListModel.
13276         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
13277         Move IncrementPlay/SkipCount logic into public IncrementLastPlayed method.
13279         * src/Core/Banshee.Services/Banshee.PlaybackController/PlaybackControllerService.cs:
13280         Cann IncrementLastPlayed before getting the next song since that affects
13281         the random query method.  Fix repeat/restart in linear query.  Change
13282         QueryTrackRandom to call GetRandom on TrackModel.
13284         * src/Core/Banshee.Services/Banshee.PlaybackController/IBasicPlaybackController.cs:
13285         * src/Core/Banshee.Services/Banshee.PlaybackController/ICanonicalPlaybackController.cs:
13286         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
13287         Add restart arg to Previous.
13289         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs: Add GetSingle
13290         method that can be passed a condition/order by fragment and returns one
13291         item.
13293 2008-04-10  Scott Peterson <lunchtimemama@gmail.com> 
13295         * src/Clients/Nereid/Nereid/PlayerInterface.cs: Use the fancy new
13296         PersistantPanController. FANCY!
13298         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/PersistentColumnController.cs:
13299         Got rid of now-unnessisary volatile modifier.
13301         * src/Core/Banshee.ThickClient/Banshee.Gui/PersistentPaneController.cs:
13302         The PersistentPanController can be used to save/restore the
13303         position of a Gtk.Pane automatically. Passing a Gtk.Paned and some
13304         schema info to the static Control method will set it up and it will
13305         always do the right thing.
13307         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/CompositeTrackSourceContents.cs:
13308         Use PeristentPaneController for browser panes. This fixes BGO
13309         #522470.
13311         * src/Core/Banshee.Core/Banshee.Configuration/SchemaEntry.cs: Since
13312         this is a public struct, we do the neighborly thing and impliment
13313         IEquatable. I thought I was going to use this but ended up not
13314         doing so. Still, it's the right thing to do.
13316 2008-04-10  Scott Peterson <lunchtimemama@gmail.com> 
13318         * src/Core/Banshee.ThickClient/Banshee.Gui/InterfaceActionService.cs:
13319         Added a ViewActions property.
13321         * src/Core/Banshee.ThickClient/Banshee.Gui/BaseClientWindow.cs: Handle
13322         fullscreen toggling. This fixes BGO #526618.
13324 2008-04-10  Gabriel Burt  <gabriel.burt@gmail.com>
13326         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellPositiveInt.cs:
13327         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
13328         * src/Core/Banshee.ThickClient/Makefile.am: Add Disc column.  Fixes
13329         BGO #385543.
13331 2008-04-10  Scott Peterson <lunchtimemama@gmail.com> 
13333         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
13334         Better vadjustment handling. This fixes BGO #526689.
13336         * src/Libraries/Hyena.Gui/Hyena.Widgets/MenuButton.cs: Minor, perhaps
13337         unessiary, changes.
13339         * src/Libraries/Hyena.Gui/Hyena.Widgets/AnimatedWidget.cs: Use a bool
13340         instead of a nullable type.
13342 2008-04-09  Gabriel Burt  <gabriel.burt@gmail.com>
13344         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs: Add
13345         information popup if user tries to add track(s) to a playlist from outside
13346         its primary source (since not yet implemented).
13348         * src/Core/Banshee.Services/Makefile.am: Reorder.
13350         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Gui/PodcastManager/Source/PodcastSource.cs:
13351         Set CanAddTracks to false since it doesn't work.
13353 2008-04-09  Gabriel Burt  <gabriel.burt@gmail.com>
13355         This commit makes adding and deleting from a PrimarySource async, and pops
13356         up UserJobs if those operations take very long.  Very importantly, it also
13357         adds the ability to copy the track model selection so slow running jobs
13358         can process it w/o risking it changing on them.
13360         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs:
13361         Handle having no artist or album model gracefully.
13363         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs: Fixed up
13364         Add/Delete methods.
13366         * src/Core/Banshee.Services/Banshee.ServiceStack/UserJob.cs: Handle
13367         multiple Finish calls gracefully.
13369         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: New
13370         AddAllTracks method for use by MergeSource method.
13372         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Change slow
13373         operations to use a new CachedList object instead of iterating over the
13374         model's Selection, since it or the model might change underneath us.  Add
13375         UserJobs for adding/deleting.
13377         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Don't raise
13378         UserNotifyUpdated if we're the active source.
13380         * src/Core/Banshee.Services/Makefile.am: New files
13382         * src/Core/Banshee.Services/Banshee.Collection.Database/CachedList.cs: New
13383         class that contains a SqliteModelCache, so it's backed by CoreCache and
13384         can be used to store info (eg the selected tracks from a source) so they
13385         can be operated on independent of the original selection/model.
13387         * src/Core/Banshee.Services/Banshee.ServiceStack/BatchUserJob.cs: UserJob
13388         convenience subclass.
13390         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView_DragAndDrop.cs:
13391         Do MergeSource operations in a thread.  Should probably be done in
13392         PrimarySource.
13394         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
13395         Whitespace.
13397         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
13398         Get rid of OnUserNotifyUpdated, this is done in DatabaseSource now.
13400         * src/Libraries/Hyena/Hyena.Collections/RangeCollection.cs: Add Count
13401         property to Range to avoid doing End - Start + 1 everywhere.
13403         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs: Make work
13404         without a Selection.
13406 2008-04-10  Aaron Bockover  <abock@gnome.org>
13408         * src/Libraries/Hyena.Gui/Hyena.Gui.Theatrics/Choreographer.cs:
13409         * src/Libraries/Hyena.Gui/Hyena.Widgets/AnimatedBox.cs: Avoid using
13410         nullable types for some stuffs
13412 2008-04-09  Scott Peterson <lunchtimemama@gmail.com> 
13414         * src/Libraries/Hyena.Gui/Hyena.Widgets/MenuButton.cs:
13415         * src/Libraries/Hyena.Gui/Hyena.Widgets/AnimatedWidget.cs: Fixed
13416         style attachtment problem which was gave spew when the theme was
13417         changed.
13419 2008-04-09  Aaron Bockover  <abock@gnome.org>
13421         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
13422         * src/Core/Banshee.Widgets/Banshee.Widgets/StreamPositionLabel.cs:
13423         Fix DPI and size request issues
13425         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
13426         Use the generic CreateLayout cairo method in CairoExtensions
13428         * src/Libraries/Hyena.Gui/Hyena.Gui/CairoExtensions.cs: Moved the 
13429         CreateLayout method from the list view to this utils class
13431         * src/Libraries/Hyena.Gui/Hyena.Widgets/MenuButton.cs: Added OnUnrealized
13433 2008-04-09  Aaron Bockover  <abock@gnome.org>
13435         * configure.ac:
13436         * build/build.rules.mk: Added a DEVEL_BUILD variable - if set, compiler
13437         warnings will be treated as errors. We'll always keep it on except for
13438         when we distcheck for a release
13440         * build/m4/banshee/gtk-sharp.m4: Require Gtk# 2.10
13442         * data/icon-theme-hicolor/Makefile.am: Copy the app icons to the local
13443         uninstalled icon theme
13445 2008-04-09  Aaron Bockover  <abock@gnome.org>
13447         * build/build.rules.mk:
13448         * build/m4/banshee/daap.m4:
13449         * build/m4/banshee/libbanshee.m4:
13450         * build/m4/banshee/mono-zeroconf.m4:
13451         * build/m4/shamrock/gstreamer.m4:
13452         * configure.ac: Lots of build fixes, disable DAAP and Podcasting by default;
13453         only link against core gstreamer libraries and gdk-x11
13455         * libbanshee/banshee-transcoder.c: Remove all GnomeVFS code
13457 2008-04-09  Gabriel Burt  <gabriel.burt@gmail.com>
13459         * src/Clients/Nereid/Nereid/PlayerInterface.cs:
13460         * src/Core/Banshee.Services/Banshee.Collection.Database/AlbumListDatabaseModel.cs:
13461         * src/Core/Banshee.Services/Banshee.Collection.Database/ArtistListDatabaseModel.cs:
13462         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumListModel.cs:
13463         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistListModel.cs:
13464         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs:
13465         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
13466         * src/Core/Banshee.Services/Banshee.Collection/IHasTrackSelection.cs:
13467         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs:
13468         * src/Core/Banshee.Services/Banshee.Services.mdp:
13469         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs:
13470         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs:
13471         * src/Core/Banshee.Services/Makefile.am:
13472         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs:
13473         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapSource.cs:
13474         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
13475         Rename *ListDatabaseModel to Database*ListModel.
13477 2008-04-09  Aaron Bockover  <abock@gnome.org>
13479         * build/build.environment.mk:
13480         * configure.ac: Set up the sample extension in the build
13482         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
13483         Added a new TrackIntercept event that allows objects to stop the
13484         player engine from opening a trac
13486         * src/Extensions/Banshee.Sample/: Set up a quick sample extension to help
13487         new developers; it sort of breaks things right now, but I'll fix that soon
13489 2008-04-09  Gabriel Burt  <gabriel.burt@gmail.com>
13491         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs:
13492         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Fix issue
13493         with reloading way too many things when adding tracks to a source.
13495         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView_DragAndDrop.cs:
13496         Fix issues with the 'New Playlist' that appears when you drag over the
13497         source list.  It now will appear under any LibrarySource when you hover
13498         over it or its children.  And it will only expand the LibrarySource when
13499         within it, and collapse it when out of it (if it was collapsed to start
13500         with).  Fixes BGO #410121.
13502         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
13503         When items are added to the play queue and the PlayerEngine is not already
13504         playing, set us as the playback source.
13506 2008-04-09  Scott Peterson <lunchtimemama@gmail.com> 
13508         OK, I totally re-did the arrow button stuff. We still don't use the
13509         standard Gtk MenuToolButton because I am WAY to cool for it.
13510         It like _thought_ it was all cool enough to sit at my lunch table,
13511         but I was all like Ut-Uh! So we now use the sufficiently cool and
13512         totally custom MenuButton. This sucker is lean, mean, with an
13513         emphasis on correctness. No hacky-hacky here. Nosiree. I'd
13514         maybe entertain the idea that there's a better way to handle
13515         the RepeatActionButton, but I'm seriously fine with it as-is.
13517         * src/Clients/Nereid/Nereid/PlayerInterface.cs: Use the new stuff.
13519         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackShuffleActions.cs,
13520         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackRepeatActions.cs:
13521         Added nice CreateMenu() method which does just what you think.
13523         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/NextArrowButton.cs:
13524         * src/Libraries/Hyena.Gui/Hyena.Gui/IRadioActionGroup.cs:
13525         * src/Libraries/Hyena.Gui/Hyena.Widgets/ArrowButton.cs:
13526         * src/Libraries/Hyena.Gui/Hyena.Widgets/ActionGroupButton.cs:
13527         * src/Libraries/Hyena.Gui/Hyena.Widgets/ActionButton.cs: Got rid of
13528         these god-aweful classes.
13530         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/RepeatActionButton.cs:
13531         Redone to use MenuButton.
13533         * src/Libraries/Hyena.Gui/Hyena.Widgets/MenuButton.cs: This is the
13534         lovely new widget. Pass it a widget (like a Button or a MenuButton,
13535         for example) and it will menu-fy it! If showArrow is true, a
13536         way-pretty arrow will appear to the side of the widget you pass,
13537         providing access to the menu. If showArrow is false, the widget you
13538         pass will get packed inside the button and clicking anywhere will
13539         open the menu.
13541 2008-04-09  Gabriel Burt  <gabriel.burt@gmail.com>
13543         * build/build.environment.mk: Banshee.Dap.Mtp depends on Mtp library.
13545         * src/Backends/Banshee.Hal/Makefile.am:
13546         * src/Backends/Banshee.Hal/Banshee.HalBackend/DeviceMediaCapabilities.cs:
13547         * src/Core/Banshee.Services/Makefile.am:
13548         * src/Core/Banshee.Services/Banshee.Hardware/IDeviceMediaCapabilities.cs:
13549         New files for exposing portable_audio_player properties.
13551         * src/Backends/Banshee.Hal/Banshee.HalBackend/Device.cs:
13552         * src/Core/Banshee.Services/Banshee.Hardware/IDevice.cs: Add Product,
13553         Vendor, and MediaCapabilities properties.
13555         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
13556         Add copy ctor.
13558         * src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs: Add
13559         ShuttingDown bool property.
13561         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
13562         * src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs:
13563         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs:
13564         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Add
13565         CanAddTracks and Merge-related overrides.
13567         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Add Dispose
13568         method, and override AddTrack/Merge methods.
13570         * src/Core/Banshee.ThickClient/Banshee.Gui/BansheeActionGroup.cs: Get rid
13571         of WriteLine.
13573         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
13574         Add the ability to add tracks to DAPs.  No transcoding yet, and doesn't
13575         respect FolderDepth yet.
13577         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpSource.cs: Copy more
13578         initialization code over.  Still far from usable.
13580         * src/Dap/Banshee.Dap/Banshee.Dap/DapService.cs: Call DapSource.Resolve
13581         instead of Initialize.
13583         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Add better defaults.
13585         * src/Dap/Banshee.Dap/Banshee.Dap/RemovableSource.cs: Move Dispose method
13586         up to PrimarySource.  Get rid of Merge/AcceptsInput overrides.
13588         * src/Core/Banshee.Services/Banshee.Sources/ITrackModelSource.cs:
13589         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdSource.cs:
13590         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapPlaylistSource.cs:
13591         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationSource.cs: Add
13592         CanAddTracks property.
13594         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapSource.cs: Call
13595         base.Dispose ().
13597         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs:
13598         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
13599         Use updated AddSelectedTracks method.
13601         * src/Libraries/Hyena/Hyena.Data.Sqlite/DatabaseColumn.cs: Add GetRawValue
13602         method for use in provider's Copy method.
13604         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs: Add Copy
13605         method for transferring all db fields (except pk) from one instance to another.
13607 2008-04-09  Mike Urbanski  <michael.c.urbanski@gmail.com>    
13609         * src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastFeed.cs:
13610         Fixes table name clashes on dbs migrated from banshee 0.x.  drr...
13612 2008-04-08  Aaron Bockover  <abock@gnome.org>
13614         This commit adds the initial checkin of the new podcasting code by
13615         Mike Urbanski. It's rough in many areas around the extension, but it 
13616         works for the most part. It's very much a WIP, but it's quite awesome.
13618         * build/build.environment.mk:
13619         * configure.ac: Integrate the Migo and Banshee.Podcasting assemblies
13620         into the build
13622         * src/Libraries/Migo: Migo is the new library that does all the feed
13623         reading and downloading, among other things; it's reusable and not
13624         Banshee specific, sort of like Hyena for feed related problems
13626         * src/Extensions/Banshee.Podcasting: Banshee.Podcasting is the extension
13627         that provides the actual podcast support in Banshee, and uses Migo to 
13628         do the heavy lifting
13630 2008-04-08  Scott Peterson <lunchtimemama@gmail.com> 
13632         * src/Extensions/Banshee.NotificationArea/Resources/NotificationAreaMenu.xml:
13633         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationSource.cs:
13634         Got rid of references to old ShuffleAction.
13636 2008-04-08  Scott Peterson <lunchtimemama@gmail.com> 
13638         * src/Libraries/Hyena.Gui/Hyena.Widgets/ActionButton.cs: Fixed stupid
13639         NRE error.
13641 2008-04-08  Scott Peterson <lunchtimemama@gmail.com> 
13643         * src/Libraries/Hyena.Gui/Hyena.Widgets/ArrowButton.cs: Cosmetic
13644         change.
13646         * src/Libraries/Hyena.Gui/Hyena.Widgets/ActionButton.cs: Got rid of
13647         some useless checks. There are some cornercases I'm just not
13648         prepared to spend the energy to handle properly.
13650 2008-04-08  Scott Peterson <lunchtimemama@gmail.com> 
13652         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackShuffleActions.cs:
13653         Ctor now takes a PlaybackActions object so that it always has a
13654         reference to the next action.
13656         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackActions.cs: Move
13657         instantiation of the repeat and shuffle actions to after the other
13658         actions so that the shuffle action can change the next action's
13659         icon.
13661         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/NextArrowButton.cs:
13662         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/RepeatActionButton.cs:
13663         Set visual style in ctor.
13665         * src/Libraries/Hyena.Gui/Hyena.Widgets/ArrowButton.cs: Derives from
13666         ActionGroupButton and uses an ActionButton for the "main" button
13667         part. Also proxies things like style, relief, &c. to the main
13668         ActionButton.
13670         * src/Libraries/Hyena.Gui/Hyena.Widgets/ActionGroupButton.cs: Now
13671         derives from ActionButton.
13673         * src/Libraries/Hyena.Gui/Hyena.Widgets/ActionButton.cs: ActionButton
13674         is now the base of custom action-bound buttons. It doesn't do the
13675         cool Action.ConnectProxy shit that ToolButton does (because Gtk+
13676         Suxorz Teh Big One!!1!11), but it's pretty close. It also
13677         integrates with the style of a Toolbar you pass it.
13679 2008-04-08  Aaron Bockover  <abock@gnome.org>
13681         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellAlbum.cs:
13682         Properly calculate the row height based on actual pango layout calculations
13683         so that the row height will adapt to DPI changes
13685         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
13686         Recalculate the header size when DPI changes
13688 2008-04-07  Aaron Bockover  <abock@gnome.org>
13690         * src/Libraries/Hyena.Gui/Hyena.Gui/PangoCairoHelper.cs:
13691         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
13692         Let Cairo know what DPI we're using so text is rendered at the right size,
13693         and recalculate the row height on style set in case the DPI changed; 
13694         fixes BGO #522500, and is completely awesome - I recommend people change
13695         their DPI settings while Banshee is running a few times to really take in
13696         the awesomeness of this fix. Really.
13698         I also added a nicer way for row heights to be queried so renderers can
13699         provide their desired heights; it's a better solution than the previous
13700         hack, which was not nice. 
13702         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellAlbum.cs:
13703         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellTrack.cs:
13704         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCellText.cs: Provide
13705         row height calculating functions; ColumnCellText's version is static and
13706         is referenced by ListView as the default calculator
13708         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TerseTrackListView.cs:
13709         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/AlbumListView.cs:
13710         Set the renderer row height computing functions to the view
13712 2008-04-07  Gabriel Burt  <gabriel.burt@gmail.com>
13714         * src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs:
13715         Disable the case-sensitive LIKEs pragma as it was breaking queries.  Fixes
13716         BGO #526371.
13718 2008-04-07  Gabriel Burt  <gabriel.burt@gmail.com>
13720         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapSource.cs: Patch from
13721         Michael Monreal adding a disconnect icon.  Fixes BGO #526815.
13723 2008-04-07  Gabriel Burt  <gabriel.burt@gmail.com>
13724         
13725         * ChangeLog: Forgot to thank Bertrand two commits ago.
13727         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/AlbumSet.cs:
13728         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpDap.cs:
13729         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpDapTrackInfo.cs: Copied over
13730         from stable, not yet built.
13732 2008-04-07  Gabriel Burt  <gabriel.burt@gmail.com>
13734         * src/Dap/Banshee.Dap.Mtp/Makefile.am: Don't build unless enabled.
13736 2008-04-07  Gabriel Burt  <gabriel.burt@gmail.com>
13738         * build/build.environment.mk: Add Mtp and Banshee.Dap.Mtp deps.
13740         * build/build.rules.mk: Handle *.config files.
13742         * build/m4/banshee/mono-zeroconf.m4:
13743         * src/Extensions/Banshee.Daap/Makefile.am: Make Daap support optional,
13744         though on by default.  Thanks to Bertrand Lorentz for the patch.  Fixes
13745         BGO #526797.
13747         * build/m4/banshee/dap-mtp.m4:
13748         * configure.ac: Check for libmtp, and make MTP support optional (currently
13749         off by default, enable with --enable-mtp).
13751         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp.addin.xml:
13752         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp.mdp:
13753         * src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpSource.cs:
13754         * src/Dap/Banshee.Dap.Mtp/Makefile.am:
13755         * src/Dap/Dap.mds:
13756         * src/Dap/Makefile.am: New skeleton for Mtp device support.
13758         * src/Libraries/Libraries.mds:
13759         * src/Libraries/Makefile.am:
13760         * src/Libraries/Mtp/*: Move libmtp-sharp code over from latest in stable.
13761         Reorganize.
13763 2008-04-07  Aaron Bockover  <abock@gnome.org>
13765         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/ExtensionManagerDialog.cs:
13766         Nothing here yet, hopefully I can actually spare some time for it
13768         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
13769         * src/Libraries/Hyena.Gui/Hyena.Gui/ShadingTestWindow.cs: Removed rogue
13770         LayoutPath calls, replaced with ShowLayout
13772         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCellText.cs: Did some 
13773         profiling and switched the text renderer to Cairo since it's actually
13774         faster than GTK - this is fucking awesome:
13776             Cairo (pango_cairo_show_layout): 0.303
13777             GTK   (gtk_paint_layout):        0.369
13778             Cairo (pango_cairo_layout_path): 0.980
13780         This means text is now drawn directly to the cairo context and not to
13781         the GdkDrawable, which means we'll be able to cache the rendering to
13782         an image surface which supports an alpha channel (unlike GdkPixmap), which
13783         will lead to more performance improvements, specifically when dragging
13785         * src/Libraries/Hyena.Gui/Hyena.Gui/PangoCairoHelper.cs: Added a contract
13786         argument to LayoutPath that conveys it has crappy performance
13788 2008-04-07  Scott Peterson <lunchtimemama@gmail.com> 
13790         * src/Clients/Nereid/Nereid/PlayerInterface.cs: Pack in the
13791         NextArrowButton.
13793         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackShuffleActions.cs:
13794         Adds all of the shuffle action definitions.
13796         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackActions.cs: Use new
13797         shuffle actions.
13799         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackRepeatActions.cs:
13800         Replaced if/elses with a cast of the action value to the enum type.
13802         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/NextArrowButton.cs:
13803         The next button now has a drop-down menu to select the shuffle
13804         setting.
13806         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/RepeatActionButton.cs:
13807         Moved all of the logic into Hyena.Widgets.ActionButton.
13809         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml:
13810         Added new shuffle actions to the menu, replace the old next button
13811         with a placeholder for the fancy new one.
13813         * src/Core/Banshee.Services/Banshee.PlaybackController/PlaybackShuffleMode.cs:
13814         Added values for shuffling by song, artist, album.
13816         * src/Libraries/Hyena.Gui/Hyena.Gui/IRadioActionGroup.cs: An interface
13817         we seem to need until someone comes up with a more creative
13818         solution.
13820         * src/Libraries/Hyena.Gui/Hyena.Widgets/ArrowButton.cs: This widget
13821         visually works just the Firefox 2 forward/back buttons. There is a
13822         main button which is tied to the active action and an arrow to the
13823         right side. Clicking the arrow brings up a menu of the actions in
13824         the IRadioActionGroup.
13826         * src/Libraries/Hyena.Gui/Hyena.Widgets/ActionButton.cs: An
13827         ActionButton is a button which pops up a menu when you click on it.
13828         It is tied to an IRadioActionGroup.
13830 2008-04-07  Gabriel Burt  <gabriel.burt@gmail.com>
13832         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapSource.cs: Remove
13833         unnecessary Reload calls and method/property overrides.
13835 2008-04-07  Gabriel Burt  <gabriel.burt@gmail.com>
13837         * src/Core/Banshee.ThickClient/Banshee.Gui/BansheeActionGroup.cs: Save the
13838         original IconName for an action within UpdateAction, like we do for
13839         labels, so we can restore it when we switch to a source that doesn't
13840         override it.
13842         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs: Use IconName
13843         instead of the StockId so icons can be overridden.
13845 2008-04-07  Gabriel Burt  <gabriel.burt@gmail.com>
13847         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseImportManager.cs:
13848         Add force_copy protected bool that we pass to CopyToLibraryIfAppropriate.
13849         Used when importing DAPs to force copy to library.
13851         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
13852         Rename CopyToLibrary method, and add bool arg that forces it to copy the
13853         track, even if the user's preference is not to do so.
13855         * src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs:
13857         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs: Fix up
13858         ImportSourceAction so it's now functional.
13860         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
13861         Avoid spawning unnecessary thread.  Fix bug with accessing the
13862         BaseDirectory; cache the Hal.Device's mount point property.  Implement
13863         IImportSource, so can now import MassStorageSources from the Media ->
13864         Import menu and via its context menu (dnd to come).
13866         * src/Dap/Banshee.Dap/Banshee.Dap/RemovableSource.cs: Implement most of
13867         IImportSource.
13869 2008-04-07  Alexander Hixon  <hixon.alexander@mediati.org>
13871         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapService.cs: Only show the
13872         DAAP container source if we actually have any shares available, otherwise
13873         don't spam the source list.
13875         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapSource.cs:
13876         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapPlaylistSource.cs: Make
13877         sure elements are actually in the list before we do any operations on
13878         them.
13880 2008-04-07  Gabriel Burt  <gabriel.burt@gmail.com>
13882         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmActions.cs:
13883         Fix love/ban icons.
13885         * src/Libraries/Lastfm/Lastfm/RadioConnection.cs: Remove unnecessary
13886         logging, log exceptions with Log.Exception (e).
13888 2008-04-06  Aaron Bockover  <abock@gnome.org>
13890         This commit functionally complete ripping. Ripped albums will now show
13891         up in the library with all the metadata properly stored and organized.
13892         There are now only a few things to polish regarding ripping.
13894         * libbanshee/banshee-ripper.c: Removed a bad unref call - the pipeline
13895         should only be unreffed when destroying it
13897         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/TagList.cs: Merge
13898         release date, and musicbrainz ID properties into the tag list
13900         * src/Core/Banshee.Core/Banshee.Collection/AlbumInfo.cs: Added Release
13901         Date and MusicBrainzId properties
13903         * src/Core/Banshee.Core/Banshee.Collection/ArtistInfo.cs:
13904         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Added 
13905         MusicBrainzId properties
13907         * src/Core/Banshee.Core/Banshee.Streaming/CommonTags.cs: Added GStreamer
13908         tag names for MusicBrainz
13910         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumInfo.cs:
13911         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistInfo.cs:
13912         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
13913         Bind MusicBrainzId properties to respective database columns so these
13914         are now stored/loaded properly
13916         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdDiscModel.cs:
13917         Support saving a lot of extra information from MusicBrainz and properly
13918         create the album, artist, and album artist records
13920         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdRipper.cs:
13921         Save the track, artist, and album artist records into the database
13922         when a track finishes ripping
13924         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdTrackInfo.cs:
13925         Extend DatabaseTrackInfo and persist artist, album, and album artist
13926         objects on the track which can be saved to the database when ripped
13928 2008-04-06  Gabriel Burt  <gabriel.burt@gmail.com>
13930         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumInfo.cs:
13931         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistInfo.cs:
13932         Make sure to load all columns in FindOrCreate methods.
13934         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseImportManager.cs:
13935         * src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs:
13936         Change PrimarySourceIds to a int [].
13938         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
13939         Fix bug in ContainsUri method.
13941         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteCommand.cs: Add support
13942         for Arrays as query values (for use in "IN (?)" conditions).
13944         * tests/Hyena/SqliteCommandTests.cs: Test array support.
13946 2008-04-06  Gabriel Burt  <gabriel.burt@gmail.com>
13948         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumInfo.cs:
13949         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistInfo.cs:
13950         Add UpdateOrCreate methods that will overwrite an artist/album if it
13951         already exists, otherwise will just save the new one.
13953         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Change Edit
13954         Track Metadata to Edit Track Information in pursuit of user-friendliness.
13955         Thanks to Chris Lord for the suggestion.
13957 2008-04-06  Gabriel Burt  <gabriel.burt@gmail.com>
13959         This patch extends the relative-Uri goodness we use for Library tracks to
13960         any PrimarySource's tracks, meaning if your DAP has one mount point one
13961         time, and another the next, we'll detect the songs that are already in the
13962         database since we now check against the relative Uri.  Also, delete from
13963         MassStorage sources is working.
13965         * src/Core/Banshee.Core/Banshee.IO/IFile.cs:
13966         * src/Core/Banshee.Core/Banshee.IO/File.cs:
13967         * src/Core/Banshee.Core/Banshee.IO.SystemIO/File.cs:
13968         * src/Backends/Banshee.Unix/Banshee.IO.Unix/File.cs: Add Copy method.
13970         * src/Core/Banshee.Core/Banshee.Base/Paths.cs: Factory MakePathRelative
13971         out, not-library specific.
13973         * src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs:
13974         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseImportManager.cs:
13975         Add a couple virtual properties for making the relative-Uri stuff
13976         PrimarySource agnostic.
13978         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
13979         Make the process of making a Uri relative and reconstructing it from the
13980         relative path saved in the db generic so it can be used by other
13981         PrimarySources.  Scope ContainsUri method to one or more primary sources,
13982         since it's fine if a track is on a DAP and in the library.
13984         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Add methods
13985         for making the Uri of a track relative (if possible).  Add default
13986         DeleteTrackRange implementation pulled from LibrarySource, but make it
13987         call a virtual DeleteTrack method that each PrimarySource can implement.
13989         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
13990         * src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs: Override
13991         DeleteTrack method to delete files from disk.
13993         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Don't show the
13994         context menu at all if it has no visible items.  Fix crasher with the
13995         playlist menu b/c of recent icon changes.
13997         * tests/Makefile.am:
13998         * tests/Banshee.Core/TaglibReadWriteTests.cs: Test our read/write tags to
13999         file code. Commented out b/c abock doesn't want the 390KB of music files
14000         in svn.
14002         * tests/Hyena/QueryTests.cs: Changes to AssertForEach method.
14004 2008-04-06  Aaron Bockover  <abock@gnome.org>
14006         * libbanshee/banshee-gst.c: Added banshee_is_debugging and 
14007         banshee_get_version_number functions; gstreamer_initialize now takes a
14008         debugging argument that banshee_is_debugging will return
14010         * libbanshee/banshee-ripper.c: Save the GstTagList that is passed to
14011         the rip function to the encoder element; fixed bug with setting the
14012         encoder version tag
14014         * libbanshee/banshee-tagger.c: Added bt_tag_list_add_date and 
14015         bt_tag_list_dump, which will dump the entire contents of a GstTagList
14016         for debugging purposes
14018         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/AudioCdRipper.cs:
14019         Delete a ripped file if the file was not finished
14021         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/Service.cs:
14022         Pass the debug mode to libbanshee
14024         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/TagList.cs:
14025         Added AddDate and AddYear functions, binding bt_tag_list_add_date
14027         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdDiscModel.cs:
14028         Read the disc number and release date from musicbrainz and set it on
14029         the disc tracks so this information will be written to the output files
14031 2008-04-06  Aaron Bockover  <abock@gnome.org>
14033         * src/Libraries/Hyena.Gui/Hyena.Gui.Theming/GtkTheme.cs: Fixed column
14034         separator height
14036 2008-04-06  Aaron Bockover  <abock@gnome.org>
14038         * build/build.rules.mk: Fixed up the new private icon theme rules so the
14039         icons get 'installed' when building, installing, and uninstalling; this
14040         should fix the missing icon issues now when you run banshee installed
14042         * build/private-icon-theme-installer: A script for installing and 
14043         uninstalling the private icon theme files
14045         * src/Extensions/Makefile.am: Enabled DAAP again, halex says it won't
14046         ruin the database now
14048 2008-04-06  Aaron Bockover  <abock@gnome.org>
14050         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/X11NotificationAreaBox.cs:
14051         Fixed the icon sizing issue hopefully once and for all - still the same
14052         proper result but without the invalid size warning
14054 2008-04-06  Aaron Bockover  <abock@gnome.org>
14056         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/RepeatActionButton.cs:
14057         * src/Core/Banshee.ThickClient/Banshee.Gui/BansheeActionGroup.cs:
14058         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackActions.cs:
14059         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackRepeatActions.cs: Fixed
14060         some more icon theme issues relating to switching a lot of stuff from
14061         stock icons to theme icons
14063         * src/Core/Banshee.ThickClient/Banshee.Equalizer.Gui/EqualizerLevelsBox.cs:
14064         * src/Core/Banshee.Widgets/Banshee.Widgets/DiscUsageDisplay.cs:
14065         * src/Core/Banshee.Widgets/Banshee.Widgets/SearchEntry.cs:
14066         * src/Core/Banshee.Widgets/Banshee.Widgets/Tile.cs: Updated to use some
14067         of the drawing utilites that moved into Hyena.Gui
14069         * src/Core/Banshee.Widgets/Banshee.Widgets/ActionButton.cs:
14070         * src/Core/Banshee.Widgets/Banshee.Widgets/CoverArtThumbnail.cs:
14071         * src/Core/Banshee.Widgets/Banshee.Widgets/CoverArtView.cs:
14072         * src/Core/Banshee.Widgets/Banshee.Widgets/DrawingUtilities.cs:
14073         * src/Core/Banshee.Widgets/Banshee.Widgets/EllipsizeLabel.cs:
14074         * src/Core/Banshee.Widgets/Banshee.Widgets/FadingAlignment.cs:
14075         * src/Core/Banshee.Widgets/Banshee.Widgets/LinearProgress.cs:
14076         * src/Core/Banshee.Widgets/Banshee.Widgets/MultiStateToggleButton.cs:
14077         * src/Core/Banshee.Widgets/Banshee.Widgets/RadialProgress.cs:
14078         * src/Core/Banshee.Widgets/Banshee.Widgets/ShadowContainer.cs:
14079         * src/Core/Banshee.Widgets/Banshee.Widgets/SimpleNotebook.cs:
14080         * src/Core/Banshee.Widgets/Banshee.Widgets/ToggleState.cs: Deleted these
14081         legacy widgets, hooray for bloat cut
14083 2008-04-06  Aaron Bockover  <abock@gnome.org>
14085         * libbanshee/banshee-ripper.c: More cleanup and refactoring, it's mostly
14086         working but tags are not yet saved since I changed the way we do tagging
14087         and I'm not done
14089         * libbanshee/banshee-tagger.c: Basically this API provides a 1:1 with
14090         the GstTagList API and exists to make managed interop easier
14092         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/TagList.cs: A wrapper
14093         and utility class around GstTagList that converts TrackInfo objects
14094         into GstTagList objects that can be passed directly to a GStreamer
14095         element that supports tagging
14097         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/AudioCdRipper.cs:
14098         Wrote most of the ripper stuff - it works, but there are quirks not
14099         yet solved - it's not completely done
14101         * src/Core/Banshee.Services/Banshee.MediaEngine/IAudioCdRipper.cs:
14102         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdRipper.cs:
14103         Updated some interface members
14105 2008-04-05  Scott Peterson <lunchtimemama@gmail.com> 
14107         * src/Libraries/MusicBrainz/*: Synced w/ MB#
14109 2008-04-05  Scott Peterson <lunchtimemama@gmail.com> 
14111         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdDiscModel.cs:
14112         Got rid of unnessisary null checks.
14114 2008-04-05  Scott Peterson <lunchtimemama@gmail.com> 
14116         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdDiscModel.cs:
14117         Got rid of now unnessiary work around and use new Query overload.
14119         * src/Libraries/MusicBrainz/MusicBrainz/MusicBrainzObject.cs:
14120         * src/Libraries/MusicBrainz/MusicBrainz/Relation.cs:
14121         * src/Libraries/MusicBrainz/MusicBrainz/Label.cs:
14122         * src/Libraries/MusicBrainz/MusicBrainz/Release.cs:
14123         * src/Libraries/MusicBrainz/MusicBrainz/Event.cs:
14124         * src/Libraries/MusicBrainz/MusicBrainz/Disc.cs:
14125         * src/Libraries/MusicBrainz/MusicBrainz/MusicBrainzEntity.cs:
14126         * src/Libraries/MusicBrainz/MusicBrainz/XmlRequestEventArgs.cs:
14127         * src/Libraries/MusicBrainz/MusicBrainz/LocalDisc.cs:
14128         * src/Libraries/MusicBrainz/MusicBrainz/Utils.cs:
14129         * src/Libraries/MusicBrainz/MusicBrainz/DiscLinux.cs:
14130         * src/Libraries/MusicBrainz/MusicBrainz/Track.cs:
14131         * src/Libraries/MusicBrainz/MusicBrainz/MusicBrainzItem.cs:
14132         * src/Libraries/MusicBrainz/MusicBrainz/Query.cs:
14133         * src/Libraries/MusicBrainz/MusicBrainz/MusicBrainzException.cs:
14134          src/Libraries/MusicBrainz/MusicBrainz/DiscWin32.cs:
14135         * src/Libraries/MusicBrainz/MusicBrainz/Artist.cs:
14136         * src/Libraries/MusicBrainz/MusicBrainz/MusicBrainzService.cs: Synced
14137         MusicBrainz# code.
14139 2008-04-05  Scott Peterson <lunchtimemama@gmail.com> 
14141         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
14142         Reverted last change - it apparently borks migration :(
14144 2008-04-05  Scott Peterson <lunchtimemama@gmail.com> 
14146         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
14147         Minor SQL improvement when getting the count of items in an
14148         unfiltered model.
14150 2008-04-05  Alexander Hixon  <hixon.alexander@mediati.org>
14152         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapPlaylistSource.cs: Small
14153         woops.
14155 2008-04-05  Alexander Hixon  <hixon.alexander@mediati.org>
14157         * src/Extensions/Banshee.Daap/Daap/ServiceLocator.cs: Try to resolve all
14158         possible addresses for the first resolved hostname if it gives us an IPv6
14159         address.
14161         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapPlaylistSource.cs: Child
14162         playlist source for DAAP sources. Uses DaapTrackInfo from parent source to
14163         populate trackmodel.
14165         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapSource.cs: Create playlist
14166         sources if the DAAP share provides any. Also hookup different icons for
14167         protected/unprotected shares. Now also handles the remote removing tracks
14168         from the share and updating our local view to reflect changes.
14170 2008-04-04  Gabriel Burt  <gabriel.burt@gmail.com>
14172         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmTrackInfo.cs:
14173         Whoops, I had Alex only scrobble TrackInfos with the Music attribute, but
14174         I forgot Last.fm radio tracks didn't.  Fixes BGO #525464.
14176 2008-04-04  Aaron Bockover  <abock@gnome.org>
14178         * libbanshee/banshee-ripper.c: Renamed and new API akin to what I did
14179         for the player engine; started cleaning up the code, but not finished
14181         * libbanshee/gst-cd-rip.h:
14182         * libbanshee/gst-misc.h: Removed, not needed
14184         * libbanshee/gst-transcode-0.10.c: Fixed bloated ctor and removed dead code
14186 2008-04-03  Aaron Bockover  <abock@gnome.org>
14188         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/AudioCdRipper.cs:
14189         Get the cd importing profile and generate the pipeline for the encoder
14191         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/Service.cs: Ported
14192         the GStreamer media profile process stuff, including the SExpEngine 
14193         extensions/GStreamer binding, fully enabling GStreamer media profiles
14195         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdRipper.cs:
14196         Cleaned up
14198         * src/Libraries/Hyena/Hyena.SExpEngine/EvaluatorBase.cs: Minor API fix
14200 2008-04-03  Gabriel Burt  <gabriel.burt@gmail.com>
14202         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
14203         Only load volumes that have a .is_audio_player file.  For now.
14205 2008-04-03  Gabriel Burt  <gabriel.burt@gmail.com>
14207         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
14208         When the Play Queue is initialized, if it has tracks and the PlayerEngine
14209         is not already playing, set it as the playback source.
14211 2008-04-03  Aaron Bockover  <abock@gnome.org>
14213         * build/build.rules.mk:
14214         * data/audio-profiles/Makefile.am: Changed the uninstall data directory
14215         layout inside of bin/; copy audio profiles as well so they'll work 
14216         bundled or uninstalled
14218         * src/Core/Banshee.Core/Banshee.Base/ApplicationContext.cs: Minor fixes
14220         * src/Core/Banshee.Core/Banshee.Base/Paths.cs: Fixed up the code to detect
14221         what to use as 'datadir' - if there is a share directory in the directory
14222         that contains the entry assembly, we will use that directory as the
14223         installation prefix which means external datadir files will work 
14224         when running uninstalled or if bundled, like we'll ship on Windows; 
14225         otherwise the proper prefix is calculated (i.e. /usr)
14227         * src/Core/Banshee.Services/Banshee.MediaProfiles:
14228         * src/Core/Banshee.ThickClient/Banshee.MediaProfiles.Gui: Renamed from
14229         Banshee.AudioProfiles* since one day we'll support video profiles as well
14231         * src/Core/Banshee.Services/Banshee.MediaProfiles/MediaProfileManager.cs:
14232         Fix up the profile loading/path code so profiles actually load now
14234         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/PreferencesDialog.cs:
14235         Reflect the API
14237         * src/Core/Banshee.ThickClient/Banshee.Gui/BansheeIconFactory.cs:
14238         Use the new datadir detection path
14240         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdRipper.cs:
14241         Stubbbbs
14243 2008-04-03  Gabriel Burt  <gabriel.burt@gmail.com>
14245         This patch adds back the extension code from DapCore and completes the
14246         separation of the MassStorage support from the DapService.
14248         * src/Core/Banshee.Services/Banshee.Sources/Source.cs:
14249         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs:
14250         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs:
14251         * src/Dap/Banshee.Dap/Banshee.Dap/RemovableSource.cs:
14252         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs: Provide a way for Sources
14253         to be lazily initialized with a protected virtual Initialize method that
14254         each subclass overrides, calling base and then its own intialization.
14256         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSource.cs:
14257         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationSource.cs:
14258         Rename Initialize method so doesn't conflict with above.
14260         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage.addin.xml:
14261         Extend the DeviceClass node.
14263         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
14264         Lazily intialize, after its seen that the Initialize (IDevice) will
14265         succeed.
14267         * src/Dap/Banshee.Dap/Makefile.am:
14268         * src/Dap/Banshee.Dap.MassStorage/Makefile.am: Fix build.
14270         * src/Dap/Banshee.Dap/Banshee.Dap.addin.xml: Define DeviceClass extension
14271         point, from DapCore.
14273         * src/Dap/Banshee.Dap/Banshee.Dap/DapService.cs: When new DAP
14274         DeviceClasses are loaded, check existing devices to see if they are now
14275         supported.
14277         * src/Makefile.am: Add Dap back to the build.
14279 2008-04-03  Aaron Bockover  <abock@gnome.org>
14281         * src/Core/Banshee.Services/Banshee.MediaEngine/IAudioCdRipper.cs:
14282         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/AudioCdRipper.cs:
14283         Added error reporting
14284         
14285         * src/Backends/Banshee.Hal/Banshee.HalBackend/CdromDevice.cs:
14286         * src/Core/Banshee.Services/Banshee.Hardware/ICdromDevice.cs:
14287         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdDiscModel.cs:
14288         Added drive door locking support
14290         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdRipper.cs: Handle
14291         errors and dispose better; lock and unlock the drive door
14293         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdSource.cs:
14294         Better error handling and do not allow ejecting if the door is locked
14296 2008-04-03  Gabriel Burt  <gabriel.burt@gmail.com>
14298         Almost done with move.  Banshee.Dap* not in build yet.
14300         * build/build.environment.mk:
14301         * configure.ac: Add Banshee.Dap setup.
14303         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/DapService.cs:
14304         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/DapSource.cs:
14305         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/RemovableSource.cs:
14306         * src/Dap/Banshee.Dap/Banshee.Dap/DapService.cs:
14307         * src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs:
14308         * src/Dap/Banshee.Dap/Banshee.Dap/RemovableSource.cs: Moved.
14310         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage.mdp:
14311         * src/Dap/Banshee.Dap.MassStorage/Makefile.am: Removed the above files.
14313         * src/Dap/Banshee.Dap/Banshee.Dap.addin.xml:
14314         * src/Dap/Banshee.Dap/Banshee.Dap.mdp:
14315         * src/Dap/Banshee.Dap/Makefile.am: New files for Banshee.Dap.
14317         * src/Dap/Dap.mds:
14318         * src/Dap/Makefile.am: Add Banshee.Dap.
14320         * src/Extensions/Extensions.mds:
14321         * src/Extensions/Makefile.am: Remove the Dap.MassStorage extension entries.
14323 2008-04-03  Gabriel Burt  <gabriel.burt@gmail.com>
14325         * src/Extensions/Banshee.Dap.MassStorage/*:
14326         * src/Dap/Banshee.Dap.MassStorage/*: Move from Extensions to Dap.
14328 2008-04-03  Gabriel Burt  <gabriel.burt@gmail.com>
14330         * src/Dap/*: Remove obsolete code.
14332 2008-04-03  Aaron Bockover  <abock@gnome.org>
14334         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdRipper.cs:
14335         Implemented all of the rip queue/interaction logic and user job stuff;
14336         very nice and pretty status reporting including speed calculations; this
14337         part of the ripper is mostly done, only need to do the GStreamer work now
14339         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/AudioCdRipper.cs:
14340         Implemented a dummy ripper that pretends to be ripping but is really
14341         just some fancy clock work so I could have something to test the 
14342         extension ripper code as I went without destroying my drive
14344         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdSource.cs:
14345         Added UnlockAllTracks
14347         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdTrackInfo.cs:
14348         Added RipEnabled property that we'll connect to check boxes at some point
14350         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/X11NotificationAreaBox.cs:
14351         Force the icon size to 22px so it doesn't look funny - the image was 
14352         choosing a 16px icon which looked like ass and didn't fit in
14354 2008-04-03  Aaron Bockover  <abock@gnome.org>
14356         * src/Core/Banshee.Services/Banshee.Collection/ImportManager.cs:
14357         * src/Core/Banshee.Services/Banshee.ServiceStack/UserJob.cs:
14358         * src/Core/Banshee.Services/Banshee.ServiceStack/TestUserJob.cs:
14359         * src/Core/Banshee.Services/Banshee.ServiceStack/InterfaceAction.cs:
14360         * src/Core/Banshee.Services/Banshee.ServiceStack/IUserJob.cs:
14361         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/UserJobTile.cs:
14362         Removed the Name property from UserJob as it's a bit redundant and annoying
14364         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackActions.cs: Set the
14365         IconName property instead of StockId
14367         * src/Core/Banshee.ThickClient/Banshee.Gui/BansheeIconFactory.cs: Removed
14368         a ton of legacy code to load theme and resource icons into the icon theme
14369         and stock icon set; support loading of a custom proper icon theme from 
14370         disk; no more resources - much easier to maintain and properly flexible
14372         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationType.cs:
14373         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSource.cs:
14374         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdSource.cs: Updated
14375         to use theme icons
14377         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdRipper.cs: Stubbed
14378         the user job stuff
14380         * build/build.rules.mk: Copy theme icons into a proper private icon theme
14381         that will work when running uninstalled
14383 2008-04-03  Gabriel Burt  <gabriel.burt@gmail.com>
14385         * src/Backends/Banshee.Hal/Banshee.HalBackend/Device.cs: Bring a function
14386         for getting the best name for a Hal.Device over from stable.
14388         * src/Extensions/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/RemovableSource.cs:
14389         Add BytesUsed, BytesCapacity, and StorageUsageFraction properties.
14391         * src/Extensions/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
14392         Implement BytesUsed, BytesCapacity.
14394 2008-04-03  Gabriel Burt  <gabriel.burt@gmail.com>
14396         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
14397         Avoid NRE when loading dependents of smart playlist.
14399 2008-04-03  Gabriel Burt  <gabriel.burt@gmail.com>
14401         * src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs: Playlists
14402         and smart playlsits loaded by each PrimarySource now.
14404         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: When loaded,
14405         load our playlists and smart playlists.
14407         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: In AddChildSource
14408         check that we don't already have this child.
14410         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Hide the
14411         Remove and Delete actions unless CanRemove/Delete true.  Previously just
14412         set them insensitive.
14414         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml: Add
14415         RemovableSource context menu.
14417         * src/Extensions/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/RemovableSource.cs:
14418         Set the context menu action path property.  On dispose, clear children.
14419         And don't allow removing tracks (delete only).  Add Merge* foo from
14420         PlaylistSource, but not really hooked up yet.
14422         * src/Extensions/Banshee.Dap.MassStorage/Makefile.am: MD sorted.
14424 2008-04-03  Aaron Bockover  <abock@gnome.org>
14426         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnHeaderCellText.cs:
14427         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
14428         Explicitly set TextAsForeground as necessary when entering the header
14429         and row drawing methods since now we use a single cell context object;
14430         fixes regression where lists with headers had all cell text drawn using
14431         the foreground color, not the foreground color for the header and the
14432         text color for the rows
14434 2008-04-03  Gabriel Burt  <gabriel.burt@gmail.com>
14435         
14436         This patch adds the first support for DAPs to trunk.  It currently only
14437         support loading the songs/videos on a USB drive, but synching, adding,
14438         removing, transcoding etc are not implemented yet.
14440         * configure.ac:
14441         * build/build.environment.mk:
14442         * src/Extensions/Makefile.am:
14443         * src/Extensions/Extensions.mds: Add Banshee.Dap.MassStorage
14445         * src/Backends/Banshee.Hal/Banshee.HalBackend/Device.cs: Make Uuid virtual
14446         and HalDevice internal.
14448         * src/Backends/Banshee.Hal/Banshee.HalBackend/Volume.cs: Do not treat
14449         unmounted volumes as existing - intead, wait for them to be mounted and
14450         then notify they've been added.
14452         * src/Backends/Banshee.Hal/Banshee.HalBackend/HardwareManager.cs: Make
14453         method internal so Volume can access them.
14455         * src/Core/Banshee.Services/Banshee.Collection/ImportManager.cs: Add
14456         property to keep the user job hidden, used by MassStorageSource when
14457         loading its tracks.
14459         * src/Backends/Banshee.Hal/Banshee.HalBackend/BlockDevice.cs:
14460         * src/Core/Banshee.Services/Banshee.Hardware/IBlockDevice.cs: Add
14461         IsRemovable property.
14463         * src/Core/Banshee.Services/Banshee.Hardware/IVolume.cs: Remove IsMounted
14464         property, rename IsMountedReadOnly to IsReadOnly, and add ShouldIgnore and
14465         FileSystem properites.
14467         * src/Core/Banshee.Services/Banshee.Library/MusicLibrarySource.cs: Authors.
14469         * src/Core/Banshee.Services/Banshee.PlayerMigration/AmarokPlayerImportSource.cs:
14470         Call renamed ImportTrack method.
14472         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Lazy
14473         initialize the ErrorSource.
14475         * src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs:
14476         Factor most everythign out into DatabaseImportManager so can be reused for
14477         all sorts of disk-based primary sources.
14479         * src/Core/Banshee.Services/Makefile.am:
14480         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseImportManager.cs:
14481         Take most methods from LibraryImportManager, allow setting the ErrorSource
14482         and the method that chooses what primary source to put a DatabaseTrackInfo
14483         into.
14485         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Add SetStatus that
14486         gives access to every detail of the StatusMessage.
14488         * src/Extensions/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage.addin.xml:
14489         * src/Extensions/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage.mdp:
14490         * src/Extensions/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/DapService.cs:
14491         * src/Extensions/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/DapSource.cs:
14492         * src/Extensions/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs:
14493         * src/Extensions/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/RemovableSource.cs:
14494         * src/Extensions/Banshee.Dap.MassStorage/Makefile.am: New extension, first
14495         pass at loading disk-based volumes.  Currently only loads usb mass storage
14496         drives.  Adding and deleting tracks on these drives is not yet tested.
14498         * src/Libraries/Hyena/Hyena.Data/PropertyStore.cs: Handle set value == null.
14500         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtistListView.cs:
14501         Add todo for artist/browser context menu.
14503 2008-04-03  Scott Peterson <lunchtimemama@gmail.com> 
14505         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Windowing.cs:
14506         Instantiate the CellContext on realization.
14508         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
14509         Use one CellContext all the time, just changing properties when we
14510         need to.
14512         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/CellContext.cs: Made all
14513         properties settable and got rid of fancy constructor.
14515         * src/Libraries/Hyena.Gui/Hyena.Widgets/SmoothScrolledWindow.cs: Made
14516         slightly better.
14518 2008-04-02  Gabriel Burt  <gabriel.burt@gmail.com>
14520         * src/Libraries/Hyena/Hyena.Query/QueryField.cs: Fix issue with searching
14521         and NULL values, eg "a not like '%a%'" would not match NULL values.
14523 2008-04-02  Scott Peterson <lunchtimemama@gmail.com> 
14525         * src/Libraries/Hyena.Gui/Hyena.Widgets/SmoothScrolledWindow.cs: More
14526         better.
14528 2008-04-02  Scott Peterson <lunchtimemama@gmail.com> 
14530         You can now pass --debug-sql to get a full log of all SQL commands
14531         executed.
14533         * src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs:
14534         Listen to Executing event and log the command text if we're
14535         debugging the SQL.
14537         * src/Core/Banshee.Core/Banshee.Base/ApplicationContext.cs: We're also
14538         debugging if --debug-sql was passed.
14540         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteCommand.cs: Raise
14541         HyenaSqliteConnection.Executing event.
14543         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteConnection.cs: Added
14544         Executing event.
14546 2008-04-02  Scott Peterson <lunchtimemama@gmail.com> 
14548         * src/Libraries/Hyena.Gui/Hyena.Widgets/SmoothScrolledWindow.cs:
14549         Removed max velocity limit.
14551 2008-04-02  Aaron Bockover  <abock@gnome.org>
14553         * libbanshee/banshee-player.c: Implement better null/pause state selection
14554         when handling a playback stop request; always go to NULL if the caller
14555         requests it, but override PAUSED requests with NULL if the playing
14556         resource is not CDDA
14558         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs:
14559         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngine.cs:
14560         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
14561         Allow Close callers to force the NULL state (e.g. release all resources
14562         forcefully so ejecting media can happen cleanly, for instance)
14564         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdRipper.cs:
14565         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdSource.cs: 
14566         Stubbed some more stuff out, still not working (ripping); ejecting while
14567         playing works again
14569 2008-04-02  Scott Peterson <lunchtimemama@gmail.com> 
14571         This adds experimental smooth scrolling. The behavior still needs to be
14572         tweaked, and comments/opinions are welcome. To enable smooth
14573         scrolling, run banshee with the command line argument --smooth-scroll.
14575         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/UserJobTileHost.cs:
14576         * src/Libraries/Hyena.Gui/Hyena.Widgets/AnimatedBox.cs:
14577         * src/Libraries/Hyena.Gui/Hyena.Widgets/AnimatedVBox.cs:
14578         * src/Libraries/Hyena.Gui/Hyena.Widgets/AnimatedHBox.cs:
14579         * src/Libraries/Hyena.Gui/Hyena.Widgets/AnimatedWidget.cs:
14580         * src/Libraries/Hyena.Gui/Hyena.Gui.Theatrics/Choreographer.cs: Fixed
14581         some namespace stuff.
14583         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/CompositeTrackSourceContents.cs:
14584         Use smooth scrolling if --smooth-scroll command argument is passed.
14586         * src/Libraries/Hyena.Gui/Hyena.Widgets/SmoothScrolledWindow.cs: A
14587         first-pass smooth scrolling widget.
14589 2008-04-02  Sebastian Dröge  <slomo@circular-chaos.org>
14591         * src/Extensions/Makefile.am: Include the Daap extension here too.
14593 2008-04-02  Sebastian Dröge  <slomo@circular-chaos.org>
14595         * src/Backends/Banshee.Unix/Banshee.IO.Unix/Directory.cs:
14596         * src/Core/Banshee.Core/Banshee.Base/SafeUri.cs:
14597         * src/Core/Banshee.Widgets/Banshee.Widgets/RadialProgress.cs:
14598         DllImport libglib-2.0.so.0 and libgdk-x11-2.0.so.0 instead of
14599         libglib-2.0.so and libgdk-x11-2.0.so as the latter are only
14600         in the development packages for many distributions.
14602 2008-04-01  Aaron Bockover  <abock@gnome.org>
14604         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/AudioCdRipper.cs:
14605         * src/Core/Banshee.Services/Banshee.MediaEngine/IAudioCdRipper.cs: More
14606         stubbing, no real glory yet
14608 2008-04-01  Aaron Bockover  <abock@gnome.org>
14610         * src/Backends/Banshee.GStreamer/Banshee.GStreamer.addin.xml:
14611         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/AudioCdRipper.cs:
14612         Stub an implementation of IAudioCdRipper and expose it as an extension
14614         * src/Core/Banshee.Services/Banshee.MediaEngine/IAudioCdRipper.cs:
14615         Interface for implementing an audio CD ripping engine
14617         * src/Core/Banshee.Services/Banshee.Services.addin.xml:
14618         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
14619         Added the AudioCdRipper extension point, rename the PlayerEngine extenion
14620         point so that there is a common parent node in the path
14622         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:
14623         Log extension exceptions
14625         * src/Core/Banshee.ThickClient/Banshee.Gui/BansheeIconFactory.cs:
14626         Make AddResourceToIconSet public
14628         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdRipper.cs:
14629         Stubbed an implementation of the AudioCdRipper (engine agnostic)
14631         * src/Extensions/Banshee.AudioCd/Resources/ActiveSourceUI.xml:
14632         * src/Extensions/Banshee.AudioCd/Resources/GlobalUI.xml:
14633         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdSource.cs:
14634         Implement the UI actions for duplicating and ripping CDs
14636 2008-04-01  Gabriel Burt  <gabriel.burt@gmail.com>
14638         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackActions.cs: Disable
14639         actions that require a playing track when there is none.  In restart
14640         song action, check that the track is not null.
14642         * src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs:
14643         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml:
14644         * src/Extensions/Banshee.NotificationArea/Resources/NotificationAreaMenu.xml:
14645         Change the Music menu to the Media menu.
14647 2008-04-01  Scott Peterson <lunchtimemama@gmail.com> 
14649         This fixes BGO #525453
14651         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
14652         Set the indicator column's min and max width to 30.
14654         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/Column.cs: Add constructor
14655         that takes min and max width (we need C# 3! Object initialization
14656         FTW).
14658         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Header.cs:
14659         Added support for MaxWidth. Some scenearios are still not supported
14660         but I'll get the corner cases later.
14662 2008-04-01  Gabriel Burt  <gabriel.burt@gmail.com>
14664         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
14665         Fix bug where newly migrated databases kept refreshing metadata each time
14666         Banshee started.
14668         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Header.cs: Fix
14669         bug with assuming the column cache has > 0 items in it.  Fixes BGO #525598.
14671 2008-04-01  Alexander Hixon  <hixon.alexander@mediati.org>
14673         * src/Extensions/Banshee.Daap/Daap/ServiceLocator.cs: Use Generics instead
14674         of Hashtable. Use IPv4 addresses where available, but still provide
14675         fallbacks to whatever we first got if we didn't get any other alternatives.
14677         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapService.cs: Update from
14678         changes in ServiceLocator, since we get OnServiceAdded multiple times now.
14680         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapSource.cs: Spit out a
14681         warning dialog if we fail to connect. Hookup the TrackAdded callback, and
14682         stubbed out TrackRemoved. Implement IImportSource (doesn't do much yet).
14684 2008-04-01  Alexander Hixon  <hixon.alexander@mediati.org>
14686         * src/Extensions/Banshee.Daap/Daap/ServiceLocator.cs: Slightly better
14687         workaround for IPv6 addresses (that is, only listen for IPv4 addresses).
14689         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapContainerSource.cs: Remove
14690         commented Add/RemoveChildSource and Count overrides.
14692 2008-04-01  Alexander Hixon  <hixon.alexander@mediati.org>
14694         * src/Extensions/Extensions.mds:
14695         * src/Extensions/Banshee.Daap/Banshee.Daap.mdp: Add the DAAP extension to
14696         the Extensions solution, and add new files.
14698         * src/Extensions/Banshee.Daap/Daap/ServiceLocator.cs: Workaround for bug
14699         in Mono where we can't correctly work with IPv6 addresses.
14701         * src/Extensions/Banshee.Daap/Makefile.am:
14702         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapSource.cs: Add Unmap
14703         support, remove hacky Client connecting code, remove tracks from DB once
14704         we're finished with them, cleaned up status messages, and use new classes.
14706         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapLoginDialog.cs: Port login
14707         dialog from stable.
14709         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapTrackInfo.cs: Move
14710         DAAP.Track to TrackInfo logic out into seperate class that inherits from
14711         DatabaseTrackInfo.
14713         * src/Core/Banshee.Core/Banshee.Base/Paths.cs: Check to see if the path
14714         passed was null or empty before performing path operations.
14716         * build/build.environment.mk: Depend on ThickClient, not just Services.
14718 2008-03-31  Gabriel Burt  <gabriel.burt@gmail.com>
14720         * src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs:
14721         * src/Core/Banshee.Services/Banshee.Playlist/AbstractPlaylistSource.cs:
14722         * src/Core/Banshee.Services/Banshee.Sources/ErrorSource.cs:
14723         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs:
14724         * src/Core/Banshee.Services/Banshee.Sources/Source.cs:
14725         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdSource.cs:
14726         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapContainerSource.cs:
14727         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapSource.cs:
14728         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSource.cs:
14729         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationSource.cs:
14730         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingSource.cs:
14731         Change the default for CanSearch and CanRename to false, and add a virtual
14732         Count implementation that returns 0.  Less cruft for many subclasses to
14733         implement.
14735         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs: Don't show
14736         the menu unless it has > 0 visible items.
14738 2008-03-31  Aaron Bockover  <abock@gnome.org>
14740         * libbanshee/banshee-player-cdda.c:
14741         * libbanshee/banshee-player-cdda.h:
14742         * libbanshee/banshee-player-equalizer.c:
14743         * libbanshee/banshee-player-missing-elements.c:
14744         * libbanshee/banshee-player-missing-elements.h:
14745         * libbanshee/banshee-player-pipeline.c: 
14746         * libbanshee/banshee-player-pipeline.h:
14747         * libbanshee/banshee-player-private.h:
14748         * libbanshee/banshee-player-video.h:
14749         * libbanshee/banshee-player.c: 
14750         * libbanshee/banshee-player.h: Hopefully the last big round of changes
14751         to the player engine; moved the main pipeline and equalizer code into
14752         separate modules so banshee-player is basically just the p/invokable 
14753         'public' API and doesn't contain much logic at all
14754         
14755         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs: 
14756         Updated to reflect API changes in libbanshee
14758 2008-03-31  Gabriel Burt  <gabriel.burt@gmail.com>
14760         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumInfo.cs:
14761         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistInfo.cs:
14762         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
14763         Handle Title/Name being null in *Lowered getter. Fixes BGO #525448.
14765 2008-03-31  Gabriel Burt  <gabriel.burt@gmail.com>
14767         * src/Libraries/Hyena/Hyena.Query/DateQueryValue.cs:
14768         * src/Libraries/Hyena/Hyena.Query/IntegerQueryValue.cs:
14769         * src/Libraries/Hyena/Hyena.Query/RelativeTimeSpanQueryValue.cs:
14770         * src/Libraries/Hyena/Hyena.Query/TimeSpanQueryValue.cs: Pass
14771         InvariantCulture in ToString calls, though probably not too necessary for
14772         ints and strings.
14774         * tests/Makefile.am:
14775         * tests/Hyena/QueryTests.cs: New tests for query parsing etc.
14776         Currently failing to round trip a couple user queries.
14778 2008-03-31  Gabriel Burt  <gabriel.burt@gmail.com>
14780         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteCommand.cs: Make sure
14781         to create the SQL with culturally invariant string formatting.  Fixes BGO
14782         #524871.
14784         * tests/Hyena/SqliteCommandTests.cs: Test HyenaSqliteCommand in many ways,
14785         including testing for the above bug.
14787         * tests/Makefile.am: Set to run in it_IT so we can check for cultural
14788         issues.
14790 2008-03-31  Aaron Bockover  <abock@gnome.org>
14792         * libbanshee/banshee-player.c:
14793         * libbanshee/banshee-player.h:
14794         * libbanshee/banshee-player-video.c: 
14795         * libbanshee/banshee-player-video.h: Split out video related code into a
14796         separate module
14798         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs: 
14799         Updated to reflect changes in libbanshee
14801         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
14802         Make the engine service IDisposable and dispose of its child engines
14804 2008-03-31  Aaron Bockover  <abock@gnome.org>
14806         * libbanshee/banshee-player.c: 
14807         * libbanshee/banshee-player.h:
14808         * libbanshee/banshee-player-missing-elements.c: 
14809         * libbanshee/banshee-player-missing-elements.h: Moved code that handles
14810         missing plugins/plugin installation into a separate module
14812 2008-03-31  Gabriel Burt  <gabriel.burt@gmail.com>
14814         * src/Core/Banshee.Core/Banshee.IO/Utilities.cs: Uncomment
14815         DeleteFileTrimmingParentDirectories method, fixes BGO #524914.
14817 2008-03-31  Gabriel Burt  <gabriel.burt@gmail.com>
14819         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
14820         Before incrementing play/skip count, Refresh the track so we don't
14821         overwrite any changes that have been made since it started playing.  Fixes
14822         BGO #525061.
14824         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackActions.cs: Remove
14825         debug WriteLine.
14827         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs: Add
14828         Refresh method that takes an object and reloads its data from the database.
14830 2008-03-31  Gabriel Burt  <gabriel.burt@gmail.com>
14832         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingSource.cs:
14833         Only pulse Now Playing if the new item is a video and we're not auto
14834         switching to Now Playing.
14836 2008-03-31  Gabriel Burt  <gabriel.burt@gmail.com>
14838         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Move SetStatus and
14839         HideStatus methods here from StationSource since they are generally useful.
14841         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationSource.cs: Use
14842         Source's SetStatus and HideStatus methods, and move the account button
14843         status code into a static method on LastfmSource.
14845         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSource.cs: Set
14846         the status when not connected.
14848 2008-03-31  Gabriel Burt  <gabriel.burt@gmail.com>
14850         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: When one of our
14851         SourceMessages is updated, notify the message bar.  Fixes bug where the
14852         message bar didn't update with new icon/text etc.
14854         * src/Core/Banshee.Services/Banshee.Sources/SourceMessage.cs: Get rid of
14855         unnecessary Interlocked calls.
14857         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSource.cs: Add
14858         check for whether personal station is for this user, and if so, don't load
14859         for non-subscribers.
14861         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationType.cs: Don't
14862         set the personal station type as subscriber-only - this was my
14863         misunderstanding; non-subscribers can have personal stations for any user
14864         but themselves.
14866 2008-03-31  Sebastian Dröge  <slomo@circular-chaos.org>
14868         * build/m4/banshee/daap.m4: Remove old, obsolete file.
14870 2008-03-31  Gabriel Burt  <gabriel.burt@gmail.com>
14872         * src/Core/Banshee.Widgets/Banshee.Widgets/TileView.cs:
14873         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSourceContents.cs:
14874         Fix up some style issues on the last.fm data screen.  Still have white
14875         fonts on darkilouche when should be black.
14877 2008-03-31  Aaron Bockover  <abock@gnome.org>
14879         * build/build.environment.mk:
14880         * src/Extensions/Banshee.Daap/Makefile.am:
14881         * src/Extensions/Extensions.mds:
14882         * src/Extensions/Makefile.am: Enable the DAAP extension in the build
14884 2008-03-31  Sebastian Dröge  <slomo@circular-chaos.org>
14886         * build/m4/banshee/mono-zeroconf.m4:
14887         * configure.ac:
14888         * src/Extensions/Banshee.Daap/Makefile.am: Add autotools magic to
14889         build the Daap extension. It's still not built by default yet.
14891 2008-03-31  Aaron Bockover  <abock@gnome.org>
14892         
14893         * libbanshee/banshee-player-cdda.h: Split out all of the special code
14894         for handling CDDA nicely into a separate easy to maintain file; fixes
14895         some CDDA bugs and is documented so I don't forget why I wrote half
14896         this crap again
14897         
14898         * libbanshee/banshee-player.c: Renamed a lot of stuff to be less confusing
14899         with actual GStreamer API, uses bp_ function prefix and BansheePlayer 
14900         prefix for structs and callbacks
14902         * libbanshee/banshee-player.h: Split out some stuff to a proper header 
14903         file even though it should never be used outside of p/invoke from managed
14905         * libbanshee/gst-tagger.c:
14906         * libbanshee/gst-tagger.h: Nuked, this code has never actually been used
14907         since we use a fully managed tagging solution (TagLibg#) - it's just been
14908         library bloat for a couple of years - awesome
14910         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs: 
14911         Updated to call into the new bp_ functions
14913 2008-03-31  Scott Peterson <lunchtimemama@gmail.com> 
14915         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/PersistentColumnController.cs:
14916         Queue saving of column widths.
14918         * src/Libraries/Hyena/Hyena.Data/ColumnDescription.cs: Added a
14919         WidthChanged event.
14921         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnHeaderCellText.cs:
14922         Better MinWidth math.
14924         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/Column.cs: Formatting fixes.
14926         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnController.cs: Seperate
14927         reaction to width changes from visibility changes. Get rid of
14928         QueueUpdate since it is no longer used.
14930         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_DragAndDrop.cs:
14931         Abstracted out the drag scroll stuff so that it can be used for
14932         both the hadjustment and vadjustment.
14934         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Windowing.cs:
14935         Call new column resize methods when nessisary. Moved canvas
14936         generation into its own method so that it can be done after column
14937         resizing.
14939         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Header.cs:
14940         Loads of fun stuff. Columns now never get smaller than their
14941         minimum size. All availible width is used, and when there is no
14942         more room, we have an hadjustment. Lots of math to make sure that
14943         columns maintain their reletive sizes for as long as possible.
14945         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
14946         Take the hadjustment into account when rendering.
14948         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
14949         Added horizontal adjustment. Abstracted some of the
14950         OnMotionNotifyEvent stuff so we can send synthetic motion events
14951         when the list is automatically scrolling horizontally, but the
14952         mouse is not moving.
14954         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Model.cs:
14955         Use new UpdateAdjustments override.
14957         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCellText.cs: Use virtual
14958         property rather than private field for ellipsize mode.
14960 2008-03-30  Aaron Bockover  <abock@gnome.org>
14962         * build/m4/banshee/gstreamer.m4: Link against CDDA base library
14964         * libbanshee/: Starting to reorganize some things, added an MD project
14966         * src/Libraries/MusicBrainz/MusicBrainz/MusicBrainzItem.cs:
14967         * src/Libraries/MusicBrainz/MusicBrainz/Release.cs:
14968         * src/Libraries/MusicBrainz/MusicBrainz/Track.cs: Fix synced from 
14969         main repository 
14971 2008-03-30  Gabriel Burt  <gabriel.burt@gmail.com>
14973         This commit adds Jump to Playing support, and hides the search box for
14974         sources that can't be search.
14976         * Makefile.am: Add make test target.
14978         * src/Clients/Nereid/Nereid/ViewContainer.cs: Keep the visibility of the
14979         search entry tied to whether its sensitive (eg hide if !source.CanSearch).
14981         * src/Clients/Nereid/Nereid/PlayerInterface.cs: When changing the active
14982         source is changed, if the view used implements the new
14983         ITrackModelSourceContents interface, set some properties on the source
14984         itself linking ith with the Track/Artist/Album views.
14986         * src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs: Be even more
14987         defensive when setting the active source.
14989         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml:
14990         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackActions.cs: Add Jump to
14991         Playing Song/Video action.
14993         * src/Core/Banshee.ThickClient/Makefile.am:
14994         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/ITrackModelSourceContents.cs:
14995         New interface for source contents that have track, artist, and album
14996         IListView<T>s.
14998         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/CompositeTrackSourceContents.cs:
14999         Implement ITrackModelSourceContents.
15001         * src/Libraries/Hyena.Gui/Makefile.am:
15002         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/IListView.cs: New interface that
15003         ListView implements.  Will allow us to implement alternative views for
15004         track/artist/albums but still have some sharing functionality (like jump
15005         to playing track).
15007         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/Column.cs: Fix newlines.
15009         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView.cs: Implement
15010         IListView.
15012         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
15013         Change ScrollToRow to ScrollTo, and add CenterOn method (both implementing
15014         IListView).
15016         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Model.cs: Use
15017         CenterOn method instead of implementing it here too.
15019 2008-03-30  Alexander Hixon  <hixon.alexander@mediati.org>
15021         * src/Extensions/Banshee.Daap/daap-sharp/Mono.Zeroconf: Nuke this since
15022         we now use the Mono.Zeroconf assembly instead of some random stuff we
15023         compile.
15025 2008-03-30  Alexander Hixon  <hixon.alexander@mediati.org>
15027         * src/Extensions/Banshee.Daap/daap-sharp/Server.cs
15028         * src/Extensions/Banshee.Daap/daap-sharp/Database.cs:
15029         * src/Extensions/Banshee.Daap/daap-sharp/Client.cs: Fix some warnings so
15030         it is actually possible to build the thing.
15032         * src/Extensions/Banshee.Daap/daap-sharp/ContentCodeBag.cs: Only load the
15033         content-code resource, instead of everything.
15035         * src/Extensions/Banshee.Daap/daap-sharp/ServiceLocator.cs:
15036         * src/Extensions/Banshee.Daap/daap-sharp/Server.cs: Use Mono.Zeroconf
15037         instead of having #if statements all over the place to support both direct
15038         Avahi support and Mono.Zeroconf.
15040         * src/Extensions/Banshee.Daap/Makefile.am: Use the Mono.Zeroconf package
15041         directly. We should probably build this info the build/*.mk stuff.
15043         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapSource.cs: Try to connect
15044         to the source anyway, even if we fail - wrap it in a try as well.
15046         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapService.cs: Dispose any
15047         child sources that are connected to stuff when we dispose the service.
15049         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapContainerSource.cs:
15050         Implement Count override. Woops.
15052 2008-03-30  Alexander Hixon  <hixon.alexander@mediati.org>
15054         * src/Extensions/Banshee.Daap/daap-sharp: Copy across daap-sharp from
15055         old-code.
15057         * src/Extensions/Banshee.Daap/Banshee.Daap.mdp:
15058         * src/Extensions/Banshee.Daap/Makefile.am:
15059         * src/Extensions/Banshee.Daap/Banshee.Daap:
15060         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapSource.cs:
15061         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapService.cs:
15062         * src/Extensions/Banshee.Daap/Banshee.Daap/DaapContainerSource.cs:
15063         * src/Extensions/Banshee.Daap/Resources/Banshee.Daap.addin.xml: Import
15064         Daap extension that I've completed so far. Isn't hooked up to the 
15065         the Extensions Makefile yet, so this doesn't build. Also, if you did
15066         hook it up, my autotools foo isn't up to scratch so you'd probably have
15067         to modify something. :)
15069 2008-03-30  Alexander Hixon  <hixon.alexander@mediati.org>
15071         * src/Libraries/Lastfm/Lastfm/AudioscrobblerConnection.cs: Changed a few
15072         multiline comments to single line comments. Fixed some logging bits that
15073         would accidentally be displayed to the user instead of silently being
15074         sent to the console. Closes BGO #524954.
15076 2008-03-30  Gabriel Burt  <gabriel.burt@gmail.com>
15078         * src/Backends/Banshee.Gnome/Banshee.GnomeBackend/GConfConfigurationClient.cs:
15079         Optimize CreateKey method.
15081         * src/Core/Banshee.Core/Banshee.Base/Paths.cs:
15082         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
15083         Use the CachedLibraryLocation to save a lot of unnecessary work.
15084         LibraryLocation should probably just be cached itself.
15086         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs: If a
15087         service fails to start, log the exception.
15089         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs: Add a
15090         couple TODOs about reusing some object [].
15092         * tests/Hyena/StringUtilTests.cs: Add another test case.
15094 2008-03-30  Alexander Hixon  <hixon.alexander@mediati.org>
15096         * src/Core/Banshee.Services/Banshee.PlaybackController/ICanonicalPlaybackController.cs:
15097         * src/Core/Banshee.Services/Banshee.PlaybackController/IBasicPlaybackController.cs:
15098         Update interfaces to provide for repeat support in playback controller.
15100         * src/Core/Banshee.Services/Banshee.PlaybackController/PlaybackControllerService.cs:
15101         Add repeat support to controller service, call updated PlaybackController
15102         methods provided by sources. 'Repeat Single' only activates at the end of
15103         a stream, not if you forcefully change tracks.
15105         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackRepeatActions.cs:
15106         Don't disable the repeat actions, since they're now working. Also hook
15107         up changing the RadioAction to changing the current PlaybackRepeatMode.
15109         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
15110         Update to reflect changes in playback controller interfaces.
15112 2008-03-29  Aaron Bockover  <abock@gnome.org>
15114         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdTrackInfo.cs:
15115         Prepare the CDDA URI properly (it needs the track number, not index)
15117 2008-03-29  Aaron Bockover  <abock@gnome.org>
15119         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdService.cs:
15120         Remove all AudioCdSources when disposing the service and clear the map
15122         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdSource.cs:
15123         If the disc is playing, tell the player engine that track information was
15124         updated after the metadata is loaded from MB; disable all tracks when
15125         ejecting so they can't be played while the eject is in progress
15127 2008-03-29  Aaron Bockover  <abock@gnome.org>
15129         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
15130         Queue a timeout when the engine goes to idle; if when the timeout handler
15131         runs the engine is still idle, then fade the display out; the timeout is
15132         necessary to avoid a fade when we are really just transitioning tracks
15134         * src/Core/Banshee.ThickClient/Banshee.Gui/BansheeActionGroup.cs: Set
15135         action.StockId if the <Action>IconName property is set
15137         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdSource.cs: Set
15138         the unmap icon to eject and do not allow renaming of the source
15140         * src/Clients/Nereid/Nereid/PlayerInterface.cs: Update the source title
15141         in the view container when the active source is updated
15143 2008-03-29  Aaron Bockover  <abock@gnome.org>
15145         * src/Core/Banshee.Widgets/Banshee.Widgets/HoverImageButton.cs: Removed
15146         unnecessary property override
15148 2008-03-29  Aaron Bockover  <abock@gnome.org>
15150         * src/Core/Banshee.Widgets/Banshee.Widgets/SearchEntry.cs: Properly fix
15151         the style/color issue with the search entry (BGO #504633) by doing a style
15152         update when the entry style changes and when the entry state changes
15154         * src/Core/Banshee.Widgets/Banshee.Widgets/HoverImageButton.cs: Call the
15155         base expose event, which was preventing the style changes from being
15156         reflected (BGO #504633)
15158 2008-03-29  Aaron Bockover  <abock@gnome.org>
15160         * libbanshee/gst-playback-0.10.c: Actually set the pipeline to NULL, not
15161         PAUSED when stopping the pipeline so any resources locked by the pipeline
15162         are released
15164         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Added ClearMessages
15166         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdDiscModel.cs:
15167         Search for metadata using MusicBrainz
15169         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdSource.cs:
15170         Show status messages when searching for metadata and ejecting; if the
15171         playing track is located on the disc that is to be ejected, stop the
15172         playback before ejecting to release the device lock
15174         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdTrackInfo.cs:
15175         Hold a reference to the model on each track in the model so it can
15176         be checked when ejecting
15178 2008-03-29  Gabriel Burt  <gabriel.burt@gmail.com>
15180         Thanks to Allan Day for suggesting these changes.
15182         * src/Clients/Nereid/Nereid/PlayerInterface.cs: Change the title to be
15183         "title by artist" instead of "title (artist)".
15185         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/NotificationAreaService.cs:
15186         Change the skip button text to 'Skip this item' instead of 'Play next item'.
15188 2008-03-29  Sebastian Dröge  <slomo@circular-chaos.org>
15190         * libbanshee/gst-transcode-0.10.c:
15191         Remove 'const' keyword from the output_uri as we don't use it as
15192         const and this produces compiler warnings.
15194 2008-03-29  Alexander Hixon  <hixon.alexander@mediati.org>
15196         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackRepeatActions.cs:
15197         Simple fix that removes the mnemonic conflict between 'Repeat Single' and
15198         'Next'. Closes BGO #501889. Based on patch from Alex Kloss.
15200 2008-03-29  Alexander Hixon  <hixon.alexander@mediati.org>
15202         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackActions.cs: Remember
15203         the shuffle state over restarts. Fixes BGO #523681.
15205         * src/Core/Banshee.Widgets/Banshee.Widgets/HoverImageButton.cs:
15206         * src/Core/Banshee.Widgets/Banshee.Widgets/SearchEntry.cs: Make sure we
15207         set the background colour correctly depending on the Sensitive state.
15208         Closes BGO #504633.
15210 2008-03-29  Gabriel Burt  <gabriel.burt@gmail.com>
15212         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSourceContents.cs:
15213         Remove all children when refreshing.  And add playcount to top artist tiles.
15215 2008-03-29  Gabriel Burt  <gabriel.burt@gmail.com>
15217         * src/Core/Banshee.Services/Banshee.Collection/MemoryTrackListModel.cs:
15218         Fully bounds check the index before accessing it.  Fixes BGO #524805.
15220 2008-03-29  Gabriel Burt  <gabriel.burt@gmail.com>
15222         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSourceContents.cs:
15223         Make much much prettier.  Pack in a RoundedFrame, draw white bg, add Top
15224         Artists, make button presses pretty, make vertically scrollable.
15226         * src/Core/Banshee.Widgets/Banshee.Widgets/TileView.cs: Fix bug where
15227         wouldn't expand set a height request of more than 1, so unless packed in a
15228         vbox with fill/expand = true, it wasn't visible.
15230         * src/Libraries/Hyena.Gui/Hyena.Widgets/RoundedFrame.cs: Fix bug with not
15231         having the child calculate its size request before trying to get it.
15233         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
15234         Add improved metadata refreshing support - store a value in the
15235         CoreConfiguration when its successful, meaning it will keep retrying unti
15236         it is (so if you close it or it dies before its done, no big deal).
15238         * src/Libraries/Lastfm/Lastfm/AudioscrobblerConnection.cs:
15239         * src/Libraries/Lastfm/Lastfm/RadioConnection.cs: Clean up
15240         comments/debugging.
15242         * src/Core/Banshee.ThickClient/Banshee.Gui/IconThemeUtils.cs: Check name
15243         and return if null/empty.
15245 2008-03-29  Gabriel Burt  <gabriel.burt@gmail.com>
15247         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Be more
15248         careful with types when iterating over action proxies.  Should fix BGO
15249         #524706.  Thanks to Matt Enright for the pointer.
15251 2008-03-28  Aaron Bockover  <abock@gnome.org>
15253         * src/Backends/Banshee.Hal/Banshee.HalBackend/BlockDevice.cs:
15254         * src/Backends/Banshee.Hal/Banshee.HalBackend/Volume.cs: Actually return
15255         a real device node
15257         * src/Core/Banshee.Services/Banshee.Hardware/IVolume.cs: Added a DeviceNode
15258         property since volumes have 'em as well
15260         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdDiscModel.cs:
15261         Read the audio CD tracks from the disc and push to the model
15263         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdSource.cs:
15264         Load the model
15266         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdTrackInfo.cs:
15267         TrackInfo object specific to the audio cd
15269 2008-03-28  Aaron Bockover  <abock@gnome.org>
15271         * build/build.environment.mk:
15272         * build/pkg-config/banshee-1-core.pc.in:
15273         * build/pkg-config/banshee-1-musicbrainz.pc.in:
15274         * configure.ac:
15275         * src/Libraries/Libraries.mds:
15276         * src/Libraries/Makefile.am:
15277         * src/Libraries/MusicBrainz/: Added Scott's musicbrainz-sharp code locally
15278         to the project for now; in the future we will just depend on the library
15279         but for now we'll incubate it
15281         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdDiscModel.cs:
15282         Renamed from AudioCdDisc, inhereit MemoryTrackListModel
15284         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdService.cs:
15285         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdSource.cs:
15286         Changes to reflect the model stuff
15288 2008-03-28  Aaron Bockover  <abock@gnome.org>
15290         * src/Core/Banshee.Services/Banshee.Hardware/IVolume.cs: Added Eject
15291         and Unmount properties/methods
15293         * src/Backends/Banshee.Hal/Banshee.HalBackend/Volume.cs: Implemented
15294         the new Eject/Unmount members
15296         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdService.cs:
15297         Make UnmapDiscVolume internal so the source can call it when being
15298         unmapped by the user
15300         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdSource.cs:
15301         Implement the unmap method to eject the disc from the drive
15303         * src/Libraries/Hyena/Hyena/Log.cs: Added an Exception method to which
15304         all exceptions that are handled should be logged; currently it just
15305         prints the exception, but we should later save them to a log file
15307 2008-03-28  Aaron Bockover  <abock@gnome.org>
15309         * src/Backends/Banshee.Hal/Banshee.HalBackend/HardwareManager.cs:
15310         * src/Core/Banshee.Services/Banshee.Hardware/HardwareManager.cs:
15311         * src/Core/Banshee.Services/Banshee.Hardware/IHardwareManager.cs: Added
15312         hardware add/remove events and properly resolve the devices in the HAL
15313         backend 
15315         * src/Backends/Banshee.Hal/Banshee.HalBackend/Volume.cs: Resolve a 
15316         volume device manually if no parent is passed
15318         * src/Core/Banshee.Services/Banshee.Collection/MemoryTrackListModel.cs:
15319         Moved from Last.fm since it's useful for other sources; provides a 
15320         track model that uses an in-memory generic List for storage
15322         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs: 
15323         Provide a property for easily accessing the HardwareManager
15324         
15325         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdDisc.cs: Empty
15326         stub of the disc object we'll need soon
15328         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdService.cs:
15329         Implemented most of the service that manages disc sources from the 
15330         HardwareManager; awesome
15332         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdSource.cs:
15333         Stubbed out most things we'll need in the audio CD source
15335         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationSource.cs:
15336         Use the MemoryTrackListModel object
15338 2008-03-28  Aaron Bockover  <abock@gnome.org>
15340         * build/build.environment.mk:
15341         * configure.ac:
15342         * src/Extensions/Extensions.mds:
15343         * src/Extensions/Makefile.am: Build the new audio CD service
15345         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd.addin.xml: Addin mainifest
15346         for the audio CD extension
15348         * src/Extensions/Banshee.AudioCd/Banshee.AudioCd/AudioCdService.cs: 
15349         Stubbed out the empty audio CD service object
15351 2008-03-28  Aaron Bockover  <abock@gnome.org>
15353         * src/Backends/Banshee.Hal/Banshee.HalBackend/BlockDevice.cs: Implement
15354         GetEnumerator to provide child volumes
15356         * src/Backends/Banshee.Hal/Banshee.HalBackend/Device.cs:
15357         * src/Backends/Banshee.Hal/Banshee.HalBackend/DiskDevice.cs:
15358         * src/Backends/Banshee.Hal/Banshee.HalBackend/CdromDevice.cs: 
15359         * src/Backends/Banshee.Hal/Banshee.HalBackend/HardwareManager.cs: Fix up
15360         protection levels and support holding on to the manager reference
15362         * src/Backends/Banshee.Hal/Banshee.HalBackend/Volume.cs: Implemented the
15363         base HAL volume object with some properties
15365         * src/Backends/Banshee.Hal/Banshee.HalBackend/DiscVolume.cs: Implemented
15366         a child HAL volume object for optical disc volumes
15368         * src/Core/Banshee.Services/Banshee.Hardware/IDiscVolume.cs: Added 
15369         MediaCapacity property
15371         * src/Core/Banshee.Services/Banshee.Hardware/IVolume.cs: Make Available
15372         long instead of ulong since it could be invalid (-1)
15373         
15374         * src/Core/Banshee.Services/Banshee.Hardware/HardwareManager.cs: Add
15375         some more tests/debug
15377 2008-03-28  Gabriel Burt  <gabriel.burt@gmail.com>
15379         This patch adds proper case-insensitive sorting and searching.  It should
15380         also speed searching and other ops up a bit.
15382         * src/Core/Banshee.Services/Banshee.Collection.Database/AlbumListDatabaseModel.cs:
15383         * src/Core/Banshee.Services/Banshee.Collection.Database/ArtistListDatabaseModel.cs:
15384         Add internal Reload method that doesn't raise Reloaded right way, so that
15385         the track model can trigger them to reload, reload itself, but get its
15386         alert out first so its can start redrawing while the others refresh. Also,
15387         sort by new *Lowered column.
15389         * src/Core/Banshee.Services/Banshee.Collection/BansheeListModel.cs: Add
15390         internal RaiseReload method for the track model to use on artist/album
15391         models.
15393         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
15394         Do the above mentioned shenanigans.
15396         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumInfo.cs:
15397         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistInfo.cs:
15398         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
15399         Add Title/NameLowered properties with Select = false, meaning the value is
15400         not retrieved in SELECT queries, but is INSERTed/UPDATEd.
15402         * src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs: Set
15403         some more pragas in the quest for better performance.
15405         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
15406         Add Title/NameLowered columns to CoreTracks/Artists/Albums.  Is literally
15407         just obj.Name/Title.ToLower (), but means we can do case-insensitive
15408         sorting and searching w/o having to use Sqlite's lower() method (which is
15409         slow to use on the fly vs caching this, and only works for latin1.)  Also,
15410         remove a bunch of indicies and add some new ones, in search of
15411         performance. Trigger another metadata refresh to fill the *Lowered columns.
15413         * src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs: Use the
15414         *Lowered columns for sorting and querying.
15416         * src/Libraries/Hyena/Hyena.Data.Sqlite/DatabaseColumn.cs:
15417         * src/Libraries/Hyena/Hyena.Data.Sqlite/DatabaseColumnAttribute.cs:
15418         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs:
15419         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs: Allow
15420         setting Select = True/false on the DatabaseColumn attribute, and if its
15421         false, do not SELECT it (or requier a setter on the property/field).
15422         Also, do not UPDATE or INSERT the primary key.
15424         * src/Libraries/Hyena/Hyena.Query/QueryField.cs: Determine once (instead
15425         of every time we generate SQL) whether the given column is a custom
15426         format.  Also, scan for 'Lowered' and if it's there, do not use the hacky
15427         "a like b OR lower(a) like b.ToLower ()".
15429         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmTrackListModel.cs:
15430         Whitespace.
15432 2008-03-27  Aaron Bockover  <abock@gnome.org>
15434         * src/Backends/Banshee.Hal: First pass at the HAL implementation for the
15435         new hardware layer; very incomplete
15437         * src/Core/Banshee.Services/Banshee.Hardware/IHardwareManager.cs:
15438         * src/Core/Banshee.Services/Banshee.Hardware/HardwareManager.cs: Filled
15439         out some functionality; GetAllBlockDevices, GetAllCdromDevices, and
15440         GetAllDiskDevices
15442         * src/Core/Banshee.Services/Banshee.Hardware/IBlockDevice.cs:
15443         * src/Core/Banshee.Services/Banshee.Hardware/ICdromDevice.cs:
15444         * src/Core/Banshee.Services/Banshee.Hardware/IDevice.cs:
15445         * src/Core/Banshee.Services/Banshee.Hardware/IDiscVolume.cs:
15446         * src/Core/Banshee.Services/Banshee.Hardware/IDiskDevice.cs:
15447         * src/Core/Banshee.Services/Banshee.Hardware/IVolume.cs: Stubbed out
15448         more interfaces for the hardware object model
15450         * src/Core/Banshee.Services/Banshee.Services.addin.xml: Added the 
15451         hardware manager extension point
15453 2008-03-28  Alexander Hixon  <hixon.alexander@mediati.org>
15455         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Audioscrobbler/AudioscrobblerService.cs::
15456         Make sure we only scrobble and set the Now Playing information on Music
15457         tracks, rather than anything played.
15459         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Audioscrobbler/Queue.cs:
15460         Removed some extra debug spew that was unnecessary.
15462 2008-03-27  Gabriel Burt  <gabriel.burt@gmail.com>
15464         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Audioscrobbler/AudioscrobblerService.cs:
15465         Change some string comparisons to use IsNullOrEmpty.
15467 2008-03-27  Aaron Bockover  <abock@gnome.org>
15469         * src/Core/Banshee.Services/Banshee.Hardware/HardwareManager.cs: Stubbed
15470         the base hardware manager service out; load extension managers from MA
15472         * src/Core/Banshee.Services/Banshee.Hardware/IBlockDevice.cs:
15473         * src/Core/Banshee.Services/Banshee.Hardware/IDevice.cs:
15474         * src/Core/Banshee.Services/Banshee.Hardware/IHardwareManager.cs:
15475         * src/Core/Banshee.Services/Banshee.Hardware/IVolume.cs: Stubbed some
15476         basic hardware related interfaces
15478         * src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs:
15479         * src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs:
15480         * src/Core/Banshee.Services/Banshee.ServiceStack/UserJobManager.cs:
15481         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
15482         * src/Core/Banshee.Services/Banshee.PlaybackController/PlaybackControllerService.cs:
15483         Implement IRequiredService since we can't survive without these
15485         * src/Core/Banshee.Services/Banshee.ServiceStack/IRequiredService.cs: 
15486         Services that are important enough to cause startup to fail if they cannot
15487         be started should implement IRequiredService
15489         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:
15490         Do not bail if a core service throws an exception that is not an 
15491         IRequiredService
15493 2008-03-27  Gabriel Burt  <gabriel.burt@gmail.com>
15495         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Fix formatting
15496         issue with showing full precision in certain cases when the value was < 2.
15498 2008-03-27  Gabriel Burt  <gabriel.burt@gmail.com>
15500         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumInfo.cs:
15501         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistInfo.cs:
15502         Fix issue with importing items that have null artist or album names.
15503         Fixes BGO #524600.
15505 2008-03-27  Gabriel Burt  <gabriel.burt@gmail.com>
15507         * src/Core/Banshee.Services/Banshee.PlaybackController/PlaybackControllerService.cs:
15508         The First () method is used to start playback when a source, artist, or album
15509         is activated, and represents a break from the previous playback.  It should
15510         not raise the Transition event.  Fixes BGO #524556.
15512 2008-03-27  Gabriel Burt  <gabriel.burt@gmail.com>
15514         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/AlbumListView.cs:
15515         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtistListView.cs:
15516         When an artist or album is activated, make sure we switch playback to the
15517         active source before playing the first song in the playback source.  Fixes
15518         BGO #524609.
15520 2008-03-27  Gabriel Burt  <gabriel.burt@gmail.com>
15522         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingSource.cs:
15523         Pulse the Now Playing source when a song or video starts playing and it's
15524         not the active source.
15526 2008-03-27  Gabriel Burt  <gabriel.burt@gmail.com>
15528         * data/mimetypes.txt: List of mimetypes, one per line, combining what we
15529         already had with Totem's list.
15531         * data/mimetypes.pl: Perl script that sorts and removes duplicates from
15532         mimetypes.txt, and prints out a ; separated list suitable for the .desktop
15533         file.
15535         * data/banshee-1.desktop.in.in: Use the output from mimetypes.pl, and
15536         change the name to Banshee Media Player.
15538         * src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs: Add
15539         some more file extensions to the whitelist.
15541         * src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs: Load
15542         smart playlists here just like we load playlists.
15544         * src/Core/Banshee.Services/Makefile.am:
15545         * src/Core/Banshee.Services/Banshee.Services.mdp:
15546         * src/Core/Banshee.Services/Banshee.Query/SmartPlaylistQueryValue.cs:
15547         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistCore.cs:
15548         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs: Remove
15549         SmartPlaylistCore.  The functionality from it that remained is now in
15550         SmartPlaylistSource, mostly as static methods.
15552         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
15553         Moved the SmartPlaylistCore code into here.  On the first Reload call, if
15554         we haven't yet Refresh'd, do it.
15556         * src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs: Avoid
15557         activating a source twice by returning if it's already the active souce.
15559         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/PersistentColumnController.cs:
15560         If the source has a Parent, use its UniqueId to determine what columns to
15561         show, otherwise use the source's UniqueId.
15563         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Add UniqueId
15564         property, and protected abstract TypeUniqueId that doesn't have to be
15565         unique across different Source subclasses.
15567         * src/Core/Banshee.Services/Banshee.Sources/ErrorSource.cs:
15568         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs:
15569         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSource.cs:
15570         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationSource.cs:
15571         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingSource.cs:
15572         Override TypeUniqueId and use UniqueId.
15574 2008-03-26  Aaron Bockover  <abock@gnome.org>
15576         Banshee 1.0 Alpha 2 (0.98.2) Released
15578 2008-03-26  Aaron Bockover  <abock@gnome.org>
15580         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea.dll.config:
15581         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/X11NotificationArea.cs:
15582         Change the default DllImport for libX11 directly to libX11.so.6 and then
15583         provide a .config file map that distributors could override if necessary
15585 2008-03-26  Aaron Bockover  <abock@gnome.org>
15587         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/VideoDisplay.cs:
15588         Some code clean up and render the idle logo when there is no video playing
15590         * src/Libraries/Hyena.Gui/Hyena.Gui/EntryInsertAction.cs: Avoid an NRE
15591         in the merge code
15593 2008-03-26  Gabriel Burt  <gabriel.burt@gmail.com>
15595         * src/Core/Banshee.Core/Banshee.Streaming/SaveTrackMetadataJob.cs: Port
15596         fix for Artist tag saving from stable.
15598         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/TrackEditor.cs: Remove
15599         artist/album readonly warning, whitespace fixes.
15601 2008-03-26  Gabriel Burt  <gabriel.burt@gmail.com>
15603         * NEWS: Update for forthcoming 0.98.2 release.
15605 2008-03-26  Sebastian Dröge  <slomo@circular-chaos.org>
15607         * build/m4/banshee/notify-sharp.m4:
15608         * src/Extensions/Banshee.NotificationArea/Makefile.am:
15609         * configure.ac: Allow building against an external notify-sharp if one
15610         is found. This is especially important as the next notification-daemon
15611         release in a few days changes the DBus API and a newer notify-sharp is
15612         required then.
15614 2008-03-25  Gabriel Burt  <gabriel.burt@gmail.com>
15616         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/AlbumListView.cs:
15617         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtistListView.cs:
15618         Start playing when activated.  Fixes BGO #524412.
15620         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtworkManager.cs:
15621         Catch exceptions with loading artwork.  Catches 'no data in image' error.
15623 2008-03-25  Scott Peterson <lunchtimemama@gmail.com> 
15625         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
15626         Emergency fix0rz!!1!
15628 2008-03-25  Gabriel Burt  <gabriel.burt@gmail.com>
15630         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationSource.cs:
15631         Don't display 'Add Station' action when on a station source.
15633 2008-03-25  Scott Peterson <lunchtimemama@gmail.com> 
15635         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Header.cs:
15636         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
15637         Use QueueDraw.
15639         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
15640         New QueueDraw method so that new rendering model will properly
15641         update.
15643 2008-03-25  Aaron Bockover  <abock@gnome.org>
15645         * build/Makefile.am: Removed the old .pc file, SUBDIRS the new pkg-config 
15647         * build/pkg-config/Makefile.am: Generate .pc files from the .pc.in files
15649         * build/pkg-config/banshee-1-core.pc.in:
15650         * build/pkg-config/banshee-1-hyena-gui.pc.in:
15651         * build/pkg-config/banshee-1-hyena.pc.in:
15652         * build/pkg-config/banshee-1-lastfm-gui.pc.in:
15653         * build/pkg-config/banshee-1-lastfm.pc.in:
15654         * build/pkg-config/banshee-1-mono-media.pc.in:
15655         * build/pkg-config/banshee-1-services.pc.in:
15656         * build/pkg-config/banshee-1-thickclient.pc.in: .pc files that represent
15657         the entire assembly layout of the core Banshee Media Framework
15659         * configure.ac: Bumped version
15661 2008-03-25  Gabriel Burt  <gabriel.burt@gmail.com>
15663         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingSource.cs:
15664         Change icon to application-multimedia.  Not perfect, but at least not
15665         confusing with the play button.
15667         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs: Override
15668         clear, calling base and resetting the first_order_id, fixing bug in
15669         IndexOf that was causing playback issues with smart playlists.
15671         * src/Libraries/Hyena/Hyena.Data/ArrayModelCache.cs:
15672         * src/Libraries/Hyena/Hyena.Data/DictionaryModelCache.cs:  Remove lock
15673         around Clear method since now done in subclass.
15675 2008-03-25  Wouter Bolsterlee  <wbolster@svn.gnome.org>
15677         reviewed by: Gabriel Burt  <gabriel.burt@gmail.com>
15679         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs:
15681         Correctly guard against null SourceView instances, so
15682         that non-Nereid clients without a SourceView do not
15683         instantly crash upon startup. Patch suggested by Gabriel
15684         Burt on IRC.
15686 2008-03-25  Aaron Bockover  <abock@gnome.org>
15688         * src/Clients/Nereid/Nereid/PlayerInterface.cs:
15689         Set the source on the track view column controller when it changes
15691         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/PersistentColumnController.cs:
15692         Preliminary work to allow column settings to persist against each primary
15693         source; all settings go to the default save location for now
15695         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
15696         Set the FillAlpha when rendering the sort rectangle for the column so it
15697         blends with the row rules
15699         * src/Libraries/Hyena.Gui/Hyena.Gui.Theming/GtkTheme.cs: Render the
15700         row rule with a set FillAlpha
15702 2008-03-25  Gabriel Burt  <gabriel.burt@gmail.com>
15704         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumInfo.cs:
15705         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistInfo.cs:
15706         In FindOrCreate methods, cache the last result to avoid looking up an
15707         artist and album for each track in an album.
15709         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
15710         Within the Save method make sure the artist and album are up to date and
15711         in the database.
15713         * src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs:
15714         Album/artist creation now done in DatabaseTrackInfo.
15716         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/TrackEditor.cs:
15717         Re-enable editing of artist/albums.
15719         * src/Libraries/Hyena/Hyena.Data/ArrayModelCache.cs: Forgot to put
15720         threading fix in this when previously updated DictionaryModelCache.
15722 2008-03-25  Gabriel Burt  <gabriel.burt@gmail.com>
15724         * src/Core/Banshee.Services/Banshee.Collection.Database/AlbumListDatabaseModel.cs:
15725         * src/Core/Banshee.Services/Banshee.Collection.Database/ArtistListDatabaseModel.cs:
15726         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumInfo.cs:
15727         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistInfo.cs:
15728         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
15729         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryArtistInfo.cs:
15730         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
15731         * src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs:
15732         * src/Core/Banshee.Services/Makefile.am: Rename LibraryArtistInfo class to
15733         DatabaseArtistInfo.
15735 2008-03-25  Gabriel Burt  <gabriel.burt@gmail.com>
15737         * src/Core/Banshee.Core/Resources/translators.xml: Updated.
15739         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingSource.cs:
15740         Don't allow renaming or searching.
15742 2008-03-24  Gabriel Burt  <gabriel.burt@gmail.com>
15744         This patch fixes issues with smart playlist/search date fields not working
15745         right/at all.  Also adds support for different widgets within one field on
15746         the smart playlist editor dialog (eg absolute dates vs relative dates for
15747         date fields).
15749         * src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs: Use new
15750         TimeSpanQueryValue for DurationField, and use RelativeTimeSpanQueryValue
15751         in addition to DateQueryValue for LastPlayed/Skipped.
15753         * src/Core/Banshee.Services/Banshee.SmartPlaylist/Migrator.cs: Use new
15754         RelativeTimeSpanQueryValue class.
15756         * src/Core/Banshee.ThickClient/Banshee.Query.Gui/SmartPlaylistQueryValueEntry.cs:
15757         Avoid crashing if there are no smart playlists.
15759         * src/Libraries/Hyena.Gui/Hyena.Query.Gui/DateQueryValueEntry.cs: Old code
15760         moved mostly to *TimeSpanQueryValueEntry, replaced with an actual abs date
15761         entry.
15763         * src/Libraries/Hyena.Gui/Hyena.Query.Gui/NullQueryValueEntry.cs: Empty,
15764         if the user has selected this 'operator', no more UI is needed.
15766         * src/Libraries/Hyena.Gui/Hyena.Query.Gui/QueryTermBox.cs: Handle
15767         QueryFields having multiple ValueTypes (each with their own set of
15768         operators).  This allows us to have both relative dates and absolute date
15769         widegts for one field (LastPlayed, say).
15771         * src/Libraries/Hyena.Gui/Hyena.Query.Gui/QueryTermsBox.cs: When creating
15772         a new row, set it to the previous row's field/operator.
15774         * src/Libraries/Hyena.Gui/Hyena.Query.Gui/QueryValueEntry.cs: Connect new
15775         QueryValue types to their Entry types.  Add static lookup method.
15777         * src/Libraries/Hyena/Hyena.Query/DateQueryValue.cs: Move the
15778         relative/TimeSpan code out.
15780         * src/Libraries/Hyena.Gui/Makefile.am:
15781         * src/Libraries/Hyena/Hyena.Query/NullQueryValue.cs: New QueryValue class with
15782         one operator to see if a value is null.
15784         * src/Libraries/Hyena.Gui/Hyena.Query.Gui/RelativeTimeSpanQueryValueEntry.cs:
15785         * src/Libraries/Hyena.Gui/Hyena.Query.Gui/TimeSpanQueryValueEntry.cs: New
15786         classes, mostly a copy of the old DateQueryValueEntry code, with an entry
15787         and a units (factors) dropdown (and an "ago" label for the Relative one).
15789         * src/Libraries/Hyena/Hyena.Query/QueryField.cs: Instead of QueryFields
15790         having one ValueType, make it an array.
15792         * src/Libraries/Hyena/Hyena.Query/QueryTermNode.cs:
15793         * src/Libraries/Hyena/Hyena.Query/QueryValue.cs: Handle multiple ValueTypes.
15795         * src/Libraries/Hyena/Hyena.Query/QueryOperator.cs: If the Label is null
15796         return the Name.  Useful for debugging with adding new operators.
15798         * src/Libraries/Hyena/Makefile.am:
15799         * src/Libraries/Hyena/Hyena.Query/TimeSpanQueryValue.cs:
15800         * src/Libraries/Hyena/Hyena.Query/RelativeTimeSpanQueryValue.cs: New files
15801         for representing time spans in queries.
15803         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSourceContents.cs:
15804         Use new ExtensionCacheRoot.
15806 2008-03-24  Aaron Bockover  <abock@gnome.org>
15808         * src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs: Use
15809         InstalledApplicationData to build the catalog path for gettext and 
15810         initialize it (whoops) (BGO #523047)
15812         * src/Core/Banshee.Core/Banshee.Base/Paths.cs: Added
15813         InstalledApplicationPrefix, InstalledApplicationDataRoot, and 
15814         InstalledApplicationData properties that are detected at runtime based
15815         on the path of the entry assembly (used to figure out datadir, basically,
15816         without having to hardcode the paths at compile time)
15818 2008-03-24  Aaron Bockover  <abock@gnome.org>
15820         * src/Clients/Nereid/Nereid/Client.cs: Implement new ClientId property
15822         * src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs: Support
15823         a stack of client objects; ideally we'll be able to run multiple clients
15824         in a single application instance (think mini mode) - this is probably
15825         not well thought out, but it's a start
15827         * src/Core/Banshee.Services/Banshee.ServiceStack/Client.cs: Added a new
15828         base Client class that is not GUI based
15829         
15830         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/PersistentColumnController.cs:
15831         Support loading/saving the column widths
15833         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
15834         Set up some good visibility defaults for the columns
15836         * src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs: Extend the
15837         new Client class and push itself into the application client stack
15839         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/SortableColumn.cs: Some new ctor
15840         signatures
15842         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/Column.cs: Some new ctor signatures
15843         and removed the IsVisible property
15845         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnController.cs: Added a 
15846         QueueUpdate method
15848         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Header.cs:
15849         Call QueueUpdate on the column controller when a column is resized
15851 2008-03-24  Aaron Bockover  <abock@gnome.org>
15853         * src/Core/Banshee.Core/Banshee.Base/CoverArtSpec.cs: Use XDG_CACHE_HOME
15854         as the base directory for the album art disk cache
15856         * src/Core/Banshee.Core/Banshee.Base/Paths.cs: Changed some other paths
15857         to use XDG_CACHE_HOME, especially for extension caches
15859         * src/Core/Banshee.Core/Banshee.Base/XdgBaseDirectorySpec.cs: Moved the
15860         XDG code into its own class from Paths
15862         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtworkManager.cs:
15863         Ensure the artwork cache directory gets created if it doesn't exist
15865         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Audioscrobbler/Queue.cs:
15866         Use the new ExtensionCacheRoot path
15868 2008-03-24  Aaron Bockover  <abock@gnome.org>
15870         * libbanshee/gst-playback-0.10.c: Disable the equalizer
15871         temporarily as it is causing a few audio problems for some people
15872         and is not properly implemented in the pipeline (BGO #523878)
15874 2008-03-24  Aaron Bockover  <abock@gnome.org>
15876         * libbanshee/gst-playback-0.10.c:
15877         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs:
15878         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngine.cs:
15879         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/VisualisationConfigBox.cs:
15880         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingInterface.cs:
15881         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingSource.cs:
15882         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying.mdp:
15883         * src/Extensions/Banshee.NowPlaying/Makefile.am: Reverted Alexander Hixon's
15884         visualization patches from 2008-03-23 since a number of people have been
15885         reporting playback issues after this landed - also it had no review
15887 2008-03-21  Gabriel Burt  <gabriel.burt@gmail.com>
15889         * src/Backends/Banshee.Gnome/Banshee.GnomeBackend/GnomeService.cs: Attempt
15890         to fix compiler error for older versions of mono.
15892 2008-03-23  Alexander Hixon  <hixon.alexander@mediati.org>
15894         * libbanshee/gst-playback-0.10.c: Fix up some tab to space formatting.
15896 2008-03-23  Alexander Hixon  <hixon.alexander@mediati.org>
15898         * src/Extensions/Banshee.NowPlaying/Makefile.am:
15899         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying.mdp:
15900         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingInterface.cs:
15901         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingSource.cs:
15902         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/VisualisationConfigBox.cs:
15903         Add a new cool-looking visualisation switcher bar to the top of the
15904         visualisation display. Hides away if we watch video.
15906         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngine.cs:
15907         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs:
15908         * libbanshee/gst-playback-0.10.c: Add support for multiple visualisations,
15909         with configurable sizes.
15911 2008-03-22  Scott Peterson <lunchtimemama@gmail.com> 
15913         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Header.cs:
15914         Moved the ColumnHeaderCellText.HasSort determination from
15915         PaintHeaderCell into RegenerateColumnCache. This means we run that
15916         code less often.
15918         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
15919         Fixed stupid bug in rendering which I can't believe I missed.
15920         Better, faster, stronger.
15922         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
15923         Regenerate the column cache after the sort column changes so that
15924         we re-assign the HasSort properties of the ColumnHeaderCellText
15926 2008-03-22  Scott Peterson <lunchtimemama@gmail.com> 
15928         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/Column.cs: Added MaxWidth
15929         property (currently not used anywhere).
15931         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Header.cs:
15932         Began reworking the column layout code. Columns will now resize
15933         themselves to take up the header width. No logic yet for min or max
15934         column widths: that's tommorrow!
15936 2008-03-22  Alexander Hixon  <hixon.alexander@mediati.org>
15938         * libbanshee/gst-playback-0.10.c: Hookup the 'goom' visualisation element
15939         to the playbin so we can watch wicked things during Now Playing for an
15940         audio track. We'd probably want to go throught the element registry
15941         to find a suitable element later.
15943 2008-03-21  Scott Peterson <lunchtimemama@gmail.com> 
15945         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_DragAndDrop.cs:
15946         Fixed rendering issue when dragging ends.
15948         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
15949         New column sorting effect.
15951         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
15952         Fixed column resize cursor appearing when the mouse is over the
15953         list.
15955 2008-03-21  Scott Peterson <lunchtimemama@gmail.com> 
15957         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Windowing.cs:
15958         Minor improvements to rendering. Vertical resizing is now much more
15959         efficient, only rendering new rows that com into view as a result
15960         of resizing (rather than rendering everything on every pass).
15962         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Header.cs:
15963         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
15964         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
15965         Minor improvements to rendering.
15967 2008-03-21  Gabriel Burt  <gabriel.burt@gmail.com>
15969         This patch implements actually updating the play/skip counts and last
15970         played/skipped stamps.
15972         * src/Clients/Nereid/Nereid/PlayerInterface.cs: Update the status bar when
15973         the active source is Updated.
15975         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Add
15976         IncrementSkipCount method and LastSkipped property, and update LastSkipped
15977         and LastPlayed within their respective Increment methods.
15979         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
15980         Save the track after incremting its play/skip count.
15982         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
15983         Add a LastSkippedStamp column to CoreTracks.
15985         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
15986         When opening a new track or uri, if there is a currently playing song, if
15987         it's over half way done, call IncrementPlayCount on it, otherwise call
15988         IncrementSkipCount.
15990         * src/Core/Banshee.Services/Banshee.PlaybackController/PlaybackControllerService.cs: 
15991         Add a NOTE about refactoring to allow models to provide the random track
15992         functionality.
15994         * src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs: Add LastSkipped
15995         query field and sorting.
15997         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
15998         Add a Last Skipped column.
16000         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmTrackInfo.cs:
16001         Within IncrementPlayCount override call the base method.
16003 2008-03-21  Aaron Bockover  <abock@gnome.org>
16005         This commit should make Banshee look better on darker themes
16007         * src/Clients/Nereid/Nereid/Client.cs: Allow ignoring the gtkrc if
16008         --no-gtkrc is passed; nice for debugging
16010         * src/Clients/Nereid/Nereid/PlayerInterface.cs: Remove the subtle 
16011         midtone coloring since I can't figure out a reliable way to make it
16012         work on darker themes and lighter themes; GTK themes seriously suck and
16013         I hate them and where in the hell is GTK 3. Seriously.
16015         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
16016         Hacky version of the mid tone stuff since it's absolutely necessary here
16018         * src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:
16019         Set a GLib log handler when in --debug mode
16021         * src/Core/Banshee.Widgets/Banshee.Widgets/SearchEntry.cs:
16022         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs:
16023         Get a proper mid tone using the base and text colors
16025         * src/Core/Banshee.Widgets/Banshee.Widgets/StreamPositionLabel.cs:
16026         Render text using the foreground, not text colors, like other text that
16027         should be rendered on background and not base
16029         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/CellContext.cs:
16030         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCellText.cs:
16031         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnHeaderCellText.cs: Allow
16032         rendering text in the cell as foreground or text colors
16034         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
16035         Fixed some small rendering/theme issues; do not render a highlight under
16036         the sorted column since it looks like ass on some themes and I'm tired
16037         of GTK themes
16039         * src/Libraries/Hyena.Gui/Hyena.Gui/CairoExtensions.cs:
16040         * src/Libraries/Hyena.Gui/Hyena.Gui.Theming/GtkTheme.cs: Add some 
16041         color foo
16043         * src/Libraries/Hyena.Gui/Hyena.Gui/ShadingTestWindow.cs: Just something
16044         I'm working on, nothing interesting, never used
16046 2008-03-21  Scott Peterson <lunchtimemama@gmail.com> 
16048         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
16049         Override QueueDraw to use our own methods. (Fixes bug where
16050         hiding/showing columns did not update list)
16052 2008-03-21  Scott Peterson <lunchtimemama@gmail.com> 
16054         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Windowing.cs:
16055         Added some rendering fixes, hook up the Pixmap canvases.
16057         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
16058         Rendering of the list is now done to an off-screen Pixmap. This is
16059         done so that we can recycle pixels when scrolling the list: the
16060         contents of the pixmap are shifted up or down by the amount of
16061         scrolling, and only the newly visible rows are rendered in place.
16063         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
16064         Don't paint everything when we're scrolling vertically.
16066         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Model.cs:
16067         Paint everything when the model changes.
16069         * src/Libraries/Hyena.Gui/Hyena.Gui.Theming/Theme.cs:
16070         * src/Libraries/Hyena.Gui/Hyena.Gui.Theming/GtkTheme.cs: Add
16071         DrawListBackground, re-ordered some methods to match their
16072         execution order for readability.
16074 2008-03-21  Gabriel Burt  <gabriel.burt@gmail.com>
16076         * src/Core/Banshee.ThickClient/Banshee.SmartPlaylist.Gui/QueryBuilder.cs:
16077         * src/Core/Banshee.ThickClient/Banshee.SmartPlaylist.Gui/QueryBuilderModel.cs:
16078         Remove.
16080 2008-03-21  Alexander Hixon  <hixon.alexander@mediati.org>
16082         * src/Core/Banshee.Widgets/Banshee.Widgets/VolumeButton.cs: Patch missing
16083         from previous revision.
16085 2008-03-21  Alexander Hixon  <hixon.alexander@mediati.org>
16087         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/TrackEditor.cs:
16088         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/PreferencesDialog.cs:
16089         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/AboutDialog.cs:
16090         Unbreak builds for people using newer versions of Gtk#.
16092 2008-03-20  Scott Peterson <lunchtimemama@gmail.com> 
16094         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Windowing.cs:
16095         Better polymorphism, removed unnessisary qualifications.
16097         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Header.cs:
16098         Better polymorphism.
16100 2008-03-20  Scott Peterson <lunchtimemama@gmail.com> 
16102         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Windowing.cs:
16103         This fixes the header disapearing if you switch to and from the Now
16104         Playing source.
16106         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Header.cs:
16107         Whitespace.
16109 2008-03-20  Aaron Bockover  <abock@gnome.org>
16111         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TerseTrackListView.cs:
16112         Started a new track view that can be very narrow and won't have columns;
16113         think, 'is this what a detachable play queue looks like?'
16115         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellTrack.cs:
16116         Started a cell renderer for showing a track in a list with a single column
16118         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/BetaReleaseViewOverlay.cs:
16119         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
16120         Get rid of the preview release overlay thingy. It sucked.
16122 2008-03-20  Scott Peterson <lunchtimemama@gmail.com> 
16124         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Better
16125         polymorphism.
16127 2008-03-20  Scott Peterson <lunchtimemama@gmail.com> 
16129         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
16130         Minor rendering fix when reordering columns.
16132 2008-03-20  Gabriel Burt  <gabriel.burt@gmail.com>
16134         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
16135         Patch from Michael Miceli adding a composer column to the TrackListView,
16136         fixes BGO #523666.
16138         * src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs: Add a Composer
16139         sort case.
16141 2008-03-20  Scott Peterson <lunchtimemama@gmail.com> 
16143         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
16144         Fixed rendering in with non-composited window managers.
16146         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
16147         Got rid of private method - instead use Gdk.Rectangle.Contains()
16149 2008-03-20  Scott Peterson <lunchtimemama@gmail.com> 
16151         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/UserJobTileHost.cs:
16152         Got rid of padding stuff. That will be taken care of in
16153         AnimatedVBox.
16155 2008-03-20  Scott Peterson <lunchtimemama@gmail.com> 
16157         This gets rid of the 5 (count 'em: five) GdkWindows we were using
16158         to render the ListView. We now render everything to the GdkWindow
16159         of the ListView's parent.
16161         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
16162         ListWindow is no more.
16164         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellAlbum.cs:
16165         Use Style to paint the layout rather than the Drawable. This is not
16166         ideal, but nessisary so we can clip.
16168         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnHeaderCellText.cs: Moved
16169         triangle-drawing code into the Theme.
16171         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_DragAndDrop.cs:
16172         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView.cs:
16173         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Model.cs:
16174         InvalidateListWindow is now InvalidateList.
16176         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Windowing.cs:
16177         Replaced five input-output GdkWidows with one input-only GdkWindow.
16178         Also improved RowsInView calculation.
16180         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Header.cs:
16181         Changed the math to account for just one GdkWindow, got rid of
16182         unnessisary method ShowHideHeader().
16184         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
16185         Rework of rendering. Everything draws to a single GdkWindow.
16187         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
16188         Changed the math to account for just one GdkWindow. Split the
16189         OnButtonPressEvent and OnButtonReleaseEvent methods into methods
16190         specific to the header and list.
16192         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCellText.cs: Clip to the
16193         clipping box.
16195         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/CellContext.cs: Add a clip
16196         property for the clipping box.
16198         * src/Libraries/Hyena.Gui/Hyena.Gui.Theming/Theme.cs: Added
16199         DrawRectangle. Split DrawFrame into DrawFrameBackground and
16200         DrawFrameBorder.
16202         * src/Libraries/Hyena.Gui/Hyena.Gui.Theming/GtkTheme.cs: Added
16203         DrawRectangle. Split DrawFrame into DrawFrameBackground and
16204         DrawFrameBorder. Misc rendering improvements.
16206 2008-03-20  Alexander Hixon  <hixon.alexander@mediati.org>
16208         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Revert change from
16209         previous revision.
16211 2008-03-20  Alexander Hixon  <hixon.alexander@mediati.org>
16213         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/UserJobTileHost.cs:
16214         Added left padding, so it doesn't look so bad on fullscreen. Also made
16215         addition to code comment from previous commit, and some evil whitespace.
16217         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
16218         Patch to fix small bug introduced in r3487 where the missing pixbuf icon
16219         would be displayed as an album cover type when it shouldn't be (ie the
16220         black box around the icon).
16222         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Slightly more
16223         awesome status bar text, shamelessly ported from stable.
16225         * src/Core/Banshee.Services/Banshee.Collection/ImportManager.cs: Removed
16226         more mentions of 'songs' and replaced with 'media'.
16228 2008-03-20  Alexander Hixon  <hixon.alexander@mediati.org>
16230         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/UserJobTileHost.cs:
16231         Stop hiding the job tile host, so that any ease-out animations that occur
16232         with only a single widget in the host display correctly, instead of being
16233         completely hidden.
16235 2008-03-20  Gabriel Burt  <gabriel.burt@gmail.com>
16237         * src/Extensions/Banshee.Bookmarks/Banshee.Bookmarks/BookmarksService.cs:
16238         Work around issue with CanSeek being equal to false for a bit after the
16239         engine loads the song we want to jump within.
16241 2008-03-19  Gabriel Burt  <gabriel.burt@gmail.com>
16243         Patch from Bertrand Lorentz porting the Bookmarks plugin.
16245         * build/build.environment.mk:
16246         * configure.ac:
16247         * src/Extensions/Banshee.Bookmarks/Banshee.Bookmarks.addin.xml:
16248         * src/Extensions/Banshee.Bookmarks/Banshee.Bookmarks.mdp:
16249         * src/Extensions/Banshee.Bookmarks/Banshee.Bookmarks/BookmarksService.cs:
16250         * src/Extensions/Banshee.Bookmarks/Makefile.am:
16251         * src/Extensions/Banshee.Bookmarks/Resources/BookmarksMenu.xml:
16252         * src/Extensions/Extensions.mds:
16253         * src/Extensions/Makefile.am: Port the Bookmarks plugin to trunk.
16255 2008-03-19  Gabriel Burt  <gabriel.burt@gmail.com>
16257         * src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs:
16258         * src/Core/Banshee.Services/Banshee.Sources/Source.cs:
16259         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/TrackEditor.cs:
16260         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackActions.cs:
16261         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Lots of 'song'
16262         to 'item' changes.
16264 2008-03-19  Gabriel Burt  <gabriel.burt@gmail.com>
16266         * src/Core/Banshee.Core/Banshee.Streaming/StreamTagger.cs: Take the title
16267         from the filename if needed.
16269         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
16270         Display a video icon for missing video 'album art'.
16272         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/NotificationAreaService.cs:
16273         Change 'song' to 'item' in a few places.
16275 2008-03-19  Aaron Bockover  <abock@gnome.org>
16277         * src/Core/Banshee.Services/Banshee.PlaybackController/PlaybackControllerService.cs:
16278         Added a TrackStarted event that will always be raised, even if the 
16279         playback controller did not transition to the track, but most importantly
16280         it will _always_ be raised after the Transition event; this allows
16281         users to connect to both events to determine if the track that is 
16282         playing was manually played or not
16284         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingSource.cs:
16285         Activate the now playing source if the user manually started playing a
16286         track with a video stream; uses the nice transition/track start stuff
16287         noted above
16289 2008-03-19  Aaron Bockover  <abock@gnome.org>
16291         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs: Stubbed
16292         some stuff out to allow showing separator rows; not complete
16294         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingInterface.cs:
16295         Pack the video widget into a rounded frame to look sexy
16297         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/VideoDisplay.cs:
16299         * src/Libraries/Hyena.Gui/Hyena.Gui.Theming/GtkTheme.cs: Respect ShowStroke
16301         * src/Libraries/Hyena.Gui/Hyena.Gui.Theming/ThemeContext.cs: Added 
16302         ShowStroke property
16304         * src/Libraries/Hyena.Gui/Hyena.Widgets/RoundedFrame.cs: Allow setting
16305         a custom fill color and the ability to hide the border/stroke
16307 2008-03-19  Aaron Bockover  <abock@gnome.org>
16309         * build/m4/banshee/gstreamer.m4: Link gstinterfaces and gstvideo libraries
16311         * libbanshee/gst-playback-0.10.c: First pass at hopefully properly 
16312         implementing the GstXOverlay stuff; adds video rough video support
16313         to the pipeline/player engine
16315         * src/Core/Banshee.Services/Banshee.MediaEngine/NullPlayerEngine.cs:
16316         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngine.cs:
16317         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
16318         Implement a few video related features to allow setting/exposing to a
16319         GdkWindow for video support
16321         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs:
16322         Send the GdkWindow/Video calls into the player engine - binds the 
16323         pipeline XOverlay to a window in the UI
16325         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/VideoDisplay.cs:
16326         Managed GdkWindow and video slab display widget thingy that can be
16327         drawn on by an engine
16329 2008-03-18  Gabriel Burt  <gabriel.burt@gmail.com>
16331         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
16332         Forgot to make the db schema changes in the InitializeFreshDatabase method.
16334 2008-03-18  Aaron Bockover  <abock@gnome.org>
16335         
16336         * src/Clients/Nereid/Nereid/PlayerInterface.cs: Hide the view container
16337         when the source doesn't support custom contents or has a track model
16339         * src/Core/Banshee.Services/Banshee.Library/MusicLibrarySource.cs:
16340         * src/Core/Banshee.Services/Banshee.Library/VideoLibrarySource.cs:
16341         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
16342         Fix up the source ordering to allow for some play
16344         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:
16345         Changed the argument to have MA spew its guts to --debug-addins
16347         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSource.cs:
16348         Changed to reflect the Nereid source contents properties and hide the
16349         source contents header since it's pointless for Last.fm
16351         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingSource.cs:
16352         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingInterface.cs:
16353         Stubbed out the basics for the new 'Now Playing' source that will be used
16354         to display video, visualizations, and other data related to the currently
16355         playing track
16357         * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/VideoDisplay.cs:
16358         Basic placeholder GdkWindow to be used to render video
16360 2008-03-18  Gabriel Burt  <gabriel.burt@gmail.com>
16362         * src/Core/Banshee.Services/Banshee.Playlist/AbstractPlaylistSource.cs:
16363         Set ShowBrowser to the same value as our Parent, by default.  So playlists
16364         under VideoLibrary will not show the browser.
16366 2008-03-18  Gabriel Burt  <gabriel.burt@gmail.com>
16368         This commit makes it easy/possible to create playlists and smart playlists
16369         on any PrimarySource.
16371         * src/Core/Banshee.Services/Banshee.Playlist/AbstractPlaylistSource.cs:
16372         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
16373         Add PrimarySourceID column to Core[Smart]Playlists.
16375         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs:
16376         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
16377         Load and save PrimarySourceID.
16379         * src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs:
16380         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistCore.cs:
16381         Handle loading smart playlists from various primary sources.
16383         * src/Core/Banshee.ThickClient/Banshee.Gui/BansheeActionGroup.cs:
16385         * src/Core/Banshee.ThickClient/Resources/banshee-dialogs.glade:
16386         * src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs: Change Music
16387         to Media where appropriate.
16389         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistFileUtil.cs:
16390         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs:
16391         * src/Core/Banshee.ThickClient/Banshee.SmartPlaylist.Gui/Editor.cs:
16392         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs: When creating
16393         new playlists, create them with the correct primary source.
16395         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs:
16396         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView_DragAndDrop.cs:
16397         This needs to be fixed up - the 'New Playlist' playlist that appears when
16398         you drag tracks over the SourceView only displays for the Music Library
16399         atm.
16401         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
16402         Update to new PlaylistSource ctor.
16404 2008-03-18  Gabriel Burt  <gabriel.burt@gmail.com>
16406         * src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs: If a
16407         file contains video, put it in the VideoLibrary instead of the
16408         MusicLibrary.
16410         * src/Core/Banshee.Services/Makefile.am:
16411         * src/Core/Banshee.Services/Banshee.Library/MusicLibrarySource.cs:
16412         * src/Core/Banshee.Services/Banshee.Library/VideoLibrarySource.cs: New
16413         files. VideoLibrarySource turns off the browser.
16415         * src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs: Changed to
16416         not be music specific.  Subclassed by new Music/VideoLibrarySource classes.
16418         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
16419         * src/Core/Banshee.Services/Banshee.Library/ThreadPoolImportSource.cs:
16420         Update SourceManager.Library references to SourceManager.MusicLibrary.
16422         * src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs: Create
16423         VideoLibrarySource.
16425         * src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs: Rename
16426         Library property to MusicLibrary, and add VideoLibrary property.
16428         * src/Core/Banshee.ThickClient/Banshee.Gui/IconThemeUtils.cs: Check the
16429         executing assembly for the resource file if it's not found in the given
16430         assembly.
16432         * src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs:
16433         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml:
16434         Rename ImportMusicAction to ImportAction.
16436         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
16437         Change icon to normal playlist icon for now since the Music Library now
16438         uses our old icon.  Listen for events on the VideoLibrary too.
16440 2008-03-18  Sebastian Dröge  <slomo@circular-chaos.org>
16442         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs:
16443         * src/Core/Banshee.ThickClient/Banshee.Equalizer.Gui/EqualizerView.cs:
16444         Change the unit of the preamp setting into dB, otherwise the scale
16445         next to it is confusing.
16447 2008-03-18  Gabriel Burt  <gabriel.burt@gmail.com>
16449         * src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs: Fix delete
16450         from library code so that remove tracks from database is only called once
16451         per Range.
16453 2008-03-17  Aaron Bockover  <abock@gnome.org>
16455         * src/Core/Banshee.Services/Banshee.Sources/MessageAction.cs: Non-GUI
16456         action that can be attached to a SourceMessage
16458         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Added SourceMessage
16459         support to replace the Message.* properties; supports a stack of messages
16461         * src/Core/Banshee.Services/Banshee.Sources/SourceMessage.cs: Message
16462         class replacing all of the Message.* properties
16464         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ConnectedMessageBar.cs:
16465         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationSource.cs:
16466         Updated to use the new Source/SourceMessage changes
16468         * src/Libraries/Hyena.Gui/Hyena.Widgets/AnimatedBox.cs:
16469         * src/Libraries/Hyena.Gui/Hyena.Widgets/AnimatedHBox.cs:
16470         * src/Libraries/Hyena.Gui/Hyena.Widgets/AnimatedVBox.cs: Some code
16471         clean ups and the ability to remove all widgets at once
16473         * src/Libraries/Hyena.Gui/Hyena.Widgets/MessageBar.cs: Minor rendering fix
16475 2008-03-17  Gabriel Burt  <gabriel.burt@gmail.com>
16477         * src/Core/Banshee.Widgets/Banshee.Widgets/RatingEntry.cs: Add ability
16478         preview-on-hover, but keep it disabled for now.
16480 2008-03-16  Aaron Bockover  <abock@gnome.org>
16482         * src/Core/Banshee.Core/Banshee.Collection/TrackMediaAttributes.cs: 
16483         Defined a starting set of general flags that can be used to describe
16484         the track, including VideoStream, AudioStream, Podcast, AudioBook, etc.
16486         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Added a 
16487         MediaAttributes property
16489         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
16490         Override MediaAttributes and bind it to the Attributes column
16492         * src/Core/Banshee.Core/Banshee.Streaming/StreamTagger.cs: Detect and merge
16493         some MediaAttributes into the track (i.e. if taglib says the file
16494         has audio and/or video streams, apply those as attributes)
16496         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
16497         Added the first schema changes using the migrator now that we have actually
16498         made a release, we don't want to break users' database; add a column called
16499         Attributes to CoreTracks
16501         * src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs:
16502         NotifyTracksAdded a little more frequently than we do right now
16504         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteUtils.cs: Special case
16505         Enum types so that we can convert integer values in the database to
16506         the enum values they represent if a bound property's type is an enum
16508 2008-03-16  Scott Peterson  <lunchtimemama@gmail.com>
16510         Added animated layout widgets to Hyena.Gui
16512         * src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs:
16513         Cast the shutdown handlers in the foreach statement.
16514         
16515         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/UserJobTileHost.
16516         cs: User jobs now use the fancy fancy AnimatedVBox.
16517         
16518         * src/Libraries/Hyena.Gui/Hyena.Gui.Theatrics/Actor.cs:
16519         Added an overload for Rest which takes a new duration.
16520         
16521         * src/Libraries/Hyena.Gui/Hyena.Gui.Theatrics/Choreographer.cs:
16522         A static class which provides math-o-magical easing equations.
16523         
16524         * src/Libraries/Hyena.Gui/Hyena.Gui.Theatrics/Stage.cs:
16525         Added an overload for Rest which takes a new duration and &= the
16526         ActorStepHandlers together to fix a theoretical bug.
16527         
16528         * src/Libraries/Hyena.Gui/Hyena.Widgets/AnimatedBox.cs:
16529         A base class for doing animated packing.
16530         * src/Libraries/Hyena.Gui/Hyena.Widgets/AnimatedHBox.cs:
16531         A container for animatedly packing widgets into a horizontal box.
16532         
16533         * src/Libraries/Hyena.Gui/Hyena.Widgets/AnimatedVBox.cs:
16534         A container for animatedly packing widgets into a vertical box.
16535         
16536         * src/Libraries/Hyena.Gui/Hyena.Widgets/AnimatedWidget.cs:
16537         An internal class used by the AnimatedBox classes
16538         
16539         * src/Libraries/Hyena.Gui/Makefile.am:
16540         * src/Core/Banshee.Services/Banshee.Services.mdp:
16541         * src/Libraries/Hyena.Gui/Hyena.Gui.mdp:
16543 2008-03-16  Wouter Bolsterlee  <wbolster@svn.gnome.org>
16545         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/AboutDialog.cs:
16546         Use a real en dash for date ranges. This is 2008 and we
16547         do speak Unicode nowadays! :)
16549 2008-03-14  Aaron Bockover  <abock@gnome.org>
16551         * src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs: Define
16552         a property for the icon name that is expected to be in the GTK icon theme;
16553         set this value to the new media-player-banshee icon name (used to be
16554         music-player-banshee, changed to avoid conflicts)
16556         * src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:
16557         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/GtkNotificationAreaBox.cs:
16558         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/NotificationAreaService.cs:
16559         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/X11NotificationAreaBox.cs:
16560         Remove all hardcoded references to music-player-banshee, the old icon
16561         name, and replaced with the new Application property
16563 2008-03-13  Gabriel Burt  <gabriel.burt@gmail.com>
16565         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Fix mono
16566         1.2.4 build issue.
16568 2008-03-14  Scott Peterson <lunchtimemama@gmail.com> 
16570         * src/Libraries/Mono.Media/Mono.Media.mdp: Removed unnessisary reference.
16572 2008-03-13  Aaron Bockover  <abock@gnome.org>
16574         Banshee 1.0 Alpha 1 (0.98.1) Released
16576 2008-03-13  Gabriel Burt  <gabriel.burt@gmail.com>
16578         * src/Core/Banshee.ThickClient/Banshee.SmartPlaylist.Gui/Editor.cs:
16579         Disable one broken pre-defined smart playlist, and ensure the others are
16580         refreshed/reloaded when 'selected for use'.
16582 2008-03-13  Aaron Bockover  <abock@gnome.org>
16584         * NEWS: Updated for 0.98.1
16586         * configure.ac: Require Mono 1.2.2, oops
16588 2008-03-13  Gabriel Burt  <gabriel.burt@gmail.com>
16590         * src/Libraries/Hyena/Hyena/DateTimeUtil.cs: Super ugly hack to work
16591         around ArgumentOutOfRangeException thrown by DateTime parser.
16593 2008-03-13  Gabriel Burt  <gabriel.burt@gmail.com>
16595         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationSource.cs: Add
16596         Banshee Group radio station as a default.
16598 2008-03-13  Aaron Bockover  <abock@gnome.org>
16600         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Protect against
16601         NRE when comparing track objects
16603 2008-03-13  James Willcox  <snorp@snorp.net>
16605         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
16606         Correctly update after cover art appears
16607         
16608 2008-03-13  Gabriel Burt  <gabriel.burt@gmail.com>
16610         * src/Extensions/Banshee.Lastfm/Resources/audioscrobbler.png: Replace
16611         24x24 version with 22x22 version.
16613 2008-03-13  Aaron Bockover  <abock@gnome.org>
16615         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackRepeatActions.cs:
16616         Disable repeat modes in the UI since they are not actually implemented
16617         in the playback controller at this time
16619 2008-03-13  Gabriel Burt  <gabriel.burt@gmail.com>
16621         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Audioscrobbler/AudioscrobblerService.cs:
16622         Patch from Alexander Hixon fixing the Audioscrobbler now-playing delay
16623         issue, properly listens for the account being updated to update
16624         links/actions.
16626         * src/Core/Banshee.Core/Resources/contributors.xml: Add Michael Monreal to
16627         Artists.
16629 2008-03-13  Gabriel Burt  <gabriel.burt@gmail.com>
16631         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs: Avoid
16632         GtkCritical warning by checking that the TreeIter is not Zero before
16633         setting a value on it.  Fixes bug with closing the Error Source.
16635 2008-03-13  Gabriel Burt  <gabriel.burt@gmail.com>
16637         * src/Libraries/Hyena/Hyena.Data.Sqlite/DatabaseColumn.cs:
16638         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteCommand.cs:
16639         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteConnection.cs:
16640         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteUtils.cs: Patch from Scott
16641         Peterson fixing up some DateTime/SQL related issues.
16643 2008-03-13  Aaron Bockover  <abock@gnome.org>
16645         * configure.ac:
16646         * src/AssemblyInfo.cs.in: 
16647         * src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs:
16648         Expose a display version in assembly metadata and API
16650         * src/Core/Banshee.Core/Banshee.Base/ProductInformation.cs: Fix small bug
16652         * src/Core/Banshee.Core/Resources/contributors.xml: Updated
16654         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/AboutDialog.cs: 
16655         Some minor fixes and cosmetic polish; the link works again
16657 2008-03-12  Aaron Bockover  <abock@gnome.org>
16659         * src/Core/Banshee.Core/Banshee.Base/Paths.cs: Redefine 
16660         LegacyApplicationData to mean the previous ApplicationData, not the
16661         one from when we were using ~/.gnome2/banshee
16663         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtworkManager.cs:
16664         Migrate cover art from the new LegacyApplicationData path
16666         * src/Core/Banshee.Services/Makefile.am: Fixed build
16668 2008-03-12  Gabriel Burt  <gabriel.burt@gmail.com>
16670         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
16671         * src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs:
16672         * src/Core/Banshee.Services/Banshee.Collection.Database/AlbumListDatabaseModel.cs:
16673         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryAlbumInfo.cs:
16674         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumInfo.cs:
16675         Rename LibraryAlbumInfo to DatabaseAlbumInfo.
16677         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
16678         Change all DateTime.MinValue stamps to NULL.
16680         * src/Extensions/Banshee.Lastfm/Makefile.am: Alphabetize.
16682         * src/Libraries/Hyena/Hyena.Data.Sqlite/DatabaseColumn.cs:
16683         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteCommand.cs:
16684         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteUtils.cs: Serialize and
16685         unserialze DateTime.MinValue as NULL.
16687         * src/nuke-core-tables: Update to new config subdir.
16689 2008-03-12  Gabriel Burt  <gabriel.burt@gmail.com>
16691         * src/Core/Banshee.ThickClient/Resources/banshee-dialogs.glade:
16692         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/TrackEditor.cs: Disable
16693         artist/album editing and add note explaining they are disabled for the
16694         preview release.
16696         * src/Core/Banshee.Core/Banshee.Streaming/StreamTagger.cs:
16697         * src/Core/Banshee.Core/Banshee.Streaming/SaveTrackMetadataJob.cs: Save
16698         all metadata possible back to files, and add notes about keeping these two
16699         classes in sync.
16701 2008-03-12  Scott Peterson <lunchtimemama@gmail.com> 
16703         * src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs: Don't
16704         copy the old db file unless it exists.
16706 2008-03-12  Aaron Bockover  <abock@gnome.org>
16708         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Make
16709         CanPlay false if there is a stream error on the track
16711         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationType.cs:
16712         Change some of the icons for now
16714 2008-03-12  Aaron Bockover  <abock@gnome.org>
16716         * src/Core/Banshee.Core/Banshee.Base/Paths.cs: Change the application
16717         data directory to banshee-1; create the directory if it doesn't exist;
16718         added ExtensionsData to Paths
16720         * src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs:
16721         Copy the old library to the new path if it exists - this will allow
16722         both old and new Banshee series to fully coexist
16724         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Audioscrobbler/Queue.cs:
16725         Use the ExtensionsData path
16727 2008-03-12  Aaron Bockover  <abock@gnome.org>
16729         Yes. I made all the build stuff refer to Banshee as banshee-1 instead
16730         of banshee-preview. This includes all paths, launchers, and even
16731         gconf keys.
16733 2008-03-12  Aaron Bockover  <abock@gnome.org>
16735         * src/Backends/Banshee.Gnome/Banshee.GnomeBackend/GnomeService.cs:
16736         Fixed the null check, actually works now
16738         * src/Clients/Nereid/Nereid/ViewContainer.cs: Add a 'Help' menu item 
16739         to the bottom of the search entry filter menu
16741         * src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs:
16742         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml:
16743         Add a menu item that takes the user to the documentation on the Wiki
16744         for query/search syntaxt and examples
16746         * src/Core/Banshee.Widgets/Banshee.Widgets/SearchEntry.cs: Expose the Menu
16748         * src/Libraries/Lastfm/Lastfm/Account.cs:
16749         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmActions.cs:
16750         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSource.cs:
16751         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Audioscrobbler/AudioscrobblerService.cs:
16752         Hook up the web browser stuff again so account links work
16754         * src/Libraries/Lastfm.Gui/Lastfm.Gui/AccountLoginDialog.cs: Add the
16755         account signup button back
16757         * src/Libraries/Lastfm/Lastfm/Browser.cs: Fixed up to work again
16759 2008-03-12  Aaron Bockover  <abock@gnome.org>
16761         * src/Backends/Banshee.Gnome/Banshee.GnomeBackend/GnomeService.cs:
16762         Added an all-singing, all-dancing GNOME entry service; currently this 
16763         just hooks up Gnome.Url.Show (gnome-open) to Banshee.Web.Browser; 
16764         ideally Process.Start would work properly, but it's got some issues, 
16765         even though it does use xdg-open (which gnome-open should use); 
16766         gnome-open is also a bit more backwards compatible and may be necessary
16767         on SLED, for instance; phew.
16769         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
16770         Fixed the playback indication for database tracks (BGO #520503)
16772         * src/Core/Banshee.Services/Banshee.Web/Browser.cs: Implemented an
16773         OpenHandler to allow extensions to override the default way of opening
16774         a link in a browser
16776         * src/Backends/Banshee.Gnome/Banshee.GnomeBackend/GConfConfigurationClient.cs:
16777         Renamed namespace from Banshee.Gnome to Banshee.GnomeBackend since there
16778         is a possibility of conflicts with the standard Gnome namespace
16780         * build/build.rules.mk: Add some rules to filter out duplicate references
16781         that will be passed to the compiler due to the dependency chain in the
16782         build environment; makes debugging easier even though the compiler would
16783         filter this out by itself; also put hard target dependencies on assemblies
16784         that are referenced in bin/; hopefully will help some occasional build
16785         problems
16787 2008-03-12  Gabriel Burt  <gabriel.burt@gmail.com>
16789         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs: Call
16790         RefreshAndReload on smart playlist Refresh action.
16792         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistCore.cs:
16793         Call RefreshAndReload when loading the smart playlists if we just migrated
16794         them.
16796 2008-03-12  Gabriel Burt  <gabriel.burt@gmail.com>
16798         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
16799         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryAlbumInfo.cs:
16800         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryArtistInfo.cs:
16801         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
16802         * src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs:
16803         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs:
16804         * src/Libraries/Hyena/Hyena.Data.Sqlite/ICacheableItem.cs:
16805         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs: Add a
16806         CacheModelId property to Track/Artist/Album classes, and rename
16807         SourceEntryId to CacheEntryId.
16809 2008-03-11  Gabriel Burt  <gabriel.burt@gmail.com>
16811         This commit cleans up and speeds up reloading.
16813         * src/Core/Banshee.Services/Banshee.Collection.Database/AlbumListDatabaseModel.cs:
16814         * src/Core/Banshee.Services/Banshee.Collection.Database/ArtistListDatabaseModel.cs:
16815         Listen for Selection.Changed event and reload the track model with the
16816         appropriate ReloadTrigger argument.
16818         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
16819         Add a Reload method that takes a ReloadTrigger argument identifying what
16820         caused the reload (user query, artist or album filter) so each can be
16821         handled optimally.  Should fix performance regressions introduced in
16822         yesterday's bug fixes.
16824         * src/Core/Banshee.Services/Banshee.Collection/SelectAllSelection.cs: If
16825         there is only one real item and it's selected, then AllSelected = true.
16827         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
16828         Add a bunch more indexes to CoreTracks.
16830         * src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs: Do not call
16831         lower() within ORDER BY fragments for track sorting.  This means it will
16832         be case sensitive for now.  Sqlite's lower() method doesn't work with
16833         non-LATIN characters, and it's slow.  We need to add columns where we
16834         store the result of lowercasing Album, Artist, and Title in C#.
16836         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
16837         Add a new Refresh method that actually regenerates the smart playlist
16838         entries, since this doesn't need to happen on every Reload.
16840         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Move the
16841         complicated Reload logic into the *ListDatabaseModels.  Get rid of
16842         FilteredDuration/FileSize properties.
16844         * src/Core/Banshee.Services/Banshee.Sources/Source.cs:
16845         * src/Core/Banshee.Services/Banshee.Sources/IFileSizeAggregator.cs:
16846         * src/Core/Banshee.Services/Banshee.Sources/IDurationAggregator.cs: Remove
16847         Filtered* properties - we never display both, so might was well not require it
16848         or bother to calculate the un-filtered version.
16850         * src/Libraries/Hyena/Hyena.Data/IFilterable.cs:  Remove Refilter method.
16852         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
16853         Fix bug with default sort column where it was based on your column order.
16855         * src/Core/Banshee.ThickClient/Banshee.SmartPlaylist.Gui/Editor.cs: Call
16856         new Refresh method on SmartPlaylistSources.
16858         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/CompositeTrackSourceContents.cs:
16859         Remove selection-changed source reload code - that's handled internally by the
16860         *ListDatabaseModels now.
16862         * src/Libraries/Hyena/Hyena.Data/ModelCache.cs: Change Reload to return
16863         void.
16865         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs: Use slightly
16866         faster INSERT INTO pattern, and don't automatically Save/RestoreSelection
16867         and UpdateAggregates within Reload.
16869 2008-03-11  Aaron Bockover  <abock@gnome.org>
16871         * src/Libraries/Hyena.Gui/Hyena.Gui/CairoExtensions.cs: Do not crash
16872         if the native Cairo pop/push group functions do not exist
16874 2008-03-11  Aaron Bockover  <abock@gnome.org>
16876         * build/build.rules.mk:
16877         * build/m4/banshee/gtk-sharp.m4:
16878         * configure.ac: Check for Gtk# 2.10 or better and define HAVE_GTK_2_10
16879         on all the assemblies; this will allow the build to succeed on Gtk# 2.8
16881         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/GtkNotificationAreaBox.cs:
16882         Do not build if we don't HAVE_GTK_2_10, since GtkStatusIcon was introduced
16883         in that version; we only use GtkStatusIcon as a fallback if we are not
16884         running on X11/Unix anyway (i.e. it's mainly used for Windows)
16886         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/NotificationAreaService.cs:
16887         Do not try to instantiate GtkNotificationAreaBox if we don't HAVE_GTK_2_10;
16888         and since now we are not guaranteed to have some sort of 
16889         INotificationAreaBox, properly dispose the notification area service
16890         if we never get a reference to one (i.e. running on not X11/Unix and
16891         not Gtk# 2.10+)
16893 2008-03-11  Aaron Bockover  <abock@gnome.org>
16895         * src/Clients/Nereid/Nereid/PlayerInterface.cs: Remove a bad line where
16896         I set the colormap of the window to be RGBA for no reason; I was playing
16897         around one night and committed this awful thing; SORRY
16899 2008-03-11  Aaron Bockover  <abock@gnome.org>
16901         * src/Libraries/Hyena.Gui/Hyena.Gui/PangoCairoHelper.cs: Wrap the 
16902         Pango Cairo calls we care about so we'll build and run on GTK 2.8 again,
16903         which is quite important (yay SLED)
16905         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/BetaReleaseViewOverlay.cs:
16906         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
16907         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
16908         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCellText.cs: Use the new
16909         Hyena.Gui.PangoCairoHelper API
16911         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/CairoHelper.cs: Nuked
16913 2008-03-11  Gabriel Burt  <gabriel.burt@gmail.com>
16915         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationType.cs:
16916         * src/Extensions/Banshee.Lastfm/Makefile.am: New tag, recommended,
16917         neighbour, and personal icons.
16919         * src/Libraries/Lastfm.Gui/Lastfm.Gui/AccountLoginForm.cs: Do not update
16920         the account information until the Close button is pressed.
16922 2008-03-11  Gabriel Burt  <gabriel.burt@gmail.com>
16924         * src/Core/Banshee.Services/Banshee.Playlist/AbstractPlaylistSource.cs:
16925         Removed Equals and GetHashCode override that ignored type differences, and
16926         caused the playqueue to disappear if you had a smartplaylist of the same
16927         id.
16929 2008-03-10  Gabriel Burt  <gabriel.burt@gmail.com>
16931         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
16932         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Model.cs: Fix
16933         scrolling to jump to the first selected item only if a selected item is
16934         not already in view.  If the model count < the visible rows, scroll to the
16935         top.
16937 2008-03-10  Gabriel Burt  <gabriel.burt@gmail.com>
16939         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
16940         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
16941         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnController.cs:
16942         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Model.cs:
16943         Default the sort of the TrackList to sort by Artist.
16945 2008-03-10  Gabriel Burt  <gabriel.burt@gmail.com>
16947         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
16948         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryAlbumInfo.cs:
16949         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryArtistInfo.cs:
16950         * src/Core/Banshee.Services/Banshee.Database/BansheeModelProvider.cs:
16951         * src/Libraries/Hyena/Hyena.Data.Sqlite/ICacheableItem.cs:
16952         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs:
16953         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs: Rename
16954         CacheId to SourceEntryId, only require T : ICacheableItem in *ModelCache
16955         classes, and set the SourceEntryId in SqliteModelCache.
16957         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
16958         Remove cruft.
16960         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Comment out
16961         logging.
16963 2008-03-10  Gabriel Burt  <gabriel.burt@gmail.com>
16965         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs: Fix bug with
16966         inconsistent table name in SQL.
16968 2008-03-10  Gabriel Burt  <gabriel.burt@gmail.com>
16970         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
16971         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryAlbumInfo.cs:
16972         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryArtistInfo.cs:
16973         Add CacheId property that can be used to uniqued ID an item within a list.
16975         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
16976         Notify the Library about the metadata-refreshed tracks after closing the
16977         user job so it doesn't look like it's hung.
16979         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs:
16980         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: SpawnFromMain
16981         a few methods.
16983         * src/Core/Banshee.Services/Banshee.Database/BansheeModelCache.cs:
16984         * src/Core/Banshee.Services/Banshee.Database/BansheeModelProvider.cs:
16985         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs:
16986         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs:
16987         * src/Libraries/Hyena/Makefile.am:
16988         * src/Libraries/Hyena/Hyena.Data.Sqlite/ICacheableItem.cs: New interface
16989         containing CacheId property that *ModelCache and *ModelProvider classes
16990         require.
16992 2008-03-10  Aaron Bockover  <abock@gnome.org>
16994         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Change 
16995         AudiblyEqual to TrackEqual since it makes more sense; make the base 
16996         comparison compare the track URIs
16998         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
16999         Override TrackEqual and use database IDs for comparisons since that
17000         is much more efficient; not complete however; renamed DbId to TrackId
17002         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
17003         * src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs:
17004         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
17005         Changed to use TrackId instead of DbId
17007 2008-03-10  Aaron Bockover  <abock@gnome.org>
17009         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/UserJobTile.cs:
17010         Patch from Lukas Lipka to use the stop icon instead of close icon
17011         in the UserJobTile widget (BGO #520342)
17013 2008-03-10  Gabriel Burt  <gabriel.burt@gmail.com>
17015         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: 
17016         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
17017         Fix smart playlists to work with new ReloadTrack override.
17019 2008-03-10  Aaron Bockover  <abock@gnome.org>
17021         * src/Core/Banshee.ThickClient/Banshee.Gui/ViewActions.cs: 
17022         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs:
17023         Use the new Ready state instead of Initialized
17025         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngine.cs: Do not
17026         allow state transitions unless the engine is setting itself to the 
17027         ready state; send the idle state automatically once the engine sends
17028         the ready state; all engines must transition to ready before anything
17029         else
17031         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
17032         Handle the NotReady state in much the same way Idle is handled; some
17033         generic code cleanup
17035         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineState.cs:
17036         Removed Initialized state in favor of Ready, added the NotReady state,
17037         which is the default state for all engines; engines must manually
17038         transition to the Ready state before any other state changes can occur
17040         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
17041         Set the playing track when PlayerEngineEvent.StartOfStream is raised;
17042         do not set the playing track manually when querying the model
17044 2008-03-10  Gabriel Burt  <gabriel.burt@gmail.com>
17046         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
17047         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs:
17049 2008-03-10  Gabriel Burt  <gabriel.burt@gmail.com>
17051         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
17052         * src/Core/Banshee.Services/Banshee.Collection.Database/AlbumListDatabaseModel.cs:
17053         * src/Core/Banshee.Services/Banshee.Collection.Database/ArtistListDatabaseModel.cs:
17054         Add override to Reload method with options for suppressing notification
17055         and filtering.
17057         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Remove
17058         RateLimitedFilter method, rework Reload to do suffice.  Remove cruft.
17059         Call track model's Reload with arguments to suppress notification and
17060         artist/album filtering.
17062         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Remove
17063         cruft, call PruneArtistsAlbums from within OnTracksDeleted
17065         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/CompositeTrackSourceContents.cs:
17066         Simplify Selection changed handler to just call Reload on the source.
17068         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/ISourceContents.cs:
17069         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/ObjectListSourceContents.cs:
17070         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSourceContents.cs: 
17071         Change to use ISource instead of Source.
17073         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
17074         Prevent unnecessary Selection.Changed raising.
17076         * src/Libraries/Hyena/Hyena.Collections/Selection.cs: Add ToString
17077         override for debugging.
17079         * src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs:
17080         Do ++count so Library gets refreshed on even 500s instead of N*500 + 1.
17082 2008-03-10  Aaron Bockover  <abock@gnome.org>
17084         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Removed all
17085         of the excessive [potential] thread spawning; it will be moved to where
17086         it is actually necessary (it is not necessary in most cases, is overkill,
17087         and can cause unexpected problems); this fixes the regression in the
17088         Play Queue
17090 2008-03-10  Gabriel Burt  <gabriel.burt@gmail.com>
17092         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Fix the
17093         build.
17095 2008-03-10  Gabriel Burt  <gabriel.burt@gmail.com>
17097         * src/Core/Banshee.Services/Banshee.Collection.Database/AlbumListDatabaseModel.cs:
17098         Now depends on the Artist model, resets the artist filter at each reload,
17099         exposes CacheId and ClearCache.
17101         * src/Core/Banshee.Services/Banshee.Collection.Database/ArtistListDatabaseModel.cs:
17102         Expose CacheId property and ClearCache method.
17104         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
17105         Keep references to the artist/album models and regenerate the artist/album
17106         filter for each reload.
17108         * src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs: Reset
17109         the count to 0 when finished importing.
17111         * src/Core/Banshee.Services/Banshee.Playlist/AbstractPlaylistSource.cs:
17112         Whitespace.
17113         
17114         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Avoid
17115         triggering the Reloaded event when reloading it twice in a row - no
17116         flicker.  OnTracksRemoved now reloads the current source, but not the
17117         library etc.  New PruneArtistsAlbums method that deletes artists/albums
17118         from the cache that have been removed from the library.
17120         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Rename
17121         TracksRemoved event to TracksDeleted for clarity/parity with method names.
17122         Override PruneArtistsAlbums method.
17124         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/CompositeTrackSourceContents.cs:
17125         Fix reloading when selection changes.
17127         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
17128         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs:
17129         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
17130         TracksRemoved event renamed to TracksDeleted for clarity.
17132 2008-03-10  Gabriel Burt  <gabriel.burt@gmail.com>
17134         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs: Avoid
17135         unnecessary db queries in saving/restoring selection.  Fix bugs with
17136         IndexOf method.
17138         * src/Libraries/Hyena/Hyena.Data/DictionaryModelCache.cs: Add lock
17139         around Clear command.
17141 2008-03-07  Aaron Bockover  <abock@gnome.org>
17143         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_DragAndDrop.cs:
17144         Calculate the row index for reordering
17146         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
17147         Render a line to indicate the row reordering index
17149 2008-03-07  Aaron Bockover  <abock@gnome.org>
17151         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_DragAndDrop.cs:
17152         Some minor fixes and cleanups
17154 2008-03-07  Aaron Bockover  <abock@gnome.org>
17156         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_DragAndDrop.cs:
17157         Added another partial class for drag and drop specific stuff for the
17158         view; implement variable velocity scrolling when dragging rows in the
17159         view; it's awesome; added a Reorderable property, but it does not do
17160         anything yet (other than the awesome scrolling)
17162         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
17163         Moved some DnD code into the new partial class
17165         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
17166         Set Reorderable and ForceDragSourceSet properties
17168         * src/Core/Banshee.ThickClient/Banshee.Gui.DragDrop/DragDropTarget.cs:
17169         Removed the model selection target
17171         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView_DragAndDrop.cs:
17172         Use the model selection target from hyena
17174         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSourceContents.cs:
17175         Fixed a crasher/NRE
17177 2008-03-07  Aaron Bockover  <abock@gnome.org>
17179         * src/Libraries/Hyena/Hyena/ConsoleCrayon.cs: Added Hutch's terminfo
17180         changes to do all the coloring properly
17182 2008-03-06  Gabriel Burt  <gabriel.burt@gmail.com>
17184         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs:
17185         * src/Core/Banshee.Core/Banshee.Streaming/CommonTags.cs:
17186         * src/Core/Banshee.Core/Banshee.Streaming/StreamTagger.cs:
17187         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
17188         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
17189         Add Composer, Copyright, LicenseUri, and Comment columns to CoreTracks.
17191         * src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs: Add Composer
17192         field.
17194 2008-03-06  Gabriel Burt  <gabriel.burt@gmail.com>
17196         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryAlbumInfo.cs:
17197         Add ToString override for debugging purposes.
17199         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/CompositeTrackSourceContents.cs:
17200         Scroll to the top if artist or album selection changes to all selected.
17202         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Model.cs: When
17203         refreshing the view for the model, scroll to the first selected item if
17204         possible.
17206         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs:
17207         * src/Libraries/Hyena/Hyena.Data/ModelCache.cs: Add locks to make
17208         thread-safe, solves (at least some) spurious browser issues people have
17209         been seeing.
17211 2008-03-06  Aaron Bockover  <abock@gnome.org>
17213         * src/Core/Banshee.Widgets/Banshee.Widgets/StreamPositionLabel.cs: 
17214         Render the buffering progress bar using the GTK styles, take care of
17215         the pango layout manually instead of using a GtkLabel to be able
17216         to render the text in two colors, depending on the progress bar
17218         * build/build.rules.mk: Do not pass -warnaserror if mono is older than
17219         1.2.4 since there appear to be some fake warnings raised with the older
17220         gmcs compiler
17222         * build/m4/shamrock/mono.m4: Added a method to detect the mono version but
17223         not bail if it wasn't met, and set a result
17225         * configure.ac: Check for at least mono 1.2.4 and export the result
17227 2008-03-05  Aaron Bockover  <abock@gnome.org>
17229         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/BetaReleaseViewOverlay.cs:
17230         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
17231         Use the allocation passed to Render to do the maths
17233         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Windowing.cs:
17234         Expose ListAllocation as a protected property
17236 2008-03-05  Aaron Bockover  <abock@gnome.org>
17238         Lots of build fixes, preparing for the release
17240         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:
17241         Always update the addin registry so new/changed addins are rescanned
17243         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Header.cs:
17244         Workaround for a mono 1.2.4 bug
17246 2008-03-05  Gabriel Burt  <gabriel.burt@gmail.com>
17248         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs: Small but
17249         powerful fix - was not clearing the selection between reloads at all.
17251 2008-03-05  Gabriel Burt  <gabriel.burt@gmail.com>
17253         * src/Core/Banshee.Services/Banshee.Base/RateLimiter.cs: Change to prevent
17254         the method from being called while it is still running, queueing another
17255         run to happen when the current one finishes, instead of specifying a
17256         specific rate limit.
17258         * src/Core/Banshee.Services/Banshee.Collection.Database/AlbumListDatabaseModel.cs:
17259         * src/Core/Banshee.Services/Banshee.Collection.Database/ArtistListDatabaseModel.cs:
17260         Set HasSelectAllItem on cache to true.
17262         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
17263         Avoid parsing the user query if it hasn't changed since we last parsed it.
17264         Add SuppressReloads method so we can update both the album and artist
17265         filter before doing a Reload, and add a ClearArtistAlbumFilters method
17266         that directly, quickly does that.
17268         * src/Core/Banshee.Services/Banshee.Collection/AlbumListModel.cs:
17269         * src/Core/Banshee.Services/Banshee.Collection/ArtistListModel.cs:
17270         * src/Core/Banshee.Services/Banshee.Collection/BansheeListModel.cs:
17271         * src/Core/Banshee.Services/Banshee.Collection/TrackListModel.cs: Create
17272         the selection object within each subclass so that Album and Artist models
17273         can create a SelectAllSelection.
17275         * src/Core/Banshee.Services/Makefile.am:
17276         * src/Core/Banshee.Services/Banshee.Collection/SelectAllSelection.cs: New
17277         class that makes sure the first item is selected as the AllSelected = true
17278         state.
17280         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
17281         Override new ReloadTrackModel method which is called by DatabaseSource's
17282         RateLimitedReload and RateLimitedFilter methods.
17284         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Add
17285         RateLimitedFilter method for spawning off the filter handler.
17287         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/CompositeTrackSourceContents.cs:
17288         Updated to work with SelectAllSelection and to trigger two track model
17289         updates when the artist model changes - one that is not filtered by any
17290         artists or albums, and one that is filtered by the artist/album selection,
17291         if any.
17293         * src/Libraries/Hyena/Hyena.Collections/Selection.cs: Change AllSelected
17294         and SelectAll to be virtual, add a MaxIndex getter.
17296         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs: Update the
17297         SaveSelection and RestoreSelection code to work with artist/album
17298         selections that have a first (fake) item "All *".
17300 2008-03-05  Gabriel Burt  <gabriel.burt@gmail.com>
17302         * src/Core/Banshee.Services/Banshee.ServiceStack/DBusServiceManager.cs:
17303         Ignore deprecation warning.
17305 2008-03-05  Aaron Bockover  <abock@gnome.org>
17307         * build/build.rules.mk: Turned on -warnaserror and only show the bold
17308         compiling message if the terminal supports colors and is a tty
17310         * src/Core/Banshee.Core/Banshee.Streaming/StreamTagger.cs:
17311         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackRepeatActions.cs:
17312         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
17313         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/CairoHelper.cs:
17314         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Model.cs:
17315         Fixed warnings
17317 2008-03-05  Gabriel Burt  <gabriel.burt@gmail.com>
17319         * src/Core/Banshee.Core/Resources/COPYING: Update to 2008.
17321         * src/Clients/Nereid/Nereid/PlayerInterface.cs:
17322         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs:
17323         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs:
17324         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmActions.cs:
17325         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSource.cs:
17326         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationSource.cs:
17327         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs: Fix warnings.
17329 2008-03-04  Gabriel Burt  <gabriel.burt@gmail.com>
17331         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryAlbumInfo.cs:
17332         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryArtistInfo.cs:
17333         Replace confusing constructors with static FindOrCreate methods.  Should
17334         fix an issue with finding/creating/associating new albums too.
17336         * src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs: Use
17337         new FindOrCreate methods.
17339 2008-03-04  Gabriel Burt  <gabriel.burt@gmail.com>
17341         * src/Libraries/Hyena/Hyena.Data/ISelectable.cs: Forgot to commit new file.
17343 2008-03-04  Gabriel Burt  <gabriel.burt@gmail.com>
17345         This commit fixes a long standing bug in trunk - selections now persist
17346         across source reloads (assuming the tracks are still in the source/not
17347         filtered).
17349         * src/Core/Banshee.Services/Banshee.Playlist/AbstractPlaylistSource.cs:
17350         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
17351         Add a bool CachesJoinTableEntries property so Smart Playlists can use the
17352         join table but fill the CoreCache with TrackIDS not EntryIDS - needed,
17353         since their EntryIDs don't last long b/c they are wiped/created anew every
17354         time its Reloaded.
17356         * src/Core/Banshee.Services/Banshee.Collection/BansheeListModel.cs: Don't
17357         clear the selection on reload.
17359         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
17360         Override CachesJoinTableEntries to false.
17362         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs:
17363         * src/Core/Banshee.Services/Banshee.Collection.Database/AlbumListDatabaseModel.cs:
17364         * src/Core/Banshee.Services/Banshee.Collection.Database/ArtistListDatabaseModel.cs:
17365         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Check
17366         model.CachesJoinTableEntries instead of JoinTable != null.
17368         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Whitespace.
17370         * src/Libraries/Hyena/Hyena.Data.Sqlite/ICacheableDatabaseModel.cs:
17371         Inherit from ISelectable and add CachesJoinTableEntries property. 
17373         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs: SaveSelection
17374         before a Reload and RestoreSelection afterward.
17376         * src/Libraries/Hyena/Hyena.Data/ModelCache.cs:
17377         * src/Libraries/Hyena/Hyena.Data/ArrayModelCache.cs:
17378         * src/Libraries/Hyena/Hyena.Data/DictionaryModelCache.cs: Update to use
17379         Int64s where appropriate.
17381         * src/Libraries/Hyena/Hyena.Data/IListModel.cs: Inherit from ISelectable.
17383         * src/Libraries/Hyena/Hyena.Data/ModelSelection.cs: Comment out
17384         unimplemented IndexOf method.
17386         * src/Libraries/Hyena/Makefile.am: New ISelectable interface.
17388 2008-03-04  Gabriel Burt  <gabriel.burt@gmail.com>
17390         This commit adds more granular events for when tracks are added, changed,
17391         and removed to each track's PrimarySource.  Playlists etc can listen for
17392         these events, and only reload when necessary (still work to do on this
17393         front).  Reloads happen not in the main thread, so actions (like rating
17394         4800 songs at once) return quickly, but other sources may take a second or
17395         few to be updated.
17397         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
17398         In Save method, trigger PrimarySource's TrackAdded or Changed method as
17399         appropriate.
17401         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
17402         Cache the unfiltered query string.
17404         * src/Core/Banshee.Services/Banshee.Collection/ImportManager.cs: Call
17405         OnImportFinished even if cancelled.
17407         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
17408         Add CoreRemovedTracks table.
17410         * src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs: Pass
17411         false to DatabaseTrackInfo.Save method, and manually trigger TracksAdded
17412         event every 500 songs or when finished/cancelled.
17414         * src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs: Use
17415         RemoveTrackRange instead of remove_track_command.
17417         * src/Core/Banshee.Services/Banshee.Playlist/AbstractPlaylistSource.cs:
17418         Add stamps for tracking when last handled Tracks* events, add count
17419         commands for use in determining if an event affects this source.
17421         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
17422         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs: Handle
17423         TracksChanged and TracksRemoved events from our PrimarySource parent.
17424         Right now we just always trigger a Reload, but these handlers are ripe for
17425         optimizations that will avoid Reloads unless absolutely necessary.
17427         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Trigger the
17428         Track* events on the primary source when adding/changing/removing tracks.
17430         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Add
17431         TracksAdded, TracksChanged, and TracksRemoved methods.
17433         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Make
17434         SetParentSource a virtual method.
17436         * src/Core/Banshee.Services/Banshee.Collection/BansheeListModel.cs:
17437         * src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs:
17438         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs: Make
17439         sure GUI-related events are handled in the main loop.
17441         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
17443         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteCommand.cs: Turn
17444         DateTime values into integers.
17446         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteConnection.cs: Add
17447         another override for Query/Query<T>/Execute (HyenaSqliteCommand, params).
17449         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs: Cache the
17450         reload command.
17452 2008-03-04  Aaron Bockover  <abock@gnome.org>
17454         * src/Libraries/Hyena/Hyena/Log.cs: Added InformationTimer methods
17455         akin to DebugTimer methods that will work without --debug mode
17457         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:
17458         Use InformationTimer instead of DebugTimer to show the overall startup
17459         time; set the addin cache path to just be the application data path,
17460         since Mono.Addins creates its own subdirectory underneath
17462         * src/Core/Banshee.Services/Banshee.Services.addins: Scan Extensions
17463         and Backends directories for addins
17465         * build/build.environment.mk: Define EXTENSIONS_INSTALL_DIR, 
17466         BACKENDS_INSTALL_DIR
17468         * src/Backends/Banshee.GStreamer/Makefile.am:
17469         * src/Backends/Banshee.Gnome/Makefile.am:
17470         * src/Backends/Banshee.Unix/Makefile.am:
17471         * src/Extensions/Banshee.Lastfm/Makefile.am:
17472         * src/Extensions/Banshee.MultimediaKeys/Makefile.am:
17473         * src/Extensions/Banshee.NotificationArea/Makefile.am:
17474         * src/Extensions/Banshee.PlayQueue/Makefile.am:
17475         * src/Extensions/Banshee.Skins/Makefile.am: Set the INSTALL_DIR to 
17476         either EXTENSIONS_INSTALL_DIR or BACKENDS_INSTALL_DIR so addins are
17477         a bit more organized in the install/packages
17479         * src/Extensions/Makefile.am: Disable the skins extension
17481 2008-03-04  Aaron Bockover  <abock@gnome.org>
17483         * src/Libraries/Hyena/Hyena/ConsoleCrayon.cs: A workaround for the somewhat
17484         broken terminfo driver for setting console colors in System.Console on
17485         Mono. If xterm and tty is detected, ANSI control codes will be used to
17486         color the console, otherwise if the runtime is not mono and the OS is
17487         not unix, the regular System.Console API will be used
17489         * src/Libraries/Hyena/Hyena/Log.cs: Use Hyena.ConsoleCrayon instead of
17490         System.Console to set/reset the terminal colors
17492 2008-03-03  Gabriel Burt  <gabriel.burt@gmail.com>
17494         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmTrackInfo.cs:
17495         Catch Web exceptions in Love and Ban methods, avoiding crashing.
17497 2008-03-03  Gabriel Burt  <gabriel.burt@gmail.com>
17499         This patch fixes a poor assumption made quite a while ago that for
17500         playlists put the TrackID into the CoreCache table, which if you had a
17501         song in a playlist twice would make it impossible to remove one and not
17502         the other.
17504         * src/Core/Banshee.Services/Banshee.Collection.Database/AlbumListDatabaseModel.cs:
17505         * src/Core/Banshee.Services/Banshee.Collection.Database/ArtistListDatabaseModel.cs:
17506         Fix reload fragments to use the track_model's JoinTable etc when needed.
17508         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
17509         Add JoinTable, JoinPrimaryKey, and JoinColumn properties that allow the
17510         model to specify that it joins, for example, the CoreTracks table with the
17511         CoreCache table via the CorePlaylistEntries table.
17513         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
17514         Add a EntryID primary key to CoreSmartPlaylistEntries, and create an index
17515         for it.
17517         * src/Core/Banshee.Services/Banshee.Playlist/AbstractPlaylistSource.cs:
17518         Add JoinPrimaryKey virtual property, and set the Join* properties.
17520         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs: Fix
17521         AddTrackRange method to work with track model's that have a join table.
17523         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
17524         Change INSERT to add NULL so primary key automatically set.
17526         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Implement
17527         RemoveTrack by calling RemoveTrackRange with an appropriate Range.  Add
17528         ReloadPrimarySource method that reloads the current source's "nearest"
17529         PrimarySource - either itself, its parent, or all PrimarySources.
17531         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Remove
17532         RemoveTrack method - fully implemented in DatabaseSource.
17534         * src/Libraries/Hyena/Hyena.Data.Sqlite/ICacheableDatabaseModel.cs: Add
17535         Join properties.
17537         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs: Handle models
17538         that specify a JoinTable.
17540 2008-03-02  Aaron Bockover  <abock@gnome.org>
17542         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackRepeatActions.cs:
17543         Activate the repeat action when it's loaded from configuration
17545 2008-03-02  Aaron Bockover  <abock@gnome.org>
17547         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/BetaReleaseViewOverlay.cs:
17548         Fix some small bugs; do not show with --debug passed
17550 2008-03-02  Alexander Hixon  <hixon.alexander@mediati.org>
17552         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
17553         Add a null check before sorting out dependencies, so we don't bomb out on
17554         creating a new simple Smart Playlist.
17556 2008-03-01  Aaron Bockover  <abock@gnome.org>
17558         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/BetaReleaseViewOverlay.cs:
17559         A sweet overlay thingy that draws some big warning/welcome for users
17560         about the state of trunk/preview release
17562         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
17563         Render the hot overlay
17565         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Windowing.cs:
17566         Expose some properties as protected
17568         * src/Libraries/Hyena.Gui/Hyena.Gui.Theatrics/Stage.cs:
17569         Fix a bug when iterating actors in the stage by creating a copy to
17570         iterate; this allows actor step handlers to modify the stage actors
17572         * src/Libraries/Hyena.Gui/Hyena.Gui.Theming/GtkTheme.cs:
17573         * src/Libraries/Hyena.Gui/Hyena.Gui.Theming/Theme.cs: Added DrawPie
17575         * src/Libraries/Hyena.Gui/Hyena.Gui.Theming/ThemeContext.cs: Add some
17576         more state properties
17578 2008-03-01  Scott Peterson <lunchtimemama@gmail.com> 
17580         * src/Libraries/Hyena/Hyena.Query/QueryNode.cs: Got rid of unnecessary
17581         condition.
17583 2008-03-01  Scott Peterson <lunchtimemama@gmail.com> 
17585         * src/Libraries/Hyena/Hyena.Query/QueryNode.cs: Added methods to search a
17586         QueryNode tree for values of a given type either by depth or breadth.
17588         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
17589         Consume the new QueryNode.SearchForValues method.
17591 2008-03-01  Scott Peterson <lunchtimemama@gmail.com> 
17593         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Fixed typo.
17595 2008-03-01  Scott Peterson <lunchtimemama@gmail.com> 
17597         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationSource.cs:
17598         Implements new HasDepenencies property.
17600         * src/Core/Banshee.Services/Banshee.Sources/ITrackModelSource.cs: Added
17601         HasDependencies property.
17603         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: The public Children
17604         property is now a ReadOnlyCollection<Source> since other code has no
17605         business modifying the collection directly.
17607         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: No longer
17608         reload a child source if it has dependencies (the dependencies will
17609         trigger a reload of the source which depends on them).
17611         * src/Core/Banshee.Services/Banshee.Playlist/AbstractPlaylistSource.cs:
17612         Overrided Equals and GetHashCode to compare DbId.
17614         * src/Core/Banshee.Services/Banshee.Query/SmartPlaylistQueryValue.cs:
17615         Implements new abstract member Resolve(). Used to turn a DbId into a
17616         SmartPlaylistSource.
17618         * src/Core/Banshee.Services/Banshee.Query/PlaylistQueryValue.cs: Implements
17619         new abstract memeber Resolve () (right now it just returns null b/c we
17620         don't use the ObjectValue of a PlaylistQueryValue. In the future, this
17621         may change).
17623         * src/Core/Banshee.Services/Banshee.Query/AbstractPlaylistQueryValue.cs:
17624         Added abstract query value to handle the OperatorSet overload used by
17625         both SmartPlaylistQueryValue and PlaylistQueryValue.
17627         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistCore.cs: Made
17628         to use generics and addded GetSmartPlaylistFromDbId () method.
17630         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
17631         Now keeps track of SmartPlaylistSources on which it depends. Used for
17632         listening to dependencies' Update events.
17634         * src/Libraries/Hyena/Hyena.Query/IntegerQueryValue.cs: SetValue made
17635         virtual.
17637         * src/Libraries/Hyena/Hyena.Query/IntegerKeyedObjectQueryValue.cs: New
17638         abstract class which allows an IntegerObjectValue to map to an object.
17640 2008-02-29  Scott Peterson <lunchtimemama@gmail.com> 
17642         * src/Core/Banshee.Services/Banshee.PlayerMigration/AmarokPlayerImportSource.cs:
17643         Fixed warnings.
17645 2008-02-29  Gabriel Burt  <gabriel.burt@gmail.com>
17647         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Show the
17648         FilteredFileSize in the status message, like we show the FilteredDuration.
17650 2008-02-29  Alexander Hixon  <hixon.alexander@mediati.org>
17652         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationSource.cs:
17653         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmTrackInfo.cs:
17654         Modify the LastfmTrackInfo object, and add in the new trackauth variable
17655         in the constructor and associated property. We get the trackauth value
17656         from the track returned from Last.fm (lastfm:trackauth).
17658         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Audioscrobbler/AudioscrobblerService.cs:
17659         Only submit NowPlaying tracks if the track is more than 30 seconds in length
17660         and the user has enabled scrobbling of tracks.
17662         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Audioscrobbler/Queue.cs:
17663         Support the new TrackAuth property in LastfmTrackInfo, submit that and the
17664         correct source code if the track was from radio, otherwise say it was from
17665         the library.
17667         * src/Libraries/Lastfm/Lastfm/AudioscrobblerConnection.cs: Lots of cleanups
17668         to do with HACKING guidelines, trying to send stuff when we're not allowed
17669         to (ie not connected), and *heaps* of logic/name cleanups. 
17671         * src/Libraries/Mono.Media/Media.Playlists.Xspf/Track.cs: Expose some lame
17672         kind of method to get extra key values.
17674 2008-02-28  Gabriel Burt  <gabriel.burt@gmail.com>
17676         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs: Fix
17677         calculation figuring out whether or not the click is on the expander.
17679 2008-02-28  Gabriel Burt  <gabriel.burt@gmail.com>
17681         * src/Core/Banshee.Services/Banshee.Base/RateLimiter.cs:
17682         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
17683         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
17684         * src/Libraries/Hyena.Gui/Hyena.Query.Gui/QueryBox.cs:
17685         * src/Libraries/Hyena.Gui/Hyena.Query.Gui/QueryLimitBox.cs:
17686         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteConnection.cs:
17687         * src/Libraries/Lastfm.Gui/Lastfm.Gui/AccountLoginDialog.cs:
17688         * src/Libraries/Lastfm.Gui/Lastfm.Gui/AccountLoginForm.cs: Fix warnings.
17690 2008-02-28  Gabriel Burt  <gabriel.burt@gmail.com>
17692         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
17693         Add a Save (bool notify) method so processes that are triggering lots of
17694         Save's can avoid notifying the track's PrimarySource until they choose to
17695         - eg in the metadata refresh process.
17697         * src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs:
17698         Add comment to PRAGMA cache_size call.
17700         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
17701         Add indices to Core[Smart]PlaylistEntries, and use track.Save (false) when
17702         updating the metadata.
17704         * src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs: Set
17705         Library.Importing = true/false around the import process.
17707         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Add
17708         ReloadChildren method.  Add RateSelectedTracks method.
17710         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Add
17711         Importing property that when set true increases the period between
17712         TrackUpdated calls to 5 s (from the normal 0.25 s).  Fix bug where Reload
17713         always reloaded all children - not something we want to do when the user
17714         is searching, say.  Explicitly call ReloadChildren where needed.
17716         * src/Core/Banshee.Services/Banshee.Base/RateLimiter.cs: Make more thread
17717         safe.
17719         * src/Core/Banshee.ThickClient/Banshee.Gui/BansheeActionGroup.cs: Add an
17720         ActiveSource convenience property.
17722         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs: Use
17723         ActiveSource property.
17725         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Use new
17726         ActiveSource property, and call RateSelectedTracks to rate entire
17727         selection Ranges at a time - much much faster.
17729         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteCommand.cs: Make
17730         Execute and WaitForResult internal methods.
17732         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteConnection.cs: Put
17733         locks on the current command around Query/Execute calls to prevent a
17734         thread from calling the same command before an earlier thread gets its
17735         result.
17737         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs: Avoid
17738         checking the cache table more times than necessary.
17740 2008-02-28  Aaron Bockover  <abock@gnome.org>
17742         * src/Core/Banshee.Core/Banshee.Streaming/StreamTagger.cs: Added a new
17743         base version of TrackInfoMerge that allows you to switch priority/fallback
17744         values to prefer either the database track or the taglib file data
17746         * src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs: Move
17747         the migration consumer stuff out, make the migrator accessible to others
17749         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
17750         Use a UserJob to report the migration track scanning progress
17752         * src/Core/Banshee.Services/Banshee.ServiceStack/IInitializeService.cs:
17753         A simple interface that will tell the service manager to call initialize
17754         on it after registering; this allows other objects to listen for the
17755         service before the service actually does anything
17757         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:
17758         Support IInitializeService.Initialize
17760         * src/Core/Banshee.Services/Banshee.ServiceStack/UserJob.cs: Added some
17761         more ctor overrides to make it easier to use
17763         * src/Core/Banshee.ThickClient/Banshee.Gui/BansheeDbFormatMigratorMonitor.cs:
17764         A UI for reporting the migration progress in the database layer
17766         * src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs: Connect
17767         to the database migration layer and use the new UI to report progress
17769         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
17770         Draw a bubble, shouldn't commit this, in a hurry
17772         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Windowing.cs:
17773         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
17774         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellAlbum.cs:
17775         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs:
17776         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs:
17777         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/CellContext.cs:
17778         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCellText.cs: Fixed up
17779         to use the new Hyena.Gui.Theming API
17781         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListViewGraphics.cs: Nuked 
17783         * src/Libraries/Hyena.Gui/Hyena.Gui.Theming/GtkColors.cs:
17784         * src/Libraries/Hyena.Gui/Hyena.Gui.Theming/GtkTheme.cs:
17785         * src/Libraries/Hyena.Gui/Hyena.Gui.Theming/Theme.cs:
17786         * src/Libraries/Hyena.Gui/Hyena.Gui.Theming/ThemeContext.cs: New simple
17787         theme API that will make doing the custom drawing easier than the crappy
17788         ListViewGraphics bloated/hard to use API
17790 2008-02-27  Aaron Bockover  <abock@gnome.org>
17792         * src/Core/Banshee.Services/Banshee.Base/ThreadAssist.cs: Do not set the
17793         main thread automatically and instead require an explicit call to a new
17794         InitializeMainThread method just for sanity to avoid possible race 
17796         * src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs: Call
17797         ThreadAssist.InitializeMainThread
17799         * src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs:
17800         Enable the database URI pre-check when importing, minor clean up, 
17801         wrap the commits in database transactions, and do an explicit save
17802         on the LibraryAlbumInfo (not sure if this is correct)
17804         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/UserJobTileHost.cs:
17805         Fixed a big threading bug - the actual user job/manager API is designed
17806         to be consumed from many threads, and the UI host for the jobs has to
17807         manage threading; this fixes some odd UI behavior after library imports
17809         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/UserJobTile.cs: Use
17810         generic/type-safe service manager methods
17812         * src/Core/Banshee.Services/Banshee.Collection/ImportManager.cs: Some 
17813         clean up, remove an anonymous method to make more readable
17815 2008-02-27  Gabriel Burt  <gabriel.burt@gmail.com>
17817         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs: Fix up
17818         last SourceView commit.
17820 2008-02-27  Aaron Bockover  <abock@gnome.org>
17822         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs: Added
17823         a generic Contains method so Contains checks can be type safe just like
17824         the generic Get service calls
17826         * src/Core/Banshee.Services/Banshee.ServiceStack/TestUserJob.cs:
17827         Added a method to spawn a few test user jobs which is useful for 
17828         debugging the user job API and host tile display
17830         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/UserJobTileHost.cs:
17831         When the magic command line argument is passed, spawn the test jobs
17833         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
17834         Only render the focus row if the view actually has focus
17836         * src/Libraries/Hyena/Hyena.CommandLine/CommandLineParser.cs: Fix a 
17837         minor crasher bug
17839 2008-02-27  Gabriel Burt  <gabriel.burt@gmail.com>
17841         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs: Do not
17842         activate a Source when its expander is clicked.
17844 2008-02-27  Aaron Bockover  <abock@gnome.org>
17846         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackRepeatActions.cs:
17847         Created UI actions for repeat mode functionality; this is where the 
17848         repeat mode can be accessed and is stored/loaded from configuration; 
17849         the UI actions are set up here
17851         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/RepeatActionButton.cs:
17852         A special button that syncs its state with the PlaybackRepeatActions and
17853         presents the actions as a popup menu
17855         * src/Clients/Nereid/Nereid/PlayerInterface.cs: Make the footer actually
17856         a Gtk.Toolbar, pack the new RepeatActionButton, and do some allocation
17857         magic to ensure the status bar is always centered on the toolbar; moved
17858         the only two schema items that are still at the client level into here
17860         * src/Core/Banshee.ThickClient/Banshee.Gui/BansheeIconFactory.cs: Added
17861         the media-repeat icons into the stock
17863         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackActions.cs: Load the
17864         PlaybackRepeatActions as a child set of actions
17865         
17866         * src/Clients/Nereid/Nereid/PlayerWindowSchema.cs: Removed
17868         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml:
17869         Added a ToolbarFooter object
17871         * src/Libraries/Hyena/Hyena/StringUtil.cs: Added UnderCaseToCamelCase
17872         method that does the opposite of what CamelCaseToUnderCaseDoes; use
17873         a StringBuilder for the latter
17875         * tests/Hyena/StringUtilTests.cs: Added some tests for the above two methods
17877 2008-02-27  Gabriel Burt  <gabriel.burt@gmail.com>
17879         * src/Clients/Nereid/Nereid/PlayerInterface.cs: Remove unnecessary Show.
17881         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/UserJobTileHost.cs: Add
17882         the inner VBox to the Alignment...hard for it to show otherwise.
17884 2008-02-27  Gabriel Burt  <gabriel.burt@gmail.com>
17886         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
17887         Improve the metadata refresh process - use the existing OnSlow* calls in
17888         the migrator, don't die if a track can't be refreshed, etc.
17890 2008-02-27  Gabriel Burt  <gabriel.burt@gmail.com>
17892         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs: Add and
17893         comment out an implementation for 'New Smart Playlist From Search'.  It
17894         works, but the smart playlist Editor needs to be changed to accept
17895         conditions with no field (eg implying search-all-default-fields).
17897         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml:
17898         Comment out 'New Smart Playlist From Search' item.
17900 2008-02-27  Gabriel Burt  <gabriel.burt@gmail.com>
17902         * src/Core/Banshee.Services/Banshee.Services.mdp:
17903         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.mdp:
17904         * src/Libraries/Lastfm.Gui/Lastfm.Gui.mdp:
17905         * src/Libraries/Lastfm/Lastfm.mdp:
17906         * src/Libraries/Mono.Media/Mono.Media.mdp: Fix MD build.
17908         * src/Extensions/Banshee.Lastfm/Makefile.am: Remove non-existant file.
17910 2008-02-27  Alexander Hixon  <hixon.alexander@mediati.org>
17912         * src/Libraries/Lastfm/Lastfm/AudioscrobblerConnection.cs: Support lazy
17913         authentication. Also implement retrying if sending a 'Now Playing' track
17914         failed. Slightly more detailed logging is also added.
17916         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Audioscrobbler/AudioscrobblerService.cs:
17917         Removed a useless boolean value. Also implemented lazy connecting before
17918         queuing tracks.
17920 2008-02-27  Alexander Hixon  <hixon.alexander@mediati.org>
17922         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Audioscrobbler/AudioscrobblerService.cs:
17923         Only scrobble tracks if the 'Enable song reporting' checkbox is active.
17925 2008-02-27  Gabriel Burt  <gabriel.burt@gmail.com>
17927         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSourceContents.cs:
17928         Fix crasher - don't update GTK outside the main thread.
17930 2008-02-26  Gabriel Burt  <gabriel.burt@gmail.com>
17932         This commit brings back a thread-safe database layer.  Unfortunately, that
17933         currently means switching back to the deprecated Mono.Data.SqliteClient
17934         library.  Mono.Data.Sqlite does not allow executing a command in one
17935         thread and reading it in another, where M.D.SqliteClient does.
17937         * Makefile.am: Add BANSHEE_DEV_MONO_OPTIONS env var to enable setting
17938         --profile=default:stat for example to run with make run.
17940         * build/build.environment.mk: Depend on Mono.Data.SqliteClient again.
17941         Mono.Data.Sqlite requires that even reading the results of a query must be
17942         done in the same thread that ran the query/owns the connection.
17944         * src/Core/Banshee.Core/Banshee.IO/Provider.cs: Clean up.
17946         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs:
17947         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs:
17948         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
17949         * src/Core/Banshee.Services/Banshee.SmartPlaylist/Migrator.cs:
17950         * src/Core/Banshee.Services/Banshee.Configuration/DatabaseConfigurationClient.cs:
17951         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
17952         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs:
17953         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
17954         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryAlbumInfo.cs:
17955         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryArtistInfo.cs:
17956         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
17957         New HyenaSqliteConnection API.
17959         * src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs:
17960         Get rid of unused ctor and execute useful performance-related PRAGMAs.
17962         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
17963         Use HyenaSqliteConnection's utility methods, new API.  Add UserJob to
17964         rescan a user's songs when migrating over in order to get fields we now
17965         store in the database - like Disc, etc.
17967         * src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs: Get
17968         rid of ProxyToMain call.
17970         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
17971         Add null check.
17973         * src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs: Reorder
17974         loading of Library, Library playlists.
17976         * src/Core/Banshee.Services/Banshee.PlayerMigration/AmarokPlayerImportSource.cs:
17977         Use Mono.Data.SqliteClient.
17979         * src/Core/Banshee.Services/Banshee.ServiceStack/UserJob.cs: Avoid
17980         duplication in ctors.
17982         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Increase the
17983         delay betwen refreshes.
17985         * src/Core/Banshee.ThickClient/Banshee.SmartPlaylist.Gui/Editor.cs: Get
17986         rid of ProxyToMain calls.
17988         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSource.cs:
17989         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationSource.cs: Do
17990         not login to Last.fm radio until a source is activated.
17992         * src/Libraries/Hyena/Hyena.Data.Sqlite/DatabaseColumn.cs: Convert longs
17993         in a different way that M.D.SqliteClient likes.
17995         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteCommand.cs: Combined
17996         with QueuedSqliteCommand code, meant to be called by threaded/queued
17997         HyenaSqliteConnection.
17999         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteConnection.cs: Combined
18000         with QueuedSqliteDatabase code (from F-Spot's copy).  Supports blocking
18001         other threads during transactions and has no busy-waits.
18003 2008-02-26  Aaron Bockover  <abock@gnome.org>
18005         * ChangeLog: Fixed all the improper formatting that has been committed
18006         to this file lately. Wrote a guide that describes the proper formatting
18007         procedure for this file
18009         http://banshee-project.org/ChangeLogForDevelopers
18011         * HACKING: Updated with above link
18013 2008-02-25  Alexander Hixon  <hixon.alexander@mediati.org>
18014         
18015         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Audioscrobbler/AudioscrobblerService.cs:
18016         Attempt to queue the currently playing track when we dispose the 
18017         service, in case it's scrobbable, but the user quit before hitting
18018         the next button to send it off to the server. It gets queued until
18019         next start.
18021         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
18022         Fix TrackInfoDisplay by making sure we pass the correct EventMasks so
18023         that we don't bombard the user with cover art on track change, if the
18024         user had shown the cover art popup previously in the session. Also 
18025         fixes hiding the cover art popup after the correct amount of time. 
18027         * src/Libraries/Lastfm/Lastfm/RadioConnection.cs:
18028         * src/Libraries/Lastfm/Lastfm/AudioscrobblerConnection.cs:
18029         * src/Libraries/Lastfm/Lastfm/LastfmCore.cs: Remove Account from 
18030         constructors for RadioConnection and AudioscrobblerConnection.
18031         Also get the Connections to reference LastfmCore.Account rather
18032         than keeping track of their own copy.
18034 2008-02-24  Alexander Hixon  <hixon.alexander@mediati.org>
18035         
18036         * src/Libraries/Lastfm/Lastfm/RadioConnection.cs:
18037         * src/Libraries/Lastfm/Lastfm/AudioscrobblerConnection.cs: Remove class-
18038         based UserAgent properties, values and constructor arguments. Use
18039         LastfmCore.UserAgent instead.
18041         * src/Libraries/Lastfm/Lastfm/LastfmCore.cs: Simplify UserAgent's setter,
18042         and update instance creation to reflect changes in ctor definitions.
18044 2008-02-23  Alexander Hixon  <hixon.alexander@mediati.org>
18046         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/TrackInfoPopup.cs:
18047         Decrease spacing between time and progress bar.
18049         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSource.cs:
18050         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Audioscrobbler/AudioscrobblerService.cs:
18051         * src/Libraries/Lastfm/Lastfm/LastfmCore.cs: Use LastfmCore as a singleton 
18052         to access Last.fm classes.
18054         * src/Libraries/Lastfm/Lastfm/AudioscrobblerConnection.cs: Provide support
18055         for user agent when sending requests to Audioscrobbler servers. Can be
18056         passed via ctor or by setting the UserAgent property. Also marked ctor
18057         as internal.
18059         * src/Libraries/Lastfm/Lastfm/RadioConnection.cs: Added UserAgent property.
18060         Marked ctor as internal.
18062         * src/Libraries/Lastfm/Lastfm/Account.cs: Remove the static Account 
18063         instance, since it's now provided by LastfmCore as a singleton.
18065 2008-02-23  Scott Peterson <lunchtimemama@gmail.com> 
18067         * src/Core/Banshee.Services/Banshee.Library/ThreadPoolImportSource.cs,
18068         * src/Core/Banshee.Services/Banshee.PlayerMigration/AmarokPlayerImportSource.cs:
18069         Renamed DoImport to ImportCore as per Framework Design Guidelines, also
18070         slapped the new keyword onto the static
18071         AmarokPlayerImportSource.CanImport property to get rid of the warning
18072         about it hiding a base member of the same name (which it should).
18074 2008-02-23  Alexander Hixon  <hixon.alexander@mediati.org>
18076         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/X11NotificationAreaBox.cs:
18077         Get track duration and progress information before showing the popup 
18078         and relying on the fact that we're playing to determine the progress
18079         label text. Showing the popup during a paused song now works.
18081         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/TrackInfoPopup.cs:
18082         Add some padding around the TrackInfoDisplay to pretty things up
18083         slightly and line up the cover art.
18085         * src/Libraries/Lastfm.Gui/Lastfm.Gui/AccountLoginForm.cs: Don't try
18086         to run Account.Save if the username or password haven't changed
18087         since the time the dialog was opened till the time it closed.
18088         Prevents reconnecting if you simply open the dialog and close it again.
18090 2008-02-23  Alexander Hixon  <hixon.alexander@mediati.org>
18092         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/X11NotificationAreaBox.cs:
18093         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/TrackInfoPopup.cs:
18094         Added LinearProgress hotness.
18096         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ConnectedSeekSlider.cs: 
18097         Fixed a bug where the user would change tracks while a track was mid-way 
18098         through being buffered, and the first track's buffering result would 
18099         cover up the song duration/progress information.
18101 2008-02-23  Alexander Hixon  <hixon.alexander@mediati.org>
18103         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Audioscrobbler/AudioscrobblerService.cs:
18104         Rewrote the SongTimer class to use PlayerEngine.Position. Doesn't rely on
18105         PlayerEngineState events anymore. This also means that SongTimer works 
18106         well while listening to songs on Last.fm.
18108         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Audioscrobbler/Queue.cs:
18109         * src/Libraries/Lastfm/Lastfm/AudioscrobblerConnection.cs: 
18110         Implement MusicBrainzId property and using that data to generate requests 
18111         to Last.fm. Currently isn't attached to any real data source, so the ID 
18112         is always empty.
18114 2008-02-23  Alexander Hixon  <hixon.alexander@mediati.org>
18116         * src/Core/Banshee.ThickClient/Banshee.Gui/BaseClientWindow.cs: Port fix 
18117         across from stable so that using Alt+F4 to close the main window 
18118         works again.
18120 2008-02-23  Alexander Hixon  <hixon.alexander@mediati.org>
18122         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Audioscrobbler/AudioscrobblerService.cs:
18123         Remove a few bits of commented code. Added Stock.Properties icon for 
18124         the Configure menu item.
18126         * src/Core/Banshee.ThickClient/Banshee.Gui/ViewActions.cs: Added Ctrl+E 
18127         keyboard shortcut for equalizer window.
18129         * src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs: Added 
18130         Stock.Preferences icon for Preferences menu item.
18132         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Added E 
18133         keyboard shortcut for track editor dialog.
18135 2008-02-23  Alexander Hixon  <hixon.alexander@mediati.org>
18137         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSource.cs: Use 
18138         the static instance of Account shared by others, rather than creating 
18139         a seperate instance.
18141         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Audioscrobbler/AudioscrobblerService.cs:
18142         * src/Libraries/Lastfm/Lastfm/AudioscrobblerConnection.cs: Added support 
18143         for keeping track of network connection state and automatically connecting.
18144         Also included better debugging messages.
18146         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Audioscrobbler/AudioscrobblerService.cs:
18147         Fix queuing tracks that have actually been played long enough but were 
18148         not submitted. Also added a few simple checks to see if the current track 
18149         attempting to be queued is null or has been listened to for less than 
18150         one second.
18152         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Audioscrobbler/Queue.cs: 
18153         Send tracks with the correct original play-start time (instead of 
18154         double-universal time).
18156         * src/Libraries/Lastfm/Lastfm/AudioscrobblerConnection.cs: Make sure that 
18157         errors when POSTing the current track being listened to aren't displayed 
18158         to the user via the HIG message dialog - log them silently to console 
18159         instead.
18161 2008-02-22  Alexander Hixon  <hixon.alexander@mediati.org>
18163         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Audioscrobbler/AudioscrobblerService.cs:
18164         Use a slightly less brain-dead method of checking the total length of 
18165         the track played. Skipping through a track but playing the correct 
18166         length for inclusion on a Last.fm profile now works correctly. Also added 
18167         support for sending NowPlaying information.
18169         * src/Libraries/Lastfm/Lastfm/Account.cs: Create an 'Instance' property 
18170         for use via multiple modules.
18172         * src/Libraries/Lastfm/Lastfm/AudioscrobblerConnection.cs: Uncommented 
18173         and exposed NowPlaying method, so that Last.fm lists the current track 
18174         as playing.
18176 2008-02-22  Alexander Hixon  <hixon.alexander@mediati.org>
18178         * src/Extensions/Banshee.Audioscrobbler: Mark this as removed in SVN. 
18179         Accidentally missed in previous revision.
18181         * src/Extensions/Banshee.Lastfm/Resources/AudioscrobblerMenu.xml: Added 
18182         missing file, enables Audioscrobbler extension service to load 
18183         without error.
18185 2008-02-22  Alexander Hixon  <hixon.alexander@mediati.org>
18187         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Audioscrobbler/Queue.cs:
18188         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Audioscrobbler/AudioscrobblerService.cs:
18189         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.addin.xml: Cleaned 
18190         version of the Audioscrobbler plugin from stable. Glue to hook up 
18191         player engine and AudioscrobblerConnection logic lives here.
18193         * src/Libraries/Lastfm/Lastfm/AudioscrobblerConnection.cs:
18194         * src/Libraries/Lastfm/Lastfm/IQueue.cs: Seperate out web bits and 
18195         queue interface into our Last.fm library. Uses version 1.2 of the 
18196         Last.fm protocol.
18198         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml:
18199         * src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs: Added 'Tools' menu.
18201 2008-02-22  Scott Peterson <lunchtimemama@gmail.com> 
18203         * src/Core/Banshee.Services/Banshee.Library/ThreadPoolImportSource.cs: Minor
18204         fix for fetching the UserJob's Title.
18206 2008-02-22  Scott Peterson <lunchtimemama@gmail.com> 
18208         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs,
18209         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteConnection.cs:
18210         HyenaSqliteConnection.GetSchema now returns an IDictionary<string,
18211         string> rather than a Dictionary<string, string>.
18213 2008-02-22  Scott Peterson <lunchtimemama@gmail.com> 
18215         * src/Core/Banshee.Services/Banshee.Library/ImportSourceManager.cs,
18216         * src/Core/Banshee.Services/Banshee.PlayerMigration/AmarokPlayerImportSource.cs:
18217         Minor change to Amarok's CanImport property name.
18219 2008-02-21  Gabriel Burt  <gabriel.burt@gmail.com>
18221         * build/build.environment.mk:
18222         * configure.ac:
18223         * src/Clients/Nereid/Nereid/Client.cs:
18224         * src/Extensions/Banshee.Skins/Banshee.Skins.addin.xml:
18225         * src/Extensions/Banshee.Skins/Banshee.Skins.mdp:
18226         * src/Extensions/Banshee.Skins/Banshee.Skins/SkinManager.cs:
18227         * src/Extensions/Banshee.Skins/Makefile.am:
18228         * src/Extensions/Banshee.Skins/Resources/GlobalUI.xml:
18229         * src/Extensions/Makefile.am: New extension for switching skins (*.gtkrc
18230         files under ~/.config/plugins/skins/).
18232 2008-02-21  Gabriel Burt  <gabriel.burt@gmail.com>
18234         * src/Libraries/Hyena/Hyena.Query/DateQueryValue.cs: Make the regex
18235         static.
18237         * src/Libraries/Lastfm/Lastfm.Data/DataEntryCollection.cs:
18238         * src/Libraries/Lastfm/Lastfm.Data/DataEntry.cs: Enforce the Root as being
18239         a XmlElement, and if it doesn't have a child element of the requied name,
18240         see if it has an attribute.
18242 2008-02-21  Gabriel Burt  <gabriel.burt@gmail.com>
18244         * src/Libraries/Hyena/Hyena.Query/DateQueryValue.cs: Cleanup.
18246 2008-02-21  Gabriel Burt  <gabriel.burt@gmail.com>
18248         * build/build.environment.mk: Add Mono.Unix dep to Hyena so strings can be
18249         translated, like they already could be in Hyena.Gui.
18251         * src/Core/Banshee.Services/Banshee.Base/RateLimiter.cs: Add option to not
18252         run wrapped method immediately, but to have a delay first.
18254         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
18255         Implement DependsOn using depth-first scan of the ConditionTree.
18257         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Set a 10ms
18258         delay before responding to OnTrackUpdated.
18260         * src/Core/Banshee.ThickClient/Banshee.Query.Gui/SmartPlaylistQueryValueEntry.cs:
18261         Check if Editor.CurrentlyEditing is set, and if so, do not put the current
18262         playlist or ones that depend on it in the dropdown.
18264         * src/Core/Banshee.ThickClient/Banshee.SmartPlaylist.Gui/Editor.cs: Expose
18265         through a public static property what Smart Playlist is currently being
18266         edited.
18268         * src/Libraries/Hyena.Gui/Hyena.Query.Gui/QueryBox.cs: Add and use a
18269         Gtk.Entry if the query is more complicated than our GUI can handle.
18271         * src/Libraries/Hyena.Gui/Hyena.Query.Gui/QueryTermBox.cs: Clean.
18273         * src/Libraries/Hyena.Gui/Hyena.Query.Gui/QueryTermsBox.cs: Make methods
18274         protected instead of public, throw exception if unable to handle the
18275         QueryNode given.
18277         * src/Libraries/Hyena/Hyena.Query/DateQueryValue.cs: Support parsing and
18278         generating relative-date user queries.
18280         * src/Libraries/Hyena/Hyena.Query/FileSizeQueryValue.cs: Put a space
18281         between the file size and its unit.
18283         * src/Libraries/Hyena/Hyena.Query/IntegerQueryValue.cs: Change the default
18284         alias for the Equal operator to "=" instead of "==".
18286         * src/Libraries/Hyena/Hyena.Query/QueryListNode.cs: Use ' or ' instead of
18287         ', ' to separate OR'd nodes in generated user queries.
18289         * src/Libraries/Hyena/Hyena.Query/UserQueryParser.cs: Add a static Parse
18290         method for convenience.
18292 2008-02-21  Scott Peterson <lunchtimemama@gmail.com> 
18294         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs: Changed it so
18295         that the "Sort Children" option appears only if there are two or more
18296         children of a source: a list of one is always sorted :)
18298 2008-02-21  Gabriel Burt  <gabriel.burt@gmail.com>
18300         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
18301         Add DateUpdated property and update it in Save method.
18303         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
18304         Rename DiscNumber to Disc to avoid automatic column creation.  Fix issue
18305         with DateUpdatedStamp not being created, and use DateAdded as its default
18306         value for migrated tracks.
18308         * src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs: Use
18309         the Source property on DatabaseTrackInfo instead of SourceId.  Remove
18310         reload call to Library since it saving the tracks automatically triggers
18311         it now.
18313         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Increase
18314         minimum time between reloads.
18316         * src/Core/Banshee.Services/Banshee.Sources/ErrorSource.cs: Implement
18317         IUnmapableSource.
18319         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: Add
18320         TracksUpdated event.
18322         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Try to popdown
18323         the menu before rating.
18325         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml: Add
18326         custom context menu for ErrorSource.
18328         * src/Libraries/Hyena/Hyena/Log.cs: Make log type string all the same
18329         length so they line up better.
18331 2008-02-21  Scott Peterson <lunchtimemama@gmail.com> 
18333         This commit begins to port the player migration namespace from stable into 
18334         trunk. I've only done the Amarok importer as a proof-of-concept and I 
18335         haven't tested it. This commit is more about laying out the 
18336         namespace/object design for the player migration stuff for critique. 
18337         What is presented here in this patch is subject to change if anyone 
18338         wants to massage it a little more. Otherwise I'll go ahead with
18339         porting/testing the other player migrators. So please provide feedback!
18341         * src/Core/Banshee.Services/Banshee.Library/ThreadPoolImportSource.cs: 
18342         Added a base class for IImportSources which will perform a single-method
18343         import operation in a ThreadPool thread.
18345         * src/Core/Banshee.Services/Banshee.Library/ImportSourceManager.cs: Added
18346         Amarok importer to import sources.
18348         * src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs: 
18349         Created a new public method AddTrackToLibrary, which contains the logic 
18350         for adding a track to the library and hooking up the related Artist and
18351         Album infos.
18353         * src/Core/Banshee.Services/Banshee.PlayerMigration/AmarokPlayerImportSource.cs:
18354         Ported the Amarok importer from stable. NOTE: I don't have Amarok - and
18355         it's 3am - so I haven't tested this. It needs testing! SOMEONE TEST
18356         THIS!!!
18358 2008-02-20  Gabriel Burt  <gabriel.burt@gmail.com>
18360         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSourceContents.cs:
18361         If possible, set album art on the lists of tracks.  Unfortunately the
18362         Last.fm feed for recently loved songs doesn't include the album name, so
18363         no cover art there.
18365         * src/Libraries/Lastfm/Lastfm.Data/DataEntry.cs: Add new Entry types for
18366         Artist data.
18368         * src/Libraries/Lastfm/Makefile.am:
18369         * src/Libraries/Lastfm/Lastfm.Data/LastfmArtistData.cs: Expose
18370         artist-related data.
18372 2008-02-20  Gabriel Burt  <gabriel.burt@gmail.com>
18374         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSourceContents.cs:
18375         Fix numbering.
18377 2008-02-20  Gabriel Burt  <gabriel.burt@gmail.com>
18379         * src/Core/Banshee.Services/Banshee.Web/Browser.cs: Add implementation,
18380         gleaned from MonoDevelop.
18382         * src/Core/Banshee.Widgets/Makefile.am:
18383         * src/Core/Banshee.Widgets/Banshee.Widgets/MenuTile.cs: Subclass of Tile
18384         that overrides the OnButtonPress so it can be used to pop up a menu.
18386         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmActions.cs:
18387         Add actions and handlers for artists, albums, and tracks that go to
18388         various websites (Last.fm, Wikipedia) and other fun things.
18390         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSourceContents.cs:
18391         Add two lists: 10 most recently played songs, and 10 most recently loved.
18393         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationType.cs: Break
18394         types out into public static variables.
18396         * src/Extensions/Banshee.Lastfm/Resources/GlobalUI.xml: Add Popups for
18397         artists, albums, and tracks.  Currently only tracks is actually used.
18399         * src/Libraries/Lastfm/Makefile.am:
18400         * src/Libraries/Lastfm/Lastfm.Data/UserData.cs:
18401         * src/Libraries/Lastfm/Lastfm.Data/LastfmUserData.cs: Move to
18402         LastfmUserData, and change API - expose as properites data that doesn't
18403         take any arguments.  Cache results in a local dictionary to avoid hitting
18404         the network every time property is accessed.
18406         * src/Libraries/Lastfm/Lastfm.Data/LastfmData.cs: Add Refresh method that
18407         will ignore the cache.
18409         * src/Libraries/Lastfm/Lastfm/RadioConnection.cs: Add comment with
18410         unimplemented xmlrpc methods.
18412         * src/Libraries/Lastfm/Test.cs: Update to new API.
18414 2008-02-20  Gabriel Burt  <gabriel.burt@gmail.com>
18416         This commit adds a CorePrimarySources table and a SourceID column to the
18417         CoreTracks table, allowing non-Library tracks to be stored there (and
18418         therefore benefit from our searching, playlist, smart playlist, and view
18419         code).
18421         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs:
18422         * src/Core/Banshee.Services/Banshee.Base/RateLimiter.cs: Allow specifying
18423         a min_interval on each rate-limited execute.
18425         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs:
18426         * src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
18427         Rename to DatabaseTrackInfo, add SourceId property.
18429         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
18430         Add new CorePrimarySources table, add SourceID to CoreTracks, remove
18431         unique constraint on CorePlaylistEntries.
18433         * src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs: When
18434         importing set the SourceId on the new DatabaseTrackInfos.
18436         * src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs: Refactor
18437         a lot of logic into PrimarySource, and inherit from it.
18439         * src/Core/Banshee.Services/Banshee.Library/HomeDirectoryImportSource.cs:
18440         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistFileUtil.cs: Use
18441         shorter way of getting a specific service from the ServiceManager.
18443         * src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs: New class
18444         to be subclassed by LibrarySource, DaapSource, DapSource, etc - a way of
18445         reusing CoreTracks and all associated goodness for non-Library tracks.
18447         * src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs: Add Library
18448         convenience property.
18450         * src/Core/Banshee.Services/Banshee.Services.mdp:
18451         * src/Core/Banshee.Services/Makefile.am: Updated
18453         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistCore.cs:
18454         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs:
18455         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
18456         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/NotificationAreaService.cs:
18457         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
18458         Use DatabaseTrackInfo.
18460         * src/Libraries/Hyena/Hyena.Data.Sqlite/DatabaseColumn.cs: Avoid problem
18461         in Mono.Data.Sqlite in getting Int64 value.
18463         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteConnection.cs: Add
18464         convience methods for Query, Execute, ExecuteReader that accept the same
18465         parameters as the HyenaSqliteCommand ctor does, allowing
18466         Query<int>("select x from y where ?", z) instead of Query<int>(new
18467         HyenaSqliteCommand ("select x from y where ?", z)).
18469         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs: Add
18470         try/catch around Load method to avoid crashing and provide debugging if
18471         there are issues loading a row into an object.
18473 2008-02-20  Aaron Bockover  <abock@gnome.org>
18475         * src/Core/Banshee.Services/Banshee.MediaEngine/NullPlayerEngine.cs:
18476         * src/Libraries/Hyena.Gui/Hyena.Widgets/MessageBar.cs: Minor fixes for
18477         Windows
18479         * win-deps/Mono.Addins.dll.config: Added the .config for Mono.Addins
18481 2008-02-20  Aaron Bockover  <abock@gnome.org>
18483         * src/Clients/Nereid/Nereid/PlayerInterface.cs: If control is being held
18484         down when the source view activates a row, set the source to be the
18485         playback source, but do not play the first song in that source - this means
18486         that ctrl+double-clicking a source will 'queue' that source to play next
18488         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Make sure the
18489         editor button works on all database sources
18491         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs: Because
18492         the ctrl+click behavior is strange on this use of the tree view, override
18493         it and emulate the row activation
18495         * src/Libraries/Hyena.Gui/Hyena.Gui/GtkUtilities.cs: Support reading 
18496         modifier states from Gdk.EventButton as well; make the array params
18498 2008-02-20  Aaron Bockover  <abock@gnome.org>
18500         * src/Core/Banshee.Services/Banshee.Library/ImportSourceManager.cs:
18501         Fixed loading after Scott's commit, defer the loading of these import
18502         objects until they are actually needed to improve theoretical startup speed
18504         * src/Core/Banshee.Services/Banshee.Library/IImportSource.cs: Added the
18505         CanImport member that Scott used in IExtensionImportSource
18506         
18507         * src/Core/Banshee.Services/Banshee.Library/IExtensionImportSource.cs:
18508         Removed, no sense in having this interface
18510         * src/Core/Banshee.Services/Banshee.Library/HomeDirectoryImportSource.cs:
18511         * src/Core/Banshee.ThickClient/Banshee.Library.Gui/FileImportSource.cs:
18512         * src/Core/Banshee.ThickClient/Banshee.Library.Gui/FolderImportSource.cs:
18513         Implement CanImport
18515 2008-02-19  Scott Peterson <lunchtimemama@gmail.com> 
18517         * src/Core/Banshee.Services/Banshee.Library/IExtensionImportSource.cs: Added
18518           copyright name.
18520 2008-02-19  Scott Peterson <lunchtimemama@gmail.com> 
18522         * src/Core/Banshee.Services/Banshee.Library/IExtensionImportSource.cs: Added
18523         the IExtensionImportSource interface which extends the IImportSource
18524         interface to include bool CanImport { get; }. This means that an
18525         extension-provided import source will only be added to the list if the
18526         import source can be imported. Such a check might entail determining
18527         whether Beagle is installed, or a particular file (other music player's
18528         db) is present, &c..
18530         * src/Core/Banshee.Services/Banshee.Library/ImportSourceManager.cs: Made to
18531         use the new IExtensionImportSource when adding extension sources to the
18532         list of availible import sources.
18534 2008-02-19  Aaron Bockover  <abock@gnome.org>
18536         * src/Clients/Nereid/Nereid/PlayerInterface.cs: Apply the window default
18537         background to override the toolbar background instead of just a flat
18538         colored rectangle; should play nicer with some themes
18539         
18540         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
18541         Apply a default background and override OnUnrealized and OnUnmapped
18543         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Windowing.cs:
18544         Remove WidgetFlags.Realized in OnUnrealized
18546 2008-02-19  Aaron Bockover  <abock@gnome.org>
18548         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/NotificationAreaService.cs:
18549         Added the skip song feature back
18551 2008-02-19  Aaron Bockover  <abock@gnome.org>
18553         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/X11NotificationAreaBox.cs:
18554         Ported the show/hide TrackInfoPopup/tooltip when the mouse cursor is over
18555         the notification area icon
18557         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/TrackInfoPopup.cs:
18558         Ported the TrackInfoPopup/tooltip to use the new TrackInfoDisplay
18560         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
18561         Implemented proper managed resource disposing and set the current track
18562         on size allocation
18564         * src/Clients/Nereid/Nereid/PlayerInterface.cs: Set the title of the window
18565         to the track information
18567         * src/Core/Banshee.ThickClient/Banshee.Gui/BaseClientWindow.cs: Added
18568         a TitleChanged event and an UpdateTitle abstract method
18570         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/GtkNotificationAreaBox.cs:
18571         Set the tooltip to the primary window's title, track it when it changes
18573         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/INotificationAreaBox.cs:
18574         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/NotificationAreaService.cs:
18575         Added a proxy method for player engine events
18577         * src/Extensions/Banshee.NotificationArea/Notifications/Notification.cs:
18578         Do not crash when Widget is null
18580 2008-02-19  Aaron Bockover  <abock@gnome.org>
18581         
18582         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/NotificationAreaService.cs:
18583         Ported notification bubbles. Hawt. 4 u snorp lol.
18585         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngine.cs:
18586         Added constant VolumeDelta and SkipDelta public fields
18588         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellAlbum.cs:
18589         Don't use the redundant string parameter version of ServiceManager.Get
18591         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/GtkNotificationAreaBox.cs:
18592         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/INotificationAreaBox.cs:
18593         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/X11NotificationAreaBox.cs:
18594         Added a Widget property for the notifications to use
18595         
18596         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/X11NotificationArea.cs:
18597         Ignore some other crappy warnings
18599 2008-02-19  Gabriel Burt  <gabriel.burt@gmail.com>
18601         * src/Core/Banshee.Services/Banshee.Playlists.Formats/M3uPlaylistFormat.cs:
18602         * src/Core/Banshee.Services/Banshee.Playlists.Formats/PlsPlaylistFormat.cs:
18603         Uncomment out Save methods, and modify to work with TrackListModel.
18605         * src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs: Work on
18606         ImportPlaylistAction - still not enabled/working.
18608         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs: Add
18609         ExportPlaylistAction handler.
18611         * src/Core/Banshee.ThickClient/Makefile.am:
18612         * src/Core/Banshee.ThickClient/Banshee.Playlist.Gui/PlaylistExportDialog.cs:
18613         Ported from stable.
18615         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml: Add
18616         Export playlist action to source context menu and edit menu.
18618 2008-02-19  Gabriel Burt  <gabriel.burt@gmail.com>
18620         * src/Clients/Nereid/Nereid/PlayerInterface.cs: Fix bug in getting
18621         sources' custom views.
18623         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.mdp:
18624         * src/Extensions/Banshee.Lastfm/Makefile.am:
18625         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSourceContents.cs:
18626         New class, shows how sources can set custom views.
18628         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSource.cs: Set
18629         the custom view, allow activating.
18631 2008-02-19  Gabriel Burt  <gabriel.burt@gmail.com>
18633         * src/Extensions/Banshee.Lastfm/Resources/Banshee.Lastfm.addin.xml:
18634         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.mdp:
18635         * src/Extensions/Banshee.Lastfm/Makefile.am: Move the addin.xml file up
18636         from Resources.
18638 2008-02-19  Gabriel Burt  <gabriel.burt@gmail.com>
18640         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/ISourceContents.cs: New
18641         interface.
18643         * src/Clients/Nereid/Nereid/PlayerInterface.cs: When the ActiveSource is
18644         changed, call ISourceContents.ResetSource on the current SourceContents.
18645         Check the new source for a NereidSourceContents property and use it if it
18646         exists (allowing Sources to define custom views).  And finally call
18647         ISourceContents.SetSource on the new SourceContents.
18649         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/CompositeTrackListView.cs:
18650         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/CompositeTrackSourceContents.cs:
18651         Move to Banshee.Sources.Gui and implement ISourceContents.
18653         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/ObjectListSourceContents.cs:
18654         New class that wraps a ObjectListView in a ScrolledWindow and implements
18655         ISourceContents.
18657         * src/Clients/Nereid/Nereid/ViewContainer.cs: Defined Contents as a
18658         ISourceContents not a Widget.
18660         * src/Core/Banshee.ThickClient/Makefile.am: Updated.
18662 2008-02-19  Aaron Bockover  <abock@gnome.org>
18664         This commit adds most of the functionality of the notification area
18665         back, and adds a new layer of cross platform support, so it should work
18666         on Windows with limited functionality since Windows doesn't support 
18667         what the raw X11 version can
18669         * src/Clients/Nereid/Nereid/PlayerInterface.cs:
18670         * src/Clients/Nereid/Nereid/PlayerWindowSchema.cs:
18671         * src/Core/Banshee.ThickClient/Banshee.Gui/BaseClientWindow.cs: Moved
18672         some windowing/state functionality into BaseClientWindow; includes stuff
18673         like ToggleVisibility
18675         * src/Core/Banshee.ThickClient/Banshee.Gui/GtkElementsService.cs: Expose
18676         PrimaryWindow as BaseClientWindow and added the PrimaryCloseHandler
18678         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/NotificationAreaService.cs:
18679         Major refactor of the notification area; get most of the basic interaction
18680         functionality working again (clicking the icon, toggling window visibility,
18681         popup menu; push the actual notification area down a level into the new
18682         INotificationAreaBox abstraction, implementing common events in the 
18683         service layer
18685         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/INotificationAreaBox.cs:
18686         An interface to expose common functionality of the area boxes so that
18687         the service can implement common functionality once
18689         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/X11NotificationAreaBox.cs:
18690         An advanced INotificationAreaBox implementation that supports more events
18691         on the notification area; this is functionally on par with Banshee stable
18692         but will only work on X11; when it fails, GtkNotificationAreaBox will work
18694         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/GtkNotificationAreaBox.cs:
18695         An INotificationAreaBox implementation that wraps GtkStatusIcon; this is
18696         a very basic one since the GtkStatusApi is extremely limited due to 
18697         cross platform support; only the context menu and left click are supported,
18698         but it will work on Windows
18700 2008-02-18  Aaron Bockover  <abock@gnome.org>
18702         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmActions.cs:
18703         Removed duplicate using declaration
18705         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSource.cs:
18706         Added a property to get the LastfmActions
18708         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationSource.cs:
18709         When the lastfm error is account related, add a message action to allow
18710         the user to enter their account details
18712         * src/Libraries/Hyena.Gui/Hyena.Widgets/MessageBar.cs: Fix a few bugs
18714         * src/Libraries/Lastfm/Lastfm/RadioConnection.cs: Lots of tabs->spaces
18716 2008-02-18  Aaron Bockover  <abock@gnome.org>
18718         * src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs: Disable the
18719         extension manager UI for now
18721 2008-02-18  Aaron Bockover  <abock@gnome.org>
18723         * src/Extensions/Banshee.Lastfm/Resources/GlobalUI.xml: Hide the love/ban
18724         from the menu since it doesn't make sense yet
18726         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs:
18727         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
18728         Hide menu items that don't apply when the source is not library-based
18730 2008-02-18  Aaron Bockover  <abock@gnome.org>
18732         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmActions.cs:
18733         Implement love/hate actions
18735         * src/Extensions/Banshee.Lastfm/Resources/GlobalUI.xml: Add love/hate
18736         buttons to the header
18738         * src/Core/Banshee.ThickClient/Banshee.Gui/BansheeIconFactory.cs: Allow
18739         new theme icons to be mapped into stock publicly
18741 2008-02-18  Aaron Bockover  <abock@gnome.org>
18743         * src/Libraries/Lastfm/Lastfm/RadioConnection.cs: Make the network
18744         connection handshake run in a thread again
18746 2008-02-18  Aaron Bockover  <abock@gnome.org>
18748         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ConnectedMessageBar.cs:
18749         Set some default spacing
18751         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListViewGraphics.cs: Add a version
18752         of DrawFrame that takes a color
18754         * src/Libraries/Hyena.Gui/Hyena.Widgets/MessageBar.cs: Draw our nice 
18755         rounded frame and set a good default padding
18757 2008-02-18  Aaron Bockover  <abock@gnome.org>
18759         * src/Clients/Nereid/Nereid/ViewContainer.cs: Pack a ConnectedMessageBar
18761         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs:
18762         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceIconResolver.cs:
18763         Pulled the icon resolver out of SourceRowRenderer since sources may have
18764         multiple icons and it's useful outside of the renderer
18766         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ConnectedMessageBar.cs:
18767         Works against a number of standardized Message.* properties that can be
18768         set on a source's PropertyStore; this allows sources to communicate status
18769         messages easily to the user
18771         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationSource.cs:
18772         Use the new Message.* properties to communicate status messages to the user
18774         * src/Libraries/Hyena/Hyena.Data/PropertyStore.cs: Added RemoveStartingWith
18776         * src/Libraries/Hyena.Gui/Hyena.Gui.Theatrics/Actor.cs: Added a CanExpire
18777         property; reset the percentage to 0 when it reaches 1 and the actor is
18778         not allowed to expire
18780         * src/Libraries/Hyena.Gui/Hyena.Widgets/AnimatedImage.cs:
18781         * src/Libraries/Hyena.Gui/Hyena.Widgets/MessageBar.cs: Ported/moved from
18782         Banshee.Widgets; AnimatedImage works better and uses Hyena.Gui.Theatrics
18784         * src/Libraries/Hyena.Gui/Hyena.Widgets/RoundedFrame.cs: Send the
18785         expose events to children
18786         
18787         * src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs:
18788         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs:
18789         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
18790         * src/Core/Banshee.Services/Banshee.Sources/ErrorSource.cs:
18791         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSource.cs:
18792         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
18793         Updated to reflect the property name change from IconName to Icon.Name
18795 2008-02-18  Scott Peterson <lunchtimemama@gmail.com> 
18797         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
18798         Changed LoadAll method to return IEnumerable rather than List. Since the
18799         method is only ever iterated over, we can do away with the List object.
18801 2008-02-17  Gabriel Burt  <gabriel.burt@gmail.com>
18803         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
18804         Avoid hitting the model/database when clicking where there is no row.
18806 2008-02-17  Gabriel Burt  <gabriel.burt@gmail.com>
18808         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs:
18809         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
18810         * src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs:
18811         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
18812         Add Genre columsn to CoreTracks, and support it as a query field, query
18813         order, and ListView column.
18815 2008-02-17  Gabriel Burt  <gabriel.burt@gmail.com>
18817         * src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs: Change
18818         LastPlayed and DateAdded order names.
18820         * src/Core/Banshee.Services/Banshee.SmartPlaylist/Migrator.cs: Wrap the
18821         migration in a transaction, print error message if it fails.
18823         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistCore.cs:
18824         Only initialize if the migration was successful.
18826         * src/Libraries/Hyena.Gui/Hyena.Query.Gui/QueryLimitBox.cs: BansheeQuery's
18827         Orders array has nulls in it to indicate where separators would be nice -
18828         actually implement those in the ComboBox.
18830         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationSource.cs:
18831         Improve comment.
18833 2008-02-16  Gabriel Burt  <gabriel.burt@gmail.com>
18835         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationSource.cs:
18836         Only keep the last five played or skipped songs.
18838 2008-02-16  Gabriel Burt  <gabriel.burt@gmail.com>
18840         * src/Libraries/Lastfm/Test.cs:
18841         * src/Libraries/Lastfm.Gui/Test.cs: Add tests.
18843 2008-02-16  Gabriel Burt  <gabriel.burt@gmail.com>
18845         * src/Libraries/Lastfm/Lastfm/Connection.cs:
18846         * src/Libraries/Lastfm/Lastfm/RadioConnection.cs: Rename to
18847         RadioConnection.cs
18849         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/StationSource.cs: Use
18850         RadioConnection.
18852 2008-02-16  Gabriel Burt  <gabriel.burt@gmail.com>
18854         * src/Extensions/Banshee.Lastfm/*: Grr, overwrote Aaron's last fixes with
18855         my svn mv, since I'd initiated it locally before svn up'ing his changes.
18857 2008-02-16  Gabriel Burt  <gabriel.burt@gmail.com>
18859         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm: Move Banshee.Lastfm to
18860         Banshee.Lastfm.Radio in preparation for merging the Audioscrobbler and
18861         Recommendations plugins.
18863 2008-02-16  Gabriel Burt  <gabriel.burt@gmail.com>
18865         This commit adds support for most of the user-particular data feeds
18866         Audioscrobbler offers into Lastfm.dll, our Banshee-independent Lastfm
18867         library.
18869         * src/Libraries/Lastfm/Lastfm.Data/LastfmDataCollection.cs:
18870         * src/Libraries/Lastfm/Lastfm.Data/UserTopTracks.cs:
18871         * src/Libraries/Lastfm/Lastfm.Data/UserTopArtists.cs:
18872         * src/Libraries/Lastfm/Lastfm.Data/UserTopData.cs:
18873         * src/Libraries/Lastfm/Lastfm.Data/Profile.cs:
18874         * src/Libraries/Lastfm/Lastfm.Data/UserTopAlbums.cs: Removed files.
18876         * src/Libraries/Lastfm/Test.cs:
18877         * src/Libraries/Lastfm.Gui/Test.cs: Moved test to Lastfm.Gui.
18879         * src/Libraries/Lastfm/Lastfm.Data/DataCore.cs: New static class for doing
18880         initialization and settings.
18882         * src/Libraries/Lastfm/Lastfm.Data/DataEntryCollection.cs: New class that
18883         wraps a XmlNodeList.
18885         * src/Libraries/Lastfm/Makefile.am: Updates, add make test rule.
18887         * src/Libraries/Lastfm/Lastfm.Data/DataEntry.cs: Move all DataEntry
18888         subclasses here.  There are too many to have in separate classes (and the
18889         header/code ratio is really high).
18891         * src/Libraries/Lastfm/Lastfm.Data/UserData.cs: Wrap almost all of the
18892         Last.fm data feeds that pertain to a particular user.
18894         * src/Libraries/Lastfm/Lastfm.Data/LastfmData.cs: Update for DataCore
18895         changes, and instantiate and wrap a DataEntryCollection.
18897 2008-02-16  Aaron Bockover  <abock@gnome.org>
18899         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
18900         Set RowSensitivePropertyName to 'CanPlay'
18902         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
18903         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Model.cs:
18904         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
18905         Added a RowSensitivePropertyName property, defaulting to 'Sensitive'; 
18906         objects in the model will be queried for this property to indicate whether
18907         the object is sensitive (enabled) or not; render the row's sensitivity
18909         * src/Libraries/Lastfm/Lastfm/Connection.cs: Clear the password if invalid
18911 2008-02-16  Aaron Bockover  <abock@gnome.org>
18913         * src/Libraries/Lastfm/Lastfm/Account.cs: Renamed Username to UserName
18915         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm/LastfmActions.cs:
18916         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm/LastfmSource.cs:
18917         * src/Libraries/Lastfm.Gui/Lastfm.Gui/AccountLoginForm.cs:
18918         * src/Libraries/Lastfm/Lastfm/Connection.cs: Use the UserName property
18920         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm/StationSource.cs: Store
18921         the MD5 hashed last.fm password
18923         * src/Libraries/Hyena/Hyena/CryptoUtil.cs: Moved some MD5 methods from
18924         Last.fm to here
18926         * tests/Hyena/CryptoUtilTests.cs: Tests for CryptoUtil
18928 2008-02-16  Aaron Bockover  <abock@gnome.org>
18930         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
18931         Fixed bug with the new NullPlayerEngine fallback loading
18933 2008-02-16  Aaron Bockover  <abock@gnome.org>
18935         * src/Core/Banshee.Core/Banshee.Base/PlatformHacks.cs: Only run these
18936         hacks if we are on Unix, and don't crash even if we are and they fail
18937         
18938         * src/Core/Banshee.Services/Banshee.MediaEngine/NullPlayerEngine.cs:
18939         A fake engine that does nothing, used to allow Banshee to at least
18940         start up on Windows without libbanshee
18942         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
18943         Load the NullPlayerEngine if no real engines could be loaded
18944         
18945         * src/Core/Banshee.Services/Banshee.ServiceStack/DBusServiceManager.cs:
18946         Disable DBus support if BusG.Init fails
18948         * src/Libraries/Hyena.Gui/Hyena.Data.Gui/CairoHelper.cs: Do not P/Invoke
18949         to get the cairo context, instead use Gdk.CairoHelper
18951 2008-02-16  Aaron Bockover  <abock@gnome.org>
18953         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteConnection.cs: Added
18954         a necessary null check and return default (T) for the generic Query 
18955         method that Scott introduced - fixes the bug everyone has been complaining
18956         about
18958 2008-02-16  Aaron Bockover  <abock@gnome.org>
18960         Moved Nereid from Core/ to Clients/; fixed up a lot of MonoDevelop stuff
18962 2008-02-15  Aaron Bockover  <aaron@abock.org>
18964         * build/build.environment.mk: Link against ICSharpCode.SharpZipLib
18966         * configure.ac: Check for Mono.Data.Sqlite instead of Mono.Data.SqliteClient
18968 2008-02-15  Gabriel Burt  <gabriel.burt@gmail.com>
18970         * src/Libraries/Lastfm/Lastfm.Data/UserTopArtists.cs:
18971         * src/Libraries/Lastfm/Lastfm.Data/UserTopData.cs:
18972         * src/Libraries/Lastfm/Lastfm.Data/Profile.cs:
18973         * src/Libraries/Lastfm/Lastfm.Data/UserTopAlbums.cs:
18974         * src/Libraries/Lastfm/Lastfm.Data/UserData.cs:
18975         * src/Libraries/Lastfm/Lastfm.Data/UserTopTracks.cs: Remove unnecessary
18976         usings.
18978 2008-02-15  Gabriel Burt  <gabriel.burt@gmail.com>
18980         * src/Libraries/Lastfm/Lastfm/Connection.cs: Fix warnings.
18982         * src/Libraries/Lastfm/Makefile.am:
18983         * src/Libraries/Lastfm/Lastfm.Data: Add new namespace.
18985         * src/Libraries/Lastfm/Lastfm.Data/DataEntry.cs:
18986         * src/Libraries/Lastfm/Lastfm.Data/UserTopArtists.cs:
18987         * src/Libraries/Lastfm/Lastfm.Data/UserTopData.cs:
18988         * src/Libraries/Lastfm/Lastfm.Data/LastfmDataCollection.cs:
18989         * src/Libraries/Lastfm/Lastfm.Data/LastfmData.cs:
18990         * src/Libraries/Lastfm/Lastfm.Data/Profile.cs:
18991         * src/Libraries/Lastfm/Lastfm.Data/UserTopAlbums.cs:
18992         * src/Libraries/Lastfm/Lastfm.Data/UserData.cs:
18993         * src/Libraries/Lastfm/Lastfm.Data/UserTopTracks.cs: New files that expose
18994         Last.fm metadata.
18996 2008-02-14  Gabriel Burt  <gabriel.burt@gmail.com>
18998         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm/LastfmActions.cs:
18999         Handle SourcePropertiesAction for LastfmSource and StationSources.
19001         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm/LastfmSource.cs:
19002         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm/StationSource.cs: Set
19003         HasProperties = true so Edit Properties action shows up.
19005 2008-02-14  Gabriel Burt  <gabriel.burt@gmail.com>
19007         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteUtils.cs: Forgot to svn add.
19009 2008-02-14  Gabriel Burt  <gabriel.burt@gmail.com>
19011         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm/StationSource.cs:
19012         * src/Libraries/Hyena/Hyena.Data.Sqlite/DatabaseColumn.cs:
19013         * src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteConnection.cs:
19014         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs:
19015         * src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs:
19016         * src/Libraries/Hyena/Hyena.mdp:
19017         * src/Libraries/Hyena/Makefile.am: The last commit reverted some of
19018         scottp's changes due to svn mv'ing files that weren't up to date.
19020 2008-02-14  Gabriel Burt  <gabriel.burt@gmail.com>
19022         The Last.fm extension can actually play music now.  Still need to port the
19023         status bar.  Also, moved Hyena and Hyena.Gui out of Core and into Libraries.
19025         * build/build.environment.mk: Libraries/Lastfm depends on Libraries/Hyena
19026         for logging.
19028         * configure.ac:
19029         * src/Banshee.mds:
19030         * src/Core/Banshee.Core/Makefile.am:
19031         * src/Core/Core.mds: Reflect new organization.
19033         * src/Libraries/Hyena/Makefile.am:
19034         * src/Libraries/Hyena/Hyena.mdp:
19035         * src/Core/Banshee.Core/Banshee.Core.mdp:
19036         * src/Core/Banshee.Core/Banshee.Base/Log.cs:
19037         * src/Libraries/Hyena/Hyena/Log.cs: Move Log to Hyena, replace
19038         ApplicationContext dep with Debugging property.
19040         * src/Core/Banshee.Core/Banshee.Collection/UnknownTrackInfo.cs:
19041         * src/Core/Banshee.Core/Banshee.Collection/SampleTrackInfo.cs:
19042         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs:
19043         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngine.cs:
19044         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Add/use properties
19045         for all attributes - the flags are way to painful an API.
19047         * src/Core/Banshee.Services/Banshee.Services.mdp:
19049         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Fix whitespace.  If
19050         the defining assembly for a source is not Banshee.Services, record it for
19051         use when retrieving resources.
19053         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
19054         * src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs:
19055         * src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:
19056         * src/Extensions/Banshee.MultimediaKeys/Banshee.MultimediaKeys/MultimediaKeysService.cs:
19057         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs:
19058         * src/Backends/Banshee.Unix/Banshee.IO.Unix/Directory.cs:
19059         * src/Core/Banshee.Core/Banshee.Configuration/ConfigurationClient.cs:
19060         * src/Core/Banshee.Core/Banshee.IO/Provider.cs:
19061         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistCore.cs:
19062         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
19063         * src/Core/Banshee.Services/Banshee.Collection/ImportManager.cs:
19064         * src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs:
19065         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
19066         * src/Core/Banshee.Services/Banshee.Metadata.MusicBrainz/MusicBrainzQueryJob.cs:
19067         * src/Core/Banshee.Services/Banshee.Metadata.Rhapsody/RhapsodyQueryJob.cs:
19068         * src/Core/Banshee.Services/Banshee.Networking/NetworkDetect.cs:
19069         * src/Core/Banshee.Services/Banshee.PlaybackController/PlaybackControllerService.cs:
19070         * src/Core/Banshee.Services/Banshee.ServiceStack/DBusServiceManager.cs:
19071         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:
19072         * src/Core/Banshee.Services/Banshee.Streaming/RadioTrackInfo.cs:
19073         * src/Core/Banshee.Services/Banshee.Web/Browser.cs: Add using Hyena.
19075         * src/Core/Banshee.Core/Banshee.Base/ApplicationContext.cs: Add static
19076         ctor that sets Hyena.Log.Debugging.
19078         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtworkManager.cs:
19079         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/AboutDialog.cs:
19081         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/GladeDialog.cs: Add
19082         ctor from stable.
19084         * src/Core/Banshee.ThickClient/Banshee.Gui/IconThemeUtils.cs: Support
19085         loading resources from arbitrary assemblies (eg from extensions).
19087         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs:
19088         Specify the Source's defining assembly as the assembly to load the icon
19089         resource from.
19091         * src/Core/Banshee.ThickClient/Banshee.ThickClient.addin.xml:
19093         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml: Add
19094         RefreshSmartPlaylist action to the Edit menu, and add a BelowAddToPlaylist
19095         placeholder in the track context menu.
19097         * src/Core/Makefile.am:
19098         * src/Core/Hyena.Gui/*:
19099         * src/Core/Hyena/*: Move Hyena* to src/Libraries
19101         * src/Libraries/Makefile.am:
19102         * src/Libraries/Libraries.mds: Add Hyena and Hyena.Gui.
19104         * src/Extensions/Extensions.mds: Add Banshee.Lastfm.
19105         * src/Extensions/Makefile.am: Add Banshee.Lastfm to the build.
19107         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.mdp: Reflect new/removed
19108         files.
19110         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm/LastFMSource.cs:
19111         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm/LastfmSource.cs:
19112         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm/LastFMTrackInfo.cs:
19113         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm/LastfmTrackInfo.cs:
19114         * src/Extensions/Banshee.Lastfm/Resources/Banshee.LastFM.addin.xml:
19115         * src/Extensions/Banshee.Lastfm/Resources/Banshee.Lastfm.addin.xml:
19116         Lower case fm.
19118         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm/LastfmActions.cs:
19120         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm/LastfmTrackListModel.cs:
19121         New List<TrackInfo> based model.
19123         * src/Extensions/Banshee.Lastfm/Resources/Actions.xml:
19124         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm/Plugin.cs: Removed.
19126         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm/StationEditor.cs: 
19127         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm/StationSource.cs: Update
19128         headers, fix creation/saving, use new model.
19130         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm/StationType.cs: Update
19131         header.
19133         * src/Extensions/Banshee.Lastfm/Makefile.am:
19134         * src/Extensions/Banshee.Lastfm/Resources/ActiveSourceUI.xml:
19135         * src/Extensions/Banshee.Lastfm/Resources/GlobalUI.xml: New action
19136         resources.
19138         * src/Libraries/Hyena/Hyena.Data/IFilterable.cs:
19139         * src/Libraries/Hyena/Hyena.Data/ISortable.cs: Whitespace.
19141         * src/Libraries/Hyena/Hyena.Data/PropertyStore.cs: Whitespace, reorder
19142         some logic.
19144         * src/Libraries/Lastfm.Gui/Lastfm.Gui.mdp:
19145         * src/Libraries/Lastfm/Lastfm.mdp:
19146         * src/Libraries/Mono.Media/Mono.Media.mdp: New mdp files.
19148         * src/Libraries/Lastfm/Lastfm/Account.cs: Remove abstract class modifier.
19150         * src/Libraries/Lastfm/Lastfm/Connection.cs: Use Hyena.Log for logging msgs.
19152         * src/Libraries/Mono.Media/Makefile.am:
19153         * src/Libraries/Mono.Media/Playlists.Xspf/*:
19154         * src/Libraries/Mono.Media/Media.Playlists.Xspf/*: Change namespace to
19155         Media.Playlists.Xspf.  Merge fix for not-quite-compliant Last.fm Playlist
19156         files from stable.
19158 2008-02-13  Scott Peterson <lunchtimemama@gmail.com> 
19160         * src/Core/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs: Made to use new
19161         generic Query method and added GetProperty, SetProperty and
19162         ClearProperty. These methods allow you to store/retrieve properties from
19163         the database that are not defined in the type T. Suppose you write an
19164         extension that needs to keep persistant data on a per-track basis for
19165         every track in the library. Rather than define it's own table and join
19166         it with CoreTracks, the extension could call
19167         LibraryTrackInfo.Provider.GetProperty and SetProperty. This will be used
19168         by the iTunes importer at least.
19170         * src/Core/Hyena/Hyena.Data.Sqlite/DatabaseColumn.cs: Added DbColumn class
19171         for lightweight column descrption, made to use new SqliteUtils class for
19172         simple operations, and protected some constructors.
19174         * src/Core/Hyena/Hyena.Data.Sqlite/SqliteUtils.cs: Common sqlite-related
19175         functions.
19177         * src/Core/Hyena/Hyena.Data.Sqlite/HyenaSqliteConnection.cs: Replaced
19178         QueryInt32 and QueryString with a new generic Query<T> method. Added
19179         ColumnExists(string table_name, string column_name) method. Also
19180         reworked the way GetSchema works.
19182         * src/Core/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs,
19183         * src/Core/Banshee.Services/Banshee.Configuration/DatabaseConfigurationClient.cs,
19184         * src/Core/Banshee.Services/Banshee.SmartPlaylist/Migrator.cs: Made to use
19185         new generic Query method.
19187         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs:
19188           Took advantage of the fact that DbColumn-bound members can now be
19189           DateTime or TimeSpan.
19191 2008-02-11  Gabriel Burt  <gabriel.burt@gmail.com>
19193         * src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs: Remove
19194         debugging WriteLines.
19196         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
19197         Add CanRefresh property that is true if ordered by random.
19199         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml: Add
19200         RefreshSmartPlaylist action to the source toolbar and context menu.
19202         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs: Fix
19203         whitespace, add and handle RefreshSmartPlaylist action.
19205         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm/Plugin.cs: Get rid of old
19206         PluginModuleEntry.
19208 2008-02-11  Gabriel Burt  <gabriel.burt@gmail.com>
19210         * src/Libraries/Lastfm.Gui/Makefile.am: Forgot to commit this.
19212 2008-02-11  Gabriel Burt  <gabriel.burt@gmail.com>
19214         * build/build.environment.mk: Add System.Web to Lastfm deps.
19216         * src/Core/Banshee.Services/Banshee.Streaming/RadioTrackInfo.cs: Fix
19217         broken build; Xspf is now in Mono.Media.
19219         * src/Libraries/Lastfm/Last.FM.mdp: Rename.
19221         * src/Libraries/Lastfm/Lastfm/Account.cs: Add Updated event.
19223         * src/Extensions/Banshee.Lastfm/Banshee.Lastfm/Connection.cs:
19224         * src/Libraries/Lastfm/Makefile.am:
19225         * src/Libraries/Lastfm/Lastfm/Connection.cs: Move Connection class out of
19226         extension, pull out Banshee dependencies.
19228         * src/Libraries/Mono.Media/Playlists.Xspf/LinkEntry.cs:
19229         * src/Libraries/Mono.Media/Playlists.Xspf/MetaEntry.cs:
19230         * src/Libraries/Mono.Media/Playlists.Xspf/Playlist.cs:
19231         * src/Libraries/Mono.Media/Playlists.Xspf/Track.cs:
19232         * src/Libraries/Mono.Media/Playlists.Xspf/W3CDateTime.cs:
19233         * src/Libraries/Mono.Media/Playlists.Xspf/XmlUtil.cs:
19234         * src/Libraries/Mono.Media/Playlists.Xspf/XspfBaseObject.cs: Fix headers
19235         and namespaces.
19237 2008-02-11  Gabriel Burt  <gabriel.burt@gmail.com>
19239         * build/build.environment.mk:
19240         * configure.ac:
19241         * src/Libraries/Makefile.am:
19242         * src/Libraries/Mono.Media/Makefile.am: Create Mono.Media library.
19244         * src/Core/Banshee.Services/Makefile.am:
19245         * src/Core/Banshee.Services/Banshee.Playlists.Formats.Xspf/*: Move to
19246         Mono.Media, so it can be used by Lastfm library.
19248 2008-02-11  Gabriel Burt  <gabriel.burt@gmail.com>
19250         * configure.ac:
19251         * src/Extensions/Banshee.LastFM/*: Rename to Banshee.Lastfm.
19253 2008-02-11  Gabriel Burt  <gabriel.burt@gmail.com>
19255         * src/Libraries/*: Update svn:ignore
19257 2008-02-11  Gabriel Burt  <gabriel.burt@gmail.com>
19259         * src/Makefile.am:
19260         * src/Libraries/Makefile.am: New directory for what was Extras in stable.
19262         * build/build.environment.mk:
19263         * configure.ac: 
19264         * src/Libraries/Lastfm/*:
19265         * src/Libraries/Lastfm.Gui/*: Bring Last.FM library over from stable, and
19266         rip out the Gnome.Keyring dependency.
19268         * src/Extensions/Banshee.LastFM/*: Bring Last.FM plugin over from stable.
19269         Not part of the default build yet; lots of porting still to do.
19271 2008-02-11  Gabriel Burt  <gabriel.burt@gmail.com>
19273         * src/Extensions/Banshee.LastFM/*: Copy from stable.
19275 2008-02-11  Aaron Bockover  <abock@gnome.org>
19277         * src/Core/Nereid/Nereid/Client.cs: Load custom gtkrc files from either
19278         the user config (~/.config/banshee/gtkrc) or any custom gtkrc shipped
19279         with the application
19281         * src/Core/Nereid/Nereid/PlayerInterface.cs: Get rid of some whitespace
19283 2008-02-11  Aaron Bockover  <abock@gnome.org>
19285         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
19286         Draw a bottom border on the dragging column
19288 2008-02-11  Aaron Bockover  <abock@gnome.org>
19290         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/CompositeTrackListView.cs:
19291         Major fix that reparents the artist/album/track views when switching
19292         browser positions instead of destroying them and rebuilding; fixes a
19293         slew of issues with events when switching positions, is much cleaner
19294         overall, and probably has some positive (minor) memory implications. 
19295         Sweet.
19297 2008-02-10  Gabriel Burt  <gabriel.burt@gmail.com>
19299         * src/Core/Hyena.Gui/Hyena.Query.Gui/QueryTermsBox.cs: Fix warning.
19301 2008-02-10  Aaron Bockover  <abock@gnome.org>
19303         * src/Core/Banshee.ThickClient/Banshee.AudioProfiles.Gui/ProfileComboBoxConfigurable.cs:
19304         * src/Core/Banshee.ThickClient/Banshee.AudioProfiles.Gui/ProfileConfigurationDialog.cs:
19305         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellAlbum.cs:
19306         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/CompositeTrackListView.cs:
19307         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
19308         * src/Core/Banshee.ThickClient/Banshee.Equalizer.Gui/EqualizerWindow.cs:
19309         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/PlaylistMenuItem.cs:
19310         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
19311         * src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs:
19312         * src/Core/Banshee.ThickClient/Banshee.Gui/GtkElementsService.cs:
19313         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs:
19314         * src/Core/Banshee.ThickClient/Banshee.Gui/ViewActions.cs:
19315         * src/Core/Banshee.ThickClient/Banshee.Library.Gui/ImportDialog.cs:
19316         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs:
19317         * src/Core/Banshee.ThickClient/Banshee.ThickClient.mdp:
19318         * src/Core/Banshee.ThickClient/Makefile.am: More warnings fixed
19320 2008-02-10  Gabriel Burt  <gabriel.burt@gmail.com>
19322         This commit greatly improves the smart playlist editor, both in terms of
19323         coming up to par with what we have in stable, and in terms of doing that in
19324         a clean way.  You'll need to blow away your current trunk db to have your
19325         smart playlists remigrated.  Limits to smart playlists now are functional.
19326         You can create and edit smart playlits.
19328         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
19329         Move GetSort method to BansheeQuery to provide consistent sorting for
19330         smart playlists too.
19332         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
19333         Make LimitCriterion a TEXT field and get rid of OrderDir.  Database change,
19334         no migration, so run src/nuke-core-tables.
19336         * src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs: Add public
19337         static QueryOrder and QueryLimit arrays that define the types of sorting
19338         and limiting smart playlists can handle.  Break QueryFields into separate
19339         public static variables in addition to providing FieldSet.  Within static
19340         constructor, translate Hyena query operators.
19342         * src/Core/Banshee.Services/Banshee.Query/SmartPlaylistQueryValue.cs:
19343         Inherit from PlaylistQueryValue.
19345         * src/Core/Banshee.Services/Banshee.SmartPlaylist/Migrator.cs: Get rid of
19346         OrderDir, migrate old smart playlists to use new QueryLimit/Order classes.
19348         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
19349         Add QueryOrder, Limit, and LimitValue properties that, if all set, define
19350         how a smart playlist is limited.  Move list of Orders to BansheeQuery.
19352         * src/Core/Banshee.ThickClient/Banshee.Query.Gui/BansheeQueryBox.cs: Add
19353         SmartPlaylistQueryValueEntry mapping, and instantiate base class
19354         (QueryBox) with BansheeQuery's FieldSet, Orders, and Limits.
19356         * src/Core/Hyena.Gui/Hyena.Query.Gui/StringQueryValueEntry.cs:
19357         * src/Core/Banshee.ThickClient/Banshee.Query.Gui/PlaylistQueryValueEntry.cs:
19358         Specify a fixed widths for value entries.
19360         * src/Core/Banshee.ThickClient/Banshee.Query.Gui/SmartPlaylistQueryValueEntry.cs:
19361         Exact same thing as PlaylistQueryValueEntry - should probably be merged or
19362         factored out.
19364         * src/Core/Banshee.ThickClient/Banshee.SmartPlaylist.Gui/Editor.cs: Update
19365         to work with QueryLimit/Order classes and save/restore the limit/order.
19366         Update the predefined playlists, though I think they're still broken atm.
19368         * src/Core/Banshee.ThickClient/Makefile.am: Add new class.
19370         * src/Core/Hyena.Gui/Hyena.Query.Gui/DateQueryValueEntry.cs: Make sure
19371         query value and gui are in sync, and set a default combo box value.
19373         * src/Core/Hyena.Gui/Hyena.Query.Gui/FileSizeQueryValueEntry.cs: Similar
19374         to date value entry, provide a dropdown with MB, GB, etc.
19376         * src/Core/Banshee.ThickClient/Banshee.Query.Gui/RatingQueryValueEntry.cs:
19377         * src/Core/Hyena.Gui/Hyena.Query.Gui/IntegerQueryValueEntry.cs: Make sure
19378         the query value is in sync with the gui.
19380         * src/Core/Hyena.Gui/Hyena.Query.Gui/QueryBox.cs: Contains a QueryTermsBox
19381         and a QueryLimitBox.  Provides the main GUI interface that the smart
19382         playlist Editor deals with.
19384         * src/Core/Hyena.Gui/Hyena.Query.Gui/QueryLimitBox.cs: New class, a HBox
19385         that contains widgetry to limit a smart playlist.
19387         * src/Core/Hyena.Gui/Hyena.Query.Gui/QueryTermBox.cs: Instead of defining
19388         this as a HBox with field, op, value across it, make QueryTermBox not
19389         actually a widet, and put its components into their respective VBoxes so
19390         that each column is always the same width.
19392         * src/Core/Hyena.Gui/Hyena.Query.Gui/QueryTermsBox.cs: New file, a HBox
19393         containing VBoxes for field, op, value, and button columns filled by the
19394         components of one or more QueryTermBoxes.
19396         * src/Core/Hyena.Gui/Hyena.Query.Gui/QueryValueEntry.cs: Set spacing,
19397         define default width for entries, and add FileSize entry mapping.
19399         * src/Core/Hyena.Gui/Makefile.am: Add new classes.
19401         * src/Core/Hyena/Hyena.Query/DateQueryValue.cs: Only offer GreaterThan and
19402         LessThan operators, for now at least.
19404         * src/Core/Hyena/Hyena.Query/FileSizeQueryValue.cs: Define SetValue
19405         method.
19407         * src/Core/Hyena/Hyena.Query/QueryLimit.cs: New class used to create
19408         named, labelized limit criteria (row based and not).  Smart playlists use
19409         this to LIMIT their membership if needed.  Current, non row-based Limits
19410         aren't implemented.
19412         * src/Core/Hyena/Hyena.Query/QueryOrder.cs: New class used to create a
19413         list of named, labelized orderings.  Used in Banshee to give a list of
19414         orderings ("selected by") when you limit a smart playlist.
19416         * src/Core/Hyena/Hyena.Query/QueryValue.cs: Add ToString override.
19418         * src/Core/Hyena/Makefile.am: New files.
19420 2008-02-10  Aaron Bockover  <abock@gnome.org>
19422         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/PersistentColumnController.cs:
19423         Preserve the hard-coded order when loading the column orders and no
19424         order could be loaded from configuration
19425         
19426         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
19427         Make the column titles translatable
19429 2008-02-10  Aaron Bockover  <abock@gnome.org>
19431         * src/Core/Hyena.Gui/Hyena.Data.Gui/ColumnController.cs:
19432         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Header.cs:
19433         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
19434         Fixed some really bad compiler warnings and made more progress on column
19435         show/hide support through the columns menu; visibility now persists
19437         * src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs:
19438         * src/Core/Hyena.Gui/Hyena.Data.Gui/ColumnHeaderCellText.cs:
19439         * src/Core/Hyena.Gui/Hyena.Data.Gui/ObjectListView.cs:
19440         * src/Core/Hyena.Gui/Hyena.Query.Gui/QueryTermBox.cs:
19441         * src/Core/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs:
19442         * src/Core/Hyena/Hyena.Query/XmlQueryParser.cs:
19443         * src/Core/Hyena/Hyena.SExpEngine/ListFunctionSet.cs: Cleaned up
19444         more compiler warnings
19446 2008-02-10  Gabriel Burt  <gabriel.burt@gmail.com>
19448         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistCore.cs:
19449         Fixed/disabled more compiler warnings.
19451 2008-02-10  Aaron Bockover  <abock@gnome.org>
19453         * src/Core/Banshee.Services/Banshee.Database/BansheeModelProvider.cs:
19454         * src/Core/Banshee.Services/Banshee.PlaybackController/PlaybackControllerService.cs:
19455         * src/Core/Banshee.Services/Banshee.Playlists.Formats.Xspf/Playlist.cs:
19456         * src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs:
19457         Fixed more compiler warnings
19459 2008-02-10  Gabriel Burt  <gabriel.burt@gmail.com>
19461         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs:
19462         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs:
19463         * src/Core/Banshee.Services/Banshee.Playlist/AbstractPlaylistSource.cs:
19464         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs:
19465         Fix some compiler warnings.
19467 2008-02-10  Aaron Bockover  <abock@gnome.org>
19469         * src/Core/Banshee.Services/Banshee.AudioProfiles/ProfileConfiguration.cs:
19470         * src/Core/Banshee.Services/Banshee.AudioProfiles/ProfileManager.cs:
19471         * src/Core/Banshee.Services/Banshee.Collection.Database/AlbumListDatabaseModel.cs:
19472         * src/Core/Banshee.Services/Banshee.Collection.Database/ArtistListDatabaseModel.cs:
19473         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs:
19474         * src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs:
19475         * src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs:
19476         * src/Core/Banshee.Services/Banshee.PlaybackController/ICanonicalPlaybackController.cs:
19477         Cleaned up a lot of compiler warnings
19479 2008-02-10  Alan McGovern <alan.mcgovern@gmail.com> 
19481         * src/Dap/Banshee.DapCore/Banshee.DapCore/AsyncDevice.cs:
19482         Fixed build issue
19483         
19484 2008-02-10  Alan McGovern <alan.mcgovern@gmail.com> 
19486         * src/Dap/Banshee.DapCore/Banshee.DapCore/AsyncDevice.cs:
19487         Cosmetic changes and fixed a typo in UploadTrack
19488         
19489 2008-02-10  Alan McGovern <alan.mcgovern@gmail.com> 
19491         * src/Dap/Banshee.DapCore/Makefile.am
19492         * src/Dap/Banshee.DapCore/Banshee.DapCore/AsyncDevice.cs:
19493         Added wrapper to make the calls to devices asynchronous
19494           
19495 2008-02-10  Alan McGovern <alan.mcgovern@gmail.com> 
19497         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/Device.cs:
19498         Commented out my changes because i can't make em compile ;)
19499          
19500 2008-02-10  Alan McGovern <alan.mcgovern@gmail.com> 
19502         * src/Dap/Banshee.DapCore/Banshee.DapCore/IDevice.cs
19503         * src/Dap/Banshee.DapCore/Banshee.DapCore/AbstractDevice.cs
19504         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/Device.cs:
19505         Updated the interface, implemented the abstract class and made
19506         MassStorage inherit from AbstractDevice.
19507           
19508 2008-02-10  Scott Peterson <lunchtimemama@gmail.com> 
19510         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Windowing.cs: Assures
19511         that all rows in view are rendered.
19513 2008-02-09  Aaron Bockover  <abock@gnome.org>
19515         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs: Do not
19516         show the 'sort children' menu item if the source does not have children
19517         (thanks Scott)
19519 2008-02-09  Aaron Bockover  <abock@gnome.org>
19521         This commit adds initial support to load/save the column settings in 
19522         the track list; it is not yet complete, also it adds a popup menu for
19523         the columns, but it's not done yet and doesn't work
19525         * src/Core/Hyena/Hyena/StringUtil.cs:
19526         * src/Backends/Banshee.Gnome/Banshee.Gnome/GConfConfigurationClient.cs:
19527         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs:
19528         * src/Core/Banshee.Core/Banshee.Base/StringUtil.cs: Moved StringUtil
19529         into Hyena
19531         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/PersistentColumnController.cs:
19532         A wrapper around ColumnController that loads and saves through 
19533         Banshee.Configuration
19535         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
19536         Use PersistentColumnController to load and save settings
19538         * src/Core/Hyena.Gui/Hyena.Data.Gui/Column.cs: Added an Id property
19540         * src/Core/Hyena.Gui/Hyena.Data.Gui/ColumnController.cs: Added IndexOf
19541         and EnableColumnMenu
19543         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Header.cs: Added
19544         a popup menu for selecting which columns are visible
19546         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
19547         Fixed reordering logic to work with columns which aren't visible 
19548         and added right click on the header
19550 2008-02-10  Ruben Vermeersch  <ruben@savanne.be>
19552         * src/Dap/Banshee.Dap.MassStorage: Added.
19553         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage: Added.
19554         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage.addin.xml: Added.
19555         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage.mdp: Added.
19556         * src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/Device.cs: Added.
19557         * src/Dap/Banshee.Dap.MassStorage/Makefile.am: Added.
19559         Added a basic Banshee.Dap.MassStorage extension which will be the first
19560         device class to be ported, used to test the stack.
19562         * src/Dap/Banshee.DapCore/Banshee.DapCore/AbstractDevice.cs: Added.
19564         * src/Dap/Banshee.DapCore/Banshee.DapCore/DapCore.cs: Store the extension
19565         nodes, not the types themselves.
19567 2008-02-09  Ruben Vermeersch  <ruben@savanne.be>
19569         Moved the Banshee.DapCore extension out of src/Extensions/ and into
19570         src/Dap/. This folder will house all media device addins.
19572         * configure.ac: 
19573         * src/Dap: Added.
19574         * src/Dap/Banshee.DapCore: Copied from src/Extensions/Banshee.DapCore.
19575         * src/Dap/Banshee.DapCore/Banshee.DapCore/DeviceClassNode.cs: Removed.
19576         * src/Dap/Makefile.am: Added.
19577         * src/Extensions/Banshee.DapCore: Removed.
19578         * src/Extensions/Banshee.DapCore/Banshee.DapCore: Removed.
19579         * src/Extensions/Banshee.DapCore/Banshee.DapCore.mdp: Removed.
19580         * src/Extensions/Banshee.DapCore/Banshee.DapCore/DapCore.cs: Removed.
19581         * src/Extensions/Banshee.DapCore/Banshee.DapCore/HalCore.cs: Removed.
19582         * src/Extensions/Banshee.DapCore/Banshee.DapCore/IDevice.cs: Removed.
19583         * src/Extensions/Banshee.DapCore/Makefile.am: Removed.
19584         * src/Extensions/Banshee.DapCore/Resources: Removed.
19585         * src/Extensions/Banshee.DapCore/Resources/Banshee.DapCore.addin.xml: Removed.
19586         * src/Extensions/Banshee.DapCore/hal-sharp: Removed.
19587         * src/Extensions/Banshee.DapCore/hal-sharp/Device.cs: Removed.
19588         * src/Extensions/Banshee.DapCore/hal-sharp/Manager.cs: Removed.
19589         * src/Extensions/Banshee.DapCore/hal-sharp/Volume.cs: Removed.
19590         * src/Extensions/Makefile.am:
19591         * src/Makefile.am:
19593 2008-02-09  Ruben Vermeersch  <ruben@savanne.be>
19595         * src/Extensions/Banshee.DapCore/Banshee.DapCore/DapCore.cs: Get the type
19596         from TypeExtensionNode. Use Aaron's trick to get the class name from the
19597         node.
19599         * src/Extensions/Banshee.DapCore/Banshee.DapCore/DeviceClassNode.cs: Removed.
19601         * src/Extensions/Banshee.DapCore/Banshee.DapCore/IDevice.cs: Fix
19602         namespace issue.
19604         * src/Extensions/Banshee.DapCore/Resources/Banshee.DapCore.addin.xml: Back
19605         to TypeExtensionNode.
19607 2008-02-09  Ruben Vermeersch  <ruben@savanne.be>
19609         * src/Extensions/Banshee.DapCore/Banshee.DapCore/DapCore.cs: Start porting
19610         the device initialization code.
19612         * src/Extensions/Banshee.DapCore/Banshee.DapCore/DeviceClassNode.cs:
19613         Added. Provides an extension node wich offers types, not instances (this
19614         could be useful outside of this extension as well).
19616         * src/Extensions/Banshee.DapCore/Banshee.DapCore/HalCore.cs: Don't make
19617         manager static (not needed).
19619         * src/Extensions/Banshee.DapCore/Banshee.DapCore/IDeviceClass.cs: Will
19620         soon be renamed to IDevice.
19622         * src/Extensions/Banshee.DapCore/Makefile.am: Add DeviceClassNode.
19624         * src/Extensions/Banshee.DapCore/Resources/Banshee.DapCore.addin.xml: Use
19625         DeviceClassNode instead of TypeExtensionNode.
19627 2008-02-09  Alan McGovern <alan.mcgovern@gmail.com> 
19629         * src/Extensions/Banshee.DapCore/IDeviceClass.cs:
19630         Updated the interface
19632 2008-02-09  Alan McGovern <alan.mcgovern@gmail.com> 
19634         * Banshee.DapCore/IDeviceClass.cs: Slight refactor
19636 2008-02-09  Alan McGovern <alan.mcgovern@gmail.com> 
19638         * Banshee.DapCore/IDeviceClass.cs: Initial ideas for the interface
19640 2008-02-09  Ruben Vermeersch  <ruben@savanne.be>
19642         * src/Extensions/Banshee.DapCore/Resources/Banshee.DapCore.addin.xml:
19643         Register a new Extension point /Banshee/Dap/DeviceClass. This will be used
19644         to register new DAP plugins. Each plugin provides a family of devices
19645         (e.g. iPod or MTP).
19647         * src/Extensions/Banshee.DapCore/Banshee.DapCore/DapCore.cs: Handle the
19648         new extension point. Still need to hook up the initialization code.
19650         * src/Extensions/Banshee.DapCore/Banshee.DapCore/IDeviceClass.cs: Added.
19651         Currently empty.
19653 2008-02-09  Ruben Vermeersch  <ruben@savanne.be>
19655         Add the groundwork for the DapCore plugin. Currently does... nothing.
19656         Contains a copy of hal-sharp until we have a properly abstracted HAL.
19658         * build/build.environment.mk: Add the dependencies for DapCore.
19660         * configure.ac: Generate build files for the new addin.
19662         * src/Extensions/Banshee.DapCore: Added.
19663         * src/Extensions/Banshee.DapCore/Banshee.DapCore: Added.
19664         * src/Extensions/Banshee.DapCore/Banshee.DapCore.mdp: Added.
19665         * src/Extensions/Banshee.DapCore/Banshee.DapCore/DapCore.cs: Added.
19666         * src/Extensions/Banshee.DapCore/Banshee.DapCore/HalCore.cs: Added.
19667         * src/Extensions/Banshee.DapCore/Makefile.am: Added.
19668         * src/Extensions/Banshee.DapCore/Resources: Added.
19669         * src/Extensions/Banshee.DapCore/Resources/Banshee.DapCore.addin.xml: Added.
19670         * src/Extensions/Banshee.DapCore/hal-sharp: Added.
19671         * src/Extensions/Banshee.DapCore/hal-sharp/Device.cs: Added.
19672         * src/Extensions/Banshee.DapCore/hal-sharp/Manager.cs: Added.
19673         * src/Extensions/Banshee.DapCore/hal-sharp/Volume.cs: Added.
19675         * src/Extensions/Makefile.am: Add Banshee.DapCore.
19677 2008-02-09  Aaron Bockover  <abock@gnome.org>
19679         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Header.cs:
19680         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
19681         Finished actual column reordering
19683 2008-02-08  Aaron Bockover  <abock@gnome.org>
19685         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
19686         Fixed double clicking again
19688 2008-02-08  Aaron Bockover  <abock@gnome.org>
19690         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Header.cs:
19691         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
19692         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
19693         Implemented most of what is required for column reordering, but not
19694         100% complete yet
19696         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListViewGraphics.cs: DrawColumnHighlight
19697         now can have an override color
19698         
19699         * src/Core/Hyena.Gui/Hyena.Data.Gui/ColumnController.cs: Added Reorder
19701 2008-02-08  Aaron Bockover  <abock@gnome.org>
19703         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
19704         Fixes to mouse/button behavior: context menu works on multiple selection
19705         again and a single row can be selected (clearing all other rows) inside
19706         of a multi-row selection
19708 2008-02-08  Aaron Bockover  <abock@gnome.org>
19710         This commit adds child source sorting on the library and gets rid of any
19711         remaining gobject/gtk warnings and other ugly debug spew
19713         * build/build.rules.mk: Copy .config files to the output directory if
19714         they exist in the source directory
19716         * configure.ac: Do not generate the .config for Banshee.Widgets
19718         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs:
19719         If Volume is changed before the engine is initialized then store it
19720         temporarily and perform the actual set after initialization
19722         * src/Core/Banshee.Services/Banshee.ServiceStack/DBusServiceManager.cs:
19723         Use Log to print messages instead of Console.WriteLine
19725         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Added child source
19726         sorting back
19728         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs:
19729         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml:
19730         Connect the UI and actions to allow child source sorting
19732         * src/Core/Banshee.Widgets/Banshee.Widgets.dll.config.in: Remove obsolete
19733         maps - the only one we need (and it's not even required) is for 
19734         libgobject inside of the bacon volume widget
19736 2008-02-08  Aaron Bockover  <abock@gnome.org>
19738         * src/Core/Hyena.Gui/Hyena.Widgets/RoundedFrame.cs: Make GtkScrolledWindow
19739         happy by overriding OnSetScrollAdjustments to avoid g_warning spewage
19741 2008-02-08  Scott Peterson <lunchtimemama@gmail.com> 
19743         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs: Got rid
19744         of extra semicolon;
19746 2008-02-07  Aaron Bockover  <abock@gnome.org>
19748         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
19749         Support single row selection toggling when CTRL+Space is pressed
19751 2008-02-07  Aaron Bockover  <abock@gnome.org>
19753         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs: 
19754         Draw the focus row again, make it really sexy by merging it into the
19755         selection if it borders one
19757         * src/Core/Hyena.Gui/Hyena.Gui/CairoExtensions.cs:
19758         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListViewGraphics.cs: Support drawing
19759         selections/rounded rectangles that fall through to others
19761 2008-02-07  Aaron Bockover  <abock@gnome.org>
19763         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView/ListView.cs:
19764         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Header.cs:
19765         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
19766         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Model.cs:
19767         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs:
19768         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Windowing.cs:
19769         Split ListView.cs into several partial class implementations so
19770         maintaining and reading the code is a lot easier since this is a huge
19771         class; lots of cosmetic cleanup
19773         * src/Core/Hyena.Gui/Hyena.Data.Gui/RowActivatedHandler.cs: Moved to
19774         its own file from ListView.cs
19776 2008-02-07  Aaron Bockover  <abock@gnome.org>
19778         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
19779         Implement OnDragSourceSet; the ListView will call this when it's okay
19780         for drag sources to be enabled
19782         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView.cs: Added a virtual
19783         OnDragSourceSet method that the view will call when drag and drop from
19784         the widget is allowed (i.e. when not playing with the header); remove
19785         drag sources when the header is pressed, add them back when released
19787 2008-02-07  Aaron Bockover  <abock@gnome.org>
19789         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Only add
19790         the separator to the add to playlist menu if there are actually playlists
19791         that can be added to; remove the playlist map and pass the source through
19792         the .Data property of the object
19794 2008-02-07  Gabriel Burt  <gabriel.burt@gmail.com>
19796         * src/Core/Banshee.Services/Banshee.ServiceStack/DBusServiceManager.cs:
19797         Comment out super-verbose logging.
19799         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/AlbumListView.cs:
19800         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtistListView.cs:
19801         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Sweet little
19802         patch that disconnects the [shift]ctrl-a keybindings while focused in the
19803         Artist and Album views.
19805 2008-02-07  Gabriel Burt  <gabriel.burt@gmail.com>
19807         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs: Fix bugs with
19808         source actions being out of sync with what's highlighted/active.  Open
19809         Editor for smart playlists when OnSourceProperties.
19811         * src/Core/Banshee.ThickClient/Banshee.SmartPlaylist.Gui/Editor.cs: If
19812         given a smart playlist, set the Hyena.Query.Gui condition.
19814         * src/Core/Hyena.Gui/Hyena.Query.Gui/QueryTermBox.cs: 
19815         * src/Core/Hyena.Gui/Hyena.Query.Gui/QueryBox.cs: Add a QueryNode setter
19816         so can initialize with an existing query/smart playlist.
19818 2008-02-07  Gabriel Burt  <gabriel.burt@gmail.com>
19820         * src/Core/Nereid/Nereid/PlayerInterface.cs: Fix bug that prevented using
19821         keybindings while in the search entry.
19823 2008-02-07  Aaron Bockover  <abock@gnome.org>
19825         * src/Core/Hyena.Gui/Hyena.Gui.Dialogs/ExceptionDialog.cs: Use 
19826         AppendFormat instead of allocating a bunch of separate strings; added
19827         a platform check to skip collecting kernel, distro, and LSB information
19828         if the platform is not Unix; added some exception handling when gathering
19829         this information just in case
19831 2008-02-07  Aaron Bockover  <abock@gnome.org>
19833         This commit adds Mono.Unix IO support back, inside the new Unix/POSIX
19834         extension; yay cross-platform
19836         * src/Backends/Banshee.Unix/Banshee.IO.Unix: Added the Unix IO backend
19838         * src/Backends/Banshee.Unix/Banshee.Unix.addin.xml: Extension file for
19839         the unix backend
19840         
19841         * src/Core/Banshee.Core/Banshee.IO/UnixIOProvider.cs: Removed
19843         * src/Core/Banshee.Services/Banshee.Services.addin.xml: Removed extension
19844         points that belonged in core, not services
19845         
19846         * build/build.environment.mk:
19847         * build/build.rules.mk:
19848         * configure.ac: Build foo
19850 2008-02-07  Aaron Bockover  <abock@gnome.org>
19852         This commit adds GConf support back, inside the new GNOME platform 
19853         extension; yay cross-platform
19855         * build/build.environment.mk:
19856         * build/m4/banshee/gtk-sharp.m4: Added build foo for gconf and the 
19857         gnome platform extension
19859         * src/Backends/Banshee.Gnome/Banshee.Gnome.addin.xml: Implement the
19860         configuration client extension
19862         * src/Backends/Banshee.Gnome/Banshee.Gnome/GConfConfigurationClient.cs:
19863         A little cleanup
19865         * src/Backends/Banshee.Gnome/Banshee.Gnome/GnomeVfs.cs: Removed since
19866         it's never really worked well and we'll be adding GIO support soon anyway
19868         * src/Core/Banshee.Core/Banshee.Configuration/ConfigurationClient.cs:
19869         Whitespace and header fixes, use Mono.Addins to load an configuration
19870         client extension, falling back to the built-in XML client
19871         
19872         * src/Core/Banshee.Core/Banshee.Configuration/IConfigurationClient.cs:
19873         * src/Core/Banshee.Core/Banshee.Configuration/SchemaEntry.cs:
19874         * src/Core/Banshee.Core/Banshee.Configuration/XmlConfigurationClient.cs:
19875         Whitespace and header fixes, just cosmetics
19877         * src/Core/Banshee.Core/Banshee.Core.addin.xml: Core now has two extension
19878         points (ConfigurationClient and IOProvider)
19880         * src/Core/Banshee.Core/Banshee.IO/Provider.cs: Use Mono.Addins to load
19881         the preferred IO provider extension, falling back to the internal
19882         System.IO provider
19884         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:
19885         Initialize the configuration layer before booting services
19887 2008-02-06  Gabriel Burt  <gabriel.burt@gmail.com>
19889         * src/Core/Nereid/Nereid/PlayerInterface.cs: Patch from Alex Hixon adding
19890         the track properties button to the bottom bar.  Tweaked to be not quite as
19891         tall.
19893 2008-02-06  Gabriel Burt  <gabriel.burt@gmail.com>
19895         This commit fixes the last big hack in Hyena.Query - operators.
19896         Operaters are now defined per QueryValue subclass, so you you will never
19897         get a contains operator on an int field, for example.  A new Hyena.Query.Gui
19898         layer provides widegtry for editing queries while allowing custom types to
19899         be integrated seamlessly (see RatingQueryValueEntry and
19900         PlaylistQueryValueEntry).  You can see the progress of reimplementing
19901         smart playlist editing by trying to create a new one.  It is not by any
19902         means finished, so it doesn't actually save yet.
19904         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
19905         * src/Core/Banshee.Services/Banshee.Collection/TrackListModel.cs:
19906         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
19907         * src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs: 
19908         Move FieldSet, AlbumField, and ArtistField from TrackListDatabaseModel to
19909         BansheeQuery.
19911         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs: Show the
19912         smart playlist dialog on New Smart Playlist action.
19914         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Get
19915         ArtistField and AlbumField from BansheeQuery, not the
19916         TrackListDatabaseModel.
19918         * src/Core/Banshee.ThickClient/Banshee.SmartPlaylist.Gui/Editor.cs: Get
19919         somewhat working with new Hyena.Query.Gui code.
19921         * src/Core/Banshee.Services/Makefile.am: New Banshee.Query classes.
19923         * src/Core/Banshee.Services/Banshee.Query/NaturalIntegerQueryValue.cs:
19924         * src/Core/Banshee.Services/Banshee.Query/YearQueryValue.cs:
19925         * src/Core/Banshee.Services/Banshee.Query/RatingQueryValue.cs:
19926         * src/Core/Banshee.Services/Banshee.Query/PlaylistQueryValue.cs:
19927         * src/Core/Banshee.Services/Banshee.Query/SmartPlaylistQueryValue.cs:
19928         Subclasses of existing Hyena.Query QueryValue types, providing limits
19929         and/or default values.
19931         * src/Core/Hyena.Gui/Makefile.am: New Hyena.Query.Gui classes.
19933         * src/Core/Hyena.Gui/Hyena.Query.Gui/QueryValueEntry.cs:
19934         * src/Core/Hyena.Gui/Hyena.Query.Gui/StringQueryValueEntry.cs:
19935         * src/Core/Hyena.Gui/Hyena.Query.Gui/IntegerQueryValueEntry.cs:
19936         * src/Core/Hyena.Gui/Hyena.Query.Gui/DateQueryValueEntry.cs: New gui
19937         classes that define the gui for editing a QueryValue type.
19939         * src/Core/Hyena.Gui/Hyena.Query.Gui/QueryBox.cs: New VBox subclass that
19940         contains multiple QueryTermBoxes.
19942         * src/Core/Hyena.Gui/Hyena.Query.Gui/QueryTermBox.cs: New class that
19943         represents one QueryTermNode, and one row/condition in the smart playlist
19944         editor.
19946         * src/Core/Banshee.ThickClient/Makefile.am:
19947         * src/Core/Banshee.ThickClient/Banshee.Query.Gui/RatingQueryValueEntry.cs:
19948         * src/Core/Banshee.ThickClient/Banshee.Query.Gui/BansheeQueryBox.cs:
19949         * src/Core/Banshee.ThickClient/Banshee.Query.Gui/PlaylistQueryValueEntry.cs:
19950         New Banshee-specific query gui classes.
19952         * src/Core/Hyena/Makefile.am: 
19953         * src/Core/Hyena/Hyena.Query/AliasedObjectSet.cs: New generic class for
19954         containing a set of of aliased objects.  Used by QueryFieldSet and
19955         QueryValue's OperatorSet.
19957         * src/Core/Hyena/Hyena.Query/QueryValue.cs: Define an OperatorSet for each
19958         QueryValue type.
19960         * src/Core/Hyena/Hyena.Query/StringQueryValue.cs: Define OperatorSet.
19962         * src/Core/Hyena/Hyena.Query/IntegerQueryValue.cs: Add Min/Max/Default
19963         value properties, define OperatorSet.
19965         * src/Core/Hyena/Hyena.Query/DateQueryValue.cs: Actually use the
19966         RelativeDateFactor property.
19968         * src/Core/Hyena/Hyena.Query/QueryField.cs: Implement IAliasedObject.
19970         * src/Core/Hyena/Hyena.Query/QueryFieldSet.cs: Factor most of the set
19971         logic into AliasedObjectSet so it can be reused for Operators.
19973         * src/Core/Hyena/Hyena.Query/QueryOperator.cs: Add SqlFormat property
19974         instead of doing a switch in QueryTermNode to produce the right SQL for an
19975         operator.  Get rid of cruft.  Add ability to have multiple 'aliases'
19976         (user-entered query operators, eg :).
19978         * src/Core/Hyena/Hyena.Query/QueryTermNode.cs: Operators are scoped to
19979         value types, and have SqlFormat properties; use them.
19981         * src/Core/Banshee.Services/Banshee.SmartPlaylist/Migrator.cs:  
19982         * src/Core/Hyena/Hyena.Query/XmlQueryParser.cs: Operators are scoped to
19983         value types now.
19985 2008-02-06  Aaron Bockover  <abock@gnome.org>
19987         Okay, so this is a big one. Probably nasty. This commit temporarily breaks
19988         settings saving/loading from GConf and the POSIX IO layer is disabled
19989         for now as well; these features will be reimplemented as platform 
19990         extensions in my next commit;
19992         This commit puts us very close to being able to run the managed Banshee
19993         core out of the box on Windows and probably OS X.
19995         * src/Core/Banshee.Services/Banshee.AudioProfiles/ProfileConfiguration.cs:
19996         Applied Scott's from SoC that makes this configuration layer just use
19997         the standard configuration APIs in Banshee, so profile configuration 
19998         is stored using whatever provider is active (GConf, XML); Scott rules.
20000         * src/Backends/Banshee.Gnome: Moved out GNOME specific code (GConf,
20001         GnomeVFS) into this new platform extension, but it's not complete
20003         * src/Core/Banshee.Core/Banshee.Base/RateLimiter.cs:
20004         * src/Core/Banshee.Services/Banshee.Base/ThreadAssist.cs: Moved to
20005         the service layer since these depend on Application
20007         * src/Core/Banshee.Core/Banshee.Base/Resource.cs:
20008         * src/Core/Banshee.Core/Banshee.Base/NamingUtil.cs: Moved/fixed these
20009         classes out of the old Utilities.cs dumping grounds
20010         
20011         * src/Core/Banshee.Core/Banshee.Configuration/ConfigurationClient.cs:
20012         Do not reference the GConfConfigurationClient; for now the Xml one
20013         is hard coded to use until I finish turning the GConf support into
20014         a provider - no complaining - the next commit will address it
20016         * src/Core/Banshee.Core/Banshee.I18n/AssemblyCatalogAttribute.cs:
20017         * src/Core/Banshee.Core/Banshee.I18n/Catalog.cs: Moved/cleaned up the
20018         internal Banshee gettext wrapper
20020         * src/Core/Banshee.Core/Banshee.IO: Redesigned the IO layer to be easier
20021         to extend (soon) through extensions and it now provides a cleaner API
20022         to use (no more IOProxy)
20023         
20024         * src/Core/Banshee.Core/Banshee.IO.SystemIO: Fixed up System.IO provider
20025         to implement the new Banshee.IO design changes
20027         * src/Core/Banshee.Core/Banshee.Base/FileNamePattern.cs:
20028         * src/Core/Banshee.Core/Banshee.Collection/FileTrackInfo.cs:
20029         * src/Core/Banshee.Core/Banshee.Streaming/StreamTagger.cs:
20030         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs:
20031         * src/Core/Banshee.Services/Banshee.Collection/ImportManager.cs:
20032         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistFileUtil.cs:
20033         * src/Core/Banshee.Services/Banshee.Playlists.Formats/PlaylistParser.cs:
20034         Updated to consume the nicer Banshee.IO APIs
20036         * src/Core/Banshee.Core/Banshee.IO/StreamAssist.cs: Added a class that
20037         makes doing some common stream operations (currently, just saving one
20038         stream to another) easier
20040         * src/Core/Banshee.Services/Banshee.Metadata.Embedded/EmbeddedQueryJob.cs:
20041         * src/Core/Banshee.Services/Banshee.Metadata/MetadataServiceJob.cs:
20042         Updated to use the new Banshee.IO APIs and also StreamAssist.Save to
20043         reduce so much duplication of stream code
20045         * src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs: Added
20046         another Inovke method that takes an EventHandler delegate to stay 
20047         compatible with Gtk.Application.Invoke
20049         * src/Core/Banshee.Services/Banshee.Services.addin.xml: Added a few
20050         platform extension points
20052         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistCore.cs:
20053         Removed unnecessary Gnome.Vfs call
20055         * src/Core/Banshee.Widgets/Banshee.Widgets/LinkLabel.cs: Removed 
20056         default Gnome.Open implementation; users must set a handle at all times
20057         so the widget is not bound to a platform
20058         
20059         * src/Core/Nereid/Nereid/Client.cs: Removed crappy Gnome.Program stuff
20060         since it really doesn't provide anything for us
20062         * src/Extensions/Template/Makefile.am: Small fix
20064         * src/Core/Banshee.Core/Banshee.Base/Utilities.cs:
20065         * src/Core/Banshee.Services/Banshee.AudioProfiles/GConfProfileConfiguration.cs:
20066         Nuked, finally
20068         * build/build.environment.mk:
20069         * build/m4/banshee/gtk-sharp.m4: Removed gnome-sharp and gconf-sharp
20070         dependencies
20072 2008-02-06  Gabriel Burt  <gabriel.burt@gmail.com>
20074         * src/Core/Banshee.ThickClient/Banshee.Gui/BansheeActionGroup.cs:
20075         * src/Core/Banshee.ThickClient/Banshee.Gui/InterfaceActionService.cs:
20076         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackActions.cs:
20077         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs:
20078         * src/Core/Banshee.Widgets/Banshee.Widgets/ActionButton.cs:
20079         * src/Core/Banshee.Widgets/Banshee.Widgets/CustomActionProxy.cs:
20080         * src/Core/Banshee.Widgets/Banshee.Widgets/RatingActionProxy.cs: Fix mono
20081         1.9 compiler error with amibuous Action references.
20083         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs: Fix mono
20084         1.9 compiler error with if (bool?) statement.
20086 2008-02-05  Aaron Bockover  <abock@gnome.org>
20088         * src/create-extension: A simple script that will create some of the
20089         files necessary for creating new extensions; it allows you to specify
20090         the extension name extension points that will be implemented and it
20091         tries to build at least most of the necessary shell for the extension
20093         * src/Extensions/Template/Makefile.am:
20094         * src/Extensions/Template/Template.addin.xml:
20095         * src/Extensions/Template/Template.mdp: Files to use as the base for
20096         generated extensions
20098 2008-02-05  Aaron Bockover  <abock@gnome.org>
20100         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs:
20101         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView_DragAndDrop.cs:
20102         Some minor reorg, finish the DnD split
20104 2008-02-05  Scott Peterson <lunchtimemama@gmail.com> 
20106         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView.cs: Got rid of obsolete type.
20107         Last commit, I swear.
20109 2008-02-05  Scott Peterson <lunchtimemama@gmail.com> 
20111         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView.cs: Merged PaintRows into
20112         PaintList since PaintList had become a withered shell of its former
20113         self, not worth the method call.
20115 2008-02-05  Scott Peterson <lunchtimemama@gmail.com> 
20117         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView.cs: Very minor change - removed
20118         unnessisary assignment.
20120 2008-02-05  Scott Peterson <lunchtimemama@gmail.com> 
20122         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView.cs: A rework of PaintList and
20123         PaintRows. Previously, all rows needed to be iterated over three times:
20124         once to calculate the selection blocks, once to draw the rule, and once
20125         to draw the content. Now it is only iterated over once - rules, content
20126         for unselected rows, and selection blocks are drawn during iteration
20127         while selected rows are put into a list and their content is drawn at
20128         the end. This exploits the fact that the most common numbers of visible
20129         selected rows are 0 and 1. The actual performance gains for this patch
20130         are rather modest, but tangeble (a millisecond or two for the execution
20131         time of PaintList acording to the profiler).
20133 2008-02-04  Scott Peterson <lunchtimemama@gmail.com> 
20135         * src/Core/Banshee.Services/Banshee.Collection.Database/AlbumListDatabaseModel.cs:
20136         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
20137         * src/Core/Banshee.Services/Banshee.Collection.Database/ArtistListDatabaseModel.cs:
20138         Made some private fields readonly.
20140 2008-02-04  Scott Peterson <lunchtimemama@gmail.com> 
20142         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
20143         * src/Core/Banshee.Core/Banshee.Configuration.Schema/LibrarySchema.cs:
20144         * src/Core/Banshee.Core/Banshee.Base/SafeUri.cs: Standardized venacular
20145         around "Location" rather than "Path" when refering to the file URI in
20146         user-facing strings (BGO 436453)
20148 2008-02-04  Scott Peterson <lunchtimemama@gmail.com> 
20150         * src/Core/Hyena/Hyena.Data/DictionaryModelCache.cs: Initialize the cache
20151         dictionary to the proper capacity (since we know it).
20153 2008-02-04  Aaron Bockover  <abock@gnome.org>
20155         This commit adds source merge behavior and the ability to drag and drop
20156         sources in the source view; i.e. drag the play queue to a new playlist
20157         to save it
20159         * src/Core/Banshee.Services/Banshee.Sources/Source.cs:
20160         * src/Core/Banshee.Services/Banshee.Sources/SourceMergeType.cs:
20161         Added some stuff to advertise how sources can interact with eachother;
20162         concept of merging sources into sources
20164         * src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs:
20165         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs:
20166         Implement merge behaviors
20168         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView_DragAndDrop.cs:
20169         Finished the drag and drop support for the source view internally
20171         * src/Core/Hyena.Gui/Hyena.Gui.Theatrics/SingleActorStage.cs: Override
20172         OnActorStep so that single actor stages work again
20174         * src/Core/Hyena.Gui/Hyena.Gui.Theatrics/Stage.cs: Nuke ugly writeline
20176 2008-02-04  Gabriel Burt  <gabriel.burt@gmail.com>
20178         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
20179         * src/Core/Banshee.Services/Banshee.Collection/TrackListModel.cs:
20180         * src/Core/Banshee.Services/Banshee.SmartPlaylist/Migrator.cs:
20181         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistCore.cs:
20182         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
20183         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: 
20184         * src/Core/Hyena/Hyena.mdp:
20185         * src/Core/Hyena/Makefile.am:
20186         * src/Core/Hyena/Hyena.Data.Query/*:
20187         * src/Core/Hyena/Hyena.Query/*: Change Hyena.Data.Query namespace to
20188         Hyena.Query.
20190 2008-02-04  Aaron Bockover  <abock@gnome.org>
20192         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs:
20193         Only draw the hot cairo stuff if we have a cairo context (and we don't
20194         when the row is being dragged)
20196 2008-02-04  Aaron Bockover  <abock@gnome.org>
20198         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs: Check
20199         to see if the actor TreeIter is valid in notify_stage.ActorStep - expire
20200         the actor if it is not
20202         * src/Core/Hyena.Gui/Hyena.Gui.Theatrics/Stage.cs: Allow the step handler
20203         to expire the actor by returning false
20205 2008-02-03  Aaron Bockover  <abock@gnome.org>
20207         This commit adds Drag and Drop support from the track list to the source
20208         view; i.e. you can drag tracks to the play queue or playlists
20210         * src/Core/Banshee.Services/Banshee.Sources/Source.cs:
20211         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs: Added
20212         and implemented AcceptsInputFromSource and MergeSourceInput methods
20213         that allows source to see if they are 'compatible' with other sources; 
20214         for instance, copying some tracks from one source to another
20216         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
20217         Implemented source-mode drag and drop for the track list
20219         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs:
20220         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView_DragAndDrop.cs:
20221         Implemented dest-mode drag and drop for track contexts (cannot DnD to/from
20222         source view yet)
20224         * src/Core/Banshee.ThickClient/Banshee.Gui.DragDrop/DragDropTarget.cs:
20225         Modernized the drop targets we'll start with for trunk
20227         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs:
20228         Remove some obsolete properties
20230         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView.cs: Started fixing up 
20231         click behavior for selections to work properly with multi-row DnD; 
20232         currently there is still some bad behavior and it needs work - almost
20233         done though
20235 2008-02-03  Aaron Bockover  <abock@gnome.org>
20237         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Do some trimming
20238         in the Display* properties
20240 2008-02-03  Ruben Vermeersch  <ruben@savanne.be>
20241         
20242         Rename extension types into more meaningful names. TypeExtensionNode is an
20243         implementation detail.
20245         * src/Core/Banshee.Services/Banshee.Services.addin.xml: Rename the four
20246         different TypeExtensionNodes (which all had different functionality into):
20247                 Service, Source, ImportSource and PlayerEngine.
20249         * src/Backends/Banshee.GStreamer/Banshee.GStreamer.addin.xml:
20250         * src/Core/Banshee.ThickClient/Banshee.ThickClient.addin.xml:
20251         * src/Extensions/Banshee.Audioscrobbler/Resources/Banshee.Audioscrobbler.addin.xml:
20252         * src/Extensions/Banshee.MultimediaKeys/Resources/Banshee.MultimediaKeys.addin.xml:
20253         * src/Extensions/Banshee.NotificationArea/Resources/Banshee.NotificationArea.addin.xml:
20254         * src/Extensions/Banshee.PlayQueue/Resources/Banshee.PlayQueue.addin.xml:
20255         Adjust addin.xml files accordingly.
20257 2008-02-02  Ruben Vermeersch  <ruben@savanne.be>
20259         * src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs:
20260         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellTrackNumber.cs: Added.
20261         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
20262         * src/Core/Banshee.ThickClient/Makefile.am: Fix a regression from old
20263         Banshee, don't show the track number if it's zero. Just show empty space.
20265 2008-02-02  Aaron Bockover  <aaron@abock.org>
20267         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs:
20268         Use smarter calculations for computing the row height and middle-aligning
20269         contents in a row; should look better across all font sizes now
20271         * src/Core/Hyena.Gui/Hyena.Widgets/RoundedFrame.cs: Reduce the inner border
20272         width to the correct size to be consistent with the ListView
20274 2008-02-01  Scott Peterson <lunchtimemama@gmail.com> 
20276         * src/Core/Banshee.Services/Banshee.Database/BansheeModelProvider.cs: Made
20277         to use DatabaseConfigurationClient when checking for version.
20279         * src/Core/Banshee.Services/Banshee.Configuration:
20280         * src/Core/Banshee.Services/Banshee.Configuration/DatabaseConfigurationClient.cs:
20281         Added DatabaseConfigurationClient, an IConfigurationClient wrapper for
20282         the CoreConfiguration table.
20284 2008-01-31  Gabriel Burt  <gabriel.burt@gmail.com>
20286         This commits adds j, k, Home, and End key support for scrolling list
20287         views.  Also fixes issue with not fading newly created playlist.
20289         * src/Core/Banshee.Services/Banshee.Playlist/AbstractPlaylistSource.cs:
20290         Add public UserNotifyUpdated method so extensions etc can use it.
20292         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs:
20293         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs: Call
20294         UserNotifyUpdated in the action handler when creating a playlist.
20296         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView.cs: Add j and k as key
20297         bindings for down/up respectively.  Add Home/End key support.  Handle all
20298         relevant key pad keys.
20300         * src/Core/Nereid/Nereid/PlayerInterface.cs: Don't have j or J focus the
20301         search any more, it's now used for scrolling the ListViews.
20303 2008-01-31  Aaron Bockover  <abock@gnome.org>
20305         * src/Core/Banshee.Services/Banshee.ServiceStack/IExtensionService.cs:
20306         Added a simple method that extension services must implement; extension
20307         services should do nothing in their constructors so we can get type
20308         information from them at runtime at a minimum
20310         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:
20311         Require extension services to be IExtensionService; catch all exceptions
20312         from them, do not bail if an extension explodes and log the error
20314         * src/Extensions/Banshee.MultimediaKeys/Banshee.MultimediaKeys/MultimediaKeysService.cs:
20315         Extreme hack to support both GNOME Settings Daemon 2.20 and 2.22; I just
20316         love how pointless API breakage is a common theme in GNOME - the price
20317         of being an ISV and not 'in GNOME' is high - too high
20319         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
20320         Use 'q' as a shortcut for adding stuff to the play queue
20321         
20322         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/Service.cs:
20323         * src/Extensions/Banshee.Audioscrobbler/Banshee.Audioscrobbler/AudioscrobblerService.cs:
20324         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/NotificationAreaService.cs:
20325         Implement IExtensionService
20327 2008-01-31  Gabriel Burt  <gabriel.burt@gmail.com>
20329         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
20330         Within sort by album, do not sort by artist because it messes up
20331         multi-artist albums.  This change will mess up albums that have the same
20332         name however.  Should have a sort by album-artist in here though.
20334 2008-01-31  Aaron Bockover  <abock@gnome.org>
20336         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellPlaybackIndicator.cs:
20337         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
20338         Remove the little speaker icon in the header of the list view that
20339         represents the column which can hold the playback indicator; apparently
20340         this is confusing and may lead to the expectation of it being clickable
20341         and have it do something; fixes BNC #188717
20343         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView.cs: Do not try to render
20344         a null cell
20346 2008-01-31  Aaron Bockover  <abock@gnome.org>
20348         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:
20349         Push IDisposable services into a dispose stack on startup; unwind this
20350         stack on shutdown, disposing services in the proper (safe) order
20352         * src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs: Make 
20353         IDisposable and dispose all sources if they are in turn IDisposable
20355         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
20356         * src/Extensions/Banshee.PlayQueue/Resources/GlobalUI.xml:
20357         Added 'clear on quit' support; make IDisposable, clearing the queue
20358         if set on Dipose
20360         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs: Finish
20361         porting the naming utility stuff to create proper playlist names; not
20362         actually in use yet
20364         * src/Core/Banshee.ThickClient/Banshee.Gui/BansheeActionGroup.cs: Get
20365         rid of the params Add method since there are many more ActionEntry
20366         arrays that won't work with params
20368 2008-01-31  Aaron Bockover  <abock@gnome.org>
20370         Patch that adds sorting by Disc number and editing it as well from
20371         Will Farrington. Awesomeness.
20373         * src/Core/Banshee.Core/Banshee.Collection/FileTrackInfo.cs:
20374         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs:
20375         * src/Core/Banshee.Core/Banshee.Streaming/CommonTags.cs:
20376         * src/Core/Banshee.Core/Banshee.Streaming/StreamTagger.cs:
20377         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs:
20378         Add backend support for having Track.Disc as a column in TrackInfo
20380         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
20381         Set default sorting, artist, and album sorting to sort with respect to the
20382         disc number; Add QueryField: searchable keywords are "disc" "cd" 
20383         and "discnum"
20385         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/TrackEditor.cs:
20386         * src/Core/Banshee.ThickClient/Resources/banshee-dialog-ui.xml:
20387         Add Disc field to the Track Editor
20389 2008-01-31  Aaron Bockover  <abock@gnome.org>
20391         Patch to enable the preferences dialog by Alex Hixon
20393         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs:
20394         * src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs:
20395         Copy track to library directory if it's not already there and the user
20396         has opted to copy files
20398         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/PreferencesDialog.cs:
20399         Port the preferences dialog from stable
20401         * src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs:
20402         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml:
20403         Added preferences actions
20405 2008-01-30  Aaron Bockover  <abock@gnome.org>
20407         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs:
20408         Make the notification highlight extra sexy with some fade in and out
20410         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs:
20411         Set the stage duration to 1.5s
20413         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListViewGraphics.cs: DrawRowSelection
20414         has a few new overrides including taking a color
20416 2008-01-30  Aaron Bockover  <abock@gnome.org>
20418         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
20419         Ported the animation/timeline code to use Hyena.Gui.Theatrics
20420         
20421         * src/Core/Hyena.Gui/Hyena.Gui.Theatrics/SingleActorStage.cs:
20422         A helper stage that will only have up to one actor at a time
20424 2008-01-30  Aaron Bockover  <abock@gnome.org>
20426         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs: 
20427         * src/Core/Banshee.Services/Banshee.Sources/Source.cs:
20428         Added UserNotifyUpdated event that sources can use to trigger 
20429         notifications or visual cues in the source view
20431         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs:
20432         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs:
20433         Use the new Hyena theatre stage/actors to animate update notifications on 
20434         source rows in the source views
20436         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListViewGraphics.cs: Added a method
20437         for drawing a flat row highlight
20439         * src/Core/Hyena.Gui/Hyena.Gui.Theatre/Stage.cs: An object that manages
20440         timeouts for a set of Actors bound to targets of T; used for animating
20441         collections of objects bound to actors
20443         * src/Core/Hyena.Gui/Hyena.Gui.Theatre/Actor.cs: An object bound to
20444         a target of T with life span and percentage properties used for animations
20446         * src/Core/Hyena.Gui/Hyena.Widgets/RoundedFrame.cs: Remove redundant
20447         BorderWidth property
20449 2008-01-30  Aaron Bockover  <abock@gnome.org>
20451         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs:
20452         Use the list view theme engine to draw the highlight selection
20454         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListViewGraphics.cs: Make it optional
20455         to draw the row selection fill
20457 2008-01-30  Aaron Bockover  <abock@gnome.org>
20459         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/CellEditEntry.cs:
20460         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs:
20461         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs:
20462         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView_DragAndDrop.cs:
20463         Lots of clean up/reorg of the SourceView code to make it easier to 
20464         read and manage; split all of the drag and drop code into a separate
20465         file and SourceView is now a partial class
20467 2008-01-30  Aaron Bockover  <abock@gnome.org>
20469         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs:
20470         Stupid cast to work around possible bug in gmcs 1.2.5
20472 2008-01-30  Aaron Bockover  <abock@gnome.org>
20474         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListViewGraphics.cs: Added a DrawFrame
20475         method to simply draw the entire ListView like frame around a rect
20477         * src/Core/Hyena.Gui/Hyena.Widgets/RoundedFrame.cs: A widget like the
20478         standard Gtk.Frame, except it uses our ListViewGraphics to draw a sexy
20479         rounded frame that blends in with the list views
20481         * src/Core/Hyena.Gui/Hyena.Widgets/ScrolledWindow.cs: A custom 
20482         ScrolledWindow that proxies Hadjustmend and Vadjustment of the child
20483         of a RoundedFrame if one is added to the ScrolledWindow
20485         * src/Core/Nereid/Nereid/PlayerInterface.cs: Use a Hyena ScrolledWindow
20486         with AddFrame to make the source view TreeView look like our ListView
20487         widgets - dead sexy
20489 2008-01-30  Aaron Bockover  <abock@gnome.org>
20491         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
20492         Use the new AddImportant method to make the play queue 'clear' text
20493         show up in the header
20495         * src/Core/Banshee.ThickClient/Banshee.Gui/BansheeActionGroup.cs: Fixed
20496         Add to be 'new', added AddImportant
20498 2008-01-30  Aaron Bockover  <abock@gnome.org>
20500         * build/build.rules.mk: Fixed installation. Yay.
20502 2008-01-30  Ruben Vermeersch  <ruben@savanne.be>
20504         Add the basic files for the Audioscrobbler plugin. Nothing functional yet,
20505         just the boilerplate code for the addin.
20507         * build/build.environment.mk: Add refs for Audioscrobbler.
20509         * configure.ac: Add the Audioscrobbler Makefile.
20511         * src/Extensions/Banshee.Audioscrobbler: Added.
20512         * src/Extensions/Banshee.Audioscrobbler/Banshee.Audioscrobbler: Added.
20513         * src/Extensions/Banshee.Audioscrobbler/Banshee.Audioscrobbler/AudioscrobblerService.cs: Added.
20514         * src/Extensions/Banshee.Audioscrobbler/Makefile.am: Added.
20515         * src/Extensions/Banshee.Audioscrobbler/Resources: Added.
20516         * src/Extensions/Banshee.Audioscrobbler/Resources/Banshee.Audioscrobbler.addin.xml: Added.
20518         * src/Extensions/Makefile.am: Add Audioscrobbler.
20520 2008-01-29  Aaron Bockover  <abock@gnome.org>
20522         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs:
20523         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs: 
20524         Fix a few minor rendering issues
20526 2008-01-29  Gabriel Burt  <gabriel.burt@gmail.com>
20528         * src/Core/Banshee.ThickClient/Banshee.Gui/BansheeActionGroup.cs: New Add
20529         method that takes params ActionEntry [] and sets all the created Actions
20530         as IsImportant=true so if they are used in the toolbar their text will
20531         appear.
20533         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
20534         Use new Add(params ActionEntry []) override to add actions.
20536         * src/Core/Nereid/Nereid/PlayerInterface.cs: Set the toolbar style to
20537         BothHoriz.
20539         * src/Core/Banshee.ThickClient/Banshee.Gui/ViewActions.cs:
20540         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackActions.cs: Inherit
20541         from BansheeActionGroup.
20543 2008-01-29  Aaron Bockover  <abock@gnome.org>
20545         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs:
20546         Draw the same cairo selections that the track list view uses, overriding
20547         the crappy GTK selection for the tree view
20549         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs: 
20550         Set up a cairo context and list view graphics for the renderer
20552 2008-01-29  Aaron Bockover  <abock@gnome.org>
20554         * src/Core/Banshee.ThickClient/Banshee.Gui/BansheeActionGroup.cs:
20555         Make protected properties public - they should be since they are just
20556         wrappers to functionality that can be used via alternate API
20558         * src/Core/Banshee.ThickClient/Banshee.Gui/InterfaceActionService.cs:
20559         Automatically load/unload XML UI resources and actions for the active
20560         source if actions and UI are set in the source properties
20562         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs:
20563         Do not crash if the source context menu is null
20565         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs:
20566         Reset the highlight on left mouse click
20568         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
20569         Split the XML UI between two definitions since one needs loading/unloading
20570         as the active source changes (the toolbar UI)
20572         * src/Extensions/Banshee.PlayQueue/Resources/ActiveSourceUI.xml: UI
20573         for use when the play queue is the active source
20575         * src/Extensions/Banshee.PlayQueue/Resources/GlobalUI.xml: UI for the
20576         play queue to be loaded at all times
20578 2008-01-29  Aaron Bockover  <abock@gnome.org>
20580         * src/Core/Banshee.ThickClient/Banshee.Gui/IHasSourceView.cs: Expose
20581         ResetHighlight
20583         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs: Reset
20584         the highlight in the source view when done with the context menu
20586         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs:
20587         Draw a special highlight for the highlight path
20589         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs: Add
20590         a concept of a highlight path which is now different from the selected
20591         path to avoid confusion of the selection changing source when using the
20592         context menu
20594         * src/Core/Nereid/Nereid/PlayerInterface.cs: Implement ResetHightlight
20596         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
20597         * src/Extensions/Banshee.PlayQueue/Resources/Actions.xml:
20598         Expose a source context menu
20600 2008-01-28  Aaron Bockover  <abock@gnome.org>
20602         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Make the status
20603         text much less intrusive with less specificity (display only a single
20604         time scale); do not display any status if there are no tracks
20606         * src/Core/Nereid/Nereid/PlayerInterface.cs: Add some padding to the
20607         bottom of the status bar; change the text color of the status bar to
20608         a nice foreground/background blend to make it less intrusive
20610 2008-01-28  Aaron Bockover  <abock@gnome.org>
20612         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs:
20613         Make the IUnmappable implementation virtual
20615         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
20616         Override CanUnmap, return false
20618 2008-01-28  Gabriel Burt  <gabriel.burt@gmail.com>
20620         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
20621         Customize name of Remove Track(s) action.
20623 2008-01-28  Gabriel Burt  <gabriel.burt@gmail.com>
20625         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs:
20626         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Fix brokenness of
20627         confusing Count/Unfiltered count issue; unfortunately no less confusing
20628         though.
20630 2008-01-28  Aaron Bockover  <abock@gnome.org>
20632         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
20633         Implemented a clear queue action and set visibility and sensitivity of
20634         the queue actions properly
20636         * src/Extensions/Banshee.PlayQueue/Resources/Actions.xml: Added actions
20638         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml:
20639         Added some more placeholders
20641 2008-01-28  Gabriel Burt  <gabriel.burt@gmail.com>
20643         * src/Core/Banshee.Services/Banshee.Collection.Database/AlbumListDatabaseModel.cs:
20644         * src/Core/Banshee.Services/Banshee.Collection.Database/ArtistListDatabaseModel.cs:
20645         Implement SelectAggregates.
20647         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
20648         Add Duration and FileSize properties.
20650         * src/Core/Banshee.Services/Makefile.am:
20651         * src/Core/Banshee.Services/Banshee.Sources/IDurationAggregator.cs:
20652         * src/Core/Banshee.Services/Banshee.Sources/IFileSizeAggregator.cs: New
20653         interfaces for determining if a source has certain properties.
20655         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Implement
20656         both new interfaces.
20658         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: New GetStatusText
20659         method that the interface with default implementation that returns count,
20660         duration, and file size.
20662         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/UserJobTileHost.cs:
20663         Place VBox inside of Alignment so we can get our top padding, but only
20664         show it when we are shown (instead of spacing in our parent vbox that is
20665         always there).
20667         * src/Core/Hyena/Hyena.Data.Query/FileSizeQueryValue.cs: Add new ctor.
20669         * src/Core/Hyena/Hyena.Data.Sqlite/HyenaSqliteCommand.cs: Rename variable
20670         for clarity.
20672         * src/Core/Hyena/Hyena.Data.Sqlite/ICacheableDatabaseModel.cs: Add
20673         SelectAggregates property, used by models to load aggregate values (eg
20674         SUM(FileSize) when the count is taken.
20676         * src/Core/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs: Add support for
20677         SelectAggregate properties.  Add AggregatesUpdated event so models can
20678         handle the results of the query themselves (except the count, which we
20679         still handle).
20681         * src/Core/Banshee.Services/Banshee.Database/BansheeModelProvider.cs:
20682         * src/Core/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs: Make TableName
20683         public.
20685         * src/Core/Hyena/Hyena.Data/IFilterable.cs: Revert previous
20686         UnfilteredCount -> FilteredCount change.
20688         * src/Core/Nereid/Nereid/PlayerInterface.cs: Add BuildFooter method, add
20689         the status label in the footer, keep it updated as the source track model
20690         changes.
20692 2008-01-28  Aaron Bockover  <abock@gnome.org>
20694         * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
20695         * src/Extensions/Banshee.PlayQueue/Resources/Actions.xml:
20696         * src/Extensions/Banshee.PlayQueue/Resources/Banshee.PlayQueue.addin.xml:
20697         Moved the play queue out of core into an extension
20699         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
20700         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs:
20701         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml:
20702         Remove any knowledge of PlayQueue as it's now an extension (awesome)
20704         * src/Core/Banshee.Services/Banshee.Services.addin.xml:
20705         * src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs:
20706         * src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs: Created
20707         a new extension point for sources
20709         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:
20710         Added a more useful Get method that infers the service name from
20711         the generic type argument passed to it ala typeof (T).Name
20713 2008-01-28  Gabriel Burt  <gabriel.burt@gmail.com>
20715         * Makefile.am: add --debug to mono call.
20717 2008-01-28  Aaron Bockover  <abock@gnome.org>
20719         * src/Core/Banshee.Services/Banshee.Playlist/PlayQueueSource.cs: Change
20720         the sort order so 'add to play queue' works as expected; override 
20721         ConfirmRemoveTracks so a prompt does not invade your life when you 
20722         remove from the queue
20724         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: 
20725         * src/Core/Banshee.Services/Banshee.Sources/ITrackModelSource.cs:
20726         Added ConfirmRemoveTracks
20728         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Do not
20729         confirm if the source does not want you to when removing tracks
20731 2008-01-28  Aaron Bockover  <abock@gnome.org>
20733         Okay, 5% to go with the play queue ... it's working
20735         * src/Core/Banshee.Services/Banshee.Playlist/PlayQueueSource.cs: Implement
20736         the actual play queue logic in the proper place this time; remove the
20737         top track when done playing/skipped
20739         * src/Core/Banshee.Services/Banshee.PlaybackController/PlaybackControllerService.cs:
20740         Added a Transition event that the controller will raise before performing       
20741         any transition methods (Next, Previous)
20743         * src/Core/Banshee.Services/Banshee.PlaybackController/IBasicPlaybackController.cs:
20744         * src/Core/Banshee.Services/Banshee.PlaybackController/ICanonicalPlaybackController.cs:
20745         * src/Core/Banshee.Services/Banshee.PlaybackController/IPlaybackController.cs:
20746         Fix up interface dependency chain
20748 2008-01-28  Aaron Bockover  <abock@gnome.org>
20749         
20750         * src/Core/Banshee.Services/Banshee.PlaybackController/ICanonicalPlaybackController.cs:
20751         Interface for implementing explicitly inside of the playback controller
20752         service that will allow other playback controllers to be used if 
20753         defined on a source, yet still allow those controllers to call back
20754         into the canonical controller
20756         * src/Core/Banshee.Services/Banshee.PlaybackController/IPlaybackController.cs:
20757         * src/Core/Banshee.Services/Banshee.PlaybackController/IPlaybackControllerExportable.cs:
20758         Separate the DBus exportable feature of the playback controller into a 
20759         separate interface
20761         * src/Core/Banshee.Services/Banshee.PlaybackController/PlaybackControllerService.cs:
20762         Implement ICanonicalPlaybackController explicitly, 
20763         IPlaybackControllerExportable, and if the source bound to the controller
20764         is itself an IPlaybackController, have the implicit implementation of
20765         IPlaybackController in the canonical controller call into the source
20767 2008-01-28  Gabriel Burt  <gabriel.burt@gmail.com>
20769         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
20770         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs:
20771         * src/Core/Hyena/Hyena.Data/IFilterable.cs: Keep the meaning of Count
20772         consistent as the unfiltered count;  remove UnfilteredCount property, add
20773         FilteredCount property to IFilterable.
20775 2008-01-28  Gabriel Burt  <gabriel.burt@gmail.com>
20777         * src/Core/Hyena/Hyena.Data/ModelCache.cs:
20778         * src/Core/Hyena/Hyena.Data/ArrayModelCache.cs:
20779         * src/Core/Hyena/Hyena.Data/DictionaryModelCache.cs:
20780         * src/Core/Hyena/Makefile.am: Implement different managed caching
20781         strategies in subclasses of ModelCache.
20783         * src/Core/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs: Subclass from
20784         DictionaryModelCache for now (no practical change for now).
20786 2008-01-28  Aaron Bockover  <abock@gnome.org>
20788         * src/Core/Banshee.Services/Banshee.MediaEngine/IPlaybackController.cs:
20789         * src/Core/Banshee.Services/Banshee.MediaEngine/PlaybackControllerDatabaseStack.cs:
20790         * src/Core/Banshee.Services/Banshee.MediaEngine/PlaybackRepeatMode.cs:
20791         * src/Core/Banshee.Services/Banshee.MediaEngine/PlaybackShuffleMode.cs:
20792         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:
20793         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackActions.cs: 
20794         Moved playback controller APIs to their own 
20795         namespace - Banshee.PlaybackController
20797         * src/Core/Banshee.Services/Banshee.MediaEngine/PlaybackControllerService.cs:
20798         Removed all the play queue stuff I did last night - it was way too late
20799         and was a horrible hack design
20801 2008-01-28  Gabriel Burt  <gabriel.burt@gmail.com>
20803         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs:
20804         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
20805         Implement IUnmapableSource again so Delete Playlist options show up.
20807         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs:
20808         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml: Add
20809         NewSmartPlaylistFromSearch action.  Doesn't yet do anything.
20811 2008-01-28  Gabriel Burt  <gabriel.burt@gmail.com>
20813         * src/Core/Hyena/Hyena.Data.Sqlite/HyenaSqliteCommand.cs: Access each char
20814         of the command in place instead of assigning it to a variable, when
20815         scanning it for ?'s.
20817 2008-01-28  Gabriel Burt  <gabriel.burt@gmail.com>
20819         * src/Core/Hyena/Hyena.Data.Sqlite/HyenaSqliteCommand.cs: Change API.
20820         Used to have ctor(command, int) where int was the number of paramters.
20821         This was used primarily for stored, reused commands.  But, this ctor was
20822         ambiguous with the ctor(command, params object [] values), used to create
20823         a command and immediately apply values to it.  So, instead of passing the
20824         int, you can now just pass the command, and it will be scanned for '?'.
20826         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryAlbumInfo.cs:
20827         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryArtistInfo.cs:
20828         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs:
20829         * src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs:
20830         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistFileUtil.cs:
20831         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs:
20832         * src/Core/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs:
20833         * src/Core/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs: Use new
20834         HyenaSqliteCommand API.
20836 2008-01-28  Gabriel Burt  <gabriel.burt@gmail.com>
20838         * src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs:
20839         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs:
20840         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Add
20841         RemoveTrack methods (taking either an int or a LibraryTrackInfo).
20843 2008-01-28  Aaron Bockover  <abock@gnome.org>
20845         Maybe 3% closer
20847         * src/Core/Banshee.Services/Banshee.MediaEngine/PlaybackControllerService.cs:
20848         Implemented most of the required interaction between the playback 
20849         controller and the play queue; the play queue will activate if it is
20850         populated and playback is transitioning from another source
20852         * src/Core/Banshee.Services/Banshee.Playlist/PlayQueueSource.cs:
20853         * src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs:
20854         Change the way the play queue singleton is assigned so the playback
20855         controller does not require a play queue
20857         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Remove the
20858         plus/add icon on add to playlist
20860         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs: 
20861         Fix something stupid
20863 2008-01-28  Aaron Bockover  <abock@gnome.org>
20865         This commit adds about 90% of what's needed for a fully functioning 
20866         play queue. Yes, you can has queue. You can has indeed. <3
20868         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
20869         Allow model to have a sort query forced upon it, effectively disabling
20870         user sorting
20872         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
20873         CorePlaylists has a new column called Special; Special playlists (not 0)
20874         are ignored by the regular static playlist loader
20876         * src/Core/Banshee.Services/Banshee.Playlist/AbstractPlaylistSource.cs:
20877         Get rid of the IconName property
20879         * src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs: Use the old
20880         home icon again; make the library source order 1
20882         * src/Core/Banshee.Services/Banshee.Playlist/PlayQueueSource.cs: Hot
20883         sexy new source for the play queue; it's the world's first special
20884         playlist in Banshee
20886         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs: Do not
20887         load special playlists; return mediocre playlists using yield, instead of
20888         collecting into a temporary list; cope with the fact that IconName was
20889         banished from the base APS
20891         * src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs: Load the
20892         hot new play queue source - zomg
20894         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
20895         Also deal with the fact that IconName was banished from APS
20897         * src/Core/Banshee.Services/Banshee.Sources/ITrackModelSource.cs:
20898         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Added a 
20899         ShowBrowser property that allows track model sources to mandate whether
20900         or not the user can see the browser
20902         * src/Core/Banshee.Services/Makefile.am:
20903         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/CompositeTrackListView.cs:
20904         Respect ShowBrowser if the active source is an ITrackModelSource, otherwise
20905         never show the browser since that doesn't make sense
20907         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs:
20908         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml:
20909         Added the sweet new 'Add to Play Queue' action
20911         * src/Core/Hyena/Hyena.Data.Sqlite/HyenaSqliteConnection.cs: Added
20912         LastInsertRowId, because that is some useful stuff
20914 2008-01-27  Gabriel Burt  <gabriel.burt@gmail.com>
20916         * src/Core/Banshee.Core/Banshee.Base/Log.cs: Make ms always 3 digits.
20918         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryAlbumInfo.cs:
20919         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryArtistInfo.cs:
20920         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs:
20921         * src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs:
20922         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistFileUtil.cs:
20923         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs:
20924         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
20925         * src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs:  Get
20926         rid of BansheeDbCommand.  It didn't add anything useful, and in fact had a
20927         bug that made creating a new playlist not work (and possibly other
20928         commands as well).
20930         * src/Core/Hyena/Hyena.Data.Sqlite/HyenaSqliteConnection.cs: Add debugging
20931         message when executing command out of main thread.
20933 2008-01-27  Ruben Vermeersch  <ruben@savanne.be>
20935         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs: C#'s
20936         lock statement is re-entrant. Therefore, there's no need to have both
20937         RegisterService and RegisterServiceNoLock.
20939 2008-01-26  Aaron Bockover  <abock@gnome.org>
20941         * src/Core/Nereid/Nereid/PlayerInterface.cs: use Pack1, Pack2 to on the
20942         main hpaned widget to outlaw child shrinkage; set sane minimum width 
20943         requests on the source view and view container; fix whitespace issues
20945         * src/Core/Banshee.Services/Banshee.MediaEngine/IPlaybackController.cs:
20946         * src/Core/Banshee.Services/Banshee.MediaEngine/PlaybackControllerService.cs:
20947         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:
20948         Updated copyright dates
20950 2008-01-26  Aaron Bockover  <abock@gnome.org>
20952         * src/Core/Banshee.Services/Banshee.MediaEngine/IPlaybackController.cs:
20953         * src/Core/Banshee.Services/Banshee.MediaEngine/PlaybackControllerService.cs:
20954         Added First method to play the first song in the source
20956         * src/Core/Nereid/Nereid/PlayerInterface.cs: When a source view row
20957         is activated, make it the playback source and begin playing the first 
20958         track from it
20960 2008-01-26  Aaron Bockover  <abockover@novell.com>
20962         Ladies, Gentlemen - I present to you playback against a dedicated source...
20963         This has been probably in the top 3 requested features for the past 2 years
20965         * src/Core/Banshee.Services/Banshee.MediaEngine/PlaybackControllerService.cs:
20966         Perform all source operations from the public Source property; if no
20967         Source has been manually set on the controller, use the default one;
20968         raise the new SourceChanged event when Source is set
20970         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs: Listen
20971         to PlaybackController.SourceChanged to refresh the GUI
20973         * src/Core/Nereid/Nereid/PlayerInterface.cs: Set the source on the
20974         playback controller to the active source when the user manually 
20975         plays a song
20977 2008-01-26  Aaron Bockover  <abockover@novell.com>
20979         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs:
20980         Remove the old manual ellipize calculations and just let Pango do it now
20981         that we can (it wasn't supported in the binding years back); make source
20982         text bold if it is the playback source, not the selected source
20984 2008-01-26  Aaron Bockover  <abockover@novell.com>
20986         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/CellEditEntry.cs:
20987         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs:
20988         Classes pulled out of SourceView.cs, changed from public to internal
20989         since they are meaningless outside of SourceView
20991         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs: Minor
20992         reorg, audit public API
20994         * src/Core/Hyena.Gui/Hyena.Gui/GtkUtilities.cs: Added ColorBlend method
20995         from the old Banshee.Base.Utilities class to blend two Gdk.Colors
20997 2008-01-26  Aaron Bockover  <abockover@novell.com>
20999         * src/Core/Banshee.Core/Banshee.Base/Log.cs: Only show debug message if
21000         we are running in --debug mode
21002         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs: Spew
21003         some awesome timing/debug messages
21005         * src/Core/Makefile.am: Fix a boo-boo
21007 2008-01-25  Aaron Bockover  <abock@gnome.org>
21009         * src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs: 
21010         Save the artist before the track when importing
21012 2008-01-25  Aaron Bockover  <abock@gnome.org>
21014         Patch adds GNOME/DBus multimedia keys support; ported by Alex Hixon
21016         * build/build.environment.mk: 
21017         * configure.ac:
21018         * src/Extensions/Extensions.mds:
21019         * src/Extensions/Makefile.am:
21020         * src/Core/Makefile.am: 
21021         * src/Extensions/Banshee.MultimediaKeys/Makefile.am: 
21022         * src/Extensions/Banshee.MultimediaKeys/Banshee.MultimediaKeys.mdp: Build 
21023         stuff for the multimedia keys extension
21025         * src/Extensions/Banshee.MultimediaKeys/Banshee.MultimediaKeys/MultimediaKeysService.cs:
21026         * src/Extensions/Banshee.MultimediaKeys/Resources/Banshee.MultimediaKeys.addin.xml: MMKeys plugin code/extension 
21028         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs: 
21029         Log when a service has started
21031 2008-01-25  Gabriel Burt  <gabriel.burt@gmail.com>
21033         * src/Core/Banshee.Services/Banshee.Collection.Database/AlbumListDatabaseModel.cs:
21034         * src/Core/Banshee.Services/Banshee.Collection.Database/ArtistListDatabaseModel.cs:
21035         Get rid of unnecessary disctinct () call in query.
21037         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
21038         Add some more indices.
21040 2008-01-25  Gabriel Burt  <gabriel.burt@gmail.com>
21042         * src/Core/Banshee.Services/Banshee.Collection.Database/AlbumListDatabaseModel.cs:
21043         * src/Core/Banshee.Services/Banshee.Collection.Database/ArtistListDatabaseModel.cs:
21044         Use the CoreCache table to filter artists and albums based on the
21045         currently matching tracks.  Means the artist/album lists are filtered as
21046         you filter you tracks.
21048         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
21049         Comment out query debugging.
21051         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Call
21052         OnUpdated after Reloading.
21054         * src/Core/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs: Comment out timers.
21056 2008-01-25  Gabriel Burt  <gabriel.burt@gmail.com>
21058         Smart playlists are migrated and saved now.  They should be functional.
21060         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
21061         Add playlistid and smartplaylistid fields for smart playlist migration.
21063         * src/Core/Banshee.Services/Banshee.Playlist/AbstractPlaylistSource.cs:
21064         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs: Call DbId
21065         setter from subclasses, not in base ctor.
21067         * src/Core/Banshee.Services/Banshee.SmartPlaylist/Migrator.cs: Improve to
21068         actually be able to migrate the vast majority of smart playlists
21069         including relative date queries and between queries.
21071         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistCore.cs:
21072         Remove debug output.
21074         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
21075         Don't allow removing tracks, and change to revolve about Hyena.Data.Query
21076         query tree instead of a SQL condition string.
21078         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Don't allow
21079         overriding of Reload method, since it's really RateLimitedReload
21080         subclasses want to override.
21082         * src/Core/Hyena/Hyena.Data.Query/DateQueryValue.cs: Actually generate
21083         relative date queries, and expose relevant properties. 
21085         * src/Core/Hyena/Hyena.Data.Query/QueryField.cs: For StringQueryValue
21086         fields that don't have a custom format, automatically match both literally
21087         and against both the column and value lowercased.
21089         * src/Core/Hyena/Hyena.Data.Query/QueryNode.cs: Add option to print pretty
21090         XML (indented).
21092         * src/Core/Hyena/Hyena.Data.Query/QueryOperator.cs: Add a Dual property
21093         that flips < and > characters.
21095         * src/Core/Hyena/Hyena.Data.Query/XmlQueryParser.cs: Add static
21096         convenience method for parsing.
21098 2008-01-25  Aaron Bockover  <abock@gnome.org>
21100         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
21101         Patch from Alex Hixon to fix the segfault that would sometimes occur
21102         when changing tracks; happened when playing a track without cover art,
21103         then a track with cover art, then a track without
21105 2008-01-24  Gabriel Burt  <gabriel.burt@gmail.com>
21107         * src/Core/Banshee.Core/Makefile.am:
21108         * src/Core/Banshee.Core/Banshee.Base/RateLimiter.cs: New class that makes
21109         it easy to rate limit a given method.
21111         * src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs: Do
21112         the actual import on the main thread.
21114         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Rate limit
21115         the Reload method - ensuring no matter how often it's called, it won't
21116         actually be executed so much it degrades overall performance.
21118         * src/Core/Banshee.Services/Banshee.Sources/ISourceManager.cs:
21119         * src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs: Add setter
21120         for ActiveSource.
21122         * src/Core/Hyena/Hyena.Data.Sqlite/DatabaseColumn.cs: Use GetValue and
21123         SetValue methods of PropertyInfo objects instead of GetGetMethod etc.
21125         * src/Core/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs: For the Insert
21126         command, set the value of the primary key to null so Sqlite will set it
21127         appropriately
21129 2008-01-24  Gabriel Burt  <gabriel.burt@gmail.com>
21131         * HACKING: Add link to online version of "Framework Design Guidelines"
21133 2008-01-24  Aaron Bockover  <abockover@novell.com>
21135         * src/Core/Banshee.Services/Banshee.Metadata.Rhapsody/RhapsodyQueryJob.cs:
21136         Try to download the 500px and then fall back to the 170px; awesome hires
21137         from Rhapsody
21139         * src/Core/Banshee.Services/Banshee.Metadata/MetadataService.cs:
21140         Prefer the rhapsody provider over musicbrainz for fetching cover art
21141         now that we can get hires from rhapsody
21143         * src/Core/Banshee.Services/Banshee.Metadata.MusicBrainz/MusicBrainzQueryJob.cs:
21144         Print some debug stuff
21146 2008-01-24  Gabriel Burt  <gabriel.burt@gmail.com>
21148         Patch from Alexander Hixon <hixon.alexander@mediati.org>.
21150         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs:
21151         * src/Core/Banshee.Services/Banshee.Equalizer/EqualizerManager.cs:
21152         * src/Core/Banshee.Services/Banshee.Equalizer/EqualizerSetting.cs:
21153         * src/Core/Banshee.Services/Banshee.Equalizer/EqualizerSettingEvent.cs:
21154         * src/Core/Banshee.Services/Banshee.MediaEngine/IEqualizer.cs:
21155         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngine.cs:
21156         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
21157         * src/Core/Banshee.ThickClient/Banshee.Equalizer.Gui/EqualizerBandScale.cs:
21158         * src/Core/Banshee.ThickClient/Banshee.Equalizer.Gui/EqualizerLevelsBox.cs:
21159         * src/Core/Banshee.ThickClient/Banshee.Equalizer.Gui/EqualizerPresetComboBox.cs:
21160         * src/Core/Banshee.ThickClient/Banshee.Equalizer.Gui/EqualizerView.cs:
21161         * src/Core/Banshee.ThickClient/Banshee.Equalizer.Gui/EqualizerWindow.cs:
21162         * src/Core/Banshee.ThickClient/Banshee.Gui/ViewActions.cs: Conform to
21163         HACKING.
21165         * src/Core/Banshee.ThickClient/Resources/banshee-dialogs.glade: Make
21166         equalizer window a dialog not utility window, ensuring it comes to top.
21168 2008-01-24  Gabriel Burt  <gabriel.burt@gmail.com>
21170         * src/Core/Banshee.Core/Banshee.Base/Utilities.cs:
21171         * src/Core/Hyena/Hyena/Utilities.cs:
21172         * src/Core/Hyena/Hyena/Timer.cs: Move Timer and DateTimeUtils to Hyena.
21174         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
21175         Disambiguate which Timer to use.
21177         * src/Core/Hyena/Timer.cs: Remove, replaced by Hyena/Timer.cs.
21179         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryAlbumInfo.cs:
21180         Remove unnecessary assignment.
21182         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
21183         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs:
21184         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryArtistInfo.cs:
21185         Wrap IDataReader in using.
21187         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs:
21188         Add using Hyena for DateTimeUtils.
21190         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
21191         Pass field_set to BuildTree methods, and update QueryField constructors
21192         with new QueryValue setup.  Remove Date and FileSize modifier functions.
21194         * src/Core/Banshee.Services/Banshee.SmartPlaylist/Migrator.cs: Use new
21195         QueryValue class.
21197         * src/Core/Hyena/Hyena.Data.Query/QueryValue.cs:
21198         * src/Core/Hyena/Hyena.Data.Query/StringQueryValue.cs:
21199         * src/Core/Hyena/Hyena.Data.Query/IntegerQueryValue.cs:
21200         * src/Core/Hyena/Hyena.Data.Query/FileSizeQueryValue.cs:
21201         * src/Core/Hyena/Hyena.Data.Query/DateQueryValue.cs: New files/classes
21202         that provider parsers and generators for XML/user-query for different data
21203         types.  Replace QueryField Modifiers.
21205         * src/Core/Hyena/Hyena.Data.Query/QueryField.cs: Fields now have a
21206         ValueType associated with them, one of the four QueryValue subclasses
21207         above.  Turn fields into properties.
21209         * src/Core/Hyena/Hyena.Data.Query/QueryFieldSet.cs: Add this [] accessor.
21211         * src/Core/Hyena/Hyena.Data.Query/QueryListNode.cs: Avoid crashing when
21212         trimming a QueryNode tree that has only a childless NOT node.
21214         * src/Core/Hyena/Hyena.Data.Query/QueryTermNode.cs: Remove Operator class.
21215         Replace string Field and Value fields with QueryField and QueryValue
21216         properties.
21218         * src/Core/Hyena/Hyena.Data.Query/QueryOperator.cs: Split into its own
21219         file.  Was previously inside QueryTermNode.
21221         * src/Core/Hyena/Hyena.Data.Query/QueryParser.cs:
21222         * src/Core/Hyena/Hyena.Data.Query/XmlQueryParser.cs:
21223         * src/Core/Hyena/Hyena.Data.Query/UserQueryParser.cs: Require a
21224         QueryFieldSet for BuildTree method so we can user the relevant ValueType
21225         for each QueryField as we parse it.
21227         * src/Core/Hyena/Hyena.Data.Sqlite/HyenaSqliteConnection.cs: Add temporary
21228         debugging messages.
21230         * src/Core/Hyena/Makefile.am: Add new files, remove old Timer.cs.
21232 2008-01-24  Gabriel Burt  <gabriel.burt@gmail.com>
21234         * src/Core/Banshee.Core/Resources/contributors.xml: Credit for previous
21235         patch, accidentally not committed.
21237 2008-01-24  Gabriel Burt  <gabriel.burt@gmail.com>
21239         * src/Core/Banshee.ThickClient/Resources/banshee-dialogs.glade: Part of
21240         previous patch, forgot to commit.
21242 2008-01-24  Gabriel Burt  <gabriel.burt@gmail.com>
21244         Patch from Alexander Hixon <hixon.alexander@mediati.org>.
21246         * src/Core/Banshee.ThickClient/Banshee.Gui/ViewActions.cs:
21247         * src/Core/Banshee.ThickClient/Banshee.Equalizer.Gui/EqualizerView.cs:
21248         * src/Core/Banshee.ThickClient/Banshee.Equalizer.Gui/EqualizerPresetComboBox.cs:
21249         * src/Core/Banshee.ThickClient/Banshee.Equalizer.Gui/EqualizerBandScale.cs:
21250         * src/Core/Banshee.ThickClient/Banshee.Equalizer.Gui/EqualizerLevelsBox.cs:
21251         * src/Core/Banshee.ThickClient/Banshee.Equalizer.Gui/EqualizerWindow.cs:
21252         * src/Core/Banshee.ThickClient/Makefile.am:
21253         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml:
21254         * src/Core/Banshee.Services/Banshee.Equalizer/EqualizerManager.cs:
21255         * src/Core/Banshee.Services/Banshee.Equalizer/EqualizerSetting.cs:
21256         * src/Core/Banshee.Services/Banshee.Equalizer/EqualizerSettingEvent.cs:
21257         * src/Core/Banshee.Services/Banshee.Services.mdp:
21258         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngine.cs:
21259         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
21260         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineState.cs:
21261         * src/Core/Banshee.Services/Banshee.MediaEngine/IEqualizer.cs:
21262         * src/Core/Banshee.Services/Makefile.am:
21263         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs:
21264         * libbanshee/gst-playback-0.10.c: Added support for graphical equalizer.
21265           Fixes BGO #426562.
21266           
21267         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineState.cs:
21268         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs: Added
21269           new PlayerEngineState.Initalized state type; fired when engine has
21270           initialized itself. Required for the equalizer to enable the user's last
21271           preset just after the engine starts.
21273 2008-01-22  Gabriel Burt  <gabriel.burt@gmail.com>
21275         * src/Core/Banshee.Base/Banshee.Equalizer.Gui/*:
21276         * src/Core/Banshee.ThickClient/Banshee.Equalizer.Gui/*: Move.
21278         * src/Core/Banshee.Base/Banshee.Equalizer/*:
21279         * src/Core/Banshee.Services/Banshee.Equalizer/*: Move.
21281 2008-01-22  Gabriel Burt  <gabriel.burt@gmail.com>
21283         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Avoid NRE, thanks
21284         to Alex Hixon.
21286 2008-01-20  Ruben Vermeersch  <ruben@savanne.be>
21288         * ext/Makefile.MonoDevelop: Do it a bit nicer by using make's $(CURDIR).
21290 2008-01-20  Scott Peterson <lunchtimemama@gmail.com> 
21292         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryAlbumInfo.cs:
21293         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs:
21294         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryArtistInfo.cs:
21295         Got rid of DbId setter (not used).
21297 2008-01-20  Scott Peterson <lunchtimemama@gmail.com> 
21299         * src/Core/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs:
21300         * src/Core/Hyena/Hyena.Data.Sqlite/DatabaseColumn.cs:
21301         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryAlbumInfo.cs:
21302         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs:
21303         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryArtistInfo.cs:
21304         Consolidated save logic.
21306 2008-01-20  Scott Peterson <lunchtimemama@gmail.com> 
21308         * src/Core/Hyena/Hyena.Data.Sqlite/DatabaseColumn.cs:
21309         * src/Core/Hyena/Hyena.Data.Sqlite/DatabaseColumnAttribute.cs: Got rid of
21310         unnecessary private variables.
21312 2008-01-19  Scott Peterson  <lunchtimemama@gmail.com>
21314         * src/Core/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs: Cleaned up
21315         CheckVersion and CheckTable, beautified
21317         * src/Core/Hyena/Hyena.Data.Sqlite/DatabaseColumn.cs: Dealt with new
21318         type names and cleaned up.
21320         * src/Core/Hyena/Hyena.Data.Sqlite/HyenaSqliteConnection.cs: Reworked
21321         TableExitst and added new convenience methods IndexExitsts,
21322         GetSchema, and QueryString. Also added more overloads to QueryInt32
21324         * src/Core/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs: Made IndexOf to
21325         use QueryInt32.
21327         * src/Core/Hyena/Hyena.Data.Sqlite/DatabaseColumnAttribute.cs: Renamed
21328         DatabaseColumnBaseAttribute to AbstractDatabaseColumnAttribute and
21329         renamed DatabaseVirtualColumnAttribute to
21330         VirtualDatabaseColumnAttribute.
21332         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryAlbumInfo.cs,
21333         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs:
21334           Dealt with new type names
21336 2008-01-19  Ruben Vermeersch  <ruben@savanne.be>
21338         * ext/Makefile.MonoDevelop: Fix the MonoDevelop build on Ubuntu. Ubuntu
21339         uses dash instead of bash for the /bin/sh symlink. Dash however doesn't
21340         have pushd/popd.
21342 2008-01-19  Scott Peterson <lunchtimemama@gmail.com> 
21344         * src/Core/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs: Oops.
21346 2008-01-19  Scott Peterson <lunchtimemama@gmail.com> 
21348         * src/Core/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs: Now with even more
21349         awesome!
21351 2008-01-19  Scott Peterson <lunchtimemama@gmail.com> 
21353         * src/Core/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs: Improved IndexOf
21354         with first_order_id caching.
21356 2008-01-18  Scott Peterson <lunchtimemama@gmail.com> 
21358         * src/Core/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs: Minor fix for last
21359         commit.
21361 2008-01-18  Scott Peterson <lunchtimemama@gmail.com> 
21363         * src/Core/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs: Implimented
21364         IndexOf() using SQL MAGIC!
21366         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryAlbumInfo.cs:
21367         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs:
21368         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryArtistInfo.cs:
21369         Removed now superfluous DbIndex
21371         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
21372         Rejiggered IndexOf
21374         * src/Core/Banshee.Services/Banshee.Database/BansheeModelProvider.cs: Got
21375         rid of now superfluous IDatabaseItem type
21377         * src/Core/Banshee.Services/Banshee.Database/BansheeModelCache.cs:
21378         Rejiggered generic constraints
21380 2008-01-18  Scott Peterson <lunchtimemama@gmail.com> 
21382         * src/Core/Banshee.Services/Banshee.MediaEngine/PlaybackControllerService.cs:
21383         Makes sure playback doesn't barf when there is no next track to play.
21385 2008-01-18  Scott Peterson <lunchtimemama@gmail.com> 
21387         * src/Core/Hyena/Hyena.Data.Sqlite/DatabaseAttributes.cs:
21388         * src/Core/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs:
21389         * src/Core/Hyena/Hyena.Data.Sqlite/DatabaseColumnAttribute.cs:
21390         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryAlbumInfo.cs:
21391         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs:
21392         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryArtistInfo.cs:
21393         * src/Core/Banshee.Services/Banshee.Database/BansheeModelProvider.cs: Got
21394         rid of DatabaseTableAttribute
21396 2008-01-18  Gabriel Burt  <gabriel.burt@gmail.com>
21398         * src/Core/Hyena/Makefile.am:
21399         * src/Core/Hyena/Hyena.Data.Sqlite/SqilteModelCache.cs:
21400         * src/Core/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs: Fix typo.
21402 2008-01-18  Scott Peterson <lunchtimemama@gmail.com> 
21404         * src/Core/Hyena/Hyena.Data.Sqlite/ModelProvider.cs:
21405         * src/Core/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs:
21406         * src/Core/Banshee.Services/Banshee.Database/BansheeModelProvider.cs:
21407         Renamed ModelProvider to SqliteModelProvider
21409         * src/Core/Hyena/Hyena.Data.Sqlite/ModelCache.cs:
21410         * src/Core/Hyena/Hyena.Data.Sqlite/SqilteModelCache.cs:
21411         * src/Core/Banshee.Services/Banshee.Database/BansheeModelCache.cs: Renamed
21412         ModelCache to SqliteModelCache
21414 2008-01-18  Gabriel Burt  <gabriel.burt@gmail.com>
21416         * data/banshee.desktop.in.in: Merge x-content/* support from stable.
21418 2008-01-17  Scott Peterson <lunchtimemama@gmail.com> 
21420         * src/Core/Hyena/Hyena.Data.Sqlite/ModelProvider.cs: Renamed from
21421         DatabaseModel for consistancy and rejiggered
21423         * src/Core/Hyena/Hyena.Data.Sqlite/DatabaseAttributes.cs: Added
21424         DatabaseTableAttribute
21426         * src/Core/Hyena/Hyena.Data.Sqlite/ModelCache.cs: Renamed from
21427         DatabaseModelCache for consistancy and rijiggered
21429         * src/Core/Hyena/Hyena.Data.Sqlite/DatabaseModel.cs: Renamed
21430         ModelProvider.cs
21432         * src/Core/Hyena/Hyena.Data.Sqlite/DatabaseColumnAttribute.cs: Renamed to
21433         DatabaseAttributes.cs
21435         * src/Core/Hyena/Hyena.Data.Sqlite/ICacheableDatabaseModel.cs: Removed
21436         subsumed and obsolete members
21438         * src/Core/Hyena/Hyena.Data.Sqlite/DatabaseModelCache.cs: Renamed
21439         ModelCache.cs
21441         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryAlbumInfo.cs:
21442         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs:
21443         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryArtistInfo.cs:
21444         Made to use new DatabaseTable attribute
21446         * src/Core/Banshee.Services/Banshee.Collection.Database/AlbumListDatabaseModel.cs:
21447         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
21448         * src/Core/Banshee.Services/Banshee.Collection.Database/ArtistListDatabaseModel.cs:
21449         Removal of subsumed and obsolete members
21451         * src/Core/Banshee.Services/Banshee.Database/BansheeDatabaseModel.cs:
21452         Renamed to BansheeModelProvider.cs
21454         * src/Core/Banshee.Services/Banshee.Database/BansheeDatabaseModelCache.cs:
21455         Renamed to BansheeModelCache.cs
21457         * src/Core/Banshee.Services/Banshee.Database/BansheeModelProvider.cs:
21458         Whitespace fixes and TableName/ModelVersion removal
21460         * src/Core/Banshee.Services/Banshee.Database/BansheeModelCache.cs: Generics
21461         changes
21463 2008-01-17  Gabriel Burt  <gabriel.burt@gmail.com>
21465         * src/Core/Hyena/Hyena.Data.Query/QueryFieldSet.cs: New file, forgot to commit.
21467 2008-01-17  Gabriel Burt  <gabriel.burt@gmail.com>
21469         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
21470         Add English aliases to all QueryFields in addition to the translated ones,
21471         so English aliases will always be available.  Change the mimetype field to
21472         match on both MimeType and Uri columns.
21474         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs: Add
21475         SmartPlaylistCore service.
21477         * src/Core/Banshee.Services/Banshee.SmartPlaylist/Migrator.cs: Move old
21478         smart playlist operator code here for migration purposes.  Migration now
21479         works for all conditions except time-based ones (LastPlayed/DateAdded),
21480         but the migrated result is only saved during each session until the
21481         migrator is finalized.
21483         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Explicitly
21484         pass the operator to use for 'match similar' actions.
21486         * src/Core/Banshee.ThickClient/Banshee.SmartPlaylist.Gui/QueryBuilder.cs:
21487         Move much old code that will be replaced with Hyena.Data.Query code.  Move
21488         code needed to migrate from old format to new format into Migrator.
21490         * src/Core/Hyena/Hyena.Data.Query/QueryField.cs: Add a translated label to
21491         Field, split FieldSet off into it's own file.
21493         * src/Core/Hyena/Hyena.Data.Query/QueryListNode.cs:
21494         * src/Core/Hyena/Hyena.Data.Query/QueryNode.cs: Change ToXml method to
21495         take a QueryFieldSet.  Change ToString to output the user query.
21497         * src/Core/Hyena/Hyena.Data.Query/QueryTermNode.cs: Fix whitespace, change
21498         Sql appends to use Field's FormatSql method allowing for a field to map to
21499         multiple database columns.
21501         * src/Core/Hyena/Makefile.am: Add QueryFieldSet.
21503 2008-01-17  Gabriel Burt  <gabriel.burt@gmail.com>
21505         * src/Core/Hyena/Hyena.Data.Sqlite/CacheableDatabaseModel.cs: Remove.
21507         * src/Core/Hyena/Hyena.Data.Sqlite/DatabaseModelCache.cs: Time FetchSet.
21509 2008-01-17  Scott Peterson <lunchtimemama@gmail.com> 
21511         * src/Core/Hyena/Hyena.Data.Sqlite/DatabaseModel.cs: Added new Load
21512           overload, uncommendted some methods
21514         * src/Core/Hyena/Hyena.Data.Sqlite/ICacheableDatabaseModel.cs,
21515           src/Core/Hyena/Hyena.Data.Sqlite/DatabaseModelCache.cs,
21516           src/Core/Banshee.Services/Banshee.Collection.Database/AlbumListDatabaseModel.cs,
21517           src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs,
21518           src/Core/Banshee.Services/Banshee.Collection.Database/ArtistListDatabaseModel.cs:
21519           Changed GetItemFromReader to Load
21521         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryAlbumInfo.cs,
21522           src/Core/Banshee.Services/Banshee.Collection.Database/LibraryArtistInfo.cs:
21523           Inherited from IDatabaseItem and added DbIndex { set; }
21525         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs:
21526           Inherited from IDatabaseItem and made DbIndex { set; } public
21528         * src/Core/Banshee.Services/Banshee.Database/BansheeDatabaseModel.cs:
21529           Implemented MakeNewObject
21531 2008-01-17  Scott Peterson <lunchtimemama@gmail.com> 
21533         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs: Eliminated
21534           an unnecessary comparison.
21536         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs:
21537           Fixed whitespace.
21539 2008-01-17  Scott Peterson <lunchtimemama@gmail.com> 
21541         * src/Core/Hyena/Hyena.Data/ModelCache.cs,
21542           src/Core/Hyena/Hyena.Data.Sqlite/DatabaseModelCache.cs: These changes
21543           are already obsolete by Gabriel's work.
21545         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs:
21546           Fix for correctly translating Uris from the db.
21548         * src/Core/Banshee.Services/Banshee.Database/BansheeDatabaseModelCache.cs:
21549           Made constant strings even more constant.
21551 2008-01-16  Gabriel Burt  <gabriel.burt@gmail.com>
21553         * src/Core/Banshee.Services/Banshee.Collection.Database/BansheeCacheableModelAdapter.cs:
21554         Removed.
21556         * src/Core/Banshee.Services/Banshee.Collection.Database/BansheeDatabaseModelCache.cs:
21557         * src/Core/Banshee.Services/Banshee.Database/BansheeDatabaseModelCache.cs:
21558         Move from Banshee.Collection.Database to Banshee.Database.
21560         * src/Core/Banshee.Services/Banshee.Collection.Database/BansheeModelProvider.cs:
21561         * src/Core/Banshee.Services/Banshee.Database/BansheeDatabaseModel.cs:
21562         Renamed, moved.
21564         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryArtistInfo.cs:
21565         Remove unused methods.
21567         * src/Core/Banshee.Services/Makefile.am:
21568         * src/Core/Banshee.Services/Banshee.Database/TableSchema.cs: Remove.
21570         * src/Core/Hyena/Makefile.am:
21571         * src/Core/Hyena/Hyena.Data.Sqlite/IDatabaseModel.cs: Rename to
21572         ICacheableDatabaseModel.
21574 2008-01-16  Gabriel Burt  <gabriel.burt@gmail.com>
21576         * src/Core/Banshee.Services/Banshee.Collection.Database/AlbumListDatabaseModel.cs:
21577         * src/Core/Banshee.Services/Banshee.Collection.Database/ArtistListDatabaseModel.cs:
21578         Use new provider and cache classes.
21580         * src/Core/Banshee.Services/Banshee.Collection.Database/BansheeDatabaseModelCache.cs:
21581         Override DatabaseModelCache to set Banshee-specific table names.
21583         * src/Core/Banshee.Services/Banshee.Collection.Database/BansheeModelProvider.cs:
21584         Make not abstract, add ctor that takes table name.  Remove cache old
21585         properties.
21587         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryAlbumInfo.cs:
21588         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryArtistInfo.cs:
21589         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs:
21590         Intantiate a static BansheeModelProvider for each class, and make it
21591         available via a public static property.  Use it for insert/update.  Bind
21592         columns for Artist/Album.
21594         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
21595         Get rid of internal Provider class, instead use new provider/cache
21596         classes.
21598         * src/Core/Banshee.Services/Makefile.am: Add BansheeDatabaseModelCache,
21599         remove IDatabaseModel and BansheeCacheableModelAdapter.
21601         * src/Core/Hyena/Hyena.Data.Sqlite/CacheableDatabaseModel.cs: Inherit from
21602         DatabaseModel<T> and implement ICacheableDatabaseModel<T>.  Move database
21603         cache methods into DatabaseModelCache class.
21605         * src/Core/Hyena/Hyena.Data.Sqlite/DatabaseModel.cs: Comment out Fetch*
21606         methods for now.
21608         * src/Core/Hyena/Hyena.Data.Sqlite/DatabaseModelCache.cs: New file,
21609         very similar to old BansheeCacheableModelAdapter with updates from
21610         CacheableDatabaseModel.
21612         * src/Core/Hyena/Hyena.Data.Sqlite/HyenaSqliteConnection.cs: Add
21613         TableExists method.  Wrap database queries in try/catch since otherwise
21614         you get neither the full failed query or useful stack trace.
21616         * src/Core/Banshee.Services/Banshee.Collection.Database/IDatabaseModel.cs:
21617         * src/Core/Hyena/Hyena.Data.Sqlite/IDatabaseModel.cs: Move to Hyena,
21618         rename class to ICachableDatabaseModel (will mv file in next commit).
21620         * src/Core/Hyena/Hyena.Data/CacheableModelAdapter.cs:
21621         * src/Core/Hyena/Hyena.Data/ModelCache.cs: Rename ModelCache.
21623         * src/Core/Hyena/Makefile.am: Renames, new IDatabaseModel file.
21625 2008-01-15  Scott Peterson <lunchtimemama@gmail.com> 
21627         * src/Core/Banshee.Services/Banshee.Collection.Database/BansheeModelProvider.cs:
21628           Temporarily disabled Persistant caches until we can fix a bug.
21630 2008-01-15  Scott Peterson  <lunchitmemama@gmail.com>
21631         * HACKING: Space before parens.
21633 2008-01-15  Gabriel Burt  <gabriel.burt@gmail.com>
21635         * src/Core/Hyena/Hyena.Data.Sqlite/CacheableDatabaseModel.cs:
21636         * src/Core/Hyena/Hyena.Data.Sqlite/CacheableDatabaseModelProvider.cs:
21637         Rename, whitespace.
21639         * src/Core/Hyena/Hyena.Data.Sqlite/DatabaseModel.cs:
21640         * src/Core/Hyena/Hyena.Data.Sqlite/DatabaseModelProvider.cs:
21641         Rename and split inner classes into their own files.
21643         * src/Core/Hyena/Hyena.Data.Sqlite/DatabaseColumn.cs:
21644         * src/Core/Hyena/Hyena.Data.Sqlite/DatabaseColumnAttribute.cs: 
21645         * src/Core/Hyena/Makefile.am: New files containing classes split from
21646         DatabaseModelProvider.  Rename DatabaseBindingFlags to
21647         DatabaseColumnConstraints.
21649         * src/Core/Banshee.Services/Banshee.Collection.Database/BansheeModelProvider.cs:
21650         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs:
21651         Use new class names.
21653         * src/Core/Hyena/Hyena.Data.Sqlite/HyenaSqliteCommand.cs:
21654         * src/Core/Hyena/Hyena.Data.Sqlite/HyenaSqliteConnection.cs: Whitespace.
21656 2008-01-15  Gabriel Burt  <gabriel.burt@gmail.com>
21658         * src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs:
21659         * src/Core/Hyena/Hyena.Data.Sqlite/CacheableDatabaseModelProvider.cs:
21660         * src/Core/Hyena/Hyena.Data.Sqlite/DatabaseModelProvider.cs:
21661         * src/Core/Hyena/Hyena.Data.Sqlite/HyenaDbConnection.cs:
21662         * src/Core/Hyena/Hyena.Data.Sqlite/HyenaSqliteCommand.cs:
21663         * src/Core/Hyena/Hyena.Data.Sqlite/HyenaSqliteConnection.cs:
21664         * src/Core/Hyena/Makefile.am: Rename HyenaDbConnection/Command to
21665         HyenaSqliteConnection/Command and split HyenaDbCommand into its own file.
21667 2008-01-15  Gabriel Burt  <gabriel.burt@gmail.com>
21669         * src/Core/Hyena/Hyena.Data.Sqlite/CacheableDatabaseModelProvider.cs:
21670         * src/Core/Hyena/Hyena.Data.Sqlite/DatabaseModelProvider.cs:
21671         * src/Core/Hyena/Hyena.Data.Sqlite/HyenaDbConnection.cs:
21672         * src/Core/Hyena/Makefile.am: Create new namespace Hyena.Data.Sqlite for
21673         database/sqlite specific classes moved from Hyena.Data.
21675         * src/Core/Banshee.Services/Banshee.Collection.Database/BansheeModelProvider.cs:
21676         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs:
21677         * src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs: Add
21678         using Hyena.Data.Sqlite;
21680 2008-01-15  Scott Peterson <lunchtimemama@gmail.com> 
21682         * src/Core/Hyena/Hyena.Data/HyenaDbConnection.cs: An abstraction of
21683           BansheeDbConnection/COmmand
21684         * src/Core/Hyena/Hyena.Data/DatabaseModelProvider.cs: Added.
21685         * src/Core/Hyena/Hyena.Data/CacheableDatabaseModelProvider.cs: Added. This
21686           class functionally inherits from both CacheableModelAdapter and
21687           DatabaseModelProvider.
21688         * src/Core/Hyena/Hyena.Data/CacheableModelAdapter.cs: Added Add() method.
21689         * src/Core/Banshee.Services/Banshee.Collection.Database/BansheeModelProvider.cs:
21690           Added. This will replace BansheeCacheableModelAdapter.
21691         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs:
21692           Modified to use new model provider system.
21693         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
21694           Added Provider inner class which inherits from BansheeModelProvider.
21695           Made to use that inner class.
21696         * src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs:
21697           Abstracted into Hyena.
21698         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Made MimeType and
21699           FileSize virtual.
21700         * build/build.environment.mk: Added sql-related dependancies to Hyena's
21701           references.
21703 2008-01-11  Aaron Bockover  <abockover@novell.com>
21705         * src/Core/Banshee.Core/Banshee.Base/Paths.cs: Added 
21706         MakePathRelativeToLibrary to extract the relative path from a URI for
21707         storing into the DB
21709         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Added FileSize
21710         and DiscNumber properties
21712         * src/Core/Banshee.Core/Banshee.IO/Interfaces.cs: 
21713         * src/Core/Banshee.Core/Banshee.IO/SystemIO.cs:
21714         * src/Core/Banshee.Core/Banshee.IO/Unix.cs:
21715         * src/Core/Banshee.Core/Banshee.IO/GnomeVfs.cs: Added File.GetSize
21717         * src/Core/Banshee.Core/Banshee.Streaming/StreamTagger.cs: Use
21718         Banshee.IO.IOProxy.File.GetSize to set TrackInfo.FileSize
21720         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs:
21721         Perform two path checks (relative and absolute) in ContainsUri; support
21722         FileSize and DiscNumber properties
21724         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
21725         Added FileSize and DiscNumber columns to CoreTracks
21727         * src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs:
21728         Some minor update
21730         * src/Core/Hyena/Hyena.Data.Query/QueryField.cs: Added term modifier 
21731         support for handling special strings like '50MB' or 'yesterday'
21733         * src/Core/Hyena/Hyena.Data.Query/QueryTermNode.cs: Fix EmitNumericMatch
21734         and EmitStringMatch to use the new QueryField.Modifier support; fix
21735         parsing in EmitNumericMatch to support 64 bit integers which are useful
21736         for times and file sizes
21738         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
21739         Implemented FileSizeModifier and DateTimeModifier methods to support
21740         nice file size and date/time string formats like '40MB'; added three
21741         new fields (FileSize, DateAddedStamp, LastPlayedStamp)
21743         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistFileUtil.cs:
21744         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
21745         Change references from CoreTracks.RelativeUri to CoreTracks.Uri
21747 2008-01-11  Gabriel Burt  <gabriel.burt@gmail.com>
21749         * src/Core/Banshee.Services/Banshee.Collection.Database/BansheeCacheableModelAdapter.cs:
21750         Temporarily disable persistent caching.  We should probably cache the
21751         unfiltered membership of a model and the filtered separately.
21753 2008-01-10  Aaron Bockover  <abockover@novell.com>
21755         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
21756         Show/Hide the cover art popup only when the cursor enters the actual 
21757         cover art thumbnail, not the entire widget
21759 2008-01-10  Aaron Bockover  <abockover@novell.com>
21761         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtworkManager.cs:
21762         Do some exception handling for crappy invalid pixbufs
21764         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
21765         Handle TrackInfoUpdated events from the player engine and only start
21766         the transition when we are already not in one; cover art is now downloaded
21767         properly and shown in the track header when the song plays
21769 2008-01-10  Gabriel Burt  <gabriel.burt@gmail.com>
21771         * src/Core/Hyena/Hyena.Data.Query/QueryNode.cs: Add ToUserQuery method to
21772         rebuild what a user would type in the search bar from the object tree.
21773         Add AppendXml and AppendUserQuery abstract methods.
21775         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
21776         For testing purposes, when a user searches, parse the query into the
21777         QueryNode tree, generate XML from that, and then parse the XML.
21779         * src/Core/Hyena/Hyena.Data.Query/QueryListNode.cs: Implement
21780         AppendUserQuery.
21782         * src/Core/Hyena/Hyena.Data.Query/QueryTermNode.cs: Add Operator class and
21783         implement AppendUserQuery and AppendXml.  Generate XESAM-like XML (with
21784         the goal of being compliant).
21786         * src/Core/Hyena/Hyena.Data.Query/QueryParser.cs:
21787         * src/Core/Hyena/Hyena.Data.Query/UserQueryParser.cs: Update copyright.
21789         * src/Core/Hyena/Makefile.am:
21790         * src/Core/Hyena/Hyena.Data.Query/XmlQueryParser.cs: New file for parsing
21791         XML queries into QueryNode trees.
21793 2008-01-10  Aaron Bockover  <abock@gnome.org>
21795         * src/Core/Banshee.Services/Banshee.Streaming/RadioTrackInfo.cs:
21796         Set CanPlay attribute
21798         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
21799         Enable all the metadata service glory again now that the services are
21800         actually ported over. Awesome.
21802 2008-01-10  Aaron Bockover  <abock@gnome.org>
21804         * src/Core/Banshee.Core/Banshee.Base/CoverArtSpec.cs: A small API that
21805         provides a layer of query/ID generation methods for the local disk cover
21806         art cache
21808         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtworkManager.cs:
21809         Updated to use the new CoverArtSpec APIs
21811         * src/Core/Banshee.Services/Banshee.Metadata:
21812         * src/Core/Banshee.Services/Banshee.Metadata.MusicBrainz:
21813         * src/Core/Banshee.Services/Banshee.Metadata.Embedded:
21814         * src/Core/Banshee.Services/Banshee.Metadata.Rhapsody: Ported the 
21815         Metadata Services Stack from stable; updated to run in the services layer
21816         so no Gdk/GUI libraries are required; use new CoverArtSpec APIs
21818         * src/Core/Banshee.Services/Banshee.Networking: Ported the networking
21819         layer from stable
21821 2008-01-05  Aaron Bockover  <abock@gnome.org>
21823         Merge of Scott Peterson's XML configuration client backend to enable
21824         configuration saving on Windows (or any place where GConf is fugly)
21826         * src/Core/Banshee.Core/Banshee.Configuration/XmlConfigurationClient.cs:
21827         The actual XML backend
21829         * src/Core/Banshee.Core/Banshee.Configuration/ConfigurationClient.cs:
21830         Now selects the appropriate configuration backed for the system (GConf 
21831         for Unix, Xml for others)
21833 2008-01-04  Gabriel Burt  <gabriel.burt@gmail.com>
21835         This commit makes big strides in porting smart playlists and playlist
21836         import/export.  Neither are yet really functional (though smart playlists
21837         appear in the sources list).
21839         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistFileUtil.cs:
21840         * src/Core/Banshee.Base/Banshee.Playlists/PlaylistFileUtil.cs: Move, update
21841         whitespace, start porting (replace verification w/ sqlite on conflict
21842         ignore), greatly simplify. 
21844         * src/Core/Banshee.Services/Banshee.Collection.Database/BansheeCacheableModelAdapter.cs:
21845         Take uuid argument in the constructor to be able to persist the cache
21846         across Banshee sessions.  This will mean faster startup because all
21847         sources will not have to be reloaded on startup.
21849         * src/Core/Banshee.Services/Banshee.Collection.Database/AlbumListDatabaseModel.cs:
21850         * src/Core/Banshee.Services/Banshee.Collection.Database/ArtistListDatabaseModel.cs:
21851         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
21852         Uuid ctor changes.  On first reload, if cache is already warm (from
21853         previous session), use it instead of regenerating it.  Make
21854         TrackListDatabaseModel's GetSort method public for use by smart playlists.
21856         * src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs: Put
21857         migration code into separate method.  Remove listeners after complete.
21859         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
21860         Add on conflict ignore clause to TrackID in CorePlaylistEntries.  Add
21861         OrderDir column to CoreSmartPlaylists.  Create CoreCacheModels table, the
21862         basis for persistent cache.  Migrate smart playlists.
21864         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: 
21865         * src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs: Add uuid in
21866         ctor.
21868         * src/Core/Banshee.Services/Banshee.Playlist/AbstractPlaylistSource.cs:
21869         Replace static properties with abstract instance properties; static
21870         properties from various subclasses conflict; whoops.
21872         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs: Override
21873         AbstractPlaylist properties.
21875         * src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs: Do not
21876         load smart playlists here, let the SmartPlaylistCore do that.
21878         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs: Add
21879         SmartPlaylistCore service.  Currently commented out.
21881         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
21882         Start porting, ripping out old code that depended on having references to
21883         every TrackInfo in the library.  Currently does not reload when tracks
21884         change whatsoever.
21886         * src/Core/Banshee.Services/Banshee.Web/Browser.cs: Add commented out
21887         gnome open call.
21889         * src/Core/Banshee.Services/Makefile.am: Add ported files.
21891         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs: Add commented
21892         out Editor calls for OnNewSmartPlaylist handler.
21894         * src/Core/Banshee.Base/Banshee.SmartPlaylist/Editor.cs:
21895         * src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:
21896         * src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:
21897         * src/Core/Banshee.ThickClient/Banshee.SmartPlaylist.Gui/Editor.cs: Move
21898         files.
21900         * src/Core/Banshee.Services/Banshee.SmartPlaylist/Migrator.cs: New file
21901         for migrating from the old, very hard to change smart playlist definition
21902         format to the new one.  Does not yet actually migrate the condition.
21904         * src/Core/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistCore.cs:
21905         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistCore.cs:
21906         Move and start the many changes needed to get smart playlists working.
21907         For example, remove all Gtk references, call the Migrator code, and don't
21908         listen to every single TrackInfo in the library.
21910         * src/Core/Hyena/Hyena.Data.Query/QueryTermNode.cs: Set default op to ":".
21912         * src/Core/Hyena/Hyena.Data.Query/UserQueryParser.cs: Support commas for
21913         specifying OR terms, eg foo, bar is equivalent to foo OR bar.
21915         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellDateTime.cs:
21916         Avoid crashing when bound object is null.
21918         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
21919         Use capitalized sort parameters.
21921         * src/Core/Banshee.ThickClient/Banshee.Gui/BansheeActionGroup.cs: Add
21922         property for easy access to the main Window.
21924         * src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs: Add first
21925         pass at porting/implementing OnImportPlaylist handler.
21926         
21927 2008-01-04  Gabriel Burt  <gabriel.burt@gmail.com>
21929         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/CompositeTrackListView.cs:
21930         Lower case prepositions fewer than four letters long in menu items.
21932 2008-01-04  Gabriel Burt  <gabriel.burt@gmail.com>
21934         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
21935         Tweak debug output.
21937         * src/Core/Hyena/Hyena.Data.Query/QueryTermNode.cs: Add support for other
21938         operators (= == > < >= <=).  Implement = or == on a text field as 'starts
21939         with'.
21941         * src/Core/Hyena/Hyena.Data.Query/UserQueryParser.cs: Add support for |
21942         and || for OR, and fix a bug with sub clauses.
21944 2008-01-04  Gabriel Burt  <gabriel.burt@gmail.com>
21946         * src/Core/Hyena/Hyena.Data.Query/QueryKeywordNode.cs: Remove, put
21947         functionality in QueryListNode.
21949         * src/Core/Hyena/Hyena.Data.Query/QueryNode.cs: Add ToSql and ToXml
21950         methods, and AppendSql, AppendXml, and Trim abstract methods.
21952         * src/Core/Hyena/Hyena.Data.Query/QueryListNode.cs:
21953         * src/Core/Hyena/Hyena.Data.Query/QueryTermNode.cs: Implement AppendSql
21954         and AppendXml methods.  Change QueryListNode to have a keyword - an operator,
21955         eg and/or/not - associated with it.
21957         * src/Core/Hyena/Hyena.Data.Query/QueryParser.cs: Make an abstract class,
21958         moving user entered search logic into UserQueryParser.  The idea is to have
21959         an XmlQueryParser too, for use with smart playlists.
21961         * src/Core/Hyena/Hyena.Data.Query/SqlQueryGenerator.cs: Remove, this
21962         functionality is available via QueryNode.ToXml.
21964         * src/Core/Hyena/Hyena.Data.Query/UserQueryParser.cs: New subclass of
21965         QueryParser for parsing user-entered searches.  Change the parser to
21966         generate a tree of And/Or clauses, instead a tree of lists that contain
21967         them and QueryTermNodes inline.  With some post-construction trimming,
21968         this ensures that the generated tree is a valid boolean function (and
21969         means all the validation code in SqlQueryGenerator is not needed to
21970         produce valid SQL anymore).
21972         * src/Core/Hyena/Makefile.am: Add new files, remove old ones.
21974         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
21975         Use ToSql instead of the SqlQueryGenerator.
21977 2007-12-27  Gabriel Burt  <gabriel.burt@gmail.com>
21979         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
21980         Actually commit it; grr svn.
21982 2007-12-27  Gabriel Burt  <gabriel.burt@gmail.com>
21984         * src/Core/Banshee.Services/Banshee.Playlist/AbstractPlaylistSource.cs:
21985         Add a source primary key property.
21987         * src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs: Load
21988         smart playlists.
21990         * src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
21991         * src/Core/Banshee.Services/Makefile.am: New file, skeleton implementation
21992         of the old smart playlist functionality.
21994         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml:
21995         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs: Add New Smart
21996         Playlist action.
21998 2007-12-26  Gabriel Burt  <gabriel.burt@gmail.com>
22000         * src/Core/Banshee.Services/Makefile.am:
22001         * src/Core/Banshee.Services/Banshee.Playlist/AbstractPlaylistSource.cs:
22002         New abstract class for playlists (static and smart).
22004         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs: Subclass
22005         from AbstractPlaylistSource; implement Create/Update methods.
22007         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs:
22008         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Call Save
22009         after creating new PlaylistSources.  Use new AddSelectedTracks method.
22011 2007-12-24  Gabriel Burt  <gabriel.burt@gmail.com>
22013         * src/Core/Banshee.Services/Banshee.Collection/TrackListModel.cs: Add
22014         ArtistField and AlbumField properties that are used for By Matching
22015         Artist/Album actions.
22017         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
22018         Implement ArtistField/AlbumField properties.
22020         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs:
22021         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Make FilterQuery
22022         virtual, and override it to refilter/reload the track model.
22024         * src/Core/Banshee.ThickClient/Banshee.Gui/BansheeActionGroup.cs: Add
22025         UpdateActions methods for setting visibility/sensitivity of several
22026         actions at once.
22028         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml:
22029         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Add/handle Search
22030         for Songs menu and By Matching Artist/Album items.
22032         * src/Core/Hyena/Makefile.am:
22033         * src/Core/Hyena/Hyena.Data.Query/QueryField.cs: New file for QueryField
22034         and QueryFieldSet classes.
22036         * src/Core/Hyena/Hyena.Data.Query/SqlQueryGenerator.cs: Move
22037         Field/FieldSet out of this file.  Fix quote escaping.
22039         * src/Core/Hyena/Hyena.Data/PropertyStore.cs: Avoid raising Changed event
22040         if setting to the current value.
22042         * src/Core/Nereid/Nereid/PlayerInterface.cs: Listen for programmatic
22043         searches (eg By Matching Artist) to update the SearchEntry.
22045 2007-12-20  Gabriel Burt  <gabriel.burt@gmail.com>
22047         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
22048         Add rating, plays, skips, path, and type as search fields.  Add translated
22049         name, and translate field aliases.
22051         * src/Core/Hyena/Hyena.Data.Query/SqlQueryGenerator.cs: Add a name field
22052         to the Field class.
22054 2007-12-20  Gabriel Burt  <gabriel.burt@gmail.com>
22056         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
22057         Use Hyena.Data.Query to generate SQL from the user's query.  Allows
22058         searches such as "by:foo year:2006".
22060         * src/Core/Hyena/Hyena.Data.Query/QueryListNode.cs: Fix off by one bug.
22062         * src/Core/Hyena/Hyena.Data.Query/QueryParser.cs: Fix parsing bugs.
22064         * src/Core/Hyena/Hyena.Data.Query/QueryToken.cs: Add And token type.
22066         * src/Core/Hyena/Hyena.Data.Query/SqlQueryGenerator.cs: Add Field and
22067         FieldSet classes that define whether a field is Textual or Numeric, and
22068         generates a mapping of aliases to Fields.  Fix the SQL generator to work
22069         in most cases.
22071 2007-12-20  Gabriel Burt  <gabriel.burt@gmail.com>
22073         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
22074         Fall back to sorting by file path if needed.  Change sort by Title to sort
22075         first by title, then artist, then album instead of first by artist.
22077 2007-12-20  Sebastian Dröge  <slomo@circular-chaos.org>
22079         * docs/Makefile.am: Don't prepend $(DESTDIR) to monodocdir. This is
22080           already done be automake.
22082 2007-12-19  Gabriel Burt  <gabriel.burt@gmail.com>
22084         * data/icon-theme-hicolor/Makefile:
22085         * data/icon-theme-hicolor/Makefile.in: Remove from svn.
22087         * src/Core/Banshee.Core/Banshee.Streaming/StreamTagger.cs: Set TrackInfo.Uri
22089         * src/Core/Banshee.Services/Banshee.Collection.Database/AlbumListDatabaseModel.cs:
22090         Sort by AlbumTitle, ArtistName, not just AlbumTitle.
22092         * src/Core/Banshee.Services/Banshee.Collection.Database/BansheeCacheableModelAdapter.cs:
22093         Make count_command a static BansheeDbCommand so it's not parsed every time.
22095         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryAlbumInfo.cs:
22096         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryArtistInfo.cs:
22097         Add constructor that will return the existing album/artist of the given
22098         name or create a new one.  Add Save method that inserts/updates.
22100         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs:
22101         Add static method for determining if a Uri is already in the Library.
22102         Save the ArtistId/AlbumID when inserting/updating.
22104         * src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs:
22105         Return this from ApplyValues to allow chaining.
22107         * src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs: Don't
22108         import files that are already imported.  Set the DateAdded.
22109         Find/create/associate artist and album.
22111         * src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs: Add
22112         implementations to remove and delete tracks.
22114         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs: Fix bug
22115         where removing tracks would remove them from all playlists.  Add label
22116         overrides for Remove/Unmap actions.  Override remove/delete track methods.
22118         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Add virtual
22119         implementations for Remove/Delete methods, and a helper/delegate for
22120         iterating over a track selection's ranges (used to efficiently remove
22121         tracks, for example). 
22123         * src/Core/Banshee.Services/Banshee.Sources/ITrackModelSource.cs: Add
22124         methods/properties for removing/deleting tracks.
22126         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Add HasProperties
22127         property.
22129         * src/Core/Banshee.ThickClient/Banshee.Gui/BansheeActionGroup.cs
22130         * src/Core/Banshee.ThickClient/Makefile.am: New base class providing some
22131         helper methods.
22133         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs: Use
22134         BansheeActionGroup helpers.
22136         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs:
22137         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml: Add
22138         RemoveTracksFromLibraryAction and DeleteTracksFromDriveAction.  If
22139         mutliple files are selected, don't preset the rating (so we don't have to
22140         scan all files).  Add ConfirmRemove method for confirmation dialogs.
22142 2007-12-19  Sebastian Dröge  <slomo@circular-chaos.org>
22144         * src/Core/Banshee.Base/NetworkManager/Manager.cs: Work around
22145         ndesk-dbus bug that might cause type name clashes by renaming IManager
22146         to INetworkManager.This fixes network detection (BGO: #504012).
22148 2007-12-18  Gabriel Burt  <gabriel.burt@gmail.com>
22150         * src/Core/Banshee.Services/Banshee.Sources/ErrorSource.cs: Fix binding
22151         bug.
22153 2007-12-17  Gabriel Burt  <gabriel.burt@gmail.com>
22155         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellDateTime.cs:
22156         * src/Core/Banshee.ThickClient/Makefile.am: New cell renderer for DateTime
22157         objects that returns String.Empty if the DateTime is DateTime.MIN_VALUE.
22159         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
22160         Use ColumnCellDateTime for date added/last played.
22162 2007-12-17  Gabriel Burt  <gabriel.burt@gmail.com>
22164         * src/Core/Banshee.Services/Banshee.AudioProfiles/ProfileManager.cs: Fix
22165         build.
22167 2007-12-14  Gabriel Burt  <gabriel.burt@gmail.com>
22169         * src/Core/Banshee.Services/Banshee.AudioProfiles/ProfileManager.cs:
22170         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs: Make
22171         the ProfileManager an IService and register it with the ServiceManager.
22173 2007-12-14  Gabriel Burt  <gabriel.burt@gmail.com>
22175         * src/Core/Banshee.ThickClient/Makefile.am: Add Banshee.AudioProfiles.Gui
22176         to build.
22178 2007-12-14  Gabriel Burt  <gabriel.burt@gmail.com>
22180         * src/Core/Banshee.Base/Localization.cs:
22181         * src/Core/Banshee.Core/Banshee.Base/Localization.cs:
22182         * src/Core/Banshee.Core/Makefile.am: Move file/add to build.
22184         * src/Core/Banshee.Services/Makefile.am: Add Banshee.AudioProfile to build.
22186 2007-12-14  Gabriel Burt  <gabriel.burt@gmail.com>
22188         * src/Core/Banshee.Base/Banshee.AudioProfiles.Gui/*:
22189         * src/Core/Banshee.ThickClient/Banshee.AudioProfiles.Gui/*: Move files.
22191 2007-12-14  Gabriel Burt  <gabriel.burt@gmail.com>
22193         * src/Core/Banshee.Base/Banshee.AudioProfiles/*:
22194         * src/Core/Banshee.Services/Banahsee.AudioProfiles/*: Move files.
22196         * src/Core/Banshee.Services/Banshee.Playlists.Formats/*Format.cs: Take
22197         ITrackModelSource instead of Source.
22199 2007-12-13  Gabriel Burt  <gabriel.burt@gmail.com>
22201         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Remove Self
22202         property.
22204         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs: Do
22205         not use Self property, just use null for the property name.  Uncomment all
22206         the columns.
22208         * src/Core/Banshee.Services/Banshee.Collection.Database/BansheeCacheableModelAdapter.cs:
22209         Comment out FetchSet logging.
22211 2007-12-13  Gabriel Burt  <gabriel.burt@gmail.com>
22213         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView.cs: Clean up some code, move
22214         Rectangle allocation and setting of common parts to outside of loops.
22216 2007-12-13  Gabriel Burt  <gabriel.burt@gmail.com>
22218         This patch changes the way objects are bound to the ListViews, removing
22219         the FieldIndex attributes, instead passing a property name (or null to
22220         return the object itself) instead.  SelectAll/None actions are added.
22221         Commented out code for the rest of the TrackInfo columns also added.
22223         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs:
22224         Load PlayCount, SkipCount, LastPlayed, and DateAdded when loading the
22225         track from the database.
22227         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
22228         Handle sorting on Year, Duration, Rating, PlayCount, SkipCount,
22229         LastPlayed, DateAdded, and RelativeUri.
22231         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
22232         Fix error in our migration - we had DateAdded and LastPlayed swapped.
22234         * src/Core/Hyena.Gui/Hyena.Data.Gui/Column.cs:
22235         * src/Core/Banshee.Services/Banshee.Sources/ErrorSource.cs:
22236         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/AlbumListView.cs:
22237         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtistListView.cs:
22238         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
22239         Use property names instead of FieldIndexes.
22241         * src/Core/Hyena.Gui/Hyena.Data.Gui/ColumnCellText.cs:
22242         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellAlbum.cs:
22243         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellDuration.cs:
22244         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellPlaybackIndicator.cs:
22245         * src/Core/Hyena.Gui/Hyena.Data.Gui/ColumnHeaderCellText.cs:
22246         Change ctors to use property name string instead of FieldIndex.
22248         * src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs: Fix typo.
22250         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs:
22251         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml: Add
22252         SelectAll/SelectNone actions.
22254         * src/Core/Hyena.Gui/Hyena.Data.Gui/ColumnCell.cs: In BindListItem use
22255         the property name to get the PropertyInfo object instead of iterating
22256         over all properites looking for the right one.
22259         * src/Core/Hyena.Gui/Hyena.Data.Gui/ObjectListView.cs:
22260         * src/Core/Hyena.Gui/Hyena.Data.Gui/ColumnController.cs: Change Append to
22261         Add and add AddRange method.
22263         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView.cs: Move the
22264         SelectAll/SelectNone handler inside the OnKeyPress method.  Invalidate
22265         the ListWindow whenever the selection is changed.
22267         * src/Core/Hyena/Hyena.Collections/Selection.cs: Add SelectAll method and
22268         change MaxIndex to actually represent the max index, not the max size.
22270         * src/Core/Hyena/Hyena.Data/ColumnDescription.cs: Instead of using a
22271         FieldIndex specified by the ListItemSetup attribute, use a string that
22272         gives the name of the property to get the column's value from.
22274         * src/Core/Banshee.Core/Banshee.Collection/AlbumInfo.cs:
22275         * src/Core/Banshee.Core/Banshee.Collection/ArtistInfo.cs:
22276         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs:
22277         * src/Core/Hyena/Hyena.Data/ListItemSetup.cs:
22278         * src/Core/Hyena/Makefile.am: Remove ListItemSetup.
22280 2007-12-12  Gabriel Burt  <gabriel.burt@gmail.com>
22282         * src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs:
22283         Remove named-parameter ctor for BansheeDbCommand - was ambiguous with the
22284         ctor where you can pass an object [] of values if your values were all
22285         strings.
22287         * src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs: Update base
22288         ctor call, set CanRename = false, set a custom GtkActionPath for our
22289         LibraryContextMenu.
22291         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs: Implement
22292         IUnmapableSource.
22294         * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: 
22295         * src/Core/Banshee.Services/Banshee.Sources/ErrorSource.cs: Update base
22296         ctor call, passing generic_name.
22298         * src/Core/Banshee.Services/Banshee.Sources/IImportable.cs: Bring
22299         interface over.
22301         * src/Core/Banshee.Services/Banshee.Sources/ISource.cs: Remove Unmap
22302         method, add GenericName property.
22304         * src/Core/Banshee.Services/Banshee.Sources/IUnmapableSource.cs: New
22305         interface for sources that can be unmapped.
22307         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Add GenericName
22308         and CanRename properties.
22310         * src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs: Remove
22311         unused using.
22313         * src/Core/Banshee.Services/Makefile.am: Add IUnmapableSource and
22314         IImportable.
22316         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs:
22317         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
22318         Rename Popup to ContextMenu.
22320         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs: Add
22321         and handle SourceContextMenu, add method for setting source actions
22322         sensitive/hidden based on the source, and for updating labels.  Copy
22323         method for confirming deletion of a source over from AbstractPlaylistSource.
22325         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs: Override
22326         OnPopup handler to trigger the SourceContextMenu action.
22328         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml: Add
22329         LibraryContextMenu.
22331 2007-12-11  Gabriel Burt  <gabriel.burt@gmail.com>
22333         * src/Core/Nereid/Nereid/ViewContainer.cs: If the view content is the
22334         same, don't remove and readd it, avoiding flickering.
22336 2007-12-11  Gabriel Burt  <gabriel.burt@gmail.com>
22338         * src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs:
22339         Bring back the exception handling.
22341         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/CompositeTrackListView.cs:
22342         Don't assume the new models will be null, fixing bug with viewing the Error
22343         Source.
22345 2007-12-10  Aaron Bockover  <abock@gnome.org>
22347         * src/nuke-core-tables:
22348         * src/run-banshee: Some scripts to help development
22350         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs:
22351         Moved the insert/update calls from CoreTracksSchema
22353         * src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs: Added
22354         AddNamedParameter method
22356         * src/Core/Banshee.Services/Banshee.Database/TableSchema.cs: Generic 
22357         table schema code to parse table definitions and generate basic insert
22358         update commands
22360         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
22361         Fixed some comment junk
22363 2007-12-07  Gabriel Burt  <gabriel.burt@gmail.com>
22365         * src/Core/Banshee.Services/Banshee.Collection.Database/BansheeCacheableModelAdapter.cs:
22366         Change select command to be a reusable BansheeDbCommand.
22368         * src/Core/Banshee.Services/Banshee.Collection.Database/CoreTracksSchema.cs:
22369         Get track update commands working.
22371         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs:
22372         Add ArtistId and AlbumId properties.  Change Commit method to Save.
22374         * src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs: Call
22375         Save not Commit.
22377 2007-12-07  Gabriel Burt  <gabriel.burt@gmail.com>
22379         * build/Common.Makefile:
22380         * build/build.environment.mk:
22381         * build/m4/banshee/mono-addins.m4: Add Mono.Addins.Setup/Gui dependency
22382         check.  Change from Mono.Data.SqliteClient to Mono.Data.Sqlite.
22384         * src/Core/Banshee.Services/Banshee.Collection.Database/CoreTracksSchema.cs:
22385         Update the generation of the insert_command and update_command so they are
22386         reused.
22388         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs:
22389         Add setter on DbId so CoreTracksSchema can set it.
22391         * src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs:
22392         Switch to Mono.Data.Sqlite, change DbCommand to BansheeDbCommand.
22394         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs: Rewrite
22395         add/remove tracks from playlist queries to be reusable.
22397         * src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs:
22398         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml: Add
22399         Manage Extensions action.
22401 2007-12-06  Aaron Bockover  <abock@gnome.org>
22403         * src/Core/Banshee.Services/Banshee.Collection.Database/CoreTracksSchema.cs:
22404         Schema information about the CoreTracks table and handles any insert
22405         and update commands for the table
22407         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs:
22408         Added a Commit method and oved the Columns enum to CoreTracksSchema
22410         * src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs: 
22411         Create a LibraryTrackInfo from the files being parsed, call commit
22412         to save to database; doesn't actually work yet
22414         * src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs: Added
22415         the DbParameter/DbCommand stuff back from the old Banshee
22417         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Added a null check
22418         in ToString
22420 2007-12-06  Gabriel Burt  <gabriel.burt@gmail.com>
22422         Highlights: Now remembers scroll position for track/artist/album lists 
22423         per source. Selection of track/artist/albums with keyboard now possible.
22425         * src/Core/Banshee.Services/Banshee.Collection/BansheeListModel.cs: Clear
22426         the selection when the model is reloaded.
22428         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/CompositeTrackListView.cs:
22429         Keep track of scroll positions on a per-model basis, and restore scroll
22430         positions when we switch models.  Changes to selection and artist/album
22431         filtering.
22433         * src/Core/Banshee.Widgets/Banshee.Widgets/SearchEntry.cs: Don't trigger
22434         the OnChanged timeout if not Ready.
22436         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView.cs: 
22437         Fix errors in calculating the vadjustment height etc so we can scroll to
22438         the last item.  Implement selecting items with they keyboard.  Fix off by
22439         one bug in SelectAll that led to NRE when iterating the selection with a
22440         ModelSelection (unless you checked for it).  Add option to scroll to a
22441         given point when changing the model, used by CompositeTrackListView.
22443         * src/Core/Hyena/Hyena.Collections/Selection.cs: Keep track of the first
22444         index selected, and add method for selecting from that point to another
22445         point (used for keyboard and mouse selection on the ListView).
22447         * src/Core/Nereid/Nereid/PlayerInterface.cs: Fix bug so filter query is
22448         actually restored when switching sources.
22450 2007-12-04  Gabriel Burt  <gabriel.burt@gmail.com>
22452         The main point of this change is to make Selections tied to a specific
22453         model, which in turn are already tied to a specific source.  So, if you
22454         have some artists and/or albums and/or tracks selected in your Library,
22455         switch to a playlist, then switch back, they will still be selected when
22456         you get back.
22458         * src/Core/Hyena/Hyena.Data/IListModel.cs: Add a Selection property.
22460         * src/Core/Banshee.Services/Makefile.am:
22461         * src/Core/Banshee.Services/Banshee.Collection/BansheeListModel.cs: New
22462         abstract base class to avoid duplications, implement Selection property of
22463         IListModel.
22465         * src/Core/Banshee.Services/Banshee.Collection/AlbumListModel.cs:
22466         * src/Core/Banshee.Services/Banshee.Collection/ArtistListModel.cs:
22467         * src/Core/Banshee.Services/Banshee.Collection/TrackListModel.cs: Subclass
22468         from BansheeListModel.
22470         * src/Core/Banshee.Services/Banshee.Sources/ErrorSource.cs: Add Selection
22471         implementation.
22473         * src/Core/Banshee.Services/Banshee.Collection/IHasTrackSelection.cs:
22474         Return a SelectionProxy instead of a Selection, because the Selection will
22475         change for the ListView depending on what source is selected, and we only
22476         care about the currently displayed one.
22478         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtistListView.cs:
22479         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/AlbumListView.cs:
22480         Don't set the selection to the first item automatically; that is done in
22481         the model now.
22483         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/CompositeTrackListView.cs:
22484         Add method for changing all three models at once.
22486         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Listen to the
22487         events on the track SelectionProxy not the Selection itself.
22489         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView.cs: Add SelectionProxy
22490         property, use the Selection property everywhere and remove the selection
22491         instance variable, since the Selection belongs to the model now, and that
22492         can change.
22494         * src/Core/Hyena/Hyena.Data/Selection.cs:
22495         * src/Core/Hyena/Hyena.Collections/Selection.cs: Move to the appropriate
22496         folder for its namespace, and remove Owner property.
22498         * src/Core/Hyena/Makefile.am:
22499         * src/Core/Hyena/Hyena.Collections/SelectionProxy.cs: New file that has
22500         events for when its selection is updated and for when its selection is
22501         changed to a different one.
22503         * src/Core/Hyena/Hyena.Data/ModelSelection.cs: Comment out unfinished
22504         method.
22506         * src/Core/Nereid/Nereid/PlayerInterface.cs: Updated to new ListView API.
22508 2007-12-03  Gabriel Burt  <gabriel.burt@gmail.com>
22510         * src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs:
22511         Whitespace, and add commented out BansheeDbCommand class that will be
22512         useful if/when we use Mono.Data.Sqlite and prepared statements.
22514 2007-12-03  Gabriel Burt  <gabriel.burt@gmail.com>
22516         * src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs: Don't
22517         subclass from QueuedSqliteDatabase.
22519         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
22520         Revert changes made when I switched to QueuedSqliteDatabase.
22522         * src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs: Sort
22523         whitelist in static constructor.
22525         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs:
22526         Temporarily comment out some queries.
22528 2007-11-29  Gabriel Burt  <gabriel.burt@gmail.com>
22530         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Prevent
22531         crashing when a TrackInfo is null.
22533 2007-11-29  Gabriel Burt  <gabriel.burt@gmail.com>
22535         * src/Core/Banshee.Widgets/Banshee.Widgets/RatingEntry.cs:
22536         * src/Core/Banshee.Widgets/Banshee.Widgets/RatingMenuItem.cs: Whitespace.
22538 2007-11-29  Gabriel Burt  <gabriel.burt@gmail.com>
22540         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs:
22541         * src/Core/Banshee.Widgets/Banshee.Widgets/RatingActionProxy.cs:
22542         * src/Core/Banshee.Widgets/Banshee.Widgets/RatingEntry.cs: If all the
22543         selected tracks have the same rating, prepopulate it.  Actually set the
22544         Rating on all the tracks when Activated.
22546 2007-11-29  Gabriel Burt  <gabriel.burt@gmail.com>
22548         * src/Core/Banshee.Core/Banshee.Base/*:
22549         * src/Core/Banshee.Core/Banshee.Collection/*: White space and license
22550         header cleanup.
22552 2007-11-29  Gabriel Burt  <gabriel.burt@gmail.com>
22554         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
22555         Activate the TrackPopupAction instead of showing the popup manual
22556         manually.
22558         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Add
22559         and handle RateTracksAction and TrackPopupAction.
22561         * src/Core/Banshee.Widgets/Banshee.Widgets/ComplexMenuItem.cs:
22562         * src/Core/Banshee.Widgets/Banshee.Widgets/RatingMenuItem.cs: Update
22563         license header, override OnAdded and OnRemoved to allow using with
22564         Gtk.UIManager.
22566         * src/Core/Banshee.Widgets/Banshee.Widgets/RatingEntry.cs: Update license
22567         header.
22569         * src/Core/Banshee.Widgets/Banshee.Widgets/CustomActionProxy.cs:
22570         * src/Core/Banshee.Widgets/Banshee.Widgets/RatingActionProxy.cs:
22571         * src/Core/Banshee.Widgets/Makefile.am: New files to enable setting custom
22572         MenuItem subclasses as proxies for Gtk.Actions.  Abstracts out repetitive
22573         logic for inserting menu items at a particular position.
22575 2007-11-27  Gabriel Burt  <gabriel.burt@gmail.com>
22577         * src/Core/Makefile.am: Use BANSHEE_DEV_OPTIONS env var so developers can
22578         have make run use an alternate db (with
22579         BANSHEE_DEV_OPTIONS="--db=/alternate/banshee/db") and so I stop committing
22580         my hardcoded hack.
22582 2007-11-27  Gabriel Burt  <gabriel.burt@gmail.com>
22584         * src/Core/Banshee.ThickClient/Banshee.Gui/InterfaceActionService.cs:
22585         Add Track and Source action groups here instead of from PlayerInterface.
22587         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs:
22588         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Add properties
22589         so PlayerInterface can set itself as the provider of things these actions
22590         groups need.
22592         * src/Core/Nereid/Nereid/Client.cs: Fix typo.
22594         * src/Core/Nereid/Nereid/PlayerInterface.cs: Set action group properities,
22595         don't instantiate them.
22597 2007-11-27  Gabriel Burt  <gabriel.burt@gmail.com>
22599         * src/Core/Banshee.Base/QueuedSqliteDatabase.cs:
22600         * src/Core/Banshee.Services/Makefile.am:
22601         * src/Core/Banshee.Services/Banshee.Database/QueuedSqliteDatabase.cs:
22602         Migrate QueuedSqliteDatabase class over, mostly unchanged.
22604         * src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs:
22605         Inherit from QueuedSqliteDatabase.
22607         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
22608         * src/Core/Banshee.Services/Banshee.Collection.Database/BansheeCacheableModelAdapter.cs:
22609         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
22610         Update database queries.
22612         * src/Core/Banshee.Services/Banshee.Collection/IHasTrackSelection.cs: Add
22613         method for getting the TrackModel, used by PlaylistSource to efficiently
22614         add/remove tracks.
22616         * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs: Add
22617         ability to create new PlaylistSource and have it be automatically saved to
22618         the db or not. New AddTracks and RemoveTracks methods that use the
22619         Selection's Ranges to efficiently add/remove tracks.
22621         * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Bring Sort methods
22622         and classes over.
22624         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
22625         Override OnPopupMenu to actually pop up the track context menu.
22627         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/TrackEditor.cs: Check
22628         for null tracks.
22630         * src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs: Remove
22631         'Action' suffix from action handler's name for consistency/brevity.
22633         * src/Core/Nereid/Nereid/PlayerInterface.cs:
22634         * src/Core/Banshee.ThickClient/Banshee.Gui/IHasSourceView.cs: New
22635         interface that PlayerInterface implements so SourceActions can get the
22636         highlighted source.  Instantiate SourceActions the same as TrackActions.
22638         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs: Port
22639         changes from stable branch: add a second column to the TreeStore for
22640         source order, and sort by it.
22642         * src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs:
22643         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs:
22644         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml: 
22645         * src/Core/Banshee.ThickClient/Makefile.am: New SourceActions class,
22646         handle RenameSource, NewPlaylist, AddToPlaylist, AddToNewPlaylist, and
22647         RemoveTracks actions.
22649         * src/Core/Hyena/Hyena.Data/Selection.cs: Provide access to the Ranges of
22650         the Selection, enabling extremely fast playlist track addition/removal.
22652 2007-11-27  Gabriel Burt  <gabriel.burt@gmail.com>
22654         * src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs: Improve
22655         handling of child sources -- add them to the SourceManager automatically.
22656         Child sources with children should be possible (though probably not
22657         advisable).
22659         * src/src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs: Don't
22660         manually add Playlists to the SourceManager since they are implicitly
22661         added by being children of the Library.
22663         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView.cs: Handle context menu mouse
22664         clicks by calling OnPopupMenu.
22666 2007-11-27  Aaron Bockover  <abock@gnome.org>
22668         * src/Core/Hyena/Hyena.Data/Selection.cs:
22669         * src/Core/Hyena/Hyena.Collections/RangeCollection.cs: Check for NET_2_0
22670         to use generics internally, otherwise implemented 1.1 supported for use
22671         inside Managed Windows Forms; implemented IndexOf and partial 
22672         implementation of indexer
22674         * tests/Hyena/RangeCollectionTests.cs: More tests
22676         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellAlbum.cs:
22678         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ArtworkPopup.cs:
22679         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtworkRenderer.cs:
22680         Dispose pixbuf when done
22682         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtworkManager.cs:
22683         Do not cache pixbufs and added a LookupScale that will save the scaled
22684         version to disk for subsequent lookups; reduces memory usage ... a lot
22686         * src/Core/Banshee.Services/Banshee.Collection/IHasTrackSelection.cs:
22687         * src/Core/Hyena/Hyena.Data/ModelSelection.cs: 
22688         * src/Core/Nereid/Nereid/PlayerInterface.cs:
22689         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView.cs:
22690         Updated to reflect namespace change
22692         * src/Core/Hyena.Gui/Hyena.Gui/CairoExtensions.cs: Implemented Pop/Push
22693         Group methods that will use reflection to invoke them in the managed
22694         Cairo binding if they exist or fall back on P/Invoke if they do not;
22695         reflection results are cached for efficient subsequent calls
22697         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
22698         Go back to using Push/Pop Group methods ala the new interop wrapping;
22699         gets rid of a huge memory leak
22701 2007-11-27  Gabriel Burt  <gabriel.burt@gmail.com>
22703         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView.cs: When changing the
22704         selection avoid having the Selection raise two Changed events by passing
22705         raise = false to Clear.
22707 2007-11-24  Aaron Bockover  <abock@gnome.org>
22709         * src/Core/Banshee.Core/Banshee.Collection/AlbumInfo.cs: Ignore any
22710         part of the album/artist string that ends in a (.*) 
22712 2007-11-22  Aaron Bockover  <abock@gnome.org>
22714         * src/Core/Hyena/Hyena.Data/Selection.cs: Updated to use RangeCollection
22716         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView.cs: Updated to reflect
22717         API change in Selection
22719 2007-11-22  Aaron Bockover  <abock@gnome.org>
22721         * Core/Hyena/Hyena.Collections/RangeCollection.cs: New collection for
22722         storing ordered ranges that supports efficient add/remove of indexes
22724         * Core/Hyena/Hyena.Collections/IStackProvider.cs: Moved to new 
22725         Hyena.Collections namespace
22727         * Core/Banshee.Core/Banshee.Kernel/IntervalHeap.cs: Reset count
22729         * tests/Hyena/RangeCollectionTests.cs: Added unit tests for RangeCollection
22731 2007-11-20  Gabriel Burt  <gabriel.burt@gmail.com>
22733         * src/Core/Banshee.Services/Makefile.am:
22734         * src/Core/Banshee.Services/Banshee.Services.mdp:
22735         * src/Core/Banshee.Services/Banshee.Collection/IHasTrackSelection.cs: Add
22736         new interface used by TrackActions to get the selected tracks.
22738         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/TrackEditor.cs: Change
22739         the ctor to take an Enumerable<TrackInfo> instead of a List<TrackInfo> so
22740         we can avoid putting all the TrackInfos in memory at once.
22742         * src/Core/Banshee.ThickClient/Makefile.am:
22743         * src/Core/Banshee.ThickClient/Banshee.ThickClient.mdp:
22744         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml
22745         * src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs:
22746         * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs: Add Edit menu
22747         and Track Properties menu item.
22749         * src/Core/Hyena/Makefile.am:
22750         * src/Core/Hyena/Hyena.mdp:
22751         * src/Core/Hyena/Hyena.Data/ModelSelection.cs: New file that takes a Model
22752         and Selection and is an IEnumerable<T> over the selection.  Will be an
22753         IList<T> soon.
22755         * src/Core/Makefile.am:
22756         * src/Core/Nereid/Nereid/Client.cs:
22757         * src/Core/Nereid/Nereid/PlayerInterface.cs: Implement IHasTrackSelection
22758         and create TrackActions.
22760 2007-11-19  Aaron Bockover  <abock@gnome.org>
22762         * src/Core/Banshee.Services/Banshee.MediaEngine/PlaybackControllerService.cs:
22763         Many improvements in the controller logic, but still a lot to tweak; at 
22764         least it is mostly usable now; implement StopWhenFinished
22766         * src/Core/Banshee.Services/Banshee.MediaEngine/IPlaybackController.cs:
22767         The DBus interface to expose for the playback controller
22769         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml: Show
22770         some of the old actions, like the shuffle mode and stop when finished
22772         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackActions.cs: Implement
22773         shuffle and stop when finished
22775         * src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs: Moved open
22776         location action to here from PlaybackActions
22778 2007-11-19  Aaron Bockover  <abock@gnome.org>
22780         * src/Core/Banshee.Services/Banshee.Collection/TrackListModel.cs:
22781         * src/Core/Banshee.Services/Banshee.Collection.Database/BansheeCacheableModelAdapter.cs:
22782         * src/Core/Banshee.Services/Banshee.Collection.Database/IDatabaseModel.cs:
22783         * src/Core/Banshee.Services/Banshee.Collection.Database/AlbumListDatabaseModel.cs:
22784         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
22785         * src/Core/Banshee.Services/Banshee.Collection.Database/ArtistListDatabaseModel.cs:
22786         Support IndexOf method for getting the index in the model of a track; 
22787         used by the PlaybackController for determining linear next
22789         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs:
22790         Store the index of the track from the database
22792         * src/Core/Banshee.Services/Banshee.MediaEngine/IPlayerEngineService.cs:
22793         DBus interface for the player engine
22795         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineState.cs:
22796         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineEvent.cs:
22797         Added DBus worthy signal delegates
22799         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
22800         Implement IPlayerEngineService, the DBus interface
22802 2007-11-18  Aaron Bockover  <abock@gnome.org>
22804         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/CompositeTrackListView.cs:
22805         Reset the artist/album filter if the browser is hidden
22807         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ArtworkPopup.cs:
22808         Ported the artwork popup, always wrap the label if the layout width
22809         of the text is larger than the image width
22811         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs: 
22812         Show the ArtworkPopup when the header is touched by the mouse 
22814 2007-11-18  Aaron Bockover  <abock@gnome.org>
22816         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/NotificationArea.cs:
22817         * src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/NotificationAreaService.cs:
22818         Began porting the notification area plugin; not functional yet
22820         * src/Extensions/Banshee.NotificationArea/Resources/Banshee.NotificationArea.addin.xml:
22821         Addin spec for the notification area service
22823         * src/Core/Banshee.Services/Banshee.Services.addin.xml:
22824         * src/Core/Banshee.ThickClient/Banshee.ThickClient.addin.xml:
22825         * src/Backends/Banshee.GStreamer/Banshee.GStreamer.addin.xml: Changed 'Core'
22826         addin to Banshee.Services
22828 2007-11-18  Aaron Bockover  <abock@gnome.org>
22830         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/CompositeTrackListView.cs:
22831         Allow the browser to be shown/hidden
22833         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView.cs: Implement OnUnmapped,
22834         set WidgetFlags.Mapped/Unmapped when appropriate
22836         * src/Core/Nereid/Nereid/PlayerInterface.cs: Use Show, not ShowAll for
22837         showing the view container
22839 2007-11-17  Aaron Bockover  <abock@gnome.org>
22841         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellAlbum.cs:
22842         Do not draw the second line if the artist informatio is unset
22844 2007-11-17  Aaron Bockover  <abock@gnome.org>
22846         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/CompositeTrackListView.cs:
22847         Allow the browser to be shown at either the top or the left of the 
22848         track view; merge an action UI into the menu for toggling between the
22849         two modes
22851         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml: Added
22852         a placeholder for the browser view menu options
22854         * src/Core/Hyena.Gui/Hyena.Data.Gui/ColumnCellText.cs: Add proper padding
22855         for the right side of the text to the pango layout
22857         * src/Core/Banshee.ThickClient/Banshee.Gui/InterfaceActionService.cs: 
22858         * src/Core/Banshee.ThickClient/Banshee.Gui/ViewActions.cs: Added view
22859         menu actions
22861 2007-11-16  Aaron Bockover  <abock@gnome.org>
22863         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView.cs: Fix the vadjustment
22864         to account for the FooterHeight; Make FooterHeight reflect the BorderWidth
22866 2007-11-16  Aaron Bockover  <abock@gnome.org>
22868         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
22869         Set RulesHint to true to show alternating row background colors
22871         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView.cs: Properly draw RulesHint
22873         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListViewGraphics.cs: Added DrawRowRule
22875         * src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs:
22876         Fix build error
22878 2007-11-16  Aaron Bockover  <abock@gnome.org>
22880         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellAlbum.cs:
22881         Use ArtworkRenderer to render the thumbnail of the cover; do the layout
22882         of the text properly
22884         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtworkRenderer.cs:
22885         Extracted the cover art rendering from TrackInfoDisplay so we can render
22886         the same style of cover in many places
22888         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView.cs: Change the cell rendering
22889         API; use CellContext, save/clip/render/restore for cell renderers to make
22890         writing cell renderers simpler; do not allow resizing below a miniumum
22892         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellPlaybackIndicator.cs:
22893         * src/Core/Hyena.Gui/Hyena.Data.Gui/ColumnHeaderCellText.cs:
22894         * src/Core/Hyena.Gui/Hyena.Data.Gui/ColumnCell.cs:
22895         * src/Core/Hyena.Gui/Hyena.Data.Gui/ColumnCellText.cs:
22896         Updated to reflect the API changes for cell renderers
22898         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListViewGraphics.cs: Added Text color
22899         support; made the BorderRadius public
22901         * src/Core/Hyena.Gui/Hyena.Data.Gui/IHeaderCell.cs: Interface to expose
22902         a MinWidth for text in the headers
22904         * src/Core/Hyena.Gui/Hyena.Data.Gui/CellContext.cs: A context of stuff
22905         to pass to cell renderers to avoid the Render() calls from growing an
22906         insane amount of arguments
22908         * src/Core/Hyena.Gui/Hyena.Gui/CairoExtensions.cs: Changed Namespace
22910 2007-11-16  Gabriel Burt  <gabriel.burt@gmail.com>
22912         * src/Core/Banshee.Services/Banshee.Collection.Database/AlbumListDatabaseModel.cs:
22913         * src/Core/Banshee.Services/Banshee.Collection.Database/ArtistListDatabaseModel.cs:
22914         * src/Core/Banshee.Services/Banshee.Collection.Database/BansheeCacheableModelAdapter.cs:
22915         Comment out verbose debugging output.
22917         * src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs: Add
22918         --db option for specifying exactly what database file to use.  Helpful for
22919         being able to use stable and trunk versions simultaneously.
22921 2007-11-16  Aaron Bockover  <abock@gnome.org>
22923         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
22924         Use TrackInfo.AudiblyEqual instead of a reference check to determine if 
22925         the input track is the track that is currently playing
22927         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Implement
22928         AudiblyEqual, a method used to determine if the two tracks are probably
22929         the same, based on artist, album, and track title information, regardless
22930         of managed reference differences or even source stream differences
22932 2007-11-16  Aaron Bockover  <abock@gnome.org>
22934         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
22935         Implement proper sorting for all columns. Muy Caliente.
22937         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs: 
22938         Make the Track column a SortableColumn
22940 2007-11-16  Aaron Bockover  <abock@gnome.org>
22942         * Banshee.Services/Banshee.Sources/DatabaseSource.cs: Return 
22943         UnfilteredCount instead of Count on the model for the source count if
22944         the model is IFilterable
22946         * Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
22947         Implement UnfilteredCount so the source count doesn't change when a
22948         filter is applied to the model
22950         * Hyena/Hyena.Data/IFilterable.cs: Added an UnfilteredCount property
22952 2007-11-16  Aaron Bockover  <abock@gnome.org>
22954         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
22955         Use a ColumnCellDuration for the duration column
22957         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellDuration.cs:
22958         A cell renderer that formats TimeSpan objects in a pretty way
22960         * src/Core/Hyena.Gui/Hyena.Data.Gui/ColumnCellText.cs: Added a virtual
22961         Text property so making new text renderers is a snap
22963 2007-11-16  Aaron Bockover  <abock@gnome.org>
22965         * src/Core/Nereid/Nereid/PlayerInterface.cs: Ported the code to add/remove
22966         the accelerator binding on key press event to prevent them from conflicting
22967         with search; adds the key bindings for focusing search
22969         * src/Core/Nereid/Nereid/ViewContainer.cs: Explicitly show search entry
22971         * src/Core/Banshee.Widgets/Banshee.Widgets/SearchEntry.cs: Set NoShowAll
22972         so ShowAll doesn't affect the clear button
22974         * src/Core/Hyena.Gui/Hyena.Gui/GtkUtilities.cs: A crappy class for
22975         random GTK routines that really can't go anywhere else; added 
22976         IsImportantModifierSet
22978 2007-11-15  Gabriel Burt  <gabriel.burt@gmail.com>
22980         * src/Core/Banshee.Services/Banshee.Collection.Database/BansheeCacheableModelAdapter.cs:
22981         Fix small build-stopping bug.
22983 2007-11-15  Gabriel Burt  <gabriel.burt@gmail.com>
22985         * src/Core/Hyena/Hyena.Data/CacheableModelAdapter.cs: New abstract class
22986         that partially implements a Dictionary-based caching strategy for models.
22988         * src/Core/Hyena/Hyena.Data/ICacheableModel.cs: Interface that Models must
22989         implement to work with CacheableModelAdapters.
22991         * src/Core/Banshee.Services/Banshee.Collection.Database/IDatabaseModel.cs:
22992         Interface that defines basic database-related properties on Models that
22993         the adapter needs to generically implement limit/offset based lookups on
22994         the model.
22996         * src/Core/Banshee.Services/Banshee.Collection.Database/BansheeCacheableModelAdapter.cs:
22997         Implementation of CacheableModelAdapter using SQL and the Banshee.Database
22998         connection that combines the Dictionary cache with limit/offset queries to
22999         improve speed.
23001         * src/Core/Banshee.Services/Banshee.Collection.Database/AlbumListDatabaseModel.cs:
23002         * src/Core/Banshee.Services/Banshee.Collection.Database/ArtistListDatabaseModel.cs:
23003         * src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
23004         Use the BansheeCacheableModelAdapter instead of implementing the same
23005         caching/limit+offset strategy three times.
23007         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
23008         Chnage CoreTracksCache to just CoreCache as it is used by any Model that
23009         uses the BansheeCacheableModelAdapter.
23011         * src/Core/Banshee.Services/Makefile.am:
23012         * src/Core/Hyena/Makefile.am: Add new files.
23014 2007-11-15  Sebastian Dröge  <slomo@circular-chaos.org>
23016         * src/Core/Banshee.Base/PowerManagement.cs: Add support for
23017         gnome-power-manager >= 2.19 while keeping support for older
23018         versions (BGO: #492195)
23020 2007-11-13  Gabriel Burt  <gabriel.burt@gmail.com>
23022         * src/Core/Banshee.Base/Gui/SeekDialog.cs:
23023         * src/Core/Banshee.Base/Gui/TrackEditor.cs:
23024         * src/Core/Banshee.Base/Hyena.Gui/EntryEraseAction.cs:
23025         * src/Core/Banshee.Base/Hyena.Gui/EntryInsertAction.cs:
23026         * src/Core/Banshee.Base/Hyena.Gui/EntryUndoAdapter.cs: Remove from
23027         Banshee.Base, all have been moved into new structure.
23029         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/TrackEditor.cs:
23030         * src/Core/Banshee.ThickClient/Makefile.am: Add TrackEditor, not yet used.
23032         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/CompositeTrackListView.cs: 
23033         * src/Core/Hyena.Gui/Hyena.Data.Gui/Selection.cs:
23034         * src/Core/Hyena/Hyena.Data/Selection.cs:
23035         * src/Core/Hyena.Gui/Makefile.am:
23036         * src/Core/Hyena/Makefile.am: Move Selection from Hyena.Gui to Hyena.
23038 2007-11-13  Aaron Bockover  <abock@gnome.org>
23040         * src/Core/Hyena/Hyena.Data/ColumnDescription.cs: A non-GUI base class
23041         for columns, so basic column setup can be done at the model level
23043         * src/Core/Hyena/Hyena.Data/IListModel.cs: Added IObjectListModel
23045         * src/Core/Nereid/Nereid/PlayerInterface.cs: Support IObjectListModel 
23046         sources
23048         * src/Core/Hyena.Gui/Hyena.Data.Gui/Column.cs: Extend ColumnDescription
23050         * src/Core/Hyena.Gui/Hyena.Data.Gui/ObjectListView.cs: Wrapper view for
23051         simple IObjectListModels
23053         * src/Core/Hyena.Gui/Hyena.Data.Gui/ColumnController.cs: Be eventful
23055         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView.cs: Make some model event
23056         handler methods virtual
23058         * src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs: Call 
23059         source.Activate after raising the notification of change
23061         * src/Core/Banshee.Services/Banshee.Sources/ErrorSource.cs: Implement
23062         a simple IObjectListModel source for displaying errors
23064         * src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs: Add a 
23065         child ErrorSource
23067         * src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs: Add
23068         import errors to the Library's ErrorSource
23070 2007-11-13  Aaron Bockover  <abock@gnome.org>
23072         * configure.ac: 
23073         * src/Core/Nereid/banshee2.in: For the sake of development, call the
23074         project "banshee2" - this means trunk will be installed to 
23075         $(libdir)/banshee2 and the executable is "banshee2" NOTE: this does not
23076         mean "Banshee v2.0!" This change is only temporary for the sake of allowing
23077         trunk to be installed without conflicting with stable. Do not read too
23078         much into the 2 part :)
23080         Do rm -rf ~/.config/banshee/addins after make install to ensure the
23081         installed version runs cleanly.
23083         * src/Core/Banshee.Services/Makefile.am:
23084         * src/Core/Banshee.Services/Banshee.Services.addins: Include a .addins
23085         file to tell Mono.Addins where to look for installed addins
23087         * build/build.environment.mk: Install to pkglibdir again
23089 2007-11-12  Aaron Bockover  <abock@gnome.org>
23091         * Banshee.Services/Banshee.Collection/ImportManager.cs: Actually register
23092         the user job with the manager, allow it to be cancelled, and show
23093         a nice message if it is empty
23095         * Banshee.Services/Banshee.Library/LibraryImportManager.cs: Implemented
23096         the TagLib tag reading, make a nice display of the import process,
23097         and do extension-based whitelisting as a precondition to the tag parse
23099         * Banshee.Core/Banshee.Streaming/StreamTagger.cs: Fixed ProcessUri to
23100         not check for a mimetype
23102 2007-11-12  Aaron Bockover  <abock@gnome.org>
23104         * autogen.sh: Use my new autogen script that's been used in podsleuth 
23105         and other projects - no dependency on gnome-autogen, which has been a
23106         big pain for banshee; also sets -Wno-portability -Wno-syntax on automake
23107         so it will STFU about our Makefile.ams, which has been a problem in 
23108         Mono projects and the latest automake
23110 2007-11-12  Aaron Bockover  <abock@gnome.org>
23112         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
23113         Fully fixed the missing_pixbuf translation glitch - was using the wrong
23114         rectangle for the illusion squasher fill
23116 2007-11-12  Aaron Bockover  <abock@gnome.org>
23118         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
23119         First pass at fixing a missing_pixbuf->not missing transition glitch;
23120         center the text on the middle of the cover art on the y-axis
23122 2007-11-11  Aaron Bockover  <abock@gnome.org>
23124         * Nereid/Nereid/PlayerInterface.cs: Add the AccelGroup from 
23125         InterfaceActionService; tseng should be happy
23127         * Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs: Implement GUI 
23128         handler for Log
23130         * Banshee.ThickClient/Banshee.Gui/GlobalActions.cs: Enable the help links
23132         * Banshee.ThickClient/Banshee.Gui/PlaybackActions.cs: Implemented
23133         open locaiton and restart song
23135         * Banshee.ThickClient/Banshee.Gui.Dialogs/OpenLocationDialog.cs:
23136         * Banshee.Services/Banshee.Web/Browser.cs:
23137         * Banshee.Services/Banshee.Streaming/RadioTrackInfo.cs: 
23138         * Banshee.Services/Banshee.Playlists.Formats.Xspf:
23139         * Banshee.Services/Banshee.Playlists.Formats: Ported from old Banshee
23141 2007-11-11  Aaron Bockover  <abock@gnome.org>
23143         * src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs:
23144         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml:
23145         Added help menu
23147         * src/Core/Banshee.Core/Banshee.Streaming/StreamTagger.cs:
23148         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Removed legacy
23149         cover art lookup junk
23151         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/AboutDialog.cs: Ported
23152         the about dialog
23154         * src/Core/Banshee.Core/Banshee.Base/Paths.cs: Removed a bunch of
23155         old path stuff
23157         * src/Core/Banshee.Core/Banshee.Base/ConfigureDefines.cs.in: Finally nuked
23159         * src/Core/Banshee.Core/Banshee.Base/ProductInformation.cs: Moved over
23161         * build/TranslatorExtract.cs: Moved to build
23163 2007-11-11  Aaron Bockover  <abock@gnome.org>
23165         * Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs: 
23166         * Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml: Added
23167         import music
23169         * Core/Banshee.ThickClient/Banshee.Library.Gui/ImportDialog.cs: Ported
23170         the import music dialog
23172         * Core/Banshee.ThickClient/Banshee.Gui.Dialogs/FileChooserDialog.cs:
23173         * Core/Banshee.ThickClient/Banshee.Gui.Dialogs/ImageFileChooserDialog.cs:
23174         Ported the file chooser dialogs
23176         * Core/Banshee.ThickClient/Banshee.Library.Gui/FileImportSource.cs:
23177         * Core/Banshee.ThickClient/Banshee.Library.Gui/FolderImportSource.cs:
23178         * Core/Banshee.Services/Banshee.Library/HomeDirectoryImportSource.cs:
23179         * Core/Banshee.Services/Banshee.Library/IImportSource.cs:
23180         Ported the IImportSource sources
23182         * Core/Banshee.Services/Banshee.Library/ImportSourceManager.cs: Implemented
23183         a new ImportSourceManager that loads IImportSources using Mono.Addins
23185         * Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs: Load
23186         LibraryImportManager and ImportSourceManager services
23188         * Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs: Extend
23189         ImportManager for importing to the library
23191         * Core/Banshee.Services/Banshee.Collection/ImportManager.cs: Ported the
23192         ImportManager
23194         * Core/Banshee.Core/Banshee.IO/IOProxy.cs: Use Log.Debug
23196         * Core/Banshee.Core/Banshee.Base/Log.cs: Added timer debug methods
23198         * Core/Banshee.Services/Banshee.ServiceStack/UserJob.cs: Added 
23199         IsCancelRequested property
23201         * Core/Banshee.ThickClient/Banshee.Gui.Widgets/UserJobTile.cs: Listen
23202         to StyleSet to reload pixbufs
23204         * Core/Nereid/Nereid/Client.cs: Remove the TestUserJob stuff
23206 2007-11-11  Aaron Bockover  <abock@gnome.org>
23208         * src/Core/Banshee.ThickClient/Banshee.Gui/CommonServices.cs: Helper
23209         class to boot common GUI services
23211         * src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs: Base class
23212         for any GTK client to use for booting the core
23214         * src/Core/Nereid/Nereid/Entry.cs: Fixed up to use GtkBaseClient
23216         * src/Core/Banshee.Services/Banshee.ServiceStack/IUserJob.cs:
23217         * src/Core/Banshee.Services/Banshee.ServiceStack/UserJob.cs: Added a Name
23218         property, which should never change and should be concise
23220         * src/Core/Banshee.Services/Banshee.ServiceStack/TestUserJob.cs: Updated,
23221         actually allow it to be canceled
23223         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/UserJobTile.cs: Support
23224         actually cancelling jobs, show a pretty dialog
23226 2007-11-11  Gabriel Burt  <gabriel.burt@gmail.com>
23228         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/GladeWindow.cs: Look
23229         for the glade file in the calling assembly not the executing one.
23230         
23231         * src/Core/Banshee.ThickClient/Banshee.Gui.Dialogs/SeekDialog.cs: Ported
23232         from old dialog, using new ConnectedSeekSlider.
23234         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ConnectedSeekSlider.cs:
23235         Provide getter for Label so the seek dialog can make the font larger.
23237         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackActions.cs: Handle the
23238         seek to action.
23240         * src/Core/Banshee.ThickClient/Makefile.am: add new SeekDialog.cs
23242         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml:
23243         Uncomment the Seek To action.
23245 2007-11-11  Aaron Bockover  <abock@gnome.org>
23247         * Banshee.Services/Banshee.ServiceStack/IUserJob.cs: Interface for UserJobs
23249         * Banshee.Services/Banshee.ServiceStack/UserJob.cs: Base UserJob class,
23250         suitable for most cases when a UserJob is needed
23252         * Banshee.Services/Banshee.ServiceStack/UserJobEventHandler.cs: Event
23253         handler and argument class for UserJob events
23255         * Banshee.Services/Banshee.ServiceStack/UserJobManager.cs: A manager
23256         class for keeping track of UserJobs
23258         * Banshee.Services/Banshee.ServiceStack/TestUserJob.cs: An exhaustive,
23259         interesting test case for the UserJob stack
23261         * Banshee.Services/Banshee.ServiceStack/Application.cs: Added Invoke
23262         and RunIdle methods
23264         * Banshee.ThickClient/Banshee.Gui.Widgets/UserJobTile.cs: GUI tile 
23265         representing a single UserJob
23267         * Banshee.ThickClient/Banshee.Gui.Widgets/UserJobTileHost.cs: GUI container
23268         for managing the display of the UserJobTile widgets
23270         * Nereid/Nereid/PlayerInterface.cs: Pack in a UserJobTileHost
23272         * Nereid/Nereid/Entry.cs: Implement RunIdle and kick off some TestUserJobs
23274 2007-11-10  Aaron Bockover  <abock@gnome.org>
23276         * src/Core/Banshee.Core/Banshee.Base/Log.cs: Make the log output nicer
23278 2007-11-10  Aaron Bockover  <abock@gnome.org>
23280         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ConnectedSeekSlider.cs:
23281         Add null check
23283         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
23284         Do not use Push/Pop since there appear to be problems with it missing
23285         in Mono 1.2.4, at least in Ubuntu Gutsy; ugly workaround. Only fade
23286         in/out the artist/album information if it changes
23288         * src/Core/Hyena.Gui/Hyena.Gui/CairoExtensions.cs: Remove Push/Pop wrapper
23289         stubs as they aren't needed; added a ContextDispose 
23291 2007-11-10  Aaron Bockover  <abock@gnome.org>
23293         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtistListView.cs:
23294         * src/Core/Hyena.Gui/Hyena.Data.Gui/ColumnCellText.cs:
23295         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView.cs: Fix a bunch of warnings
23297         * src/Core/Hyena.Gui/Hyena.Gui/CairoExtensions.cs: Stubbed out the
23298         push/pop group methods that were introduced in Cairo 1.2/Mono 1.2.5;
23299         they can be filled in to implement backwards compat, but simply
23300         wrap the Mono.Cairo provided API right now
23302 2007-11-10  Aaron Bockover  <abock@gnome.org>
23304         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs: 
23305         Refactored some of the animation logic, fade old track text out and
23306         new track text in while the cover art xfades
23308 2007-11-10  Aaron Bockover  <abock@gnome.org>
23310         * src/Core/Banshee.ThickClient/Banshee.Gui/InterfaceActionService.cs:
23311         Provide an expand override for adding items to toolbars
23313         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml:
23314         Remove the spacing, since the track info header will expand
23316         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
23317         Draw pango layouts for displaying the track information
23319         * src/Core/Nereid/Nereid/PlayerInterface.cs: Expand the TrackInfoDisplay
23321         * src/Core/Hyena.Gui/Hyena.Data.Gui/CairoExtensions.cs: Added 
23322         ColorGetHex and ColorAdjustBrightness methods
23324 2007-11-10  Aaron Bockover  <abock@gnome.org>
23326         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs:
23327         Use a timeout instead of idle to limit the number of frames rendered;
23328         if debugging is on, print the number of fps per transition
23330         * src/Core/Banshee.Core/Banshee.Base/Log.cs: Added a DebugFormat method
23332 2007-11-10  Aaron Bockover  <abock@gnome.org>
23334         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ConnectedSeekSlider.cs:
23335         An adaptor around the seek slider and stream position label that connects
23336         itself to the necessary engine events
23338         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs: 
23339         A connected header view for showing cover art and track information; 
23340         currently only shows cover art but is 100% cairo-drawn and does cross
23341         fading. Sexy.
23343         * src/Core/Nereid/Nereid/PlayerInterface.cs: Removed all player engine
23344         event handling; embed ConnectedSeekSlider and TrackInfoDisplay; at this
23345         point the main client UI is effectively stupid and only embeds smart
23346         widgets - makes writing new client UIs very, very easy
23348         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListViewGraphics.cs: Properly align
23349         the selection stroke to the pixel boundary; sharp strokes
23351         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView.cs: Added missing cr dispose
23353         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Added 
23354         ArtistAlbumId shortcut property and ArtistAlbumEqual method
23356 2007-11-09  Gabriel Burt  <gabriel.burt@gmail.com>
23358         * Banshee.Services/Banshee.Collection.Database/AlbumListDatabaseModel.cs:
23359         * Banshee.Services/Banshee.Collection.Database/ArtistListDatabaseModel.cs:
23360         * Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
23361         * Banshee.Services/Banshee.Playlist/PlaylistSource.cs:
23362         * Banshee.Services/Banshee.Sources/DatabaseSource.cs: Filter which artists
23363         and albums are shown for a source based on the tracks that source has.
23364         Fix playlists so they actually work.
23366 2007-11-09  Aaron Bockover  <abock@gnome.org>
23368         * src/Core/Banshee.ThickClient/Banshee.Gui/IconThemeUtils.cs: Avoid
23369         possible warnings from GdkPixbuf when a resource doesn't exist by 
23370         checking the manifest resource names in the assembly ahead of time
23372         * src/Core/Banshee.ThickClient/Resources/*: Migrated some icon resources
23374         * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs: Use
23375         a stock icon for missing source icons
23377 2007-11-09  Gabriel Burt  <gabriel.burt@gmail.com>
23379         * src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs:
23380         Migrate playlists as well.
23382 2007-11-09  Aaron Bockover  <abock@gnome.org>
23384         * Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
23385         Use QueueDraw
23387         * Core/Banshee.ThickClient/Banshee.Gui/PlaybackActions.cs: Connect next
23388         and previous actions to the playback controller
23390         * Core/Banshee.Services/Banshee.MediaEngine/PlaybackControllerService.cs:
23391         Implement rough logic for doing linear/random playback
23393         * Core/Banshee.Services/Banshee.MediaEngine/PlaybackControllerDatabaseStack.cs:
23394         Wrap a stock generic stack for now for testing the controller logic
23396 2007-11-09  Aaron Bockover  <abock@gnome.org>
23398         * Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs: 
23399         Call QueueDraw instead of protected Invalidate methods
23401         * Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellPlaybackIndicator.cs:
23402         Added a paused pixbuf that reflects the player engine playback state
23404         * Core/Hyena.Gui/Hyena.Data.Gui/ListView.cs: Provide a public QueueDraw
23405         that does proper invalidation of the internal windows
23407         * Core/Banshee.Services/Banshee.MediaEngine/PlaybackControllerService.cs:
23408         * Core/Banshee.Services/Banshee.MediaEngine/PlaybackRepeatMode.cs:
23409         * Core/Banshee.Services/Banshee.MediaEngine/PlaybackShuffleMode.cs:
23410         * Core/Banshee.Services/Banshee.MediaEngine/PlaybackControllerDatabaseStack.cs:
23411         Stubbed out some API for the new playback controller
23413         * Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs: Add the
23414         playback controller as a default service
23416         * Core/Hyena/Hyena/UndoManager.cs:
23417         * Core/Hyena/Hyena/IUndoAction.cs: Moved the Undo Manager
23419         * Core/Hyena/Hyena/IStackProvider.cs: A generic interface that provides
23420         a stack data structure
23422 2007-11-09  Sebastian Dröge  <slomo@circular-chaos.org>
23424         * build/Common.Makefile:
23425         * build/banshee.pc.in:
23426         * build/m4/banshee/taglib.m4:
23427         * configure.ac: Allow building against an external taglib-sharp and
23428         create a proper pkg-config file when doing so (BGO: #447769, #447768).
23430 2007-11-09  Sebastian Dröge  <slomo@circular-chaos.org>
23432         * build/m4/shamrock/gstreamer.m4: Allow disabling of the GStreamer
23433         plugin checks with --disable-gstreamer-plugins-check (BGO: #476500).
23435 2007-11-08  Aaron Bockover  <abock@gnome.org>
23437         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellPlaybackIndicator.cs:
23438         Cell renderer that indicates when a song is the playing song
23440         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
23441         Add a ColumnCellPlaybackIndicator, iterate columns and cells to notify
23442         theme of any theme changes
23444         * src/Core/Hyena.Gui/Hyena.Data.Gui/ColumnCell.cs: Added a virtual
23445         NotifyThemeChange so cells can invalidate any theme cached items
23447         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView.cs: Made invalidation
23448         methods protected
23450         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
23451         Added IsTrackPlaying method
23453         * src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Added a Self
23454         property to allow an inline data binding
23456 2007-11-08  Aaron Bockover  <abock@gnome.org>
23458         * src/Core/Banshee.ThickClient/Banshee.Gui/InterfaceActionService.cs: 
23459         Added PopulateToolbarPlaceholder that allows generic widgets to be
23460         embedded in a toolbar placeholder
23462         * src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs: Cosmetic
23464         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml: Added
23465         some more placeholder nodes for other widgets, and added an expanded
23466         spacing item to create the proper alignments
23468         * src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ConnectedVolumeButton.cs:
23469         A class derived from Bacon.VolumeButton that integrates with 
23470         PlayerEngineService. Sexy.
23472         * src/Core/Nereid/Nereid/PlayerInterface.cs: More hotness with the 
23473         header toolbar, fix spacing/cosmetic issues in the display, and embed
23474         the ConnectedVolumeButton in the toolbar
23476         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
23477         Always set the volume from the schema when starting a new track
23479         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtworkManager.cs:
23480         Added a FIXME to just move the old artwork directory, but we'll wait
23481         until we get closer to a release to keep from messing with Banshee stable
23483 2007-11-08  Gabriel Burt  <gabriel.burt@gmail.com>
23485         * Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs:
23486         Make track caching model work for multiple sources, not just the LibrarySource.
23488         * Banshee.Services/Banshee.Sources/DatabaseSource.cs:
23489         * Banshee.Services/Banshee.Library/LibrarySource.cs:
23490         * Banshee.Services/Banshee.Playlist/PlaylistSource.cs: Generalize
23491         and move useful functions from the LibrarySource into DatabaseSource so
23492         they can be used by PlaylistSources too.
23494         * Banshee.Services/Banshee.ServiceStack/Application.cs: Load playlists when
23495         the app starts.
23497         * Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs:
23498         * Banshee.Services/Banshee.Services.mdp:
23499         * Banshee.Services/Banshee.Sources/ChildSource.cs:
23500         * Banshee.Services/Banshee.Sources/Source.cs:
23501         * Banshee.Services/Makefile.am: Get rid of ChildSource -- allow any Source
23502         to have a parent set.
23504 2007-11-08  Aaron Bockover  <abock@gnome.org>
23506         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtworkManager.cs:
23507         Turned into a service; added a migration path for old legacy cover art
23509         * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellAlbum.cs:
23510         Updated to use the ArtworkManager service
23512         * src/Core/Nereid/Nereid/Entry.cs: Register the ArtworkManager service
23514         * src/Core/Nereid/Nereid/PlayerInterface.cs: Spaces cleanup
23516 2007-11-08  Aaron Bockover  <abock@gnome.org>
23518         * src/Core/Banshee.ThickClient/Banshee.Gui/InterfaceActionService.cs:
23519         Service for interface actions via Gtk.ActionManager/Gtk.UIManager
23521         * src/Core/Banshee.ThickClient/Banshee.Gui/GlobalActions.cs: Common
23522         global actions, like 'Quit'
23524         * src/Core/Banshee.ThickClient/Banshee.Gui/PlaybackActions.cs: Actions
23525         specific to controlling playback
23527         * src/Core/Banshee.ThickClient/Banshee.Gui/BansheeIconFactory.cs: Custom
23528         icon factory to load theme icons and resource icons into the stock 
23530         * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml: UI
23531         layout for the menu and toolbar
23533         * src/Core/Nereid/Nereid/PlayerInterface.cs: Embed the menu and toolbar
23534         UIs; render the stock Gtk.Toolbar as a plain, styleless widget so it
23535         blends in with the window background and looks like 'the old Banshee.'
23537         * src/Core/Nereid/Nereid/Entry.cs: Register the InterfaceActionService
23539         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
23540         Added a TogglePlaying method that just does the right thing; raise
23541         a new PlayWhenIdleRequest event if playback is requested but the engine
23542         is idle
23544         * src/Core/Banshee.Widgets/Banshee.Widgets/GenericToolItem.cs: A generic
23545         widget container for embedding in a Gtk.Toolbar
23547 2007-11-08  Aaron Bockover  <abock@gnome.org>
23549         * src/Core/Banshee.ThickClient/Banshee.Gui/BansheeIconFactory.cs: Stubbed
23550         icon factory for our icons
23552         * src/Core/Banshee.ThickClient/Banshee.Gui/GtkElementsService.cs: 
23553         Instantiate a BansheeIconFactory
23555         * src/Core/Banshee.Widgets/Banshee.Widgets/StreamPositionLabel.cs: Accept
23556         milliseconds, not seconds
23558         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs: Deliver
23559         timing information in milliseconds, not seconds
23561 2007-11-07  Aaron Bockover  <abock@gnome.org>
23563         * src/Core/Nereid/Nereid/PlayerInterface.cs: Added the seek slider stuff
23565 2007-11-07  Aaron Bockover  <abock@gnome.org>
23567         * src/Core/Nereid/Nereid/PlayerInterface.cs: Connect the RowActivated
23568         event on the track view to the PlayerEngineService to get the first
23569         working playback in the new banshee
23571         * src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs:
23572         Set CanPlay, since ... it can
23574         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs: Provide
23575         a property for accessing the PlayerEngineService
23577         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView.cs: Fix design of RowActivted
23579 2007-11-07  Aaron Bockover  <abock@gnome.org>
23581         * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
23582         Ported the old PlayerEngineCore to be a service and to load its engines
23583         from Mono.Addins
23585         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs: Make
23586         PlayerEngineService a built-in service
23588         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceStartedHandler.cs:
23589         Updated delegate signature since ServiceManager is now static
23591         * src/Core/Banshee.Core/Banshee.Base/Log.cs: Add some more overrides
23593         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs: Defer
23594         the loading of the player engine internals until we get a notification
23595         from ServiceManager that the GStreamerCoreService has been loaded
23597 2007-11-07  Aaron Bockover  <abock@gnome.org>
23599         * src/Core/Banshee.Core/Banshee.Base/Log.cs: Added a new, extremely simple
23600         and much more efficient logging facility
23602         * src/Core/Banshee.Base/LogCore.cs: Removed legacy logging facility
23604 2007-11-07  Gabriel Burt  <gabriel.burt@gmail.com>
23606         * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView.cs: Add RowActivated event.
23608 2007-11-07  Aaron Bockover  <abock@gnome.org>
23610         * src/Core/Banshee.Services/Banshee.Services.addin.xml: Define an extension
23611         point for registering services
23613         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs: Load
23614         addin services into the service manager; moved the Mono.Addins init stuff
23615         to ServiceManager directly
23617         * src/Backends/Banshee.GStreamer/Banshee.GStreamer.addin.xml: Define
23618         a service extension for the GStreamer backend
23620         * src/Backends/Banshee.GStreamer/Banshee.GStreamer/Service.cs: Implement
23621         the skeleton for the GStreamer service backend
23623 2007-11-05  Aaron Bockover  <aaron@abock.org>
23625         * Banshee.MediaEngine.GStreamer/GstPlayerEngine.cs: Ported the GStreamer
23626         player engine to work under the new APIs, implemented as a Mono.Addin
23627         extension
23629 2007-11-05  Aaron Bockover  <aaron@abock.org>
23631         * Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs:
23632         * Nereid/Nereid/PlayerInterface.cs: Reflect API change in ServiceManager
23634         * Nereid/Nereid/Entry.cs: Reflect API change in ServiceManager and 
23635         implement a TimeoutHandler using GLib.Timeout
23637         * Banshee.Services/Banshee.MediaEngine/*: Ported the PlayerEngine base
23638         class; made it a Mono.Addin extension point
23640         * Banshee.Services/Banshee.ServiceStack/ServiceManager.cs: Made 
23641         ServiceManager completely static so using it doesn't suck
23643         * Banshee.Services/Banshee.ServiceStack/DBusServiceManager.cs: Allow
23644         the DBus support to be optional
23646         * Banshee.Services/Banshee.ServiceStack/AddinCoreService.cs: Service
23647         for controlling Mono.Addins
23649         * Banshee.Core/Banshee.Streaming/*: Ported StreamTagger, StreamTag and
23650         other generic stream types and friends
23652         * Banshee.Core/Banshee.Collection/TrackInfo.cs: API Fixups
23654         * Banshee.Core/Banshee.Base/ApplicationContext.cs: Fix API bug
23656         * Banshee.ThickClient/Banshee.Gui/GtkThemeService.cs: Will be used for
23657         more generic GTK interface stuff; make IPropertyStoreExpose and expose
23658         PrimaryWindow and PrimaryWindow.RawHandle properties
23660         * Hyena/Hyena.Data/IPropertyStoreExpose.cs: Interface to expose a
23661         PropertyStore
23663 2007-11-04  Aaron Bockover  <aaron@abock.org>
23665         * src/Core/Banshee.Core/Banshee.Base/PlatformHacks.cs: A static class
23666         containing a collection of random platform-specific hacks such as 
23667         forcing the process name, working around a GDK/window manager bug, 
23668         and working around a GStreamer bug that interfered with signal handling
23669         in the Mono JIT
23671         * src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs:
23672         * src/Core/Nereid/Nereid/Entry.cs: Simplified due to PlatformHacks
23674         * src/Core/Banshee.Core/Banshee.Base/Utilities.cs: Moved SetProcessName
23675         in an effort to get rid of this file
23677 2007-11-04  Aaron Bockover  <aaron@abock.org>
23679         * Hyena/Hyena.Data/PropertyStore.cs: Added StringList and GetType support
23681         * Banshee.ThickClient/Banshee.Gui/IconThemeUtils.cs: Removed unnecessary
23682         old code
23684         * Banshee.ThickClient/Banshee.Gui/GtkThemeService.cs: New service that
23685         listens for GTK theme changes, invalidates known icon caches in 
23686         services, and notifies listening components; effectively means that
23687         the source view will update its icons if the GTK theme changes
23689         * Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs: Support loading
23690         icons via the IconName source property as a string or string list and
23691         cache the result in the IconPixbuf property in the source; listen
23692         to GtkThemeService to queue redraw
23694         * Nereid/Nereid/PlayerInterface.cs: Set the ListenWidget in GtkThemeService
23695         to PlayerInterface
23697         * Nereid/Nereid/Entry.cs: Register a GtkThemeService
23699         * Banshee.Services/Banshee.Library/LibrarySource.cs: Fixed icon names
23701         * Banshee.Services/Banshee.ServiceStack/ServiceManager.cs: Added Contains
23703 2007-10-31  Gabriel Burt  <gabriel.burt@gmail.com>
23705         * MERGE BUILD FIXES: More fixes.  Everything except src/Core/Banshee/*
23706         builds.
23708 2007-10-29  Gabriel Burt  <gabriel.burt@gmail.com>
23710         * MERGE BUILD FIXES: Replace many instances of track.DisplayTitle/Artist/Album
23711         and other build fixes.
23713 2007-10-29  Gabriel Burt  <gabriel.burt@gmail.com>
23715         * MERGE BUILD FIXES: Replace many instances of track.Title/Artist/Album
23716         and Globals.ArgumentQueue etc.
23718 2007-10-29  Gabriel Burt  <gabriel.burt@gmail.com>
23720         * Get things closer to building. Add SkipCount column.
23722 2007-10-29  Aaron Bockover  <abock@gnome.org>
23724         * HUGE COMMIT: This commit breaks the build horribly and is a first step
23725         in the merge of all the cool model/view stuff; do not expect it to build
23726         or work at all from this point on until ... it does (hopefully within
23727         two weeks)
23729 2007-10-24  Gabriel Burt  <gabriel.burt@gmail.com>
23731         * src/Core/Banshee.Base/ActionManager.cs: Remove ellipses from Plugins
23732         menu item.  Patch from Michael Monreal, fixes BGO #478465.
23734         * src/Plugins/Banshee.Plugins.Podcast/UI/PodcastFeedView.cs: Make strings
23735         more easily translatable. Fixes BGO #407094.
23737 2007-10-14  Yannig Marchegay  <yannig@marchegay.org>
23739         * po/LINGUAS: Added 'oc' to ALL_LINGUAS.
23741 2007-10-04  Sebastian Dröge  <slomo@circular-chaos.org>
23743         * src/Core/Banshee/PlayerInterface.cs: Don't filter by
23744         Artist/Album/Genre if the relevant field is empty or null. Before
23745         Banshee crashed whenever the field was null. (BGO #479237)
23746         While at that, also convert tabs to spaces.
23748 2007-10-03  Gabriel Burt  <gabriel.burt@gmail.com>
23750         * src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs: Prevent
23751         array index out of bounds error -- not sure what's changed (Gtk#?) but
23752         suddenly selecting most smart playlist condition types would cause a
23753         crash.  Fixes BGO #464362.
23755         * src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:
23756         Whitespace.
23758 2007-09-19  Sebastian Dröge  <slomo@circular-chaos.org>
23760         * src/Core/Banshee.Base/Banshee.Library/Import.cs:
23761         * src/Core/Banshee.Base/StreamTagger.cs: Use TagLib to filter files
23762         that don't contain audio only instead of filtering by the mimetype
23763         which breaks for some mp4 files (BGO #472747)
23765 2007-09-04  Aaron Bockover  <abock@gnome.org>
23767         * src/Core/Banshee.ThickClient: Migrated Banshee.ThickClient 
23769 2007-09-04  Aaron Bockover  <abock@gnome.org>
23771         * src/Core/Banshee.Services: Migrated Banshee.Services
23773         * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:
23774         * src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs: Disabled
23775         some things to be added back later
23777         * src/Core/Banshee.Base/Globals.cs: Add Banshee.Services startup to the
23778         existing startup sequence for now
23780         * configure.ac:
23781         * src/Core/Makefile.am:
23782         * src/Core/Core.mds:
23783         * src/Core/Banshee.Base/Makefile.am:
23784         * build/Common.Makefile: Configure Banshee.Services in the build
23786 2007-08-29  Aaron Bockover  <abock@gnome.org>
23788         * src/Core/Hyena:
23789         * src/Core/Hyena.Gui: Added Hyena back from NG
23791         * build/Common.Makefile:
23792         * configure.ac:
23793         * build/banshee.pc.in: Build rules for Hyena
23795         * src/Plugins/Banshee.Plugins.Radio/StationManager.cs: Fixed build bug
23797 2007-08-29  Aaron Bockover  <abock@gnome.org>
23799         * src/Plugins/Banshee.Plugins.Radio/StationManager.cs:
23800         * src/Plugins/Banshee.Plugins.Radio/banshee-plugin-radio.schemas.in:
23801         Patch from Mário Meyer to allow setting the radio station base URI from
23802         which Banshee will load online radio stations
23804 2007-08-19  Aaron Bockover  <abock@gnome.org>
23806         0.13.1 Released
23808         * configure.ac: Bump to 0.13.1
23810         * NEWS: Updated release notes
23812 2007-08-19  Aaron Bockover  <abock@gnome.org>
23814         * src/Core/Banshee.Base/Gui/TrackEditor.cs: Reset the undo managers
23815         bound to each field when changing tracks
23817         * src/Core/Banshee.Base/Hyena/UndoManager.cs: Added a clear method
23819         * src/Core/Banshee.Base/Hyena.Gui/EntryUndoAdapter.cs: Proxy the UndoManager
23821 2007-08-19  Aaron Bockover  <abock@gnome.org>
23823         Fix for BGO #453420
23825         * src/Core/Banshee.Base/Banshee.Cdrom.Nautilus/NautilusDrive.cs: Use HAL
23826         to get capacity information if it is available
23828         * src/Core/Banshee.Base/Banshee.Cdrom.Nautilus/NautilusRecorder.cs: 
23829         Duplicate the burn drive reference as a crappy workaround to some stupid
23830         issue with libnautilus-burn in GNOME 2.19.x+
23832         * src/Core/Banshee.Base/Banshee.Cdrom.Nautilus.Interop/BurnDrive.cs: 
23833         P/Invoke more functions into the glue
23835         * libbanshee/nautilus-burn.c: Add free glue to free/unref depending on
23836         the API version
23838         * libbanshee/gst-transcode-0.10.c: Remove the meta cdwavenc element since
23839         now the CD quality caps are in the WAV profile
23841         * data/audio-profiles/wav.xml.in: Added caps for proper encoding of
23842         CD quality PCM
23844 2007-08-19  Aaron Bockover  <abock@gnome.org>
23846         * src/Core/Banshee.Base/Paths.cs: Expand ~ to home directory
23848 2007-08-19  Aaron Bockover  <abock@gnome.org>
23850         * src/Core/Banshee.Base/Banshee.Playlists.Formats/AsxPlaylistFormat.cs:
23851         Added first pass of ASX parsing support
23853         * src/Core/Banshee.Base/Banshee.Playlists.Formats/PlaylistParser.cs:
23854         Add ASX to the list of playlist formats to try
23856         * tests/*: Added ASX tests 
23858 2007-08-19  Aaron Bockover  <abock@gnome.org>
23860         * src/Plugins/Banshee.Plugins.Radio/RadioTrackInfo.cs:
23861         * src/Core/Banshee.Base/RadioTrackInfo.cs: Moved RadioTrackInfo from
23862         the radio plugin into core
23864         * src/Plugins/Banshee.Plugins.Radio/CellRendererStation.cs: Added null check
23866         * src/Core/Banshee/PlayerInterface.cs: Use RadioTrackInfo with the open
23867         location dialog so now internet playlists can be opened and played
23868         from this dialog
23870 2007-08-19  Aaron Bockover  <abock@gnome.org>
23872         * src/Plugins/Banshee.Plugins.Radio/RadioTrackInfo.cs: Updated to use
23873         the new PlaylistParser in Banshee; handle errors more sanely so the
23874         UI becomes more responsive and informative
23876         * src/Plugins/Banshee.Plugins.Radio/totem-plparser/: Nuked! Internet
23877         Radio playlists are now handled in fully managed code - no more Totem
23878         PlParser dependency
23880         * src/Core/Banshee.Base/Banshee.Playlists.Formats/PlaylistParser.cs:
23881         New PlaylistParser to replace Totem PlParser; this is completely managed
23882         code and uses the new PlaylistFormat work from the previous commit; the
23883         parser currently handles local and HTTP streams
23885         * src/Core/Banshee.Base/Banshee.Playlists.Formats/PlaylistFormatDescription.cs: 
23886         Added a magic delegate to allow the format to see if it may be able to 
23887         parse the playlist
23889         * src/Core/Banshee.Base/Banshee.Playlists.Formats/PlaylistFormatBase.cs:
23890         * src/Core/Banshee.Base/Banshee.Playlists.Formats/IPlaylistFormat.cs:
23891         Add StreamReader API
23893         * src/Core/Banshee.Base/Banshee.Playlists.Formats/M3uPlaylistFormat.cs:
23894         * src/Core/Banshee.Base/Banshee.Playlists.Formats/PlsPlaylistFormat.cs: 
23895         Fixes; refactored slightly to use the tweaked base API
23897         * src/Core/Banshee.Base/Banshee.Playlists/PlaylistFileUtil.cs: Updated
23898         to reflect some minor API changes
23900         * tests/PlaylistFormats.cs: Add some more tests
23902         * src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconPlugin.cs:
23903         Catch some stupid exception
23905 2007-08-19  Aaron Bockover  <abock@gnome.org>
23907         * src/Core/Banshee.Base/Banshee.Playlists/PlaylistFileUtil.cs:
23908         * src/Core/Banshee/PlayerInterface.cs: Updated to use new playlist 
23909         formats API
23911         * src/Core/Banshee.Base/Banshee.Playlists.Formats/PlaylistFile.cs:
23912         * src/Core/Banshee.Base/Banshee.Playlists.Formats/M3u.cs:
23913         * src/Core/Banshee.Base/Banshee.Playlists.Formats/Pls.cs: Removed old
23914         PLS and M3U implementations and the old base class
23916         * src/Core/Banshee.Base/Banshee.Playlists.Formats/PlaylistFormatDescription.cs:
23917         New class to describe a playlist format for GUI/factory reasons
23919         * src/Core/Banshee.Base/Banshee.Playlists.Formats/IPlaylistFormat.cs: 
23920         * src/Core/Banshee.Base/Banshee.Playlists.Formats/PlaylistFormatBase.cs: 
23921         * src/Core/Banshee.Base/Banshee.Playlists.Formats/M3uPlaylistFormat.cs:
23922         * src/Core/Banshee.Base/Banshee.Playlists.Formats/PlsPlaylistFormat.cs: 
23923         API for implementing new playlist formats; new implementation of 
23924         M3U and PLS formats
23926         * src/Core/Banshee.Base/Banshee.Playlists.Formats/InvalidPlaylistException.cs:
23927         Exception for invalid playlists
23929         * src/Core/Banshee.Base/IO/SystemIO.cs:
23930         * src/Core/Banshee.Base/IO/Unix.cs:
23931         * src/Core/Banshee.Base/IO/GnomeVfs.cs:
23932         * src/Core/Banshee.Base/IO/Interfaces.cs: Added OpenRead and OpenWrite
23933         stream methods on File
23935         * build/Common.Makefile: Link against TagLib for BUILD_LIB_BANSHEE
23937         * tests/PlaylistFormats.cs: Added tests for playlist parsing
23939         * tests/playlist-data: Test data for playlist parsing
23941 2007-08-19  Aaron Bockover  <abock@gnome.org>
23943         * src/Plugins/Banshee.Plugins.Recommendation/RecommendationUtilities.cs:
23944         If response stream is GZip compressed, decompress it on the fly using
23945         ICSharpCode.SharpZipLib.GZip (Christian Krause, BGO #468216)
23947         * src/Plugins/Banshee.Plugins.Recommendation/Makefile.am: Link against
23948         ICSharpCode.SharpZipLib
23950         * configure.ac: Check for ICSharpCode.SharpZipLib in GAC
23952 2007-08-15  Aaron Bockover  <abock@gnome.org>
23954         * src/Plugins/Banshee.Plugins.Recommendation/RecommendationPane.cs: 
23955         Finally fixed the 'rating exceeds 100%' issue with the recommendation
23956         plugin - it was a localization/parsing issue (BGO #451457)
23958         * src/Core/Banshee.Base/Globals.cs: Expose a static en-US culture as
23959         InternalCultureInfo for use when parsing non-culture-dependent data
23961         * ChangeLog: Fixed a bunch of dates that were 2006
23963 2007-08-15  Aaron Bockover  <abock@gnome.org>
23965         * src/Core/Banshee.Base/Hyena.Gui/EntryUndoAdapter.cs: An adapter to
23966         use UndoManager against any Gtk.Entry
23968         * src/Core/Banshee.Base/Hyena.Gui/EntryInsertAction.cs:
23969         * src/Core/Banshee.Base/Hyena.Gui/EntryEraseAction.cs: IUndoAction 
23970         implementations for inserting and removing text from a Gtk.Entry
23972         * src/Core/Banshee.Base/Hyena/IUndoAction.cs: Interface for supporting
23973         undoable actions
23975         * src/Core/Banshee.Base/Hyena/UndoManager.cs: Logic for supporting 
23976         unlimited undo/redo actions
23978         * src/Core/Banshee.Base/Gui/TrackEditor.cs: Apply an EntryUndoAdapter
23979         to Gtk.Entry fields in the metadata track editor (BGO #465736)
23981 2007-08-06  Aaron Bockover  <abock@gnome.org>
23983         * src/Core/Banshee.Base/Paths.cs: Support the changes to the 
23984         xdg-user-dirs spec that allow $HOME to start the path; also allows
23985         for quotes surrounding the path (BGO #461596)
23987 2007-08-05  Aaron Bockover  <abock@gnome.org>
23989         * data/banshee.desktop.in.in: Removed X-SuSE-translate
23991 2007-08-05  Aaron Bockover  <abock@gnome.org>
23993         0.13.0 Released
23995         * NEWS: Updated with 0.13.0 release notes
23997         * configure.ac: Do not check for cdparanoiasrc; cdda sources will be
23998         resolved at runtime via URI
24000 2007-08-04  Aaron Bockover  <abock@gnome.org>
24002         * src/Engines/Banshee.MediaEngine.GStreamer/GstPlayerEngine.cs: Pass
24003         the top level GdkWindow to the engine
24005         * libbanshee/gst-misc-0.10.c: Initialize pbutils
24007         * libbanshee/gst-playback-0.10.c: Very basic support for the gstreamer
24008         install plugins framework; still could use a lot of love
24010         * build/m4/banshee/gstreamer.m4: Check to see if pbutils is supported 
24012         * data/audio-profiles/Makefile.am: Do not install the aac/faac profile
24013         as the plugins it requires are very broken in GStreamer; this profile
24014         only confuses users
24016 2007-08-03  Aaron Bockover  <abock@gnome.org>
24018         * libbanshee/gst-cd-rip-0.10.c: Do not hard core cdparanoia. Create the
24019         cdda source from URI to avoid a hard dependency.
24021 2007-07-10  Aaron Bockover  <abock@gnome.org>
24023         * libbanshee/gst-playback-0.10.c: Nasty, hopefully temporary, hack to
24024         ignore errors coming from qtdemux as it seems to have an issue with
24025         demuxing AAC files that come from iTunes Plus store (the DRM-free files)
24027 2007-07-10  Aaron Bockover  <abock@gnome.org>
24029         * src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs: Only call Eject on
24030         the storage volume if storage.requires_eject is not set or is true; calling
24031         Eject on a volume that doesn't require it causes problems (BGO #443048,
24032         Ilya Konstantinov)
24034         * src/Core/Banshee.Base/Gui/PreferencesDialog.cs: Use SetCurrentFolder
24035         instead of SetFilename on FileChooserButton to avoid a race condition
24036         in GTK+ (BGO #443027, Ilya Konstantinov)
24038 2007-07-03  Patrick van Staveren  <trick@vanstaveren.us>
24040         * ext/taglib-sharp: change svn:externals pointer to use http:// rather
24041         than svn://
24043 2007-06-12  Aaron Bockover  <abock@gnome.org>
24045         * data/audio-profiles/wavpack.xml.in: Updated by Sebastian Dröge 
24047 2007-06-10  Gabriel Burt  <gabriel.burt@gmail.com>
24049         * src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs: Set remover to null
24050         when finished deleting and set correct icon (Pepijn van de Geer, BGO
24051         #446037).
24053 2007-06-09  Gabriel Burt  <gabriel.burt@gmail.com>
24055         * src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs: Add
24056         support for querying TrackNumber in smart playlists (Michael Monreal, BGO #445773).
24058 2007-06-09  Gabriel Burt  <gabriel.burt@gmail.com>
24060         * src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs: Increment the counter
24061         to make the (gui) counter and progressbar work (Pepijn van de Geer,
24062         BGO #445770).
24064 2007-06-03  Gabriel Burt  <gabriel.burt@gmail.com>
24066         Patch from Brian Nickel fixing the build.
24068         * src/Core/Banshee.Base/FileTrackInfo.cs:
24069         * src/Core/Banshee.Base/IO/IOProxy.cs:
24070         * src/Core/Banshee.Base/StreamTagger.cs:
24071         * src/Dap/Banshee.Dap.Ipod/DatabaseRebuilder.cs: Work with latest TagLib#.
24073 2007-05-30  Gabriel Burt  <gabriel.burt@gmail.com>
24075         * src/Core/Banshee.Base/Banshee.PlayerMigration/PlayerImportDialog.cs:
24076         * src/Core/Banshee.Base/Banshee.PlayerMigration/AmarokPlayerImport.cs:
24077         * src/Core/Banshee.Base/Banshee.PlayerMigration/RhythmboxPlayerImport.cs:
24078         Make some strings translatable.
24080 2007-05-28  Aaron Bockover  <abock@gnome.org>
24082         Patch to provide 16x16 versions of the playlist icons (BGO #398484, 
24083         Michael Monreal
24085         * src/Core/Banshee/PlayerInterface.cs:
24086         * src/Core/Banshee.Base/Sources/AbstractPlaylistSource.cs:
24087         * src/Core/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
24088         Reference source-smart-playlist-{16,22} and source-playlist-{16,22}
24090         * data/images/source-smart-playlist-16.png:
24091         * data/images/source-playlist-16.png: 16x16 versions of the playlist icons
24093 2007-05-25  Gabriel Burt  <gabriel.burt@gmail.com>
24095         * src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconPlugin.cs:
24096         Show the rating item for Smart Playlists too.
24098 2007-05-24  Aaron Bockover  <abock@gnome.org>
24100         * src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconPlugin.cs:
24101         Allow rating the current playing track from the notif. menu (BGO #337157,
24102         Pepijn van de Geer)
24104 2007-05-24  Aaron Bockover  <abock@gnome.org>
24106         * src/Core/Banshee.Base/Paths.cs: Added ReadXdgUserDir to detect 
24107         XDG user directories; use XDG_MUSIC_DIR or ~/Music for the default
24108         library location
24110 2007-05-23  Aaron Bockover  <abock@gnome.org>
24112         * src/Core/Banshee.Base/IO/SystemIO.cs:
24113         * src/Core/Banshee.Base/IO/Unix.cs:
24114         * src/Core/Banshee.Base/IO/GnomeVfs.cs: Implemented Close(System.IO.Stream)
24115         to reflect changes made in TagLib#
24117 2007-05-22  Aaron Bockover  <abock@gnome.org>
24119         * src/Core/Banshee/PlayerInterface.cs: Do not start search until at 
24120         least three characters are available
24122 2007-05-22  Aaron Bockover  <abock@gnome.org>
24124         NOTE TO ALL: ~/.gnome2/banshee is now ~/.config/banshee
24126         * src/Core/Banshee.Base/Paths.cs: Changed ApplicationData to 
24127         ~/.config/banshee; added new property, LegacyApplicationData which remains
24128         ~/.gnome2/banshee
24130         * src/Core/Banshee.Base/Globals.cs: If Paths.ApplicationData does not
24131         exist, check for Paths.LegacyApplicationData and move the directory
24132         to Paths.ApplicationData if it does; if not, create Paths.ApplicationData
24133         or use it if it already exists
24135         * src/Core/Banshee.Base/Library.cs: Removed unnecessary directory check
24136         and creation of Paths.ApplicationData as this is always handled at
24137         startup
24139 2007-05-22  Aaron Bockover  <abock@gnome.org>
24141         * src/Core/Banshee.Base/Banshee.PlayerMigration/PlayerImportSource.cs:
24142         Use the 'applications-other' icon if it exists... we need a better 
24143         icon for this source; syntax cleanup
24145         * src/Core/Banshee.Base/Gui/ImportDialog.cs: Select PlayerImportSource
24146         if there are no tracks in the library and an audio CD is not available;
24147         make the dialog transient and centered on parent
24149 2007-05-22  Aaron Bockover  <abock@gnome.org>
24151         Patch by Sebastian Dröge <slomo@circular-chaos.org>
24153         * src/Core/Banshee.Base/Banshee.PlayerMigration/*:
24154         * src/Core/Banshee.Base/Makefile.am:
24155         * src/Core/Banshee.Base/Banshee.Base.mdp:
24156         * src/Core/Banshee.Base/Gui/ImportDialog.cs:
24157         Add import source and small framework for importing from libraries by
24158         other players and an importer for Amarok and Rhythmbox (BGO #378430)
24160 2007-05-22  Aaron Bockover  <abock@gnome.org>
24162         * src/Extras/Boo/: Updated bundled Boo assemblies to 0.7.7.2475
24164         * build/Common.Makefile: Link against Boo.Lang.dll
24166         * src/Extras/BooBuddy/BooBuddyInterpreter.cs: Print the Boo compiler
24167         version in the shell welcome message
24169 2007-05-22  Aaron Bockover  <abock@gnome.org>
24171         * src/Plugins/Banshee.Plugins.Recommendation/Makefile.am: Fixed up so
24172         we distcheck ok again
24174         * build/m4/banshee/gmcs-79698.m4:
24175         * build/mcs-test-79698.cs:
24176         * build/Makefile.am:
24177         * build/gmcs.exe:
24178         * configure.ac: Do not run the gmcs check for BXC #79698 anymore (a
24179         bug that plagues gmcs 1.1.18) since it means we have to bundle a fixed
24180         C# compiler; there are several Mono releases since 1.1.18 now with 
24181         fixed packages available for and/or pushed into distros; reduces the
24182         tarball size quite a bit now; however, anyone using 1.1.18 to build
24183         now will get a broken build - be warned
24185 2007-05-22  Aaron Bockover  <abock@gnome.org>
24187         * configure.ac:
24188         * Makefile.am: Updated to reflect tools and extras directory changes
24190         * tools/*: Moved to extras/tools
24192         * extras/scripts/*.boo: Added a safe place for some boo scriptlets which
24193         may be of use to some users
24195 2007-05-09  Aaron Bockover  <abock@gnome.org>
24197         * src/Core/Banshee.Widgets/SearchEntry.cs: Some drawing fixes
24199 2007-05-09  Aaron Bockover  <abock@gnome.org>
24201         * src/Core/Banshee.Base/Banshee.SmartPlaylist/Editor.cs: Properly fixed
24202         up to use the new search filter stuff
24204 2007-05-09  Aaron Bockover  <abock@gnome.org>
24206         * src/Core/Banshee.Widgets/SearchEntry.cs: Completely rewritten SearchEntry
24207         with a better filter API and proper GTK themeing
24209         * src/Core/Banshee.Widgets/HoverImageButton.cs: A cute button that may
24210         end up somewhere standalone, but for now makes up the filter and clear
24211         buttons in the new SearchEntry
24213         * src/Core/Banshee.Base/TrackFilterType.cs: Define what kind of filters
24214         can be made on the track view; means that logic can happen against this
24215         enum instead of lots of stupid Catalog.GetString()+string comparisons,
24216         so searching should actually be a bit faster
24218         * src/Core/Banshee.Base/Source.cs: Save a TrackFilterType instead of the
24219         old string filter name
24221         * src/Core/Banshee/PlayerInterface.cs: Use the new SearchEntry API which
24222         should actually bring search/filter speed improvements
24224         * src/Core/Banshee.Base/Banshee.SmartPlaylist/Editor.cs: Hackishly use
24225         the new SearchEntry API (needs finishing)
24227 2007-05-07  Aaron Bockover  <abock@gnome.org>
24229         * src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconPlugin.cs:
24230         A nice piece of crack I'm not sure about yet - reverse the menu contents
24231         if the notification area is on the bottom of the screen so the most used
24232         items are closest to the panel - more usable in theory, but maybe it's
24233         just creepy?
24235         * src/Dap/Banshee.Dap.Ipod/DatabaseRebuilder.cs:
24236         * src/Core/Banshee.Base/Gui/TrackEditor.cs:
24237         * src/Core/Banshee.Base/FileTrackInfo.cs:
24238         * src/Core/Banshee.Base/StreamTagger.cs: Updated to use the TagLib# 2.0 
24239         API (BGO #436743, Sebastian Dröge)
24241         * ext/taglib-sharp/TagLib: Updated TagLib external reference back to
24242         TagLib# trunk for development work, may cause breakage at times during
24243         this development cycle
24245         * ext/taglib-sharp/Makefile.am:
24246         * ext/taglib-sharp/Makefile.MonoDevelop:
24247         * ext/taglib-sharp/TagLib.sources: Explicitly define sources in 
24248         TagLib.sources and use them for building as wildcard matching no longer
24249         produces a clean build on TagLibg# trunk
24251         * libbanshee/gst-playback-0.10.c: Check to see if playbin is still 
24252         alive before pausing (BGO #436741, Sebastian Dröge)
24254 2007-05-07  Gabriel Burt  <gabriel.burt@gmail.com>
24256         * data/UIManagerLayout.xml:
24257         * src/Core/Banshee.Base/ActionManager.cs: Remove menu items (Columns,
24258         Select All/None) from track context menu.  Properly capitalize others.
24260         * src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconConfigPage.cs:
24261         * src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconMenu.xml:
24262         * src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconPlugin.cs: Add
24263         a menu item for disabling/enabling notifications to the notification icon menu.
24265 2007-05-07  Aaron Bockover  <abock@gnome.org>
24267         * Banshee.mds: Added a new top-level solution that will build in ext/
24268         and in libbanshee/ first
24270         * src/Core/Banshee.Base/Banshee.Base.mdp: Run 
24271         build/monodevelop/fixup-configuredefines before the build
24273         * ext/Makefile.MonoDevelop:
24274         * ext/dbus-sharp/Makefile.MonoDevelop:
24275         * ext/hal-sharp/Makefile.MonoDevelop:
24276         * ext/taglib-sharp/Makefile.MonoDevelop: Simple makefiles that can be
24277         run from inside MonoDevelop without any need to run autogen/configure
24279         * build/monodevelop/fixup-configuredefines: A script to generate 
24280         src/Core/Banshee.Base/ConfigureDefines.cs without having to run 
24281         configure; used from within MonoDevelop
24283 2007-05-07  Aaron Bockover  <abock@gnome.org>
24285         * src/Plugins/Banshee.Plugins.Sample: Added the sample plugin to the build
24286         from the Wiki so we can verify it is always building and working; of 
24287         course it does not get installed/packaged
24289         * configure.ac:
24290         * src/Plugins/Plugins.mds:
24291         * src/Plugins/Makefile.am: Added src/Plugins/Banshee.Plugins.Sample
24293 2007-04-26  Aaron Bockover  <abock@gnome.org>
24295         * src/Plugins/Banshee.Plugins.MMKeys/MMKeysPlugin.cs:
24296         * src/Core/Banshee.Base/GnomeMMKeys.cs:
24297         Added handling for Stop multimedia key (BGO #425247, Bojan Rajkovic)
24299 2007-04-26  Aaron Bockover  <abock@gnome.org>
24301         * src/Core/Banshee.Base/Banshee.Metadata.Embedded/EmbeddedQueryJob.cs:
24302         Fix crash if embedded picture data is null (BGO #433668, Dan Wilson)
24304 2007-04-24  Aaron Bockover  <abock@gnome.org>
24306         * src/Core/Banshee.Widgets/ComplexMenuItem.cs: Do not try to connect
24307         the key press proxy if the new Parent is null; Never proxy Gdk.Key.Escape
24308         to the menu item; implement a default key press override that has the
24309         current Gtk.MenuItem behavior
24311 2007-04-24  Aaron Bockover  <abock@gnome.org>
24313         * src/Core/Banshee/PlayerInterface.cs: Use RatingMenuItem instead of
24314         the submenus which are clunky and ugly
24316         * src/Core/Banshee.Widgets/ComplexMenuItem.cs: A special MenuItem that
24317         allows widgets to be embedded and connected to a proper theme expose
24318         handler, also enables keyboard events to be passed to the menu item
24320         * src/Core/Banshee.Widgets/RatingMenuItem.cs: A ComplexMenuItem that
24321         embeds the RatingEntry in it to allow inline track rating from menus;
24322         with the item selected, it accepts input via the mouse with clicking
24323         or dragging, the scroll wheel, or the keyboard
24325         * src/Core/Banshee.Widgets/RatingEntry.cs: Drawing related changes to
24326         allow the widget to be embedded in other widgets and fit in, but also
24327         work properly as a standalone 'entry'; fix drag-rating in the standalone
24328         event handlers
24330         * src/Core/Banshee.Base/ActionManager.cs:
24331         * data/UIManagerLayout.xml: Remove RatingAction as it was never a real
24332         action and acted only as a visible placeholder
24334 2007-04-23  Aaron Bockover  <abock@gnome.org>
24336         * src/Plugins/Banshee.Plugins.Recommendation/RecommendationPane.cs: 
24337         Load generic-artist.png in place of the artist photo if there's a problem
24338         loading the artist photo from last.fm (BGO #432200); cosmetic string
24339         changes; round the similarity value to the nearest whole percentage;
24340         introduce a cache wipe/versioning system to allow the cache to be wiped
24341         if the code to parse it changes later on (see NOTE in code) - everyone
24342         will start out with a clean cache after this update at version 2
24344         * src/Plugins/Banshee.Plugins.Recommendation/RecommendationPlugin.cs:
24345         Added schema for cache_version
24346         
24347         * src/Plugins/Banshee.Plugins.Recommendation/generic-artist.png: Added
24348         a musician to display if an artist photo cannot be loaded from last.fm
24350 2007-04-18  Aaron Bockover  <abock@gnome.org>
24352         * src/Plugins/Banshee.Plugins.Daap/DaapCore.cs: Share local playlists
24353         over DAAP (BGO #407672, Daniel Munckton)
24355         * src/Core/Banshee/Banshee.TrackView.Columns/DateAddedColumn.cs: 
24356         * src/Core/Banshee/Banshee.TrackView.Columns/TrackViewColumn.cs:
24357         * src/Core/Banshee/PlaylistView.cs: Added a Date Added column for the
24358         track view (BGO #392232, Pepijn van de Geer)
24360         * src/Core/Banshee.Base/ActionManager.cs: Fix capitalization errors; first 
24361         break of string freeze from 0.12.x (BGO #410183, Igor Guerrero Fonseca)
24363         * src/Extras/BooBuddy/BooBuddy.Debugger/DebugAliasBuilder.cs: Fix p_help()
24364         output to correctly show description (BGO #424951, Ruben Vermeersch)
24366         * src/Extras/BooBuddy/BooBuddy.Debugger/DebugAliasAttribute.cs:
24367         * src/Extras/BooBuddy/BooBuddy.Debugger/DebugAliasBuilder.cs: Ensure
24368         functions are not aliased twice to allow Boo Buddy to be closed and
24369         re-opened (BGO #416991, Scott Peterson)
24371         * src/Core/Banshee/PlayerInterface.cs: Sort the playlists in 'Add to
24372         playlist' in the same order as sources (BGO #398489, Pepijn van de Geer)
24374 2007-04-18  Aaron Bockover  <abock@gnome.org>
24376         * src/Core/Banshee/PlayerInterface.cs: Make the track view popup menu
24377         accessible from the keyboard (BGO #334132, Bill Dawson)
24379 2007-04-18  Aaron Bockover  <abock@gnome.org>
24381         This patch adds org.gnome.SettingsDaemon MM Keys support, originally
24382         done by Jan Arne Petersen as a patch to the MM Keys plugin. Redesigned 
24383         by myself to leave support for older GNOME in tact while removing the
24384         overhead of a plugin on new GNOME. Fixes BGO #395433.
24386         * src/Core/Banshee.Base/Plugins/PluginFactory.cs (AddExcludeMask): Allow
24387         filtering plugins for exclusion based on their file name
24389         * src/Core/Banshee.Base/Plugins/PluginCore.cs: Do not load the legacy
24390         MM Keys plugin if the new GnomeMMKeys is loaded successfully
24392         * src/Core/Banshee.Base/GnomeMMKeys.cs: A standalone MM Keys component
24393         that uses the new org.gnome.SettingsDaemon DBus interface available in
24394         GNOME 2.18+. If this component loads, the legacy plugin will be disabled
24396         * src/Core/Banshee.Base/Globals.cs: Try to load GnomeMMKeys at startup;
24397         load DBus background components before plugins in case the plugins need
24398         to access them
24400 2007-04-17  Aaron Bockover  <abock@gnome.org>
24402         * src/Plugins/Banshee.Plugins.Daap/DaapSource.cs: Crash fix (BGO #406923, 
24403         Eric Butler)
24405         * src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs: Resolve PSP Audio 
24406         Device Properties crash (BGO #419163, Jason Conti)
24408         * src/Plugins/Banshee.Plugins.Recommendation/RecommendationUtilities.cs:
24409         Prevent reco cache from getting corrupt (BGO #381229, Pepijn van de Geer)
24411         * src/Core/Banshee.Base/Dap/Dap.cs: Fixed NJB syncing (BGO #405289, 
24412         Mitch Reierson)
24414         * src/Core/Banshee.Base/Banshee.AudioProfiles.Gui/ProfileComboBox.cs:
24415         Do not forget profile setting (BGO #410498, Lauri Kotilainen)
24417         * src/Core/Banshee.Base/Gui/SourceView.cs: Ensure sources that are not
24418         CanActivate really can't be activated (BGO #415138, Scott Peterson)
24420 2007-04-17  Aaron Bockover  <abock@gnome.org>
24422         * build/gconf-schema-rules: Revert previous commit as it breaks the 
24423         install if builddir is undefined; also shouldn't be necessary at all as
24424         builddir is effectively supposed to be '.' if set and the script is run
24425         from the directory with the .schema file in it anyway
24427 2007-04-16  Gary Ekker  <gekker@novell.com>
24429         * build/gconf-schema-rules: Fix installation path of schema_DATA
24431 2007-04-13  Gabriel Burt  <gabriel.burt@gmail.com>
24433         * src/Plugins/Banshee.Plugins.Bookmarks/BookmarksPlugin.cs: Use UIManager
24434         for the Add Bookmark item and have Ctrl-D activate it.  Add hidden logger
24435         warnings for several errors.
24437         * src/Plugins/Banshee.Plugins.Bookmarks/BookmarksMenu.xml:
24438         * src/Plugins/Banshee.Plugins.Bookmarks/Makefile.am: New menu XML.
24440 2007-04-13  Gabriel Burt  <gabriel.burt@gmail.com>
24442         * src/Plugins/Banshee.Plugins.Bookmarks/BookmarksPlugin.cs: Clean the
24443         design of the plugin with clear distinctions between the plugin, the UI,
24444         and the model.  Handle bookmarked tracks being removed, and escape
24445         underscores in track names when putting them in menus, and make the plugin
24446         name translatable.
24448 2007-04-12  Aaron Bockover  <abock@gnome.org>
24450         Added playlist import/export functionality (BGO #363018)
24451         Trey Ethridge <tale@juno.com>
24453         * src/Core/Banshee/PlayerInterface.cs: Implemented OnImportPlaylistAction
24454         and OnExportPlaylistAction
24455         
24456         * src/Core/Banshee.Base/Gui/FileChooserDialog.cs: Overloaded constructor.
24457         
24458         * src/Core/Banshee.Base/Banshee.Playlists.Formats/Pls.cs: Uncommented 
24459         exception that is thrown when import determines file is not a Pls file.
24461         * src/Core/Banshee.Base/Banshee.Playlists.Formats/PlaylistFile.cs: Added
24462         null ref check
24464         * src/Core/Banshee.Base/Banshee.Playlists.Formats/Pls.cs:
24465         * src/Core/Banshee.Base/Banshee.Playlists.Formats/M3u.cs: Uncommented 
24466         exception that is thrown when import determines file is not a playlist file
24468         * src/Core/Banshee.Base/SourceManager.cs: Show the export option on 
24469         playlist source context menus
24471         * src/Core/Banshee.Base/Banshee.Library/Import.cs: Exposed import status
24473         * src/Core/Banshee.Base/ImportManager.cs: Exposed import status
24475         * src/Core/Banshee.Base/Banshee.Playlists/PlaylistFileUtil.cs: Utilities
24476         for playlist files
24477         
24478         * src/Core/Banshee.Base/Banshee.Playlists/IPlaylist.cs: Added interface 
24479         for playlists to implement. Allows the export menu option to be added 
24480         to context menu in a generic manner.
24481         
24482         * src/Core/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
24483         * src/Core/Banshee.Base/Sources/PlaylistSource.cs: Implemented IPlaylist
24485         * src/Core/Banshee.Base/ActionManager.cs: Added actions for import/export
24487 2007-04-03  Gabriel Burt  <gabriel.burt@gmail.com>
24489         Add new plugin, disabled by default, for bookmarking positions in tracks.
24491         * configure.ac:
24492         * src/Plugins/Makefile.am:
24493         * src/Plugins/Plugins.mds:
24494         * src/Plugins/Banshee.Plugins.Bookmarks/BookmarksPlugin.cs:
24495         * src/Plugins/Banshee.Plugins.Bookmarks/Makefile.am:
24496         * src/Plugins/Banshee.Plugins.Bookmarks/banshee-plugin-bookmarks.schemas.in:
24497         * src/Plugins/Banshee.Plugins.Bookmarks/Banshee.Plugins.Bookmarks.mdp: New.
24499 2007-04-01  Aaron Bockover  <abock@gnome.org>
24501         * build/m4/banshee/dap-ipod.m4: Required ipod-sharp 0.6.3
24503 2007-04-01  Aaron Bockover  <abock@gnome.org>
24505         * configure.ac: Bump version to 0.13.0 to mark the start of the new 
24506         development series
24508 2007-03-31  Aaron Bockover  <abock@gnome.org>
24510         * src/Core/Banshee.Base/Utilities.cs (SetProcessName): Added a fallback
24511         to setproctitle if prctl fails; this should work for BSD
24513 2007-03-31  Aaron Bockover  <abock@gnome.org>
24515         * src/Dap/Banshee.Dap.Ipod/IpodDap.cs: Fixed major bug where no tracks
24516         would be read on an HFS+ iPod; handle new iPod shuffles a little better;
24517         map to more suitable device icons for new Nanos and Shuffles
24519         * src/Dap/Banshee.Dap.Ipod/UnsupportedDatabaseView.cs: Dot not offer to
24520         rebuild the database if iPod is read only/HFS+
24522         * src/Core/Banshee.Base/Banshee.AudioProfiles.Gui/ProfileComboBoxConfigurable.cs:
24523         * src/Core/Banshee.Base/Dap/DapPropertiesDialog.cs: Do not crash when
24524         reading profile properties
24526         * src/Core/Banshee.Base/Banshee.Kernel/Scheduler.cs: Added Suspend/Resume
24527         methods to stop the processing of scheduled jobs
24529         * src/Core/Banshee.Base/QueuedOperationManager.cs: Internals rewritten
24530         to use the scheduler instead of creating its own threads; there was a huge
24531         bug here that ended up potentially spawning hundreds of threads. Evil.
24532         The scheduler rocks.
24534         * src/Core/Banshee.Base/Sources/DapSource.cs: Added some null checks and
24535         updated to reflect changes in QOM
24537         * src/Plugins/Banshee.Plugins.Podcast/PodcastDBManager.cs: Do not bail
24538         reading the DB if the date/time is invalid
24540 2007-03-25  Ruben Vermeersch  <ruben@savanne.be>
24542         * src/Core/Banshee.Base/Paths.cs: Fix a typo in DefaultLibraryPath 
24543         (BGO #422442)
24545 2007-03-19  Alp Toker  <alp@atoker.com>
24547         * ext/dbus-sharp/README: Add dbus-sharp README so hackers/packagers
24548         can find out more
24550 2007-03-19  Alp Toker  <alp@atoker.com>
24552         * ext/dbus-sharp/*: Update dbus-sharp to 0.4.2 stable release
24554 2007-03-05  Aaron Bockover  <abock@gnome.org>
24556         0.12.0 Released
24558         * NEWS: Updated with 0.12.0 release notes
24560 2007-03-05  Aaron Bockover  <abock@gnome.org>
24562         * configure.ac: Bumped to 0.12.0
24564         * src/Core/Banshee/banshee.in: Prepend GST_PLUGINS_PATH instead of
24565         overwriting it
24567 2007-03-05  Aaron Bockover  <abock@gnome.org>
24569         * src/Plugins/Banshee.Plugins.Radio/RadioSource.cs: Implement StartPlayback
24570         method which will play either the selected station, the first station
24571         in the selected group, or the first station in the first group when
24572         there is no selection (happens when the main play button is clicked);
24573         disabled the previous/next actions as they do not apply to radio
24575         * src/Plugins/Banshee.Plugins.MiniMode/SourceModel.cs: Updated FindSource
24576         to be recursive like the SourceView (Scott Peterson, BGO #414505)
24578         * src/Core/Banshee.Base/Gui/SourceView.cs: Fixed ellipsis code to not
24579         use excessive substrings in a try/catch form; efficient and no longer
24580         ugly (Scott Peterson, BGO #414485)
24582         * src/Plugins/Banshee.Plugins.MiniMode/minimode.glade: Full screen button
24583         should not have relief now that others do not
24585         * src/Plugins/Banshee.Plugins.Recommendation/RecommendationPane.cs:
24586         Update background of recommendations pane on StyleSet (Brian Kerrick
24587         Nickel BGO #413593)
24589         * src/Core/Banshee.Base/PlayerEngineCore.cs: Added null check for
24590         CurrentTrack (BGO #410364)
24592         * src/Core/Banshee.Base/SafeUri.cs: Added Equals method
24594         * src/Core/Banshee.Base/Source.cs: Added StartPlayback virtual method
24595         that sources can override to handle when the play button is pressed
24596         while the engine is in idle
24598         * src/Core/Banshee.Widgets/FadingAlignment.cs: Updated to be a bit more
24599         subtle and use better color choices (background+mid); Added a subtle 
24600         left border to blend better with the view widget (BGO #412584)
24602         * src/Core/Banshee/PlaylistModel.cs: Reset the PlayingIter to zero when
24603         a new stream is started
24605         * src/Core/Banshee/PlaylistView.cs: Set as 'now playing' when the playing
24606         iter is set, do not update the iter is non-zero; set the PlayingIter
24607         when the URIs of two tracks are equal, caches to reduce comparisons; fixes
24608         both (BGO #408128, #348079, BNC #228720)
24610         * src/Core/Banshee/PlayerInterface.cs: In PlayPause, call StartPlayback
24611         on the active source if it implements the method and the engine is in
24612         the idle state
24614         * src/Core/Banshee/Main.cs: Manually call gdk_set_program_class as there
24615         appears to be an issue with window grouping in SLED FCS and SP1; also
24616         use Gnome.Program.Run instead of Gtk.Application.Run (BNC #249494)
24618 2007-02-26  Mike Kestner  <mkestner@novell.com>
24620         * autogen.sh: don't clobber existing ACLOCAL_FLAGS.
24622 2007-02-26  Aaron Bockover  <abock@gnome.org>
24624         * src/Plugins/Banshee.Plugins.Radio/StationManager.cs: Ensure that local
24625         stations can be loaded even if the remote ones can't (BNC #248831)
24627         * src/Core/Banshee.Base/Banshee.Playlists.Formats.Xspf/Playlist.cs: Throw
24628         an exception if the XSPF document does not have a valid root node to 
24629         ensure that a NullReferenceException doesn't get thrown (can be bad due
24630         to how Mono handles them - often they lead to an unhandled SIGSEGV)
24632 2007-02-25  Gabriel Burt  <gabriel.burt@gmail.com>
24634         * src/Core/Banshee/PlayerInterface.cs: Make the Remove content menu option
24635         insensitive for SmartPlaylistSources.  Make the Add to Playlist/Ratings
24636         menus show up for SmartPlaylistSources.  Fixes BGO #411221.
24638 2007-02-24  Aaron Bockover  <abock@gnome.org>
24640         * src/Core/Banshee/PlayerInterface.cs: Use the Fading Alignment under the
24641         playlist header
24643         * src/Core/Banshee.Widgets/FadingAlignment.cs: Make the gradient look nicer
24645         * data/banshee.glade: Reordered some widgets to allow for proper spacing
24647 2007-02-23  Aaron Bockover  <abock@gnome.org>
24649         * libbanshee/gst-playback-0.10.c: Set the pipeline to playing or paused
24650         when at the right time when buffering a stream so the clock can't get
24651         ahead of itself, which may cause some streams to rebuffer depending on
24652         the stream and network speed (BGO #410278)
24654 2007-02-22  Aaron Bockover  <abock@gnome.org>
24656         * src/Core/Banshee.Base/FileNamePattern.cs: Forgot to mark 
24657         ExpandTokenHandler as public too
24659 2007-02-22  Aaron Bockover  <abock@gnome.org>
24661         * src/Core/Banshee.Base/FileNamePattern.cs: Make AddConversion and
24662         the Conversion struct public, inlined access to the conversion table
24663         values (Alptacular)
24665 2007-02-21  Aaron Bockover  <abock@gnome.org>
24667         * src/Plugins/Banshee.Plugins.Recommendation/RecommendationUtilities.cs
24668         (HostInjectionHack): Work around a last.fm web services bug where they 
24669         return URIs without a host name on some content. It appears the host
24670         name is always static3.last.fm, but that may not be the case for all 
24671         data or it may change in the future - last.fm should fix their 
24672         stuff (BGO #408068)
24674 2007-02-21  Aaron Bockover  <abock@gnome.org>
24676         * src/Core/Banshee/banshee.in: Do not use @MONO@, which hard codes the
24677         mono runtime location; just use mono and let the right one be chosen
24678         from PATH - useful when working with parallel mono environments
24680         * src/Core/Banshee.Base/Banshee.Cdrom.Nautilus/NautilusDriveFactory.cs: 
24681         Add an explicit null check for HalCore.Manager to get around any potential
24682         SEGV signal issues when throwing NullReferenceException; ensures that
24683         even if HAL isn't available, the app should continue to load, regardless
24684         of signal settings (which determine if SEGV can chain up to 
24685         NullReferenceException by being handled by the runtime))
24687         * ext/hal-sharp/Manager.cs: Do the same as the above, plus throw a 
24688         more descriptive exception with cute DBus details
24690 2007-02-21  Aaron Bockover  <abock@gnome.org>
24692         * src/Dap/Banshee.Dap.Ipod/IpodQueryJob.cs
24693         * src/Dap/Banshee.Dap.Ipod/IpodMetadataProvider.cs: Updated to reflect
24694         API updates in the metadata services
24696 2007-02-21  Aaron Bockover  <abock@gnome.org>
24698         * build/m4/banshee/dbus.m4:
24699         * build/Common.Makefile:
24700         * ext/dbus-sharp/Makefile.am:
24701         * configure.ac: Patch from Sebastian Dröge to allow linking against an
24702         external installation of NDesk DBus (BGO #409964)
24704 2007-02-20  Aaron Bockover  <abock@gnome.org>
24706         * src/Core/Banshee.Widgets/VolumeButton.cs: Do not show the slider dock
24707         when scrolling on the volume button; stop the scroll signal emission 
24708         in event-after to keep the tooltip showing (and reflecting the updated
24709         volume level) as the scroll happens, like the panel applet volume button
24711 2007-02-20  Aaron Bockover  <abock@gnome.org>
24713         * src/Core/Banshee.Base/Banshee.AudioProfiles.Gui/TextViewLabel.cs: A 
24714         GtkTextView that acts and looks more like a GtkLabel - but it has nice
24715         word wrapping
24717         * src/Core/Banshee.Base/Banshee.AudioProfiles.Gui/ProfileConfigurationDialog.cs:
24718         Make the dialog resizable in the X direction; Use the new TextViewLabel 
24719         to show the description so when resizing, it can wrap properly; set a 
24720         good default minimum width
24722         * src/Core/Banshee.Base/Banshee.AudioProfiles.Gui/ProfileComboBoxConfigurable.cs:
24723         Use the TextViewLabel to show the description (widget is based on code
24724         that was written directly into ProfileComboBoxConfigurable.)
24726 2007-02-20  Aaron Bockover  <abock@gnome.org>
24728         * src/Core/Banshee.Base/Banshee.Metadata/MetadataServiceJob.cs:
24729         * src/Core/Banshee.Base/Banshee.Metadata/IMetadataLookupJob.cs:
24730         * src/Core/Banshee.Base/Banshee.Metadata/MetadataService.cs:
24731         * src/Core/Banshee.Base/Banshee.Metadata/IMetadataProvider.cs:
24732         * src/Core/Banshee.Base/Banshee.Metadata/BaseMetadataProvider.cs:
24733         * src/Core/Banshee.Base/Banshee.Base.mdp:
24734         * src/Core/Banshee.Base/Banshee.Metadata.Rhapsody/RhapsodyMetadataProvider.cs:
24735         * src/Core/Banshee.Base/Banshee.Metadata.Rhapsody/RhapsodyQueryJob.cs:
24736         * src/Core/Banshee.Base/Banshee.Metadata.Embedded/EmbeddedMetadataProvider.cs:
24737         * src/Core/Banshee.Base/Banshee.Metadata.Embedded/EmbeddedQueryJob.cs:
24738         * src/Core/Banshee.Base/Globals.cs:
24739         * src/Core/Banshee.Base/AudioCd/AudioCdDisk.cs:
24740         * src/Core/Banshee.Base/Makefile.am:
24741         * src/Core/Banshee.Base/Banshee.Metadata.MusicBrainz/MusicBrainzMetadataProvider.cs:
24742         * src/Core/Banshee.Base/Banshee.Metadata.MusicBrainz/MusicBrainzQueryJob.cs:
24743         Use the new MetadataSettings so there's no dependency on core/app features
24744         that previously made the metadata services only usable inside the Banshee
24745         application context; provide a GlobalMetadataSettings implementation that
24746         implements settings for the application core
24748 2007-02-20  Aaron Bockover  <abock@gnome.org>
24750         0.11.7 Released
24752         * NEWS: Updated with 0.11.7 notes
24754         * configure.ac: Bump to 0.11.7
24756 2007-02-19  Aaron Bockover  <abock@gnome.org>
24758         * src/Engines/Banshee.MediaEngine.GStreamer/GstPlayerEngine.cs: Do not
24759         update the CurrentTrack if it is null
24761         * src/Core/Banshee/PlaylistView.cs: call column.SetMaxFixedWidth(this)
24763         * src/Core/Banshee/PlayerInterface.cs: Show dialogs for LogCore LogEntrys
24764         that have been logged before connecting to the event; prompt for importing
24765         when the StartupInitializer is done, not through some library loaded hack
24767         * src/Core/Banshee/Banshee.TrackView.Columns/TrackViewColumn.cs: Added 
24768         SetMaxFixedWidth to size fixed width columns properly
24770         * src/Core/Banshee/Banshee.TrackView.Columns/TrackNumberColumn.cs: Set
24771         the fixed width strings
24773         * src/Core/Banshee/Main.cs: Handle any exceptions that happen when trying
24774         to initialize DBus; log a warning if there's a problem
24776         * src/Core/Banshee.Base/Gui/SplashScreen.cs: Turn off KeepAbove so the
24777         splash screen doesn't force itself above other windows
24779         * src/Core/Banshee.Base/DBusPlayer.cs: If only one CD is available and
24780         no argument is passed to --audio-cd, select the single CD
24782 2007-02-07  Aaron Bockover  <abock@gnome.org>
24784         * ext/dbus-sharp/*: Updated dbus-sharp and dbus-sharp-glib to 0.4.0 and
24785         0.3.0 respectively; number of fixes and performance improvements including
24786         a fix for surviving a session bus restart
24788 2007-02-05  Aaron Bockover  <abock@gnome.org>
24790         * libbanshee/gst-cd-rip-0.10.c: Fix major crasher that sometimes happens
24791         when canceling a CD rip; caused by memory corruption due to not setting
24792         an unreffed object pointer to null; _free calls _cancel to avoid code
24793         dupication
24795         * src/Plugins/Banshee.Plugins.Radio/RadioSource.cs: Allow the view to
24796         scroll horizontally
24797         
24798         * src/Plugins/Banshee.Plugins.Recommendation/RecommendationPlugin.cs:
24799         Hide the pane when the player state goes idle
24801         * src/Core/Banshee/PlayerInterface.cs: Set the cover art for the cover
24802         art view to null when idle
24804         * src/Core/Banshee.Widgets/CoverArtView.cs: Hide on null
24806         * src/Core/Banshee.Base/FileNamePattern.cs: Added more characters to
24807         escape, and cache the regular expression
24809 2007-02-05  Aaron Bockover  <abock@gnome.org>
24811         0.11.6 Released
24813         * NEWS: Updated 
24815         * NOTES: Reset
24817         * src/Plugins/Banshee.Plugins.Radio/Makefile.am: Added files to EXTRA_DIST
24819 2007-02-05  Aaron Bockover  <abock@gnome.org>
24821         * src/Core/Banshee.Base/Gui/SourceView.cs: Prevent a possible 
24822         nullref when dropping on the view and not on a row (BNC 236798)
24824         * src/Core/Banshee.Widgets/ActionButton.cs: Decreased spacing between
24825         icon and label; looked strange now that the buttons don't have relief
24827         * configure.ac: Bumped to 0.11.6
24829 2007-02-05  Aaron Bockover  <abock@gnome.org>
24831         * Plugins/Banshee.Plugins.Radio/StationManager.cs: Added Create, Update,
24832         and Remove station methods; support showing/hiding remote stations
24834         * Plugins/Banshee.Plugins.Radio/RadioPlugin.cs: Support showing/hiding
24835         remote stations
24837         * Plugins/Banshee.Plugins.Radio/RadioSource.cs: Added UI for editing,
24838         adding, and removing stations
24839         
24840         * Plugins/Banshee.Plugins.Radio/StationGroup.cs: Added Save method
24842         * Plugins/Banshee.Plugins.Radio/StationModel.cs: Support adding, updating,
24843         and removing stations
24845         * Plugins/Banshee.Plugins.Radio/StationEditor.cs: Editor dialog for local
24846         stations
24848         * Plugins/Banshee.Plugins.Radio/RadioActions.xml: Updated UI
24850         * Core/Banshee.Base/Banshee.Playlists.Formats.Xspf/Playlist.cs:
24851         * Core/Banshee.Base/Banshee.Playlists.Formats.Xspf/XspfBaseObject.cs:
24852         * Core/Banshee.Base/Banshee.Playlists.Formats.Xspf/Track.cs: Added
24853         basic XML write support for XSPF playlists
24855 2007-02-04  Aaron Bockover  <abock@gnome.org>
24857         * src/Core/Banshee.Widgets/VolumeButton.cs: Port of the C version of
24858         BaconVolumeWidget - a much more natural and easy to use volume button
24860 2007-02-03  Aaron Bockover  <abock@gnome.org>
24862         * src/Core/Banshee.Base/Gui/TrackEditor.cs:
24863         * data/banshee-dialogs.glade: Changed wording on the copy all fields button
24864         to make it easier to understand and translate (BGO 399650)
24866 2007-02-03  Aaron Bockover  <abock@gnome.org>
24868         * src/Core/Banshee/PlaylistView.cs: Remove Dispose override, 
24869         added SaveColumns
24871         * src/Core/Banshee/PlayerInterface.cs: Call playlistView.SaveColumns
24873 2007-02-02  Aaron Bockover  <abock@gnome.org>
24875         * src/Core/Banshee.Widgets/CoverArtThumbnail.cs: Call SetSizeRequest on
24876         the image, not on the window, ensure Resize on the window is always smaller
24877         than the image so the image.SetSizeRequest ends up making the window 
24878         fit perfectly to the scaled cover art (Fixes BGO 334698); split 
24879         CoverArtView into a separate file
24880         
24881         * src/Core/Banshee.Widgets/CoverArtView.cs: Split class out of old file
24883 2007-02-01  Aaron Bockover  <abock@gnome.org>
24885         * src/Core/Banshee/PlaylistView.cs: Add a 1px fixed column that can't be 
24886         moved or resized and is always in the last position; do not allow columns
24887         to be dragged to the right of this special column; this ensures that if
24888         the user drags a resizable column into the 'last' position, it will not
24889         fill to eat the remaining width of the view, thus creating a false width;
24890         this should _finally_ get rid of unwanted horizontal scrolling. This
24891         fix is hereby dedicated to Whiprush.
24893         * src/Core/Banshee/Banshee.TrackView.Columns/TrackViewColumn.cs: Turn
24894         on ellipsizing on columns CellRendererText renderers, fixed packing of
24895         the renderer - a bug exposed by setting ellipsizing
24897         * src/Core/Banshee.Base/Sources/AudioCdSource.cs: Show a 'Copy CD' action
24898         button in the header when the source is active
24900 2007-02-01  Aaron Bockover  <abock@gnome.org>
24902         * data/banshee.glade: Made spacing look better now that buttons do not
24903         have a relief style
24905         * data/UIManagerLayout.xml: Added placeholder for actions that are 'new'
24907         * data/audio-profiles/Makefile.am: CLEANFILES->DISTCLEANFILES, fixes a 
24908         potential build issue regarding generating the audio profiles .xml files
24910         * src/Plugins/Banshee.Plugins.Podcast/*: Added a subscribe button to the
24911         toolbar, change the verbage of 'feed' to 'podcast' as it's more user 
24912         friendly (BNC 237045, 237038)
24914         * src/Plugins/Banshee.Plugins.Radio/RadioSource.cs: Do not show the
24915         playlist header and disable Write to CD action
24917         * src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconPlugin.cs:
24918         Fixed a potential crasher regarding showing cover art (BNC 236428)
24920         * src/Core/Banshee/PlayerInterface.cs: Fixed visibility logic of the
24921         playlist header; fixed a tiny focus bug
24923         * src/Core/Banshee.Widgets/ActionButton.cs: Set relief to none
24925         * src/Core/Banshee.Widgets/FadingAlignment.cs: Added a nice fading
24926         widget, but it's not in use anywhere right now; my idea didn't work
24927         out like I wanted it to, but the widget may still be useful
24929         * src/Core/Banshee.Widgets/DiscUsageDisplay.cs:
24930         * src/Core/Banshee.Widgets/DrawingUtilities.cs: Moved GdkColorToCairoColor
24931         from private widgets to avoid duplication
24933         * src/Core/Banshee.Base/Gui/ExceptionDialog.cs: Do not load the icon
24934         name for the window from branding because the dialog might be handling
24935         a crash from before branding initialization, in which case a nullref
24936         will occur
24938         * src/Core/Banshee.Base/IconThemeUtils.cs: Finally updated to use the
24939         binding API for Gtk.IconTheme love; this code was written in the Gtk# 2.4
24940         era, when there was no binding for Gtk.IconTheme; gets rid of a lot of
24941         native interop at the Banshee level
24943         * src/Core/Banshee.Base/Sources/AudioCdSource.cs: Disable the Write to CD
24944         action
24946         * src/Core/Banshee.Base/TrackInfoHeader.cs: Ensure the cover art thumbnail
24947         is hidden on idle, not just empty
24949         * src/Core/Banshee.Base/SourceManager.cs: Respect source.CanWriteToCD
24951         * src/Core/Banshee.Base/Source.cs: Added CanWriteToCD virtual property
24953 2007-01-31  Gabriel Burt  <gabriel.burt@gmail.com>
24955         * src/Core/Banshee.Base/FileNamePattern.cs: Escape &'s too.
24957         * src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs: Log exceptions caught
24958         while transferring songs.
24960 2007-01-31  Gabriel Burt  <gabriel.burt@gmail.com>
24962         * src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs: If the DAP is not
24963         restricted to a particular folder depth, use the normal Banshee
24964         FileNamePattern when copying music over. Fixes BGO #398491.
24966 2007-01-30  Gabriel Burt  <gabriel.burt@gmail.com>
24968         * src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:
24969         * src/Dap/Banshee.Dap.MassStorage/MassStorageTrackInfo.cs: Cleanup
24970         whitespace (follow HACKING).
24972 2007-01-29  James Willcox  <snorp@snorp.net>
24974         * src/Plugins/Banshee.Plugins.Daap/daap-sharp/Database.cs: updated from
24975         upstream, fixes a problem where track numbers weren't showing up.
24977 2007-01-24  Aaron Bockover  <abock@gnome.org>
24979         * src/Core/Banshee.Widgets/PropertyTable.cs: Do not add a key label
24980         if the key string is null
24982         * src/Core/Banshee.Base/Banshee.AudioProfiles.Gui/ProfileConfigureButton.cs:
24983         Protected against a potential nullref
24985         * src/Core/Banshee.Base/Banshee.AudioProfiles.Gui/ProfileConfigurationDialog.cs:
24986         Added ':' to the end of the control labels
24988         * src/Core/Banshee.Base/Sources/DapSource.cs: Override the default source
24989         property label to 'iPod Properties', where iPod is the generic device 
24990         name - nicer than 'Source Properties'
24992         * src/Core/Banshee.Base/Dap/DapPropertiesDialog.cs: Use a description box
24993         container so the profile selector doesn't look goofy
24995 2007-01-24  Aaron Bockover  <abock@gnome.org>
24997         * src/Core/Banshee.Base/Banshee.AudioProfiles/PipelineVariable.cs:
24998         * src/Core/Banshee.Base/Banshee.AudioProfiles/Profile.cs: Use the XML
24999         utilities in Banshee.Base.Localization to select the right string node
25000         based on xml:lang
25002         * src/Core/Banshee.Base/Localization.cs: Utilities to read the instance
25003         language setting (based on g_get_language_names()); XML utilities to to
25004         select nodes matching a query that also match against an xml:lang for
25005         the language in the current instance
25007         * src/Core/Banshee.Base/Makefile.am:
25008         * src/Core/Banshee.Base/Banshee.Base.mdp: Added Localization.cs
25010         * data/audio-profiles/vorbis.xml.in: Missed two strings to be translated
25012 2007-01-23  Aaron Bockover  <abock@gnome.org>
25014         * data/audio-profiles/*.xml.in: Moved from *.xml, edit to allow intltool
25015         to extract and merge translations
25017         * data/audio-profiles/Makefile.am: Added, use INTLTOOL_XML_RULE to 
25018         support translating the audio profiles
25020         * data/Makefile.am: Include audio-profiles in SUBDIRS, do not install
25021         the audio profiles as the audio-profiles/Makefile will do that now
25023         * configure.ac: Generate data/audio-profiles/Makefile
25025 2007-01-22  Patrick van Staveren  <trick@vanstaveren.us>
25027         * build/m4/banshee/dap-mtp.m4: properly quote error string and
25028         give more useful output.
25030 2007-01-22  Aaron Bockover  <abock@gnome.org>
25032         * configure.ac: Bumped to 0.11.5
25034         * NEWS: Updated with 0.11.5 release notes
25036         * src/Core/Banshee.Base/BatchTranscoder.cs: Added the ability to register
25037         alternative Transcoder types for handing WAV encoding 
25039         * src/Core/Banshee.Base/Banshee.Metadata/MetadataService.cs: Removed
25040         the obsolete API
25042         * src/Plugins/Banshee.Plugins.MetadataSearch/banshee-plugin-metadatasearcher.schemas.in: 
25043         Updated
25045 2007-01-21  Aaron Bockover  <abock@gnome.org>
25047         * src/Core/Banshee.Base/Banshee.Metadata.MusicBrainz/MusicBrainzQueryJob.cs:
25048         Added a Lookup method that returns bool; support instances with a 
25049         pre-determined ASIN
25051         * src/Core/Banshee.Base/AudioCd/AudioCdDisk.cs: Perform a sync lookup
25052         through MusicBrainzQueryJob to fetch cover art for audio CDs
25054         * src/Core/Banshee.Base/AmazonCoverFetcher.cs: Removed legacy cover art
25055         downloader
25057 2007-01-21  James Willcox  <snorp@snorp.net>
25059         * src/Core/Banshee.Base/Banshee.Metadata/MetadataService.cs: add a
25060         'AddProvider' method
25062         * src/Core/Banshee.Base/Banshee.Metadata/MetadataProviderFactory.cs:
25063         removed
25065         * src/Dap/Banshee.Dap.Ipod/IpodMetadataProvider.cs: add a new metadata
25066         provider which gets the cover art off the iPod when available.
25068         * src/Dap/Banshee.Dap.Ipod/IpodQueryJob.cs: added
25070 2007-01-21  Aaron Bockover  <abock@gnome.org>
25072         * src/Core/Banshee.Base/Banshee.Metadata/MetadataServiceJob.cs:
25073         Added SaveHttpStreamPixbuf that normalizes image data over HTTP to 
25074         JPEG form and saves it to the cover art location, if the dimensions are
25075         greater than 50x50
25077         * src/Core/Banshee.Base/Banshee.Metadata.Rhapsody/RhapsodyQueryJob.cs:
25078         * src/Core/Banshee.Base/Banshee.Metadata.MusicBrainz/MusicBrainzQueryJob.cs:
25079         Use SaveHttpStreamPixbuf from the base class
25081 2007-01-20  Aaron Bockover  <abock@gnome.org>
25083         * src/Plugins/Banshee.Plugins.MetadataSearch/MetadataSearchConfigDialog.cs:
25084         Removed
25086         * src/Plugins/Banshee.Plugins.MetadataSearch/MetadataSearchPlugin.cs: R
25087         Rewritten to use the new Banshee.Metadata services APIs; shows progress
25088         of the operation in an ActiveUserEvent
25090         * src/Core/Banshee.Base/Banshee.Metadata/MetadataServiceJob.cs: Ensure 
25091         jobs are removed from the private queries table when they are unscheduled
25092         as well as finished
25094         * src/Core/Banshee.Base/Banshee.Kernel/Scheduler.cs: In Unschedule(), 
25095         match jobs that implement the interface of a type or is that are a 
25096         subclass of a type; added ScheduledJobsCount; use Globals.Debugging
25098         * src/Core/Banshee.Base/ActionManager.cs:
25099         * data/UIManagerLayout.xml: Added a top level 'Tools' menu
25101         * src/Plugins/Banshee.Plugins.Podcast/data/PodcastMenu.xml:
25102         * src/Plugins/Banshee.Plugins.Audioscrobbler/AudioscrobblerMenu.xml:
25103         Moved main menu actions to the new 'Tools' top level menu
25105 2007-01-19  Aaron Bockover  <abock@gnome.org>
25107         Merged patch by Trey Ethridge <tale@juno.com> that loads embedded cover
25108         art in streams; implemented as the first-priority metadata provider in
25109         the new metadata services framework. BGO #388162.
25111         * src/Core/Banshee.Base/Banshee.Metadata/MetadataProviderFactory.cs: Added
25112         EmbeddedMetadataProvider.
25114         * src/Core/Banshee.Base/Paths.cs: Added overloaded method to get
25115         cover art path that takes the file extension
25116         
25117         * src/Core/Banshee.Base/TrackInfo.cs: Updated CoverArtFileName to try all
25118         possible file extensions that we support when using the new artist_album_id 
25120         * src/Core/Banshee.Base/Banshee.Metadata.Embedded/EmbeddedMetadataProvider.cs:
25121         Implements the metadata provider interface.    
25122         
25123         * src/Core/Banshee.Base/Banshee.Metadata.Embedded/EmbeddedQueryJob.cs:
25124         Does the work of retrieving the cover art from the file and caching it.
25125         
25126         * src/Core/Banshee.Base/StreamTagger.cs: Updated TrackInfoMerge method
25127         to use any file extension.  It was hard coded to only use ".jpg".
25128         
25129 2007-01-19  Aaron Bockover  <abock@gnome.org>
25131         * src/Core/Banshee.Base/Banshee.Metadata/MetadataServiceJob.cs: New 
25132         metadata service job that runs all provider jobs in chain+sync
25134         * src/Core/Banshee.Base/Banshee.Metadata/MetadataService.cs: Primary 
25135         singleton for scheduling metadata lookups; runs a MetadataServiceJob
25136         in the Banshee scheduler
25138         * src/Core/Banshee.Base/Banshee.Metadata/IMetadataProvider.cs: Updated
25140         * src/Core/Banshee.Base/Banshee.Metadata/BaseMetadataProvider.cs: New
25141         base class for service jobs
25143         * src/Core/Banshee.Base/Banshee.Metadata.Rhapsody/RhapsodyQueryJob.cs:
25144         * src/Core/Banshee.Base/Banshee.Metadata.Rhapsody/RhapsodyMetadataProvider.cs:
25145         * src/Core/Banshee.Base/Banshee.Metadata.MusicBrainz/MusicBrainzQueryJob.cs:
25146         * src/Core/Banshee.Base/Banshee.Metadata.MusicBrainz/MusicBrainzMetadataProvider.cs:
25147         Updated to work with the changes in the metadata service APIs
25149 2007-01-17  Aaron Bockover  <abock@gnome.org>
25151         * src/Core/Banshee.Base/BansheeBranding.cs: Fixed branding initialization
25152         bug wherein the default cover art would never be loaded if a custom 
25153         branding were available
25155         * src/Core/Banshee/Banshee.TrackView.Columns/RatingColumn.cs:
25156         * src/Core/Banshee/banshee-interface.schemas.in: Rating is on by default
25158         * src/Plugins/Banshee.Plugins.Podcast/PodcastCore.cs: Removed debug line
25160 2007-01-17  Aaron Bockover  <abock@gnome.org>
25162         * src/Core/Banshee/Banshee.TrackView.Columns/TrackNumberColumn.cs: Make
25163         this column a fixed width
25164         
25165         * src/Core/Banshee/Banshee.TrackView.Columns/AlbumColumn.cs:
25166         * src/Core/Banshee/Banshee.TrackView.Columns/TitleColumn.cs:
25167         * src/Core/Banshee/Banshee.TrackView.Columns/DurationColumn.cs:
25168         * src/Core/Banshee/Banshee.TrackView.Columns/ArtistColumn.cs: Set better
25169         default widths for these columns
25171         * src/Core/Banshee/banshee-interface.schemas.in: Updated from above
25173         * src/Core/Banshee.Base/Library.cs: Fixed library path bug found in SP1
25175 2007-01-17  Aaron Bockover  <abock@gnome.org>
25177         * src/Core/Banshee.Base/Gui/PreferencesDialog.cs:
25178         * src/Core/Banshee.Base/Banshee.AudioProfiles.Gui/ProfileComboBoxConfigurable.cs:
25179         Show the description in a GtkTextView
25181         * data/banshee-dialogs.glade: Fixed more alignment issues
25183         * data/audio-profiles/*: Updated profile names and descriptions to 
25184         provide more detail and be more user-friendly
25186 2007-01-17  Aaron Bockover  <abock@gnome.org>
25188         * data/audio-profiles/wavpack.xml: Fixed
25190 2007-01-17  Ruben Vermeersch  <ruben@savanne.be>
25192         * data/audio-profiles/mp3-lame.xml: Change the vbr-mode parameter, which
25193         doesn't exist, to vbr. Fixes BGO #397753.
25195 2007-01-17  Aaron Bockover  <abock@gnome.org>
25197         * src/Core/Banshee.Base/Banshee.AudioProfiles.Gui/ProfileConfigureButton.cs:
25198         Only enable when the profile can be configured
25200         * src/Core/Banshee.Base/Banshee.AudioProfiles.Gui/ProfileConfigurationDialog.cs:
25201         Do not show the advanced expander if there are no advanced variables
25203         * src/Core/Banshee.Base/Banshee.AudioProfiles.Gui/ProfileComboBoxConfigurable.cs:
25204         Show the description of the profile in a label below the combo box
25206         * src/Core/Banshee.Base/Globals.cs:
25207         * src/Core/Banshee.Base/GstMisc.cs: Added SExp functions for building
25208         GStreamer pipelines
25210         * src/Core/Banshee.Base/Banshee.AudioProfiles/Pipeline.cs: Flatten the
25211         SExp result tree
25213         * build/m4/shamrock/mono.m4: Hopefull this will work on evil distros
25214         that put the GAC in lib64 and on good distros that put it in lib
25216         * data/banshee-dialogs.glade: Fix alignment on label
25218         * data/audio-profiles/*: Updated to the latest SExp syntax and use
25219         new gst-construct-* functions to help build pretty pipelines
25221 2007-01-17  Gabriel Burt  <gabriel.burt@gmail.com>
25223         * src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs: Make sure not to
25224         modify a list while iterating over it.  Push removal of songs into a
25225         separate thread so it doesn't block.
25227 2007-01-17  Gabriel Burt  <gabriel.burt@gmail.com>
25229         * src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs: Instead of copying
25230         instantly when adding a file to a DAP, wait until the Synchronize button
25231         is pressed like how other DAPs operate.  Fixes BGO #370229.  Doing so
25232         gives us transcoding nearly for free, fixing BGO #354727.  Based on patch
25233         by Juri Pakaste.
25235         * src/Core/Banshee.Base/Dap/DapMisc.cs: Add GetCodec method.
25237         * src/Core/Banshee.Base/Dap/Dap.cs: Allow subclasses to set the
25238         SupportedExtensions and SupportedPlaybackMimeTypes properties.
25240 2007-01-16  Gabriel Burt  <gabriel.burt@gmail.com>
25242         * src/Core/Banshee.Base/Gui/SourceView.cs: Let tracks from smart playlists
25243         be dragged around.  Patch by Chris Turchin, fixes BGO #377885.
25245         * src/Core/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistSource.cs: Set
25246         IsDragSource for future DAP playlist use.
25248 2007-01-16  James Willcox  <snorp@snorp.net>
25250         * src/Core/Banshee.Base/Banshee.Metadata.Rhapsody/RhapsodyQueryJob.cs:
25251         Move the HTTP stuff up to the parent class
25253         * src/Core/Banshee.Base/Banshee.Metadata.MusicBrainz/*.cs: new metadata
25254         provider which uses MusicBrainz to find cover art.  It is the default
25255         provider now, since it gets much higher quality images compared to the
25256         Rhapsody backend.  If it fails, the Rhapsody backend is used as a
25257         fallback.
25259 2007-01-15  Aaron Bockover  <abock@gnome.org>
25261         * src/Core/Banshee.Base/Banshee.Configuration/GConfConfigurationClient.cs:
25262         Support disabling actual GConf support via BANSHEE_DISABLE_GCONF
25264         * build/gconf-schema-rules: Set BANSHEE_DISABLE_GCONF so a GConf client
25265         is not actually created during the schema generation; necessary for 
25266         building in build services, etc.
25268 2007-01-15  Alp Toker  <alp@atoker.com>
25270         * ext/hal-sharp/Device.cs: Add internal DType enum copied from
25271         dbus-sharp since it will no longer be available in future versions.
25273 2007-01-15  Aaron Bockover  <abock@gnome.org>
25274         
25275         0.11.4 Released
25277         * NEWS: Updated with 0.11.4 release notes
25279 2007-01-14  Aaron Bockover  <abock@gnome.org>
25281         * src/Core/Banshee.Base/IO/IOProxy.cs: Enable the GNOME VFS IO backend
25283 2007-01-14  Aaron Bockover  <abock@gnome.org>
25285         * src/Plugins/Banshee.Plugins.Radio/*: Added initial code for local
25286         station management, not complete
25288         * src/Core/Banshee.Base/Banshee.Playlists.Formats.Xspf/XspfBaseObject.cs:
25289         Add a null check
25291 2007-01-14  Aaron Bockover <abock@gnome.org>
25293         * src/Plugins/Banshee.Plugins.Podcast/PodcastPlugin.cs: Added a better
25294         description of what podcasting is
25296         * src/Plugins/Banshee.Plugins.Radio/RadioSource.cs:     
25297         * src/Plugins/Banshee.Plugins.Radio/source-radio.png: Use Jakub's new
25298         radio icon (sweeeet)
25300         * src/Core/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistCore.cs:
25301         * src/Core/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
25302         * src/Core/Banshee.Base/Globals.cs: Rework the SmartPlaylistCore so
25303         that it is not a plugin, instead initialize/dispose it directly as we
25304         always want smart playlists to be available
25306 2007-01-14  Aaron Bockover  <abock@gnome.org>
25308         * src/Plugins/: Moved Radio, Podcast, MiniMode, Recommendation plugins
25309         from banshee-official-plugins
25311         * build/m4/shamrock/mono.m4: Use Mono's libdir (BGO #394033)
25313 2007-01-12  Patrick van Staveren  <trick@vanstaveren.us>
25315         * src/Dap/Banshee.Dap.Karma/KarmaDap.cs: add PluginModuleEntry,
25316         on behalf of Bob Copeland.  BGO 392013.
25318 2007-01-10  Aaron Bockover  <abock@gnome.org>
25320         * src/Core/Banshee.Base/Banshee.AudioProfiles/SExpEngine/Literals.cs: Use
25321         the en-US culture to format doubles
25323         * src/Core/Banshee.Base/Banshee.AudioProfiles/PipelineVariable.cs: Add
25324         enables/disables support on the variable node, used by the check type
25326         * src/Core/Banshee.Base/Banshee.AudioProfiles.Gui/ProfileConfigurationDialog.cs: 
25327         Fixed minor bug with check control, add enables/disables support for
25328         the check control
25330         * src/Core/Banshee.Base/Globals.cs: Load profiles even if they're not
25331         being tested
25332         
25333         * data/audio-profiles/wma.xml: Use the check control for vbr 
25335         * data/audio-profiles/wavpack.xml: Added a wavpack profile by 
25336         Sebastian Dröge
25338 2007-01-06  Aaron Bockover  <abock@gnome.org>
25340         * src/Core/Banshee.Base/Banshee.AudioProfiles.Gui/ProfileConfigurationDialog.cs: 
25341         Support the check type; added a text view to dump the S-Expression eval
25342         in when running in debug mode
25344         * src/Core/Banshee.Base/Banshee.AudioProfiles/PipelineVariable.cs: Added
25345         check type
25347         * src/Core/Banshee.Base/Banshee.AudioProfiles/SExpEngine/CastFunctionSet.cs:
25348         Added cast-bool
25350         * src/Core/Banshee.Base/Banshee.AudioProfiles/SExpEngine/Literals.cs: 
25351         Override ToString on BooleanLiteral to return lower-case true/false
25353         * data/audio-profiles/mp3-xing.xml:
25354         * data/audio-profiles/wma.xml:
25355         * data/audio-profiles/vorbis.xml: 
25356         * data/audio-profiles/flac.xml: Updated
25358 2007-01-06  Aaron Bockover  <abock@gnome.org>
25360         This commit adds some incredible power to the audio profiles support.
25361         Profile process (i.e. GStreamer pipelines) are now defined using an
25362         S-Expression like language. This is a big change, but very, very well
25363         worth it. I will be flying and unavailable today/Jan 6, so if this commit
25364         breaks the build or functionality somehow, revert to the previous svn
25365         revision. 
25367         * src/Core/Banshee.Base/Banshee.AudioProfiles/Pipeline.cs: Added 
25368         SExpEngine integration to compile the pipeline process; removed 
25369         transformation/Abakos support as it can now be done inline in S-Exp
25371         * src/Core/Banshee.Base/Globals.cs: Add the gst-element-is-available
25372         S-Exp function
25374         * src/Core/Banshee.Base/GstMisc.cs: Added a S-Exp function, 
25375         gst-element-is-available, which is a S-Exp wrapper around TestPipeline;
25376         this S-Exp function can be used to conditionally include an element
25377         or pipeline piece inside of the master pipeline:
25379           (+ "lame" (if (gst-element-is-available "xingmux") "! xingmux" ""))
25381         * data/audio-profiles/*.xml: Ported all the pipelines to S-Exp expressions
25383         * src/Core/Banshee.Base/Banshee.AudioProfiles/SExpEngine/*: The new
25384         SExpEngine - written in 10 hours! Probably lots of holes to fill, but 
25385         it has a lot of built in functionality and is working for what we need
25386         for audio profiles; the parser could probably use some love
25388 2007-01-05  Peter Teichman  <peter@novell.com>
25390         * src/Core/Banshee.Base/LibraryTrackInfo.cs: Fix an integer
25391         overflow when importing tracks with numbers that don't
25392         fit into 32 bits. (BNC #219700)
25394         Also, only use numbers in filenames as track numbers when they're
25395         at the beginning of the filename.
25397 2007-01-05  Aaron Bockover  <abock@gnome.org>
25399         * src/Core/Banshee.Base/Gui/SourceView.cs: Expand node if source.Expanded
25400         is true or source.AutoExpand is not null and is true; override the 
25401         OnRowExpanded/OnRowCollapsed methods to store the expansion state in
25402         the source
25404         * src/Core/Banshee.Base/Source.cs: Added Expanded virtual bool property
25405         and made AutoExpand a nullable bool
25407         * src/Core/Banshee.Base/Sources/LibrarySource.cs: Override Expanded and
25408         read/store the value in configuration; Override AutoExpand and return
25409         it as null, so the Expanded property is used exclusively in the view
25411         * src/Core/Banshee.Base/Banshee.Configuration.Schema/LibrarySchema.cs: 
25412         Added SourceExpanded property
25414         * src/Core/Banshee.Base/Globals.cs: 
25415         * src/Core/Banshee.Base/StreamTagger.cs: 
25416         * src/Core/Banshee.Base/Gui/RatingRenderer.cs: Fixed some minor warnings
25418         * src/Core/Banshee.Base/Makefile.am: Added ScriptCore.cs
25420 2007-01-05  Aaron Bockover  <abock@gnome.org>
25422         * src/Core/Banshee/PlaylistView.cs: Removed old unused column variables
25424         * src/Core/Banshee/PlayerInterface.cs: Show the rip check button again
25426         * src/Core/Banshee.Base/Plugins/ScriptCore.cs: Split script support out
25427         from PluginCore into new ScriptCore; added StartupInvocationEntry and
25428         ScriptCore.InstallInvocation to allow scripts to install menu/UI hooks
25429         in the Music menu - provides simple user-initiated invocation for scripts
25431         * src/Core/Banshee.Base/Plugins/PluginCore.cs: Split script support out
25432         into new ScriptCore
25434         * src/Core/Banshee.Base/Globals.cs: Initialize ScriptCore
25436         * data/UIManagerLayout.xml:
25437         * src/Core/Banshee.Base/ActionManager.cs: Created action for the 
25438         Scripts menu
25440 2007-01-04  Aaron Bockover  <abock@gnome.org>
25442         * src/Core/Banshee.Base/FileNamePattern.cs: Filter the display pattern too
25444         * src/Core/Banshee.Base/Banshee.AudioProfiles.Gui/ProfileConfigurationDialog.cs: 
25445         Support enables/disables on preset variables; support min/max labels
25447         * src/Core/Banshee.Base/Banshee.AudioProfiles/PipelineVariable.cs: Added
25448         enables/disables support and min-label, max-label
25450         * src/Core/Banshee.Base/Banshee.AudioProfiles/Abakos.Compiler/Expression.cs:
25451         Work around parser bug
25453         * src/Core/Banshee.Base/Globals.cs: Do not test audio profiles if
25454         BANSHEE_PROFILES_NO_TEST is set
25456         * src/MonoDevelopBootstrap.cs: Use Mono.Unix.Native.Syscall.system to 
25457         exec make run so the environment can be set
25459         * data/audio-profiles/vorbis.xml: Set min-label, max-label
25461         * data/audio-profiles/mp3-lame.xml: Support VBR
25463 2007-01-04  Aaron Bockover  <abock@gnome.org>
25465         * src/Core/Banshee.Base/Plugins/PluginFactory.cs: Handle reflecting
25466         against dynamic modules
25468         * src/Core/Banshee.Base/Plugins/PluginCore.cs: After compiling a boo
25469         script, always call factory.LoadPluginsFromAssembly, and always invoke
25470         the assembly.EntryPoint and with the proper number of arguments; this
25471         allows you to not have to specify a Main() method at all in the boo
25472         script
25474         * src/Core/Banshee.Base/FileNamePattern.cs: Added FilterHandler to
25475         allow plugins and scripts to perform further formatting on the 
25476         FileNamePattern
25478 2007-01-03  Ruben Vermeersch  <ruben@savanne.be>
25480         * src/Core/Banshee.Base/ArgumentQueue.cs: Allow duplicate arguments to be
25481         passed. This avoids a crash when you pass --play --play (or similar) and
25482         avoids dirty hacks in the launcher script. The first passed argument will
25483         be used. Any subsequent arguments with the same name (and their
25484         parameters) will be ignored.
25486         * src/Core/Banshee/banshee.in: Add support for profiling banshee. By
25487         passing --profile=name (where name is the name of the profiler you wish to
25488         use), the chosen profiler will be started. Also added support for starting
25489         profilers, traces and enabling debug by using environment variables. You
25490         can now start banshee with BANSHEE_DEBUG=1, BANSHEE_PROFILE=heap-shot and
25491         BANSHEE_TRACE=something.
25493 2007-01-03  Peter Teichman  <peter@novell.com>
25495         * src/Core/Banshee/PlayerInterface.cs:
25496         Disable "Delete Song From Drive" in playlist listings (BNC #218997)
25497         Start playing the next song if the current one is deleted (BNC #218993)
25499 2007-01-03  Aaron Bockover  <abock@gnome.org>
25501         * src/Core/Banshee/Banshee.TrackView.Columns/RatingColumn.cs: Make the
25502         column a fixed width and not resizable (BGO #385547)
25504         * src/Core/Banshee.Base/Gui/RatingRenderer.cs: Added static Width propery
25506 2007-01-03  Aaron Bockover  <abock@gnome.org>
25508         * src/Core/Banshee/PlaylistView.cs: Call CreatePopupableHeader on the
25509         columns after adding to the view (must be done after AppendColumn)
25511         * src/Core/Banshee/Banshee.TrackView.Columns/TrackViewColumn.cs: Added
25512         clever hack from Peter Johanson to allow button press events on tree
25513         view column headers, thus display a context menu on each column header
25514         on right click, allowing to hide the column or show the columns dialog
25516 2007-01-03  Aaron Bockover  <abock@gnome.org>
25518         * src/Core/Banshee/Banshee.TrackView.Columns/*.cs: Make the SchemaEntry
25519         properties all public so they can be picked up by gconf schema extractor
25521         * src/Core/Banshee/banshee-interface.schemas.in:
25522         * src/Core/Banshee.Base/banshee-core.schemas.in: Updated, schema entries
25523         are sorted by key now
25525         * build/GConfSchemaExtractor.cs: Sort the schema entries by key to ensure
25526         that the schema content doesn't change just because the reflection 
25527         iterating order in the assembly may have changed, which will cause 
25528         false modifications (this is apparent when compiling between gmcs/make and
25529         gmcs/MonoDevelop)
25531 2007-01-03  Aaron Bockover  <abock@gnome.org>
25533         * src/Core/Banshee/Banshee.TrackView.Columns/*.cs: Use an enum to ID
25534         columns and their sort orders, will make adding new columns easier; always
25535         sort track number in ascending order if not explicitly sorting on the
25536         track number column; sort by the parent folder uri of a track before
25537         sorting by album, which allows the same album to be in the library 
25538         multiple times in different file system locations, but grouped and sorted
25539         properly in the view when sorting by track, album, or artist
25541         * src/Core/Banshee/Banshee.TrackView.Columns/UriColumn.cs: Added Uri Column;
25542         shows the local path if the file is local; if local, show the relative 
25543         path from the base library path if path is a child of the base library
25545         * src/Core/Banshee/PlaylistView.cs: Instantiate Uri column
25547         * src/Core/Banshee.Base/Gui/PreferencesDialog.cs: QueueDraw on the playlist
25548         view when the library location changes; if the Uri column is visible,
25549         the displayed path may change when changing base library location
25551         * src/Core/Banshee.Base/Library.cs: Added set accessor on the Location 
25552         property, added CachedLocation to avoid GConf calls on the get accessor
25553         to improve rendering in the Uri column renderer
25555 2007-01-02  Ruben Vermeersch  <ruben@savanne.be>
25557         * src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconPlugin.cs: 
25558         Prevent the notification bubble from showing up twice.
25560 2007-01-02  Aaron Bockover  <abock@gnome.org>
25562         * src/Core/Banshee.Base/Globals.cs: FreeHGlobal(mono_jig_segv_handler)
25564 2007-01-02  Aaron Bockover  <abock@gnome.org>
25566         * src/Core/Banshee.Base/GstMisc.cs:
25567         * libbanshee/gst-misc-0.10.c: Removed TestEncoder
25569         * src/Core/Banshee.Base/Globals.cs: Use sigaction before and after
25570         startup to grab and restore the JIT's SEGV handler due to a bad bug
25571         in GStreamer's SEGV signal handling (Gst BGO #391777); this should stop
25572         the random segfaults that have been happening lately
25574 2007-01-01  Ruben Vermeersch  <ruben@savanne.be>
25576         * src/Makefile.am: Quick'n dirty fix to make HEAD build again. Happy
25577         newyear all!
25579 2006-12-31  Aaron Bockover  <abock@gnome.org>
25581         * src/PlayerInterface.cs:
25582         * src/Banshee.Base/Gui/SeekDialog.cs: Synced functionality, minor fixes
25584 2006-12-31  Aaron Bockover  <abock@gnome.org>
25586         * src/Makefile.am:
25587         * src/Banshee.Base/Makefile.am:
25588         * src/PlayerWindowSchema.cs:
25589         * src/Banshee.Base/Banshee.Configuration.Schema/PlayerWindowSchema.cs: 
25590         Moved PlayerWindowSchema to Banshee.Base
25592         * build/Makefile.am: Install gconf-schema-extractor.exe
25594         * configure.ac: Bump to 0.11.4
25596 2006-12-31  Aaron Bockover  <abock@gnome.org>
25598         * src/PlayerInterface.cs: Use Album instead of DisplayAlbum, set the
25599         MoreInfoUri on the TrackInfoHeader; Use a stop icon instead of a pause
25600         icon if the stream cannot pause; support the Contacting engine state
25602         * src/StockIcons.cs: Added stop icon
25604         * src/PlaylistView.cs: Added protected IntPtr constructor
25606         * src/Banshee.Base/Banshee.Metadata/SchedulerMetadataProvider.cs: Added
25607         some more null checks
25608         
25609         * src/Banshee.Plugins/NotificationAreaIcon/NotificationAreaIconPlugin.cs:
25610         Use Album instead of DisplayAlbum
25612         * src/Banshee.MediaEngine/Helix/HelixRemotePlayerEngine.cs: Support parsing
25613         Real Radio clip metadata and sending results as StreamTags; support 
25614         cover art lookup inside live streams when track changes occur; support
25615         virtual sub-tracks on live streams when duration events come in; this
25616         allows the UI to show proper position/duration on subsets of a live stream
25617         
25618         * src/Banshee.Base/PlayerEngineCore.cs: Added CanPause property, if
25619         Pause() is called and the track cannot pause, stop it instead
25620         
25621         * src/Banshee.Base/MediaEngine/PlayerEngine.cs: Added a Contacting state
25622         and use current_track.IsLive instead of current_track is UnknownTrackInfo
25623         to ensure tag updates only occur on live/radio streams
25624         
25625         * src/Banshee.Base/StreamTagger.cs: Added CommonTags.MoreInfoUri and
25626         support merging a duration that is already a TimeSpan
25628         * src/Banshee.Base/UnknownTrackInfo.cs: Set is_live
25630         * src/Banshee.Base/TrackInfoHeader.cs: Set MoreInfoUri, use a LinkLabel
25631         for the title; do not show the album if it is null
25632         
25633         * src/Banshee.Base/TrackInfo.cs: Removed Equals/GetHashCode overrides,
25634         added AreEqual(a,b) static method; Added IsLive and MoreInfoUri properties
25635         
25636         * src/Banshee.Widgets/StreamPositionLabel.cs: Added IsContacting
25637         
25638         * src/Banshee.Widgets/LinkLabel.cs: Added ActAsLink - link functionality
25639         can be disabled by setting this to false, it will act as a normal label;
25640         use the selection background color for the link foreground color; Added
25641         Ellipsize and Selectable properties; Selectable is always disabled if
25642         in link mode
25644         * src/Banshee.Widgets/Banshee.Widgets.mdp: Updated
25646 2006-12-31  Aaron Bockover  <abock@gnome.org>
25648         * src/Banshee.Base/Banshee.Metadata/*.cs: New generic metadata query APIs
25650         * src/Banshee.Base/Banshee.Metadata.Rhapsody/*.cs: Rhapsody cover art 
25651         fetching implementation of Banshee.Metadata APIs
25653         * src/Banshee.Base/PlayerEngineCore.cs: Query the metadata query APIs
25654         on track change; send results as a track info update event
25656         * src/Banshee.Base/TrackInfo.cs: Cover art fixes
25658         * src/Banshee.Base/StreamTagger.cs: Added album-cover-id
25660         * src/Banshee.Base/Makefile.am: 
25661         * src/Banshee.Base/Banshee.Base.mdp: Updated
25663 2006-12-30  Aaron Bockover  <abock@gnome.org>
25665         * GNOME Subversion: About f*cking time.
25667 2006-12-29  Alp Toker  <alp@atoker.com>
25669         * dbus-sharp/*: Updated to 0.3.1. Fixes 64-bit Linux regression.
25671 2006-12-29  Alp Toker  <alp@atoker.com>
25673         * src/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:
25674         Compile fix for 2.0; see Mono bug #80384
25676 2006-12-29  Aaron Bockover  <abock@gnome.org>
25678         * src/Banshee.Base/NetworkDetect.cs: Added NetworkUnavailableException
25680 2006-12-29  Aaron Bockover  <abock@gnome.org>
25682         * src/Banshee.Base/Banshee.Web/Browser.cs: Added UserAgent field
25684 2006-12-28  Aaron Bockover  <abock@gnome.org>
25686         * src/Banshee.Base/Banshee.Playlists.Formats.Xspf/*: Implemented read
25687         support for most of the XSPF specification
25689         * tests/Xspf/*: 
25690         * tests/Makefile.am: Added Xspf test suite
25692         * src/Banshee.Base/Banshee.Base.mdp:
25693         * src/Banshee.Base/Makefile.am:
25695 2006-12-26  Aaron Bockover  <abock@gnome.org>
25697         * src/banshee.in: source scripts into the wrapper that are installed
25698         into $(libdir)/banshee/shell-init/ and are +x; Useful if plugins need
25699         to ensure certain environment variables are initialized
25701 2006-12-24  Ruben Vermeersch  <ruben@savanne.be>
25703         * src/Banshee.Base/Gui/ExceptionDialog.cs: Set UseUnderline to false on
25704         the label of the exception, this caused exception messages to be garbled
25705         if they contained an underscore.
25707 2006-12-23  Ruben Vermeersch  <ruben@savanne.be>
25709         * src/Banshee.Widgets/CoverArtThumbnail.cs: Fix funny aspect ratio
25710         weirdness (BGO #388903).
25712 2006-12-23  Aaron Bockover  <abock@gnome.org>
25714         NOTE: A new configuration system has been added. With this change also
25715         comes a reorganization of the GConf keys. Keys are organized into 
25716         namespaces and also are now correctly formatted (under_cased and not
25717         CamelCased). As such, all old settings will be lost. A migration path
25718         will be introduced before the next release, but be warned if using CVS
25719         from here until 0.11.4 - your settings will not be migrated until otherwise
25720         noted!
25722         * src/Banshee.Base/Banshee.Configuration/ConfigurationClient.cs: new static 
25723         top-level configuration API that is platform agnostic
25725         * src/Banshee.Base/Banshee.Configuration/GConfConfigurationClient.cs: GConf 
25726         backend to new configuration API
25728         * src/Banshee.Base/Banshee.Configuration/IConfigurationClient.cs: Interface
25729         for configuration backends
25731         * src/Banshee.Base/Banshee.Configuration/SchemaEntry.cs: Generic structure
25732         representing a configuration setting. Should be defined as public static
25733         readonly instances in classes so GConf schema XML files can be generated
25734         automatically
25736         * src/Banshee.Base/Banshee.Configuration.Schema/ImportSchema.cs:
25737         * src/Banshee.Base/Banshee.Configuration.Schema/LibrarySchema.cs: Define
25738         lots of namespaced configuration settings (SchemaEntry<T>)
25740         * src/TrackViewColumnWindow.cs: Column window using new TrackViewColumn API
25742         * src/Basnhee.TrackView.Columns/*: Added TrackViewColumn base column
25743         implementation that extends Gtk.TreeViewColumn and specific column
25744         implementations extending TrackViewColumn. Each column implementation
25745         handles its own configuration, sorting, and rendering.
25747         * src/Banshee.Base/DBusRemote.cs: NameReply changed to RequestNameReply
25748         in managed DBus 0.3.0
25750         * src/Banshee.Base/BatchTranscoder.cs: Return if the batch_queue is empty,
25751         avoids a possible nullref
25753         * src/Banshee.Base/Gui/FileChooserDialog.cs: FileChooserDialog that
25754         automatically restores/sets the last folder URI
25756         * src/Banshee.Base/Gui/ImageFileChooserDialog.cs:
25757         * src/Banshee.Base/FolderImportSource.cs:
25758         * src/Banshee.Base/FileImportSource.cs: Use the new Banshee 
25759         FileChooserDialog
25761         * src/Banshee.Base/GConfKeys.cs: Removed
25763         * src/Banshee.Base/Globals.cs: Removed old GConf client
25764         
25765         * src/Banshee.Base/StringUtil.cs: Added CamelCaseToUnderCase
25766         
25767         * src/Banshee.Plugins/Audioscrobbler/AudioscrobblerPlugin.cs:
25768         * src/Banshee.Plugins/Daap/DaapCore.cs:
25769         * src/Banshee.Plugins/Daap/DaapPlugin.cs:
25770         * src/Banshee.Plugins/MMKeys/MMKeysPlugin.cs:
25771         * src/Banshee.Plugins/MetadataSearch/MetadataSearchPlugin.cs:
25772         * src/Banshee.Plugins/NotificationAreaIcon/NotificationAreaIconConfigPage.cs:
25773         * src/Banshee.Base/Gui/OpenLocationDialog.cs:
25774         * src/Banshee.Base/Gui/PreferencesDialog.cs:
25775         * src/Banshee.Base/Gui/TrackEditor.cs:
25776         * src/Banshee.Base/IO/IOProxy.cs:
25777         * src/Banshee.Base/Plugins/Plugin.cs:
25778         * src/Banshee.Base/Plugins/PluginCore.cs:
25779         * src/Banshee.Base/Plugins/PluginDialog.cs:
25780         * src/Banshee.Base/Sources/AbstractPlaylistSource.cs:
25781         * src/Banshee.Base/Sources/LibrarySource.cs:
25782         * src/Banshee.Base/StreamTagger.cs:
25783         * src/Banshee.Base/PlayerEngineCore.cs:
25784         * src/Banshee.Base/LibraryTrackInfo.cs:
25785         * src/Banshee.Base/Library.cs:
25786         * src/Banshee.Base/FileNamePattern.cs:
25787         * src/Banshee.Base/AudioCdRipper.cs: 
25788         * src/PlayerInterface.cs: Use the new Banshee.Configuration APIs, getting
25789         and setting configuration from SchemaEntry<T> objects
25791         * src/Banshee.Base/Banshee.AudioProfiles/ProfileConfiguration.cs: 
25792         Use the new configuration APIs to get the base key
25794         * src/Banshee.Base/Banshee.AudioProfiles/ProfileManager.cs: Place
25795         document.Load inside try/catch, dump exception if it occurs (useful if
25796         profile XML is invalid)
25798         * src/Banshee.Base/Banshee.AudioProfiles/Pipeline.cs: 
25799         Added GetPendingProcessesById, CompileProcess(Process), AddProcess(Process)
25800         methods and allow defining multiple pipeline processes with the same id
25801         using an order attribute. This allows for defining various pipelines for
25802         a single process, the first pipeline that compiles will be used.
25804         * src/PlaylistView.cs: Use new columns, cleaned up lots of code
25806         * src/Makefile.am: Added new files, include new auto-schema rule
25808         * banshee.mds: Updated
25810         * build/Common.Makefile: Added MONO_BASE_PATH and LINK_BANSHEE_BASE
25812         * build/Makefile.am: Build GConfSchemaExtractor.cs
25814         * build/GConfSchemaExtractor.cs: Creates a GConf schema XML file from
25815         assemblies containing SchemaEntry<T> objects
25817         * build/gconf-schema-rules: Makefile.am include file with rule for 
25818         automatically generating and installing schemas from assemblies
25820         * data/audio-profiles/*.xml: Updated
25822         * dbus-sharp/*: Updated to 0.3.0
25824         * data/Makefile.am:
25825         * data/banshee.schemas.in: Removed old manual schemas
25827         * Makefile.am:
25828         * autogen.sh: Manually copy mkinstalldirs if it wasn't copied by automake
25830 2006-12-17  Gabriel Burt  <gabriel.burt@gmail.com>
25832         * src/Banshee.Base/Gui/SourceView.cs: Don't enter source renaming mode
25833         unless the user presses F2 or right clicks and selects 'Rename'.  Prevents
25834         entering rename mode when a source is selected and you try to drag it or
25835         double click it to start it playing.
25837 2006-12-17  Gabriel Burt  <gabriel.burt@gmail.com>
25839         Add initial support for DAPs to have playlists.  Code contributed by Trey
25840         Ethridge, Patrick van Staveren, Kevin Kubasik, and Gabriel Burt.
25842         * src/Banshee.Base/Banshee.Base.mdp:
25843         * src/Banshee.Base/Makefile.am: new files
25845         * src/Banshee.Base/Banshee.Playlists.Formats/M3u.cs
25846         * src/Banshee.Base/Banshee.Playlists.Formats/PlaylistFile.cs
25847         * src/Banshee.Base/Banshee.Playlists.Formats/Pls.cs: New files for
25848         importing and exporting playlist files, written by Trey Ethridge.
25850         * src/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistSource.cs: The
25851         Playlist ConfirmUnmap dialog was moved, updating reference here.
25853         * src/Banshee.Base/Sources/AbstractPlaylistSource.cs: New abstract class
25854         that PlaylistSource (should be renamed to LibraryPlaylistSource..) and
25855         DapPlaylistSource derive from.
25857         * src/Banshee.Base/Sources/DapPlaylistSource.cs: New source for DAP
25858         playlists.
25860         * src/Banshee.Base/Sources/DapSource.cs: Handle SourceDrop.  If a
25861         PlaylistSource is dropped on a DAP and it is IPlaylistCapable, create
25862         a new DAP playlist from the dropped source.
25864         * src/Banshee.Base/Sources/IPlaylistCapable.cs: New interface for DAPs
25865         and Sources that can have child playlists.
25867         * src/Banshee.Base/Sources/PlaylistSource.cs: Refactored into
25868         AbstractPlaylistSource.
25870 2006-12-17  Patrick van Staveren  <trick@vanstaveren.us>
25872         * src/Banshee.Dap/Mtp/GPhotoDevice.cs: fix sync'ing not creating
25873         path properly.
25875 2006-12-17  Patrick van Staveren  <trick@vanstaveren.us>
25877         * src/Banshee.Dap/Mtp/GPhotoDeviceFile.cs:
25878         * src/Banshee.Dap/Mtp/MtpDap.cs: add / clean up debug info
25880 2006-12-17  Ruben Vermeersch  <ruben@savanne.be>
25882         * src/Banshee.Base/FileNamePattern.cs: Also escape |, < and >. Again
25883         related to BGO #333813.
25885 2006-12-17  Ruben Vermeersch  <ruben@savanne.be>
25887         * src/Banshee.Base/FileNamePattern.cs: Also escape single and double
25888         quotes. (Should fix BGO #333813).
25890 2006-12-15  Gabriel Burt  <gabriel.burt@gmail.com>
25892         * src/Banshee.Base/Banshee.SmartPlaylist/Editor.cs: Add a predefined smart
25893         playlist for 'Unheard Podcasts'.
25895 2006-12-15  Gabriel Burt  <gabriel.burt@gmail.com>
25897         Rename PlaylistID to SmartPlaylistID in the two relevant tables. Add
25898         ability to have smart playlists derived from other smart playlists.
25900         * src/Banshee.Base/Banshee.SmartPlaylist/Editor.cs: If editing an existing
25901         playlist, pass it on to the QueryModel so it can use it to figure out what
25902         smart playlists to show as condition options.
25904         * src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs: Add operators
25905         for being/not being in a smart playlist. In terms of eventual code reuse
25906         somewhere like F-Spot, this is hacky and gross.  But it's quick.
25908         * src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs: Support
25909         using other smart playlists in the condition for this one.
25911         * src/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistCore.cs: Do the
25912         column rename, support smart playlists being dependent on one another.
25914         * src/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistSource.cs: Support
25915         identifying and listening to smart playlists we depend on.  Show a special
25916         dialog confirmation if we have dependent smart playlists and we are
25917         removed.
25919 2006-12-15  Gabriel Burt  <gabriel.burt@gmail.com>
25921         * src/PlayerInterface.cs: Handle DapPropertiesChanged more gracefully.
25923         * src/Banshee.Base/Banshee.SmartPlaylist/Editor.cs: When saving a smart
25924         playlist, queue a refresh instead of calling it from the thread.
25926         * src/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistSource.cs: Don't
25927         order the tracks by id when refreshing; recent regression, fixes BGO
25928         #384816.  Also, assume Add/RemoveTrack calls are in main thread, and add
25929         QueueRefresh method used by the editor.
25931         * src/Banshee.Base/Dap/Dap.cs: Add a public property to get at a Dap's
25932         Source object. Raise PropertiesChanged in the standard way.
25934         * src/Banshee.Dap/MassStorage/MassStorageDap.cs: When adding tracks to the
25935         source (either when first loading or transferring), queue updates to the
25936         track count in the source view.  Display more helpful error messages when
25937         unable to eject the DAP.
25939 2006-12-14  Gabriel Burt  <gabriel.burt@gmail.com>
25941         * src/Banshee.Dap/MassStorage/MassStorageDap.cs: Load iPods that have an
25942         .is_audio_player file as regular USB mass storage devices.
25944 2006-12-13  Peter Teichman  <peter@novell.com>
25946         * src/Banshee.Base/Banshee.Burner/BurnerCore.cs:
25947         * src/Banshee.Plugins/Audioscrobbler/AudioscrobblerPlugin.cs:
25948         Add a menu accelerator for Music->Close, and change Music->New
25949         Audio CD
25951 2006-12-13  Peter Teichman  <peter@novell.com>
25953         * src/Banshee.Base/ActionManager.cs:
25954         * src/Banshee.Base/Banshee.Burner/BurnerCore.cs:
25955         * src/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistCore.cs:
25956         * src/Banshee.Plugins/Audioscrobbler/AudioscrobblerPlugin.cs:
25957         Add menu accelerators for actions that haven't had them.
25958         (Fixes BNC #202861)
25960 2006-12-13  Aaron Bockover  <abock@gnome.org>
25962         * src/Banshee.Plugins/NotificationAreaIcon/NotificationAreaIconPlugin.cs:
25963         Make 'Quit' italics
25965 2006-12-13  Aaron Bockover  <abock@gnome.org>
25967         * build/Common.Makefile: Run NJB uninstalled properly
25969         * src/Main.cs: Do not use UcFirst - just pass the program name
25971         * src/PlayerInterface.cs: Call InterfaceElements.PrimaryWindowClose if it 
25972         is set; if set, the close action from the title bar will close the 
25973         window instead of quitting the application (Fixes BGO #358192)
25975         * src/Banshee.Plugins/NotificationAreaIcon/NotificationAreaIconPlugin.cs:
25976         Set InterfaceElements.PrimaryWindowClose handler to override the quit
25977         behavior for the window's [X] button. Notify user of the action if
25978         it's never been performed before; only set the close handler if
25979         /apps/Banshee/NotificationAreaIcon/quit_on_close in GConf is not set 
25981         * src/Banshee.Plugins/NotificationAreaIcon/banshee-notificationareaicon.schemas.in: Added schema keys for quit_on_close and notify_on_close
25983         * src/Banshee.Base/Globals.cs: Added InterfaceElements.PrimaryWindowClose
25985         * src/Banshee.Base/StringUtils.cs: Implemented culture aware sorting
25986         that also ignore 'the' prefixes on strings; speeds sort operation up
25987         by about 15%. (Fixes BGO #384235)
25989         * src/PlaylistView.cs: Use new culture aware sorting for strings
25991         * src/Banshee.Base/Banshee.Base.mdp:
25992         * src/Banshee.Base/Makefile.am: Added StringUtils.cs
25994         * src/Banshee.Base/Utilities.cs: Removed old StringUtils class
25996 2006-12-13  Aaron Bockover  <abock@gnome.org>
25998         * build/m4/banshee/boo.m4: Require 0.7.6 for booc precompilation
26000         * build/m4/banshee/dap-njb.m4: Cosmetic AC_MSG_RESULT fix
26002 2006-12-12  Aaron Bockover  <abock@gnome.org>
26004         * src/Banshee.Widgets/ActiveUserEvent.cs:
26005         * src/Banshee.Widgets/ActiveUserEventsManager.cs: Queue ActiveUserEvent
26006         objects if the ActiveUserEventsManager is not yet available
26008         * src/Banshee.Base/Dap/Dap.cs: Do not remove source if it is null
26010         * src/Banshee.Base/Banshee.AudioProfiles/PipelineVariable.cs: Check for
26011         null to prevent NullReferenceExceptions, even though they're handled;
26012         this allows startup to work inside gdb without having to set pass on
26013         SIGSEGV
26015         * libbanshee/gst-cd-rip-0.10.c: Use gst_element_link instead of 
26016         gst_element_link_many to provide higher resolution error reporting;
26017         removed old muxer injection hacks now that we have awesome audio
26018         profile support with proper pipeline definitions
26020         * build/m4/shamrock/gstreamer.m4: Print the full gst-inspect path that
26021         is found instead of just 'yes'
26023         * build/m4/banshee/dap-njb.m4: Fixed lib64 detection for njb-sharp
26024         Libraries variable
26026         * build/Common.Makefile: Support running MTP uninstalled
26028 2006-12-12  Patrick van Staveren  <trick@vanstaveren.us>
26030         * build/m4/banshee/dap-mtp.m4:
26031         * src/Banshee.Dap/Mtp/MtpDap.cs: fix verification based on newer
26032         hal fdi information.  Initialization should work now with
26033         libgphoto2 2.3.0 or later, but not younger.
26035 2006-12-09  Patrick van Staveren  <trick@vanstaveren.us>
26037         First update in quite some time...
26039         * src/Banshee.Dap/Mtp/GPhotoDevice.cs:
26040         * src/Banshee.Dap/Mtp/GPhotoDeviceFile.cs: lots of syntax cleanups
26041         Who the heck wrote this to begin with?  Oh...it was me...
26043         * src/Banshee.Dap/Mtp/MtpDeviceId.cs:
26044         * src/Banshee.Dap/Mtp/Makefile.am: removed MtpDeviceId in favour of
26045         detecting libgphoto2 compatible devices from HAL properties.
26047         * src/Banshee.Dap/Mtp/MtpDap.cs: lots of syntax cleanups, use HAL
26048         properties to determine if this is a MTP device, lots more debug.
26049         Handle multiple instance devices without a popup.  Play nicely if 
26050         there is a libgphoto2 camera plugged in as well.
26052 2006-12-09  Aaron Bockover  <abock@gnome.org>
26054         Banshee 0.11.3 Released!
26056         * NEWS: Fixed small bug
26058         * README:
26059         * AUTHORS: Updated
26061         * MAINTAINERS: Removed, not sure why we had both        
26063 2006-12-09  Aaron Bockover  <abock@gnome.org>
26065         * src/Main.cs: setup the GNOME Program outside the Interface initialization
26066         handler, it needs to be done before startup of any components
26068 2006-12-09  Aaron Bockover  <abock@gnome.org>
26070         * NEWS: Updated with release notes
26072         * data/contributors.xml: Updated
26074         * src/PlayerInterface.cs: Get rid of the old source view loading pane
26076         * src/Banshee.Base/ActionManager.cs:
26077         * src/Banshee.Base/Globals.cs:
26078         * src/Main.cs: Load the interface itself as a startup component; this
26079         allows the splash screen to stay up the entire startup time, showing
26080         progress of the interface load
26082         * src/Banshee.Base/Plugins/PluginCore.cs: Added support for disabling
26083         plugins altogether by setting BANSHEE_PLUGINS_DISABLE
26085         * src/Banshee.Base/Banshee.SmartPlaylist/Editor.cs: Focus the playlist
26086         name entry on UI load
26088 2006-12-08  Aaron Bockover  <abock@gnome.org>
26090         * build/icon-theme-installer: New script that meant to be used from
26091         within make/automake to install icons into the theme in an easy and
26092         proper way. It also updates the icon cache
26094         * data/images/Makefile.am: Use new icon-theme-installer
26096         * build/Makefile.am: EXTRA_DIST icon-theme-installer
26098         * data/images/splash.png: Updated splash from Jakub
26100         * src/Banshee.Base/Plugins/PluginCore.cs: Create the user plugins
26101         directory as some plugins expect it to be there
26103 2006-12-08  Aaron Bockover  <aaron@abock.org>
26105         * configure.ac:
26106         * build/m4/banshee/libbanshee.m4:
26107         * build/m4/shamrock/i18n.m4: Moved some macro calls back to configure.ac
26108         as gnome-autogen greps configure.ac (booo) for these call to see what
26109         programs it will need to run (libtoolize, intltoolize, autoheader); 
26110         would be nice if gnome-autogen could parse ACLOCAL_FLAGS and grep
26111         through the -I files as well. Hiss. Fixes BGO #383844.
26113 2006-12-08  Ruben Vermeersch  <ruben@savanne.be>
26115         * src/Banshee.Base/IO/GnomeVfs.cs:
26116         * src/Banshee.Base/IO/Interfaces.cs:
26117         * src/Banshee.Base/IO/SystemIO.cs:
26118         * src/Banshee.Base/IO/Unix.cs: Added a Move(from, to) method.
26120 2006-12-08  Aaron Bockover  <abock@gnome.org>
26122         * src/Banshee.Base/Sources/PlaylistSource.cs: Added a confirmation
26123         method that shows a dialog asking to unmap; has do not show me again 
26124         check box, fixes BGO #360466
26126         * src/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistSource.cs: Use
26127         PlaylistUtil.ConfirmUnmap
26129         * data/UIManagerLayout.xml: Added a close item placeholder
26131         * src/Banshee.Plugins/NotificationAreaIcon/NotificationAreaIconMenu.xml:
26132         Fill in the close item placeholder
26134         * src/Banshee.Plugins/NotificationAreaIcon/NotificationAreaIconPlugin.cs:
26135         Added close action that hides to the tray
26137         * src/Banshee.Base/Gui/SourceView.cs: Do not allow dragging tracks from
26138         a source onto itself (BGO #345620)
26140         * src/Banshee.Base/ImportManager.cs: Added ImportFinished event 
26141         Scott Peterson, BGO #362994
26143 2006-12-08  Aaron Bockover  <abock@gnome.org>
26145         * src/Main.cs: Added a --no-source-change argument that can be supplied
26146         with --dap or --audio-cd to disable selecting the source in the source
26147         view and instead simply present the already running instance. This will
26148         allow Banshee to start with the source selected if no instance was running
26149         but not change to the source if an instance was already started. Fixes
26150         BGO #345476
26152 2006-12-08  Aaron Bockover  <abock@gnome.org>
26154         * data/UIManagerLayout.xml: Added Copy to the context menu
26156         * src/Banshee.Base/ActionManager.cs: Removed 'Song(s)' from the menu
26157         items - that's implied
26159         * src/PlayerInterface.cs: Use a UTF8 encoding for the nautilus file copy;
26160         make the target static; show/hide the jump to playing item based on
26161         our current playback state
26163 2006-12-08  Aaron Bockover  <abock@gnome.org>
26165         * src/PlayerInterface.cs: Implement nautilus copy files action, 
26166         fixes BGO #344542
26168         * data/UIManagerLayout.xml:
26169         * src/Banshee.Base/ActionManager.cs: Added Copy item to Edit menu
26171 2006-12-08  Gabriel Burt  <gabriel.burt@gmail.com>
26173         * src/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistSource.cs: Clean up
26174         some methods, and add a remove queue to hopefully speed things up when
26175         songs are removed from the library.
26177 2006-12-08  Aaron Bockover  <aaron@abock.org>
26179         * src/PlayerInterface.cs: Fixed default accelerator for remove track
26180         confirmation dialog
26182         * src/Banshee.Widgets/SeekSlider.cs: Set the slider insensitive if no
26183         playback is happening (idle)
26185 2006-12-07  Gabriel Burt  <gabriel.burt@gmail.com>
26187         * src/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistSource.cs: Prevent a
26188         crasher by wrapping an access into the Library's dictionary of tracks in a
26189         try/catch.
26191 2006-12-07  Aaron Bockover  <abock@gnome.org>
26193         * data/UIManagerLayout.xml: 
26194         * src/Banshee.Base/ActionManager.cs: Move the source properties action
26195         to the edit menu
26197         * src/Banshee.Base/SourceManager.cs: Set the source properties action's
26198         visibility and not sensitivity
26200         * src/Banshee.Base/Database.cs: Added new columns to the Playlists table
26202         * src/Banshee.Base/Source.cs: Make SortColumn and SortType virtual
26204         * src/Banshee.Base/Sources/PlaylistSource.cs: Override SortColumn and
26205         SortType properties to read/write the Playlists table for the playlist
26207         * src/Banshee.Base/Sources/LibrarySource.cs: Override SortColumn and
26208         SortType properties to read/write from/to GConf
26210         * src/Banshee.Base/Gui/SourceView.cs: Fixed right click source activation
26211         bug. Source should never change on a right click - only the highlight
26213         * data/banshee.schemas.in:
26214         * src/Banshee.Base/GConfKeys.cs: Added LibrarySortColumn, LibrarySortType
26216 2006-12-07  Aaron Bockover  <abock@gnome.org>
26218         * src/Banshee.Base/Banshee.AudioProfiles/Pipeline.cs:
26219         * src/Banshee.Base/Banshee.AudioProfiles/PipelineVariable.cs:
26220         * src/Banshee.Base/Banshee.AudioProfiles/ProfileManager.cs: Fixed locale
26221         issues with loading of some profiles (vorbis) due to culture format
26222         rules that are not compatible with GStreamer (all pipeline input should
26223         be en_US); all conversions use an en-US CultureInfo now
26225 2006-12-07  Aaron Bockover  <abock@gnome.org>
26227         * data/audio-profiles/aac.xml: Fixed faac bitrate range problem
26229 2006-12-07  Aaron Bockover  <abock@gnome.org>
26231         * src/Banshee.Widgets/SearchEntry.cs: Set the base style on the action
26232         icons in the search entry when the style has been fully set on the
26233         entry (BGO #321773)
26235 2006-12-07  Aaron Bockover  <abock@gnome.org>
26237         * src/PlaylistModel.cs: Save/restore the sort ID from the active source
26238         Fixes BGO #353125.
26240         * src/Banshee.Base/Source.cs: Added SortColumn and SortType properties
26241         to allow for saving the sort ID along with the source and not globally
26243 2006-12-07  Aaron Bockover  <abock@gnome.org>
26245         * data/images/: Excellent new playlist icons from Jimmac
26247 2006-12-07  Aaron Bockover  <abock@gnome.org>
26249         * src/PlaylistView.cs: Fix the sort order for the track number column
26250         to properly sort by artist, album, then track number; sorting by track
26251         number is now the most logical sort/group operation (BGO #314149)
26253 2006-12-07  Aaron Bockover  <abock@gnome.org>
26255         * src/Banshee.Base/ActionManager.cs: Don't set the default string 
26256         for the source properties label here
26258         * src/Banshee.Base/Source.cs: Added SourcePropertiesLabel and 
26259         SourcePropertiesIcon virtual properties; set the default string here now
26261         * src/Banshee.Base/SourceManager.cs: Assign the source properties action
26262         its label and icon based on the active source's SourcePropertiesLabel
26263         and SourcePropertiesIcon properties
26265         * src/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistSource.cs: Override
26266         the SourcePropertiesLabel to 'Edit Smart Playlist...' as it makes a lot 
26267         more sense than 'Source Properties...'
26269 2006-12-07  Aaron Bockover  <abock@gnome.org>
26271         * src/Banshee.MediaEngine/Gstreamer/GstPlayerEngine.cs: Handle the 
26272         MissingPlugins error code
26274         * Gabriel Burt: The next time you see this man, buy him some beer.
26276 2006-12-07  Gabriel Burt  <gabriel.burt@gmail.com>
26278         * src/PlayerInterface.cs: Handle multiple tracks being added or removed at
26279         once in OnSourceTrackAdded/Removed.
26281         * src/PlaylistModel.cs: Add helpers for turning off and then restoring the
26282         sort order of the model, useful b/c otherwise when doing many additions or
26283         removals from the model it sorts after each one.  Fixes BGO #325968.
26285         Also, actually do something in RemoveTrack, fixes BGO #344833.
26287         * src/Banshee.Base/Source.cs: Make TrackEventArgs an ICollection instead
26288         of IEnumerable so we can get a Count easily.  Support sending multiple
26289         tracks with the OnTrackAdded and OnTrackRemoved helpers.
26291         * src/Banshee.Base/Banshee.SmartPlaylist/Editor.cs: whitespace.
26293         * src/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistSource.cs: Make some
26294         translated strings static.  Simplify and improve the way smart playlists
26295         are refreshed, removing unnecessary track removals (used to just clear
26296         everything out and start over).  Make sure to raise events inside the main
26297         loop to prevent crashing.
26299 2006-12-05  Aaron Bockover  <abock@gnome.org>
26301         * configure.ac: Organized, moved major pieces to shamrock/banshee m4
26302         macros so this is easier to manage
26304         * libbanshee/Makefile.am: Cleaned up
26306         * build/m4/banshee/*.m4: New Banshee specific m4 macros
26308         * build/m4/shamrock/*.m4: New reusable Shamrock m4 macros
26310 2006-12-05  Aaron Bockover  <abock@gnome.org>
26312         * libbanshee/gst-playback-0.10.c: Set gconfaudiosink.profile=1 if
26313         supported ('music and movies' profile)
26315 2006-12-05  Aaron Bockover  <abock@gnome.org>
26317         * libbanshee/gst-playback-0.10.c: Added gst_playback_get_error_quarks
26318         to return the GST_*_ERROR quarks/domains
26320         * src/Banshee.MediaEngine/Gstreamer/GstPlayerEngine.cs: Added enums
26321         for all the error codes in the GST_*_ERROR domains; work off those
26322         domains/codes
26324 2006-12-05  Aaron Bockover  <abock@gnome.org>
26326         * src/PlaylistView.cs: Show a message for TrackPlaybackError.CodecNotFound
26328         * libbanshee/gst-playback-0.10.c: Extended the error callback to 
26329         propagate the error code 
26331         * src/Banshee.MediaEngine/Gstreamer/GstPlayerEngine.cs: Update managed
26332         delegate and handler to handle the new error code parameter; 
26333         Set PlaybackError on the track based on the GStreamer error code, 
26334         not the string message
26336         * src/PlayerInterface.cs:
26337         * src/PlaylistModel.cs: Cleaned up unused variables
26339 2006-12-05  Aaron Bockover  <abock@gnome.org>
26341         Patch to fix BGO #340222: Do not stop playing after a playback error
26343         * src/PlayerInterface.cs: On playback error, advance to the next song
26344         linearly and without repeating (eliminates the possibility of an endless
26345         loop if all tracks in the source cannot be played)
26347         * src/PlaylistModel.cs: Stop playing in some states when the repeat
26348         mode is ErrorHalt
26350         * src/PlaylistView.cs: Set row pixbuf based on new TrackPlaybackError
26351         enum of the track, show status on errored tracks ('Missing')
26353         * src/Banshee.Base/PlayerEngineCore.cs: Set default TrackPlaybackError
26354         on a track for which the underlying engine raises an error but does
26355         not set it on the track itself
26357         * src/Banshee.Base/TrackInfo.cs: Small syntax cleanup, added 
26358         TrackPlaybackError enum and PlaybackError property to TrackInfo
26360         * src/Banshee.Dap/Ipod/IpodDapTrackInfo.cs: Set PlaybackError to 
26361         TrackPlaybackError.Drm if the song is protected
26363         * src/Banshee.MediaEngine/Gstreamer/GstPlayerEngine.cs: Support the
26364         resource not found error and set PlaybackError accordingly
26366 2006-12-05  Ruben Vermeersch  <ruben@savanne.be>
26368         * src/Banshee.Base/Gui/PreferencesDialog.cs: Allow users to specify
26369         custom LibraryFilePattern and LibraryFolderPattern preferences to gconf,
26370         yet don't crash in the preferences screen.
26372 2006-12-05  Ruben Vermeersch  <ruben@savanne.be>
26374         * data/banshee.schemas.in: Stupid detail of the day: add missing closing )
26375         to make them all line up in /apps/Banshee/LibraryFolderPattern. Ony char
26376         fix.
26378 2006-12-05  Aaron Bockover  <abock@gnome.org>
26380         * src/Banshee.Base/IO/Interfaces.cs: 
26381         * src/Banshee.Base/IO/Unix.cs:
26382         * src/Banshee.Base/IO/SystemIO.cs:
26383         * src/Banshee.Base/IO/GnomeVfs.cs: Use SafeUri for IFile methods
26385         * src/Banshee.Base/IO/Utilities.cs: Delete a file and trim its parent
26386         directories
26388         * src/Banshee.Base/Banshee.Base.mdp:
26389         * src/Banshee.Base/Makefile.am: Added Utilities.cs
26391         * src/Banshee.Base/ImportManager.cs: Use SafeUri when checking file
26393 2006-12-05  Aaron Bockover  <abock@gnome.org>
26395         * src/PlayerInterface.cs: Save/restore the active filter on 
26396         sources (BGO #345218)
26398         * src/Banshee.Base/Source.cs: Added FilterQuery and FilterField
26400 2006-12-04  Aaron Bockover  <abock@gnome.org>
26402         * src/Banshee.Base/IO/Unix.cs: Specify directory perms in base 10; C# 
26403         doesn't support octal literals - nor does the compiler warn if an octal
26404         literal is found (stating that it will be interpreted in base 10); fixes
26405         the bad perms on UNIX backend created directories
26407 2006-12-04  Aaron Bockover  <abock@gnome.org>
26409         * src/Banshee.Base/IO/Unix.cs: Use g_mkdir_with_parents to recursively
26410         create directories or fall back on System.IO.Directory.CreateDirectory
26412 2006-12-04  Aaron Bockover  <abock@gnome.org>
26414         * build/m4/shamrock/expansions.m4: Fixed datadir expansion macro
26416 2006-12-04  Aaron Bockover  <abock@gnome.org>
26418         * data/banshee-dialogs.glade: 
26419         * src/Banshee.Base/Gui/PreferencesDialog.cs: Added file/folder pattern
26420         boxes and fixed up mnemonics
26421         
26422         * data/banshee.schemas.in: 
26423         * src/Banshee.Base/GConfKeys.cs: Added LibraryFilePattern and 
26424         LibraryFolderPattern; deprecated FileNamePattern
26426         * src/Banshee.Base/Makefile.am: Added SampleTrackInfo.cs
26428         * src/Banshee.Base/SampleTrackInfo.cs: A sample track info object used
26429         for demonstrating file/folder patterns
26431         * src/Banshee.Base/FileNamePattern.cs: More flexible patterns; broken
26432         into file and folder components; tokens have full descriptions and 
26433         expansion delegate handlers (the conversion token handles its own
26434         expansion)
26436         * tests/FileNamePattern.cs: Added unit tests for FileNamePattern
26438         * tests/GenericCollectionController.cs: Fixed broken test
26440         * tests/Makefile.am: Added FileNamePattern.cs
26442 2006-11-29  Aaron Bockover  <abock@gnome.org>
26444         * data/banshee.schemas.in: Added WriteMetadata schema
26446 2006-11-29  Aaron Bockover  <abock@gnome.org>
26448         * src/Banshee.Base/Dap/DapCore.cs: Use volume.fsusage=filesystem instead
26449         of volume.policy.should_mount
26451 2006-11-29  Aaron Bockover  <abock@gnome.org>
26453         * configure.ac: Use Shamrock expansion macros
26455         * build/Makefile.am:
26456         * build/m4/Makefile.am: Added Makefile to EXTRA_DIST the m4 macros
26458         * data/images/Makefile.am: 
26459         * src/BooBuddy/Makefile.am: Add missing files to EXTRA_DIST
26461 2006-11-27  Aaron Bockover  <abock@gnome.org>
26463         * src/Banshee.Base/Dap/DapCore.cs: Added some debug logging calls; respect
26464         volume.ignore
26466 2006-11-27  Gabriel Burt  <gabriel.burt@gmail.com>
26468         * src/Banshee.Dap/MassStorage/MassStorageDap.cs: Trim white space from
26469         directory names to prevent bug.  Fixes BGO #375146.
26471 2006-11-27  Gabriel Burt  <gabriel.burt@gmail.com>
26473         * src/Banshee.Base/ImportManager.cs: Expose label strings as public
26474         properties.
26476         * src/Banshee.Dap/MassStorage/MassStorageDap.cs: Set the strings for the
26477         ImportManager to make it clear that the songs are being loaded, not
26478         imported from the DAP. Fixes BGO #355880.
26480 2006-11-27  Gabriel Burt  <gabriel.burt@gmail.com>
26482         * src/Banshee.Dap/MassStorage/MassStorageDap.cs: Lazy load several HAL
26483         properties that won't change instead of going over the dbus to get them
26484         every time, fixing the managed-dbus related crashes. Allow overriding the
26485         HAL properties (or setting them in case they are missing) in key=value
26486         form within the .is_audio_player file.  Display folder depth, audio
26487         folders, and playback formats in the DAP properties. Use LogCore instead
26488         of Console.WriteLine's in several places.
26490 2006-11-27  Gabriel Burt  <gabriel.burt@gmail.com>
26492         * src/Banshee.Dap/MassStorage/MassStorageDap.cs: Silently ignore iPods so
26493         as not to confuse the user if iPod support isn't installed or their iPod
26494         isn't recognized by it. Fixes BGO #355890.
26496 2006-11-27  Aaron Bockover  <abock@gnome.org>
26498         * src/Banshee.Base/Dap/DapCore.cs: Work with the new PropertyModified
26499         event args, use a registration wait list to make sure the same device
26500         doesn't get multiple event handler registrations; this _should_ finally
26501         fix all the iPod detection problems - the root of which was outdated
26502         and incorrect HAL documentation
26504         * hal-sharp/Device.cs: Wrap the proper delegate signature of 
26505         Hal.Device.PropertyModified which is ia(sbb), not sbb like the outdated
26506         HAL specification implies. Thanks to Sebastian Dröge and Alp Toker for
26507         looking into the issue.
26509 2006-11-26  Aaron Bockover  <abock@gnome.org>
26511         * build/Common.Makefile: Reference installed njb-sharp libraries in the
26512         run path (Bertrand Lorentz, BGO #379119)
26514 2006-11-26  Aaron Bockover  <abock@gnome.org>
26516         * src/Banshee.Base/Globals.cs: Initialize gstreamer before gconf. (Tim 
26517         Yamin, BGO #379529)
26519 2006-11-25  Ruben Vermeersch  <ruben@savanne.be>
26521         * data/banshee.glade: Lower the border size of vbox3 to zero. 
26522         Fixes BGO #369786.
26524 2006-11-22  Aaron Bockover  <abock@gnome.org>
26526         * autogen.sh: Set ACLOCAL_FLAGS to include new m4 macros
26528         * configure.ac: Use the new SHAMROCK mono macros
26530         * build/m4/shamrock/*.m4: Helper macros, new mono-specific macros for 
26531         properly detecting mono components
26533         * build/m4/banshee/*.m4: Banshee-specific m4 macros
26535 2006-11-22  Aaron Bockover  <abock@gnome.org>
26537         Initial Rio Karma support by Bob Copeland <me@bobcopeland.com> (BGO #348730)
26539         * configure.ac:
26540         * src/Banshee.Dap/Makefile.am: Added build settings for Karma
26542         * src/Banshee.Dap/Karma/*: Initial support for the Rio Karma DAPs
26544 2006-11-22  Aaron Bockover  <abock@gnome.org>
26546         * src/Banshee.Base/Dap/DapCore.cs: Use Device.PropertyModified instead
26547         of a poll/wait table to check for volume.is_mounted
26549 2006-11-22  Aaron Bockover  <abock@gnome.org>
26551         * build/Common.Makefile: Globally ignore compiler warning 0278 as gmcs
26552         incorrectly reports it: http://bugzilla.novell.com/show_bug.cgi?id=322696
26553         
26554 2006-11-22  Aaron Bockover  <abock@gnome.org>
26556         * taglib-sharp/update-checkout.sh: Updated
26558         * tests/Makefile.am:
26559         * tests/GenericCollectionController.cs: Added some tests for the yet
26560         to be completed GenericCollectionController
26562         * src/BooBuddy/BooBuddy.mdp:
26563         * src/BooBuddy/BooBuddyInterpreter.cs:
26564         * src/BooBuddy/BooBuddyShell.cs:
26565         * src/BooBuddy/BooBuddyWindow.cs:
26566         * src/BooBuddy/Makefile.am: Updated; support new reflection debugging
26567         
26568         * src/BooBuddy/BooBuddy.Debugger/DebugAliasAttribute.cs: Attribute
26569         to alias methods for easier invocation in the shell
26570         
26571         * src/BooBuddy/BooBuddy.Debugger/DebugAliasBuilder.cs: Builds alias
26572         methods using reflection
26573         
26574         * src/BooBuddy/BooBuddy.Debugger/Reflection.cs: Some reflection utilities
26575         useful in debugging
26576         
26577         * src/Banshee.Base/IO/IOProxy.cs:
26578         * src/Banshee.Base/IO/SystemIO.cs:
26579         * src/Banshee.Base/IO/Unix.cs: 
26580         * src/Banshee.Base/IO/GnomeVfs.cs: Initial pass at GNOME VFS backend
26581         support - not complete. Other backends use the MimeType support from
26582         the GNOME VFS backend however
26584         * src/Banshee.Widgets/Banshee.Widgets.mdp:
26585         * src/Banshee.Widgets/Makefile.am:
26586         * src/Banshee.Widgets/DictionaryComboBox.cs: Added a custom combo box
26587         for displaying a string-valued dictionary
26589         * src/Banshee.Base/GenericCollectionController.cs: Initial work for 
26590         a new playback controller
26592         * src/Banshee.Base/Makefile.am: Added GenericCollectionController.cs
26594         * src/banshee.mdp:
26595         * src/Banshee.Base/Banshee.Base.mdp:
26596         * hal-sharp/hal-sharp.mdp: Updated
26598         * banshee.mds: Added 
26599         * src/Banshee.Dap/Ipod/Ipod.mdp: Added Ipod MD project
26601         * configure.ac: Added booc check; booc will be used to 'pre-compile' Boo
26602         macros during build to ensure they at least compile; optional 
26604         * libbanshee/gst-misc-0.10.c:
26605         * libbanshee/gst-misc.h:
26606         * src/Banshee.Base/GstMisc.cs: Removed GStreamer-based mime type detection
26608 2006-11-21  Aaron Bockover  <abock@gnome.org>
26610         * build/Common.Makefile: Rules for running uninstalled with DAP support
26612         * src/Banshee.Base/Dap/DapCore.cs: Fixed tiny regression introduced after
26613         0.11.2 (CVS only) regarding the loading of DAP assemblies
26615 2006-11-16  Ruben Vermeersch  <ruben@savanne.be>
26617         * src/Banshee.Plugins/MMKeys/MMKeysConfigPage.cs: Mark string "Configure
26618         Keyboard Shortcuts" for translation, fixes BGO #376070.
26620 2006-11-16  Ruben Vermeersch  <ruben@savanne.be>
26622         * po/POTFILES.in: Add 3 missing files (src/Banshee.Base/SourceManager.cs,
26623                         src/Banshee.Plugins/Daap/DaapContainerSource.cs,
26624                         src/Banshee.Plugins/Daap/DaapErrorView.cs).
26625         * po/POTFILES.skip: Remove non exisiting libbanshee/gst-cd-trm.c.
26627         Fixes BGO #375890.
26629 2006-11-15  Gabriel Burt  <gabriel.burt@gmail.com>
26631         * src/Banshee.Plugins/NotificationAreaIcon/NotificationAreaIconPlugin.cs:
26632         Fix regression caused by minimize (minimize effect showed the window being
26633         put in the taskbar, which was confusing).
26635 2006-11-12  Gabriel Burt  <gabriel.burt@gmail.com>
26637         * src/Banshee.Base/Globals.cs: Make InterfaceElements.MainWindow mutable
26638         so minimode can set itself as such and the notify plugin can behave
26639         correctly (eg hide and show the correct main window when the icon is
26640         clicked).
26642         * src/Banshee.Plugins/NotificationAreaIcon/NotificationAreaIconPlugin.cs:
26643         Minimize instead of hiding the main window when clicking the notify icon
26644         and set the task bar hint to false to avoid having to reset the
26645         size/position of the main window.  Remove ResizeMoveWindow function.
26646         Only show notification popups if Banshee is not currently focused - fixes
26647         BGO #361534.
26649 2006-11-09  Ruben Vermeersch  <ruben@savanne.be>
26651         * src/PlayerInterface.cs: Fix typo as reported in BGO #372720.
26653 2006-11-04  Gabriel Burt  <gabriel.burt@gmail.com>
26655         * src/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistCore.cs: Add rate
26656         limiting that prevents Banshee from going nuts when many tracks are
26657         changed at once (when importing, say).  Fixes BGO #363066.
26659         * src/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistSource.cs: Use the
26660         rate limiting.  Also, don't delete the smart playlist when it's emptied.
26662 2006-11-02  Jakub Steiner <jimmac@ximian.com>
26664         * music-player-banshee-32.png: add another common size for the app
26665                 icon, 32x32px
26667 2006-11-01  Ruben Vermeersch  <ruben@savanne.be>
26669         * src/Banshee.Plugins/Audioscrobbler/AudioscrobblerPlugin.cs: Change some
26670         WriteLine's to debug messages through the logger.
26672 2006-11-01  Aaron Bockover  <abock@gnome.org>
26674         Patch by Christopher James Halse Rogers <chalserogers@gmail.com> 
26675         (BGO #365200)
26677         * src/Banshee.Base/AudioCdRipper.cs: Add optional error-correction when 
26678         importing CDs, enabling the paranoia mode of the cdparanoiasrc.
26680         * data/banshee-dialogs.glade:
26681         * src/Banshee.Base/GConfKeys.cs:
26682         * src/Banshee.Base/Gui/PreferencesDialog.cs: Add a checkbox to the
26683         Preferences dialog to enable/disable CD error-correction.
26685 2006-11-01  Aaron Bockover  <abock@gnome.org>
26687         * src/Banshee.Base/AmazonCoverFecther.cs: Do not download cover art
26688         if the file already exists (Alexandros Frantzis, BGO #367047)
26690         * src/Banshee.Base/TrackInfo.cs: Make DateAdded mutable (Sebastian Dröge, 
26691         BGO #367889)
26693 2006-10-31  Aaron Bockover  <abock@gnome.org>
26695         * src/PlayerInterface.cs: Fixed modifier bug (BGO #368436)
26697         * src/banshee.mdp: Updated
26699         * src/Banshee.Plugins/Daap/DaapCore.cs: Removed the Jono block from GUADEC;
26700         we love Jono - rock on
26702         * src/BooBuddy/BooBuddyShell.cs: Started on code completion
26703         
26704         * src/BooBuddy/BooBuddyWindow.cs: Embed reference to shell as 'shell'
26706 2006-10-31  Aaron Bockover  <abock@gnome.org>
26708         * src/Banshee.Base/Sources/LibrarySource.cs: Queue added tracks in a
26709         pending queue and flush it ever 1.5 seconds, this speeds up importing
26710         by around 1.5 minutes on a 5100 track set
26712         * src/PlaylistModel.cs: Removed old unused and confusing code
26714         * src/PlayerInterface.cs: Updated the status bar text, do not run it in
26715         an idle handler
26717         * src/Banshee.Base/ImportManager.cs: Use a timer for the import
26719         * src/Banshee.Base/Makefile.am:
26720         * src/Banshee.Plugins/Daap/Daap.mdp: Updated
26722         * src/Banshee.Base/Dap/DapCore.cs: Use PluginFactory.IncludeMask
26724 2006-10-31  Aaron Bockover  <abock@gnome.org>
26726         * src/Banshee.Base/IO/IOProxy.cs: Use a static table of types instead of
26727         reflection
26729         * src/Banshee.Base/BansheeTodo.cs: Removed
26731         * src/Main.cs: Removed BansheeTodo support
26732         
26733         * src/Banshee.Base/TrackInfo.cs: Removed old BansheeTodo attributes
26735         * src/Banshee.Base/Utilities.cs: Added InvokeMethod and ModuleGetTypes
26736         reflection utilities
26738         * src/Banshee.Base/Banshee.AudioProfiles/Abakos.Compiler/Functions.cs:
26739         Disabled reflection-loaded functions
26741         * src/Banshee.Base/Branding.cs:
26742         * src/Banshee.Base/Plugins/PluginFactory.cs: Check for 
26743         PluginModuleEntry.GetTypes() in plugin assemblies and use that instead
26744         of Assembly.GetTypes() if it exists; fall back otherwise
26746         * src/Banshee.Dap/Ipod/IpodDap.cs:
26747         * src/Banshee.Dap/MassStorage/MassStorageDap.cs:
26748         * src/Banshee.Dap/Mtp/MtpDap.cs:
26749         * src/Banshee.Dap/Njb/NjbDap.cs:
26750         * src/Banshee.MediaEngine/Gstreamer/GstPlayerEngine.cs:
26751         * src/Banshee.MediaEngine/Helix/HelixRemotePlayerEngine.cs:
26752         * src/Banshee.Plugins/Audioscrobbler/AudioscrobblerPlugin.cs:
26753         * src/Banshee.Plugins/Daap/DaapPlugin.cs:
26754         * src/Banshee.Plugins/MMKeys/MMKeysPlugin.cs:
26755         * src/Banshee.Plugins/MetadataSearch/MetadataSearchPlugin.cs:
26756         * src/Banshee.Plugins/NotificationAreaIcon/NotificationAreaIconPlugin.cs:
26757         Provide a PluginModuleEntry.GetTypes() 
26759 2006-10-29  Gabriel Burt  <gabriel.burt@gmail.com>
26761         * src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs: Don't show
26762         static playlists unless there is at least one. Fixes BGO #354389.
26764 2006-10-26  Aaron Bockover  <abock@gnome.org>
26766         * src/Banshee.Base/TrackInfo.cs: Make PlayCount and LastPlayed properties
26767         mutable (Scott Peterson, BGO #357127)
26769 2006-10-25  Aaron Bockover  <abock@gnome.org>
26771         * src/Banshee.Plugins/Daap/Daap.mdp: Updated
26773         * src/Banshee.Plugins/Daap/DaapSource.cs: Show an icon for locked
26775         * src/Banshee.Plugins/Daap/DaapErrorView.cs: Updated disconnected message
26777 2006-10-25  Aaron Bockover  <abock@gnome.org>
26779         * src/Banshee.Base/Plugins/PluginCore.cs: Do not crash 
26780         if ~/.gnome2/banshee/scripts does not exist. Nice.
26782 2006-10-25  Aaron Bockover  <abock@gnome.org>
26784         * banshee.mds:
26785         * src/Banshee.Plugins/Daap/Daap.mdp: Added Daap project
26787         * src/Banshee.Dap/Ipod/IpodDap.cs: 
26788         * src/Banshee.Dap/Ipod/UnsupportedDatabaseView.cs: Offer to rebuild
26789         the database if iTunesDB is missing altogether; use ShadowContainer
26791         * src/Banshee.Plugins/Daap/DaapLoginDialog.cs: Added proper dialog
26792         activate accel key
26794         * src/Banshee.Plugins/Daap/DaapSource.cs: Use DaapErrorView to display
26795         errors inside the source
26797         * src/Banshee.Plugins/Daap/DaapErrorView.cs: A ShadowContainer+MessagePane
26798         view that shows friendly error messages; warns about the iTunes 7 problem
26800         * src/Banshee.Plugins/Daap/Makefile.am: Added DaapErrorView.cs
26802         * src/Banshee.Widgets/Makefile.am:
26803         * src/Banshee.Widgets/Banshee.Widgets.mdp: Added ShadowContainer.cs
26805         * src/Banshee.Widgets/ShadowContainer.cs: A shadowed/painted Alignment
26807         * src/Banshee.Widgets/MessagePane.cs: Support overriding the arrow
26808         pixbuf
26810 2006-10-24  Aaron Bockover  <abock@gnome.org>
26812         * src/PlayerInterface.cs: Moved SourceView ButtonPressEvent handler and
26813         SensitizeActions to SourceView and SourceManager classes
26815         * src/BooBuddy/BooBuddy.mdp:
26816         * src/Banshee.Base/Banshee.Base.mdp: 
26817         * src/BooBuddy/Makefile.am: Updated
26819         * src/BooBuddy/BooBuddyWindow.cs: 
26820         * src/BooBuddy/BooBuddyInterpreter.cs: Split out the interpreter from the
26821         window
26823         * src/BooBuddy/BooBuddyShell.cs: Cosmetic work
26825         * src/Banshee.Base/Source.cs: Added CanActivate property
26827         * src/Banshee.Plugins/Daap/DaapContainerSource.cs: Override CanActivate to
26828         be false
26830         * src/Banshee.Base/SourceManager.cs: Added SensitizeActions
26832         * src/Banshee.Base/Gui/SourceView.cs: Do not allow activation or 
26833         button press events to happen on sources that have CanActivate=false
26835         * src/Banshee.Base/Plugins/PluginCore.cs: Support loading Boo scripts;
26836         scripts are compiled and run at startup - scripts can either provide
26837         a static Main method or can implement the standard Banshee plugin API
26838         for full plugin integration
26840 2006-10-23  Aaron Bockover  <abock@gnome.org>
26842         Banshee 0.11.2 Released
26844         * NEWS: Updated
26846         * configure.ac: 
26847         * build/Common.Makefile:
26848         * src/Boo/Makefile.am: Use external boo if --enable-external-boo is passed
26849         (Sebastian Dröge)
26851 2006-10-23  Aaron Bockover  <abock@gnome.org>
26853         Patch by Scott Peterson, BGO #363548
26855         * src/Banshee.Base/Source.cs: Fix for ClearChildSources
26857         * src/Banshee.Plugins/Daap/DaapCore.cs:
26858         * src/Banshee.Plugins/Daap/DaapContainerSource.cs:
26859         * src/Banshee.Plugins/Daap/DaapSource.cs: DAAP sources show up under
26860         a master DAAP container source
26861         
26862         * src/Banshee.Plugins/Daap/Makefile.am: Added DaapContainerSource.cs
26864 2006-10-23  Aaron Bockover  <abock@gnome.org>
26866         * build/Common.Makefile: Fixed make run
26868         * data/Makefile.am:     
26869         * src/Makefile.am:
26870         * src/Boo/Makefile.am:
26871         * src/BooBuddy/Makefile.am: Fixes for make distcheck
26873 2006-10-21  Aaron Bockover  <abock@gnome.org>
26875         * banshee.mds: 
26876         * src/BooBuddy/BooBuddy.mdp: Added BooBuddy MonoDevelop project
26878         * configure.ac:
26879         * src/Makefile.am: Added BooBuddy
26881         * build/Common.Makefile: Added BooBuddy/Boo rules
26883         * src/Banshee.Base/Makefile.am:
26884         * src/Banshee.Base/Banshee.Base.mdp: Updated
26885         
26886         * src/Banshee.Base/ActionManager.cs: Run the Boo Buddy interpreter
26888         * src/Banshee.Base/Banshee.Debugger/Shell.cs: Removed
26890         * src/Boo/Boo.Lang.Interpreter.dll: Added
26892         * src/BooBuddy: Boo Buddy is simple Boo interpreter shell that lets
26893         applications easly add Boo interpreting against loaded assemblies
26895         * src/BooBuddy/BooBuddyShell.cs: Interactive shell for Boo interpreting
26897         * src/BooBuddy/BooBuddyWindow.cs: Main Boo Buddy window that interfaces
26898         with the Boo interpreter and the interactive Boo Buddy shell
26900 2006-10-21  Aaron Bockover  <abock@gnome.org>
26902         * src/PlayerInterface.cs: Only unload the accel group when the search
26903         entry is focused if the key event does not have a modifier
26905 2006-10-21  Aaron Bockover  <abock@gnome.org>
26907         * src/Banshee.Base/ActionManager.cs: Only show Shell in --debug, added
26908         CTRL-SHIFT-S binding
26910 2006-10-21  Aaron Bockover  <abock@gnome.org>
26912         * src/Main.cs: 
26913         * src/Banshee.Base/Makefile.am:
26914         * src/Banshee.Base/Globals.cs:
26915         * src/Banshee.Base/Sources/TestSource.cs:
26916         * src/Banshee.Base/Banshee.Debugger/Client.cs:
26917         * src/Banshee.Base/Banshee.Debugger/RemoteMethodAttribute.cs:
26918         * src/Banshee.Base/Banshee.Debugger/Server.cs: Removed yesterday's DBus
26919         plus reflection-based stuff
26921         * configure.ac: Output src/Boo/Makefile
26923         * src/Banshee.Base/ActionManager.cs:
26924         * data/UIManagerLayout.xml: Added view menu item for Shell
26926         * src/Makefile.am: Added Boo to SUBDIRS
26928         * build/Common.Makefile: Rules for Boo
26930         * src/Boo/*.dll: Added Boo libraries
26932         * src/Banshee.Base/Banshee.Debugger/Shell.cs: Added new Boo support and UI
26934 2006-10-21  Patrick van Staveren  <trick@vanstaveren.us>
26936         * src/Banshee.Dap/Mtp/MtpDeviceId.cs: added Toshiba Gigabeat S
26938 2006-10-21  Aaron Bockover  <abock@gnome.org>
26940         * src/Banshee.Base/Gui/SourceView.cs: AutoExpand now works for child
26941         sources (Scott Peterson, BGO #363548)
26943 2006-10-21  Aaron Bockover  <abock@gnome.org>
26945         * src/Banshee.Base/Sources/TestSource.cs: Test source for testing the
26946         functionality of the source base class, source manager, and source view;
26947         tests can be invoked using the new interactive remote debugger
26949         * src/Banshee.Base/Makefile.am:
26950         * src/Banshee.Base/Banshee.Base.mdp: Added TestSource.cs
26952         * src/Banshee.Base/ChildSource.cs: Child sources can now be parents
26954         * src/Banshee.Base/Source.cs:
26955         * src/Banshee.Base/SourceManager.cs:
26956         * src/Banshee.Base/Gui/SourceView.cs: Patched by Scott Peterson to allow
26957         recursive sources (BGO #363548)
26958         
26959         * src/Banshee.Base/SourceManager.cs: Added RemoveSource(Type), use
26960         generics for the source list
26962 2006-10-21  Aaron Bockover  <abock@gnome.org>
26964         * src/Main.cs: Run the debugger client if --debug-client is passed
26966         * src/Banshee.Base/Globals.cs: Start the debugger server, expose the
26967         Shutdown method to the remote debugger
26969         * src/Banshee.Base/Makefile.am:
26970         * src/Banshee.Base/Banshee.Base.mdp: Added Banshee.Debugger files
26972         * src/Banshee.Base/Banshee.Debugger/Server.cs: Remote debugger server; 
26973         allows public static methods flagged with RemoteMethodAttribute in 
26974         Banshee to be run remotely over DBus
26975         
26976         * src/Banshee.Base/Banshee.Debugger/Client.cs: Simple command line client
26977         to the remote DBus debugger server
26978         
26979         * src/Banshee.Base/Banshee.Debugger/RemoteMethodAttribute.cs: Attribute
26980         to expose a public static method to the remote debugger
26981         
26982 2006-10-21  Aaron Bockover  <abock@gnome.org>
26984         * configure.ac: Added a missing AC_MSG_RESULT
26986 2006-10-20  Aaron Bockover  <abock@gnome.org>
26988         * build/Common.Makefile: Added BANSHEE_PROFILES_PATH for running uninstalled
26990         * data/Makefile.am: XML profile definitions split into multiple files to
26991         make it easy for distros to add/remove/customize specific profiles
26993         * data/audio-profiles.xml: Removed, split into multiple files
26995         * data/audio-profiles/*.xml: Added multiple files from old single file
26997         * src/Banshee.Base/Globals.cs: Always load profiles from path set in
26998         BANSHEE_PROFILES_PATH env variable
27000         * src/Banshee.Base/Banshee.AudioProfiles/PipelineVariable.cs: Added
27001         PossibleValuesKeys which can be used to look up variable values in 
27002         the XML-defined order (vs distributed hash)
27004         * src/Banshee.Base/Banshee.AudioProfiles/ProfileManager.cs: Support loading
27005         multiple XML files from a directory
27007         * src/Banshee.Base/Banshee.AudioProfiles.Gui/ProfileConfigurationDialog.cs:
27008         use PossibleValuesKeys to populate the combo box in XML-defined order
27010 2006-10-20  Gabriel Burt  <gabriel.burt@gmail.com>
27012         * src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs: Add escape
27013         method since Aaron removed it from the Sql namespace.
27015         * src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs: Add back in
27016         escaping that Aaron took out.  Its ugly, but bigger changes will need to
27017         be made to improve how Smart Playlists interacts with the db.
27019         * src/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistSource.cs: Fix up
27020         the commit's update query to use the new DbCommand class.
27022 2006-10-20  Aaron Bockover  <abock@gnome.org>
27024         * src/PlaylistModel.cs:
27025         * src/Banshee.Base/Library.cs: More use of DbCommand
27027         * src/Banshee.Base/Banshee.Kernel/Scheduler.cs: Added Unschedule(Type)
27029         * src/Banshee.Plugins/MetadataSearch/MetadataSearchPlugin.cs: Use
27030         DbCommand for the query and use Scheduler.Unschedule(Type) before
27031         rescanning the library 
27033 2006-10-20  Aaron Bockover  <abock@gnome.org>
27035         * src/Banshee.Base/Banshee.SmartPlaylist/Editor.cs:
27036         * src/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistCore.cs:
27037         * src/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistSource.cs: Start
27038         moving to DbCommand (BNC #212477)
27040 2006-10-20  Aaron Bockover  <abock@gnome.org>
27042         Most of the work done for BNC #212477, provides nicer safer way to do
27043         SQL queries against the local library, better APIs, and some optimizations
27045         * src/PlayerInterface.cs:
27046         * src/PlaylistModel.cs:
27047         * src/Banshee.Base/Library.cs:
27048         * src/Banshee.Base/Banshee.SmartPlaylist/Editor.cs:
27049         * src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:
27050         * src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:
27051         * src/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
27052         * src/Banshee.Plugins/MetadataSearch/MetadataSearchPlugin.cs:
27053         * tools/BansheeImport.cs: Removed legacy Sql namespace from use; still
27054         needs porting to DbCommand (still using String.Format)
27055         
27056         * src/Banshee.Base/LibraryTrackInfo.cs: 
27057         * src/Banshee.Base/Sources/PlaylistSource.cs: Use new DbCommand/DbParameter
27058         
27059         * src/Banshee.Base/QueuedSqliteDatabase.cs: Added new DbCommand/DbParameter
27060         classes; made API easy to use for generating proper SQL that guards 
27061         against SQL injection attacks (while this could only be possible by
27062         local input previously, it's still a good thing)
27063         
27064         * src/Banshee.Base/Sources/ImportErrorsSource.cs: Guard against null ref
27066         * src/Banshee.Base/Banshee.Base.mdp:
27067         * src/Banshee.Base/Makefile.am:
27068         * src/Banshee.Base/SqlGenerator.cs: Removed
27070 2006-10-19  Patrick van Staveren  <trick@vanstaveren.us>
27072         * configure.ac: require libgphoto2-sharp 2.2.1.4.trunk or better
27074 2006-10-19  Aaron Bockover  <abock@gnome.org>
27076         * configure.ac: Bump to 0.11.2, output build/Makefile, use top_srcdir
27077         and not top_builddir for the internal gmcs
27079 2006-10-19  Aaron Bockover  <abock@gnome.org>
27081         * Makefile.am: Add build to SUBDIRS
27083         * build/Makefile.am: EXTRA_DIST
27085         * build/Common.Makefile: moved from Makefile.include at the root
27087         * All applicable Makefile.am: Include build/Common.Makefile
27089 2006-10-19  Aaron Bockover  <abock@gnome.org>
27091         * configure.ac: Run gmcs on build/mcs-test-79698.cs to test for 
27092         BXC #79698; use build/gmcs.exe as the MCS compiler if building 
27093         build/mcs-test-79698.cs fails (indicating the installed compiler
27094         has the bug)
27096         * build/gmcs.exe: The gmcs compiler from Mono 1.1.18 with the patch
27097         for http://bugzilla.novell.com/show_bug.cgi?id=322401 applied
27099         * build/mcs-test-79698.cs: Test case for the above bug
27101 2006-10-19  Alp Toker  <alp@atoker.com>
27103         * src/Banshee.Base/Sources/AudioCdSource.cs:
27104         Avoid gmcs compiler error by referring to disk instance as a field.
27105         * src/Banshee.Dap/Ipod/UnsupportedDatabaseView.cs:
27106         * src/PlayerInterface.cs: Replace invalid anonymous method syntax that
27107         causes gmcs to fail with correct C# 2.0.
27109 2006-10-18  Patrick van Staveren <trick@cvs.gnome.org>
27111         * src/Banshee.Dap/Mtp/MtpDap.cs: should fix build problems
27113         See comments on BGO 361878 before compiling MTP support
27115 2006-10-17  Aaron Bockover  <abock@gnome.org>
27117         * configure.ac: Revert to pre-intltool 0.35 method of using po/LINGUAS,
27118         but in a more forward-compatible way (po/LINGUAS format does not need
27119         reverting to pre-0.35 format); intltool 0.35 is not available in
27120         enough distributions for it to be worth using right now - no complaining!
27122         ALL_LINGUAS=`grep -v '^#' $srcdir/po/LINGUAS | sed -r ':a;N;$!ba;s/\n/ /g; s/[ ]+/ /g'`
27124 2006-10-17  Aaron Bockover  <abock@gnome.org>
27126         * src/Banshee.Base/Banshee.Burner/BurnerFormatList.cs: Fixed local
27127         variable resolution problem with the anonymous delegate
27129 2006-10-17  Alp Toker  <alp@atoker.com>
27131         * dbus-sharp/dbus-sharp/IntrospectionSchema.cs:
27132         * dbus-sharp/dbus-sharp/UnixMonoTransport.cs:
27133         Removed. This dead code was being inadvertently compiled due to the
27134         wildcard in the makefile, causing the build to fail on old Mono
27135         releases.
27137 2006-10-16  James Willcox  <snorp@snorp.net>
27139         * src/Banshee.Plugins/Daap/daap-sharp/*: updated from mono svn
27141 2006-10-16  Aaron Bockover  <abock@gnome.org>
27143         Banshee 0.11.1 Released
27145 2006-10-16  Aaron Bockover  <abock@gnome.org>
27146         
27147         * NEWS: Updated with 0.11.1 release notes
27149         * src/Banshee.Base/AudioCdRipper.cs: Fall back on ogg, mp3, and wav 
27150         profiles if no profile was configured before; friendly error if no 
27151         profile could be found at all
27152         
27153         * src/Banshee.Base/Globals.cs: Removed debugging writelines
27155         * src/Banshee.Base/Banshee.AudioProfiles/ProfileManager.cs: Added override
27156         for GetConfiguredActiveProfile to fall back on mimetypes for default
27157         configurations
27159         * src/Banshee.Base/Banshee.AudioProfiles.Gui/ProfileComboBox.cs:
27160         Added mime type filtering
27162         * src/Banshee.Base/Banshee.AudioProfiles.Gui/ProfileComboBoxConfigurable.cs:
27163         Load/save profiles
27165         * src/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:
27166         * src/Banshee.Base/BatchTranscoder.cs:
27167         * src/Banshee.Base/GstTranscoder.cs:
27168         * src/Banshee.Base/Transcoder.cs: Use new audio profile stuff
27169         
27170         * src/Banshee.Base/Dap/Dap.cs: Use new audio profiles; added ID 
27171         property for saving profile configuration (DAP)
27173         * src/Banshee.Base/Dap/DapPropertiesDialog.cs: Added 
27174         ProfileComboBoxConfigurable widget to dialog
27176         * src/Banshee.Base/Dap/DapMisc.cs: Added mimetype support
27178         * src/Banshee.Base/Gui/PreferencesDialog.cs: Loading/saving now done by
27179         ProfileComboBoxConfigurable
27181         * data/audio-profiles.xml: Added WMA encoding profile
27183         * src/Banshee.Base/Makefile.am: Removed old profile support
27185 2006-10-13  Aaron Bockover  <abock@gnome.org>
27187         * configure.ac: Run a second expansion on expanded_datadir;
27188         it seems that autoconf 2.60 likes to break 'API' (BGO #361943)
27190 2006-10-13  Aaron Bockover  <abock@gnome.org>
27192         * configure.ac: Bump to 0.11.1
27194         * dbus-sharp/dbus-sharp/*.cs:
27195         * dbus-sharp/dbus-sharp-glib/*.cs:
27196         * dbus-sharp/Makefile.am: Build bundled dbus-sharp (managed dbus)
27198         * dbus-sharp/*.dll: Removed binary-bundled assemblies
27200 2006-10-13  Aaron Bockover  <abock@gnome.org>
27202         Merged from 0.10.12
27204         * src/Banshee.Widgets/CoverArtThumbnail.cs: Scale cover art to a max of
27205         75% of the screen size if too large (BNC #200953)
27207         * src/Banshee.Base/Sources/AudioCdSource.cs: Cancel the ripper if the
27208         source goes away (hardware eject) (BNC #199902)
27210         * src/Banshee.Base/AudioCdRipper.cs: Attempt to lock CD-ROM drive when
27211         ripping, unlock when done/canceled/failed using Linux CD-ROM ioctls;
27212         should use HAL here, but on SLED it seems libhal_device_lock/unlock does
27213         nothing - will punt HAL locking to HEAD (BNC #199902)
27215         * src/Banshee.Base/Sources/LocalQueueSource.cs: Implement
27216         Banshee.Source.Source.RemoveTrack(TrackInfo) (BNC #188437)
27218 2006-10-12  Aaron Bockover  <abock@gnome.org>
27220         * data/banshee-dialogs.glade: Remove DAP pipeline box
27222         * data/audio-profiles.xml: Added audio profiles definition
27224         * data/Makefile.am: Install audio-profiles.xml
27226         * src/Banshee.Base/ConfigureDefines.cs.in: Added SystemDataDir
27228         * src/Banshee.Base/Paths.cs: Added SystemApplicationData
27230         * libbanshee/gst-misc-0.10.c:
27231         * src/Banshee.Base/GstMisc.cs: Added better pipeline tester
27233         * src/Banshee.Base/Banshee.Base.mdp:
27234         * src/Banshee.Base/Makefile.am: Added new pipeline files
27236         * src/Banshee.Base/GConfKeys.cs: Cleaned up
27238         * src/Banshee.Base/Globals.cs: Added a global AudioProfileManager with
27239         pipeline tester support
27241         * src/Banshee.Base/AudioCdRipper.cs
27242         * src/Banshee.Base/Gui/PreferencesDialog.cs: Use the new pipeline profile
27243         support for cd-importing profile
27245         * src/PlayerInterface.cs: Hide main window first when closing
27247         * src/Banshee.Base/Banshee.AudioProfiles/*
27248         * src/Banshee.Base/Banshee.AudioProfiles.Gui/*: New audio profile support;
27249         this entry does not do the commit here much justice - this is a big new
27250         feature that makes choosing and configuring audio transformation profiles
27251         a simple thing
27253 2006-10-10  Aaron Bockover  <abock@gnome.org>
27255         * src/Banshee.Base/Gui/SplashScreen.cs: Use cairo for drawing the progress
27256         overlay, make more configurable and reusable for branding
27258         * Makefile.am:
27259         * configure.ac:
27260         * branding/*: Added empty branding build stub/hook to allow for 
27261         easy building and integration of custom branding options
27263 2006-10-01  Gabriel Burt  <gabriel.burt@gmail.com>
27265         * src/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistCore.cs: Remove
27266         unnecessary logging.
27268         * src/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistSource.cs: If a
27269         smart playlist is ordered by a time-based column (eg, most recently
27270         played), treat it like other smart playlists with time-dependent
27271         Conditions.
27273 2006-10-01  Alp Toker  <alp@atoker.com>
27275         * dbus-sharp/*: Update bundled NDesk.DBus, NDesk.DBus.GLib.
27276         Fixes an infinite recursion encountered in the Helix engine.
27278 2006-09-29  Alp Toker  <alp@atoker.com>
27280         * dbus-sharp/*: Update bundled NDesk.DBus.
27281         * hal-sharp/Device.cs:
27282         * hal-sharp/Manager.cs:
27283         Remove GLib Idle Add hacks/workarounds for situations now handled by
27284         managed dbus.
27285         Remove GLib dependency from hal-sharp.
27287 2006-09-29  Alp Toker  <alp@atoker.com>
27289         * src/Banshee.MediaEngine/Helix/HelixRemotePlayer.cs:
27290         Was missed out during the recent API update.
27292 2006-09-28  Aaron Bockover  <abock@gnome.org>
27294         * src/Banshee.Plugins/MetadataSearch/MetadataSearchPlugin.cs: Wrap 
27295         plugin name in catalog call (BNC #184491)
27297         * src/Banshee.Widgets/RatingEntry.cs: Remove explicit focus rect drawing
27298         as this should be handled by the theme painting the entry shadow
27300 2006-09-29  Alp Toker  <alp@atoker.com>
27302         * dbus-sharp/*: Update bundled NDesk.DBus, NDesk.DBus.GLib.
27303         * Makefile.include:
27304         * hal-sharp/Device.cs:
27305         * hal-sharp/Makefile.am:
27306         * hal-sharp/Manager.cs:
27307         * src/Banshee.Base/DBusPlayer.cs:
27308         * src/Banshee.Base/DBusRemote.cs:
27309         * src/Banshee.Base/HalCore.cs:
27310         * src/Banshee.Base/NetworkManager/Manager.cs:
27311         * src/Banshee.Base/Notifications/Notification.cs:
27312         * src/Banshee.Base/PowerManagement.cs:
27313         * src/Main.cs:
27314         * tools/BansheeDBusClient.cs:
27315         Introduce a much cleaner API for well known buses.
27316         * hal-sharp/Communication.cs:
27317         Obsoleted by new API, so removed.
27318         
27319 2006-09-28  Aaron Bockover  <abock@gnome.org>
27321         Notification support now uses managed DBus instead of binding libnotify
27322         DBus implementation and patch by Sebastian Dröge <slomo@circular-chaos.org>
27323         Banshee BGO #357983
27325         * src/Banshee.Base/Notifications/*.cs: New notification support that uses
27326         managed DBus instead of binding libnotify
27328         * src/Banshee.Plugins/NotificationAreaIcon/NotificationAreaIconPlugin.cs:
27329         Work with the updated Notification/DBus API
27331         * src/Banshee.Base/Notifications.cs: Removed libnotify binding
27333         * src/Banshee.Base/Makefile.am: Added new Notifications sources
27335         * src/Banshee.Widgets/RatingEntry.cs: Use 'entry' not 'text' as the 
27336         draw hint
27338 2006-09-28  Alp Toker  <alp@atoker.com>
27340         * dbus-sharp/*: Update bundled NDesk.DBus.
27341         Only hook up events that are from dbus-public interfaces, making
27342         --show, --hide etc. remote control features work.
27343         Return error messages when a reply is expected instead of failing
27344         silently.
27345         Significant event/match rule fixes.
27347 2006-09-27  Aaron Bockover  <abock@gnome.org>
27349         * libbanshee/misc-glue.c: Added banshee_dbus_compat_thread_init as a 
27350         proxy to call dbus_g_thread_init in case it is necessary for native
27351         libraries that will be pulled in during runtime that use libdbus; it's
27352         not necessary for banshee's DBus use at all, but may be necessary for
27353         things pulled in process, like libipoddevice; adding in glue to avoid
27354         awful configure/map hacks to map to the correct .so version
27356         * libbanshee/gtksharp-glue.c: Renamed to misc-glue.c; gross
27358         * src/Main.cs: Call banshee_dbus_compat_thread_init as the first 
27359         call on program entry (sigh); this is allegedly no longer necessary
27360         with DBus >= 0.92, but it's here for compat and safety for now :'(
27362         * configure.ac: Check for dbus-1/dbus-glib-1 again, but no nasty
27363         library versioning hacks to make maps happy
27365 2006-09-27  Aaron Bockover  <abock@gnome.org>
27367         * src/banshee.in: Set {LD,DYLD}_LIBRARY_PATH to $(libdir)/banshee to
27368         ensure libbanshee.so can be loaded when needed; removes the need for
27369         a map since versioning is a non-issue and allows these environment
27370         variables to be overridden to allow for full uninstalled execution
27372         * Makefile.include: Set {LD,DYLD}_LIBRARY_PATH to libbanshee/.libs
27374         * configure.ac: Do not output Helix/GStreamer .config files
27376         * src/banshee.exe.config.in:
27377         * src/Banshee.Base/Banshee.Base.dll.config.in:
27378         * src/Banshee.Plugins/Daap/Daap.dll.config.in:
27379         * src/Banshee.Plugins/MMKeys/MMKeys.dll.config.in:
27380         * src/Banshee.Plugins/MetadataSearch/MetadataSearch.dll.config.in: Removed
27381         libbanshee dll maps as they are not necessary
27382         
27383         * src/Banshee.MediaEngine/Helix/HelixRemotePlayerEngine.dll.config.in:
27384         * src/Banshee.MediaEngine/Gstreamer/GStreamerPlayerEngine.dll.config.in:
27385         * src/Banshee.MediaEngine/Helix/Makefile.am:
27386         * src/Banshee.MediaEngine/Gstreamer/Makefile.am: Removed .config file
27387         maps as they only went to libbanshee, no longer needed
27389         * Main.cs: Remove left over libdbus call
27391 2006-09-27  James Willcox  <snorp@snorp.net>
27393         * src/PlayerInterface.cs: show an error deleting a song fails.
27395         Fixes #187643 (Novell)
27397 2006-09-27  James Willcox  <snorp@snorp.net>
27399         * data/banshee.glade: ellipsize the view name
27400         * src/PlayerInterface.cs: limit source names to 256 chars
27401         * src/Banshee.Base/Sources/PlaylistSource.cs: ditto
27403         Fixes #199345 (Novell)
27405 2006-09-27  Alp Toker  <alp@atoker.com>
27407         * src/Main.cs: Remove old "Suppress finalizing the dbusCore D-Bus
27408         proxy object" hack; no longer needed with managed dbus
27410 2006-09-27  Alp Toker  <alp@atoker.com>
27412         * dbus-sharp/*: Update bundled NDesk.DBus, NDesk.DBus.GLib.
27413         New API and variant fixes to support upcoming managed Notifications.
27414         * hal-sharp/Communication.cs:
27415         * src/Banshee.Base/DBusRemote.cs: Work towards a cleaner dbus-sharp
27416         public API.
27418 2006-09-26  Aaron Bockover  <abock@gnome.org>
27420         * hal-sharp/Communication.cs: Allow setting the Bus
27422         * hal-sharp/Device.cs: Work around big problem in the HAL spec, 
27423         added explicit StringList support
27425         * src/Banshee.Base/HalCore.cs: Set the Hal.Communication.Bus
27427         * src/Banshee.Dap/MassStorage/MassStorageDap.cs: Minor fixes
27429         * dbus-sharp/NDesk.DBus.dll: Updated
27431 2006-09-26  James Willcox  <snorp@snorp.net>
27433         * src/Banshee.Plugins/Daap/daap-sharp/*: update to 0.3.5
27435 2006-09-26  Aaron Bockover  <abock@gnome.org>
27437         * src/Banshee.Base/Dap/DapCore.cs: More fixes; should fix last remaining
27438         known issues from the new managed HAL migration
27440 2006-09-26  Aaron Bockover  <abock@gnome.org>
27442         * src/Banshee.Base/Dap/DapCore.cs: Ignore volumes that will not be 
27443         mounted and ignore disc volumes to keep them from ever being exposed
27444         as DAPs or going into the volume mount wait queue; remove items from
27445         the volume mount wait queue if they are physically removed
27447 2006-09-26  Aaron Bockover  <abock@gnome.org>
27449         * hal-sharp/Manager.cs: Added DeviceAddedArgs and DeviceRemovedArgs as
27450         in a remove event, the UDI as a device object won't exist
27452         * src/Banshee.Base/Banshee.Cdrom.Nautilus/NautilusDrive.cs:
27453         * src/Banshee.Base/Banshee.Cdrom.Nautilus/NautilusDriveFactory.cs:
27454         * src/Banshee.Base/Dap/DapCore.cs: Updated to use DeviceAdded/RemovedArgs
27456 2006-09-26  Aaron Bockover  <abock@gnome.org>
27458         hal-sharp has been rewritten on top of the new managed DBus; with this
27459         commit there is no more native DBus or HAL code in Banshee at all!
27461         * Makefile.include: Update build settings for new hal-sharp
27463         * configure.ac: Removed all native DBus/HAL checks and hacks
27465         * hal-sharp/*.cs: Removed all old hal-sharp binding code; the previous
27466         hal-sharp was a binding of libhal, and had to use nasty context hacks
27467         to properly integrate with other contexts and DBus connections inside
27468         the application/main loop
27470         * hal-sharp/Connection.cs:
27471         * hal-sharp/Manager.cs:
27472         * hal-sharp/Device.cs: New hal-sharp is very simple and implements
27473         the HAL DBus specification; it integrates cleanly with everything
27475         * banshee.mds: 
27476         * hal-sharp/hal-sharp.mdp: Added hal-sharp MonoDevelop project
27477         
27478         * hal-sharp/Makefile.am: Updated to build the new hal-sharp
27480         * src/banshee.exe.config.in:
27481         * src/Banshee.Dap/Ipod/ipod-sharp.dll.config.in: Removed HAL/DBus maps
27483         * taglib-sharp/Makefile.am: Build assembly as TagLib.dll instead of
27484         taglib-sharp.dll
27486         * libbanshee/Makefile.am: 
27487         * libbanshee/hal-context.c:
27488         * libbanshee/hal-context.h: Removed old native HAL/DBus context/mainloop 
27489         integration hacks
27491         * src/Banshee.Base/Globals.cs: Explicitly initialize HalCore
27493         * src/Banshee.Base/HalCore.cs: Ported to new managed HAL API; removed
27494         all the bindings to the crappy native HAL/DBus hacks; now exposes only
27495         a global Hal.Manager object
27497         * src/Banshee.Base/AudioCd/AudioCdCore.cs:
27498         * src/Banshee.Base/AudioCd/AudioCdDisk.cs:
27499         * src/Banshee.Base/Banshee.Cdrom.Nautilus/NautilusDrive.cs:
27500         * src/Banshee.Base/Banshee.Cdrom.Nautilus/NautilusDriveFactory.cs:
27501         * src/Banshee.Dap/Njb/NjbDap.cs:
27502         * src/Banshee.Dap/MassStorage/MassStorageDap.cs:
27503         * src/Banshee.Base/Dap/DapCore.cs:
27504         * src/Banshee.Dap/Ipod/IpodDap.cs: Ported to new managed HAL API; 
27505         added cleanups and use more generics in place of legacy code
27507         * src/Banshee.Base/Dap/DapMisc.cs: Removed WaitForPropertyChange;
27508         Added WaitForVolumeMount
27510         * src/Banshee.Base/Dap/Dap.cs: Added WaitForVolumeMount method to
27511         queue a volume mount check on the device in DapCore
27513         * src/Banshee.Base/Dap/DapCore.cs: Much better API and implementation
27514         for dealing with DAP devices that need to be mounted. WaitForVolumeMount
27515         replaces WaitForPropertyChange and a new timeout method is used to
27516         check for device mounts. This avoids having to keep remote objects 
27517         around to listen for a property change event
27519 2006-09-25  Gabriel Burt  <gabriel.burt@gmail.com>
27521         * src/PlayerInterface.cs: Set the SearchEntry as Ready only when
27522         appropriate to avoid being told to search when we are just cancelling the
27523         search b/c the source is being changed, thus preventing two extra playlist
27524         model reloads.
27526         * src/Banshee.Widgets/SearchEntry.cs: Add Ready property, and only raise
27527         the Changed event when we are Ready.  Refactor OnChanged raising code.
27529 2006-09-25  Aaron Bockover  <abock@gnome.org>
27531         258% hot sweet action: All of Banshee's dbus-sharp code has been ported
27532         to and is working against the new managed DBus - all previous dbus-sharp
27533         problems are herby eliminated - someone please buy Alp a few beers!
27535         * src/Banshee.Base/NetworkManager/Manager.cs: Use StateChangeHandler
27536         for propagating the remote event
27538         * src/Banshee.Base/NetworkDetect.cs: Use the state from the signal
27539         and do not invoke a remote method while in the signal handler 
27541 2006-09-25  Aaron Bockover  <abock@gnome.org>
27543         Fix for BGO #357548 and to add better application integration for 
27544         launching web URLs into a browser
27546         * src/Banshee.Base/Gui/AboutDialog.cs:
27547         * src/Banshee.Base/ActionManager.cs:
27548         * src/Banshee.Dap/Ipod/IpodDap.cs:
27549         * src/Banshee.Plugins/Audioscrobbler/AudioscrobblerPlugin.cs: Use 
27550         Banshee.Web.Browser.Open instead of Gnome.Url.Show
27552         * src/Banshee.Base/Banshee.Web/Browser.cs: New Browser class with an
27553         Open method that currently uses Gnome.Url.Show, but provides 
27554         application-integrated URL launching and common error reporting
27556         * src/Banshee.Base/Globals.cs: Set Open hooks on Last.FM.Browser and
27557         Banshee.Widgets.LinkLabel to Banshee.Web.Browser.Open
27559         * src/Banshee.Base/Makefile.am:
27560         * src/Banshee.Base/Banshee.Base.mdp: Added Banshee.Web/Browser.cs
27562         * src/Banshee.Widgets/LinkLabel.cs: Use an Open hook for launching URLs
27564         * src/Last.FM/Browser.cs: Added a Browser class that allows setting
27565         an override Open hook; defaults to Gnome.Url.Show
27567         * src/Last.FM/Last.FM/Account.cs: Use Last.FM.Browser.Open instead of
27568         Gnome.Url.Show
27570         * src/Last.FM/Last.FM.mdp:
27571         * src/Last.FM/Makefile.am: Added Browser.cs
27573 2006-09-25  Aaron Bockover  <abock@gnome.org>
27575         * dbus-sharp/NDesk.DBus.GLib.dll:
27576         * dbus-sharp/NDesk.DBus.dll: Updated
27578         * src/PlaylistView.cs: Fixed a GTK+ critical/realized warning
27580         * src/Banshee.Base/NetworkManager/Manager.cs: Simplified, only care about
27581         a connection state, not anything fancy like device enumeration
27583         * src/Banshee.Base/NetworkDetect.cs: Use only Manager.State and its
27584         change event
27586         * src/Banshee.Base/Makefile.am:
27587         * src/Banshee.Base/Banshee.Base.mdp: Removed Device/Network; not needed
27588         in the Banshee scope as we only care about the connection status
27590         * src/Banshee.Base/NetworkManager/Device.cs:
27591         * src/Banshee.Base/NetworkManager/Network.cs: Removed
27593 2006-09-25  Aaron Bockover  <abock@gnome.org>
27595         * src/Banshee.Base/NetworkDetect.cs: 
27596         * src/Banshee.Base/NetworkManager/Manager.cs: Added signal support
27598 2006-09-25  James Willcox  <snorp@snorp.net>
27600         * src/Banshee.Plugins/Daap/DaapCore.cs: oops, be more careful
27601         when determining the track format.
27603 2006-09-25  Alp Toker  <alp@atoker.com>
27605         * tools/BansheeDBusClient.cs: Use DApplication.SessionConnection singleton
27607 2006-09-25  James Willcox  <snorp@snorp.net>
27609         * src/Banshee.Plugins/Daap/DaapSource.cs:
27610         * src/Banshee.Plugins/Daap/DaapCore.cs:
27612         Call DAAP.Client.Logout in all cases except when we know the server
27613         has just gone away.
27615 2006-09-25  Alp Toker  <alp@atoker.com>
27617         * dbus-sharp/*: Update bundled NDesk.DBus, NDesk.DBus.GLib.
27618         Silence warning messages, fix big-endian (again), fix UTF-8, better
27619         exception handling.
27621 2006-09-25  James Willcox  <snorp@snorp.net>
27623         * src/Banshee.Plugins/Daap/daap-sharp/*: update to latest
27624         * src/Banshee.Plugins/Daap/DaapSource.cs: don't call DAAP.Client.Logout
27625         for now since it sometimes causes hangs for a long time when the
27626         server is unavailable (sigh)
27628 2006-09-24  Aaron Bockover  <abock@gnome.org>
27630         * src/Banshee.MediaEngine/Helix/HelixRemotePlayer.cs:
27631         * src/Banshee.MediaEngine/Helix/HelixRemotePlayerEngine.cs: Use properties
27632         in the DBus interface instead of Get/Set methods now that it is possible
27633         with the lovely managed DBus
27635         * configure.ac: Require helix-dbus-server 0.3.0 if Helix support is 
27636         desired
27638         * src/Banshee.Base/NetworkDetect.cs:
27639         * src/Banshee.Base/NetworkManager/Device.cs:
27640         * src/Banshee.Base/NetworkManager/Manager.cs:
27641         * src/Banshee.Base/NetworkManager/Network.cs: Updated copyright
27643 2006-09-24  Alp Toker  <alp@atoker.com>
27645         * src/Main.cs: Remove last vestiges of the old dbus-sharp
27646         * configure.ac:
27647         * src/Makefile.am:
27648         * src/Banshee.Base/Makefile.am:
27649         Do not depend on the old dbus binding. It is obsoleted by managed dbus.
27651 2006-09-24  Alp Toker  <alp@atoker.com>
27653         * src/Banshee.Base/Globals.cs:
27654         * src/Banshee.Base/NetworkDetect.cs:
27655         * src/Banshee.Base/NetworkManager/Device.cs:
27656         * src/Banshee.Base/NetworkManager/Manager.cs:
27657         * src/Banshee.Base/NetworkManager/Network.cs:
27658         Use managed dbus for NetworkManager client
27659         Note that the signals still need to be ported to ordinary events.
27661 2006-09-24  Aaron Bockover  <abock@gnome.org>
27663         * src/Banshee.MediaEngine/Helix/HelixRemotePlayer.cs: RemotePlayer does
27664         not need to handle a singleton case in managed land anymore - the 
27665         remote object holds 100% of the required functionality
27667         * src/Banshee.Base/DBusPlayer.cs:
27668         * src/Banshee.Base/DBusRemote.cs:
27669         * src/Banshee.Base/PowerManagement.cs: Clean up
27671 2006-09-24  Aaron Bockover  <abock@gnome.org>
27673         * src/Banshee.MediaEngine/Helix/HelixRemotePlayer.cs: Use new managed
27674         DBus, simplified message handling as the signal signature is now ia{sv}
27675         which maps directly to delegate(MessageType, IDictionary<string,object>)
27677         * src/Banshee.MediaEngine/Helix/HelixRemotePlayerEngine.cs: Adjust for
27678         minor changes in HelixRemotePlayer
27680         * src/Banshee.MediaEngine/Helix/Makefile.am: Link against new managed
27681         DBus, drop old dbus-sharp link; we are now 80% managed DBus
27683 2006-09-23  James Willcox  <snorp@snorp.net>
27685         * src/Bansee.Plugins/Daap/daap-sharp/*: updated to latest
27687 2006-09-23  Alp Toker  <alp@atoker.com>
27689         * dbus-sharp/*: Update bundled NDesk.DBus, NDesk.DBus.GLib.
27690         Support for Mono <= 1.1.13, optimizations, improved API.
27692 2006-09-22  Alp Toker  <alp@atoker.com>
27694         * src/Banshee.Base/DBusPlayer.cs:
27695         * src/Banshee.Base/DBusRemote.cs:
27696         * src/Banshee.Base/PowerManagement.cs:
27697         * tools/BansheeDBusClient.cs: Use DApplication.SessionBus singleton
27699 2006-09-21  Alp Toker  <alp@atoker.com>
27701         * dbus-sharp/*: Update bundled NDesk.DBus, NDesk.DBus.GLib and map.
27702         Now works on AMD64, PPC, plus bugfixes and new API.
27704 2006-09-21  James Willcox  <snorp@snorp.net>
27706         * src/Banshee.Plugins/Daap/DaapSource.cs: implement IImportable
27707         and IImportSource, so you can now import and dnd from DAAP shares.
27708         Also, add support for remote playlists.
27710         * src/Banshee.Plugins/Daap/DaapPlaylistSource.cs: added
27712 2006-09-21  Aaron Bockover  <abock@gnome.org>
27714         * src/Banshee.Base/TrackInfoHeader.cs:
27715         * src/Banshee.Base/TrackInfoPopup.cs: Patch from Sebastian Dröge to
27716         not make TrackInfoPopup labels selectable (BGO #356990)
27718         * src/Banshee.Base/Notifications.cs: Patch from Michael Monreal to 
27719         set urgency on libnotify notifications (BGO #356985)
27721         * tools/Makefile.am: Use new build variables
27723 2006-09-21  Alp Toker  <alp@atoker.com>
27725         * tools/Makefile.am:
27726         * tools/BansheeDBusClient.cs: Use managed dbus for example client
27728 2006-09-21  Aaron Bockover  <abock@gnome.org>
27730         * Makefile.am: Added run target
27732 2006-09-21  Aaron Bockover  <abock@gnome.org>
27734         * src/Banshee.Base/PlayerEngineCore.cs:
27735         * src/Banshee.Base/Plugins/PluginCore.cs: Do not try to load plugins
27736         from their system installation path if their respective override 
27737         environment variable is set
27739 2006-09-21  Aaron Bockover  <abock@gnome.org>
27741         * Makefile.include: Broken down even more, added a variable for 
27742         making running uninstalled easy
27744         * src/Makefile.am: Use new RUN_PATH variable to run banshee --uninstalled
27746         * banshee.in: Do not set MONO_PATH; is done in Makefile with RUN_PATH
27748         * src/Banshee.Base/Plugins/PluginFactory.cs: AddScanDirectory supports
27749         recursion now, overloads to turn it off, and added new method for
27750         loading plugins: AddScanDirectoryFromEnvironmentVariable
27752         * src/Banshee.Base/PlayerEngineCore.cs: BANSHEE_ENGINES_PATH env
27753         can be set for loading engines from an alternative path
27755         * src/Banshee.Base/Plugins/PluginCore.cs: BANSHEE_PLUGINS PATH does
27756         the same, for plugins
27758 2006-09-21  Alp Toker  <alp@atoker.com>
27760         * src/Banshee.Base/PowerManagement.cs: Use managed dbus for gpm client
27762 2006-09-21  Aaron Bockover  <abock@gnome.org>
27764         * Makefile.include: The new global build magic
27766         * All Makefile.am: use new Makefile.include, build system is now much
27767         simpler and more flexible
27769         * src/PlayerInterface.cs: Remove unused namespace
27771 2006-09-21  Alp Toker  <alp@atoker.com>
27773         * src/Banshee.Base/PowerManagement.cs: IPowerManager for managed dbus
27775 2006-09-21  Alp Toker  <alp@atoker.com>
27777         * src/Main.cs:
27778         * src/Banshee.Base/DBusRemote.cs:
27779         * src/Banshee.Base/DBusPlayer.cs: Use managed dbus for client as well
27781 2006-09-21  Alp Toker  <alp@atoker.com>
27783         * src/Banshee.Base/DBusRemote.cs:
27784         * src/Banshee.Base/DBusPlayer.cs: Start to make use of managed dbus
27786 2006-09-20  Aaron Bockover  <abock@gnome.org>
27788         * Makefile.am:
27789         * configure.ac:
27790         * dbus-sharp: Added new managed version of dbus-sharp; much to change here
27792         * src/Banshee.Base/Makefile.am: Link against NDesk.DBus
27794 2006-09-20  Aaron Bockover  <abock@gnome.org>
27796         * src/Banshee.Base/DBusPlayer.cs: DBusPlayer now implements IDBusPlayer
27798 2006-09-19  Aaron Bockover  <abock@gnome.org>
27800         * configure.ac: explicitly check for dbus-glib-1 versions to map to
27801         proper .so versions, added check on dbus-1 for 0.90, which now maps
27802         to .so version 3; added lots of missing AC_MSG_RESULTs, so configure
27803         output looks a little cleaner
27805         * hal-sharp/hal-sharp.dll.config.in:
27806         * src/banshee.exe.config.in: Added DBUS_GLIB_SOVERSION
27808         * tools/Makefile.am: Do not install banshee-import
27810 2006-09-19  Aaron Bockover  <abock@gnome.org>
27812         * src/PlayerInterface.cs: Manually call Activate on cell renderers
27813         if clicked when row is selected (Michael Quinn, BGO #348373)
27815 2006-09-19  Aaron Bockover  <abock@gnome.org>
27817         0.11.0 Released
27819         * NEWS: Updated
27821 2006-09-19  Aaron Bockover  <abock@gnome.org>
27823         * src/Banshee.Dap/Ipod/IpodDap.cs: Use new unknown iPod foo in ipod-sharp,
27824         show a dialog if the iPod is unknown
27826         * data/images/source-smart-playlist.png: Updated
27828         * src/Banshee.Widgets/HigMessageDialog.cs: Exposed LabelVBox
27830         * src/Banshee.Plugins/NotificationAreaIcon/NotificationAreaIconPlugin.cs: 
27831         Use slightly nicer notification string formatting
27833         * src/Banshee.Plugins/NotificationAreaIcon/banshee-notificationareaicon.schemas.in:
27834         Enabled by default
27836 2006-09-18  Aaron Bockover  <abock@gnome.org>
27838         * configure.ac: Bump to 0.11.0
27840         * autogen.sh: Check for subversion, run taglib-sharp/update-checkout.sh
27842         * taglib-sharp/Makefile.am: Build taglib-sharp
27844         * taglib-sharp/update-checkout.sh: Shell script to update the taglib-sharp
27845         checkout
27847         * taglib-sharp/COPYING: Added taglib-sharp license 
27849         * taglib-sharp/taglib-sharp.dll:
27850         * taglib-sharp/taglib-sharp.dll.mdb: Precompiled binaries removed
27852         * src/Banshee.Base/Makefile.am: 
27853         * src/Banshee.Dap/Ipod/Makefile.am: 
27854         * src/Banshee.Dap/MassStorage/Makefile.am: Link taglib-sharp.dll from
27855         top_builddir instead of top_srcdir now that we're actually building it
27857         * src/Last.FM/Makefile.am: Added missing EXTRA_DIST files
27859 2006-09-18  Aaron Bockover  <abock@gnome.org>
27861         * src/Banshee.Dap/Ipod/IpodDap.cs: If the iPod model is unknown, run
27862         the new submit data tool in ipod-sharp; installed new properties into
27863         the interface
27865         * src/Banshee.Base/Dap/Dap.cs: Show an error list dialog if songs 
27866         could not be transcoded
27868         * src/Banshee.Base/BatchTranscoder.cs: Support an optional 'desired
27869         profile' name; allows errors to be thrown is a profile doesn't exist
27870         and should be required
27872 2006-09-18  Gabriel Burt  <gabriel.burt@gmail.com>
27874         * src/Banshee.Base/SourceManager.cs: Don't add a source twice.
27876         * src/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistCore.cs: Add debug
27877         message when smart playlist is added.
27879         * src/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistSource.cs: Don't
27880         manually add the loaded playlist to the SourceManager unless the
27881         LibrarySource is already loaded.  This is a silly workaround the fact that
27882         the LibrarySource adds all of its children to the SourceManager when it is
27883         added, so children that aren't attached to it when it is added are left
27884         out.
27886 2006-09-18  Gabriel Burt  <gabriel.burt@gmail.com>
27888         * src/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistSource.cs: Don't add
27889         the source to the SourceManager if it's already there.
27891 2006-09-18  James Willcox  <snorp@snorp.net>
27893         * configure.ac: require ipod-sharp 0.6.2
27894         * src/Banshee.Dap/Ipod/IpodDap.cs: adjust to artwork API changes
27896 2006-09-17  Gabriel Burt  <gabriel.burt@gmail.com>
27898         * src/Banshee.Base/Banshee.SmartPlaylist/Editor.cs: Add newly created
27899         playlists to the SourceManager so they are registered and updated
27900         immediately after creation.  Fixes BGO #354534.
27902         * src/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistCore.cs: Handle the
27903         case of the library already being loaded before we are initialized.
27905         * src/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistSource.cs: Add old
27906         playlists to the SourceManager.
27908 2006-09-17  Aaron Bockover  <abock@gnome.org>
27910         * data/images/Makefile.am:
27911         * src/Banshee.Hyena/Makefile.am:
27912         * tools/Makefile.am: Make distcheck pass
27914         * src/Banshee.Base/Banshee.Burner/BurnerFormatList.cs: Disabled in the UI
27915         support for MP3 and data CDs - not finished in new burner code
27917 2006-09-17  Patrick van Staveren  <trick@vanstaveren.us>
27919         * src/Banshee.Dap/Mtp/GPhotoDevice.cs: dispose CameraFile objects when
27920         sending a track to (hopefully) free up memory, dispose all objects
27921         regardless (now that Dispose is safe in libgphoto2-sharp), and catch
27922         doubly-disposing of the GPhotoDevice object.
27924         * src/Banshee.Dap/Mtp/GPhotoDeviceFile.cs: add method DisposeCameraFile,
27925         and only access the private camera_file as this was causing it to retrieve
27926         all camera files when we tried to dispose the GPhotoDevice.
27928         * src/Banshee.Dap/Mtp/MtpDap.cs: update save progress to zero before
27929         sending or deleting any tracks.
27931 2006-09-17  Patrick van Staveren  <trick@vanstaveren.us>
27933         * src/Banshee.Dap/Mtp/GPhotoDeviceFile.cs: added metadata exception
27934         handling - now handles unparseable metadata.
27936         * src/Banshee.Dap/Mtp/MtpDap.cs: Better debug messages,
27937         WaitForPropertyChange when device seems inaccessable
27939         * src/Banshee.Dap/Mtp/MtpDeviceId.cs: added 14 new device IDs
27941         * src/Banshee.Dap/Mtp/Banshee.Dap.Mtp.mdp: MonoDevelop project created
27943 2006-09-17  Aaron Bockover  <abock@gnome.org>
27945         * src/Makefile.am:
27946         * src/Banshee.Hyena/Makefile.am: Do not build SourceView.cs
27948         * src/Banshee.Base/Makefile.am: Added Gui/SourceView.cs
27950         * src/SourceView.cs: Removed; had GNOME sysadmin copy with history to
27951         src/Banshee.Base/Gui/SourceView.cs
27953         * src/Banshee.Base/Gui/SourceView.cs: Changed namespace to Banshee.Gui
27955 2006-09-17  Aaron Bockover  <abock@gnome.org>
27957         * libbanshee/nautilus-burn.c (nautilus_glue_burn_drive_get_for_device): 
27958         Use return nautilus_burn_drive_new_from_path for <2.16; CD burning
27959         now works properly for 2.12 again
27961         * libbanshee/nautilus-burn.c:
27962         * src/Banshee.Base/Banshee.Burner/BurnerCore.cs:
27963         * src/Banshee.Base/Banshee.Cdrom.Nautilus.Interop/BurnDrive.cs:
27964         * src/Banshee.Base/Banshee.Cdrom.Nautilus.Interop/BurnRecorder.cs:
27965         * src/Banshee.Base/Banshee.Cdrom.Nautilus.Interop/BurnRecorderHandlers.cs:
27966         * src/Banshee.Base/Banshee.Cdrom.Nautilus.Interop/BurnRecorderTrack.cs:
27967         * src/Banshee.Base/Banshee.Cdrom.Nautilus.Interop/NautilusEnums.cs:
27968         Tabs to spaces, sigh
27970 2006-09-17  Aaron Bockover  <abock@gnome.org>
27972         * Makefile.am: Remove burn-sharp
27974         * configure.ac: Remove burn-sharp, set LNB_CSFLAGS for 2.16
27976         * libbanshee/libbanshee.mdp:
27977         * libbanshee/Makefile.am: Added nautilus-burn.c
27979         * libbanshee/nautilus-burn.c: Trimmed glue for libnautilus-burn; added
27980         2.16 compatibility
27982         * src/Banshee.Base/Makefile.am:
27983         * src/Banshee.Base/Banshee.Base.mdp: Added Banshee.Cdrom.Nautilus.Interop
27985         * src/Banshee.Base/Banshee.Base.dll.config.in: Added map for
27986         libnautilus-burn 
27988         * src/Banshee.Base/Banshee.Cdrom/IDrive.cs:
27989         * src/Banshee.Base/Banshee.Burner/BurnerConfigurationPane.cs:
27990         * src/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:
27991         * src/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs: 
27992         * src/Banshee.Base/Banshee.Cdrom.Nautilus/NautilusDrive.cs: MediaSize 
27993         renamed to MediaCapacity
27995         * src/Banshee.Base/Banshee.Cdrom.Nautilus/NautilusDriveFactory.cs: Use
27996         new BurnDrive constructor instead of iterating a drive list looking for
27997         a match - we already know the device node - much better for 2.16
27999         * src/Banshee.Base/Banshee.Cdrom.Nautilus/NautilusRecorder.cs: Use new
28000         API in Banshee.Cdrom.Nautilus.Interop.BurnRecorder
28002         * src/Banshee.Base/Banshee.Burner/BurnerCore.cs: Added some null checks,
28003         fixed InstallActions, iterate factory expecting IDrive, not IRecorder
28004         and explicitly cast IDrive to IRecorder (fixes potential crashes)
28006         * src/Banshee.Base/Banshee.Cdrom.Nautilus.Interop/*: New libnautilus-burn
28007         wrapper based on old burn-sharp; only wrap pieces we need, lots of 
28008         clean up and organization to make managing this wrapper by hand
28009         easy; added compatibilty with 2.12, 2.14, 2.16; calls glue in libbanshee
28011         * src/Banshee.Base/ComponentInitializer.cs: Dump component intialization
28012         exceptions if asked to trap and handle
28014         * src/Banshee.Base/Banshee.Equalizer.Gui/EqualizerWindow.cs: 
28015         * src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:
28016         * src/Banshee.Base/Gui/TrackEditor.cs: Fixed unused compiler warnings
28018         * src/Banshee.Hyena/Makefile.am: Remove link requirement for burn-sharp.dll
28020         * burn-sharp/*: Removed
28022 2006-09-17  Ruben Vermeersch  <ruben@savanne.be>
28024         Very trivial compiler warning fixes.
28026         * src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs: Comment unused
28027         variable.
28029         * src/Banshee.Base/Gui/TrackEditor.cs:
28030         * src/Banshee.Base/NetworkDetect.cs: Change two occurrences of catch
28031         (Exception e) to catch (Exception) as e wasn't even used.
28033 2006-09-16  Aaron Bockover  <abock@gnome.org>
28035         * src/Banshee.Plugins/NotificationAreaIcon/NotificationArea.cs: Support
28036         transparency (pulled from stable branch, BGO #356350)
28038         * src/Banshee.Plugins/NotificationAreaIcon/NotificationAreaIconPlugin.cs:
28039         CTRL+Left click goes to previous, CTRL+Right next, middle play/pause
28041 2006-09-16  Aaron Bockover  <abock@gnome.org>
28043         * src/Banshee.Base/ActionManager.cs: Disabled equalizer for now - it's
28044         not finished
28046 2006-09-16  Aaron Bockover  <abock@gnome.org>
28048         * src/Banshee.Base/Globals.cs: Make startup strings translatable
28050 2006-09-16  Aaron Bockover  <abock@gnome.org>
28052         * src/Banshee.Base/Banshee.Cdrom.Nautilus/NautilusDrive.cs (CheckMedia): 
28053         Added null checks on discDevice and discDevice.Parent
28055 2006-09-16  Aaron Bockover  <abock@gnome.org>
28057         * src/Banshee.Base/Gui/RatingRenderer.cs: Minor fix, do not rely on
28058         widget if null; cache the GC
28060         * src/Banshee.Base/Gui/CleanRoomStartup.cs: Dump the exception to stdout
28062 2006-09-16  Aaron Bockover  <abock@gnome.org>
28064         * src/Banshee.Base/Banshee.Base.dll.config.in: Added libnotify map
28066 2006-09-16  Aaron Bockover  <abock@gnome.org>
28068         * data/banshee-dialogs.glade: Added rating; fixed mnemonics
28070         * src/Banshee.Base/Gui/TrackEditor.cs: Disable the cover art page for now
28071         as it's not going to be complete before the 0.11.0 release; implement
28072         rating support; added basic cover art reading, but it is disabled
28074         * src/Banshee.Widgets/RatingEntry.cs: Better x-pos to rating 'formula'
28075         that does not depend on Allocation.Width
28077         * src/Banshee.Base/Gui/RatingRenderer.cs: Reverted back to showing
28078         the dots on prelight; prelight is only set when the cursor enters the
28079         entire row - not on the cell or row+column, so it's buggy
28081         * src/Banshee.Base/DBusPlayer.cs: Added SetPlayingRating, GetMaxRating
28083         * src/Main.cs: Added set-rating command line option
28085         * src/banshee.mdp:
28086         * src/Banshee.Base/Banshee.Base.mdp: Updated
28088 2006-09-16  Ruben Vermeersch  <ruben@savanne.be>
28090         * src/Banshee.Base/FileNamePattern.cs: Fix the Regex for file name
28091         escaping. For real this time. (BGO #333813)
28093 2006-09-16  Ruben Vermeersch  <ruben@savanne.be>
28095         * src/Banshee.Plugins/Audioscrobbler/Engine.cs: Remove a debug line that's
28096         no longer needed. This shouldn't have been committed :-).
28098 2006-09-15  Ruben Vermeersch  <ruben@savanne.be>
28100         Notification bubbles in the tray.
28102         * src/Banshee.Base/Makefile.am: Add Notifications.cs.
28104         * src/Banshee.Base/Notifications.cs: Simple wrapper around libnotify.
28106         * src/Banshee.Plugins/NotificationAreaIcon/Makefile.am: Added
28107         NotificationAreaIconConfigPage.cs.
28109         * src/Banshee.Plugins/NotificationAreaIcon/NotificationAreaIcon.dll
28110         .config.in: Add the dllmap for libgobject.
28112         * src/Banshee.Plugins/NotificationAreaIcon/NotificationAreaIconConf
28113         igPage.cs: Configuration dialog for the notification messages.
28115         * src/Banshee.Plugins/NotificationAreaIcon/NotificationAreaIconPlug
28116         in.cs: Show notifications when song changes.
28118         * src/Banshee.Plugins/NotificationAreaIcon/banshee-notificationarea
28119         icon.schemas.in: Add the key to store the "show bubbles" preference.
28121 2006-09-13  Aaron Bockover  <abock@gnome.org>
28123         * src/Banshee.Base/BansheeBranding.cs: Implement DefaultCoverArt
28125         * src/Banshee.Base/Branding.cs: Added DefaultCoverArt property
28127         * src/Banshee.Base/TrackInfoHeader.cs: Use Branding.DefaultCoverArt
28129 2006-09-13  Aaron Bockover  <abock@gnome.org>
28131         * src/Banshee.Base/BansheeBranding.cs: Implement ApplicationLogo
28133         * src/Banshee.Base/Branding.cs: Added ApplicationLogo property
28135 2006-09-11  Aaron Bockover  <abock@gnome.org>
28137         * src/Banshee.Base/MediaEngine/PlayerEngine.cs: Ignore stream tags
28138         unless the track is an UnknownTrackInfo (stream)
28140 2006-09-11  Aaron Bockover  <abock@gnome.org>
28142         * src/Banshee.Base/Gui/RatingRenderer.cs: Only show the circles in the
28143         renderer when prelit and the cursor is inside the cell area
28145 2006-09-11  Aaron Bockover  <abock@gnome.org>
28147         * src/Banshee.Base/TrackInfoHeader.cs: banshee-logo.png is now
28148         in Banshee.Base.dll
28150 2006-09-11  Aaron Bockover  <abock@gnome.org>
28152         * src/Makefile.am: ASSEMBLY_NAME was renamed to BANSHEE; bin wrapper
28153         script installation should work again
28155 2006-09-11  Aaron Bockover  <abock@gnome.org>
28157         * src/PlayerInterface.cs: Adapted to changes in DBusPlayer, Library, and
28158         CellRendererRating
28160 2006-09-11  Aaron Bockover  <abock@gnome.org>
28162         * src/PlaylistView.cs: Use new CellRendererRating
28164         * src/Banshee.Base/Gui/RatingRenderer.cs: New version, supports being
28165         activatable so rating can be set just by clicking
28167         * src/Banshee.Base/DBusPlayer.cs: Fixes
28169         * libbanshee/Makefile.am: Remove inotify glue, added gtksharp-glue.c
28171         * libbanshee/gtksharp-glue.c: Small amount of glue for overriding
28172         GtkCellRenderer.activate virtual method; allows managed CellRenderers
28173         to be (somewhat hackishly) activatable
28175         * libbanshee/inotify-glue.c:
28176         * libbanshee/inotify.h: Removed
28178 2006-09-11  Aaron Bockover  <abock@gnome.org>
28180         * src/Banshee.Base/Globals.cs: Make PlaylistView a Gtk.Widget;
28181         add null check out PlaylistContainer
28183         * src/Banshee.Base/BansheeBranding.cs: Load the application logo
28184         from Banshee.Base
28186         * src/Banshee.Base/Library.cs: Load the LibrarySource here instead of
28187         in PlayerInterface
28189         * src/Banshee.Base/Makefile.am: Added banshee-logo.png
28191         * src/Banshee.Base/Gui/ExceptionDialog.cs: Fixed accelerator key
28193         * src/Makefile.am: Removed banshee-logo.png, added Banshee.Hyena
28194         to SUBDIRS
28196         * configure.ac: Generate src/Banshee.Hyena/Makefile
28198         * data/banshee-dialogs.glade: ImportButton has_default
28200         * banshee.mds: Added Banshee.Hyena
28202         * src/Banshee.Hyena/: Banshee.Hyena is an experimental new
28203         application front-end being developed very in a rather leisurely
28204         manner; primary goal right now is to see just how flexible the
28205         core and to work out component and design bugs
28207 2006-09-11  Aaron Bockover  <abock@gnome.org>
28209         * src/Banshee.Plugins/NotificationAreaIcon/NotificationAreaIconPlugin.cs:
28210         Only act on ButtonPress (Arif Lukito, BGO #352940)
28212 2006-09-11  Aaron Bockover  <abock@gnome.org>
28214         * taglib-sharp/*: Updated
28216 2006-09-11  Aaron Bockover  <abock@gnome.org>
28218         * src/Banshee.Base/Plugins/PluginDialog.cs: don't CenterAlways (BGO #353797)
28220 2006-09-11  Aaron Bockover  <abock@gnome.org>
28222         * src/Banshee.Widgets/SearchEntry.cs: Reset filter to default/first
28223         item on clear/cancel of search (BGO #353958)
28225 2006-09-10  Gabriel Burt  <gabriel.burt@gmail.com>
28227         * src/PlayerInterface.cs: Make ctrl-f and / focus the search entry.
28229 2006-09-09  Ruben Vermeersch  <ruben@savanne.be>
28231         * src/Banshee.Widgets/ActionButton.cs: Added 'new' keyword on Action
28232         property to allow for proper functionality under Gtk# 2.12, which provides
28233         Gtk.Widget.Action (BGO #355100, patch by Michael Monreal) (basically
28234         avoids two warnings when compiling Banshee.Widgets)
28236 2006-09-07  Ruben Vermeersch  <ruben@savanne.be>
28238         * src/PlayerInterface.cs: Unbreak the build (related to abock's latest
28239         commit on the DBusPlayer stuff)
28241 2006-09-06  Aaron Bockover  <abock@gnome.org>
28243         * src/Banshee.Base/DBusPlayer.cs: New version does not rely on knowing
28244         anything about the PlayerInterface in banshee.exe; has new event
28245         for UICommands so PlayerInterface can act accordingly; do not allow
28246         operations to run until all components have booted; added Shutdown
28248         * src/Banshee.Base/Globals.cs: All DBus registration and setup is
28249         done as a component now, not in the PlayerInterface; DBusPlayer is
28250         booted as the first component, but will not perform actions until
28251         all components have booted - this allows for the best instance detection
28253         * src/Banshee.Base/ComponentInitializer.cs: Added IsRunFinished
28255         * src/RemotePlayer.cs: Moved to src/Banshee.Base/DBusPlayer.cs
28257         * src/Main.cs: Adjust to DBusPlayer changes; implement command line
28258         argument for new Shutdown DBus method
28260         * src/banshee.mdp: 
28261         * src/Makefile.am: 
28262         * src/Banshee.Base/Makefile.am: Updated
28264 2006-09-06  Aaron Bockover  <abock@gnome.org>
28266         * src/Banshee.Base/Gui/ImportDialog.cs: If an audio CD is an available
28267         source, make the first one the active default selection (instead of
28268         the first source); added 'enter' key accelerator (BNC #202865)
28269         
28270         * src/Banshee.Base/ActionManager.cs: CTRL+I to activate 'import music'
28272         * src/Banshee.Base/Gui/ErrorListDialog.cs: Make return the default
28273         accelerator, not escape
28275 2006-09-06  Aaron Bockover  <abock@gnome.org>
28277         * src/Makefile.am: Updated with some much needed cleaning
28279         * src/banshee.mdp: Updated
28281         * src/PlayerInterface.cs: Handle potential exception from DBusRemote
28283 2006-09-06  Ruben Vermeersch  <ruben@savanne.be>
28285         * src/Makefile.am: Unbreak the build (Patch by Michael Monreal, BGO
28286         #354589)
28288 2006-09-05  Aaron Bockover  <abock@gnome.org>
28290         * src/IPlaybackModel.cs: Removed, has never been used for anything
28292         * src/PlaylistModel.cs: Do not implement pointless IPlaybackModel
28294 2006-09-05  Aaron Bockover  <abock@gnome.org>
28296         * configure.ac:
28297         * Makefile.am: Added new tools/ build
28299         * tools: New tools build, cleaning up /src as this stuff doesn't belong
28300         there (yay for cleaning)
28302         * src/banshee-import.in: 
28303         * src/BansheeImport.cs:
28304         * src/BansheeDbusClient.cs: Moved to /tools
28306         * src/BansheeDbusClient.Makefile: Removed
28308 2006-09-05  Gabriel Burt  <gabriel.burt@gmail.com>
28310         * src/Banshee.Base/Banshee.SmartPlaylist/Editor.cs: Remove unused
28311         variables and capitalize minutes in the title of a default playlist.
28313         * data/banshee-dialogs.glade: Make expander not expanded by default.
28315 2006-09-05  Aaron Bockover  <abock@gnome.org>
28317         * src/Banshee.Base/Plugins/PluginCore.cs: Do not load the deprecated
28318         smart playlist plugin
28320         * src/Banshee.Base/Plugins/PluginFactory.cs: Allow removing plugins
28321         from the factory
28323         * data/banshee-dialogs.glade: Added smart playlist editor 
28325 2006-09-05  Aaron Bockover  <abock@gnome.org>
28327         * src/Banshee.Base/Gui/ImageFileChooserDialog.cs: Added a FileChooserDialog
28328         for browsing images; shows a preview too
28330 2006-09-05  Aaron Bockover  <abock@gnome.org>
28332         * src/Banshee.Base/Banshee.SmartPlaylist/*: Smart playlist plugin moved
28333         from banshee-official-plugins; now is always available and built into
28334         core (currently still loaded as a plugin internally however)
28336         * src/Banshee.Base/Makefile.am: Updated
28338         * src/Banshee.Base/Plugins/PluginCore.cs: Load new internal 
28339         Smart Playlists plugin
28341         * src/Banshee.Base/Plugins/PluginFactory.cs: Allow loading plugins
28342         publicly directly from types (useful for internal 'static' plugins)
28344         * src/Banshee.Widgets/RatingEntry.cs: New star rating input entry based
28345         on Gabriel Burt's version from the smart playlists plugin in 
28346         banshee-official-plugins 
28348         * src/Banshee.Widgets/Makefile.am:
28349         * src/Banshee.Widgets/Banshee.Widgets.mdp: Updated
28351         * src/Banshee.Base/Gui/RatingRenderer.cs: Updated to use new graphics
28353         * data/images/rating-rated.png:
28354         * data/images/rating-unrated.png: Added new rating graphics
28356         * data/images/star.png:
28357         * data/images/circle.png: Removed
28359         * data/images/Makefile.am: Updated
28361 2006-09-04  Aaron Bockover  <abock@gnome.org>
28363         * src/PlayerInterface.cs (OnWriteCDAction): return if there are no 
28364         burners available (BGO #346044)
28366 2006-09-04  Aaron Bockover  <abock@gnome.org>
28368         * src/Banshee.Widgets/DiscUsageDisplay.cs: Use a red gradient if the
28369         disk is full (BGO #345515)
28371 2006-09-04  Aaron Bockover  <abock@gnome.org>
28373         * src/SourceView.cs: Show source text in italics if Source.HasEmphasis
28375         * src/Banshee.Base/Source.cs: Added virtual HasEmphasis source, can be
28376         overridden and true to let the source view know it needs to emphasize
28377         the source in some way
28379         * src/Banshee.Base/Banshee.Burner/BurnerSource.cs: Implement HasEmphasis
28380         and set true when the source is auto-created (BGO #345490)
28382 2006-09-04  Ruben Vermeersch  <ruben@savanne.be>
28384         * src/Banshee.Plugins/Audioscrobbler/Engine.cs:
28385         * src/Banshee.Plugins/Audioscrobbler/Queue.cs: Only run the state machine
28386         when a track is ready for submit. Removes a useless idle loop and thus
28387         reduces cpu usage.
28389 2006-09-04  Ruben Vermeersch  <ruben@savanne.be>
28391         * src/PlaylistModel.cs: Only call QueueSync when it's needed (rather than
28392         every 300ms).
28394 2006-09-03  Aaron Bockover  <abock@gnome.org>
28396         * src/PlayerInterface.cs: 
28397         * src/Banshee.Base/ActionManager.cs:
28398         * data/UIManagerLayout.xml: Added 'stop when finished' 
28400 2006-09-02  Aaron Bockover  <abock@gnome.org>
28402         * banshee.pc.in: Replaced entagged-sharp with taglib-sharp (plugins
28403         will build again)
28405         * src/Banshee.Base/Gui/TrackEditor.cs: Minor fixes
28407 2006-09-02  Patrick van Staveren  <trick@cvs.gnome.org>
28409         * src/Banshee.Dap/Mtp/MtpDap.cs: Removed Wav as a valid filetype, as
28410         for some reason some songs would not get transcoded on sync and send as
28411         Wavs rather than mp3.
28413 2006-09-01  Aaron Bockover  <abock@gnome.org>
28415         * data/banshee-dialogs.glade: Renamed a widget
28417         * src/Banshee.Base/Gui/TrackEditor.cs: Implemented EnterNextTitle
28419 2006-09-01  Aaron Bockover  <abock@gnome.org>
28421         * taglib-sharp: Updated with latest fixes
28423 2006-08-28  Aaron Bockover  <abock@gnome.org>
28425         * src/Banshee.Base/Gui/ConfirmShutdownDialog.cs: New dialog that is shown
28426         on shutdown if there are IInstanceCriticalJobs in the scheduler
28428         * src/Banshee.Base/Banshee.Kernel/IInstanceCriticalJob.cs: New
28430         * src/Banshee.Base/Gui/ErrorListDialog.cs: Added expander
28432         * src/Banshee.Base/Banshee.Kernel/Scheduler.cs: Scheduler is now 
28433         eventful and queryable 
28435         * src/Banshee.Base/Banshee.Kernel/IntervalHeap.cs: Minor API fix
28437         * data/banshee-dialogs.glade: Added expander to ErrorListDialog
28439         * src/PlayerInterface.cs: Connect to Globals.ShutdownRequested, perform
28440         user interface shutdown sequence when event is raised
28442         * src/Banshee.Base/Globals.cs: Added ShutdownRequested event support
28443         and new Shutdown method that checks to see if the scheduler has any
28444         instance critical jobs scheduled
28446         * src/Banshee.Base/Makefile.am: Added new files
28448         * src/Banshee.Base/StreamTagger.cs: Make the SaveTrackMetadataJob 
28449         an IInstanceCriticalJob
28451 2006-08-27  Aaron Bockover  <abock@gnome.org>
28453         * src/Banshee.Base/Gui/TrackEditor.cs (SaveTrack): catch 
28454         GConf.NoSuchKeyException
28456 2006-08-27  Aaron Bockover  <abock@gnome.org>
28458         * src/Banshee.Base/Banshee.Kernel/IntervalHeap.cs: implemented
28459         IList<T> (Add, Remove, Contains), optimized heap growing, added
28460         Synchronzied(IntervalHeap<T>) to get a synchronizable IntervalHeap<T>
28462         * tests/Banshee.Kernel.cs: Added more tests for IntervalHeap<T>
28464 2006-08-27  Aaron Bockover  <abock@gnome.org>
28466         * configure.ac: Export DISTCHECK_CONFIGURE_FLAGS
28468         * data/Makefile.am:
28469         * src/Makefile.am:
28470         * src/Banshee.Base/Makefile.am:
28471         * src/Banshee.Dap/Ipod/Makefile.am:
28472         * src/Banshee.Dap/MassStorage/Makefile.am:
28473         * taglib-sharp/Makefile.am:
28474         * tests/Makefile.am: Updated to make distcheck work; it's been a while
28476         * tests/ConsoleUi.cs: Updated
28478 2006-08-26  Aaron Bockover  <abock@gnome.org>
28480         * tests/*: Added NUnit test framework, started testing Banshee.Kernel
28482         * configure.ac: Added tests/nunit checks
28484         * src/Banshee.Plugins/Audioscrobbler/Makefile.am: Updated
28485         
28486         * src/Banshee.Plugins/Audioscrobbler/Banshee.Plugins.Audioscrobbler.dll.config.in: 
28487         Renamed from Audioscrobbler.dll.config.in
28489 2006-08-26  Aaron Bockover  <abock@gnome.org>
28491         * src/Banshee.Base/Sources/AudioCdSource.cs: Reordered context menu
28493 2006-08-26  Aaron Bockover  <abock@gnome.org>
28495         * src/Banshee.Base/Banshee.Cdrom/IDiscDuplicator.cs: interface for
28496         duplicating a CD
28498         * src/Banshee.Base/Banshee.Cdrom.Nautilus/NautilusDiscDuplicator.cs:
28499         Nautilus implementation of IDiscDuplicator; runs nautilus-cd-burner
28501         * src/Banshee.Base/Makefile.am:
28502         * src/Banshee.Base/Banshee.Base.mdp: Updated
28504         * src/Banshee.Base/Banshee.Burner/BurnerCore.cs: Provide an IDiscDuplicator
28506         * src/Banshee.Base/Sources/AudioCdSource.cs: Added custom context menu
28507         with 'Copy CD' action
28509         * src/Banshee.Base/Gui/TrackEditor.cs: Schedule metadata save with
28510         highest priority
28512 2006-08-26  Aaron Bockover  <abock@gnome.org>
28514         * data/banshee-dialogs.glade: Updated UI
28516         * src/Banshee.Base/GConfKeys.cs: Added WriteMetadata key, removed
28517         obsolete keys
28519         * src/Banshee.Base/PlayerEngineCore.cs:
28520         * src/Banshee.Base/MediaEngine/PlayerEngine.cs: Added TrackInfoUpdated
28521         method
28523         * src/Banshee.Base/StreamTagger.cs: Added SaveTrackMetadataJob for writing
28524         metadata back to files inside scheduler
28526         * src/Banshee.Base/Gui/PreferencesDialog.cs: Added Write Metadata checkbox
28528         * src/Banshee.Base/Gui/TrackEditor.cs: Schedule SaveTrackMetadataJobs
28529         for saving metadata back to files if user has enabled this
28531         * src/Banshee.Base/IO/SystemIO.cs:
28532         * src/Banshee.Base/IO/Unix.cs: Fixed WriteStream Open() call to allow
28533         Read/Write
28535 2006-08-26  James Willcox  <snorp@snorp.net>
28537         * src/Banshee.Plugins/Daap/daap-sharp: updated to latest
28538         * src/Banshee.Plugins/Daap/*.cs: adjusted to daap-sharp API changes
28540 2006-08-25  Aaron Bockover  <abock@gnome.org>
28542         * data/banshee-dialogs.glade: Updated interface
28544         * src/Banshee.Base/Gui/TrackEditor.cs: Allow syncing all common fields;
28545         removed sync button on track number and title as it doesn't make sense
28547 2006-08-24  Aaron Bockover  <abock@gnome.org>
28549         * data/banshee-dialogs.glade: Moved WindowTrackInfo from banshee.glade
28551         * data/banshee.glade: Moved WindowTrackInfo to banshee-dialogs.glade
28553         * banshee.mdp:
28554         * src/Banshee.Base/Banshee.Base.mdp:
28555         * src/TrackProperties.cs:
28556         * src/Makefile.am: Removed TrackProperties.cs, moved to Banshee.Base
28558         * src/PlayerInterface.cs: Updated to call Banshee.Gui.TrackEditor
28560         * src/Banshee.Base/Gui/TrackEditor.cs: Updated to reflect new GUI,
28561         use TagLib for getting audio stream properties
28563 2006-08-24  Aaron Bockover  <abock@gnome.org>
28565         * banshee.mds: 
28566         * src/Banshee.Base/Banshee.Base.mdp: Updated
28568         * src/Banshee.Base/GstMisc.cs: Do not return a fake mime type, let
28569         taglib-sharp handle that (taglib/asf, etc.)
28571         * src/Makefile.am:
28572         * src/Banshee.Dap/MassStorage/Makefile.am: Link against taglib-sharp
28574         * src/BansheeImport.cs: Disabled parts until can port to taglib-sharp
28576 2006-08-24  Aaron Bockover  <abock@gnome.org>
28578         * entagged-sharp: removed in favor of taglib-sharp
28580         * taglib-sharp: added in favor of entagged-sharp (better mainstream
28581         format support, supports writing)
28583         * src/Banshee.Base/Banshee.Library/DatabaseWriteException.cs: Exception
28584         for database-specific write problems
28586         * src/Banshee.Base/Banshee.Library/Import.cs: Import layer to handle
28587         saving imported tracks found through ImportManager to library
28589         * src/Banshee.Base/Sources/ImportErrorsSource.cs: New source to show
28590         errors when importing
28592         * src/Banshee.Base/FileImportSource.cs:
28593         * src/Banshee.Base/FolderImportSource.cs:
28594         * src/Banshee.Base/HomeDirectoryImportSource.cs: Use new 
28595         Banshee.Library.Import class for queueing imports
28597         * src/Banshee.Base/LibraryTrackInfo.cs: Use StreamTagger with ProcessUri
28599         * src/Banshee.Base/Makefile.am: Adde new sources
28601         * src/Banshee.Base/Source.cs (RemoveChildSource): If source is active
28602         source, set active source to default source
28604         * src/Banshee.Base/StreamTagger.cs: Add a TagLib-based MergeTrackInfo
28606         * src/Banshee.Base/IO/SystemIO.cs:
28607         * src/Banshee.Base/IO/Unix.cs:
28608         * src/Banshee.Base/IO/Interfaces.cs:
28609         * src/Banshee.Base/IO/IOProxy.cs: Add support for TagLib VFS and mimetype
28610         finding implementations
28612         * src/Banshee.Base/FileTrackInfo.cs:
28613         * src/TrackProperties.cs:
28614         * src/Banshee.Dap/MassStorage/MassStorageDap.cs:
28615         * src/Banshee.Dap/Ipod/DatabaseRebuilder.cs: Use TagLib
28616         
28617         * src/PlayerInterface.cs: Removed import handling code
28619         * src/Banshee.Dap/Ipod/Makefile.am:
28620         * src/Banshee.Base/Makefile.am: Link against taglib-sharp, 
28621         not entagged-sharp
28622         
28623         * configure.ac: 
28624         * Makefile.am: Added taglib-sharp
28625         
28626 2006-08-10  Ruben Vermeersch  <ruben@Lambda1.be>
28628         * data/banshee.glade:
28629         * src/TrackProperties.cs: Long overdue patch for BGO #327371 (window for
28630         edit song metadata should be resizable).
28632 2006-08-09  Aaron Bockover  <abock@gnome.org>
28634         * banshee.mds:
28635         * libbanshee/libbanshee.mdp: Added MD project for libbanshee
28637         * libbanshee/gst-playback-0.10.c: Set video-sink on playbin to a fakesink
28638         to keep video windows from popping up (and often crashing the app with
28639         XLib errors)
28641 2006-08-09  Aaron Bockover  <abock@gnome.org>
28643         * banshee.mds: Added Last.FM.mdp
28645         * src/Gnome.Keyring/*: synced sources
28647         * src/Last.FM/Makefile.am: Added new Last.FM files
28649         * src/Last.FM/Test.cs: Added test
28650         
28651         * src/Last.FM/Last.FM/Account.cs: Completed, moved to propery build layout
28653         * src/Last.FM/Last.FM.Gui/AccountLoginForm.cs: Login form that is 
28654         Last.FM.Account aware
28655         
28656         * src/Last.FM/Last.FM.Gui/AccountLoginDialog.cs: Dialog box embedding
28657         Last.FM.AccountLoginForm
28658         
28659         * src/Last.FM/Last.FM.Gui/Badge.cs: A linked image showing the last.fm
28660         logo/badge
28661         
28662         * src/Last.FM/Last.FM.Gui/LinkLabel.cs: A hyperlink button
28664         * src/Last.FM/*.png: Added last.fm badge images
28666 2006-08-05  Aaron Bockover  <abock@gnome.org>
28668         * src/Gnome.Keyring/*: synced sources of gonzalo's Gnome.Keyring library
28669         from Mono SVN (gnome-keyring-sharp)
28671         * src/Last.FM/*: Beginning of general Last.FM/Audioscrobbler library
28673         * src/Last.FM/Account.cs: Class to get/set username/password for
28674         Last.FM using Gnome.Keyring
28676         * configure.ac:
28677         * src/Makefile.am: Added Gnome.Keyring, Last.FM
28679 2006-08-05  Aaron Bockover  <abock@gnome.org>
28681         * banshee.mds:
28682         * src/banshee.mdp:
28683         * src/Banshee.Base/Banshee.Base.mdp: Updated MonoDevelop projects
28685         * src/Makefile.am: Do not build AmazonSearchService; has never been
28686         used 
28688         * src/AmazonSearchService.wsdl: Removed :-)
28690 2006-08-05  Aaron Bockover  <abock@gnome.org>
28692         * src/*/Makefile.am:
28693         * src/*/*/Makefile.am: Added $(top_srcdir)/src/AssemblyInfo.cs to build
28695         * src/Banshee.Plugins/Daap/daap-sharp/AssemblyInfo.cs: Removed
28697         * src/Banshee.Plugins/Daap/daap-sharp/sync-tree.sh: Remove AssemblyInfo.cs
28698         when syncing
28700 2006-08-05  Aaron Bockover  <abock@gnome.org>
28702         * src/Banshee.Base/PlayerEngineCore.cs: Use a PluginFactory; media
28703         engines are now flatly installed in Banshee.MediaEngine (no more
28704         sub directories therein)
28706         * src/Banshee.Base/MediaEngine/PlayerEngine.cs: Implement IPlugin
28708         * src/Banshee.Base/Plugins/PluginFactory.cs: Added PluginLoaded event
28710         * src/ExceptionDialog.cs: 
28711         * src/LogCoreViewer.cs:
28712         * src/RatingRenderer.cs:
28713         * src/ToggleStates.cs:
28714         * src/VersionInformationDialog.cs: Moved to Banshee.Base/Gui
28716         * src/Banshee.Base/Gui/ExceptionDialog.cs: Details are now collapsed
28717         in an expander; minor clean up
28719         * src/Banshee.Base/Gui/CleanRoomStartup.cs: Startup(string []) invocation
28720         that can optionally, by default, trap exceptions and present them in
28721         the Banshee.Gui.Dialogs.ExceptionDialog
28723         * configure.ac: Output GStreamerPlayerEngine.dll.config.in
28725         * src/Banshee.MediaEngine/Gstreamer/gst-player.dll.config.in: Renamed to
28726         GStreamerPlayerEngine.dll.config.in
28728         * src/Banshee.MediaEngine/Gstreamer/Makefile.am: Renamed assembly to
28729         GStreamerPlayerEngine.dll, install to Banshee.MediaEngine
28731         * src/Banshee.MediaEngine/Helix/Makefile.am: Install to Banshee.MediaEngine
28733         * src/Main.cs: Use CleanRoomStartup
28735         * src/Makefile.am: Removed files and resources moved to Banshee.Base
28737         * src/Banshee.Base/Makefile.am: Added resource generator, added new files
28738         and resources moved from banshee.exe
28740         * src/StockIcons.cs: Removed some icons
28742         * src/banshee.mdp:
28743         * src/Banshee.Base/Banshee.Base.mdp: Updated MonoDevelop projects
28745         * src/PlaylistView.cs:
28746         * src/PlayerInterface.cs: Updated to reflect namespace changes
28748 2006-08-04  Aaron Bockover  <abock@gnome.org>
28750         * src/Banshee.Base/Gui/GladeWindow.cs: Fixed bug, was missing assembly
28751         argument
28753 2006-08-04  Aaron Bockover  <abock@gnome.org>
28755         * banshee.mdp: Removed old MonoDevelop project
28757         * banshee.mds: New MonoDevelop solution that includes proper projects
28759         * src/banshee.mdp:
28760         * src/Banshee.Base/Banshee.Base.mdp:
28761         * src/Banshee.Widgets/Banshee.Widgets.mdp:
28762         * src/MusicBrainz/MusicBrainz.mdp: New MonoDevelop projects; core Banshee
28763         can now be built and run from MonoDevelop
28765         * data/banshee.glade: Removed Banshee.Base dialogs
28767         * data/banshee-dialogs.glade: Moved Banshee.Base dialogs here; resource
28768         in Banshee.Base.dll; now more reusable
28770         * src/banshee.in: Allow running uninstalled
28772         * src/Banshee.Base/Makefile.am: Embed banshee-dialogs.glade
28774         * src/Banshee.Base/Gui/GladeWindow.cs: New constructor
28776         * src/PlayerInterface.cs: Connect to DeleteEvent manually
28778 2006-08-01  Aaron Bockover  <abock@gnome.org>
28780         * banshee.mdp: Updated MonoDevelop project
28782         * data/Makefile.am: Build .po info extractor and generate translators.xml
28784         * data/contributors.xml: XML file containing contributor information
28786         * data/TranslatorExtract.cs: Program to extract translator information
28787         from .po files, generates XML to embed as resource
28789         * src/AboutBox.cs: Removed
28791         * src/Makefile.am: Do not embed COPYING or build AboutBox.cs
28793         * src/PlayerInterface.cs: Use new Banshee.Gui.Dialogs.AboutDialog
28795         * src/Banshee.Base/Makefile.am: Added ProductInformation.cs and 
28796         AboutDialog.cs; embed translators.xml, contributors.xml, and COPYING
28798         * src/Banshee.Base/ProductInformation.cs: Static class that reads
28799         translators.xml and contributor.xml resources to provide data for
28800         display in about dialog
28802         * src/Banshee.Base/Gui/AboutDialog.cs: New about dialog that uses
28803         Banshee.Base.ProductInformation as a data source
28805 2006-07-29  Aaron Bockover  <abock@gnome.org>
28807         * banshee.mdp: Updated MonoDevelop project
28809         * src/Banshee.Base/Banshee.Kernel/Scheduler.cs: Schedules jobs to
28810         be executed based on priority on a single thread of execution
28812         * src/Banshee.Base/Banshee.Kernel/IntervalHeap.cs: A heap-based priority
28813         queue collection for the scheduler
28815         * src/Banshee.Base/Banshee.Kernel/IJob.cs: Job interface used for 
28816         scheduling
28818         * src/Banshee.Base/Banshee.Kernel/Job.cs: Job abstract class with
28819         a Finished event
28821         * src/Banshee.Base/Banshee.Kernel/JobPriority.cs: Job priority levels
28823         * src/Banshee.Base/Makefile.am: Added new Banshee.Kernel sources
28825         * src/Banshee.Plugins/MetadataSearch/MetadataSearchPlugin.cs: Use
28826         new Banshee.Kernel.Scheduler to handle fetching of track data on
28827         the scheduler thread
28829 2006-07-29  Patrick van Staveren  <trick@vanstaveren.us>
28831         * src/Banshee.Dap/Mtp/MtpDap.cs: fix other import method to use
28832         IList.  Also update error handling code to work with IEnumerable.
28834 2006-07-29  Patrick van Staveren  <trick@vanstaveren.us>
28836         * src/Banshee.Dap/Mtp/MtpDap.cs: quick fix with changing API from
28837         abock's earlier commit (IList->IEnumerable)
28839 2006-07-28  Patrick van Staveren  <trick@vanstaveren.us>
28841         * src/Banshee.Dap/Mtp/GPhotoDevice.cs: added GetFile method
28843         * src/Banshee.Dap/Mtp/GPhotoDeviceFile.cs: split out public & private
28844         CameraFile, add Extension variable, removed old comments, CameraFile
28845         get method now auto-retrieves the file if not gotten yet.
28847         * src/Banshee.Dap/Mtp/MtpDap.cs: added fully-functional import method
28849         * src/Banshee.Dap/Mtp/MtpDapTrackInfo.cs: renamed device file to proper
28850         name, added MakeFileUri method that retrieves a camera file to a temp file
28851         with a proper extension
28853         Warning: the Import method blocks the UI. Move to a background thread.
28855 2006-07-28  Aaron Bockover  <abock@gnome.org>
28857         * src/PlayerInterface.cs: Minor fix
28859         * src/SourceView.cs: Allow dropping IImportSource source on LibrarySource
28861         * src/Banshee.Base/Sources/DapSource.cs: Added CancelMessage and
28862         an action name to make the HIG stop dialog not suck
28864 2006-07-28  Aaron Bockover  <abock@gnome.org>
28866         * src/PlayerInterface.cs: Make the remove and delete songs dialog
28867         conform to the HIG
28869 2006-07-28  Aaron Bockover  <abock@gnome.org>
28871         * src/Banshee.Widgets/ActiveUserEvent.cs: New fully-HIG-compliant 
28872         cancel/stop dialog; support having custom stop messages
28874         * src/Banshee.Base/AudioCdRipper.cs: 
28875         * src/Banshee.Base/BatchTranscoder.cs:
28876         * src/Banshee.Base/ImportManager.cs:
28877         * src/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs:
28878         * src/Banshee.Base/Dap/Dap.cs: Added better operation names and custom
28879         stop-operation messages so the stop dialog is more HIG compliant and
28880         easier to understand
28882         * src/Banshee.Base/ActionManager.cs: Set Gtk.Window.DefaultIconName
28884         * src/Banshee.Widgets/HigMessageDialog.cs: Set SkipTaskbarHint as 
28885         suggested by the HIG, make the message label support markup
28887 2006-07-28  Gabriel Burt  <gabriel.burt@gmail.com>
28889         * src/Banshee.Base/Sources/PlaylistSource.cs: Fire TrackAdded/Removed
28890         events when appropriate.  Fixes BGO #347014.
28892         * src/Banshee.Dap/MassStorage/MassStorageDap.cs: Conform to the HAL spec
28893         when exporting files.
28895 2006-07-28  Aaron Bockover  <abock@gnome.org>
28897         This commit breaks major API regarding Banshee.Sources.Source; expect
28898         related plugins and other code to break
28900         * src/Banshee.Base/Library.cs:
28901         * src/Banshee.Base/Source.cs: 
28902         * src/Banshee.Base/AudioCd/AudioCdDisk.cs:
28903         * src/Banshee.Base/Banshee.Burner/BurnerSource.cs:
28904         * src/Banshee.Base/Dap/Dap.cs:
28905         * src/Banshee.Base/Sources/AudioCdSource.cs:
28906         * src/Banshee.Base/Sources/LibrarySource.cs:
28907         * src/Banshee.Base/Sources/LocalQueueSource.cs:
28908         * src/Banshee.Base/Sources/PlaylistSource.cs:
28909         * src/Banshee.Plugins/Daap/DaapSource.cs:
28910         * src/Banshee.Plugins/Daap/DatabaseProxy.cs: Use generics on public API;
28911         goal was to have Banshee.Source.Source.Tracks be IEnumerable<TrackInfo>,
28912         thus everything else below had to become generic; clean up along the way
28914         * src/Banshee.Base/Sources/IImportable.cs: Import takes 
28915         IEnumerable<TrackInfo> instead of IList<TrackInfo> to make implementing
28916         both IImportable and IImportSource as easy and efficient as possible
28918         * src/Banshee.Base/Sources/DapSource.cs: Implement aforementioned
28919         generics changes and implement IImportSource
28921         * src/SourceView.cs: Handle exceptions when invoking an import
28923         * src/Banshee.Dap/Njb/NjbDap.cs:
28924         * src/Banshee.Dap/Mtp/MtpDap.cs: Throw an exception in IImportable.Import
28925         as these DAPs do not yet support importing
28927 2006-07-28  Patrick van Staveren  <trick@vanstaveren.us>
28929         * src/Banshee.Base/Dap/DapMisc.cs: added wav and flac types
28931         * src/Banshee.Dap/Mtp/GPhotoDevice.cs: also allow wma/asx/wav extensions
28933         * src/Banshee.Dap/Mtp/MtpDap.cs: allow wav files (voice recordings),
28934         implement IImportable & dummy Import functions w/ error message. Also
28935         remove an old comment.
28937         * src/Banshee.Dap/Njb/NjbDap.cs: add IImportable & dummy Import
28938         functions w/ error message.
28940 2006-07-27  Aaron Bockover  <abock@gnome.org>
28942         * banshee.mdp: Updated MonoDevelop project
28944         * src/SourceView.cs: support dropping on IImportable sources
28946         * src/Banshee.Base/FileNamePattern.cs: Fix minor bug regarding extensions
28948         * src/Banshee.Base/LibraryTrackInfo.cs: Allow constructor previously
28949         reserved for AudioCdTrackInfo to import any TrackInfo 
28951         * src/Banshee.Base/QueuedOperationManager.cs: Fixes, added necessary
28952         support for more advanced operations management
28954         * src/Banshee.Base/Sources/IImportable.cs: Added two Import methods
28956         * src/Banshee.Base/Sources/DapSource.cs: Implemented IImportable 
28957         methods; effectively allows super-awesome importing of songs from
28958         an iPod (or mass storage DAP) to the Banshee library
28960 2006-07-27  Aaron Bockover  <abock@gnome.org>
28962         * banshee.mdp: Updated MonoDevelop project
28964         * src/Makefile.am:
28965         * src/DragDrop.cs: Removed legacy DnD code
28967         * src/Banshee.Base/Makefile.am: Added new Banshee.Gui.DragDrop files
28968         and Sources/IImportable.cs
28970         * src/Banshee.Base/Banshee.Equalizer.Gui/EqualizerView.cs: Minor fix
28972         * src/Banshee.Base/Banshee.Gui.DragDrop/DragDropList.cs: New DnD 
28973         transportation collection object to allow sending managed objects
28974         efficiently over Gtk.SelectionData and with very minimal code overhead
28976         * src/Banshee.Base/Banshee.Gui.DragDrop/DragDropTarget.cs: Global
28977         DnD target definitions and types
28979         * src/Banshee.Base/Banshee.Gui.DragDrop/DragDropUtilities.cs: Utility
28980         methods for raw DnD (byte[]/string/Gtk.SelectionData transforms)
28982         * src/PlayerInterface.cs:
28983         * src/SourceView.cs: Updated to use new Banshee.Gui.DragDrop types,
28984         utilities, and most importantly, DragDropList for efficient DnD
28986         * src/Banshee.Base/Sources/IImportable.cs: Empty interface for now; 
28987         can be implemented on sources when the source has import to library
28988         support
28990         * src/Banshee.Base/Sources/DapSource.cs: Implement IImportable
28992 2006-07-27  Aaron Bockover  <abock@gnome.org>
28994         * banshee.mdp: Updated MonoDevelop project
28996         * src/Banshee.Base/ActionManager.cs:
28997         * data/UIManagerLayout.xml: Added equalizer and help/wiki actions
28999         * src/PlayerInterface.cs: Minor full screen action clean up and
29000         added action for showing eq editor
29002         * src/Banshee.Base/Gui/GladeWindow.cs: Base wrapper for Glade windows
29004         * src/Banshee.Base/Gui/GladeDialog.cs: Now derives from GladeWindow
29006         * src/Banshee.Plugins/Audioscrobbler/Queue.cs: Fix minor warning
29008         * src/Banshee.Base/Makefile.am: Added new equalizer files
29010         Equalizer support based in part on Ivan N. Zlatev's patch:
29012         * data/banshee.glade: Added equalizer editor shell window
29014         * src/Banshee.Base/Banshee.Equalizer/EqualizerManager.cs: Manager 
29015         with a default instance that supports loading/saving EqualizerSettings
29016         into XML
29018         * src/Banshee.Base/Banshee.Equalizer/EqualizerSetting.cs: Type representing
29019         and equalizer preset/configuration
29021         * src/Banshee.Base/Banshee.Equalizer.Gui/EqualizerBandScale.cs: A scale
29022         widget supporting band/frequency and clipped EQ values, shows a 
29023         frequency label as well
29025         * src/Banshee.Base/Banshee.Equalizer.Gui/EqualizerLevelsBox.cs: VBox
29026         that shows dB levels
29028         * src/Banshee.Base/Banshee.Equalizer.Gui/EqualizerPresetComboBox.cs: 
29029         A GtkComboBoxEntry that is EqualizerManager-aware
29031         * src/Banshee.Base/Banshee.Equalizer.Gui/EqualizerView.cs: A full EQ
29032         view widget that combines the BandScale and LevelsBox widgets and 
29033         supports loading/setting presets from an EqualizerSetting
29035         * src/Banshee.Base/Banshee.Equalizer.Gui/EqualizerWindow.cs: Default
29036         editor window combining glade shell window, EqualizerView and preset
29037         support
29039         * src/Banshee.MediaEngine/Helix/HelixRemotePlayerEngine.cs: Added supported
29040         EQ bands/frequencies by the Helix engine; call into new EQ D-Bus methods
29042         * src/Banshee.MediaEngine/Helix/HelixRemotePlayer.cs: Added D-Bus
29043         methods for new EQ support
29045 2006-07-26  Aaron Bockover  <abock@gnome.org>
29047         * configure.ac: Use new intltool 0.3.5 locale handling (BGO #339140, 
29048         Przemysław Grzegorczyk)
29050         * src/PlayerInterface.cs: Suspend search until query is entered to
29051         speed up performance (BGO #348274, Dominik Meister)
29053         * src/Banshee.Base/ImportManager.cs:  Catch more exceptions that can be
29054         thrown during import.  Based on patch from Julien Sobrier (BGO #348732,
29055         Gabriel Burt)
29057         * src/Banshee.Dap/Ipod/IpodDap.cs: Added more informative debug output
29059         * src/Banshee.Widgets/ActiveUserEvent.cs: Only update on a delay to
29060         help unclog the main loop (BGO #347064, James Willcox)
29062         * entagged-sharp/Ogg/Util/OggInfoReader.cs: Nominal bitrate in kbps (BGO
29063         #342933, Koike Kazuhiko)
29065 2006-07-25  Gabriel Burt  <gabriel.burt@gmail.com>
29067         * src/Banshee.Base/Source.cs: Fix small bug where we set the parent of a
29068         child to itself (BGO #348726, thanks Julien Sobrier).
29070 2006-07-25  Ruben Vermeersch  <ruben@Lambda1.be>
29072         * src/Banshee.Base/Gui/PreferencesDialog.cs: Fix music folder preference
29073         (BGO #348600)
29075 2006-07-19  Aaron Bockover  <abock@gnome.org>
29077         Patch from Ed Catmur (BGO #346501)
29079         * configure.ac: Check for libnautilus-burn 2.15.x and set compat 
29080         defines for 2.12.x, 2.14.x, and 2.15.x
29082         * burn-sharp/glue.c: Stay compatible with older (<=2.14.x) API and
29083         work with new 2.15.x API
29085 2006-07-18  Aaron Bockover  <abock@gnome.org>
29087         * banshee.mdp: Updated MonoDevelop project
29089         * src/Banshee.Widgets/Makefile.am: Add Tile.cs and TileView.cs
29091         * src/Banshee.Widgets/TileView.cs: Scrollable widget that nicely 
29092         arranges child widgets into a table that should rarely horizontally
29093         scroll, much like the application browser in SLED 10
29095         * src/Banshee.Widgets/Tile.cs: Added a base Tile widget class; the
29096         tile concept can be seen in Beagle, and in SLED 10's main menu, 
29097         application browser, and control panel
29099 2006-07-18  Gabriel Burt  <gabriel.burt@gmail.com>
29101         * src/Banshee.Base/Sources/PlaylistSource.cs: If the Library is not
29102         loaded, delay loading a playlist's tracks. (BGO #346702)
29104         * src/Banshee.Dap/MassStorage/MassStorageDap.cs: Fixed wrong indexes
29105         used in WriteLine, caught and patched by Przemysław Grzegorczyk (BGO #347440)
29107 2006-07-18  Aaron Bockover  <abock@gnome.org>
29109         * hal-sharp/HalDevice.cs: Added null checks for Hal.Context to prevent
29110         crashes in places; happened in new NautilusDriveFactory when dbus was
29111         down
29113 2006-07-18  Aaron Bockover  <abock@gnome.org>
29115         * src/Banshee.Base/Makefile.am: Removed a file that I haven't committed
29116         yet
29118 2006-07-18  Patrick van Staveren  <trick@vanstaveren.us>
29120         * src/Banshee.Dap/Mtp/MtpDeviceId.cs: sync'd device list with libgphoto
29122 2006-07-17  Aaron Bockover  <abock@gnome.org>
29124         * src/Banshee.Base/Makefile.am: Added MediaEngine/IEqualizer.cs (left
29125         out from IEqualizer.cs commit)
29127 2006-07-17  Aaron Bockover  <abock@gnome.org>
29129         * HACKING: Updated
29131 2006-07-17  Aaron Bockover  <abock@gnome.org>
29133         * src/Banshee.Base/MediaEngine/IEqualizer.cs: Added an equalizer interface
29134         that media engines can implement
29136 2006-07-12  Patrick van Staveren  <trick@vanstaveren.us>
29138         * src/Banshee.Dap/Mtp/GPhotoDevice.cs:
29139         * src/Banshee.Dap/Mtp/MtpDap.cs: removed a bunch of unnecessary debug
29140         statements, cleaned up device detection so that it only happens when
29141         necessary.  Also removed SetOwner method so that Banshee doesn't allow
29142         in UI.
29144 2006-07-12  Ruben Vermeersch  <ruben@Lambda1.be>
29146         Patch by Bertrand Lorentz <bertrand.lorentz@gmail.com> (BGO #336761)
29148         * data/banshee.schemas.in: 
29149         * src/PlayerInterface.cs:
29150         * src/PlaylistView.cs: Add support for showing a year column and searching
29151         track by year. The year column visibility defaults to false.
29153 2006-07-11  Ruben Vermeersch  <ruben@Lambda1.be>
29155         * src/Banshee.Base/Plugins/PluginFactory.cs: Create user plugin dir if it
29156         doesn't exist. (BGO #346612) Makes life of plugin writers a bit easier as
29157         they can safely assume the user plugin dir exists.
29159         * src/Banshee.Plugins/Audioscrobbler/Queue.cs: Remove the unnecessairy
29160         test to check if the user plugin dir exists.
29162 2006-07-10  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>
29164         * src/Banshee.Base/Banshee.Cdrom.Gui/RecorderSpeedComboBox.cs:
29165         Fixed typo 
29167 2006-07-08  Aaron Bockover  <aaron@abock.org>
29169         * libbanshee/gst-transcode-0.10.c: Expand virtual element 'cdwavenc'
29170         into a better pipeline to produce proper WAV PCM (proper endianness,
29171         width, depth, signed, rate, and channel attributes)
29173         * src/Banshee.Base/PipelineProfile.cs: Added support for virtual 'cdwavenc'
29175         * src/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs: Use new virtual
29176         'cdwavenc' profile for writing audio CDs
29178 2006-07-06  Aaron Bockover  <aaron@abock.org>
29180         Patch by Christopher Orr <chris@orr.me.uk> (BGO #346815)
29182         * src/Banshee.Base/PowerManagement.cs: Make Inhibit method generic;
29183         allow multiple reasons for inhibiting GNOME Power Manager.
29184         
29185         * src/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs: Use Inhibit
29186         to stop computer suspending/hibernating while burning a CD.
29188 2006-07-07  Aaron Bockover  <aaron@abock.org>
29190         * src/Banshee.Plugins/NotificationAreaIcon/NotificationAreaIconPlugin.cs:
29191         Ensure track info popup is not clipped on left side of 
29192         screen (BGO #346876, Edward Duffy)
29194 2006-07-06  Aaron Bockover  <aaron@abock.org>
29196         Patch from James Willcox
29198         * configure.ac: Require ipod-sharp 0.6.0
29200         * src/Banshee.Base/TrackInfo.cs: Make cover_art_file protected
29202         * src/Banshee.Dap/Ipod/DatabaseRebuilder.cs:
29203         * src/Banshee.Dap/Ipod/IpodDap.cs:
29204         * src/Banshee.Dap/Ipod/IpodDapTrackInfo.cs: Updated to work with
29205         new ipod-sharp 0.6.0/SVN Track API and added cover art syncing support
29207 2006-07-06  Aaron Bockover  <aaron@abock.org>
29209         * banshee.mdp: Updated MonoDevelop project
29211         * src/Banshee.Base/Globals.cs: Initialize/destroy power management support
29213         * src/Banshee.Base/Makefile.am: Added PowerManagement.cs
29215         * src/Banshee.Base/PowerManagement.cs: Basic power management support
29216         that currently uses the DBus interface to GNOME Power Manager (2.15.x
29217         is currently required); If playing, Inhibit will be called, when not 
29218         playing, UnInhibit will be called (BGO #344946)
29220         * src/Banshee.Base/TrackInfoPopup.cs: Increased cover art size
29222 2006-07-02  Aaron Bockover  <aaron@abock.org>
29224         * src/data/UIManagerLayout.xml: Added DebugMenu menu; moved the 
29225         version information and logged events items into it (BGO #346425)
29227         * src/Banshee.Base/ActionManager.cs: Added DebugMenuAction implementation;
29228         do not show unless --debug is passed
29230 2006-07-02  Aaron Bockover  <aaron@abock.org>
29232         * src/Main.cs: Enable the exception dialog
29234         * src/PlayerInterface.cs: Do not show main interface if --hide was passed
29236         * src/Banshee.Base/BansheeBranding.cs: Do not show the splash screen
29237         if --hide was passed (BGO #346424)
29239 2006-07-02  Gabriel Burt  <gabriel.burt@gmail.com>
29241         * src/Banshee.Base/ChildSource.cs: Fix whitespace.
29243         * src/Banshee.Base/Source.cs: Add NameComparer and SizeComparer IComparers
29244         and add virtual SortChildren function to sort with them, allowing ordering
29245         of non-PlaylistSource children of the Library. (BGO #344829)
29247         * src/Banshee.Base/Sources/LibrarySource.cs: Use SortChildren method from
29248         Source.  Remove option to sort by creation order.
29250         * src/Banshee.Base/Sources/PlaylistSource.cs: Remove sorting functionality
29251         from LoadSources function, as sorting is done with SortChildren now.
29253 2006-07-02  Aaron Bockover  <aaron@abock.org>
29255         * src/PlaylistView.cs (SelectPlaying): Check PlayingPath for null before
29256         calling SelectPath on it
29258         * src/PlayerInterface.cs (SearchBySelectedTrack): Focus the playlist view 
29260         * src/Banshee.Base/QueuedSqliteDatabase.cs: Updated by rubenv in a 
29261         previous commit to add a WakeUp method and not hang on Dispose 
29263 2006-07-02  Aaron Bockover  <aaron@abock.org>
29265         Revised patch from Dominik Meister (BGO #333904)
29267         * data/UIManagerLayout.xml: 
29268         * src/Banshee.Base/ActionManager.cs: Added search by criteria entries
29269         
29270         * src/PlayerInterface.cs: Implement search by criteria from selection
29272         * src/Banshee.Widgets/SearchEntry.cs: Allow setting the search filter
29273         restrition
29275 2006-07-02  Aaron Bockover  <aaron@abock.org>
29277         * src/Banshee.Base/ImportManager.cs: Catch any exception on the 
29278         'starts with' test for path file names when importing in case
29279         there is poor encoding (BGO #68088, Marin Krkač)
29281         * src/PlaylistView.cs: More natural sorting of playlists 
29282         by artist (BGO #342835, Denis Washington)
29284         * src/PlayerInterface.cs (OnSimpleSearch): Pump the main event loop 
29285         before updating the view to allow for the scroll to playing 
29286         request to work properly for now (BGO #328886, Marin Krkač)
29288         * src/Banshee.Base/QueuedSqliteDatabase.cs: Use a generic 
29289         Queue for the queue; eliminate busy waiting to reduce 
29290         CPU usage (BGO #346381, Ruben Vermeersch)
29292 2006-07-02  Aaron Bockover  <aaron@abock.org>
29294         Patch from Dominik Meister to add Jump To Playing support (BGO #339847)
29296         * data/UIManagerLayout.xml: Added JumpToPlayingAction to show in the
29297         track view context menu
29299         * src/PlayerInterface.cs: Implemented JumpToPlayingAction
29301         * src/Banshee.Base/ActionManager.cs: Added JumpToPlayingAction definition
29303         * src/PlaylistView.cs: Implemented SelectPlaying method
29305 2006-07-02  Aaron Bockover  <aaron@abock.org>
29307         * src/Banshee.Base/Makefile.am: Added PluginFactory.cs and IPlugin.cs
29309 2006-07-02  Aaron Bockover  <aaron@abock.org>
29311         * src/Banshee.Base/ComponentInitializer.cs: Use an Initializing 
29312         concept vs an Initialized concept, so when tasks block, the UI doesn't
29313         look like it's 'off by one'
29315         * src/Banshee.Plugins/Audioscrobbler/AudioscrobblerPlugin.cs: Install
29316         ActionManager actions in overloaded InterfaceInitialize method, not
29317         in PluginInitialize; this is now required since the 
29318         Banshee.Base.ActionManager's interface definition is loaded 
29319         after PluginInitialize
29321         * src/Banshee.Base/Banshee.Burner/BurnerCore.cs: assign recorder with
29322         newly added media to all burner sources if source does not already
29323         have a set recorder (BGO #345475)
29325         * src/Banshee.Base/Plugins/PluginFactory.cs: Generic class to allow
29326         loading of types (and instantiations) from directories/assemblies;
29327         reduces all the plugin loading redundancy for the three types of
29328         plugins used in Banshee
29330         * src/Banshee.Base/Plugins/IPlugin.cs: Base IPlugin interface to allow
29331         classes to work with PluginFactory
29333         * src/Banshee.Base/Plugins/Plugin.cs: Implement new IPlugin interface
29335         * src/Banshee.Base/Plugins/PluginCore.cs: Use new PluginFactory for
29336         the update 'generic' Plugin type
29338         * src/Banshee.Base/Plugins/PluginDialog.cs: Fix to work with new 
29339         generics/PluginFactory support
29341         * src/Banshee.Base/Dap/Dap.cs: DapDevice now implements IPlugin
29343         * src/Banshee.Base/Dap/DapCore.cs: DapCore now uses a PluginFactory
29344         and all collections were updated to use generics
29346         * data/UIManagerLayout.xml: Added a separator in the Music menu
29348         * banshee.mds: Updated MonoDevelop solution
29350 2006-06-22  Aaron Bockover  <aaron@abock.org>
29352         * src/Banshee.Plugins/Daap/DaapCore.cs: Ignore services with 'Jono'
29353         in them (Jono has bad taste, apparently)
29355 2006-06-26  Ruben Vermeersch  <ruben@Lambda1.be>
29357         * banshee.mdp: Updated MonoDevelop project
29359 2006-06-21  Aaron Bockover  <aaron@abock.org>
29361         New preferences dialog (BGO #345516)
29363         * banshee.mdp: Updated MonoDevelop project
29365         * data/banshee.glade: Removed legacy preferences window and added
29366         a simplified new preferences dialog
29368         * src/Preferences.cs: Removed legacy preferences window
29370         * src/PlayerInterface.cs: Invoke the new preferences dialog
29372         * src/Banshee.Base/Makefile.am: Added Gui/PreferencesDialog.cs
29374         * src/Banshee.Base/PipelineProfile.cs: Added a Changed event needed
29375         for instant-apply in the new preferences dialog
29377         * src/Banshee.Base/Gui/PreferencesDialog.cs: New instant-apply and
29378         much simplified preferences dialog implementation
29380 2006-06-21  Aaron Bockover  <aaron@abock.org>
29382         * src/PlaylistView.cs: Use theme icons for playback indication
29384 2006-06-21  Aaron Bockover  <aaron@abock.org>
29386         * docs/MonodocNodeConfig.cs: return proper error codes to allow make
29387         to report failures (Ruben Vermeersch, BGO #338491)
29389         * src/Banshee.Base/PipelineProfile.cs: Set outputformat=1 for faac
29390         profile (John Eckhart, BGO #341547)
29392         * libbanshee/gst-playback-0.10.c: Properly parse track_str from 
29393         CDDA URI (substring length off-by-one, Koike Kazuhiko, BGO #341704)
29395         * src/Banshee.Base/FileNamePattern.cs: Escape file names containing
29396         a colon (:) (James Stembridge, BGO #333813)
29398         * src/PlayerInterface.cs (DoesTrackMatchSearch): Allow for fuzzy
29399         searching (OR/NOT support) and relaxed culture-based string 
29400         comparison ('pele' will match 'Pelé'); patch by Marin Krkac, based
29401         on original fuzzy search patch by Travis Bradshaw (BGO #333893, #327671)
29403         * src/Banshee.Base/Utilities.cs (StringUtil): Added RelaxedIndexOf
29404         method for relaxed culture-based string matching (Marin Krkac)
29406 2006-06-21  Aaron Bockover  <aaron@abock.org>
29408         Rating patch by P. van de Geer (BGO #336042)
29410         * src/Main.cs: Added --query-rating argument
29412         * src/RemotePlayer.cs: Added GetPlayingRating remote method
29414 2006-06-20  Aaron Bockover  <aaron@abock.org>
29416         Committed Patrick van Staveren's MTP support
29418         * configure.ac: Added checks for libgphoto2-sharp and require --enable-mtp
29419         to be explicitly passed to build experimental/unstable MTP support
29421         * src/Banshee.Dap/Makefile.am: Added Mtp to SUBDIRS
29423         * src/Banshee.Dap/Mtp/*: Experimental/unstable MTP DAP support
29425 2006-06-20  Aaron Bockover  <aaron@abock.org>
29427         * src/Banshee.Base/BansheeBranding.cs: Removed rogue Console.WriteLine
29429 2006-06-20  Aaron Bockover  <aaron@abock.org>
29431         * src/Main.cs: Added call to NotifyStartupComplete call for when
29432         commands are sent to remote instance; enqueue files over DBus
29434         * src/PlayerInterface.cs: Do not add LocalQueueSource to SourceManager
29436         * src/RemotePlayer.cs: Added EnqueueFiles remote method
29438         * src/Banshee.Base/SourceManager.cs: Added ContainsSource method
29440         * src/Banshee.Base/Sources/LocalQueueSource.cs: Support enqueuing 
29441         files after instantiation; play first file on enqueue
29443 2006-06-20  Aaron Bockover  <aaron@abock.org>
29445         * banshee.mdp: Updated MonoDevelop project
29447         * src/Core.cs: Removed
29449         * src/Main.cs: Initialize stock icons before instantiating UI
29451         * src/Makefile.am: Removed Core.cs
29453         * src/PlayerInterface.cs:
29454         * src/TrackProperties.cs: Do not reference PlayerCore
29456         * src/Banshee.Base/ActionManager.cs: Delay loading UI until after
29457         globals startup initialization
29459         * src/Banshee.Base/Branding.cs: Moved BansheeBranding to new file; only
29460         initialize the default branding once
29462         * src/Banshee.Base/Globals.cs: Run all initialization processes through
29463         the new ComponentInitializer
29465         * src/Banshee.Base/ComponentInitializer.cs: Object to keep track of
29466         component initialization; used for reporting progress of startup
29468         * src/Banshee.Base/BansheeBranding.cs: Added splash screen support
29470         * src/Banshee.Base/Gui/SplashScreen.cs: Default splash screen that shows
29471         load progress, and can be re-used for custom brandings
29473         * data/images/splash.{png,svg}: New upstream/default branded splash 
29474         screen graphic
29476         * data/images/Makefile.am: Added splash.png
29478 2006-06-20  Aaron Bockover  <aaron@abock.org>
29480         * src/Banshee.Base/Banshee.Burner/BurnerSource.cs: Make default
29481         source name 'New Audio CD' not 'New CD' (BGO #345489)
29483 2006-06-20  Aaron bockover  <aaron@abock.org>
29485         * src/Banshee.Base/Banshee.Burner/BurnerSource.cs: In default 
29486         constructor, bind the source session to the first available 
29487         recorder with blank media if possible (BGO #345475)
29489 2006-06-20  Aaron Bockover  <aaron@abock.org>
29491         * src/Banshee.Base/Banshee.Burner/BurnerCore.cs: Add null check
29492         on return from FindSourceForDrive; call source.Unmap on match (BGO #345474)
29494         * src/Banshee.Base/Banshee.Burner/BurnerSource.cs: Implement OnDispose
29495         in place of Uninitialize
29497 2006-06-20  Aaron Bockover  <aaron@abock.org>
29499         * src/Banshee.Base/Banshee.Burner/BurnerSource.cs:
29500         * src/Banshee.Plugins/Daap/DaapSource.cs: Implement new virtual method
29501         and properties for unmapping
29503 2006-06-20  Gabriel Burt  <gabriel.burt@gmail.com>
29505         * data/UIManagerLayout.xml: Rename the DeletePlaylist action to 
29506         UnmapSource.
29508         * src/PlayerInterface.cs: Use CanUnmap property of Sources to set
29509         visiblity of Unmap option in context menu.  Set the label of the rename
29510         and delete items with on the source's SourceType property.  Make the
29511         OnRename and OnUnmap handlers source-independent.
29513         * src/Banshee.Base/ActionManager.cs: Add the UnmapSourceAction to the
29514         list of global actions instead of to the PlaylistActions group.
29516         * src/Banshee.Base/Source.cs: Add virtual Unmap method and SourceType,
29517         and CanUnmap, UnmapLabel, and UnmapIcon properties.
29519         * src/Banshee.Base/Sources/DapSource.cs: 
29520         * src/Banshee.Base/Sources/PlaylistSource.cs: Implement new virtual
29521         method/properties.
29523 2006-06-20  Aaron Bockover  <aaron@abock.org>
29525         * src/DragDrop.cs: Added ObjectToSelectionData and SelectionDataToObjects
29527         * src/PlayerInterface.cs: Let SourceView handle its own drag source/dests
29529         * src/SourceView.cs: Added internal DnD support; sources can be dropped
29530         on to other sources
29532         * src/Banshee.Base/Source.cs: Added SourceDrop virtual method and
29533         IsDragSource property to control source DnD
29535         * src/Banshee.Base/Banshee.Burner/BurnerSource.cs: Implement SourceDrop;
29536         playlists can be dropped on to the CD burning source
29538         * src/Banshee.Base/Sources/PlaylistSource.cs: Implement IsDragSource and
29539         SourceDrop; playlists can be dragged to other sources (including other
29540         playlists)
29542 2006-06-19  Aaron Bockover  <aaron@abock.org>
29544         * src/Banshee.Base/Banshee.Burner/BurnerSource.cs: call default 
29545         constructor from IRecorder constructor
29547 2006-06-19  Aaron Bockover  <aaron@abock.org>
29549         * src/Banshee.Base/Branding.cs: added Branding support that was 
29550         implemented on the stable branch
29552         * src/AboutBox.cs:
29553         * src/PlayerInterface.cs:
29554         * src/Banshee.Base/IconThemeUtils.cs: use Banshee.Base.Branding
29556         * src/Banshee.Base/Globals.cs: Initialize Branding class
29558         * src/Banshee.Base/Makefile.am: added Branding.cs
29560 2006-06-19  Aaron Bockover  <aaron@abock.org>
29562         * src/PlayerInterface.cs: Use NamingUtil to create a nice name for
29563         burner source when creating from track selection
29565         * src/Banshee.Base/Utilities.cs: Added new NamingUtil static class 
29566         with GenerateTrackCollectionName and PostfixDuplicate methods; 
29567         GenerateTrackCollectionName is an updated/simplified/fixed version of
29568         PlaylistUtil.GoodUniqueName (BGO #325181)
29570         * src/Banshee.Base/Banshee.Burner/BurnerSource.cs: Do not name source
29571         after the drive name (which is often a bunch of gibberish)
29573         * src/Banshee.Base/Sources/PlaylistSource.cs: Use new NamingUtil 
29574         methods in place of old PlaylistUtil.{GoodUniqueName,PostfixDuplicate}
29576 2006-06-16  Aaron Bockover  <aaron@abock.org>
29578         * src/Banshee.Base/Banshee.Burner/BurnerConfigurationPane.cs: Updated
29579         some strings
29581         * src/Banshee.Widgets/DiscUsageDisplay.cs: Overlay 'Insert Disc' text
29582         when Capacity <= 0 and reduce disc opacity; removed orange slice
29584 2006-06-16  Aaron Bockover  <aaron@abock.org>
29586         * banshee.mdp: Updated MonoDevelop project
29588         * data/banshee.glade: Removed cd burning prefs page
29590         * src/BurnCore.cs:
29591         * src/BurnTransaction.cs:
29592         * src/NautilusBurnUtil.cs: Removed legacy cd burning layer
29594         * src/Makefile.am: Removed above files from build
29596         * src/Preferences.cs: Removed cd burning prefs
29598         * src/Banshee.Base/ActionManager.cs: Moved WriteCDAction out of 
29599         selection group
29600         
29601         * src/PlayerInterface.cs: Make WriteCDAction always sensitive if
29602         active source is BurnerSource; if BurnerSource is active, start the
29603         burn for the source, otherwise create a new BurnerSource or use an
29604         empty one and append selection to new source and start it burning; 
29605         this allows for 'select and burn' behavior of legacy burning layer 
29606         and also gives the opportunity for editing layout before burn as well
29608         * src/Banshee.Base/Banshee.Burner/BurnerConfigurationPane.cs: Removed
29609         Write CD button; using WriteCDAction instead for consistency
29611         * src/Banshee.Base/Banshee.Burner/BurnerCore.cs: Added public
29612         CreateSource and CreateSourceOrFindEmpty methods
29614         * src/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs: Fixed
29615         many strings
29617         * src/Banshee.Base/Banshee.Burner/BurnerSource.cs: Burn method public
29619 2006-06-16  Aaron Bockover  <aaron@abock.org>
29621         * src/Banshee.Widgets/DiscUsageDisplay.cs: New cairo widget to show
29622         disc usage (radial progress bar for the new CD Burning UI)
29624         * src/Banshee.Widgets/Makefile.am: Added DiscUsageDisplay to build
29626         * data/UIManagerLayout.xml: Added 'New CD' action
29628         * data/banshee.glade: Added BurnerOptionsDialog
29630         * src/SourceView.cs: When in edit/rename mode on a source row, cancel
29631         the edit when focus is lost
29633         * src/Banshee.Base/Globals.cs: Initialize new BurnerCore
29635         * src/Banshee.Base/Makefile.am: Added build rules for all the hot
29636         new Banshee.Burner/Banshee.Cdrom* love
29638         * src/Banshee.Base/Banshee.Burner/*: New CD burning UI (source based)
29639         to allow for creation of CDs from multiple sources; will deprecate the
29640         old CD burning method (single-source, selection based)
29642         * src/Banshee.Base/Banshee.Cdrom/*: Interfaces and simple types for 
29643         CD-ROM drive and recorder hardware and events
29645         * src/Banshee.Base/Banshee.Cdrom.Gui/*: Widgets for Banshee.Cdrom; 
29646         includes DriveComboBox and RecorderSpeedComboBox
29648         * src/Banshee.Base/Banshee.Cdrom.Iso/*: Interfaces for creating 
29649         ISO-9660 CD images
29651         * src/Banshee.Base/Banshee.Cdrom.Iso.Mkisofs/*: mkisofs process/exec
29652         implementation of Banshee.Cdrom.Iso
29654         * src/Banshee.Base/Banshee.Cdrom.Nautilus/*: libnautilus-burn
29655         implementation of Banshee.Cdrom
29657 2006-06-13  Gabriel Burt  <gabriel.burt@gmail.com>
29659         * src/Banshee.Dap/MassStorage/MassStorageDap.cs: Remove unneeded checks
29660         that broke .is_audio_player functionality (James Stembridge, BGO #344795)
29662 2006-06-13  Gabriel Burt  <gabriel.burt@gmail.com>
29664         * src/Banshee.Dap/MassStorage/MassStorageDap.cs: If usb.vendor doesn't
29665         exist fall back to info.vendor, and translate "Vendor" (James Stembridge,
29666         BGO #344803).  Use different HAL property to get a better device name.
29668 2006-06-13  Aaron Bockover  <aaron@abock.org>
29670         * src/RemotePlayer.cs: Ensure a null string is not returned (BGO #344774)
29672 2006-06-12  Aaron Bockover  <aaron@abock.org>
29674         * src/Banshee.Base/SourceManager.cs: Proxy Updated events of child
29675         sources through SourceManager.Updated (Denis Washington, BGO #343120)
29677 2006-06-12  Aaron Bockover  <aaron@abock.org>
29679         * src/SourceView.cs: Added BeginRenameSource to make a source's row
29680         become editable and focused; made UpdateRow internal as it's only used
29681         by the row renderer
29683         * src/PlayerInterface.cs: Use SourceView.BeginRenameSource for renaming
29684         instead of a dialog when the source rename action is invoked
29686 2006-06-12  Gabriel Burt  <gabriel.burt@gmail.com>
29688         * src/Banshee.Dap/Ipod/IpodDap.cs:
29689         * src/Banshee.Dap/Njb/NjbDap.cs: Updated to work with changes to Dap.cs,
29690         specifically overriding AddTrack and calling OnTrackAdded.
29692 2006-06-12  James Stembridge  <jstembridge@gmail.com>
29694         * src/Banshee.Base/Dap/DapCore.cs: Include all volumes when performing
29695         initial scan for DAP devices, not just those that are children of
29696         devices tagged by hal with portable_audio_player
29698         * src/Banshee.Dap/MassStorage/MassStorageDap.cs: Check for duplicates
29699         when adding a song to the device; if the volume for a new device isn't 
29700         yet available from VFS, wait for it; don't initialize Gnome VFS if it's 
29701         already been initialized; accept devices with a file .is_audio_player
29702         in the root
29704 2006-06-12  Gabriel Burt  <gabriel.burt@gmail.com>
29706         * src/Banshee.Base/Makefile.am: add QueuedOperationManager.cs.
29708         * src/Banshee.Base/QueuedOperationManager.cs: New file, allows for generic
29709         asynchronous events like copying files to a USB DAP, etc.
29711         * src/Banshee.Base/Dap/Dap.cs: Make the tracks ArrayList protected and
29712         allow sub-classes to override AddTrack.
29714         * src/Banshee.Dap/MassStorage/MassStorageDap.cs: Fix the bug where the DAP
29715         couldn't be plugged in when Banshee started, handle copying files to the
29716         device asynchronously using a QueuedOperationManager that pops up a
29717         ActiveUserEvent if the transfer is slow.  Escape artist/album/title when
29718         creating the destination filename.  Catch exceptions in the copy.
29720         * src/Banshee.Widets/ActiveUserEvent.cs: Add an option for having the user
29721         event not register itself (and therefore not show itself) until at least a
29722         second has passed, at which time if the operation is less than 33% done,
29723         it is registered and shown (and otherwise it is not).
29725 2006-06-05  Aaron Bockover  <aaron@abock.org>
29727         * configure.ac: Fixed Helix detection; no longer require --disable-helix
29728         to be passed; will be enabled/disabled automatically
29730 2006-06-05  Aaron Bockover  <aaron@abock.org>
29732         * src/Banshee.Base/Makefile.am: Removed ENABLE_GST_10 define 
29734         * src/Banshee.Base/AudioCdRipper.cs: Removed GStreamer 0.8 code and
29735         dependency on GSTREAMER_0_10; overlooked from previous commit 
29737 2006-06-03  Aaron Bockover  <aaron@abock.org>
29739         * src/PlayerInterface.cs: start playing a source when it is double
29740         clicked in the source view (Przemysław Grzegorczyk, BGO #326634); 
29741         delay updating status bar to only once every 1/5 second (Ruben
29742         Vermeersch, BGO #336001)
29744         * src/Banshee.Dap/MassStorage/MassStorageDap.cs: escape file names 
29745         of added tracks properly; do not use volume label from storage 
29746         device if it is empty (James Stembridge, BGO #337807, #337808)
29748         * src/Banshee.Plugins/NotificationAreaIcon/NotificationAreaIconPlugin.cs:
29749         Use Present() instead of Visible when showing/hiding the main window 
29750         by clicking the tray icon (Przemysław Grzegorczyk, BGO #328949)
29752         * src/Banshee.Base/LogCore.cs: LogCore.PushInformation actually
29753         called LogCore.PushWarning (Bertrand Lorentz, BGO #335706)
29755         * src/PlaylistModel.cs: Delay raising the updated event to increase
29756         speed a little (Ruben Vermeersch, BGO #336010)
29758         * src/Banshee.Base/ImportManager.cs: Use a static mutex to do handle 
29759         user event locking to prevent a potential race condition (based on 
29760         patch by Ed Catmur, BGO #331974)
29761         
29762 2006-06-03  Aaron Bockover  <aaron@abock.org>
29764         * src/SourceView.cs: Allow drag drops if source AcceptsInput
29766         * src/Banshee.Base/Source.cs: Added AcceptsInput property
29768 2006-06-03  Aaron Bockover  <aaron@abock.org>
29770         * libbanshee/: Removed all GStreamer 0.8 backend library code
29772         * configure.ac: Removed GStreamer 0.8 checks and VLC checks; only 
29773         GStreamer 0.10 and Helix (helix-dbus-server) are supported engines now
29775         * src/Banshee.Base/GstTranscoder.cs:
29776         * src/Banshee.MediaEngine/Gstreamer/GstPlayerEngine.cs: Removed 
29777         GStreamer 0.8 support
29779         * src/Banshee.MediaEngine/Gstreamer/Makefile.am: Removed conditional 
29780         define for GStreamer 0.10
29782         * src/Banshee.MediaEngine/Vlc/: Removed VLC support
29784 2006-05-29  Aaron Bockover  <aaron@abock.org>
29786         * src/BurnCore.cs: Calculate the total duration of the selection and 
29787         ensure the media is large enough to hold it; all strings were reused
29788         and it will prompt to insert media before transcoding in order to
29789         check its size (BNC #151332)
29791 2006-05-29  Aaron Bockover  <aaron@abock.org>
29793         * libbanshee/gst-cd-rip-0.10.c: Added id3v2mux to list of tag muxers to
29794         search for when encoding to MP3 and no muxer was specified
29796         * src/banshee.in: Set GST_PLUGIN_PATH to $(libdir)/banshee/gstreamer-0.10
29797         to support loading private plugins (gstxing, gstdtdriver on SUSE/SLED)
29799         * banshee.mds:
29800         * banshee.mdp: Updated MonoDevelop project
29802 2006-05-25  Aaron Bockover  <aaron@abock.org>
29804         * configure.ac: 
29805         * src/Banshee.Plugins/Makefile.am: 
29806         * src/Banshee.Plugins/FileSystemMonitor/*: Removed FSM plugin; it is
29807         unmaintained and very buggy; it will be imported as a standalone plugin
29808         module to Banshee Subversion where someone may choose to continue 
29809         working on it
29811 2006-05-24  Aaron Bockover  <aaron@abock.org>
29813         * src/PlayerInterface.cs (OnRestartSongAction): If pipeline is paused, 
29814         play the song from the beginning
29816 2006-05-23  Aaron Bockover  <aaron@abock.org>
29818         * src/PlayerInterface.cs: When right clicking on a source, use the
29819         custom source menu if it provides one, otherwise use the default
29821         * src/Banshee.Base/Source.cs: new property, ActionPath that allows
29822         sources to provide a path to a UI merged into Globals.ActionManager
29824         * src/Banshee.Base/Sources/LibrarySource.cs: Implement ActionPath and
29825         provide a UI for setting the sort order on playlists in the view
29827         * src/Banshee.Base/Sources/PlaylistSource.cs: Allow specifying a 
29828         PlaylistSortCriteria and a PlaylistSortOrder when loading the playlists
29830 2006-05-22  Aaron Bockover  <aaron@abock.org>
29832         * banshee.mdp: Added new files to MonoDevelop project
29834         * src/Banshee.Base/Catalog.cs: Added new Catalog class under Mono.Gettext
29835         namespace (for now) to hopefully (in time) replace Mono.Unix.Catalog; 
29836         this new version supports gettext domains (necessary for plugins) and
29837         binds gettext domains to assemblies; current draw-back is that calling
29838         System.Reflection.Assembly.GetCallingAssembly does a stack walk and is
29839         therefore slow (Mono.Gettext.Catalog.GetString is about twice as slow
29840         as Mono.Unix.Catalog.GetString right now)
29842         * src/Banshee.Base/Makefile.am: Added Catalog.cs
29844 2006-05-22  Aaron Bockover  <aaron@abock.org>
29846         Child Source patch from Lukas Lipka <lukas@pmad.net>
29848         * src/Makefile.am: Fixed small build bug regarding CLEANFILES (Aaron)
29850         * src/Banshee.Base/Makefile.am: Add ChildSource.cs to build.
29851         
29852         * src/Banshee.Base/ChildSource.cs: Child source implementation added.
29854         * src/Banshee.Base/Library.cs: Removed unneeded Hashtable.
29856         * src/Banshee.Base/Source.cs: Add code and events for child source support.
29858         * src/Banshee.Base/SourceManager.cs: Remove ActiveSourceIndex since it wont
29859         work with child sources.
29861         * src/Banshee.Base/Sources/LibrarySource.cs: Moved the loading of playlists
29862         here instead of PlayerInterface.
29864         * src/Banshee.Base/Sources/PlaylistSource.cs: Change this to work as a
29865         ChildSource instead of a Source.
29866         
29867         * src/PlayerInterface.cs: Add playlists as child sources. Move the loading
29868         of playlists into LibrarySource.
29870         * src/SourceView.cs: Implement child source support. Rewrite the DND code
29871         to support dragging from child source to child source.  
29872         
29873 2006-05-22  Aaron Bockover  <aaron@abock.org>
29875         Fixes ported up from BANSHEE_0_10_9_SL:
29877         * src/Banshee.Base/PlayerEngineCore.cs (set_Volume): pass on value
29878         to every loaded engine, not just active engine (BNC #176255)
29880         * src/Main.cs: Call dbus_g_thread_init after Gtk.Application.Init();
29881         fixes the CD burning crash seen on SMP machines (BNC #175378)
29883         * src/PlaylistView.cs: Use a custom IComparer to sort columns by desired
29884         order before attaching to view; use AppendColumn on sorted columns instead
29885         of InsertColumn (BNC #120666)
29887         * src/Banshee.Base/Database.cs: Added ViewOrder column to PlaylistEntries
29888         table schema; check to see if ViewOrder exists on an existing 
29889         PlaylistEntries table and if not, alter the table accordingly (BNC #168653)
29891         * src/Banshee.Base/Sources/PlaylistSource.cs: No longer sync local 
29892         playlist back to database after every minor change; operations are now
29893         directly translated into SQL queries (append, delete, reorder) to bring
29894         great speed improvements when handling large playlists (BNC #168653)
29896         * src/PlayerInterface.cs: Reset vertical scroll adjustment of the 
29897         playlist view to the upper bound minus the page size if the value is
29898         greater than that when changing sources (BNC #174406)
29900 2006-05-18  Aaron Bockover  <aaron@abock.org>
29902         * src/BansheeImport.cs: a new standalone program that can import music
29903         from the command line and create an initial database
29905         * src/banshee-import.in: wrapper script for banshee-import.exe
29907         * src/Makefile.am: build banshee-import.exe and install
29909         * configure.ac: generate src/banshee-import
29911 2006-05-13  Aaron Bockover  <aaron@abock.org>
29913         * banshee.mdp: Updated MonoDevelop project
29915         * libbanshee/gst-tagger.c: 
29916         * libbanshee/gst-tagger.h: Merged full GStreamer tag parser 
29918         * src/Banshee.Base/GstTagger.cs: Added bindings to the new GstTagger API
29920         * src/Banshee.Base/LibraryTrackInfo.cs: Use GstTagger instead of Entagged
29921         to parse metadata from files
29923         * src/Banshee.Base/StreamTagger.cs: Updated TrackInfoMerge to merge
29924         all applicable tags from a StreamTag into a TrackInfo; added StreamType
29925         to CommonTags
29927         * src/Banshee.Base/TrackInfo.cs (set_MimeType): made public
29929 2006-05-10  Aaron Bockover  <aaron@abock.org>
29931         * libbanshee/gst-mbtrm.c:
29932         * libbanshee/gst-mbtrm.h: New GStreamer plugin to calculate the TRM ID
29933         of a PCM audio stream; currently a static plugin in libbanshee
29935         * libbanshee/gst-misc-0.10.c: Load the static mbtrm plugin
29937         * libbanshee/gst-cd-rip-0.10.c: Use mbtrm in the pipeline; currently
29938         the have-trm-id signal is used only to print the TRM ID; will be used
29939         in the future to actually fetch metadata if necessary
29941         * libbanshee/Makefile.am: Added gst-mbtrm.[ch]
29943 2006-05-09  Aaron Bockover  <aaron@abock.org>
29945         * configure.ac: Switch to gmcs
29947         * src/BurnCore.cs:
29948         * src/PlaylistColumns.cs:
29949         * src/PlayerInferface.cs: Removed unused private variables; clean up
29951         * src/QueryBuilder.cs:
29952         * src/QueryBuilderModel.cs: Removed; never has been used in core and is
29953         now in use in the Smart Playlist plugins
29955         * src/Makefile.am: Removed QueryBuilder.cs and QueryBuilderModel.cs
29957 2006-05-08  Aaron Bockover  <aaron@abock.org>
29959         * docs/Makefile.am: Prefix doc_DATA with $(DESTDIR) so distcheck works
29961 2006-05-07  Aaron Bockover  <aaron@abock.org>
29963         * src/Banshee.MediaEngine/Gstreamer/GstPlayerEngine.cs: Added explicit
29964         support for ogg/vorbis to keep the vorbis leak in Helix from happening
29966         * src/Banshee.Widgets/HigMessageDialog.cs: Make 'Return' the default
29967         dialog action key (BNC #172450, Robert Vojta)
29969         * src/Banshee.Base/LibraryTrackInfo.cs: Add Path.DirectorySeparatorChar
29970         to 'StartsWith' check to determine if files should be copied, otherwise
29971         'Music to import' will be treated as 'Music' (BNC #171101 Robert Vojta)
29973         * src/Banshee.Base/FileTrackInfo.cs: properly load files in shallow 
29974         directories from command line (BNC #163911, Simon Brys)
29976 2006-05-06  Aaron Bockover  <aaron@abock.org>
29978         Patches from Mike Urbanski
29980         * src/PlayerInterface.cs: Added an additional action button box for
29981         toolbar source items; do not steal CTRL+A from search entry (revised)
29983         * src/Banshee.Base/Globals.cs: expose ActionButtonBox
29985 2006-05-05  Aaron Bockover  <aaron@abock.org>
29987         * docs/en/*: Updated docs (including contributions from rubenv)
29989 2006-05-04  Aaron Bockover  <aaron@abock.org>
29991         * configure.ac: Set version to 0.11.0-cvs to set apart from the
29992         0.10.x series
29994         * banshee.pc.in: Added pluginapi variable to define the second 
29995         API revision for the 0.11.x series (new API has been introduced since
29996         0.10.x and some plugins may not be backwards compatible)
29998 2006-05-04  Aaron Bockover  <aaron@abock.org>
30000         * src/AboutBox.cs: Added missing comma / fix broken build
30002 2006-05-04  Jakub Friedl  <jfriedl@suse.cz>
30004         * src/AboutBox.cs: Added Jakub Friedl to Translator Credits (Czech)
30006 2006-05-03  Aaron Bockover  <aaron@abock.org>
30008         * src/Banshee.MediaEngine/Vlc/VlcPlayerEngine.cs: 
30009         fix build error for VLC engine (BGO #340496) 
30011 2006-05-02  Aaron Bockover  <aaron@abock.org>
30013         * entagged-sharp/Ogg/OggFileReader.cs: Added application/x-vorbis+ogg
30014         and application/x-vorbis+ogg as a SupportedMimeType (BNC #169616)
30016 2006-05-01  Gabriel Burt  <gabriel.burt@gmail.com>
30018         * src/Banshee.Base/LibraryTrackInfo.cs: Call TrackInfo's OnChanged when
30019         saving changes to a Track.
30021         * src/Banshee.Base/TrackInfo.cs: Add event and protected virtual method
30022         OnChanged for when a track is changed.
30024         * src/Banshee.Base/Sources/PlaylistSource.cs: Add Id property, and
30025         public ClearTracks and ContainsTrack methods.
30027 2006-05-01  Gabriel Burt  <gabriel.burt@gmail.com>
30029         * src/Banshee.Base/Dap/DapCore.cs: Fix small bugs that caused iPods to
30030         sometimes show up as mass storage devices (BGO #340313).
30032 2006-05-01  Aaron Bockover  <aaron@abock.org>
30034         Fix a locking bug that caused crashes (BGO #340306)
30036         * src/Banshee.Base/Source.cs: Added virtual TracksMutex object that
30037         can be used to properly lock the Tracks collection
30039         * src/PlayerInterface.cs:
30040         * src/PlaylistModel.cs: lock SourceManager.ActiveSource.TracksMutex
30041         when performing operations on SourceManager.ActiveSource.Tracks
30042         
30043         * src/Banshee.Base/Sources/LibrarySource.cs:
30044         * src/Banshee.Base/Sources/PlaylistSource.cs: implement TracksMutext
30045         by inlining the internal collection SyncRoot mutex and locking when
30046         necessary
30048 2006-04-20  Aaron Bockover  <aaron@abock.org>
30050         * src/Banshee.MediaEngine/Helix/HelixRemotePlayer.cs: Added GetIsLive
30052         * src/Banshee.MediaEngine/Helix/HelixRemotePlayerEngine.cs: Added 
30053         http support to SourceCapabilities, added more RealPlayer-specific 
30054         file formats to ExplicitDecoderCapabilities; implemented CanSeek by
30055         calling GetIsLive on the remote player; properly handle buffering 
30056         and title messages
30058 2006-04-17  Aaron Bockover  <aaron@abock.org>
30060         * banshee.mdp: Updated MonoDevelop project
30062         * configure.ac: Check for gmcs, will probably start using it soon
30064         * data/banshee.schemas.in: Added schema for IOBackend
30066         * src/Banshee.Base/GConfKeys.cs: Added IOBackend
30068         * src/Banshee.Base/ImportManager.cs: Use Banshee.IO.IOProxy for reading
30069         files/directories
30071         * src/Banshee.Base/Makefile.am: Added Banshee.IO files
30073         * src/Banshee.Base/IO/IOProxy.cs: Loads IO types and instantiates proper
30074         backend based on IOBackend gconf key; provides File and Directory
30075         properties
30077         * src/Banshee.Base/IO/Interfaces.cs: Provides IIOConfig, IFile, and 
30078         IDirectory interfaces for writing new IO backends
30080         * src/Banshee.Base/IO/SystemIO.cs: IO backend implementations based
30081         on the .NET System.IO namespace (exists for Win32 porting... one day, 
30082         but of course works fine on Linux too)
30084         * src/Banshee.Base/IO/Unix.cs: IO backend implementations based on
30085         Mono.Unix (preferred backend for Unix/Linux as it's faster and 
30086         potentially more accurate than System.IO)
30088 2006-04-17  Aaron Bockover  <aaron@abock.org>
30090         * configure.ac: Require njb-sharp 0.3.0+
30092         * src/Banshee.Base/Dap/Dap.cs: Added virtual Activate method (see below);
30093         handle failure case if a track queued for a sync is null for some reason;
30094         if the transcoder handles its own threading and the finished event is
30095         raised from the main thread, spawn a new thread for the synchronize (the
30096         gst 0.10 transcoder does threading internally so we cannot guarantee a 
30097         dedicated thread from the transcoder to do syncing in)
30099         * src/Banshee.Base/Sources/DapSource.cs: Added Activate method that
30100         calls Activate on the device; needed for NJB devices which cannot remain
30101         open for the entire session and must be accessed on demand
30103         * src/Banshee.Dap/Njb/Makefile.am: Link against Mono.Posix for 
30104         Catalog.GetString support
30106         * src/Banshee.Dap/Njb/NjbDap.cs: Delay device activation (open+capture)
30107         until direct access to device is necessary; close the device when 
30108         access is no longer necessary; ping every 5 minutes to keep device from
30109         shutting down, but to allow the handle to be closed most of the time;
30110         show an error dialog and do not crash if there is a problem grabbing a
30111         a handle to the device; wrap all access calls in GrabDevice/ReleaseDevice
30112         to properly reference and perform operations on the device; update the
30113         icon name to the proper icon spec name
30115 2006-04-17  Aaron Bockover  <aaron@abock.org>
30117         * entagged-sharp/Mp4/Mp4FileReader.cs: Added audio/mp4, audio/m4a mime
30118         types to SupportedMimeTypes (BGO #338777)
30120 2006-04-14  Aaron Bockover  <aaron@abock.org>
30122         * configure.ac: Make description of --enable-gstreamer more informative
30124 2006-04-17  Aaron Bockover  <aaron@abock.org>
30126         * src/DragDrop.cs: Check data length before trying to convert to string
30127         and catch any exceptions in the conversion (BGO #333946)
30129         * src/Banshee.Dap/Njb/NjbDapTrackInfo.cs: Use SafeUri 
30131 2006-04-14  Aaron Bockover  <aaron@abock.org>
30133         * docs/en/index.html: Added title/remarks and copyright information
30135 2006-04-14  Aaron Bockover  <aaron@abock.org>
30137         * docs/Makefile.am: Added update-html and upload-html rules
30139 2006-04-14  Aaron Bockover  <aaron@abock.org>
30141         * docs/Makefile.am: added update-cvs section with a script to manage 
30142         XML removes/adds from/to CVS
30143         
30144         * docs/*: Updated monodoc documentation (finally)
30146 2006-04-14  Sebastian Dröge  <slomo@ubuntu.com>
30148         * src/MusicBrainz/Client.cs (GetID): Check for null/handle any exception
30150 2006-04-14  Aaron Bockover  <aaron@abock.org>
30152         * rc/Banshee.Plugins/NotificationAreaIcon/NotificationAreaIconPlugin.cs:
30153         Hide to the tray on CTRL+W (Ruben Vermeersch, BGO #338259)
30155 2006-04-14  Aaron Bockover  <aaron@abock.org>
30157         * src/PlayerInterface.cs: Correctly update the statusbar when searching by
30158         calling ClearModel on playlist view (Ruben Vermeersch, BGO #336006)
30160         * src/PlaylistView.cs: Show zeros as empty strings instead of ugly 
30161         zeros (Thijs Vermeir, BGO #337962)
30163         * docs/en/Banshee.Base/ActionManager.xml: Updated
30165 2006-04-10  Aaron Bockover  <aaron@abock.org>
30167         * src/PlayerInterface.cs: Call model.RemoveTrack instead of model.Remove 
30168         
30169         * src/PlaylistModel.cs (RemoveTrack): If the removed iter is the playing
30170         iter, set the playing iter to zero (BGO #324768)
30172 2006-04-09  Aaron Bockover  <aaron@abock.org>
30174         * src/Banshee.Dap/MassStorage/Makefile.am: Enable installation of the
30175         USB Generic Mass Storage DAP support; do not expect it to work without
30176         the proper HAL FDI updates
30178 2006-04-09  Aaron Bockover  <aaron@abock.org>
30180         * configure.ac: Removed --with-gstreamer-0-10 in favor of 
30181         --enable-gstreamer=[0.10|0.8], the default check is now for 0.10
30183 2006-04-09  Sebastian Dröge  <slomo@ubuntu.com>
30185         * configure.ac:
30186         * po/LINGUAS: Use a LINGUAS file instead of putting all languages 
30187         into configure.ac.  http://live.gnome.org/GnomeGoals/PoLinguas
30189 2006-04-09  Aaron Bockover  <aaron@abock.org>
30191         * banshee.mdp: Updated MonoDevelop project
30193         * src/Banshee.Base/SafeUri.cs: Replacement URI class for System.Uri that
30194         uses GLib's g_filename_to_uri and g_filename_from_uri functions; should
30195         fixes lots of various URI issues
30197         * src/*: Anything that referenced a System.Uri has been uprooted to
30198         use a Banshee.Base.SafeUri
30200 2006-04-09  Aaron Bockover  <aaron@abock.org>
30202         * entagged-sharp/Mpc/Util/MpcInfoReader.cs:
30203         * src/TrackProperties.cs: Fix 0 KB/Sec bitrate bug (#324353)
30205 2006-04-07  Aaron Bockover  <aaron@abock.org>
30207         * src/Banshee.Plugins/NotificationAreaIcon/NotificationArea.cs: Do not
30208         crash when the panel crashes
30210 2006-04-06  Aaron Bockover  <aaron@abock.org>
30212         * src/:
30213         * libbanshee/:
30214         * data/banshee.glade: merged fixes from BANSHEE_0_10_9_SL branch
30216 2006-04-05  Aaron Bockover  <aaron@abock.org>
30218         * data/banshee.glade: Fixed packing in ErrorListDialog
30220 2006-04-05  Aaron Bockover  <aaron@abock.org>
30222         * libbanshee/gst-playback-0.10.c: do not try to unref playbin if it was
30223         never reffed
30225         * src/PlaylistView.cs: do not show the same file as playing multiple times
30227         * src/Banshee.Base/Utilities.cs: Updated (C) header
30229 2006-04-05  Aaron Bockover  <aaron@abock.org>
30231         * libbanshee/gst-misc-0.10.c: disable gstreamer typefinding (again) (sigh)
30233 2006-04-05  Aaron Bockover  <aaron@abock.org>
30235         * data/banshee.glade: make horizontal scrolling automatic
30237         * src/BurnCore.cs: do not try to burn files that don't exist and 
30238         do not allow burning if not enough disk space
30240         * src/Banshee.Base/BatchTranscoder.cs: Move the instantiation of 
30241         ActiveUserEvent to Start()
30243         * src/Banshee.Base/Utilities.cs: Added GetDirectoryAvailableSpace to
30244         PathUtil
30246 2006-04-04  Aaron Bockover  <aaron@abock.org>
30248         * banshee.mdp: Updated MonoDevelop project
30250         * data/banshee.glade: Added ErrorListDialog
30252         * libbanshee/gst-transcode-0.10.c: strdup the output URI and and free
30253         when necessary
30255         * src/BurnCore.cs: show an ErrorListDialog for files that cannot be
30256         transcoded, giving an option to cancel or continue; various fixes for
30257         MP3 and data disk burning
30259         * src/PlayerInterface.cs: fix to respect the disk type for burning
30261         * src/Preferences.cs: use only a single gconf key for disk type
30263         * src/Banshee.Base/BatchTranscoder.cs: do not try to transcode a file
30264         if the file type is the requested transcode type
30266         * src/Banshee.Base/GstTranscoder.cs: Free the input/output URIs
30268         * src/Banshee.Base/Makefile.am: Added ErrorListDialog.cs
30270         * src/Banshee.Base/Gui/ErrorListDialog.cs: ErrorListDialog glade 
30271         implementation; shows a HIG error dialog with a list view
30273 2006-04-04  Aaron Bockover  <aaron@abock.org>
30275         * src/Banshee.Plugins/Daap/Daap.dll.config.in: map to libnss_mdns-0.2.so
30277         * src/Banshee.Plugins/Daap/daap-sharp/Server.cs: handle exception when
30278         trying to shutdown the service locator
30280 2006-04-03  Aaron Bockover  <aaron@abock.org>
30282         * src/PlayerInterface.cs: Remove tooltip from slider (BNC #158403)
30284         * src/Banshee.Base/GstMisc.cs: check for NULL from the string marshaller
30286 2006-04-01  Aaron Bockover  <aaron@abock.org>
30288         * src/Banshee.MediaEngine/Gstreamer/GstPlayerEngine.cs: Claim explicit
30289         support for ASF and FLAC
30291 2006-03-31  Aaron Bockover  <aaron@abock.org>
30293         * configure.ac: Added expanded_bindir
30295         * data/org.gnome.Banshee.service.in: Prefix Exec path with 
30296         @expanded_bindir@ to make DBus activation work
30298 2006-03-31  Aaron Bockover  <aaron@abock.org>
30300         * src/Banshee.MediaEngine/Helix/HelixRemotePlayer.c: Properly activate
30301         the org.gnome.HelixDbusPlayer service using DBus activation through
30302         org.freedesktop.DBus.StartServiceByName() (Thanks Timo, fixes #161682)
30304 2006-03-31  Aaron Bockover  <aaron@abock.org>
30306         * libbanshee/gst-cd-rip-0.10.c: Add a proper ID3 muxer in to the pipeline
30307         if it didn't already exist and one can be found, similar to the 
30308         oggmux injection
30310 2006-03-30  Aaron Bockover  <aaron@abock.org>
30312         * libbanshee/gst-misc-0.10.c: Fix from Sebastian Dröge for gstreamer
30313         typefinding; re-enabled
30315         * libbanshee/gst-playback-0.10.c: Reset pipeline on an error so we can
30316         try again later
30318         * src/Banshee.Base/PlayerEngineCore.cs: 
30319         * src/Banshee.Base/MediaEngine/PlayerEngine.cs: Support explicit switching
30320         based on supported decoders
30322         * src/Banshee.MediaEngine/Gstreamer/GstPlayerEngine.cs: Explicitly 
30323         declare WMA support, as it's impossible for Helix to ever do this
30325         * src/Banshee.MediaEngine/Helix/HelixRemotePlayer.cs: if DBus activation
30326         fails, manually run helix-dbus-server and try up to 15 times at 
30327         half-second intervals to connect to it before giving up (Option B fix 
30328         for BNC #161682)
30330         * src/Banshee.MediaEngine/Helix/HelixRemotePlayerEngine.cs: Ping the
30331         server every five seconds; if Banshee does not shut down properly, 
30332         the server will shutdown if not pinged within 10 seconds; Added
30333         explicit decoder support for AAC and MP3
30335 2006-03-30  Hendrik Richter  <hendrikr@gnome.org>
30337         * configure.ac: Added German translation.
30339 2006-03-28  Fredrik Hedberg  <fredrik@avafan.com>
30341         * data/UIManagerLayout.xml: Added a placeholder for ViewMenu additions.
30343 2006-03-27  Fredrik Hedberg  <fredrik@avafan.com>
30345         * src/Banshee.Base/Globals.cs: 
30346         * src/PlayerInterface.cs: Expose MainContainer via InterfaceElements.
30348 2006-03-24  Christian Schaller  <christian@fluendo.com>
30350         * src/Banshee.MediaEngine/Helix/Makefile.am: small fix to enable
30351           'make dist' even when --disable-helix is passed
30353 2006-03-21  James Willcox  <snorp@snorp.net>
30355         * src/Banshee.Base/Sources/DapSource.cs: when creating the 'syncing'
30356         widget, do a ShowAll() on it.
30358 2006-03-21  Aaron Bockover  <aaron@abock.org>
30360         * src/PlayerInterface.cs: Prefer the stream length over the metadata
30361         length in all situations, provided the stream length is non-zero
30363         * src/Banshee.Base/PlayerEngineCore.cs: Fixed automatic engine switching
30364         based on source type, handle any exceptions thrown by active engine
30365         and reset the engine
30367         * src/Banshee.MediaEngine/Gstreamer/GstPlayerEngine.cs:
30368         * src/Banshee.MediaEngine/Helix/HelixRemotePlayerEngine.cs:
30369         * src/Banshee.Base/MediaEngine/PlayerEngine.cs: make SourceCapabilities
30370         IEnumerable
30372         * src/Banshee.MediaEngine/Helix/HelixRemotePlayerEngine.cs: Removed
30373         http as a supported source capability as HTTP under Helix is broken
30375 2006-03-20  Aaron Bockover  <aaron@abock.org>
30377         * libbanshee/gst-cd-rip-0.10.c: If vorbisenc is chosen as the encoder
30378         for ripping and an oggmux is not in the pipeline profile, attempt to
30379         insert an oggmux element (BGO #335211)
30381 2006-03-20  Aaron Bockover  <aaron@abock.org>
30383         * NEWS: Updated with 0.10.9 release notes
30385         * configure.ac: Bumped to 0.10.9
30387         * libbanshee/gst-misc-0.10.c: disabled typefinding with gstreamer 0.10
30388         as it's a little buggy; will fall back on gnome vfs for now
30390         * src/PlayerInterface.cs: Do not switch sources if a source eject fails
30392         * src/Banshee.Base/AudioCd/AudioCdDisk.cs: Do not allow ejecting if
30393         we are ripping the CD
30394         
30395         * src/Banshee.Base/Sources/AudioCdSource.cs: Propagate the return of
30396         the disk eject
30398 2006-03-20  Sebastian Dröge  <slomo@ubuntu.com>
30400         * src/MusicBrainz/Client.cs: Reverted a small part of Michael
30401         Hutchinson's proxy patch in GetIDFromUrl() to fix a bug in parsing
30402         of Urls which resulted in returning of a invalid result type.
30404 2006-03-20  Aaron Bockover  <aaron@abock.org>
30406         * src/PlaylistView.cs: Sensitize/desensitize audio cd rows based on
30407         their rip state
30409         * src/Banshee.Base/AudioCdRipper.cs: Update newly ripped track with
30410         its ripped URI so it can be played while the rest of the disk is
30411         ripping
30413         * src/Banshee.Base/Library.cs: Removed unused function
30415         * src/Banshee.Base/PlayerEngineCore.cs: Do not attempt to play track
30416         if it is explicitly marked as being unable to play; reversed order of
30417         Reset/Close in Close wrapper
30419         * src/Banshee.Base/TrackInfo.cs: Mark CanPlay as virtual
30421         * src/Banshee.Base/TrackInfoHeader.cs (SetIdle): Hide the box
30423         * src/Banshee.Base/AudioCd/AudioCdDisk.cs: Added an IsRipping property
30425         * src/Banshee.Base/AudioCd/AudioCdTrackInfo.cs: Added Disk, IsRipped, and
30426         CanPlay properties
30428         * src/Banshee.Base/Sources/AudioCdSource.cs: If current playing track
30429         in the engine is from the CD, shut down the engine; set disk.IsRipping
30430         accordingly 
30432         * src/Banshee.Base/Sources/LibrarySource.cs: Removed old cruft 
30434         * src/Banshee.MediaEngine/Helix/HelixRemotePlayerEngine.cs: Updated
30435         to reflect minor changes in the Buffering API in PlayerEngine
30437         * src/Banshee.Plugins/NotificationAreaIcon/NotificationAreaIconPlugin.cs:
30438         Guard against a potential nullref 
30440 2006-03-19  Aaron Bockover  <aaron@abock.org>
30442         * entagged-sharp/EncodingInfo.cs: Handle invalid integer durations
30444         * src/PlayerInterface.cs: Moved the audio-CD specific view and ripping
30445         stuff into AudioCdSource; do not treat the LibrarySource as anything
30446         special; it now handles track additions like any good source should
30448         * src/Banshee.Base/Sources/AudioCdSource.cs: Handle ripping directly in
30449         the source; create a custom view to handle the audio CD status bar
30450         and embed the playlist view
30452         * src/Banshee.Base/Sources/LibrarySource.cs: Raise the proper
30453         OnTrackAdded/OnTrackRemoved events
30455         * src/Banshee.Base/AudioCd/AudioCdDisk.cs: Make Tracks property 
30456         IEnumerable
30458 2006-03-19  Aaron Bockover  <aaron@abock.org>
30460         * data/UIManagerLayout.xml: Added RefreshSong 
30462         * src/PlayerInterface.cs: When an entry in the main window is focused,
30463         disable the accel group from the main window, when not focused, re-enable
30464         it; handle skipping and song restarting in the ActionManager; playback
30465         seek group is now sensitive based on the engine state
30467         * src/Banshee.Base/ActionManager.cs: Added key bindings to more playback
30468         actions, added RestartSongAction
30470 2006-03-19  Aaron Bockover  <aaron@abock.org>
30472         * src/PlayerInterface.cs (ShowPlaylistView): Detach the playlist container
30473         before re-embedding it in the main view, in case the previous source
30474         has embedded it
30476         * src/Banshee.Base/Globals.cs: Added PlaylistContainer and 
30477         DetatchPlaylistContainer utilities for sources to use to help 
30478         embedding the PlaylistView in a custom view
30480 2006-03-19  Aaron Bockover  <aaron@abock.org>
30482         * src/Banshee.Base/Gui/SeekDialog.cs: Implement the glade SeekDialog; 
30483         forgot to commit last time
30485 2006-03-19  Aaron Bockover  <aaron@abock.org>
30487         * banshee.mdp: Updated MonoDevelop project
30489         * src/PlayerInterface.cs: Handle SeekToAction and show the new seek dialog
30491         * src/Banshee.Base/ActionManager.cs: Implement an action for SeekToAction
30493         * src/Banshee.Base/Makefile.am: Added Gui/SeekDialog.cs
30495         * src/Banshee.Base/Gui/OpenLocationDialog.cs: Fixed typo in header
30497         * src/Banshee.Widgets/StreamPositionLabel.cs: Added FormatString parameter
30499         * data/UIManagerLayout.xml: Added SeekToAction to playback menu
30501         * data/banshee.glade: Added SeekDialog
30503 2006-03-18  Aaron Bockover  <aaron@abock.org>
30505         * src/Banshee.Plugins/NotificationAreaIcon/NotificationAreaIconPlugin.cs:
30506         Use DisplayArtist, DisplayAlbum, and DisplayTitle for setting the 
30507         display data in TrackInfoHeader
30509 2006-03-17  Aaron Bockover  <aaron@abock.org>
30511         * libbanshee/gst-playback-0.10.c: Create a custom audio sink that contains
30512         a tee element; plugins can request and connect to new source pads from
30513         the tee to stream audio to elements in their control without breaking
30514         the normal flow of data to the sound card
30516         * src/Banshee.MediaEngine/Gstreamer/GstPlayerEngine.cs: Implement 
30517         PlayerEngine.GetBaseElements and return an IntPtr array containing the
30518         playbin, audiotee, and audiobin elements plugins can use to extend the
30519         pipeline
30521         * src/Banshee.Base/MediaEngine/PlayerEngine.cs: Removed SetProperty; 
30522         added GetBaseElements that returns an IntPtr array
30524 2006-03-17  Aaron Bockover  <aaron@abock.org>
30526         * src/Banshee.Base/AudioCd/AudioCdDisk.cs (Eject): Stop playback if 
30527         the playing stream is a track on the disk that is about to be ejected
30529         * libbanshee/gst-playback-0.10.c (gst_playback_open): Reset the pipeline
30530         to READY state if not already there
30532 2006-03-17  Aaron Bockover  <aaron@abock.org>
30534         * libbanshee/gst-playback-0.10.c: Perform a manual seek on an audio CD
30535         if the current playing stream is from the same CD; this eliminates the
30536         need to set uri on playbin, so the pipeline does not need to re-link
30537         and the CDDA device does not need to be closed and opened again
30539 2006-03-16  Aaron Bockover  <aaron@abock.org>
30541         * configure.ac: Do an explicit -x test for gst-inspect before running
30542         an element check
30544 2006-03-16  Aaron Bockover  <aaron@abock.org>
30546         * banshee.mdp: Updated MonoDevelop project
30548         * libbanshee/Makefile.am: Added gst-tagger.[ch]
30550         * libbanshee/gst-playback-0.10.c: Support parsing tags from incoming
30551         audio stream and send off to consuming API
30553         * libbanshee/gst-tagger.c:
30554         * libbanshee/gst-tagger.h: Common API for handling tag reading/writing
30555         from GStreamer audio streams
30557         * src/PlayerInterface.cs: Update the metadata header when the
30558         PlayerEngineEvent.TrackInfoUpdated event is raised
30560         * src/TrackProperties.cs:
30561         * src/Banshee.Base/Globals.cs:
30562         * src/Banshee.Base/GstMisc.cs:
30563         * src/Banshee.Base/LibraryTrackInfo.cs:
30564         * src/Banshee.Base/PipelineProfile.cs: Updated to reflect namespace
30565         change for some GStreamer Utility methods
30567         * src/Banshee.Base/GstTagger.cs: Parse GStreamer tags into StreamTag 
30568         instances
30570         * src/Banshee.Base/StreamTagger.cs: Common data structure for representing
30571         a single metadata tag; method for merging these into TrackInfo objects;
30572         added class with constant tag names (1:1 GStreamer correlation)
30574         * src/Banshee.Base/MediaEngine/PlayerEngine.cs: Update playing TrackInfo
30575         with tags that are read from the audio stream
30577         * src/Banshee.MediaEngine/Gstreamer/GstPlayerEngine.cs: Added bindings
30578         for the stream tag reading support
30580 2006-03-16  Aaron Bockover  <aaron@abock.org>
30582         * libbanshee/gst-playback-0.10.c: Parse device node from cdda:// URI
30583         and set it on the cdda source element in notify::source, non-default
30584         CD-ROM drives should work for playback under the 0.10 backend now; 
30585         Manually seek on the cdda source element if changing tracks and the
30586         device does not change
30588         * src/PlayerInterface.cs: Display error messages sent from PlayerEngine
30590         * data/banshee.schemas.in: Set default engine to helix-remote
30592 2006-03-16  Aaron Bockover  <aaron@abock.org>
30594         * data/banshee.glade: Set the open button to default; make the
30595         dialog not visible by default
30597 2006-03-16  Aaron Bockover  <aaron@abock.org>
30599         * src/Banshee.Base/Gui/OpenLocationDialog.cs: Focus the text box when
30600         showing the dialog, open the URI when entry is activated (enter pressed)
30602 2006-03-16  Aaron Bockover  <aaron@abock.org>
30604         * data/banshee.glade: Removed combo box from Open Location dialog
30606         * src/Banshee.Base/GConfKeys.cs: Added OpenLocationHistory key
30608         * src/Banshee.Base/Gui/OpenLocationDialog.cs: Implemented history support
30609         and added a browse button that launches a FileChooserDialog (that supports
30610         remote locations); 
30612 2006-03-16  Aaron Bockover  <aaron@abock.org>
30614         * banshee.mdp: Updated MonoDevelop project
30616         * configure.ac: Remove AM_GST_ELEMENT_CHECK calls and check for
30617         elements against the proper gst-inspect manually; AM_GST_ELEMENT_CHECK
30618         is not versioned and as a result, 0.10 checks were actually made against
30619         the 0.8 version of gst-inspect
30621         * data/banshee.glade: Removed the positon label and seek slider
30623         * libbanshee/gst-playback-0.10.c: Added buffering support and stream
30624         seekability detection
30626         * src/PlayerInterface.cs: Use new SeekSlider and StreamPositionLabel
30627         widgets; updated old stuff to use new stuff; handle the Buffering event
30628         and display the buffering progress in StreamPositionLabel
30630         * src/Banshee.Base/PlayerEngineCore.cs: Added CanSeek proxy property
30632         * src/Banshee.Base/MediaEngine/PlayerEngine.cs: Buffering should be
30633         an event, not a state; reworked signatures to account for this
30635         * src/Banshee.MediaEngine/Gstreamer/GstPlayerEngine.cs: Wrap the new
30636         buffering and stream seek detection in the engine implementation
30638         * src/Banshee.Widgets/LinearProgress.cs: Use the shared ColorBlend in
30639         DrawingUtilities
30641         * src/Banshee.Widgets/Makefile.am: Added SeekSlider.cs, 
30642         StreamPositionLabel.cs, and DrawingUtilities.cs:
30644         * src/Banshee.Widgets/SeekSlider.cs: Custom Gtk.Scale that is well
30645         adapted to seeking in streams
30647         * src/Banshee.Widgets/StreamPositionLabel.cs: Custom Label that draws
30648         a buffering progress bar under the position label when buffering, and
30649         updates automatically based off SeekSlider events
30651         * src/Banshee.Widgets/DrawingUtilities.cs: Added static class that 
30652         contains the ColorBlend method; shared between a few widgets
30654 2006-03-15  Aaron Bockover  <aaron@abock.org>
30656         * src/PlayerInterface.cs:
30657         * src/PlaylistView.cs:
30658         * src/Banshee.Base/TrackInfoPopup.cs:
30659         * src/Banshee.Base/Utilities.cs: Show track durations longer than one
30660         hour properly (BGO #333472, Ruben Vermeersch)
30662 2006-03-15  Aaron Bockover  <aaron@abock.org>
30664         * src/MusicBrainz/Client.cs: Added proxy server support (Michael Hutchinson)
30666 2006-03-15  Aaron Bockover  <aaron@abock.org>
30668         Patches by Sebastian Dröge:
30670         * *Makefile.am: Don't remove Makefile.in and other files generated 
30671         by autogen.sh on distclean. Move these files to MAINTAINERCLEANFILES. 
30672         This makes banshee buildable after a distclean.
30673         
30674         * src/Banshee.Plugins/NotificationAreaIcon/NotificationAreaIconPlugin.cs: 
30675         Show the TrackInfoPopup only after 500ms when the mouse cursor is still 
30676         over the Notification Area Icon and let it disappear on EndOfStream when 
30677         we don't play anything else after 250 ms.
30679         * src/Banshee.Plugins/NotificationAreaIcon/Makefile.am:
30680         * src/Banshee.Plugins/NotificationAreaIcon/banshee-notificationareaicon.schemas.in: 
30681         Rename the missed instances of tray icon to notification area icon.
30683         * src/Banshee.Widgets/CoverArtThumbnail.cs: Delay showing the popup 
30684         for 500ms
30686 2006-03-14  Aaron Bockover  <aaron@abock.org>
30688         * libbanshee/xing: Nuked, gone, good-bye, sorry
30690         * libbanshee/Makefile.am: Killed xing
30692         * configure.ac: Removed xing
30694 2006-03-13  Aaron Bockover  <aaron@abock.org>
30696         Version 0.10.8 Released
30698         * NEWS: Updated with 0.10.8 Release Notes
30700         * configure.ac: Bumped to 0.10.8
30702         * src/PlayerInterface.cs: Sensitize the Sync button based on
30703         DapDevice.CanSynchronize
30705         * src/Banshee.Base/TrackInfo.cs: Added TrackNumberTitle property
30707         * src/Banshee.Dap/MassStorage/MassStorageDap.cs: use TrackNumberTitle
30709 2006-03-13  Aaron Bockover  <aaron@abock.org>
30711         New NotificationAreaIcon plugin by Sebastian Dröge:
30713         * banshee.mdp: Updated MonoDevelop project
30715         * configure.ac: Added NotificationAreaIcon stuff for new plugin
30717         * data/UIManagerLayout.xml: Removed the tray icon menu
30719         * data/banshee.schemas.in: Removed tray icon schema entries
30721         * src/Makefile.am: Removed NotificationAreaIcon.cs
30723         * src/NotificationAreaIcon.cs: Removed
30725         * src/Banshee.Base/ActionManager.cs: 
30726         * src/PlayerInterface.cs: Removed tray-specific code 
30728         * src/Banshee.Base/Globals.cs: Added property to get handle to main window
30730         * src/Banshee.Plugins/Makefile.am: Added NotificationAreaIcon to SUBDIRS
30732         * src/Banshee.Widgets/Makefile.am: Removed NotificationAreaIcon.cs
30733         
30734         * src/Banshee.Widgets/NotificationAreaIcon.cs: Removed
30736         * src/Banshee.Plugins/NotificationAreaIcon/: Moved all the old tray
30737         icon code into new NotificationAreaIcon plugin
30738         
30739 2006-03-13  Aaron Bockover  <aaron@abock.org>
30741         * banshee.mdp: Updated MonoDevelop project
30743         * src/banshee.in: Removed HELIX_LIBS; handled by helix-dbus-server
30745         * src/Banshee.MediaEngine/Helix/HelixRemotePlayer.cs: Added process
30746         activation support to automatically run helix-dbus-server if not
30747         found over dbus already
30749         * src/Banshee.Base/PlayerEngineCore.cs: Do not die if a PlayerEngine
30750         could not be instantiated; report an error and continue
30752         Patches by Sebastian Dröge:
30754         * src/Banshee.Plugins/Audioscrobbler/Engine.cs: Ports the audioscrobbler
30755         plugin to the new PlayerEngine API. Seeking is now recognized correctly
30756         and pausing in a big track doesn't submit it twice anymore.
30758         * src/Banshee.Base/Sources/LibrarySource.cs: fix double import 
30759         bug for the first track imported in an empty library
30761 2006-03-12  Aaron Bockover  <aaron@abock.org>
30763         * configure.ac: Removed Helix/RealPlayer detection; detect 
30764         helix-dbus-server if --enable-helix 
30766         * data/banshee.glade: Removed the engine description text box
30768         * src/Preferences.cs: Removed engine description
30770         * PlayerEngineCore.cs: Added a log entry to show selected engine
30772         * src/Banshee.MediaEngine/Helix/: Removed C# bindings to Helix/hxclientkit;
30773         helix support has been moved out of process to helix-dbus-server
30775         * src/Banshee.MediaEngine/Helix/HelixRemotePlayer.cs: DBus client object 
30776         to the new helix-dbus-server program
30778         * src/Banshee.MediaEngine/Helix/HelixRemotePlayerEngine.cs: PlayerEngine
30779         implementation of HelixRemotePlayer; Helix support is out of process
30781         * src/Banshee.MediaEngine/Vlc/VlcPlayerEngine.cs: New VLC implementation
30782         of PlayerEngine; no more IPlayerEngines!
30784         * src/Banshee.Base/IPlayerEngine.cs: Removed
30786         * src/Banshee.Base/Makefile.am: Removed IPlayerEngine.cs
30788 2006-03-11  James Willcox  <snorp@snorp.net>
30790         * src/Banshee.Plugins/Daap/daap-sharp: Updated from Mono svn (again)
30792 2006-03-10  James Willcox  <snorp@snorp.net>
30794         * src/Banshee.Plugins/Daap/daap-sharp: Updated from Mono svn
30796 2006-03-10  Aaron Bockover  <aaron@abock.org>
30798         * banshee.mdb: Updated MonoDevelop project
30800         * src/Banshee.Base/PlayerEngineCore.cs: first pass at dynamic 
30801         engine switching
30803         * src/Banshee.Base/Dap/Dap.cs: Added CanSynchronize 
30805         * src/Banshee.Base/MediaEngine/PlayerEngine.cs: Added SetProperty method
30807         * src/Banshee.Dap/MassStorage/MassStorageDap.cs: Renamed IsSynchronizable
30808         to CanSynchronize; commented out some 'broke the build' stuff until
30809         gabaug can discuss
30811         * src/Banshee.MediaEngine/Gstreamer/GstPlayerEngine.cs: Added 
30812         SetProperty method to set GObject properties on the underlying playbin
30814         * src/Banshee.MediaEngine/Helix/HelixPlayer.cs: Port of Helix backend
30815         from IPlayerEngine to PlayerEngine
30817 2006-03-10  Gabriel Burt  <gabriel.burt@gmail.com>
30819         * src/Banshee.Dap/MassStorage/MassStorageDap.cs: Implemented adding and
30820         deleting tracks, bytes used.  Use new HAL keys for where to find/write
30821         music, if they exist.
30823         * src/Banshee.Dap/MassStorage/MassStorageTrackInfo.cs: New file, simple
30824         subclass of FileTrackInfo.
30826         * src/Banshee.Dap/MassStorage/Makefile.am: add MassStorageTrackInfo.cs.
30828 2006-03-09  Aaron Bockover  <aaron@abock.org>
30830         * src/Banshee.Base/PlayerEngine.cs: Replacement for IPlayerEngine; base
30831         class that offers common functionality between all engines; new 
30832         event/message system that is more verbose than old system... allows for
30833         metadata extraction from streams and buffering
30835         * src/Banshee.Base/PlayerEngineCore.cs: Proxy and wrapper for PlayerEngine
30836         that handles all loading of PlayerEngine types and switching out of 
30837         engines at runtime
30839         * src/Banshee.Base/PlayerEngineLoader.cs: Removed, deprecated, etc...
30840         PlayerEngineCore now loads and instantiates engines from assemblies
30842         * src/PlayerInterface.cs: User interface is completely passive regarding
30843         interaction with PlayerEngineCore; UI updates only after getting events
30844         and messages from PlayerEngineCore; plugins now have the exact same
30845         functionality regarding playback that the UI has traditionally had
30847         * src/Banshee.MediaEngine/Gstreamer/GstPlayerEngine.cs: Reworked to 
30848         implement new PlayerEngine base class; implementation is now much 
30849         simpler (for 0.10 and 0.8 engines)
30851         * src/Banshee.Base/UnknownTrackInfo.cs: A placeholder TrackInfo class
30852         that is used to create a container for loading plain URIs; eventually
30853         metadata will be filled in if it's found in the stream itself
30855         * src/Banshee.Base/Gui/OpenLocationDialog.cs: Glade Dialog implementation
30856         for open URI functionality
30858         * src/Banshee.Base/Makefile.am: Added UnknownTrackInfo.cs,
30859         Gui/OpenLocationDialog.cs and MediaEngine/PlayerEngine.cs
30861         * src/Banshee.Base/ActionManager.cs: Added OpenLocationAction
30863         * src/NotificationAreaIcon.cs:
30864         * src/PlaylistModel.cs:
30865         * src/PlaylistView.cs:
30866         * src/RemotePlayer.cs:
30867         * src/Preferences.cs:   
30868         * src/Banshee.Plugins/Audioscrobbler/Engine.cs:
30869         * src/TrackProperties.cs: Updated to reflect changes in PlayerEngineCore
30871 2006-03-08  Aaron Bockover  <aaron@abock.org>
30873         * configure.ac: Added a GStreamer element check for gconfaudiosink and
30874         removed the DEVELOPMENTAL verbage from the --with-gstreamer-0-10 
30875         help description
30877 2006-03-07  Aaron Bockover  <aaron@abock.org>
30879         * src/Banshee.Plugins/Daap/DaapProxyWebServer.cs: reworked how reading
30880         was done so we do not depend on a stream length; only send the
30881         Content-Length header if we actually have a length (BGO #329812) Thanks
30882         to Sebastian Dröge for helping out on this one
30884 2006-03-07  Aaron Bockover  <aaron@abock.org>
30886         * src/Banshee.Plugins/Daap/Daap.dll.config: Updated to new map made
30887         in Mono.Zeroconf/Native.cs
30889         * src/Banshee.Plugins/Daap/daap-sharp/Mono.Zerocon/*: Updated sources
30890         from daap-sharp/Mono.Zeroconf; (run an A query in DNSServiceQueryRecord 
30891         to resolve addresses instead of using gethostbyname)
30893 2006-03-07  Christopher Aillon  <caillon@redhat.com>
30895         * configure.ac: Look for required DLLs in ${prefix}/lib/mono
30896         instead of ${libdir}/mono
30898 2006-03-07  Aaron Bockover  <aaron@abock.org>
30900         * src/Banshee.Base/ImportManager.cs: Work around socket/directory bug
30901         in Mono: http://bugzilla.novell.com/show_bug.cgi?id=319774
30902         (Sebastian Dröge)
30904 2006-03-07  Aaron Bockover  <aaron@abock.org>
30906         * banshee.mdp: Updated MonoDevelop project
30908         * data/banshee.glade: Added SourceViewContainer wrapper VBox
30910         * src/PlayerInterface.cs: Set up and initialize the new UIManager
30912         * src/Banshee.Base/Globals.cs: Instantiate and hold a reference to
30913         a new UIManager
30915         * src/Banshee.Base/Gui/UIManager.cs: Simple new UIManager that acts
30916         as a proxy to main interface widgets and can notify when the main
30917         interface has been initialized and is ready to use
30919         * src/Banshee.Base/Makefile.am: Added Gui/UIManager.cs
30921         * src/Banshee.Base/Plugins/Plugin.cs: Added a new virtual method,
30922         InterfaceInitialize that will be called when Globals.UIManager has
30923         been set up and initialized by the main interface; plugins that wish
30924         to manipulate the main UI should override this method and place
30925         all UI calls in here; removal/disposal of widgets should be done only
30926         after a saftey check to Globals.UIManager.IsInitialized
30928 2006-03-05  Aaron Bockover  <aaron@abock.org>
30930         * libbanshee/gst-playback-0.10.c: Store the default audio 
30931         sink (gconfaudiosink) in the GstPlayback struct; added a new function
30932         gst_playback_playbin_set_property to allow setting properties on the
30933         underlying playbin element; allow resetting of the audio-sink property
30934         to the default if value is NULL
30936         * src/Banshee.MediaEngine/Gstreamer/GstPlayerEngine.cs: Added 
30937         binding for gst_playback_playbin_set_property
30939 2006-03-05  Aaron Bockover  <aaron@abock.org>
30941         DAAP Port Binding Patch by Sebastian Dröge
30943         * src/Banshee.Plugins/Daap/DaapCore.cs: Try to start DAAP server on
30944         default port, then fall back on any available port
30945         
30946         * src/Banshee.Plugins/Daap/DaapProxyWebServer.cs: Try to start proxy
30947         server on default port, then fall back on any available port; removed
30948         BoundPort/RequestedPort properties, replaced by a get-only Port property
30950 2006-03-05  Aaron Bockover  <aaron@abock.org>
30952         * configure.ac: Version 0.10.7
30954         * NEWS: Updated with 0.10.7 release notes
30956         * src/Banshee.Dap/MassStorage/Makefile.am: Allow building but do 
30957         not install this DAP
30959         * src/Banshee.Dap/Makefile.am: Added MassStorage to SUBDIRS
30961 2006-03-05  Jeff Tickle  <jeff@jefftickle.com>
30963         * src/ToggleState.cs: Added support for matching a state to a
30964         ToggleAction.Active instead of just a ToggleAction through the use of
30965         ToggleState.MatchValue.  If ToggleState.MatchActive is false, this is
30966         ignored.
30967         
30968         * src/PlayerInterface.cs: Changed the "Shuffle" button from a ToggleButton
30969         to a MultiStateToggleButton
30971         * src/Banshee.Widgets/MultiStateToggleButton.cs: Added support for
30972         the ToggleAction.Active matching in ToggleState.
30973         
30974         * src/Banshee.Widgets/ToggleStates.cs: The Shuffle ToggleStates 
30975         now make use of the new features noted above.
30977 2006-03-05  Aaron Bockover  <aaron@abock.org>
30979         * src/AboutBox.cs: Added Christopher Orr (British English)
30981         * src/Banshee.Plugins/Daap/daap-sharp/*: Updated daap-sharp sources
30983 2006-03-05  Christopher Orr  <chris@orr.me.uk>
30985         * configure.ac: Added en_GB to ALL_LINGUAS.
30987 2006-03-04  Aaron Bockover  <aaron@abock.org>
30989         * src/Banshee.Plugins/Audioscrobbler/Queue.cs: Patch from Ruben to fix
30990         BGO #332205
30992 2006-03-04  Aaron Bockover  <aaron@abock.org>
30994         * data/banshee.glade: Window title changed to 'Banshee Music Player'
30996         * src/PlayerInterface.cs: Handle PlaylistView.Stopped event to
30997         hide the metadata header and close the track on the player engine; reset
30998         interface to idle state
31000         * src/PlaylistModel.cs: Added a Stopped event to raise when the end
31001         of the model is reached and no track is to be played 
31002         by automatic transition
31004         * src/PlaylistView.cs:  Do not show the play indicator if stopped; fixes
31005         small bug slomo noticed due to changes/optimizations from Oscar; 
31007 2006-03-04  Aaron Bockover  <aaron@abock.org>
31009         * src/Banshee.Base/LibraryTrackInfo.cs: Rewrote some queries without the
31010         use of the SQL Query Builder APIs; in GetID, use System.Uri.AbsoluteUri
31011         instead of System.Uri.ToString(), (BGO #330580)
31013         * src/Banshee.Base/AudioCd/AudioCdCore.cs: Only check for 
31014         volume.disc.has_audio for media in a cdrom drive (BGO #329966)
31016 2006-03-03  Aaron Bockover  <aaron@abock.org>
31018         * src/Banshee.Base/ImportManager.cs: FIFO patch to not try and import
31019         named pipes (Debian Bugzilla #354914) (Sebastian Dröge)
31021         * src/Banshee.Base/Sources/AudioCdSource.cs (Import): Call OnUpdated()
31022         to ensure UI redraws properly
31024         * src/AboutBox.cs: Added Sebastian
31026         * src/Banshee.Dap/Ipod/ipod-sharp.dll.config.in:
31027         * src/Banshee.Dap/Njb/njb-sharp.dll.config.in: 
31028         * src/MusicBrainz/MusicBrainz.dll.config.in: Map to slightly less
31029         precise SOs (Sebastian Dröge)
31031 2006-03-03  Aaron Bockover  <aaron@abock.org>
31033         * data/UIManagerLayout.xml: Removed the ImportCDAction; replaced with
31034         ImportSourceAction; added ImportSourceAction to the source context menu
31036         * data/banshee.glade: Minor UI naming changes in the Import Dialog
31038         * src/PlayerInterface.cs: Contextually show new ImportSourceAction when
31039         a IImportSource is active; implemented OnImportSourceAction to call
31040         IImportSource.Import on an active IImportSource
31042         * src/Banshee.Base/ActionManager.cs: Implemented an action for
31043         ImportSourceAction
31045         * src/Banshee.Base/Gui/ImportDialog.cs: Use dynamic typechecking for
31046         IImportSource instead of handling a possible exception; only show
31047         the 'your library is empty' label if the library is actually empty
31049         * src/Banshee.Base/Sources/AudioCdSource.cs: Activate the import CD
31050         action on Import() to actually import the CD when the import is
31051         requested by the user
31053 2006-03-03  Aaron Bockover  <aaron@abock.org>
31055         * banshee.mdp: Updated MonoDevelop project
31057         * data/UIManagerLayout.xml: Commented out import folder/files and
31058         added a import music menu item that launches the import dialog
31060         * data/banshee.glade: Added a new import dialog that allows selecting
31061         from a list of import sources
31063         * data/banshee.schemas.in: Added a ShowInitialImportDialog key
31065         * src/AboutBox.cs: Added Gabriel Burt
31067         * src/PlayerInterface.cs: Moved all the import methods into
31068         new classes that implement IImportSource; show the generic import
31069         dialog on initial startup; removed obsolete importing code
31071         * src/Banshee.Base/ActionManager.cs: Implemented an action for ImportMusic
31073         * src/Banshee.Base/GConfKeys.cs: Added ShowInitialImportDialog key
31075         * src/Banshee.Base/Makefile.am: Added new Import-related files
31077         * src/Banshee.Base/Sources/AudioCdSource.cs: Call the OnUpdated method
31078         to propagate name changes; fix to implement IImportSource
31080         * src/Banshee.Base/Gui/GladeDialog.cs: Abstract base class for 
31081         implementing Glade dialogs
31083         * src/Banshee.Base/Gui/ImportDialog.cs: New import dialog that allows
31084         choosing from a list of sources from which to import; shows active
31085         sources that implement IImportSource as well as registered IImportSources
31086         in the ImportSources class; this makes it possible for plugins to 
31087         register IImportSources (i.e. an 'Import from beagle' or 'Import over
31088         GNOME VFS' plugin)
31090         * src/Banshee.Base/IImportSource.cs: Very simple interface to define
31091         classes that can import from some data source to the Banshee library
31093         * src/Banshee.Base/HomeDirectoryImportSource.cs: An IImportSource that
31094         loads all music from the user's home directory
31096         * src/Banshee.Base/FolderImportSource: An IImportSource that shows a 
31097         folder selection dialog and imports recursively from that folder
31099         * src/Banshee.Base/FileImportSource.cs: An IImportSource that shows a
31100         file selection dialog and imports over the file selection
31102         * src/Banshee.Base/ImportSources.cs: Simple static class to act as an
31103         IImportSource registry that ImportDialog can use to show a list of
31104         import sources
31106 2006-03-03  Gabriel Burt  <gabriel.burt@gmail.com>
31108         * src/Banshee.Base/ImportManager.cs: Make constructor public so DAPs
31109         can create a new importer just for them.
31111         * src/Banshee.Base/Dap/DapCore.cs: Check for null object and check
31112         Dap types for not IsAbstract.
31113         
31114         * src/Banshee.Dap/MassStorage/Makefile.am: New file.
31116         * src/Banshee.Dap/MassStorage/MassStorageDap.cs: New file for generic
31117         USB mass storage device DAP support.  Not connected to build system,
31118         so not run except by developers.  In CVS to further development.
31120 2006-03-02  Aaron Bockover  <aaron@abock.org>
31122         * src/Banshee.Plugins/Daap/DaapCore.cs: More properly account for 
31123         collisions/key duplications (BGO #332840) (Sebastian Dröge)
31125 2006-03-01  Aaron Bockover  <aaron@abock.org>
31127         * configure.ac: Removed the 'GStreamer 0.10 may be incomplete' warning
31129         * libbanshee/gst-cd-rip-0.10.c: Using CLOCK_TIME_NONE may block; 
31130         __tim recommends using 0 instead
31132         * src/Banshee.Base/AudioCdRipper.cs: #ifdef around some more stuff
31133         to avoid warnings when building for 0.10
31135 2006-03-01  Aaron Bockover  <aaron@abock.org>
31137         * libbanshee/gst-cd-rip-0.10.c: Implemented the 0.10 CD ripping backend
31139         * src/Banshee.Base/AudioCdRipper.cs: Support both the 0.8 and 0.10 
31140         backends and better error reporting with 0.10
31142 2006-02-28  Aaron Bockover  <aaron@abock.org>
31144         * src/PlaylistModel.cs: 
31145         * src/PlaylistView.cs: Remove the need for SyncPlayingIter; big 
31146         performance increase (Oscar Forero)
31148 2006-02-28  Aaron Bockover  <aaron@abock.org>
31150         * src/banshee.in: Set MONO_EXTERNAL_ENCODINGS=UTF8:Latin1
31152 2006-02-27  Aaron Bockover  <aaron@abock.org>
31154         Commit based on Oscar Forero's  <oforero@novell.com> Genre support patch
31156         * data/banshee.glade: Add input/dropdown for editing genre field
31158         * src/AboutBox.cs: Added Oscar
31160         * src/PlayerInterface.cs: Allow filtering by genre in search
31162         * src/PlaylistView.cs:
31163         * src/PlaylistColumns.cs: Added genre column support
31165         * src/TrackProperties.cs: Connect and fill the genre dropdown
31167         * src/Banshee.Base/Library.cs (GetGenreList): Return a list of genres
31168         that exist in the database
31170         * src/Banshee.Base/LibraryTrackInfo.cs: If genre is unkown, then unset it
31172 2006-02-27  Aaron Bockover  <aaron@abock.org>
31174         * data/banshee.schemas.in: Added schemas for default column visibility
31175         settings; fixes BNC #153153
31177 2006-02-24  Aaron Bockover  <aaron@abock.org>
31179         * banshee.mdp: Updated MonoDevelop project
31181         * configure.ac: Automatically detect mDNSResponder; Added an explicit
31182         --enable-avahi option to override mDNSResponder detection in case a 
31183         system has both Zeroconf services (which is not recommended); 
31184         --enable-mdnsd can be used to force enable mDNSResponder as well
31186         * libbanshee/gst-cd-rip-0.10.c:
31187         * libbanshee/gst-cd-rip-0.8.c:
31188         * libbanshee/gst-cd-rip.h:
31189         * libbanshee/gst-playback-0.10.c: Renamed API from cd_rip_*/CdRip* 
31190         to gst_cd_ripper_*/GstCdRipper*
31192         * src/RipTransaction.cs:
31193         * src/Makefile.am: Moved RipTranscation.cs to 
31194         Banshee.Base/AudioCdRipper.cs
31195         
31196         * src/PlayerInterface.cs: Updated to reflect API renaming of
31197         RipTransaction->AudioCdRipper
31199         * src/Banshee.Base/AudioCdRipper.cs: Moved pieces around so threading
31200         is handled inside the track ripper instead of the batch wrapper to
31201         prepare managed layer for GStreamer 0.10, which handles threading
31202         magically; update P/Invoke calls to new gst_cd_ripper_* API
31204         * src/Banshee.Base/Makefile.am: Added AudioCdRipper.cs
31205         
31206 2006-02-23  Aaron Bockover  <aaron@abock.org>
31208         * libbanshee/gst-playback-0.10.c: fix minor duration calculation bug;
31209         fixes audioscrobbler reporting and last-played update (slomo)
31211 2006-02-23  Aaron Bockover  <aaron@abock.org>
31213         * libbanshee/gst-transcode-0.10.c: Fixed progress reporting by
31214         doing a duration query on the pipeline bin and a position query
31215         directly on audioconvert element
31217 2006-02-23  Aaron Bockover  <aaron@abock.org>
31219         * libbanshee/gst-playback-0.10.c: Use the audio sink specified
31220         in gconf (Zaheer Abbas Merali, BGO #332350)
31222 2006-02-23  Aaron Bockover  <aaron@abock.org>
31224         * configure.ac: If GStreamer 0.10 is enabled, require 0.10.3 (for
31225         gst_parse_bin_from_description)
31227         * libbanshee/gst-transcode-0.10.c: Transcoding now works; use
31228         ghost padding with new-decoded-pad from decodebin, and 
31229         gst_parse_bin_from_description to create a bubble-wrapped encoder
31230         pipeline from a user-string description; progress reporting is still
31231         busted
31233 2006-02-22  Aaron Bockover  <aaron@abock.org>
31235         * banshee.mdp: Updated MonoDevelop project
31237         * configure.ac: Updated required GStreamer 0.10 version
31239         * libbanshee/gst-misc-0.10.c: Implement pipeline testing for 0.10
31241         * libbanshee/gst-transcode-0.10.c: Implement a new transcoder for 
31242         Gstreamer 0.10
31244         * libbanshee/gst-transcode.h: Updated for the 0.8 transcoder
31245         
31246         * src/BurnCore.cs: Updated to reflect changes in top-level batch 
31247         transcoding API
31249         * src/Banshee.Base/FileEncodeAction.cs: 
31250         * src/Banshee.Base/BatchTranscoder.cs: Renamed to BatchTranscoder and
31251         updated to reflect changes in base Transcoder class; transcoder 
31252         implementations handle threading instead of the BatchTranscoder to
31253         work best with the new GStreamer 0.10 threading model
31255         * src/Banshee.Base/Makefile.am: Reflect rename from FileEncodeAction.cs
31256         to BatchTranscoder.cs
31258         * src/Banshee.Base/GstTranscoder.cs: Implement managed layer for
31259         the 0.10 transcoder backend
31261         * src/Banshee.Base/Transcoder.cs: Updated API; Transcoder should handle
31262         threading; API is Async and event-based now
31264         * src/Banshee.Base/Dap/Dap.cs: Updated to reflect changes in 
31265         BatchTranscoder API
31267 2006-02-20  Aaron Bockover  <aaron@abock.org>
31269         * banshee.mdp: Updated Banshee MonoDevelop project
31271         * src/Banshee.Plugins/Daap/DaapProxyWebServer.cs: Use the local address
31272         and not the bound address for passing URIs to clients; use
31273         DAAP.Database.GetHashCode instead of DAAP.Database.ID, which is not
31274         unique; send a Content-Disposition header with the song file name if
31275         it is not null
31276         
31277         * src/Banshee.Plugins/Daap/DaapTrackInfo.cs: Use DAAP.Database.GetHashCode
31278         to build the URI
31280         * src/Banshee.Plugins/Daap/daap-sharp/*: Updated daap-sharp sources
31282         * libbanshee/gst-transcode-0.8.c:
31283         * libbanshee/gst-transcode.h: Renamed gst_file_encoder/GstFileEncoder to
31284         gst_transcoder/GstTranscoder
31286         * src/AboutBox.cs: Added Alessandro Gervaso (Italian) and 
31287         Ilkka Tuohela (Finnish) to translator credits
31289         * src/Banshee.Base/FileEncoder.cs:
31290         * src/Banshee.Base/GstFileEncoder.cs: Renamed to Transcoder/GstTranscoder
31291         
31292         * src/Banshee.Base/FileEncodeAction.cs: Updated to reflect rename changes
31294         * src/Banshee.Base/Makefile.am: Updated to reflect renamed files
31296 2006-02-20  Ilkka Tuohela  <hile@iki.fi>
31298         * configure.ac: Added "fi" to ALL_LINGUAS
31300 2006-02-19  Aaron Bockover  <aaron@abock.org>
31302         * configure.ac: Support using either Avahi or the bundled mDNSResponder
31303         support for the DAAP plugin. Avahi is used by default - if the system
31304         has Apple's mDNSResponder, pass --enable-mdnsd to configure
31306         * src/Banshee.Plugins/Daap/Daap.dll.config.in: Added mdns map to
31307         libdns_sd.so
31309         * src/Banshee.Plugins/Daap/Makefile.am: Pass DAAPSHARP_FLAGS to 
31310         mcs and build the Mono.Zeroconf sources into the plugin assembly
31312         * src/Banshee.Plugins/Daap/daap-sharp/*.cs: Updated to latest
31313         daap-sharp, which has support for mDNSResponder
31315         * src/Banshee.Plugins/Daap/daap-sharp/Mono.Zeroconf/*: Bundled 
31316         mDNSResponder C# bindings (Mono.Zeroconf)
31318 2006-02-19  Aaron Bockover  <aaron@abock.org>
31320         * entagged-sharp/Mpc/MpcFileReader.cs: Added application/x-apetag
31322 2006-02-18  James Willcox  <snorp@snorp.net>
31324         * src/Banshee.Base/SourceManager.cs: emit the
31325         ActiveChanged event in the main thread.
31326         * src/Banshee.Widgets/CoverArtThumbnail.cs: fix the nasty
31327         flashing problem that occurred when the popup appears
31328         above the thumbnail.
31329         * src/SourceView.cs: don't allow a source to be added
31330         more than once.
31332 2006-02-15  Alessio Frusciante  <algol@firenze.linux.it>
31334         * configure.ac: Added "it" (Italian) to ALL_LINGUAS.
31336 2006-02-14  Chris Toshok  <toshok@ximian.com>
31338         * src/Banshee.Base/NetworkDetect.cs: rename "last_state" to
31339         "current_state", and make get_Connected just consult that field,
31340         instead of using nm_manager.State (which requires a dbus rpc).
31341         Fixes gc/dbus related hang.
31343 2006-02-13  James Willcox  <snorp@snorp.net>
31345         * nuke all the (incorrect) emacs mode lines
31347 2006-02-13  James Willcox  <snorp@snorp.net>
31349         * src/Banshee.Plugins/MetadataSearch/MetadataSearchPlugin.cs:
31350         Add a IsScanning property.  When in album cover only mode, don't
31351         try to lookup the same album more than once.
31352         * src/Banshee.Plugins/MetadataSearch/MetadataSearchConfDialog.cs:
31353         Add a 'Rescan Library' button.
31355 2006-02-13  Aaron Bockover  <aaron@abock.org>
31356         
31357         * src/BansheeDbusClient.cs: Fixed interface name
31359 2006-02-13  Aaron Bockover  <aaron@abock.org>
31361         Banshee 0.10.6 Released
31363         * NEWS: Updated with 0.10.6 release notes
31365         * src/PlayerInterface.cs: Do not show 'Consider Importing...' notices
31366         in status bar: it's unnecessary and a little brusque
31368 2006-02-13  Aaron Bockover  <aaron@abock.org>
31370         * configure.ac: Version 0.10.6
31372         * src/Banshee.Base/Utilities.cs (SetProcessName): Use IntPtr instead
31373         of ulong to avoid potential 64 bit issues
31375         * src/RemotePlayer.cs: Fix a potential dbus-sharp crash (BGO #330903) 
31376         
31377         * src/Banshee.Widgets/VolumeButton.cs: Adjust volume fix (BGO #330524)
31379         * src/Banshee.Dap/Ipod/DatabaseRebuilder.cs: Handle the exceptions
31380         SongDatabase.Save may throw, display error to user
31382 2006-02-12  Aaron Bockover  <aaron@abock.org>
31384         * banshee.mdp: Updated MonoDevelop project
31386         * configure.ac: Require ipod-sharp 0.5.15
31388         * src/PlayerInterface.cs: Sensitize the search widget based on
31389         Source.SearchEnabled; do this on source changes and updates
31391         * src/Banshee.Base/Source.cs: Added a virtual SearchEnabled property
31393         * src/Banshee.Base/Dap/Dap.cs: Initialize using new Initialize 
31394         override method instead of constructor; support an error-type enum
31395         for detection flow instead of using exceptions - nice speed up
31397         * src/Banshee.Base/Dap/DapCore.cs: Only try to load DAP devices from
31398         HAL that support the portable_audio_player value for info.category; note
31399         this will affect NJB devices for now as there are no FDI entries
31400         upstream; a patch will be available soon; this is a major speed up
31402         * src/Banshee.Base/Dap/DapMisc.cs: Get rid of the DAP exceptions used
31403         for detection flow... bad style and inefficient/slow; using an enum
31404         
31405         * src/Banshee.Base/Sources/AudioCdSource.cs: Override SearchEnabled
31406         
31407         * src/Banshee.Base/Sources/DapSource.cs: Support propagating a custom
31408         view from the DAP; support DAP reactivation
31409         
31410         * src/Banshee.Dap/Ipod/IpodDap.cs: Support new detection/initialization
31411         model from base; show a nice error resolution view if iPod has a
31412         database that cannot be read
31413         
31414         * src/Banshee.Dap/Ipod/UnsupportedDatabaseView.cs: A custom view to
31415         detail why an iPod may not be supported; offers the ability to 
31416         rebuild the database
31417         
31418         * src/Banshee.Dap/Ipod/DatabaseRebuilder.cs: Class to scan an iPod
31419         for music in iPod_Control/Music/F*/* and rebuild a supported database
31420         
31421         * src/Banshee.Dap/Ipod/Makefile.am: Added DatabaseRebuilder.cs and
31422         UnsupportedDatabaseView.cs; link against entagged-sharp.dll
31423         
31424         * src/Banshee.Dap/Njb/NjbDap.cs: Updated to reflect detection/init
31425         model from base
31426         
31427         * src/Banshee.Widgets/MessagePane.cs: A custom widget to show 
31428         a header/icon and bullets of text/widgets; derived from beagle-search
31429         
31430         * src/Banshee.Widgets/LinkLabel.cs: Custom Label widget that allows
31431         for click/keypress activation; draws a blue link and shows a focus rect
31432         
31433         * src/Banshee.Widgets/Makefile.am: Added MessagePane.cs and LinkLabel.cs
31435 2006-02-08  Aaron Bockover  <aaron@aaronbock.net>
31437         * src/LogCoreViewer.cs: Do null-detection on the raw objects returned
31438         from the model before casting and comparing; fixes a potential crasher
31440         * src/PlayerInterface.cs: Update the playlist view after a search is done
31442         * src/PlaylistModel.cs: Sync the playing iter off TrackInfo.Equals 
31443         instead of a UID, which is TrackInfo subclass-specific; this allows
31444         for spreading the current song across multiple sources (say you start
31445         playing a song in the library that is also on an iPod... switching from
31446         the library to the iPod results in the version on the iPod to be 
31447         indicated as currently playing)
31448         
31449         Fixed a GTK tree iter warning when trying to get a path for a null iter
31450         
31451         * src/PlaylistView.cs (UpdateView): Call model.SyncPlayingIter()
31452         
31453         * src/Banshee.Base/TrackInfo.cs: Added Equal and GetHashCode overrides;
31454         value-equality is based on Artist, Album, and Track strings matching
31456 2006-02-08  Aaron Bockover  <aaron@aaronbock.net>
31458         * src/Banshee.Base/TrackInfo.cs: 
31459         Use {[Cc]over,[Ff]older}.{jpg,png,jpeg,gif} as cover art if one exists
31460         in the song's directory
31462         * src/PlayerInterface.cs: Show song title and artist in window title
31464 2006-02-07  Aaron Bockover  <aaron@aaronbock.net>
31466         * src/Banshee.Plugins/Audioscrobbler/AudioscrobblerPlugin.cs
31467         (StartEngine): Only instantiate the engine if it is null
31469 2006-02-07  Aaron Bockover  <aaron@aaronbock.net>
31471         * src/Banshee.Widgets/NotificationAreaIcon.cs: Updated with fixes
31472         for AMD64 by Dan Winship (from Beagle, #327944); class renamed from
31473         NotificationAreaIcon to NotificationArea
31475         * src/Banshee.Widgets/NotificationAreaIcon.cs: Reflect change from
31476         NotificationAreaIcon to NotificationArea
31478         * src/PlayerInterface.cs:
31479         * src/PlaylistColumns.cs:
31480         * src/PlaylistView.cs: Patch from Ruben Vermeersch to fix column
31481         visibility bug (#326947)
31483         * src/AboutBox.cs: Added Theppitak Karoonboonyana to translator credits
31485 2006-02-07  James Willcox  <snorp@snorp.net>
31487         * src/Banshee.Plugins/Daap/DaapCore.cs: avoid a null ref exception
31488         in the ServerName property when there is no server.
31490 2006-02-07  Theppitak Karoonboonyanan  <thep@linux.thai.net>
31492         * configure.ac: Added 'th' (Thai) to ALL_LINGUAS.
31494 2006-02-06  Aaron Bockover  <aaron@aaronbock.net>
31496         * src/Banshee.Base/Utilities (Utilities.SetProcessName): NUL terminate
31497         the process name as ASIIEncoding does not do this (sigh)
31499 2006-02-06  Aaron Bockover  <aaron@aaronbock.net>
31501         * configure.ac: Bumped version to 0.10.5
31503         * NEWS: Updated for 0.10.5 release notes
31505         * banshee.mdp: Updated MonoDevelop project
31507         * docs/*: Updated Monodoc documentation
31509         * src/AboutBox.cs: Added Fredrik
31511 2006-02-06  Aaron Bockover  <aaron@aaronbock.net>
31513         * data/data/UIManagerLayout.xml: Removed seek and repeat menu items
31514         from tray menu
31516         * src/PlayerInterface.cs: Do not focus search on s/j press if source
31517         view is in edit mode (BGO #329540)
31519         * src/Banshee.Base/Utilities.cs (PathUtil.CharsToQuote): Do not 
31520         escape ' ' characters as they cause problems with importing
31522         * src/banshee.in: Run mono --debug if --debug is passed to wrapper
31524         * src/RemotePlayer.cs:
31525         * src/Main.cs: Add remote support for querying the cover art 
31526         filename (BGO #328201, patch by Ruben Vermeersch)
31528 2006-02-06  Aaron Bockover  <aaron@aaronbock.net>
31530         * src/Banshee.Dap/Ipod/IpodDap.cs: Use the volume or product name of
31531         the iPod from HAL if the user hasn't set a custom name
31533         * src/Banshee.Base/Utilities.cs (PathUtil.CharsToQuote): Escape 
31534         the '%' and ' ' to hex sequences
31536         * src/Banshee.Base/ImportManager.cs: Handle a potential Win32IOException
31537         regarding recursive symlinks
31539         * src/Banshee.Base/GstFileEncoder.cs (Encode): Reworked to manually
31540         alloc/marshal/free file strings
31542 2006-02-06  Aaron Bockover  <aaron@aaronbock.net>
31544         * src/Main.cs: Call Banshee.Base.Utilities.SetProcessName to set process
31545         name to 'banshee'; enables 'killall banshee' to work and shows up
31546         properly in 'top' and the Gnome system monitor (BNC #147947)
31548         * src/Banshee.Base/Utilities.cs: Added Utilities.SetProcessName to
31549         set the process name via the prctl system call
31551         * src/banshee.in: Removed --debug; added -a 'banshee' on exec to
31552         change argv[0]; removed support to run uninstalled copy as it could
31553         be a security hole
31555         * src/Banshee.Widgets/SearchEntry.cs: Use an inset frame border
31556         
31557 2006-02-03  Aaron Bockover  <aaron@aaronbock.net>
31559         * src/Banshee.Plugins/Daap/DaapSource.cs: Catch an exception that
31560         DAAP.Client.Login may throw and present an error dialog instead;
31561         a 'this is the best I can do' response to the RB DAAP bug #329812
31563 2006-02-03  Aaron Bockover  <aaron@aaronbock.net>
31565         * src/banshee.exe.config.in:
31566         * src/Banshee.Base/Banshee.Base.dll.config.in:
31567         * src/Banshee.Widgets/Banshee.Widgets.dll.config.in: Added libX11 map;
31568         fixes strange GtkUIManager crashes in NLD
31569         
31570 2006-02-02  Aaron Bockover  <aaron@aaronbock.net>
31572         * configure.ac: Require GTK+-2.8
31574         * src/PlayerInterface.cs: Removed custom pixbuf stuff for the search
31575         entry; it handles its own icon and hover icon now
31577         * src/Banshee.Widgets/Makefile.am: Added -unsafe to compile; removed
31578         resource icons
31580         * src/Banshee.Widgets/SearchEntry.cs: Use Stock.Find as the icon and
31581         color shift it for the hover icon
31583         * src/Banshee.Widgets/Resources: Removed
31585         * ChangeLog: Fixed formatting on Fredrik's last entry (spaces->tabs)
31587 2006-02-01  Fredrik Hedberg <fredrik@avafan.com>
31589         * banshee.pc.in: Added gconf-sharp-2.0 as a requirement for
31590         our pkg-config file, as many plugins most certainly will use gconf.
31592         * src/Banshee.Base/SourceManager.cs: Call Deactivate() on the
31593         current source when the user switches to a new one.
31595         * src/Banshee.Base/Source.cs: Add the empty virtual method Deactivate.
31597 2006-01-31  Aaron Bockover  <aaron@aaronbock.net>
31599         * src/AboutBox.cs: Class renamed to BansheeAboutDialog, which now
31600         extends Gtk.AboutDialog; no more Gnome.About support as Gtk# 2.8 is 
31601         required now; updated copyright; added Ruben Vermeersch
31603         * src/PlayerInterface.cs (OnAboutAction): Updated to reflect change
31604         from AboutBox to BansheeAboutDialog
31606         * src/Banshee.Widgets/VolumeButton.cs: Turned the +/- icons into
31607         buttons that allow click and hold to adjust the volume (Ruben 
31608         Vermeersch, BGO #329360); removed the +/- icons and replaced with
31609         text
31611 2006-01-31  Aaron Bockover  <aaron@aaronbock.net>
31613         * src/PlayerInterface.cs: Use search icon for the search entry from the
31614         theme; do not respond to search if the source is to handle it
31616         * src/Banshee.Base/Globals.cs: Added InterfaceElements.SearchEntry
31618         * src/Banshee.Base/Source.cs: Added virtual property HandlesSearch; 
31619         sources can override this and return true, and then connect to
31620         events on InterfaceElements.SearchEntry to do custom searching
31622         * src/Banshee.Widgets/SearchEntry.cs: Allow setting of custom search
31623         icons through the Icon and HoverIcon properties
31625 2006-01-30  Aaron Bockover  <aaron@aaronbock.net>
31627         * autogen.sh: Require automake 1.9
31629 2006-01-30  Aaron Bockover  <aaron@aaronbock.net>
31631         * banshee.mdp: Updated MonoDevelop project
31633         * conifgure.ac: Generate necessary files for MMKeys plugin
31635         * src/PlayerInterface.cs: Removed old commented out special keys code
31637         * src/Banshee.Base/SpecialKeys.cs: Minor fixes and ungrab support based 
31638         on patch by Danilo Reinhardt
31640         * src/Banshee.Base/Utilities.cs (Utilities.ExecProcess): Minor fix
31641         to work around http://bugzilla.novell.com/show_bug.cgi?id=320179 (SIGSEV)
31643         * src/Banshee.Plugins/Makefile.am: Add MMKeys to SUBDIRS
31645         * src/Banshee.Plugins/MMKeys/*: Initial commit of the MMKeys plugin
31646         by Danilo Reinhardt
31648 2006-01-28  Aaron Bockover  <aaron@aaronbock.net>
31650         * banshee.mdp: Removed obsolete files (BGO #328931)
31652 2006-01-28  Aaron Bockover  <aaron@aaronbock.net>
31654         * configure.ac: Use libdir instead of $prefix/lib for detecting mono
31655         fixes BGO #328916
31657 2006-01-27  Aaron Bockover  <aaron@aaronbock.net>
31659         * configure.ac: Require Gtk# 2.7+; remove references to GtkSharpBackports
31661         * src/AboutBox.cs:
31662         * src/Preferences.cs: Remove GtkSharpBackports namespace prefix on
31663         widgets that were available only in Gtk# 2.8
31665         * src/Makefile.am: Remove GtkSharpBackports from SUBDIRS and do not
31666         link against GtkSharpBackports.dll
31668         * src/GtkSharpBackports: Removed; everything that was in GtkSharpBackports
31669         was backported from 2.8 to use in 2.4; now using 2.8
31671 2006-01-27  Aaron Bockover  <aaron@aaronbock.net>
31673         * src/StockIcons.cs: Instead of relying on an exception, check the
31674         resource manifest to see if a resource icon exists; reduces exception
31675         overhead and thwarts GdkPixbufLoader warnings from being spewed to
31676         the console (BNC #145487)
31678         * src/Banshee.MediaEngine/Helix/HelixPlayer.cs: Make the iterate thread
31679         a background thread; does not hang on exit
31681 2006-01-27  Aaron Bockover  <aaron@aaronbock.net>
31683         * src/PlayerInterface.cs: Minor cosmetic bug fixed regarding sensitivity 
31684         of search box after a DAP sync completes
31686 2006-01-27  Aaron Bockover  <aaron@aaronbock.net>
31688         * src/PlayerInterface.cs: Moved the custom DAP syncing view to DapSource;
31689         support switching between the default playlist view and custom source
31690         views (Source.ViewWidget); sources can now provide custom and hybrid
31691         views
31693         * src/Banshee.Base/Globals.cs: Provide a basic InterfaceElements proxy
31694         class; Currently only provides access to the PlaylistView widget as
31695         a TreeView; but is sufficient enough for plugins and sources to directly
31696         access selections
31698         * src/Banshee.Base/Source.cs: Added virtual ViewWidget and 
31699         ShowPlaylistHeader properties; added a ViewUpdated event
31701         * src/Banshee.Base/SourceManager.cs: Proxy the Source.ViewUpdated event
31702         for sources
31704         * src/Banshee.Base/Sources/DapSource.cs: Moved the DAP syncing view from
31705         PlayerInterface and implemented as a ViewWidget
31707 2006-01-25  Aaron Bockover  <aaron@aaronbock.net>
31709         * configure.ac: Check for DBus 0.60 or better and set DBUS_SOVERSION 
31710         accordingly to either 2 or 1
31712         * data/banshee.desktop.in.in: Changed --play to --play-enqueued so 
31713         playing will only happen if songs were passed to --enqueue; was a small
31714         bug where just clicking on the desktop file would cause banshee to
31715         start playing no matter what - quite annoying 
31717         * src/PlayerInterface.cs: Support --play-enqueued which can now be
31718         passed with a populated --enqueue to auto-play conditionally
31720         * hal-sharp/hal-sharp.dll.config.in: 
31721         * src/Banshee.Dap/Ipod/ipod-sharp.dll.config.in: Use @DBUS_SOVERSION@
31722         for mapping to the proper dbus libraries
31724 2006-01-25  Aaron Bockover  <aaron@aaronbock.net>
31726         * src/Banshee.Base/QueuedSqliteDatabase.cs: Open the connection to the
31727         database on the processing thread; otherwise that kinda defeats the entire
31728         purpose of the threaded queue processor ;)
31730 2006-01-23  Aaron Bockover  <aaron@aaronbock.net>
31732         * banshee.mdp: Updated MonoDevelop project
31733         
31734         * data/Tables.sql: Removed; Tables are now defined in code
31736         * data/banshe.desktop.in.in: Added more standard desktop categories
31738         * src/Makefile.am: 
31739         * src/Banshee.Base/Makefile.am: Removed resource  data/Tracks.sql
31741         * src/Main.cs: Disabled process-based instance detection for now; it
31742         is causing problems for some and needs investigating
31744         * src/Banshee.Base/Database.cs: Rewritten database layer; class now
31745         extends new QueuedSqliteDatabase class and all table detection and
31746         creation SQL is now embedded in code
31748         * src/Banshee.Base/QueuedSqliteDatabase.cs: New database layer that
31749         queues queries to execute sequentially on a single thread; fixes many
31750         various sqlite-related database issues including database/thread
31751         synchronization and database locking
31753         * src/Banshee.Base/Globals.cs:
31754         * src/Banshee.Base/Library.cs:
31755         * src/Banshee.Base/LibraryTrackInfo.cs:
31756         * src/Banshee.Base/Sources/PlaylistSource.cs: Updated to reflect minor
31757         API changes in database layer
31759         * src/Banshee.Base/SqlGenerator.cs (Statement.EscapeQuotes): Minor fix
31760         to return empty string if input is null (gonzalo)
31762         * src/Banshee.Base/Utilities.cs (ThreadAssist.Spawn): Threads spawned here
31763         should be background threads (gonzalo)
31765 2006-01-18  Aaron Bockover  <aaron@aaronbock.net>
31767         * banshee: Branched for NLD10/stable Banshee '1.0' release (BANSHEE_NLD10)
31769 2006-01-23  Aaron Bockover  <aaron@aaronbock.net>
31771         * banshee.mdp: Updated MonoDevelop project
31772         
31773         * data/Tables.sql: Removed; Tables are now defined in code
31775         * data/banshe.desktop.in.in: Added more standard desktop categories
31777         * src/Makefile.am: 
31778         * src/Banshee.Base/Makefile.am: Removed resource  data/Tracks.sql
31780         * src/Main.cs: Disabled process-based instance detection for now; it
31781         is causing problems for some and needs investigating
31783         * src/Banshee.Base/Database.cs: Rewritten database layer; class now
31784         extends new QueuedSqliteDatabase class and all table detection and
31785         creation SQL is now embedded in code
31787         * src/Banshee.Base/QueuedSqliteDatabase.cs: New database layer that
31788         queues queries to execute sequentially on a single thread; fixes many
31789         various sqlite-related database issues including database/thread
31790         synchronization and database locking
31792         * src/Banshee.Base/Globals.cs:
31793         * src/Banshee.Base/Library.cs:
31794         * src/Banshee.Base/LibraryTrackInfo.cs:
31795         * src/Banshee.Base/Sources/PlaylistSource.cs: Updated to reflect minor
31796         API changes in database layer
31798         * src/Banshee.Base/SqlGenerator.cs (Statement.EscapeQuotes): Minor fix
31799         to return empty string if input is null (gonzalo)
31801         * src/Banshee.Base/Utilities.cs (ThreadAssist.Spawn): Threads spawned here
31802         should be background threads (gonzalo)
31804 2006-01-18  Aaron Bockover  <aaron@aaronbock.net>
31806         * banshee: Branched for NLD10/stable Banshee '1.0' release (BANSHEE_NLD10)
31808 2006-01-17  Aaron Bockover  <aaron@aaronbock.net>
31810         * banshee.mdp:
31811         * src/SignalUtils.cs:
31812         * src/Makefile.am: Removed SignalUtils.cs; it has not been used in many
31813         months and is not necessary
31815 2006-01-17  Aaron Bockover  <aaron@aaronbock.net>
31817         * configure.ac: Bumped version to 0.10.4
31819         * NEWS: Updated with the 0.10.4 release notes
31821         * docs/*: Updated Monodoc API documentation
31823         * src/Banshee.Base/PlayerEngineCore.cs: Removed some debug 
31824         Console.WriteLine calls
31826 2006-01-17  Aaron Bockover  <aaron@aaronbock.net>
31828         * src/PlayerInterface.cs: Uncommented and fixed adding to playlists
31829         through song context menu to work with the new PlaylistSource
31831         * src/PlaylistView.cs: Removed unused code that has been commented out
31832         for months
31834         * src/Banshee.Base/Sources/PlaylistSource.cs: Added two static properties
31835         to keep track of and access a collection of PlaylistSource instances
31837         * docs/Makefile.am: Minor cleanup/fix
31839 2006-01-16  James Willcox  <snorp@snorp.net>
31841         * src/Banshee.Plugins/Daap/DaapConfigPage.cs: only change the service
31842         name on focus out, instead of on each individual change.
31843         * src/Banshee.Plugins/Daap/DaapCore.cs: don't show the service that
31844         banshee itself exposes, and do a lame job at attempting to handle
31845         service name collisions.
31847 2006-01-16  James Willcox  <james@ximian.com>
31849         * src/Banshee.Base/SourceManager.cs: proxy add/remove events to
31850         the main thread.
31851         * src/Banshee.Plugins/Daap/DaapCore.cs: hash on the service name
31852         instead of the whole service object.
31853         * src/Banshee.Plugins/Daap/daap-sharp/*: synced
31855 2006-01-16  Aaron Bockover  <aaron@aaronbock.net>
31857         * data/Makefile.am: Install D-Bus service file in 
31858         $(datadir)/dbus-1/services (BGO #327046)
31860         * src/Banshee.Plugins/Audioscrobbler/Engine.cs (TransmitQueue): Guard 
31861         against a potential nullref (BGO #326863)
31863 2006-01-16  Aaron Bockover  <aaron@aaronbock.net>
31865         * src/PlayerInterface.cs: Add the global actions accelerator group to
31866         the main window (BGO #326923)
31867         
31868         * src/Banshee.Base/Plugins/PluginDialog.cs: Wrapped missing string for
31869         translation (Øivind Hoel)
31871 2006-01-16  Stephane Raimbault  <stephane.raimbault@free.fr>
31873         reviewed by: Aaron Bockover  <aaron@aaronbock.net>
31875         * src/Banshee.Plugins/Audioscrobbler/AudioscrobblerConfigDialog.cs:
31876         Marked a string to translate
31877         
31878         * src/Banshee.Plugins/FileSystemMonitor/Makefile.am: Deleted some
31879         bad tabs
31880         
31881         * src/Banshee.Plugins/MetadataSearch/MetadataSearchConfigDialog.cs:
31882         Fixed a typo s/MusizBrainz/MusicBrainz/
31884 2006-01-14  Aaron Bockover  <aaron@aaronbock.net>
31886         * engagged-sharp/Ogg/Util/OggInfoReader.cs: bitrate calculation fix
31888         * src/PlayerInterface.cs: Added tooltips back to shuffle/repeat/edit 
31889         buttons at bottom of window (BGO #326045); pressing enter in search
31890         entry focuses playlust (BGO #326568); fixed minor cosmetic bug regarding
31891         icon sizes of action buttons; moved gettext catalog init to Globals so
31892         catalog is initialized before the ActionManager is populated (BGO #325705)
31894         * src/TrackProperties.c: Minor bitrate calculation fix
31896         * src/Banshee.Base/ActionManager.cs: Use more stock items when acceptable
31898         * src/Banshee.Base/Globals.cs: Initialize the gettext catalog (BGO #325705)
31899         
31900         * src/Banshee.Widgets/ActionButton.cs: Add support for a default icon
31901         size in the constructor 
31903         * src/Banshee.Base/AmazonCoverFetcher.cs: Set timeout to 10 seconds
31905         * src/Banshee.Plugins/MetadataSearch/MetadataSearchPlugin.cs: Do not
31906         use ThreadAssist for the processing thread so operations on the thread
31907         can be performed later (Aborting if necessary); also make the thread
31908         a background thread
31910 2006-01-14  Aaron Bockover  <aaron@aaronbock.net>
31912         * configure.ac: Bump to 0.10.3; note to non-Novell distributors: I do
31913         not advise packaging this release... it was made to meet an internal
31914         package submission deadline. 0.10.4 will be released early next week
31915         with a number of fixes to known issues
31917         * data/banshee.glade: Add a _ prefix/accelerator to search label
31919         * src/banshee.in: Fixed wrapper script to properly run an uninstalled copy
31921         * src/Makefile.am: Fixed up run to invoke sh ./banshee
31923         * src/PlayerInterface.cs: Pressing 's' or 'S' will focus the search
31924         entry (along with 'j', 'J', or F3); enabled searching on all 
31925         sources (playlists, DAAP) except for audio CDs
31927         * src/TrackProperties.cs: Only sniff mime type for local tracks
31929         * src/Banshee.Base/ActionManager.cs: Use stock for about menu item
31931         * src/Banshee.Plugins/Daap/Makefile.am: Added daap-sharp/content-codes
31932         to EXTRA_DIST
31934 2006-01-14  Aaron Bockover  <aaron@aaronbock.net>
31936         * banshee.mdp: Updated MonoDevelop project
31938         * src/SourceView.cs: Guard against a possible nullref
31940         * src/Banshee.Base/SourceManager.cs: Do not allow registering of null
31941         sources... that's not so good
31943         * src/Banshee.Base/Plugins/Plugin.cs: Make ConfigurationKeys public
31945         * src/Banshee.Plugins/Daap/daap.schemas.in: Added schemas for two new keys
31947         * src/Banshee.Plugins/Daap/DaapConfigPage.cs: Configuration page for
31948         notebook in plugins dialog
31950         * src/Banshee.Plugins/Daap/DaapCore.cs: Add DAAP server support
31952         * src/Banshee.Plugins/Daap/DaapPlugin.cs: register two configuration keys
31954         * src/Banshee.Plugins/Daap/Makefile.am: Add DaapConfigPage.cs
31956         * src/Banshee.Plugins/Daap/daap-sharp/*: Updated daap-sharp sync
31958         * src/Banshee.Plugins/MetadataSearch/MetadataSearchConfigDialog.cs: 
31959         Added a header label to config page
31961 2006-01-14  Aaron Bockover  <aaron@aaronbock.net>
31963         * src/Banshee.Base/Plugins/Plugin.cs: Removed virtual 
31964         ShowConfigurationDialog method; replaced with GetConfigurationWidget
31965         
31966         * src/Banshee.Base/Plugins/PluginDialog.cs: Remove configuration button;
31967         added a notebook for showing description/overview and configuration pages;
31968         If a plugin implements GetConfigurationWidget, show it in a 
31969         configuration tab in the notebook
31970         
31971         * src/Banshee.Plugins/Audioscrobbler/AudioscrobblerConfigDialog.cs: 
31972         Changed from a Dialog subclass to a VBox subclass; ability to show/hide the 
31973         Audioscrobbler logo; logo widget exposed as an internal property
31974         
31975         * src/Banshee.Plugins/Audioscrobbler/AudioscrobblerPlugin.cs: Added dialog
31976         to show the configuration widget in case configuration is invoked through
31977         the plugin menu; implement GetConfigurationWidget
31978         
31979         * src/Banshee.Plugins/MetadataSearch/MetadataSearchConfigDialog.cs: 
31980         Changed from Dialog subclass to a VBox subclass; removed label and frame
31981         as they look goofy in the notebook and are unnecessary; fixed a minor
31982         display bug regarding the warning widget on the last option
31983         
31984         * src/Banshee.Plugins/MetadataSearch/MetadataSearchPlugin.cs: Implement 
31985         GetConfigurationWidget; fixed a minor database update bug
31988 2006-01-13  Aaron Bockover  <aaron@aaronbock.net>
31990         * src/PlayerInterface.cs: Request engine change before playing a song
31991         based on file extension; this will be used for falling back on GStreamer
31992         for some formats when using Helix as the primary engine
31994         * src/Preferences.cs: A restart is no longer needed to change the
31995         primary playback engine
31997         * src/Banshee.Base/IPlayerEngine.cs: Added SupportedExtensions property
31999         * src/Banshee.Base/PlayerEngineCore.cs: Allow switching engines from
32000         anything other than the primary based on file extension 
32002         * src/Banshee.MediaEngine/Gstreamer/GstPlayerEngine.cs: claim to support
32003         WMA in SupportedExtensions as Helix/RP can't (better chance of it working
32004         in GStreamer than in Helix)
32006         * src/Banshee.MediaEngine/Vlc/VlcPlayerEngine.cs:
32007         * src/Banshee.MediaEngine/Helix/HelixPlayer.cs: Implement 
32008         SupportedExtensions, but return null
32010 2006-01-12  Aaron Bockover  <aaron@aaronbock.net>
32012         * src/Banshee.Plugins/Audioscrobbler/AudioscrobblerPlugin.cs: 
32013         * src/Banshee.Plugins/Audioscrobbler/AudioscrobblerMenu.xml: Added a
32014         visit group action to the menu and changed menu items to sentence case
32016 2006-01-12  Aaron Bockover  <aaron@aaronbock.net>
32018         * src/Banshee.Plugins/Audioscrobbler/AudioscrobblerPlugin.cs: Added an
32019         enabled action item that allows easy toggling of reporting, with a
32020         key binding and menu item; fixed a few very minor bugs and a nullref
32022         * src/Banshee.Plugins/Audioscrobbler/Engine.cs (MD5Encode): Guard against
32023         a nullref and return String.Empty on failure
32025         * src/Banshee.Plugins/Audioscrobbler/AudioscrobblerConfigDialog.cs:
32026         Added a button to pimp the Banshee last.fm Group
32028         * src/Banshee.Plugins/Audioscrobbler/AudioscrobblerMenu.xml: Added a
32029         reporting enabled action item
32031 2006-01-11  Aaron Bockover  <aaron@aaronbock.net>
32033         * src/Banshee.Plugins/Daap/Makefile.am: Added missing if DAAP_ENABLED 
32034         check; makes --disable-daap actually work
32036 2006-01-11  Aaron Bockover  <aaron@aaronbock.net>
32038         * src/Banshee.Base/Plugins/Plugin.cs: Do not enforce namespace naming;
32039         instead require an abstract ConfigurationName property to be set by
32040         the plugin (tberman was yelling)
32042         * src/Banshee.Plugins/Audioscrobbler/AudioscrobblerPlugin.cs:
32043         * src/Banshee.Plugins/Daap/DaapPlugin.cs:
32044         * src/Banshee.Plugins/FileSystemMonitor/Watcher.cs:
32045         * src/Banshee.Plugins/MetadataSearch/MetadataSearchPlugin.cs: Implement
32046         new abstract ConfigurationName
32048 2006-01-10  Aaron Bockover  <aaron@aaronbock.net>
32050         * banshee.mdp: Updated MonoDevelop project
32052         * src/Banshee.Plugins/Daap/DaapProxyWebServer.cs: A new 'proxy' server
32053         that handles streaming of DAAP songs from a DAAP server over a normal
32054         HTTP stream; this makes DAAP streaming audio available from any normal
32055         HTTP client; listening to DAAP streams is now possible (GStreamer 0.8,
32056         GStreamer 0.10, Helix/RealPlayer, VLC); also provides a simple web-based
32057         browser to connected databases and allows downloading songs through this
32058         interface (http://localhost:8089)
32060         * src/Banshee.Plugins/Daap/DaapCore.cs: Added a property to access the
32061         new DaapProxyWebServer; start/stop the server when applicable; corrected
32062         namespace
32064         * src/Banshee.Plugins/Daap/DaapTrackInfo.cs: Set the uri property to
32065         the proper HTTP URI for requesting DAAP streaming of the audio through
32066         the proxy server; corrected namespace
32068         * src/Banshee.Plugins/Daap/DaapSource.cs: register/unregister database
32069         with the proxy server; corrected namespace
32071         * src/Banshee.Plugins/Daap/DaapLoginDialog.cs: 
32072         * src/Banshee.Plugins/Daap/DatabaseProxy.cs:
32073         * src/Banshee.Plugins/Daap/DaapPlugin.cs: corrected namespace
32075         * src/Banshee.Plugins/Daap/Makefile.am: Added DaapProxyWebServer.cs
32077         * src/Banshee.Plugins/Daap/daap-sharp/*.cs: Updated daap-sharp checkout
32079 2006-01-09  Aaron Bockover  <aaron@aaronbock.net>
32081         * src/Banshee.Plugins/Makefile.am: Added Daap to SUBDIRS
32083         * src/Banshee.Plugins/Daap/daap-sharp/*: Added daap-sharp sources; these
32084         sources are maintained in the 'daap-sharp' Mono SVN module and are synced
32085         into the Banshee tree using the 'sync-tree.sh' script
32087         * src/Banshee.Plugins/Daap/DaapPlugin.cs: Plugin to initialize/dispose
32088         the DaapCore
32090         * src/Banshee.Plugins/Daap/DaapCore.cs: DAAP core that listens for 
32091         service updates from daap-sharp/avahi and creates sources out of new
32092         services; central point for DAAP client support
32094         * src/Banshee.Plugins/Daap/DaapSource.cs: Banshee.Sources.Source 
32095         implementation for DAAP client support
32097         * src/Banshee.Plugins/Daap/DatabaseProxy.cs: A custom IEnumerable 
32098         collection that proxies DAAP.Song objects to TrackInfo objects on the fly
32100         * src/Banshee.Plugins/Daap/DaapTrackInfo.cs: TrackInfo implementation
32101         for DAAP songs
32103         * src/Banshee.Plugins/Daap/DaapLoginDialog.cs: A login dialog that is
32104         presented when a DAAP server requires authentication
32106 2006-01-09  Aaron Bockover  <aaron@aaronbock.net>
32108         * banshee.mdp: Updated MonoDevelop project
32110         * configure.ac: Removed daap-sharp references as daap-sharp sources are
32111         synced directly into the tree; check for avahi-sharp
32113         * src/Main.cs: Handle a potential DBus exception
32115         * src/Makefile.am: Removed daap-sharp unstable assembly installation rules
32117         * src/PlayerInterface.cs: Skeleton for handling Source.TrackAdded and
32118         Source.TrackRemoved events; if Source.Updated is fired and the track count
32119         in the model is 0 and the source is not, reload the model from the source;
32120         the DBusRemote is now instance-accessible through a Globals proxy; handle
32121         Source.Tracks change from ICollection to IEnumerable
32123         * src/PlaylistModel.cs: Added a placeholder RemoveTrack(TrackInfo) method
32125         * src/RemotePlayer.cs (FindInstance): use a dynamic cast to RemotePlayer
32126         type instead of a static
32128         * src/SourceView.cs: Do not draw count in source row if Source.Count < 0
32130         * src/Banshee.Base/DBusRemote.cs: make DBusRemote a instantiable class
32132         * src/Banshee.Base/Globals.cs: Add a DBusRemote proxy property
32134         * src/Banshee.Base/LibraryTrackInfo.cs: LastPlayedStamp and DateAddedStamp
32135         values are now read from the database a little differently to work with
32136         updated Mono.Data.SqliteClient from HEAD, should also be a little faster
32138         * src/Banshee.Base/Makefile.am: Removed DAAPSHARP_LIBS reference
32140         * src/Banshee.Base/Source.cs: Make Count virtual; Tracks is now 
32141         IEnumerable; Added TrackAdded and TrackRemoved events; added OnTrackAdded
32142         and OnTrackRemoved virtual methods for raising those events; added
32143         InvalidSourceException exception class
32145         * src/Banshee.Base/SourceManager.cs: Added SourceTrackAdded and 
32146         SourceTrackRemove 'proxy' events for propagating TrackAdded/TrackRemoved
32147         events from sources
32149         * src/Banshee.Base/AudioCdSource.cs:
32150         * src/Banshee.Base/DapSource.cs:
32151         * src/Banshee.Base/LibrarySource.cs:
32152         * src/Banshee.Base/LocalQueueSource.cs:
32153         * src/Banshee.Base/PlaylistSource.cs: Reflect change from Source.Tracks
32154         as an ICollection to an IEnumerable
32156 2006-01-06  Chris Toshok  <toshok@ximian.com>
32158         * src/Banshee.Plugins/Audioscrobbler/Engine.cs: if we've
32159         previously logged failures uploading tracks, log the first
32160         successful one.
32162         * src/Banshee.Plugins/Audioscrobbler/Queue.cs: make sure to clear
32163         the queue before loading, so we don't append multiple copies
32164         when/if the user disables/re-enables the plugin.
32166 2006-01-06  Chris Toshok  <toshok@ximian.com>
32168         * src/Banshee.Plugins/Audioscrobbler/Makefile.am
32169         (ASSEMBLY_SOURCES): add Queue.cs
32171         * src/Banshee.Plugins/Audioscrobbler/Queue.cs: new home for all
32172         the queue internals.
32174         * src/Banshee.Plugins/Audioscrobbler/Engine.cs: move all the queue
32175         internals (including the new saving/loading code) out to a
32176         separate class; Use LogCore to report problems with
32177         uploading/handshaking, and try to avoid spamming the log by only
32178         logging upload failures once every 5 minutes; lastly, increase the
32179         places where we save queue data.  We now save just before
32180         transmitting, and again after getting the OK back from the server,
32181         after we remove the tracks that were transmitted.
32183 2006-01-06  Chris Toshok  <toshok@ximian.com>
32185         * src/Banshee.Plugins/Audioscrobbler/Engine.cs: Another patch from
32186         Ruben Vermeersch, to add rudimentary seek detection.  Slightly
32187         modified from the patch on the list, to check for reverse seeking.
32189 2006-01-06  Chris Toshok  <toshok@ximian.com>
32191         * src/Banshee.Plugins/Audioscrobbler/Engine.cs: apply Ruben
32192         Vermeersch excellent queue saving/loading patch.
32194 2006-01-06  Aaron Bockover  <aaron@aaronbock.net>
32196         * banshee.mdp: Updated MonoDevelop project
32198         * src/Banshee.Plugins/MetadataSearch/Makefile.am: Added 
32199         MetadataSearchConfigDialog.cs
32201         * src/Banshee.Plugins/MetadataSearch/MetadataSearchConfigDialog.cs:
32202         Configuration dialog for setting the cover art/metadata fetch method
32204         * src/Banshee.Plugins/MetadataSearch/MetadataSearchPlugin.cs: Support
32205         three different fetch methods for cover art and metadata: covers only
32206         will only fetch cover art and uses a SQL query to set the ASIN on all 
32207         tracks on an album after one track from the album has been looked up
32208         through MusicBrainz (fast method); fill blank will fetch cover art on a
32209         per-track basis and will fill in any missing metadata for the track (slow
32210         but safe); overwrite will fetch cover art on a per-track basis and will
32211         overwrite all metadata fields on a track that were returned from 
32212         MusicBrainz (potentially destructive and slow, but most of the time
32213         yields pleasant results); the default option is covers only
32215         * data/Tables.sql: for some reason AlbumTitle was declared as an INTEGER;
32216         it's now TEXT... nice
32218 2006-01-05  Brad Taylor  <brad@getcoded.net>
32219         
32220         * src/PlaylistModel.cs: Implement a more intelligent Shuffle that has a
32221         60% chance of hovering inside the current genre, making the transitions
32222         between songs slightly more fluid.  Of course, this value should be
32223         tweaked for better results.
32225 2006-01-05  Aaron Bockover  <aaron@aaronbock.net>
32227         * src/AboutBox.cs: Added Lukas Novotny to Translator Credits (Czech)
32229         * src/Banshee.Base/Library.cs: Allow single, collection, and queued 
32230         removal of tracks based on URI as well as LibraryTrackInfo object reference
32231         
32232         * src/Banshee.Plugins/FileSystemMonitor/Watcher.cs: Implement removal
32233         and importing of files using a threaded queue processor instead of 
32234         looping in an always-running thread to 'listen' for changes on 
32235         two ArrayLists; removal and importing updated to use new mechanisims in
32236         Banshee.Base for interacting with the Library
32238         * src/Banshee.Plugins/FileSystemMonitor/Watch.cs: Simplified many aspects
32239         of the base Watch class; use events for notification instead of collections
32240         on which a thread 'listens'
32241         
32242         * src/Banshee.Plugins/FileSystemMonitor/InotifyWatch.cs: 
32243         * src/Banshee.Plugins/FileSystemMonitor/FileSystemWatcherWatch.cs: 
32244         Updated to implement changes in updated and simplified base class
32246 2006-01-05  Aaron Bockover  <aaron@aaronbock.net>
32248         * docs/*: Updated Monodoc API documentation
32250         * banshee.mdp: Updated MonoDevelop project
32252         * data/banshee.glade: removed the header cycle button
32254         * src/Core.cs: Removed TransactionManager
32256         * src/Makefile.am: Removed LibraryTransaction*.cs, DapPropertiesDialog.cs,
32257         and Sources.cs; added skeleton for daap-sharp linking and installation
32259         * src/PlayerInterface.cs: Updated to use SourceManager to handle switching
32260         and manipulating of sources
32262         * src/PlaylistModel.cs: Updated to use SourceManager; added a GetIterIndex
32263         method to allow reordering to propagate to sources; removed old unused
32264         code
32266         * src/PlaylistView.cs: AddSelectedToPlaylist disabled for the moment
32268         * src/SourceView.cs: Updated to adapt to act strictly as a view for
32269         SourceManager; sources are now handled centrally in SourceManager
32271         * src/Banshee.Base/Database.cs: Added overload Execute method to return
32272         the last insert row ID
32274         * src/Banshee.Base/Library.cs: All track removal is handled centrally
32275         through Banshee.Base.Library
32277         * src/Banshee.Base/Makefile.am: Added new Source files
32279         * src/Banshee.Base/SourceManager.cs: New centralized source manager;
32280         handles proper ordering and activation/notification, and acts as a proxy
32281         for source update events
32283         * src/Banshee.Base/TrackInfo.cs: Moved HaveTrackInfoArgs and
32284         HaveTrackInfoHandler from old LibraryTransactions.cs
32286         * src/Banshee.Base/Utilities.cs: ReflectionUtil.IsVirtualMethodImplemented
32287         now works for non-public instance members
32289         * src/Banshee.Base/AudioCd/AudioCdCore.cs: Support creating and removing
32290         AudioCdSource from SourceManager
32292         * src/Banshee.Base/AudioCd/AudioCdDisk.cs: If ASIN is empty after a
32293         successful CD info lookup through MusicBrainz, attempt to find an ASIN
32294         using a FileLookup based on data for the first track on the CD
32296         * src/Banshee.Base/Dap/Dap.cs: Handle creating/adding/removing a DapSource
32298         * src/Banshee.Base/Dap/DapPropertiesDialog.cs: Moved from src/
32300         * src/Banshee.Base/Sources/LibrarySource.cs: New implementation of the base
32301         Source class for the Library
32303         * src/Banshee.Base/Sources/PlaylistSource.cs: New Playlist source and
32304         completely rewritten playlist support; much faster and supports proper
32305         reordering
32307         * src/Banshee.Base/Sources/AudioCdSource.cs: Refactored source for
32308         Audio CDs
32310         * src/Banshee.Base/Sources/DapSource.cs: Refactored source for DAPs
32312         * src/Banshee.Base/Source/LocalQueueSource.cs: Refactored source for local
32313         files (The Frobnicator)
32315         * src/Banshee.Dap/Njb/NjbDap.cs (Dispose): call base.Dispose()
32317         * src/Banshee.Plugins/FileSystemMonitor/Watcher.cs: Disabled some parts
32318         of this plugin until it can be sorted out to work with new API
32320 2006-01-03  Aaron Bockover  <aaron@aaronbock.net>
32322         * configure.ac: Added DAAP configure support; check for sqlite3 >= 3.2 to
32323         guard against no ALTER TABLE ... ADD support (BGO #325697)
32324         
32325 2006-01-02  Stanislav Brabec  <utx@penguin.cz>
32327         * configure.ac: Added cs to ALL_LINGUAS.
32329 2006-01-02  Aaron Bockover  <aaron@aaronbock.net>
32331         * src/MusicBrainz/Client.cs: Null checks on GetID 
32333         * src/MusicBrainz/SimpleQuery.cs: Added support for both AlbumTrackResult
32334         and AlbumResult types for better matching against limited input
32336         * src/MusicBrainz/SimpleLookupTest.cs: Added a -tracknum option to test 
32337         program for SimpleQuery
32339 2006-01-01  Aaron Bockover  <aaron@aaronbock.net>
32341         * src/Banshee.Plugins/MetadataSearch/*: New plugin to search for 
32342         well-formed/supplementary metadata and cover art for songs already in
32343         the library (and songs that are newly added during the same instance); 
32344         this effectively adds 'full' cover art support to Banshee - Happy New Year!
32346         * docs/*: Updated Monodoc Documentation
32348         * banshee.mdp: Updated MonoDevelop project
32350         * configure.ac: Generate files for the MetadataSearch plugin
32352         * data/Tables.sql: Add RemoteLookupStatus column to Tracks SQL table
32354         * src/Banshee.Base/Database.cs: Add support to ALTER old tables without
32355         the RemoteLookupStatus column
32357         * src/Banshee.Base/Library.cs: Added a TrackAdded event and an IsLoaded
32358         property to the Library
32360         * src/Banshee.Base/LibraryTrackInfo.cs: Support preserving the 
32361         RemoteLookupStatus property when constructing from an AudioCdTrackInfo 
32362         and support reading/writing this property to/from the database
32364         * src/Banshee.Base/TrackInfo.cs: Added a RemoteLookupStatus property and
32365         enum (NoAttempt, Success, Failure)
32367         * src/Banshee.Base/AudioCd/AudioCdDisk.cs: Set RemoteLookupStatus to
32368         Success when metadata is found through MusicBrainz
32370         * src/Banshee.Base/Plugins/Plugin.cs: Added a DisposeRequested property
32371         for plugins to check during extensive operations
32373         * src/Banshee.Plugins/Makefile.am: Added MetadataSearch to SUBDIRS
32375         * src/MusicBrainz/Client.cs: Minor fix to GetID
32377         * src/MusicBrainz/Makefile.am: Added SimpleQuery.cs
32379         * src/MusicBrainz/SimpleQuery.cs: Static class to perform basic arbitrary
32380         query operations (FileLookup)
32382         * src/MusicBrainz/SimpleLookupTest.cs: Test case to SimpleQuery
32384         * src/MusicBrainz/SimpleTrack.cs: Added new properties so object is
32385         suitable for SimpleQuery.FileLookup to return
32387 2005-12-31  Aaron Bockover  <aaron@aaronbock.net>
32389         * docs/MonodocNodeConfig.cs: Small utility program to add nodes to
32390         monodoc.xml under 'various' to better organize documentation
32392         * docs/Makefile.am: Build MonodocNodeConfig.cs, run to insert/remove 
32393         classlib-banshee node from various in monodoc.xml
32395         * docs/banhsee-docs.source: Set path to classlib-banshee
32397         * src/Banshee.Plugins/FileSystemMonitor/Makefile.am: Remove MENU_RESOURCE
32399 2005-12-31  Aaron Bockover  <aaron@aaronbock.net>
32401         * src/Banshee.Base/Database.cs:
32402         * src/Banshee.Base/FileTrackInfo.cs:
32403         * src/Banshee.Base/LibraryTrackInfo.cs: Changed namespace to Banshee.Base
32404         
32405         * banshee.pc.in: Added two missing assemblies to Libs
32407         * docs/*: Updated Monodoc Documentation
32409 2005-12-30  Aaron Bockover  <aaron@aaronbock.net>
32411         * banshee.pc.in: Updated so plugins can actually use it (-pkg:banshee 
32412         for mcs)
32414         * src/Banshee.Base/Library.cs: Added a GetTrack method
32416 2005-12-30  Aaron Bockover  <aaron@aaronbock.net>
32418         * banshee.mdp: Updated MonoDevelop project
32420         * data/UIManagerLayout.xml: Added a plugin menu item
32422         * src/BansheeDbusClient.cs: Updated to reflect path/interface renaming
32424         * src/DapPropertiesDialog.cs: Fixed name in source header
32426         * src/PlayerInterface.cs: Show the plugins dialog on the plugin action
32428         * src/Banshee.Base/ActionManager.cs: Added a plugin action for showing
32429         the plugins dialog
32431         * src/Banshee.Base/Makefile.am: Added Plugins/PluginDialog.cs
32433         * src/Banshee.Base/Plugins/Plugin.cs: Plugins can now be loaded and
32434         unloaded during execution as well as at startup; the 'Enabled' key
32435         belongs to the plugin manager, plugins can show a configuration dialog;
32436         added abstract metadata properties; plugin entry/exit methods renamed
32438         * src/Banshee.Base/Plugins/PluginCore.cs: Better plugin handling; plugins
32439         can be disabled if they fail, but still remain visible; plugins can
32440         be loaded/unloaded during execution
32442         * src/Banshee.Base/Plugins/PluginDialog.cs: Dialog to allow management
32443         of plugins (loading/unloading/configuring)
32445         * src/Banshee.Plugins/Audioscrobbler/AudioscrobblerConfigDialog.cs: Use
32446         the plugin description from AudioscrobblerPlugin
32448         * src/Banshee.Plugins/Audioscrobbler/AudioscrobblerPlugin.cs: Renamed
32449         the old 'Enabled' key as the base plugin class uses that key now; properly
32450         unload the menu UI on Dispose; updated to reflect changes in base class;
32451         implement ShowConfigurationDialog
32453         * src/Banshee.Plugins/Audioscrobbler/audioscrobbler.schemas.in: Added 
32454         the EngineEnabled key as the plugin may be enabled (Enabled key used
32455         by base class now) but user may want to turn off submissions
32457         * src/Banshee.Plugins/FileSystemMonitor/Makefile.am: Added Mono.Posix ref
32459         * src/Banshee.Plugins/FileSystemMonitor/Watcher.cs: updated to reflect
32460         changes in base class; throw exception to disable this plugin for now as
32461         it is incomplete and broken
32463 2005-12-30  Aaron Bockover  <aaron@aaronbock.net>
32465         * src/TrackProperties.cs:
32466         * src/Banshee.Base/ActionManager.cs:
32467         * data/banshee.glade: Updated wording for the track properties editor to
32468         read 'Edit Song Metadata/Editing Song x of y' and so forth
32470         * src/TrackProperties.cs: Do all track saving in the main thread, it
32471         is not expensive, and users probably aren't going to have thousands
32472         of tracks in the editor at a time; update the main UI if the current
32473         playing track is one that was edited (fixes BGO #325078)
32475         * src/LibraryTransactions.cs: Removed TrackInfoSaveTransaction
32476         
32477         * src/NotificationAreaIcon.cs: Pull track duration from TrackInfo object
32478         loaded in PlayerEngineCore.ActivePlayer and not from the playing stream
32479         directly (read metadata instead of stream length) - fixes BGO #325079
32481         * src/PlayerInterface.cs: Only sensitize the source properties action
32482         when a source has property dialog support (Fixes BGO #325076); Expose
32483         UpdateMetaDisplay as public; Call LoadSettings() after registering 
32484         handlers for all actions, which will allow the proper action handler 
32485         to be called at startup (Fixes BGO #325139)
32487         * src/Sources.cs: Name of library source is now just 'Music Library', 
32488         Fixes BGO #324652; Source now provides a ShowPropertiesDialog member
32489         sources can implement; moved property dialog for the DAP source from
32490         PlayerInterface.cs to DapSource.ShowPropertiesDialog
32492 2005-12-29  Aaron Bockover  <aaron@aaronbock.net>
32494         * banshee.mdp: Updated MonoDevelop project
32495         
32496         * configure.ac: Output src/Banshee.Plugins/FileSystemMonitor files
32498         * data/banshee.schemas.in: Removed key for FileSystemMonitor; the plugin
32499         installs its own schemas now
32501         * src/Core.cs: Moved almost everything to Banshee.Base.Globals; renamed
32502         to PlayerCore, and is now a static class
32504         * src/Dialogs.cs: Removed specific playlist dialog
32506         * src/BurnCore.cs:
32507         * src/LibraryTransactionManager.cs:
32508         * src/LibraryTransactionStatus.cs:
32509         * src/LibraryTransactions.cs:
32510         * src/PlaylistColumns.cs:
32511         * src/PlaylistModel.cs:
32512         * src/Preferences.cs:
32513         * src/RipTransaction.cs:
32514         * src/SourceView.cs: 
32515         * src/Main.cs: Updated to reflect moves from Banshee.Core to 
32516         Banshee.Base.Globals and renaming of Banshee.Core to Banshee.PlayerCore
32518         * src/PlayerInterface.cs: Same as above changes; handle 
32519         Banshee.Base.Library.Reloaded in a much better manner
32521         * src/Banshee.Base/FileNamePattern.cs: Cleaned up, reformatted; reference
32522         proper library path
32524         * src/Makefile.am: Added new files; removed old files
32526         * src/StockIcons.cs: Added a null test for the icon_set
32528         * src/Banshee.Base/Globals.cs: Added initialization code from old
32529         Banshee.Core; effectively places Library/Database access in 
32530         Banshee.Base, for plugin access
32532         * src/Banshee.Base/Makefile.am: Added new files
32534         * src/Banshee.Base/Library.cs: 
32535         * src/Banshee.Base/SqlGenerator.cs:
32536         * src/Banshee.Base/LibraryTrackInfo.cs:
32537         * src/Banshee.Base/FileTrackInfo.cs:
32538         * src/Banshee.Base/Database.cs: Library/Database support is now in 
32539         Banshee.Base and can be consumed by plugins
32541         * src/Banshee.Base/Plugins/Plugin.cs:
32542         * src/Banshee.Base/Plugins/PluginCore.cs: Plugins must now provide an 
32543         override for new Initialize method; may not use constructors for
32544         initialization; proper namespace naming is now enforced; added 
32545         configuration keys support for GConf
32547         * src/Banshee.Plugins/Makefile.am: Added FileSystemMonitor to SUBDIRS
32549         * src/Banshee.Plugins/Audioscrobbler/AudioscrobblerPlugin.cs: Adapt to 
32550         changes in base Plugin class and new GConf support in base class
32552         * src/Banshee.Plugins/Audioscrobbler/Engine.cs: Source.Remove changed to
32553         GLib.Source.Remove to avoid namespace conflicts
32555         * src/Banshee.Plugins/FileSystemMonitor/*.cs: Moved from src/
32556         
32557         * src/Banshee.Plugins/FileSystemMonitor/Watcher.cs: Refactored to
32558         implement as a Banshee Plugin
32560         * src/Banshee.Plugins/FileSystemMonitor/FileSystemMonitor.dll.config.in:
32561         DLL map for assembly
32562         
32563         * src/Banshee.Plugins/FileSystemMonitor/filesystemmonitor.schemas.in:
32564         GConf schemas for plugin
32566 2005-12-29  Takeshi AIHANA <aihana@gnome.gr.jp>
32568         * configure.ac: Added 'ja' (Japanese) to ALL_LINGUAS again,
32569           since was lost current version.
32571 2005-12-28  Aaron Bockover  <aaron@aaronbock.net>
32573         * banshee.mdp: Updated MonoDevelop project
32575         * src/NotificationAreaIcon.cs: Better positioning
32577         * src/Banshee.Base/TrackInfoHeader.cs: Hide cover if default cover is null
32579         * src/Banshee.Base/TrackInfoPopup.cs: Remove the radial progress widget,
32580         replaced by a subtle linear one to the right of the time label. Much less
32581         intrusive and distracting, and reduces size of widget
32583         * src/Banshee.Widgets/RadialProgress.cs: Some minor fixes, and #ifed out
32584         for now
32586         * src/Banshee.Widgets/LinearProgress.cs: Simple GDK progress bar that
32587         draws a line and a bar, very very simple and subtle drawing
32589         * src/Banshee.Widgets/Makefile.am: added LinearProgress.cs
32591 2005-12-25  Aaron Bockover  <aaron@aaronbock.net>
32593         * src/NotificationAreaIcon.cs: Handle the default timeout a little better
32595 2005-12-25  Aaron Bockover  <aaron@aaronbock.net>
32597         * banshee.mdp: Updated MonoDevelop project
32599         * src/Makefile.am: Removed TrackInfoHeader.cs
32601         * src/NotificationAreaIcon.cs: Show the new TrackInfoPopup widget when
32602         user hovers over the icon or the track changes
32604         * src/PlayerInterface.cs: Send the NotificationAreaIconContainer an entire
32605         track instead of just a string for a tooltip
32607         * src/Banshee.Base/TrackInfoHeader.cs: Moved from src/ so TrackInfoPopup
32608         can embed the widget
32610         * src/Banshee.Base/TrackInfoPopup.cs: A little Christmas candy to display
32611         a very nice track info/progress summary in a 'tooltip,' using the same
32612         header widget in the main interface, and if Cairo/GTK+-2.8 is available,
32613         show track progress using the new RadialProgress widget
32615         * src/Banshee.Base/Makefile.am: Added TrackInfoHeader.cs, TrackInfoPopup.cs
32617         * src/Banshee.Widgets/Makefile.am: Added RadialProgress.cs
32619         * src/Banshee.Widgets/RadialProgress.cs: New progress widget that shows
32620         a 'pie' or radial progress; can optionally draw 'clock' ticks; requires
32621         Mono.Cairo and GTK+-2.8
32623 2005-12-22  Aaron Bockover  <aaron@aaronbock.net>
32625         * src/MusicBrainz/sync-tree.sh: Added script to keep Banshee checkout of
32626         musicbrainz-sharp in sync with the working development repository; the
32627         development of this code has been moved outside of Banshee:
32629                 svn://abock.org/svn/trunk/musicbrainz-sharp
32631         * src/MusicBrainz/Makefile.am: Updated to cleaner, synced version
32633 2005-12-23  Chris Toshok  <toshok@ximian.com>
32635         * src/Banshee.Plugins/Audioscrobbler/Makefile.am (PKG_REFERENCES):
32636         add -r:System.Web.dll.
32638         * src/Banshee.Plugins/Audioscrobbler/Engine.cs: drop the hacky
32639         UrlEncode in favor of HttpUtility.UrlEncode; add a check for
32640         Globals.Network.Connected in EngineTick, so we delay any network
32641         traffic until we're connected.
32643 2005-12-22  Aaron Bockover  <aaron@aaronbock.net>
32645         * src/Banshee.Widgets/CoverArtThumbnail.cs (CoverArtView.OnExposeEvent): 
32646         Fixed really stupid drawing bug
32648 2005-12-22  Aaron Bockover  <aaron@aaronbock.net>
32650         * src/Banshee.Plugins/Audioscrobbler/AudioscrobblerConfigDialog.cs:
32651         Added a cute little Audioscrobbler 'powered by' graphic
32653         * src/Banshee.Plugins/Audioscrobbler/audioscrobbler-logo.png: AS logo
32655         * src/Banshee.Plugins/Audioscrobbler/Makefile.am: embed
32657         * src/Banshee.Plugins/Audioscrobbler/Engine.cs: Removed old_state to
32658         silence the cautionary screams of mcs
32660 2005-12-22  Chris Toshok  <toshok@ximian.com>
32662         * src/Banshee.Plugins/Audioscrobbler/AudioscrobblerPlugin.cs:
32663         remove the SetPlayer method and calls.  Instead just call
32664         protocol_engine.Start.
32666         * src/Banshee.Plugins/Audioscrobbler/Engine.cs: use a GLib.Timeout
32667         instead of relying on the Player's tick event; Don't keep a
32668         reference to a player around, just fetch it in the EngineTick
32669         method; fix up the state assignment around the async calls and
32670         deal with exceptions in current_web_req.End*; reformat things to
32671         be more in keeping with the style guidelines.
32673 2005-12-22  Aaron Bockover  <aaron@aaronbock.net>
32675         * src/Banshee.Plugins/Audioscrobbler/AudioscrobblerPlugin.cs: Changed
32676         wording of 'Home page' to 'Profile page'
32678 2005-12-22  Aaron Bockover  <aaron@aaronbock.net>
32680         * banshee.mdp: Updated MonoDevelop project
32682         * data/UIManagerLayout.xml: Added a placeholder for plugins to insert
32683         menu items in the music toplevel menu
32685         * src/DapPropertiesDialog.cs: Moved the PropertyTable class 
32686         to Banshee.Widgets
32688         * src/Banshee.Plugins/Audioscrobbler/Engine.cs: Fixed a bug regarding
32689         track queueing; fixes a few submission bugs noted on the mailing list
32691         * src/Banshee.Plugins/Audioscrobbler/AudioscrobblerPlugin.cs: Added
32692         UI integration into main menu; added properties to get/set username,
32693         password, and enable status; added path to launch the config dialog
32695         * src/Banshee.Plugins/Audioscrobbler/AudioscrobblerConfigDialog.cs:
32696         Configuration dialog for setting username/password and enabling AS support
32698         * src/Banshee.Plugins/Audioscrobbler/AudioscrobblerMenu.xml: UIManager
32699         menu layout for AS plugin
32701         * src/Banshee.Plugins/Audioscrobbler/Makefile.am: Link against
32702         Banshee.Widgets.dll and embed AudioscrobblerMenu.xml as a resource;
32703         added AudioscrobblerConfigDialog.cs
32705         * src/Banshee.Widgets/Makefile.am: Added PropertyTable.cs
32707         * src/Banshee.Widgets/PropertyTable.cs: Moved property table class from
32708         src/DapPropertiesDialog.cs
32710 2005-12-22  Miguel de Icaza  <miguel@novell.com>
32712         * src/Banshee.Widgets/NotificationAreaIcon.cs: More fixing of
32713         miss-uses.  
32715 2005-12-19  Miguel de Icaza  <miguel@novell.com>
32717         * src/Banshee.Widgets/NotificationAreaIcon.cs: Fix the miss-use of
32718         unions and string marshalling.  This should now run with Mono
32719         1.1.11 
32721 2005-12-22  Aaron Bockover  <aaron@aaronbock.net>
32723         * src/Banshee.Plugins/Makefile.am: Remove Banshee.Plugins dir on uninstall
32725         * configure.ac: Do not generate src/ipod-sharp.dll.config
32727         * en/*: Updated docs
32729         * configure.ac: Version 0.10.2
32731         * NEWS: Updated with 0.10.2 release notes
32733 2005-12-21  Aaron Bockover  <aaron@aaronbock.net>
32735         * src/Banshee.Plugins/Audioscrobbler/AudioscrobblerPlugin.cs: Plugin class
32736         for Chris Toshok's Audioscrobbler support
32738         * src/Banshee.Plugins/Audioscrobbler/Engine.cs: toshok's Audioscrobbler
32739         protocol implementation/engine class
32741         * src/Banshee.Plugins/Audioscrobbler/audioscrobbler.schemas.in: GConf
32742         schemas for the Audioscrobbler plugin
32744         * src/Banshee.Plugins/Audioscrobbler/Audioscrobbler.dll.config.in: DLL
32745         maps for the Audioscrobbler.dll plugin
32747         * src/Banshee.Plugins/Makefile.am: Added Audioscrobbler to SUBDIRS
32749         * src/Banshee.Base/Plugins/Plugin.cs: Simple generic plugin base class
32751         * src/Banshee.Base/Plugins/PluginCore.cs: Core to load/unload plugins
32752         at runtime from types in assemblies that implement Banshee.Plugins.Plugin
32754         * banshee.mdp: Updated MonoDevelop project
32756         * configure.ac: Generate necessary files for Audioscrobbler plugin
32758         * src/AboutBox.cs: Added Chris Toshok and Jeff Tickle
32760         * src/Makefile.am: Added Banshee.Plugins to SUBDIRS
32762         * src/Banshee.Base/Globals.cs: Initialize/Dispose PluginCore
32764         * src/Banshee.Base/Paths.cs: Added SystemPluginDirectory 
32765         and UserPluginDirectory paths
32767 2005-12-21  Jeff Tickle <jeff@jefftickle.com>
32769         * src/PlayerInterface.cs: Resurrected the Repeat Toggle Button
32770         down in the bottom-left; it now works properly with Gtk.ToggleAction
32772         * src/Banshee.Widgets/MultiStateToggleButton.cs:
32773         * src/Banshee.Widgets/ToggleState.cs: Removed all the menu action
32774         crap and replaced it with Gtk.ToggleAction support
32776 2005-12-21  Aaron Bockover  <aaron@aaronbock.net>
32778         * src/Core.cs: Remove all IPlayerEngine code as it is now in Banshee.Base
32780         * src/DBusIPC.cs:
32781         * src/PlayerInterface.cs:
32782         * src/PlaylistModel.cs:
32783         * src/Preferences.cs: Fix references from Core.Instance.Player to
32784         Banshee.Base.PlayerEngineCore.ActivePlayer
32786         * src/Banshee.Base/Makefile.am: Added PlayerEngineCore.cs
32788         * src/Banshee.Base/PlayerEngineCore.cs: Moved all IPlayerEngine code to
32789         new static class accessible to plugins
32791 2005-12-21  Aaron Bockover  <aaron@aaronbock.net>
32793         * banshee.mdp: Updated MonoDevelop project
32795         * data/banshee.desktop.in.in: Updated Exec pattern
32797         * src/Library.cs: Added new source for the "Frobinator", LocalQueueSource
32799         * src/Main.cs: Support --enqueue
32801         * src/Makefile.am: Added FileTrackInfo.cs
32803         * src/FileTrackInfo.cs: New TrackInfo class that works only with local
32804         files; does not touch the Library
32806         * src/PlayerInterface.cs: Select the Frobinator if it is filled as the
32807         default source; Support the Frobinator when changing sources
32809         * src/PlaylistModel.cs (LoadFromLocalQueue): Support loading from the
32810         the Frobinator
32812         * src/SourceView.cs: Support adding the Frobinator as a source
32814         * src/Banshee.Base/ArgumentQueue.cs: Added "File" support with the 
32815         --enqueue option... it is very special
32817         * src/Banshee.Base/Dap/Dap.cs: Fixed minor bug with GetIcon
32819 2005-12-21  Aaron Bockover  <aaron@aaronbock.net>
32821         * src/Main.cs: Refactored, organized, and cleaned up the entry
32822         code, command line parsing, and instance detection; added three new
32823         command line arguments: --set-position, --hide-field, and --dap
32825         * src/DBusIPC.cs: Added a SelectDap method akin to SelectAudioCd, works
32826         with --dap %h (for Gnome Volume Manager); for any D-Bus methods that
32827         return string, ensure null is not returned to avoid dbus-sharp bug (return
32828         String.Empty instead)
32830 2005-12-21  Aaron Bockover  <aaron@aaronbock.net>
32832         * src/Main.cs: if D-Bus support is disabled, fall back on process 
32833         checking to do instance detection
32835         * src/Banshee.Base/NetworkDetect.cs: Do not try to Dispose a null
32836         NetworkManager.Manager object
32838         * src/DBusIPC.cs: Do not die when D-Bus can't be found; log a warning and
32839         continue to load the player, but some features will probably be disabled:
32841            IPC commands and queries / instance detection (Session Bus)
32842            HAL (System Bus)
32843              - Audio CD detection
32844              - DAP detection
32845            NetworkManager (System Bus)
32847 2005-12-20  Aaron Bockover  <aaron@aaronbock.net>
32849         * banshee.mdp: Updated MonoDevelop project
32851         * src/PlayerInterface.cs: Added UI support for Audio CD status reporting
32852         using the HighlightMessageArea widget
32854         * src/Banshee.Base/ImportManager.cs: Fall back on the Stock.Find icon
32856         * src/Banshee.Base/NetworkDetect.cs: Expose NetworkManager.Manager
32858         * src/Banshee.Base/Dap/DapCore.cs: Play nice when the Banshee.Dap 
32859         directory does not exist, fixes BGO #
32861         * src/Banshee.Widgets/Makefile.am: Renamed HighlightStatusBar.cs to
32862         HighlightMessageArea.cs
32864         * src/Banshee.Widgets/HighlightMessageArea.cs: Renamed file from
32865         HighlightStatusBar.cs; finished initial working version of the widget
32866         with proper drawing and actions
32868 2005-12-19  Aaron Bockover  <aaron@aaronbock.net>
32870         * src/Banshee.Widgets/NotificationAreaIcon.cs: Cleaned up code, and Miguel
32871         committed his string marshalling fix regarding 77026 in Ximian Bugzilla;
32872         removed Banshee.Widgets namespace to keep maintainence easier for other
32873         apps.
32875         * src/NotificationAreaIcon.cs: class renamed to 
32876         NotificationAreaIconContainer; adjust instantiation of NotificationAreaIcon
32877         to reflect removal of Banshee.Widgets namespace
32879         * data/banshee.glade: renamed the main/view container 'Main Container'
32881         * banshee.mdp: Updated MonoDevelop project
32883         * src/Banshee.Widgets/HighlightStatusBar.cs: skeleton for new widget
32884         to show 'important' status messages
32886         * src/Banshee.Widgets/Makefile.am: added HighlightStatusBar.cs
32888         * src/Banshee.Dap/Ipod/IpodDap.cs: removed manual path lookup for icon
32889         fallback; rely only on base.GetIcon if icon is not in the theme
32891         * src/Banshee.Base/NetworkDetect.cs: Added Dispose method to chain into
32892         manager.Dispose
32894         * src/Banshee.Base/NetworkManager/Manager.cs: Added a Dispose method
32895         to suppress the GC finalizing the D-Bus proxy object to work around
32896         the bad IL in finalizer bug
32898         * src/Banshee.Base/Globals.cs: Call Dispose on NetworkDetect
32900         * src/Banshee.Base/IconThemeUtils.cs: Added a new LoadIcon overload
32901         to accept a params array of icon names for fallbacks: 
32902                 LoadIcon("multimedia-player-ipod", "multimedia-player", 
32903                 "gnome-dev-ipod")
32905         * src/Main.cs: Suppress finalizing the dbusCore D-Bus proxy object
32907         * src/PlayerInterface.cs: Do not show the rating/playcount/last played 
32908         columns in the audio CD view; remove references to the SyncColumn; don't
32909         steal space when source view is in edit mode; show the song title in
32910         the title bar; unregister the dbus server object when we shut down banshee;
32911         NotificationAreaIcon->NotificationAreaIconContainer; add skeleton support
32912         for the new HighlightStatusBar for Audio CD status messages
32914         * src/PlaylistView.cs: expose the rating/playcount/last played columns
32915         so the main UI can show/hide as needed for different views; remove the
32916         sync column; show DRM/protected status in the play indicator column
32918         * src/RatingRenderer.cs: minor fixes
32920         * src/SourceView.cs: pull in the audio cd source icon from the theme;
32921         add an EditingRow property to tell the UI that the source view is 
32922         in edit mode
32924 2005-12-18  Aaron Bockover  <aaron@aaronbock.net>
32926         * banshee.mdp: Updated MonoDevelop project
32928         * src/Library.cs: Updated to allow proper device renaming
32930         * src/DapPropertiesDialog.cs: Dialog box to show properties of a DAP;
32931         allows changing of the Name and Owner properties
32933         * src/Makefile.am: Added DapPropertiesDialog.cs
32935         * src/PlayerInterface.cs: Enable showing of the properties dialog for
32936         DAPs; properly update DAP devices when name/owner is changed
32938         * src/Banshee.Base/Utilities.cs: Added a ReflectionUtil class - contains
32939         IsVirtualMethodImplemented which determines if a subclass implements
32940         a virtual method in its base class; used by Banshee.Dap.DapDevice to 
32941         see if a DAP supports setting the name and/or owner on the device
32943         * src/Banshee.Base/Dap/Dap.cs: Allow detecting whether or not the DAP
32944         supports setting name/owner; move setting to SetName/SetOwner as a virtual
32945         method for DAP implementations to override
32947         * src/Banshee.Dap/Ipod/IpodDap.cs: Implement SetName/SetOwner
32949         * src/Banshee.Dap/Njb/NjbDap.cs: Implement SetOwner
32951 2005-12-18  Gabriel Burt  <gabriel.burt@gmail.com>
32953         * data/banshee.desktop.in.in: Change Comment to 'Play and organize
32954         your music', following suggestions of the HIG.
32956         * data/banshee.glade: Change CheckButton labels to sentence case.
32958         * src/PlayerInterface.cs: Change tooltips to sentence case.
32960         * src/Banshee.Base/PipelineProfile.cs: Add comment for translators.
32962 2005-12-18  Aaron Bockover  <aaron@aaronbock.net>
32964         * src/PlayerInterface.cs: Show a warning dialog when trying to play
32965         an "unplayable" track; set the window icon and title for log dialogs
32967         * src/Banshee.Dap/Njb/Makefile.am: Added NjbDapTrackInfo.cs
32968         
32969         * src/Banshee.Dap/Njb/NjbDapTrackInfo.cs: DapTrackInfo implementation for
32970         NJB devices
32972         * src/Banshee.Dap/Njb/NjbDap.cs: Added support to list tracks; install
32973         device properties from the device
32975         * src/Banshee.Base/Dap/Dap.cs: Added UID support through the public
32976         Uid property
32978         * src/Banshee.Base/Dap/DapTrackInfo.cs: All implementations now have
32979         CanSaveToDatabase = false
32981         * src/Banshee.Base/IPlayerEngine.cs:
32982         * src/Banshee.MediaEngine/Gstreamer/GstPlayerEngine.cs:
32983         * src/Banshee.MediaEngine/Helix/HelixPlayer.cs:
32984         * src/Banshee.MediaEngine/Vlc/VlcPlayerEngine.cs: Changed Open method
32985         to accept a System.Uri as a second parameter - use it instead of 
32986         TrackInfo.Uri 
32988 2005-12-18  Aaron Bockover  <aaron@aaronbock.net>
32990         * src/PlayerInterface.cs: Updated DAP synchronize dialog to have wording
32991         generic for all DAPs (was very iPod specific), use HighlightedSource
32992         instead of SelectedSource for getting the DapSource
32994         * src/Banshee.Dap/Njb/NjbDap.cs: Added a GenericName override, added
32995         SupportedCodec attributes
32997 2005-12-18  Aaron Bockover  <aaron@aaronbock.net>
32999         * vacuum.sh: Removed
33001         * Makefile.am: Added MAINTAINERCLEANFILES 
33003 2005-12-18  Aaron Bockover  <aaron@aaronbock.net>
33005         * configure.ac: Do not copy the provided njb-sharp.dll.config from
33006         njb-sharp; we provide our own for the sake of libnjbglue.
33008         * src/Banshee.Dap/Njb/njb-sharp.dll.config.in: Added njb-sharp.dll DLL
33009         map for libnjb/libusb/libnjbglue
33011         * src/Banshee.Dap/Njb/Makefile.am: Install njb-sharp.dll.config
33013         * src/Banshee.Dap/Njb/NjbDap.cs: Initialize the NJB Discoverer inside
33014         the NjbDap type constructor and catch any exceptions it may throw; 
33015         rely on Njb.DeviceId table to pre-verify a USB device as an NJB device
33016         using usb.vendor_id and usb.product_id properties from HAL (removes
33017         requirement of updated FDI files in HAL to expose a 
33018         portable_audio_player.type=njb property; Have the discoverer rescan for
33019         NJB devices after a new USB device passes the vendor_id/product_id test
33021         * src/Banshee.Dap/Njb/NjbDap.cs:
33022         * src/Banshee.Dap/Ipod/IpodDap.cs: Do not try to fall back on loading
33023         custom icon from a path. Only try custom icon from the theme and fall
33024         back on base.GetIcon()
33026         * src/Banshee.Base/Dap/DapCore.cs: Added a timeout+re-probe to handle
33027         a device throwing WaitForTimeoutException during probe initialization
33029         * src/Banshee.Base/Dap/DapMisc.cs: Added WaitForTimeoutException that is
33030         similar to WaitForPropertyChangeException only the re-probe mechanism
33031         is a timeout instead of a property change signal from HAL; not actually
33032         in use, but could be useful for other DAP detection in the future
33034         * src/Core.cs: Removed UserRealName/UserFirstName fields;
33036         * src/Library.cs: Removed old IpodSource; show the user's name for
33037         the name of the library (i.e. Aaron's Music Library)
33039         * src/PlayerInterface.cs: All custom source name setting is done in 
33040         the proper source (LibrarySource was changed for this); minor syntax
33041         cleaning
33043 2005-12-17  Aaron Bockover  <aaron@aaronbock.net>
33045         * configure.ac:
33046         * data/images/Makefile.am:
33047         * data/images/ipod/*: Removed ipod/DAP images as they will be a part of
33048         an extended version of the Tango icon theme (http://tango-project.org).
33049         A separate package for installing these icons into Tango is available
33050         for the time being: 
33052         http://banshee-project.org/files/misc/tango-extra-devices-0.6.2.tar.gz
33054 2005-12-14  Aaron Bockover  <aaron@aaronbock.net>
33056         * configure.ac: Version 0.10.1 release; only check for spider GStreamer
33057         element against GStreamer 0.8
33059         * src/PlayerInterface.cs: Re-enable tooltips, perform source actions
33060         on the highlighted source instead of selected source
33062         * docs/en/*: Updated monodoc documentation
33064 2005-12-14  Aaron Bockover  <aaron@aaronbock.net>
33066         * configure.ac: Version 0.10.1
33067         
33068         * banshee.mdp: Updated MonoDevelop project
33069         
33070         * data/Makefile.am: Added banshee.glade and UIManagerLayout.xml
33072         * data/banshee.glade: Consolidated multiple glade files from data/glade/*
33074         * data/UIManagerLayout.xml: XML defining menus for new UIManager/Action
33075         layout; actions defined in src/Banshee.Base/ActionManager.cs
33077         * data/glade/*: Removed; glade is now in data/banshee.glade
33079         * data/images/ipod/Makefile.am: Install icons to devices/ instead of
33080         extras/devices
33082         * src/BurnCore.cs:
33083         * src/RipTransaction.cs:
33084         * src/Banshee.Base/FileEncodeAction.cs: Set the Header property on
33085         ActiveUserEvent to show more detail when performing actions
33087         * src/TrackProperties.cs: Load UI from banshee.glade, do not show
33088         advanced properties option if tracks are on an audio CD
33090         * src/Preferences.cs: Load UI from banshee.glade
33092         * src/DBusIPC.cs: Added more functionality to D-Bus API thanks in part
33093         to Thijs Vermeir: set volume/set position
33095         * src/BansheeDbusClient.cs: Added abstract signatures to BansheeCore 
33096         remote D-Bus class
33098         * src/Library.cs: Moved BytesToString to Banshee.Dap.Utilities; replaced
33099         local calls with Utilities.BytesToString
33101         * src/LibraryTrackInfo.cs: Read ASIN from the database to enable cover
33102         art from local tracks where this is set (by the banshee ripper)
33104         * src/Makefile.am: Removed data/glade/* references; replaced with
33105         references to data/banshee.glade
33107         * src/VersionInformationDialog.cs: Increased default width of dialog
33109         * src/SourceView.cs: Moved ColorBlend to Banshee.Base.Utilities; added
33110         a ResetHighlight method to highlight the selected/active source (this is
33111         used by the source popup menu in PlayerInterface.cs)
33113         * src/Banshee.Widgets/CoverArtThumbnail.cs: Added a new cover art
33114         widget class: CoverArtView that simply draws a cover and scales 
33115         with the correct ratio; used to display cover art underneath the
33116         source view in the main interface
33118         * src/StockIcons.cs: Load all theme icons that Banshee will need as
33119         stock icons, fall back on resource icons if not available as stock
33120         or in the theme
33122         * src/TrackInfoHeader.cs: Redesigned header for displaying track
33123         information
33125         * src/NotificationAreaIcon.cs: Use Globals.ActionManager to load the
33126         tray icon menu
33128         * src/PlayerInterface.cs: Moved all menu and major buttons to the new
33129         UIManager/Action setup; cleaned up, refactored, and reorganized a lot
33130         of code; added some methods to allow the D-Bus object to set the volume
33131         and perform seek operations; Added/fixed --audio-cd, --dap, and --play
33132         command line option support; lots of general UI clean up and polish
33134         * src/Banshee.Widgets/Makefile.am: Added ActionButton.cs
33136         * src/Banshee.Widgets/ActionButton.cs: Two classes that work with
33137         Gtk.Action objects: ActionButton and ActionToggleButton
33139         * src/Banshee.Base/ActionManager.cs: Define all actions and some
33140         helper methods for dealing with Gtk.Action and widgets
33142         * src/Banshee.Base/Dap/Dap.cs: GetIcon falls back first on the
33143         generic multimedia-player icon from the icon theme and then on
33144         gnome-dev-ipod; provide GenericName and HalUdi properties
33146         * src/Banshee.Dap/Ipod/IpodDap.cs: Load ipod icon from the theme
33147         and fall back on loading from a file; implement GenericName, return
33148         as "iPod"
33150         * src/Banshee.Base/ArgumentQueue.cs: Dequeue returns the object just
33151         removed from the queue
33153         * src/Banshee.Base/IconThemeUtils.cs: Added HasIcon() method to
33154         determine if an icon is available in the defaul theme
33156         * src/Banshee.Base/Utilities.cs: Fixed BytesToString implementation
33157         to properly round and display fractional GB sizes; added ColorBlend
33158         method
33160         * src/Banshee.Base/Makefile.am: Added UIManagerLayout.xml as a resource
33162         * src/Banshee.Base/Globals.cs: Added ActionManager property to return
33163         global ActionManager instance
33165         * src/Banshee.Base/GConfKeys.cs: Added ShowCoverArt key
33166         
33167 2005-12-13  Aaron Bockover  <aaron@aaronbock.net>
33169         * src/BansheeDbusClient.cs: Sample program using the the Banshee D-Bus
33170         API to do basic playback control and display the current song
33171         
33172         * src/BansheeDbusClient.Makefile: A simple Makefile to build the 
33173         Banshee Dbus Client sample program
33174         
33175         * src/Makefile.am: Added BansheeDbusClient.{Makefile,cs} to EXTRA_DIST;
33176         added a 'dbus-client-sample' rule to build the sample client
33178 2005-12-08  Aaron Bockover  <aaron@aaronbock.net>
33180         * src/Banshee.Base/Utilities.cs: Added UnmountVolume and ExecProcess
33181         utility methods
33183         * src/Banshee.Base/AudioCd/AudioCdDisk.cs: Call Utilities.UnmountVolume
33184         if audio CD happens to be mounted (multi-session disk) before calling
33185         the eject ioctl
33187         * src/Banshee.Base/HalCore.cs: Added license header to file
33189 2005-12-08  Aaron Bockover  <aaron@aaronbock.net>
33191         * src/Bashee.Base/AudioCd/AudioCdCore.cs: Fixed minor detection bug;
33192         multi-session discs were only being detected - regular audio CDs were not
33194 2005-12-08  Aaron Bockover  <aaron@aaronbock.net>
33196         * src/Banshee.Base/NetworkDetect.cs: whoops, missing closing parenthesis
33198 2005-12-08  Aaron Bockover  <aaron@aaronbock.net>
33200         * src/Banshee.Base/NetworkDetect.cs: Only fire StateChanged event
33201         if the state change is State.Connected or State.Disconnected
33202         * src/Banshee.Base/NetworkManager/Manager.cs: Changed header to 
33203         show proper file name
33205 2005-12-08  Aaron Bockover  <aaron@aaronbock.net>
33207         * banshee.mdp: Updated MonoDevelop project
33208         * src/Banshee.Base/NetworkManager/*.c: C# implementation of the 
33209         NetworkManager DBus API using dbus-sharp
33210         * src/Banshee.Base/NetworkDetect.cs: front-end class to basic network
33211         detection and notification through NetworkManager; if NetworkManager
33212         is not available, NetworkDetect always assumes a connection is available
33213         * src/Banshee.Base/AudioCdDisk.cs: Become 'Network Aware': will not
33214         attempt to fetch track information from MusicBrainz if there is
33215         not a network connection; will fetch information once a connection
33216         becomes available
33217         * src/Banshee.Base/Makefile.am: Added NetworkManager C# sources
33218         * src/Banshee.Base/Globals.cs: Added a Network property and 
33219         placeholder Dispose method
33220         * src/Core.cs (Shutdown): Call Globals.Dispose()
33222 2005-12-06  Aaron Bockover  <aaron@aaronbock.net>
33224         * src/PlaylistModel.cs: Minor fix
33226 2005-12-06  Aaron Bockover  <aaron@aaronbock.net>
33228         * configure.ac: Fixed weird VERSION/ASM_VERSION definitions; Version 0.10
33230         * NEWS: Updated 
33232 2005-12-06  Aaron Bockover  <aaron@aaronbock.net>
33233         
33234         * configure.ac: Require ipod-sharp 0.5.12
33236         * docs/*: Updated API Documentation
33238         * banshee.mdp: updated MonoDevelop project
33240         * src/Banshee.Widgets/ActiveUserEvent.cs: Fixed bug regarding multiple
33241         timeouts
33243         * src/Banshee.Dap/Njb/Makefile.am: Link against Banshee.Widgets.dll
33244         
33245         * src/Banshee.Dap/Njb/NjbDap.cs: Placeholder implementation of 
33246         Synchronize method
33248         * src/Banshee.Dap/Ipod/Makefile.am: link against Banshee.Widgets.dll
33249         and Mono.Posix
33251         * src/Banshee.Dap/Ipod/IpodDapTrackInfo.cs: Updated with minor fixes
33253         * src/Banshee.Dap/Ipod/IpodDap.cs: Full syncing implementation of new 
33254         syncing support in generic DAP base class
33256         * src/Banshee.Base/Dap/DapMisc.cs: Misc/Utility generic DAP supporting 
33257         types
33259         * src/Banshee.Base/Dap/Dap.cs: Now supports manual and automatic generic
33260         syncing and transcoding
33262         * src/Banshee.Base/Utilities.cs: Disabled Event class, added 
33263         PathUtil.MakeFileNameKey
33265         * src/Banshee.Base/Makefile.am: add PipelineProfile.cs, FileEncoder.cs,
33266         GstFileEncoder.cs, FileEncodeAction.cs, DapMisc.cs
33268         * src/Banshee.Base/IconThemeUtils.cs: Use Entry Assembly instead of 
33269         Calling Assembly as all the resources are in the Entry Assembly
33271         * src/Banshee.Base/HalCore.cs: Don't use Event.Invoke for now, it has
33272         some issues
33274         * src/Banshee.Base/GstMisc.cs: Add filter to mime-type fetching in case
33275         mime type is returned with attributes (gvfs)
33277         * src/SourceView.cs: Re-enabled DAP updating through DnD
33279         * src/PlaylistView.cs: Safe-guard against potential nullrefs in the
33280         renderer data functions
33282         * src/PlayerInterface.cs: Connected DAP GUI elements back to DAP
33283         syncing events, simplified DAP syncing entry point, re-enabled DAP syncing;
33284         show ripped tracks in library view when they become available and if
33285         they match any active search (fixes BGO #316132)
33287         * src/Makefile.am: Moved FileEncoder.cs, GstFileEncoder.cs, 
33288         FileEncodeTransaction.cs, and PipelineProfile.cs to Banshee.Base
33290         * src/Library.cs: Connected DapSource.IsSyncing to DAP device; moved
33291         Library.MakeFileNameKey to Banshee.Base.PathUtils
33293 2005-12-05  Aaron Bockover  <aaron@aaronbock.net>
33295         * src/Banshee.MediaEngine/Gstreamer/Makefile.am: Define whether the C
33296         engine is 0.8 or 0.10 
33298         * src/Banshee.MediaEngine/Gstreamer/GstPlayerEngine.cs: Added an 
33299         IPlayerEngine implementation for the 0.10 backend
33301         * libbanshee/gst-playback-0.10.c: Merged the GStreamer 0.10 playback 
33302         backend
33304         * libbanshee/gst-misc-0.10.c: Disabled typefind again, as 0.10 seems to
33305         report everything as application/x-id3
33307         * entagged-sharp/*: Updated entagged-sharp checkout
33309 2005-12-05  Mike Kestner  <mkestner@novell.com>
33311         * src/Banshee.Dap/*/Makefile.am: only make the _SCRIPTS optional.
33313 2005-12-05  Aaron Bockover  <aaron@aaronbock.net>
33315         * libbanshee/gst-misc-0.10.c: gstreamer_initialize and 
33316         gstreamer_detect_mimetype ported to GStreamer 0.10
33318         * src/PlayerInterface.cs: disabled specialkeys for now, there are problems
33320         * src/Banshee.Widgets/ActiveUserEvent.cs: Added a Header property to
33321         show a bold header on top of the regular text message
33323         * src/Banshee.Base/ImportManager.cs: Set user_event.Header to the
33324         count progress and user_event.Message to the returned message (filename)
33326         * banshee.mdp: Updated MonoDevelop project
33328         * configure.ac: renamed --with-gstreamer-dev to --with-gstreamer-0-10,
33329         fixed some minor GStreamer 0.10 detection issues
33331         * data/glade/player.glade: Hide the 'new playlist' button, will probably
33332         be removed in the future
33334         * src/ToggleStates.cs: Updated state strings to 'Shuffle' and 'Continuous'
33336         * src/Banshee.Widgets/ActiveUserEvent.cs: minor thread fix
33337         
33338         * src/Banshee.Widgets/MultiStateToggleButton.cs: minor display fix
33340         * libbanshee/Makefile.am: Reorganized the way the GStreamer sources are
33341         handled so the -0.8 ones are used if GStreamer 0.8 is enabled and the
33342         0.10 ones if --with-gstreamer-0-10 was passed to configure
33343         
33344         * libbanshee/: Renamed gstreamer to have a gst- prefix and a version 
33345         number suffix (-0.8 or -0.10). 0.10 versions have the API skeletons so
33346         they will build against GStreamer 0.10 and can be ported one at a time;
33347         tabs->spaces on everything too
33349 2005-12-04  Aaron Bockover  <aaron@aaronbock.net>
33351         * src/AboutBox.cs: Added Stephane Raimbault to translators
33353         * src/Makefile.am: Make distcheck happy
33355         * src/PlayerInterface.cs: Report when a song cannot be imported
33356         
33357         * src/Banshee.Base/ImportManager.cs: Increase progress reporting resolution
33359 2005-12-04  Aaron Bockover  <aaron@aaronbock.net>
33361         * configure.ac: Bump to 0.10, added fr translation to ALL_LINGUAS
33363         * banshee.mdp: Updated MonoDevelop project
33365         * docs/*: Updated API docs
33367         * entagged-sharp/Tag.cs: minor fix
33368         
33369         * libbanshee/gst-misc.c: Added gstreamer_initialize from gst-init.c; 
33370         added new gstreamer_detect_mimetype function
33371         
33372         * libbanshee/gst-misc.h: Added gstreamer_initialize, 
33373         gstreamer_detect_mimetype
33374         
33375         * libbanshee/Makefile.am: Removed gst-init.c/gst-init.h
33376         
33377         * libbanshee/gst-init.[ch]: Removed, gstreamer_initialize moved 
33378         to gst-misc.c
33379         
33380         * libbanshee/gst-player-engine.c:
33381         * libbanshee/gst-encode.c: 
33382         * libbanshee/cd-rip.c: Include gst-misc.h instead of gst-init.h
33384         * src/Makefile.am: update icon resources; build Banshee.Widgets before
33385         Banshee.Base; removed ThemeIcons.cs, GstMisc.cs (now in Banshee.Base),
33386         use $(top_builddir) instead of $(srcdir)../ for resources
33388         * src/PlaylistModel.cs: removed ImportCanUpdate; now handled by PlayerUI;
33389         removed LibraryLoadTransaction/FileLoadTransaction
33391         * src/PlayerInterface.cs: Removed old FileLoadTransaction method of
33392         importing to library; using new ImportManager - fixed BGO #314965, #318330;
33393         only show newly imported songs in the view if in library view; only add 
33394         newly imported songs to library view if no search is active or the 
33395         new song matches the current search; minor fixes to OnSimpleSearch; 
33396         moved search matching to separate method: DoesTrackMatchSearch - 
33397         fixed BGO #316102; use new IconThemeUtils for loading icons from the 
33398         icon theme where applicable; fixed BGO #323202
33400         * src/LibraryTrackInfo.cs: Use Gstreamer.DetectMimeType to parse mime-type;
33401         set the mimetype field to Entagged.AudioFile.MimeType property; mime-type
33402         is now saved to the database
33404         * src/StockIcons.cs: Renamed applicable icons to the proper icon theme name
33406         * src/Core.cs (Shutdown): Call Banshee.Dap.DapCore.Dispose()
33407         
33408         * src/AboutBox.cs:
33409         * src/BurnCore.cs:
33410         * src/Dialogs.cs:
33411         * src/LogCoreViewer.cs:
33412         * src/Preferences.cs:
33413         * src/VersionInformationDialog.cs: Use IconThemeUtils to set window
33414         icon and any applicable icon theme icons
33415         
33416         * src/NotificationAreaIcon.cs:
33417         * src/ToggleStates.cs: Use IconThemeUtils
33418         
33419         * src/TrackProperties.cs: IconThemUtils to set window icon, use
33420         Gstreamer.DetectMimeType to load mime type
33422         * src/Banshee.Widgets/ActiveUserEvent.cs: Fixed up CancelRequest event
33423         invokation; added a get accessor for Fraction property
33424         
33425         * src/Banshee.Widgets/SearchEntry.cs: cleaned up a bit; added 
33426         IsQueryAvailable property; return a Trim()med string for Query property
33427         
33428         * src/Banshee.Widgets/VolumeButton.cs: Use proper icon theme icon names
33430         * src/Banshee.Dap/Ipod/IpodDap.cs (Eject): Call base.Eject() after
33431         iPod specific eject finishes
33433         * src/Banshee.Dap/Ipod/Makefile.am: Cleand up a bit;
33434         
33435         * src/Banshee.Dap/Njb/Makefile.am: cleaned up a bit; install all NJB
33436         assemblies and shared libraries to Njb banshee DAP directory
33437         
33438         * src/Banshee.Dap/Njb/NjbDap.cs: More skeleton work on NJB support;
33439         devices now will show up, so detection is working; add/remove HAL events
33440         are a little out of sync, need to fix that
33442         * src/Banshee.Base/ImportManager.cs: New import backend for managing
33443         import requests and proxying final URIs to be imported; uses new 
33444         ActiveUserEvent progress reporting interface
33446         * src/Banshee.Base/UriList.cs: Class for properly dealing with many
33447         forms of path/URI input (string, string with \r\n delimiters, 
33448         SelectionData, and string [])
33450         * src/Banshee.Base/GstMisc.cs: moved from src/; added a DetectMimeType
33451         method to find the mime type of a file: uses GStreamer typefind element,
33452         falls back on Gnome.Vfs.MimeType, falls back on entagged/<extension>
33454         * src/Banshee.Base/IconThemeUtils.cs: utility class for loading pixbufs
33455         from the icon theme and falling back on pixbuf resources in the calling
33456         assembly
33458         * src/Banshee.Base/Dap/DapCore.cs: Added a Dispose to properly
33459         iterate through connected devices and call their Dispose methods; Connect
33460         to the Ejected event on all Daps to remove them from the DAP table
33461         when they are ejected
33463         * src/Banshee.Base/Dap/Dap.cs: Added an Ejected event, implement 
33464         IDisposable, fixed up invoke for TracksCleared; invoke new Ejected event
33465         
33466         * src/Banshee.Base/Makefile.am: Added IconThemeUtils.cs, GstMisc.cs,
33467         ImportManager.cs and UriList.cs; link against Gtk#
33469 2005-12-04  Christian Schaller  <uraeus@gnome.org>
33471         * configure.ac: change testing to check for GStreamer 0.10
33473 2005-12-01  Aaron Bockover  <aaron@aaronbock.net>
33475         * src/Banshee.Widgets/SimpleNotebook.cs:
33476         * src/Banshee.Widgets/SearchEntry.cs: Changed namespace to Banshee.Widgets
33477         * src/Banshee.Base/GConfKeys.cs:
33478         * src/Banshee.Base/ConfigureDefines.cs.in: Changed namespace to 
33479         Banshee.Base
33480         * src/PipelineProfile.cs:
33481         * src/PlaylistColumns.cs: Add using Banshee.Base;
33482         * Makefile.am: Added docs to SUBDIRS
33484         * docs/: Added monodoc generated API documentation for Banshee.Base,
33485         Banshee.Dap, Banshee.MediaEngine, Banshee.Widgets, and Hal
33486         * configure.ac: Added --disable-docs support
33488         * configure.ac: Use AM_GST_ELEMENT_CHECK to check for GStreamer pipeline
33489         elements that are needed at runtime
33491 2005-12-01  Aaron Bockover  <aaron@aaronbock.net>
33493         * src/Banshee.Dap/Ipod/IpodDapTrackInfo.cs: DapTrackInfo implementation
33494         for the iPod
33496         * configure.ac: Version 0.9.13; Added Danish translation (da) to 
33497         ALL_LINGUAS; ipod-sharp is now optional; detect njb-sharp, also optional;
33498         Added --(enable|disable)-(ipod|njb)
33499         * banshee.mdp: Updated MonoDevelop project
33500         * data/glade/player.glade: Generalized all iPod references to "DAP" 
33501         * hal-sharp/*: Updated to latest hal-sharp
33502         * libbanshee/hal-context.[ch]: Allow setting callback for property watching
33503         * src/AboutBox.cs: Added Lasse Bang Mikkelsen to translator credits
33504         * src/Core.cs: Removed IpodCore
33505         * src/Library.cs: Added DapSource, removed IpodSource
33506         * src/Makefile.am: Removed Ipod*.cs/ipod-sharp references
33507         * src/PlayerInterface.cs: All iPod code generalized to DAP code using
33508         new Banshee.Dap classes and DapSource. Syncing is disabled for this build
33509         as the iPod sync code needs to be migrated to the new DAP sync model; 
33510         same thing with iPod properties dialog
33511         * src/PlaylistModel.cs:
33512         * src/PlaylistView.cs: iPod code generalized to DAP code
33513         * src/SourceView.cs: Removed IpodCore code; read and listen to DapCore;
33514         generalized iPod code to DAP code
33515         * src/Banshee.Base/HalCore.cs: Add property watching support
33516         * src/Banshee.Base/Dap/Dap.cs: Added more base functionality to 
33517         generic abstract DapDevice class
33518         * src/Banshee.Base/Dap/DapCore.cs: Support queueing potential DAP devices
33519         in a wait table; this allows mass storage DAPs to wait for 
33520         volume.is_mounted to change to true, and ask to be tested again as a DAP;
33521         added events to notify consumer when DAPs are added/removed; added a
33522         Devices[] property that lists all connected and initialized DAPs
33523         * src/Banshee.Base/Dap/DapTrackInfo.cs: tiny hack added to reduce
33524         changes needed in player interface; will fix later
33525         * src/Banshee.Dap/Ipod/IpodDap.cs: iPod implementation of DapDevice; 
33526         currently read-only; syncing code needs to be migrated to new DAP sync
33527         model
33528         * src/Banshee.Dap/Ipod/Makefile.am: Link against gtk-sharp-2.0, only
33529         build if ipod-sharp is enabled by configure
33530         * src/Banshee.MediaEngine/Vlc/Makefile.am: fixed minor build issue
33532 2005-11-30  Aaron Bockover  <aaron@aaronbock.net>
33534         * src/Banshee.Base/SpecialKeys.cs: Added a Delay property; only raise
33535         events if duration since last raise has been longer than a set delay;
33536         fixes problems with remotes that fire on a very small delay when holding
33537         a button down
33538         * src/PlayerInterface.cs: Use a 350MS delay for SpecialKeys; catch
33539         any exception CoverArtThumbnail may throw; only enable SpecialKeys support
33540         if turned on through GConf
33541         * src/CoverArtThumbnail.cs: Throw an exception if file can't be found
33542         * src/GConfKeys.cs: Added new key: EnableSpecialKeys
33543         * data/banshee.schemas.in: Added new schema for key: EnableSpecialKeys
33545         * src/IPlaybackModel.cs:
33546         * src/IpodCore.cs:
33547         * src/IpodTrackInfo.cs:
33548         * src/LibraryTrackInfo.cs:
33549         * src/PlayerInterface.cs:
33550         * src/PlaylistModel.cs:
33551         * src/PlaylistView.cs:
33552         * src/RipTransaction.cs:
33553         * src/TrackProperties.cs:
33554         * src/Banshee.Base/TrackInfo.cs:
33555         * src/Banshee.Base/AudioCd/AudioCdDisk.cs:
33556         typeof(Banshee.Base.TrackInfo.Duration) is now System.TimeSpan,
33557         changed from long; all references to TrackInfo.Duration updated to reflect
33558         change of type
33560         * entagged-sharp/*: synced with SVN; (long)Length->(TimeSpan)Duration
33562 2005-11-29  Aaron Bockover  <aaron@aaronbock.net>
33563         
33564         * src/PlaylistView.cs:
33565         * src/TrackProperties.cs:
33566         * src/IpodTrackInfo.cs:
33567         * src/LibraryTrackInfo.cs:
33568         * src/Banshee.Base/AudioCd/AudioCdTrackInfo.cs: Updated to reflect API
33569         changes in Banshee.Base.TrackInfo
33570         * src/Banshee.Base/TrackInfo.cs: Minor API changes, more conforming to
33571         .NET Framework Guidelines, and adjusted access levels to some properties
33572         and fields; added new BansheeTodo attributes to some unfinished properties
33573         * src/Banshee.Base/BansheeTodo.cs: Attribute class to mark types and
33574         members as "unfinished", two static methods to print TODO reports
33575         * src/Banshee.Base/Makefile.am: Added BansheeTodo.cs
33576         * src/Main.cs: Added command line option --print-todo to generate a TODO
33577         report based on the BansheeTodo attribute
33579 2005-11-29  Aaron Bockover  <aaron@aaronbock.net>
33581         * src/mcs.exe: Removed internal 1.1.9.2 support
33582         * configure.ac: Require Mono 1.1.10; removed internal 1.1.9.2. mcs support
33584         * src/TrackProperties.cs: 
33585         * data/glade/trackinfo.glade: Added advanced view support for MimeType and
33586         Encoding Type properties
33587         * entagged-sharp/Asf/AsfFileReader.cs: Added video/x-ms-asf as supported
33588         mimetype because gnome-vfs is dumb
33589         * entagged-sharp/*: Updated entagged-sharp checkout to latest Mono SVN;
33590         fixes BGO #320038; minor API changes and optimizations
33591         * data/banshee.desktop.in.in: Updated MimeType field with supported 
33592         MimeTypes from entagged-sharp
33594 2005-11-28  Aaron Bockover  <aaron@aaronbock.net>
33596         * banshee.mdp: Updated MonoDevelop project
33597         * libbanshee/cd-rip.c:
33598         * libbanshee/gst-encode.c: re-phrased keywords in error messages to 
33599         be more friendly (sink->plugin, element->plugin) (BGO #321534)
33600         * libbanshee/hal-context.c: _() around error strings, fixed minor bug where
33601         dbus error message was freed before being strduped, so it allways rendered
33602         as (null); error messages make more sense; removed g_warning() calls as
33603         messages will be printed in managed land; Added MIT license header
33604         * libbanshee/hal-context.h: Added MIT license header
33605         * src/Core.cs: Catch anything Banshee.Base.HalCore.Initialize() may throw
33606         and push a warning
33607         * src/Banshee.Base/HalCore.cs: Added an Initialized property; safely handle
33608         cases where HAL initialization may fail; throw proper exception with
33609         verbose warnings from hal-context.c
33610         * src/Banshee.Base/AudioCd/AudioCdCore.cs: Throw exception if HalCore is
33611         not initialized; disables Audio CD support if that happens
33612         * src/Banshee.Base/Dap/DapCore.cs: Same thing as AudioCdCore; do not
33613         load DAP assemblies if HalCore is not initialized; effectively disables
33614         DAP support in this case
33615         * src/Banshee.Widgets/NotificationAreaIcon.cs: Better NotificationAreaIcon
33616         class (fixes BGO #321684); recovers from panel crashing; moved from
33617         src/NotificationAreaIcon.cs (TrayIcon->NotificationAreaIcon)
33618         * src/Banshee.Widgets/Makefile.am: Added NotificationAreaIcon.cs
33619         * src/NotificationAreaIcon.cs: Use new NotificationAreaIcon in 
33620         src/Banshee.Widgets/NotificationAreaIcon.cs
33622 2005-11-28  Aaron Bockover  <aaron@aaronbock.net>
33624         * data/glade/trackinfo.glade: Added advanced info expander and table
33625         * src/TrackProperties.cs: cleaned/reformatted code, added advanced 
33626         properties to dialog (file name, bitrate, channels, samplerate vbr)
33627         * data/banshee.schemas.in: 
33628         * src/Banshee.Base/GConfKeys.cs: Added TrackPropertiesExpanded key to
33629         save state of advanced expander in the track properties dialog
33631         * banshee.mdp: Added data files to MonoDevelop project
33632         * data/banshee.schemas.in: Added schema for /apps/Banshee/WindowMaximized
33633         * src/Banshee.Base/GConfKeys.cs: Added new key: WindowMaximized
33634         * src/PlayerInterface.cs: Remember window maximization state, ignore
33635         saving maximization state when hiding the window (fixes BGO #316784)
33637 2005-11-28  Aaron Bockover  <aaron@aaronbock.net>
33639         * src/Banshee.Base/SpecialKeys.cs: minor cleanup/trim-down
33641 2005-11-28  Aaron Bockover  <aaron@aaronbock.net>
33643         * src/PlayerInterface.cs: Consume Banshee.Base.SpecialKeys and support
33644         Play/Pause, Next, and Previous MMKeys
33645         * src/Banshee.Base/SpecialKeys.cs: new fully managed SpecialKeys class
33646         that provides MMKeys support by p/invoking X11 and GDK functions; resolves
33647         BGO #319545
33648         * src/Banshee.Base/Makefile.am: Add SpecialKeys.cs, DapTrackInfo.cs
33649         * src/Banshee.Base/Dap/DapTrackInfo.cs: Currently empty DapTrackInfo class
33650         * src/Banshee.Base/Dap/DapCore.cs: Added license header, debug printing
33651         for new DAP arbitrary property support
33652         * src/Banshee.Base/Dap/Dap.cs: Added more base functionality to the new
33653         abstract DAP class (Dap), provides an arbitrary property system
33654         * src/Banshee.Dap/Njb/Njb.cs: Do not extend Banshee.Dap.Dap for now,
33655         empty placeholder class
33656         * src/Banshee.Dap/Ipod/Ipod.cs: Provide iPod implementation of current
33657         state of Banshee.Dap.Dap abstract class
33658         * src/Banshee.Dap/Ipod/Makefile.am: Install ipod-sharp into Banshee.Dap
33659         * src/Banshee.Dap/Ipod/ipod-sharp.dll.config.in: DLL map for ipod-sharp
33660         * configure.ac: output src/Banshee.Dap/Ipod/ipod-sharp.dll.config;
33661         new variable, IPODSHARP_ASSEMBLIES for use in 
33662         src/Banshee.Dap/Ipod/Makefile.am
33663         * hal-sharp/HalDevice.cs: Updated hal-sharp snapshot, adds 
33664         Hal.Device.Parent, needed by Banshee.Dap.Ipod.IpodDap
33665         * libbanshee/hal-context.c: disable debug output
33666         * banshee.mdp: Updated MonoDevelop project
33668 2005-11-27  Aaron Bockover  <aaron@aaronbock.net>
33670         * src/Banshee.Base/Utilities.cs: new Event class for smart handling of
33671         invoking event delegates
33673 2005-11-26  Aaron Bockover  <aaron@aaronbock.net>
33675         * src/PlayerInterface.cs: Fixed bug/exception in tray icon setup
33677 2005-11-26  Aaron Bockover  <aaron@aaronbock.net>
33679         * banshee.mdp: Updated MonoDevelop project
33681         * src/Banshee.Base/Dap/DapCore.cs: Load DAP implementation assemblies
33682         at runtime to build type support table
33683         * src/Banshee.Dap/Njb/NjbDap.cs: Fixed namespace/class name typos
33685         * configure.ac: Output src/Banshee.Dap/{Ipod,Njb}/Makefile
33686         * src/Banshee.Base/Dap/DapCore.cs: Static class for all DAP event 
33687         management and device detection
33688         * src/Banshee.Base/Dap/Dap.cs: Base DAP class and related types
33689         * src/Banshee.Dap/Ipod: Ipod implementation of Banshee.Dap.Dap (incomplete)
33690         * src/Banshee.Dap/Njb: NJB implementation of Banshee.Dap.Dap (incomplete)
33691         * src/Banshee.MediaEngine/Makefile.am:
33692         * src/Banshee.MediaEngine/Gstreamer/Makefile.am:
33693         * src/Banshee.MediaEngine/Helix/Makefile.am:
33694         * src/Banshee.MediaEngine/Vlc/Makefile.am: Install to 
33695         @libdir@/banshee/Banshee.MediaEngine
33696         * src/Banshee.MediaEngine/Helix/helix-sharp.dll.config.in:
33697         * src/Banshee.MediaEngine/Vlc/vlc-player.dll.config.in: Updated map
33698         path to @libdir@/banshee/Banshee.MediaEngine
33699         * src/Banshee.Dap/Makefile.am: Previous Banshee.Dap code is now in the
33700         Banshee.Base assembly; assemblies built in here will be runtime-loadable
33701         actual DAP implementations
33702         * src/Banshee.Base/PlayerEngineLoader.cs: engines now load from 
33703         Banshee.MediaEngine instead of mediaengines  
33704         * src/Core.cs: Banshee.Dap.DeviceEventListener is now Banshee.Dap.DapCore
33706 2005-11-25  Aaron Bockover  <aaron@aaronbock.net>
33708         * libbanshee/hal-context.[ch]: new glue for HAL
33709         * Makefile.am: removed plugincore and mediaengines
33711         * data/banshee.desktop.in.in: Removed TryExec
33712         * data/Makefile.am: Moved some CLEANFILES items to DISTCLEANFILES
33714         * libbanshee/Makefile.am:
33715         * libbanshee/cd-detect.[ch]: Removed HAL Audio CD detection code; this
33716         support is now in Banshee.Base.AudioCdCore using new managed HAL
33718         * configure.ac: Added new namespace directories for Makefile/config
33719         output generation, removed old directories/Makefiles, etc.
33720         * banshee.mdp:
33721         * banshee.mds: Updated MonoDevelop project
33723         * src/Banshee.MediaEngine: Moved/renamed from mediaengines/
33725         * src/Banshee.Widgets/Makefile.am: Updated to reflect new files
33726         * src/Banshee.Widgets/ActiveUserEvent.cs:
33727         * src/Banshee.Widgets/ActiveUserEventsManager.cs:
33728         * src/Banshee.Widgets/HigMessageDialog.cs: Widgets moved from src/
33730         * src/Makefile.am: Reflect changes to moved/deleted/added files and
33731         link to proper new assemblies
33732         * src/BurnCore.cs: Use Banshee.Base.ThreadAssist.ProxyToMain
33733         * src/LibraryTransactionStatus.cs: use new namespaces
33734         * src/AboutBox.cs: Updated with new namespaces; added pragma to ignore
33735         Gnome.About deprecation warning
33737         * src/Core.cs: Moved ArgumentQueue classes, threading helper methods 
33738         to Banshee.Base; added DAP/HAL stuff
33739         * src/Dialogs.cs: HigMessageDialog moved to Banshee.Widgets
33740         * src/Database.cs: Updated namespaces; updated call to LogCore
33741         
33742         * src/PlayerInterface.cs: use ThreadAssist.ProxyToMain in place of
33743         Core.ProxyToMainThread, updated to use new namespaces
33744         * src/PlaylistModel.cs: Updated to reflect new namespaces; use 
33745         ThreadAssist instead of Core.MainThread 
33746         * src/LibraryTrackInfo.cs: use Entagged.AudioFile instead of
33747         Entagged.AudioFileWrapper; updated to reflect new namespaces
33748         * src/SourceView.cs: Updated with Banshee.Base namespace; iPod support
33749         temp. disabled
33750         * src/RatingRenderer.cs: Added license to header, updated namespaces
33751         
33752         * src/DragDrop.cs:
33753         * src/FileEncodeTransaction.cs:
33754         * src/IpodTrackInfo.cs:
33755         * src/Library.cs:
33756         * src/LibraryTransactions.cs:
33757         * src/Main.cs: 
33758         * src/LogCoreViewer.cs:
33759         * src/PlaylistView.cs: 
33760         * src/Preferences.cs: 
33761         * src/RipTransactions.cs
33762         * src/TrackProperties.cs:
33763         * src/FileSystemMonitor/InotifyWatch.cs:
33764         * src/FileSystemMonitor/FileSystemWatcherWatch.cs: updated namespaces
33766         * src/Banshee.Dap: New namespace/assembly for DAP support; incomplete
33767         
33768         * src/Banshee.Base/Globals.cs: static global variables
33769         * src/Banshee.Base/AudioCd/AudioCdCore.cs: Rewritten Audio CD Core using
33770         fully managed HAL
33771         * src/Banshee/Base/AudioCd: Rewritten/refactored/moved 
33772         from src/AudioCdCore.cs
33773         * src/Banshee.Base/HalCore.cs: New core for HAL support off of a single
33774         global context
33775         * src/Banshee.Base: New namespaces and assembly, contains many classes
33776         moved from src/ that can now be reused for plugins
33777         
33778         * hal-sharp/*: synced with latest hal-sharp in Mono SVN
33779         
33780         * entagged-sharp/*: synced with latest entagged-sharp in Mono SVN; adds
33781         WMA support and ID3 2.4 support
33782         
33783         * plugincore/*: Moved to src/Banshee.MediaEngine
33784         * mediaengines/*.cs: Moved to src/Banshee.Base
33786 2005-11-23  Aaron Bockover  <aaron@aaronbock.net>
33788         * data/images/ipod/22x22/*:
33789         * data/images/ipod/16x16/*: Optimized raster iPod icons from Jakub Steiner
33790         * data/images/ipod/Makefile.am: Install rules for new raster sizes
33791         * data/images/ipod/scalable/*video*: Placeholder SVG video iPod icons
33792         * src/IpodCore.cs: Map 24 to 22 for now, map the video iPod icon
33794 2005-11-22  Aaron Bockover  <aaron@aaronbock.net>
33796         * configure.ac: Remove references to Banshee.Base/Banshee.Dap, as they
33797         are not committed yet
33798         
33799 2005-11-21  Aaron Bockover  <aaron@aaronbock.net>
33801         * configure.ac: Require only GTK 2.6, mainly for FC4
33802         * src/AboutBox.cs: Fall back on the Gnome.About about dialog if the
33803         GTK 2.8 version does not exist; fixed Ulas' name; made common text
33804         fields static variables
33806 2005-11-18  Aaron Bockover  <aaron@aaronbock.net>
33808         * src/PlaylistModel.cs: (AddTrack) sets TrackInfo.TreeIter to tree iter
33809         in model, (RemoveTrack) unsets TrackInfo.TreeIter
33810         * plugincore/TrackInfo.cs: Added a TreeIter field
33811         * configure.ac: Whoops, just require Gtk# 2.3.92
33813 2005-11-17  Aaron Bockover  <aaron@aaronbock.net>
33815         * NEWS: Updated with 0.9.12 release notes
33816         * src/BurnCore.cs: Removed a Console.WriteLine debug statement
33817         * src/NotificationAreaIcon.cs: Disabled shuffle/repeat items in tray menu
33818         for now; not sure how to allow these from here, if all, given the new
33819         options in the UI for these modes
33820         * src/Paths.cs: DefaultLibraryPath is now ~/Music... thought this was done
33821         a month ago...
33822         * src/RipTransaction.cs: Fixed another Path/URI bug, using 
33823         PathUtil.PathToFileUri
33824         * src/LibraryTrackInfo.cs: Do not use PathUtils.PathToFileUri() on
33825         the Uri field in the database, as it's already a Uri... fixes a bug 
33826         introduced between releases
33827         * configure.ac: Version 0.9.12, require Gtk# 2.4.0, GTK+-2.8, and
33828         ipod-sharp 0.5.11
33829         * banshee.mdp: Updated MonoDevelop project
33830         * data/glade/player.glade: Added menu items for repeat none, repeat single,
33831         repeat all, and shuffle; removed repeat/shuffle toggle buttons as they
33832         have been replaced with the custom MultiStateToggleButton widget
33833         * src/ToggleStates.cs: Implemented ToggleState subclasses for repeat and
33834         shuffle toggle states
33835         * src/LibraryTransactionStatus.cs:
33836         * src/QueryBuilderModel.cs:
33837         * src/TrackInfoHeader.cs:
33838         * src/VersionInformationDialog.cs:
33839         * src/ActiveUserEvent.cs: using Banshee.Widgets;
33840         * src/StockIcons.cs: Removed media-repeat, media-shuffle; added
33841         media-repeat-all, media-repeat-none, media-repeat-single, 
33842         media-shuffle-enabled, media-shuffle-disabled
33843         * src/IPlaybackModel.cs: Changed Repeat/repeat from bool to RepeatMode
33844         * src/PlaylistModel.cs: Changed Repeat/repeat from bool to RepeatMode, 
33845         added RepeatMode enum, changed logic to support RepeatMode.None, 
33846         RepeatMode.All, RepeatMode.Single
33847         * src/PlayerInterface.cs: Implemented Repeat None, Repeat All, 
33848         Repeat Single modes using new MultiStateToggleButton widget and menu items,
33849         re-implemented Shuffle mode in same way
33850         * src/Makefile.am: Link against src/Banshee.Widgets/Banshee.Widgets.dll,
33851         updated resources 
33852         * src/Banshee.Widgets/Resources/*: resources needed by custom widgets
33853         * src/Banshee.Widgets/MultiStateToggleButton.cs: New custom widget that
33854         allows cycling between N states, can link CheckMenuItem and RadioMenuItem
33855         widgets to states
33856         * src/Banshee.Widgets/ToggleState.cs: Abstract base class for defining a
33857         toggle state for the MultiStateToggleButton widget
33858         * src/Banshee.Widgets/*: New assembly containing moved/new custom 
33859         standalone widgets that can possibly be used by other applications. 
33860         No ties to Banshee namespaces
33861         * src/AltProgressBar.cs:
33862         * src/CoverArtThumbnail.cs:
33863         * src/DateButton.cs:
33864         * src/EllipsizeLabel.cs:
33865         * src/ImageAnimation.cs:
33866         * src/SearchEntry.cs:
33867         * src/SimpleNotebook.cs:
33868         * src/VolumeButton.cs: Moved to src/Banshee.Widgets, namespace changed to
33869         Banshee.Widgets
33871 2005-11-15  Aaron Bockover  <aaron@aaronbock.net>
33873         * src/GtkSharpBackports/FileChooserButton.cs: Fixed a minor compilation
33874         issue against Gtk# 2.7.1
33875         * data/banshee.desktop.in.in: Added MimeType field based on entagged-sharp
33876         mime-type support attributes; Add %U to exec
33878 2005-11-15  Brad Taylor  <brad@getcoded.net>
33880         * src/PlayerInterface.cs: Fix typo in tray icon.
33882 2005-11-14  Aaron Bockover  <aaron@aaronbock.net>
33884         * src/NotificationAreaIcon.cs (PositionMenu): Properly position the menu
33885         based on panel size and location (Fixes #315227)
33886         * src/LibraryTrackInfo.cs: Always use PathUtil.PathToFileUri()
33887         * data/glade/player.glade: Emit OnScaleTimeMoveSlider for MotionNotifyEvent
33888         * src/PlayerInterface.cs: Update the position label when the slider is 
33889         dragged, enables better seeking (Ruben Vermeersch)
33890         * src/TrackInfoHeader.cs: Don't escape entities twice
33891         * data/banshee.schemas.in: Added /apps/banshee/EnableFileSystemMonitoring;
33892         fixed typo
33893         * src/AudioCdCore.cs: Fixed typo
33894         * src/PlayerInterface.cs: Respect --play on new instance after the library
33895         has loaded 
33896         * src/PlayerInterface.cs:
33897         * src/PlaylistView.cs: call playlistModel.Advance() if nothing is loaded
33898         in the engine and playlistView.PlaySelected() fails (pressing "play" on 
33899         first start will play work) (Ruben Vermeersch)
33900         * src/LibraryTrackInfo.cs:
33901         * src/LibraryTransactions.cs:
33902         * src/FileSystemMonitor/FileSystemWatcherWatch.cs:
33903         * src/FileSystemMonitor/InotifyWatch.cs: change to use 
33904         PathUtil.FileUriStringToPath
33905         * src/Utilities.cs: Added Timer class from F-Spot; added 
33906         PathUtil.FileUriStringToPath to replace StringUtil path methods 
33908 2005-11-14  James Willcox  <snorp@snorp.net>
33910         * src/PlaylistView.cs: only scroll to the playing song if it is
33911         outside the current viewable area.
33913 2005-11-13  Aaron Bockover  <aaron@aaronbock.net>
33915         * src/AboutBox.cs: Added Doğacan Güney
33916         * src/GConfKeys.cs: Added key EnableFileSystemMonitoring; reformatted code
33917         * src/LibraryTransactions.cs (FileLoadTransaction): Load multiple paths
33918         at once without making them raw (Doğacan Güney)
33919         * src/Library.cs (Library.Remove): Overloaded to allow removal based on
33920         a System.Uri (Doğacan Güney)
33921         * src/Core.cs: Instantiate and dispose of FileSystemMonitor.Watcher only
33922         if enabled in GConf
33923         * libbanshee/Makefile.am: Added inotify glue
33924         * libbanshee/inotify-glue.c:
33925         * libbanshee/inotify.h:
33926         * libbanshee/inotify-syscalls.h: inotify system-level glue
33927         * src/FileSystemMonitor/*.cs: Added File System monitoring patch by 
33928         Doğacan Güney, uses Inotify. If Inotify is unavailable, it falls back
33929         on FileSystemWatcher. 
33930         * src/Makefile.am: Added FileSystemMonitor files
33931         
33932         * configure.ac: Added support for using GStreamer 0.9 packages through
33933         --enable-gstreamer-dev; currently will break things, do not use yet
33934         * src/PlayerInterface.cs: Don't use space as a hotkey if the search box
33935         has focus
33936         * src/AboutBox.cs: Added Christian Rose to translator credits
33937         * src/PlaylistModel.cs: Merged Pat Rondon's (pat@thepatsite.com) advance
33938         to random track when playing first track in shuffle mode (#54688)
33940 2005-11-13  Christian Rose  <menthos@menthos.com>
33942         * configure.ac: Added "sv" to ALL_LINGUAS.
33944 2005-11-12  Aaron Bockover  <aaron@aaronbock.net>
33946         * data/images/source-cd-audio.png: Updated with tango icon
33947         * src/IpodCore.cs (IpodMisc.GetIcon): Accept either an Ipod.Device or
33948         an Ipod.DeviceModel
33949         * src/Dialogs.cs: Accept a Gdk.Pixbuf instead of a string for the icon
33950         * src/IpodNewDialog.cs: 
33951         * src/PlayerInterface.cs:
33952         * src/SourceView.cs: Use IpodMisc.GetIcon()
33953         * src/PlayerInterface.cs: Show a large version of the iPod icon in the
33954         sync view when syncing iPod
33955         * configure.ac: Expand $datadir into $expanded_datadir 
33956         * src/ConfigureDefines.cs.in: Added ICON_THEME_DIR constant
33957         * src/IpodCore.cs (IpodMisc.GetIcon): return a Gdk.Pixbuf of an iPod in
33958         a given size, points to the new installed tango icons into the hicolor
33959         icon theme
33960         * src/Makefile.am: Removed old ipod icon references
33961         * data/images/ipod/*: New tango iPod icons from Ryan Collier
33962         * data/images/Makefile.am: Added ipod to SUBDIRS, removed old ipod icons
33963         * src/PlayerInterface.cs: Pressing enter on the playlist view will
33964         play the first song in a selection
33965         * src/PlayerInterface.cs: Implement some more key bindings, and changed
33966         the default behavior of the previous button to reset the position of
33967         the current playing song to 0 seconds if the song has played for more
33968         than ~2 seconds (the resolution on this isn't very precise); Shift+Previous
33969         Click goes to the previous song no matter what, and pressing space now
33970         toggles playback (play/pause)
33972 2005-11-12  James Willcox  <snorp@snorp.net>
33974         * src/IpodCore.cs: be a little more careful, and update to the
33975         changed API for progress reporting.
33976         * src/IpodTrackInfo.cs: use PathUtil.PathToFileUri
33977         * src/LibraryTrackInfo.cs: ditto, and store Uris in the db
33978         in escaped form.
33979         * src/SqlGenerator.cs: don't unnecessarily remove quotes when
33980         escaping them.
33982 2005-11-11  Aaron Bockover  <aaron@aaronbock.net>
33983         
33984         * configure.ac: Version 0.9.11.1
33985         * NEWS: Updated release notes
33986         * data/glade/player.glade: Added another container for switching out
33987         widgets during the ipod sync state
33988         * src/IpodCore.cs (EmitSyncStarted), (EmitSyncCompleted): Emit through
33989         Core.ProxyToMainThread
33990         * src/PlayerInterface.cs: Fixed ipod syncing, was a threading issue,
33991         of course; fixed up syncing UI, made things more consistent and feel
33992         better, tooltips, labels, etc
33993         * data/images/source-ipod-regular.png, data/images/source-ipod-color.png,
33994         data/images/source-ipod-shuffle.png: renamed to ipod-regular-24.png,
33995         ipod-color-24.png, and ipod-shuffle.png
33996         * src/Makefile.am: 
33997         * data/images/Makefile.am: Updated to reflect renaming of ipod icons
33998         * src/PlayerInterface.cs:
33999         * src/SourceView.cs: Use IpodMisc.GetIconString() to get icon file name
34000         * src/IpodCore.cs: Show the actual iPod icon for the progress widget; 
34001         added IpodMisc.GetIconString(device) to return the proper string for
34002         building an ipod file name to show icon matching actual iPod
34003         * src/IpodCore.cs: Hopefully fixed URI translation problem; canceling the
34004         ipod encode now cancels the ipod sync, as it should
34005         * src/BurnCore.cs: Use Queue instead of ArrayList
34006         * src/FileEncodeTransaction.cs: Do not use a Hashtable, it can scramble
34007         the order of the queued items; was the culprit for out of position
34008         tracks on burned CDs
34009         * src/Utilities.cs: New PathUtil class: PathUtil.PathToFileUri and
34010         PathUtil.FileUriToPath; removed old unused cruft; reformatted
34011         * src/IpodCore.cs: Removed unused reference to IPod.ProgressDialog
34012         * banshee.mdp: Updated MonoDevelop project file
34014 2005-11-10  Aaron Bockover  <aaron@aaronbock.net>
34016         * configure.ac: Version 0.9.11
34018 2005-11-09  Aaron Bockover  <aaron@aaronbock.net>
34020         * src/ActiveUserEvent.cs: Added a CanCancel property that maps to the
34021         sensitivity of the cancel button
34022         * src/PlayerInterface.cs:
34023         * src/StockIcons.cs:
34024         * src/RipTransaction.cs: 
34025         * data/glade/player.glade: Ensure all nomenclature is in sync regarding
34026         import/write CD. Changed "Rip" to "Import" and "Burn" to "Write"
34027         * src/BurnCore.cs: Major overhaul; use ActiveUserEvent for progress 
34028         reporting; handle threading and events much better; massive clean up
34029         * libbanshee/gst-encode.c: handle gnomevfssink allow-overwrite signal
34030         for encoding over possible left over temporary files
34031         * src/LogCore.cs: 
34032         * src/LogCoreViewer.cs: Added "Information" LogEntry type
34033         * mediaengines/gst/GstPlayerEngine.cs: fixed typo in engine description
34034         * configure.ac: Add pt_BR to ALL_LINGUAS
34035         * src/LogCoreViewer.cs: Show both short message and details in viewer
34036         text entry
34037         * src/Core.cs: Handle exception from AudioCdCore exception in the case
34038         where HAL was not able to become initialized; disable AudioCdCore and
34039         allow Banshee to continue with disabled CD support
34040         * src/AudioCdCore.cs: marshal native error messages to propagate to 
34041         exception if HAL could not be initialized
34042         * src/SourceView.cs: 
34043         * src/PlayerInterface.cs:
34044         * src/Core.cs: Only interact with the AudioCdCore if it is available
34045         * libbanshee/cd-detect.[ch] (cd_detect_new): expects a gchar ** which 
34046         may be filled with an allocated error message if function returns NULL,
34047         must be freed if non-null
34048         * libbanshee/cd-detect.c: Added g_warning calls for potential HAL 
34049         initialization problems
34050         * vacuum.sh: Runs make maintainer-clean and then cleans extra junk that
34051         is left behind, returning to essentially a clean cvs checkout
34052         * Makefile.am: Made DISTCLEAN a little more standard/correct and moved
34053         my extra crazy house cleaning to a script, vacuum.sh
34054         * src/AboutBox.cs: Added Ulas Sahin to authors credits, Marco Carvalho to
34055         translators credits
34056         * src/LogCore.cs: LogCore implements IEnumerable; added more helper methods
34057         for pushing different entry types; subclass LogEntry as WarningLogEntry,
34058         DebugLogEntry, ErrorLogEntry
34059         * src/LibraryTransactionManager.cs:
34060         * src/LibraryTransactions.cs:
34061         * src/AudioCdCore.cs:
34062         * src/PipelineProfile.cs:
34063         * src/Database.cs:
34064         * src/Core.cs:
34065         * src/RipTransaction.cs: Use the LogCore for debug logging instead 
34066         of DebugLog
34067         * src/DebugLog.cs: Removed 
34068         * src/Makefile.am: Added LogCoreViewer.cs, Removed DebugLog.cs
34069         * data/glade/player.glade:
34070         * src/PlayerInterface.cs: Add menu item for showing the LogCore Viewer
34071         * src/LogCoreViewer.cs: A dialog for viewing the LogCore entries
34072         * src/LibraryTransactions.cs (PlaylistLoadTransaction.Run): only
34073         raise track info if not null :)
34074         * src/PlayerInterface.cs (OnPlaylistUpdated): Got rid of custom time
34075         calculations in favour of TimeSpan; cleaned up a little
34076         * src/PlayerInterface.cs (OnLogCoreUpdated): Show a dialog for LogEntry
34077         entries that have ShowUser set; LogCore is now the preferred
34078         method of logging events and presenting errors/warnings to the user
34079         * src/LogCore.cs: Added more helper methods for making logging as easy
34080         as possible
34081         * src/LibraryTransactions.cs:
34082         * src/BurnCore.cs: Updated to reflect changes in LogCore
34083         * src/Core.cs: LogCore handles its own instance
34084         * src/AudioCdCore.cs: Use LogCore
34086 2005-11-08  Aaron Bockover  <aaron@aaronbock.net>
34088         * src/Preferences.cs:
34089         * src/AboutBox.cs: Explicitly use GtkSharpBackports
34091 2005-11-08  James Willcox  <snorp@snorp.net>
34093         * src/IpodCore.cs:
34094         * src/IpodTrackInfo.cs:
34096         Updated to use new ipod-sharp API.
34098 2005-11-08  Aaron Bockover  <aaron@aaronbock.net>
34100         * src/AudioCdCore.cs (CreateDisk): Use anonymous method, but work 
34101         around mcs bug #76642
34103         * src/GtkSharpBackports/AboutDialogActivateLinkFunc.cs:
34104         * src/GtkSharpBackports/GtkSharp.AboutDialogActivateLinkFuncNative.cs:
34105         * src/GtkSharpBackports/AboutDialog.cs:
34106         * src/GtkSharpBackports/FileChooserButton.cs:
34107         * src/GtkSharpBackports/GtkSharpBackports.dll.config.in:
34108         * src/GtkSharpBackports/Makefile.am: Imported from gtk-sharp-2.6, 
34109         namespaces changed to GtkSharpBackports
34110         
34111         * src/AboutBox.cs: Remove manual wrapped Gtk.AboutBox, 
34112         use GtkSharpBackports.AboutBox
34113         * src/Preferences.cs: Use GtkSharpBackports.FileChooserButton
34114         * src/FileChooserButton.cs: moved to src/GtkSharpBackports
34115         * src/Makefile.am: Removed FileChooserButton.cs, added GtkSharpBackports
34116         to SUBDIRS, link against GtkSharpBackports.dll
34118         * configure.ac: generate src/GtkSharpBackports/Makefile and
34119         src/GtkSharpBackports/GtkSharpBackports.dll.config
34121 2005-11-07  Aaron Bockover  <aaron@aaronbock.net>
34123         * src/MusicBrainz/SimpleDisc.cs: Changed 'Invalid track count from TOC'
34124         error string to be easier to read and more meaningful
34125         * src/Dialogs.cs: Updated formatting, make ErrorDialog class use
34126         HigMessageDialog, add support for header argument, do not use Run/Destroy
34127         to prevent UI hangs
34128         * src/AudioCdCore.cs: Show an error dialog if CD reading failed,
34129         merged some similar code into a private helper method
34131         * configure.ac: Only require mono 1.1.9 instead of 1.1.9.2 for the sake
34132         of building with mcs HEAD
34134         * libbanshee/Makefile.am: Removed cd-test test
34135         * libbanshee/cd-test.c: Removed test, functionality handled mainly by
34136         MusicBrainz in managed land now
34138         * src/MusicBrainz/Utilities.cs (StringToDateTime): Convert a MusicBrainz
34139         date into a DateTime object
34140         * src/MusicBrainz/SimpleArtist.cs: Simple wrapper class for a MusicBrainz 
34141         Artist RDF
34142         * src/MusicBrainz/SimpleAlbum.cs: Simple wrapper class for a MusicBrainz
34143         Album RDF
34144         * src/MusicBrainz/SimpleLookupTest.cs: Test program for using new 
34145         RDF wrapper classes
34146         * src/MusicBrainz/Makefile.am: Added SimpleArtist.cs, SimpleAlbum.cs,
34147         SimpleLookupTest.cs, Utilities.cs; created 'make test' rules to 
34148         build MusicBrainz tests
34149         * src/MusicBrainz/Client.cs: Added support for querying with arguments;
34150         added support for marshalling string arrays to UTF8 pointer arrays; Added
34151         GetIDFromUrl and GetID methods for transforming a MusicBrainz URL ID into
34152         a regular MusicBrainz ID
34153         * src/SimpleTrack.cs (ToString): Return a formatted version of the object
34155         * src/Utilities.cs (StringUtil.UriToFileName): Do a proper conversion
34156         using the Uri class; fixes bugs with non-ASCII characters in the path
34158 2005-11-03  Aaron Bockover  <aaron@aaronbock.net>
34160         * burn-sharp/burn-sharp.dll.config.in: Map to proper so version with
34161         LNB_SOVERSION
34162         * configure.ac: Detect whether libnautilus-burn 2.12 or 2.13+, and set
34163         LNB_SOVERSION to 2 or 3 accordingly
34164         * data/glade/preferences.glade: Removed the text view/button for selecting
34165         library location, added container for FileChooserButton
34166         * src/Preferences.cs: Use the FileChooserButton for selecting the library
34167         location instead of a Button+FileChooserDialog+TextView; more Gnomey and
34168         less iTunesy
34169         * src/Makefile.am: Added src/FileChooserButton.cs
34170         * src/FileChooserButton.cs: Adapted Gtk.FileChooserButton from 
34171         gtk-sharp-2.6 as Banshee.FileChooserButton
34173 2005-11-02  Aaron Bockover  <aaron@aaronbock.net>
34175         * src/configure.ac: Version 0.9.10
34176         * src/AboutBox.cs: Added Øivind Hoel to translator credits
34177         * src/FileEncodeTransaction.cs: Adapt to use ActiveUserEvent
34178         * src/IpodCore.cs:
34179         * src/BurnCore.cs: Updated for changes in FileEncodeTransaction
34180         * data/glade/player.glade: Reorder edit menu, add import/burn CD items to
34181         music menu
34182         * src/PlayerInterface.cs: Set menu items sensitive/insensitive contextually
34183         * src/Main.cs: Add --version option
34184         * configure.ac: Generate src/banshee from src/banshee.in
34185         * src/Makefile.am: Install the Bash wrapper script
34186         * src/banshee.in: Bash wrapper script
34187         * src/banshee.c: Removed alternative wrapper script, switched back to Bash
34188         * src/PlayerInterface.cs: Display current position/total time in NAI 
34189         tooltip (patch from Doğacan Güney)
34190         * data/images/encode-action-24.png:
34191         * data/images/Makefile.am:
34192         * src/Makefile.am: Add icon for encoder progress action
34193         * src/PlayerInterface.cs: Fix minor bug concerning meta key detection (Ulas)
34195 2005-11-01  Aaron Bockover  <aaron@aaronbock.net>
34197         * src/NotificationAreaIcon.cs: Add mouse scroll event support (Ulas SAHIN);
34198         tab->space formatting
34199         * src/PlayerInterface.cs: Adjust volume when SHIFT+Scroll on notification
34200         area icon (NAI) (Ulas SAHIN), Next/Previous track on normal scroll on NAI,
34201         seek in current song when CTRL+Scroll on NAI; more tab->space formatting
34203 2005-11-01  Aaron Bockover  <aaron@aaronbock.net>
34205         * banshee.mdp:
34206         * banshee.mds:
34207         * mediaengines/gst/gst-mediaengine.mdp:
34208         * mediaengines/helix/helix-mediaengine.mdp:
34209         * plugincore/plugincore.mdp:
34210         * plugincore/plugincore.mds: Committed Ulas SAHIN's patch to update the
34211         MonoDevelop project files
34213 2005-10-31  Aaron Bockover  <aaron@aaronbock.net>
34215         * data/banshee.schemas.in: Added schema for ShowNotificationAreaIcon key
34216         * src/PlayerInterface.cs: Only install notification area icon if 
34217         ShowNotificationAreaIcon gconf key is true
34218         * src/GConfKeys.cs: Added key for ShowNotificationAreaIcon
34219         * src/RipTransaction.cs: Removed +1 because MusicBrainz is 1-based and
34220         not 0-based in reporting the track index
34221         * HACKING: Updated it with revised style guidelines
34222         * entagged-sharp/: Updated entagged-sharp snapshot
34224 2005-10-31  Miguel de Icaza  <miguel@novell.com>
34226         * src/LibraryTrackInfo.cs: Null or empty strings will default to
34227         the filename guessed values.
34229 2005-10-31  Aaron Bockover  <aaron@aaronbock.net>
34231         * configure.ac: Added nb to ALL_LINGUAS 
34233 2005-10-28  Aaron Bockover  <aaron@aaronbock.net>
34235         * configure.ac: Version 0.9.9, require ipod-sharp 0.5.9, mono 1.1.9.2,
34236         GStreamer 0.8.11, libnautilus-burn 2.12
34237         * data/glade/trackinfo.glade: Switch order of Save/Cancel buttons
34238         * data/glade/player.glade: Add text labels to rip/burn icons
34239         * src/Library.cs: Handle exception when thrown when unable to create
34240         library directory
34241         * src/NotificationAreaIcon.cs: Switch order of Next/Previous menu items
34243 2005-10-28  David Sedeño <david@alderia.com>
34245         * src/SearchEntry.cs: Added CanFocus field
34246         * src/PlayerInterface.cs: Check if the search entry has already the
34247         focus so we can search with anything with 'j' letter.
34249 2005-10-27  Aaron Bockover  <aaron@aaronbock.net>
34250         
34251         * libbanshee/cd-test.c: Removed #include "cd-info.h"
34252         * src/AudioCdCore.cs: Use Utilities OpenFlags flags
34253         * src/LibraryTrackInfo.cs: Use DateTimeUtil class for D/T conversion
34254         * src/Utilities.cs: Copied Date/Time utils from 
34255         Mono.Unix.Native.NativeConvert to DateTimeUtil class, and OpenFlags
34256         * src/Main.cs: Arg is audio-cd for now instead of play-cd
34257         * src/Makefile.am: Added mcs.exe to EXTRA_DIST
34258         * src/PlayerInterface.cs (PromptForImport): Fix initial import 
34259         dialog freeze
34260         * src/MusicBrainz/Makefile.am: Added $(srcdir)/ prefixes to sources
34261         to make distcheck happy
34262         * src/mcs.exe: Added precompiled bare assembly of mono mcs 1.1.9.2 
34263         for packagers to use who can't upgrade from mono 1.1.8. Assemblies
34264         produced by this 1.1.9.2 compiler will run on the 1.1.8 mono stack
34265         * configure.ac: Added option to use an internal mcs 1.1.9.2 compiler,
34266         --with-internal-mcs. Use only if you can't upgrade your distrobution's
34267         mono
34269 2005-10-26  Aaron Bockover  <aaron@aaronbock.net>
34271         * src/Library.cs: Use new/permanent library DB path: 
34272         ~/.gnome2/banshee/banshee.db, use and move the old one if it exists
34273         * plugincore/Paths.cs: Moved ApplicationData from ~/.config/banshee to
34274         ~/.gnome2/banshee, create the cover art directory if it doesn't exist
34275         when it's requested
34276         * data/glade/player.glade: Added a container for the 
34277         ActiveUserEventsManager widget
34278         * src/banshee.exe.config.in: Map for GTK+
34279         * src/Core.cs (ProxyToMainThread): Wrap Application.Invoke to run handler
34280         in current thread if already in main thread
34281         * src/PlayerInterface.cs: Integrate ActiveUserEventsManager into UI
34282         * src/Makefile.am: Add ActiveUserEvent.cs, ActiveUserEventsManager.cs and
34283         update for new burn icons
34284         * src/StockIcons.cs:
34285         * src/Preferences.cs:
34286         * src/BurnCore.cs: Use new burn icons
34287         * src/RipTransaction.cs:
34288         * src/IpodCore.cs: Use the new user events manager
34289         * src/ActiveUserEventsManager.cs: user events manager for progress 
34290         reporting
34291         * src/ActiveUserEvent.cs: Class for user events to use to report progress
34292         and messages to a managed user interface
34293         * src/AboutBox.cs: Bindings for the GTK About Box (don't exist in 
34294         gtk-sharp yet), use it instead of the GNOME About Box.
34296 2005-10-25  Aaron Bockover  <aaron@aaronbock.net>
34298         * src/SearchEntry: Reformatted code, added Focus() method
34299         * src/PlayerInterface.cs (OnKeyPressEvent): use GLib.ConnectBefore to
34300         handle key press events; J/j/F3 focus the search widget, and 
34301         CTRL+Left rewinds by 10 seconds, CTRL+Right fast-forwards 10 seconds
34302         * src/CoverArtThumbnail.cs: Fixed segfault when trying to thumbnail
34303         a null pixbuf
34305 2005-10-24  Miguel de Icaza  <miguel@novell.com>
34307         * src/PlayerInterface.cs (OnIpodDeviceChanged): Put all the code
34308         in this method inside an Application.Invoke instead of using one
34309         Application.Invoke per ListStore.  
34311         Also surrounds the code that was hanging Banshee after triggering
34312         an iPodSync: the second part of the routine was not protected
34313         inside an Application.Invoke.
34315         * src/PlaylistView.cs (RipCellInd): Avoid try/catch and instead
34316         use "as" to explicitly state what is going on.  Also helps
34317         reduce the exceptions being thrown while tracking issues.
34319         * src/LibraryTrackInfo.cs (LoadFromDatabaseReader): the values
34320         stored were strings, not longs.  Parse them accordingly.
34322         Use mono --trace=N:nothing banshee.exe to find abuses of exception
34323         handling. 
34324         
34325 2005-10-23  Aaron Bockover  <aaron@aaronbock.net>
34327         * data/glade/player.glade: Added delete from drive menu items
34328         * src/PlayerInterface.cs: Added ability to remove songs permanently from 
34329         drive, not just from being referenced in library
34331         * data/glade/player.glade: Added Full Screen menu item to View menu
34332         * src/PlayerInterface.cs: Added Full Screen mode
34334         * src/AudioCdCore.cs: Removed reference to CddbSlaveClient
34335         * src/Makefile.am: removed CddbSlaveClient.cs from build
34336         * src/CddbSlaveClient.cs: removed Gnome Media CDDB Slave2 client bindings
34338         * data/glade/player.glade: Added a container for the CoverArtThumbnail 
34339         widget
34340         * src/Makefile.am: Added CoverArtThumbnail.cs, AmazonCoverFetcher.cs
34341         * src/AudioCdCore.cs: Fetch cover art from Amazon.com after MusicBrainz 
34342         returns an ASIN
34343         * src/PlayerInterface.cs: Show a CoverArtThumbnail widget in header
34344         * src/LibraryTrackInfo.cs: Copy ASIN from AudioCdTrackInfo to 
34345         LibraryTrackInfo
34346         * src/AmazonCoverFetcher.cs: Fetch cover art from Amazon.com based on ASIN
34347         * src/CoverArtThumbnail.cs: Widget to scale and display a thumbnail of
34348         cover art and display full-resolution cover art in popup window when
34349         cursor hovers over thumbnail
34350         * plugincore/Makefile.am: Added Paths.cs
34351         * plugincore/TrackInfo.cs: Added Asin property, added CoverArtFileName
34352         property that returns cover art path based on Asin
34353         * plugincore/Paths.cs: Paths class available to plugins, added property
34354         CoverArtDirectory and GetCoverArtPath() method
34355         * src/Utilities.cs: Moved Paths class to plugincore/Paths.cs
34357 2005-10-22  Aaron Bockover  <aaron@aaronbock.net>
34359         * src/PlayerInterface.cs: Show/Hide the rip column for the respective view,
34360         only queue items for ripping that have been checked, nice pretty rip icon
34361         * src/PlaylistView.cs: Added a toggle column used for selecting tracks 
34362         for ripping
34363         * src/AudioCdCore.cs: Added CanRip property that is toggled on/off to 
34364         designate whether to rip a track or not
34365         * src/StockIcons.cs: Added a hashtable map to icon names, added the nice
34366         rip icon (media-rip maps to cd-action-rip-24)
34368         * configure.ac: Remove all IDL/CORBA junk previously needed for CDDB Slave2
34369         * libbanshee/GNOME_Media_CDDBSlave2.idl:
34370         * libbanshee/cd-info.[ch]:
34371         * libbanshee/cddb-slave-client.[ch]:
34372         * libbanshee/cddb-test.c: Removed, yay for less bloat
34373         * libbanshee/Makefile.am: Remove references to removed files, do not
34374         worry about IDL cruft... yay!
34376         * src/MusicBrainz/SimpleDisc.cs: Add an indexer for looking up tracks
34377         * src/AudioCdCore.cs: Removed CDDB implementation, implemented MusicBrainz
34378         CD TOC reading and Metadata Lookup, refactored and cleaned up a lot in here
34380 2005-10-21  Aaron Bockover  <aaron@aaronbock.net>
34382         * configure.ac: Generate src/MusicBrainz/MusicBrainz.dll.config, and 
34383         src/MusicBrainz/Makefile
34384         * src/Makefile.am: Add MusicBrainz to SUBDIRS, link against MusicBrainz.dll
34385         * src/MusicBrainz/Makefile.am: Build/install MusicBrainz.dll
34386         * src/MusicBrainz/MusicBrainz.dll.config.in: DLL Mappings to libmusicbrainz
34387         * src/MusicBrainz/Client.cs: MusicBrainz C# bindings to the MusicBrainz 
34388         client
34389         * src/MusicBrainz/ClientVersion.cs: Class representing MusicBrainz client
34390         version information
34391         * src/MusicBrainz/Rdf.cs: RDF Strings for the MusicBrainz client
34392         * src/MusicBrainz/SimpleDisc.cs: Basic class to handle reading CD 
34393         and querying MB
34394         * src/MusicBrainz/SimpleTrack.cs: A class representing a track on a CD
34395         * src/MusicBrainz/SimpleDiscTest.cs: A simple console test program 
34396         to read a CD
34398         * mediaengines/vlc/Makefile.am: fixed whitespace after trailing \
34399         * data/banshee.desktop.in.in: Make the desktop file show up in 
34400         Ximian/Novell/RedHat menus
34401         * configure.ac: Output hal-sharp/hal-sharp.dll.config
34402         * src/StockIcons.cs: use StockItem to initalize stock icons with i18n 
34403         descriptions, add items to Gtk.StockManager
34405 2005-10-21  Rodney Dawes  <dobey@novell.com>
34407         * data/images/Makefile.am: Install the 16px and 22px versions into the
34408         16x16 and 22x22 hicolor directories, not the 24px icon
34410 2005-10-21  Aaron Bockover  <aaron@aaronbock.net>
34412         * configure.ac: require mono 1.1.9
34413         * hal-sharp/Makefile.am: Install hal-sharp.dll.config, 
34414         not hal-sharp.dll.config.in
34416 2005-10-21  Aaron Bockover  <aaron@aaronbock.net>
34418         * configure.ac: Require gtk-sharp 2.3.91 and ipod-sharp 0.5.8
34420         * Makefile.am: Updated DISTCLEANFILES/CLEANFILES
34421         * configure.ac: Removed data/banshee.desktop.in
34423         * mediaengines/vlc/Makefile.am: Added package rule for creating separate
34424         binary VLC mediaengine tarball
34426         * data/images/Makefile.am: Updated icon installation rules
34427         * data/images/Makefile.am.build: Removed, managing manually
34429         * data/glade/about.glade: removed, using gnome about dialog
34430         * data/glade/player.glade: Add help menu item for version information
34432         * data/banshee.desktop.in.in: Updated desktop file to exec banshee and
34433         use new icon 
34434         * data/org.gnome.Banshee.service.in: Exec banshee
34435         * data/Makefile.am: Updated desktop file and schema install rules
34437         * src/PlaylistColumns.cs: Fix bug regarding default column sizing (the one 
34438         Nat has been complaining about)
34439         * src/AboutBox.cs: Use Gnome About Dialog
34440         * src/VersionInformationDialog.cs: Version Information Dialog, move from old
34441         About Box, invoke from Help menu
34442         
34443         * src/BurnCore.cs: 
34444         * src/Preferences.cs:
34445         * src/SourceView.cs:
34446         * src/PlayerInterface.cs: Lots of cleaning, Use new window icon, 
34447         get rid of Gdk Thead junk
34449         * src/PlaylistModel.cs: Use Application.Invoke smartly, fixed performance 
34450         bug regarding loading a large list of tracks
34453         * src/Core.cs:
34454         * src/Library.cs: Clean up, get rid of Gdk Thread junk
34456         * src/ThemeIcons.cs: Provide a WindowManager icon pixbuf; will expand to 
34457         new Icon Theme code (vs. stock icon code)
34458         * src/DBusIPC.cs: Add more DBus methods (show/hide/play/pause/query*)
34459         * src/Main.cs: Command line options for new DBus methods for remote-mode
34461         * src/PlaylistView.cs:
34462         * src/Core.cs:
34463         * src/BurnTransaction.cs:
34464         * src/StockIcons.cs: general syntax/formatting cleanup
34466         * src/PipelineProfile.cs:
34467         * src/LibraryTrackInfo.cs: 
34468         * src/IpodCore.cs:
34469         * src/AudioCdCore.cs:
34470         * src/TrackProperties.cs: Use Mono.Unix, instead of deprecated Mono.Posix
34472         * src/Makefile.am: Added new sources, modified graphic resources
34473         
34474 2005-10-20  Rodney Dawes  <dobey@novell.com>
34476         * data/images/about-header.png: Replace with new logo image
34478 2005-10-20  Rodney Dawes  <dobey@novell.com>
34480         * data/images/album-cover-container.png:
34481         * data/images/banshee-icon*.png:
34482         Removed these old app icons, replaced by music-player-banshee
34483         
34484 2005-10-20  Rodney Dawes  <dobey@novell.com>
34486         * data/images/music-player-banshee*: Add new banshee icons to CVS
34488 2005-10-13  Aaron Bockover  <aaron@aaronbock.net>
34490         * src/SourceView.cs: SelectSource() method to select any source
34491         * src/PlayerInterface.cs: Remove obsolete gtk-sharp-2.0 stuff
34493         * mediaengines/helix/libhxclient.so.1.0: Updated with COM wrappings
34494         * mediaengines/helix/HxUnmanaged.cs, mediaengines/helix/HxPlayer.cs,
34495         mediaengines/helix/HxPlayerTest.cs: Bindings and tests for Helix COM
34496         * README: Updated it
34497         * libbanshee/cd-info.[ch]: Make CD stuff simpler, probably broken ATM
34498         * src/AudioCdCore.cs: Making CD stuff simpler, probably broken ATM
34499         * src/DBusIPC.cs: SelectAudioCd() method for D-Bus
34500         * src/Database.cs: Turn synchronous = OFF for the SQLite DB
34501         * src/IpodCore.cs: Tweak some broken iPod sync stuff
34502         * src/IpodTrackInfo.cs: Fix URI bug
34503         * src/LibraryTransactionStatus.cs: Fix some HIG problems
34504         * src/PlayerInterface.cs: Use argument queue to check for g-v-m commands
34505         * src/Main.cs: Use argument queue for command line options, options for
34506         g-v-m
34507         * src/Core.cs: Argument queue
34508         * src/PlaylistModel.cs: Fix small null ref
34510         * mediaengines/vlc/VlcPlayerEngine.cs: Fixed pausing, removed debug writes
34512         * mediaengines/vlc/VLC.cs: Minor fixes in bindings
34513         * mediaengines/vlc/VlcPlayerEngine.cs: Minor fixes
34514         * mediaengines/vlc/libvlc.so: Removed, not needed
34515         
34516 2005-10-13  Jordi Mas <jordi@ximian.com>
34518         * configure.ac: Added catalan language
34520 2005-10-12  Aaron Bockover  <aaron@aaronbock.net>
34522         * mediaengines/vlc/libvlc.so: Dummy text file user must replace with
34523         real libvlc.so (source tree too large for inclusion)
34524         * mediaengines/vlc/VLC.cs: Partial libvlc C# bindings
34525         * mediaengines/vlc/VlcPlayerEngine.cs: libvlc IPlayerEngine implementation
34526         * mediaengines/vlc/vlc-player.dll.config.in: vlc-player.dll assembly
34527         DLL mappings
34528         * mediaengines/vlc/Makefile.am: Build rules for the VLC media engine
34529         * configure.ac: Add option for --enable-vlc to build VLC engine
34531 2005-10-12  Chris Lahey  <clahey@localhost.localdomain>
34533         * data/banshee.schemas.in: Add GConf key for move on save.
34535         * data/glade/trackinfo.glade: Add accelerators.
34537         * src/GConfKeys.cs: Add GConf key for move on save.
34539         * src/LibraryTrackInfo.cs: Add move on save behavior.  Fix GetId
34540         function to use uri.ToString instead of uri.AbsoluteUri to match
34541         other uses of uri.  Use information parsed from filename to set
34542         track number.  Use directory structure to guess metadata.  Move
34543         copy on import behavior to here.
34545         * src/LibraryTransactions.cs: Typo in field name.  Let
34546         LibraryTrackInfo handle importing files instead of importing them
34547         here.
34549 2005-10-08  Ben Maurer  <bmaurer@ximian.com>
34551         * src/PlaylistView.cs (AlbumTreeIterCompareFunc): Sort by track#
34552         after album
34554 2005-10-04  Larry Ewing  <lewing@novell.com>
34556         * src/PlayerInterface.cs: Import from the selected uri not the
34557         folder uri.
34559 2005-10-04  Christopher James Lahey  <clahey@ximian.com>
34561         * src/SourceView.cs: Fixed bug that was ellipsing escaped data
34562         instead of escaping ellipsed data.
34564 2005-10-03  Christopher James Lahey  <clahey@ximian.com>
34566         * data/glade/trackinfo.glade, src/TrackProperties.cs: Added
34567         automatic track setting button.
34569 2005-10-03  Aaron Bockover  <aaron@aaronbock.net>
34571         * src/Preferences.cs, src/PlayerInterface.cs: Enabled burning!
34572         * src/AudioCdCore.cs: Bind changes to cd-info.[ch], ignore lead out and
34573         data tracks
34574         * libbanshee/cd-info.[ch]: If the Linux CDROM ioctl support is available,
34575         use it to detect CD track info/CDDB disc ID instead of GStreamer. Fall back
34576         on GStreamer (buggy, slower).
34577         * configure.ac: Cleaned up a little bit, added headers to check, especially
34578         linux/cdrom.h
34580 2005-09-26  Alexander Shopov  <ash@contact.bg>
34582         * configure.ac: Added "bg" (Bulgarian) to ALL_LINGUAS
34584 2005-09-22  Aaron Bockover  <aaron@aaronbock.net>
34586         * configure.ac: Require latest ipod-sharp (0.5.6)
34588         * src/IpodCore.cs: ipod-sharp uses default context by default, removed
34589         Ipod.Initializer.UseDefaultContext
34591         * Makefile.am: added compile to DISTCLEANFILES
34593         * src/banshee.c: use fork() to run the mono process as a child process of
34594         the wrapper, as just exec doesn't work with killall. Handle SIGINT/SIGKILL
34595         in the parent process and propagate to the child, and clean up the parent
34597 2005-09-21  Aaron Bockover  <aaron@aaronbock.net>
34599         * src/Makefile.am: Removed banshee.in/$(WRAPPER) instances and added
34600         bin_PROGRAMS/banshee_SOURCE for banshee.c binary 'wrapper'
34601         * src/banshee.c: replaced bash wrapper script with a C program that uses
34602         execvp to replace the process image with mono. Makes banshee show up as
34603         "banshee" in ps instead of "mono" and makes `killall banshee' work. Also
34604         only pass --debug to mono if running from build directory, should speed
34605         up installed instances
34606         * configure.ac: Added AC_DEFINE_UNQUOTED calls to create defines for 
34607         banshee.c that were AC_SUBST in old banshee.in
34608         * src/banshee.in: removed bash wrapper script
34610 2005-09-21  Takeshi AIHANA <aihana@gnome.gr.jp>
34612         * configure.ac: Added 'ja' (Japanese) to ALL_LINGUAS.
34614 2005-09-20  Aaron Bockover  <aaron@aaronbock.net>
34616         * src/Main.cs: wrap everything in try/catch and pass the exception to
34617         the new ExceptionDialog... any unhandled exception will now be shown
34618         in a GUI instead of on the console (which may not be visible)
34620         * src/ExceptionDialog.cs: Added a nice exception dialog to show 
34621         unhandled exceptions (hopefully this never gets seen!), and harvest
34622         system info to help bug reports
34624 2005-09-19  Žygimantas Beručka  <zygis@gnome.org>
34626         * configure.ac: Added "lt" to ALL_LINGUAS.
34628 2005-09-19  Aaron Bockover  <aaron@aaronbock.net>
34629         
34630         * src/LogCore.cs: Use a ThreadNotify for events
34631         * src/IpodTrackInfo.cs: Prepend explicit file:// to thrwart
34632         parsing problems, as Ipod.Song.Filename is always a local path
34633         * src/FileEncodeTransaction.cs: Accept TrackInfo or Uri inputs
34634         * src/PlayerInterface.cs:
34635         * src/Library.cs: Update to use new iPod sync method
34636         * src/IpodCore.cs: Rewrote iPod Syncing, now using ipod-sharp-ui
34637         * src/Makefile.am: Add ipod-sharp-ui
34638         * configure.ac: Added ipod-sharp-ui, moved unstable assembly 
34639         copy script from src/Makefile.am 
34641 2005-09-18  Aaron Bockover  <aaron@aaronbock.net>
34643         * data/glade/player.glade: Added _M to Music top level menu item and
34644         fixed the misspelling "selelected" (awesome word) to "selected".
34645         * src/LibraryTransactions.cs: Made two strings make more sense, easier
34646         to translate
34648 2005-09-18  Adam Weinberger  <adamw@gnome.org>
34650         * configure.ac: Added en_CA to ALL_LINGUAS.
34652 2005-09-18  Funda Wang  <fundawang@linux.net.cn>
34654         * configure.ac: Added Simplified Chinese translation.
34656 2005-09-17  Aaron Bockover  <aaron@aaronbock.net>
34658         * src/Preferences.cs: Fixed crash on save if no iPod transcoders were
34659         available
34661         * libbanshee/gst-encode.c: Use gnomevfssink, replaced stat() call with
34662         gnome_vfs_get_file_info() call
34664         * src/LibraryTransactions.cs: Explicitly prepend a file:// to the filename
34665         passed to new Uri() as ':' in the local file name can cause improper
34666         parsing
34668         * src/PlayerInterface.cs:
34669         * src/SearchEntry.cs:
34670         * src/NotificationAreaIcon.cs: Fixed gtk-sharp deprecation warnings
34672         * src/LibraryTrackInfo:
34673         * src/Library.cs:
34674         * src/LibraryTransactions.cs:
34675         * src/BurnCore.cs:
34676         * src/AudioCdCore.cs:
34677         * src/IpodCore.cs:
34678         * src/TrackProperties.cs:
34679         * src/GstFileEncoder.cs:
34680         * src/FileEncoder.cs:
34681         * src/RipTransaction.cs:
34682         * mediaengines/gst/GstPlayerEngine.cs:
34683         * mediaengines/helix/HelixPlayer.cs: All now use System.Uri instead of
34684         strings for filename/URI usage as scheme stuff was getting out of hand
34685         without it. All file components should play nicer now
34687 2005-09-16  Aaron Bockover  <aaron@aaronbock.net>
34689         * src/Database.cs: 
34690         * src/LibraryTrackInfo.cs: 
34691         * src/LibraryTransactions.cs:
34692         * data/Tables.sql: Date/Time optimizations, loads *much* faster from SQL.
34693         Had to create two new table columns: LastPlayedStamp, DateAddedStamp
34695 2005-09-09  Aaron Bockover  <aaron@aaronbock.net>
34697         * configure.ac: Version 0.9.7.1
34698         * hal-sharp/hal-sharp.dll.config.in: DLL mappings for hal-sharp
34699         * hal-sharp/Makefile.am: Install hal-sharp.dll.config
34700         * src/PipelineProfile.cs: guard against empty/null profile array and protect
34701         empty combo box from ever getting its Active index set (segfaults, bug in
34702         gtk-sharp)
34703         * src/Library.cs: Fixed path creation bug to library DB
34704         * src/PlayerInterface.cs: Fixed gstreamer double-skip bug
34705         * mediaengines/gst/GstPlayerEngine.cs: fixed iterate cancel bug
34706         * data/banshee.schemas.in: Added default column widths per Nat's request
34707         * src/RipTransactions.cs: Fixed song-already-in-library exception when
34708         ripping (BNC 115945)
34709         * src/NotificationAreaIcon.cs: Fix bug on 64 bit
34711 2005-09-08  Dan Winship  <danw@novell.com>
34713         * src/DragDrop.cs: reorganize the dnd target types into "Source",
34714         "PlaylistRows", "LibraryTrackIds", and "UriList". Use
34715         MIME-type-style target atoms.
34717         * src/PlayerInterface.cs: update for DragDrop changes. Use
34718         TreeView.EnableModelDragSource and EnableModelDragDest rather than
34719         Gtk.Drag.SourceSet and DestSet on the treeviews, so that
34720         GtkTreeView will do things like scrolling automatically. Remove
34721         code that got moved into PlaylistView.cs and SourceView.cs.
34723         * src/SourceView.cs (OnDragMotion, OnDragLeave,
34724         OnDragDataReceived): Move these here from PlayerInterface and fix
34725         up the drag feedback so you can't drop tracks onto sources that
34726         won't really accept them. Dynamically add a "New Playlist" line
34727         when dragging, so that it's always possible to create a new
34728         playlist via dnd, even when there isn't any blank space at the
34729         bottom of the source list.
34731         * src/PlaylistView.cs (OnDragBegin, OnDragMotion): override the
34732         default GtkTreeView dnd behavior.
34734         * src/PlayerInterface.cs (OnItemRemoveActivate,
34735         OnItemSelectAllActivate): Don't steal "Del" and "Ctrl+A" keys from
34736         the search entry.
34738 2005-09-08  Aaron Bockover  <aaron@aaronbock.net>
34740         * configure.in: Version 0.9.7
34741         * configure.in: Require ipod-sharp 0.5.4
34742         * src/IpodCore.cs: Disabled status, some kind of LTM bug... looking into it
34743         * src/IpodPropertiesWindow.cs: Fixed NullRef bug
34744         * src/Library.cs: Remove tracks from both track caches/maps
34745         * src/LibraryTransactions.cs: Remove tracks using new Library remove method
34746         in TrackRemoveTransaction
34747         * src/TrackInfoHeader.cs: Hide logo/album cover container 
34748         * libbanshee/gst-encode.c: Fixed double free, and a pipeline element
34749         * src/GstFileEncoder.cs: Fixed minor bug
34750         * src/Library.cs: Keep track of songs queued for manual removal
34751         * src/IpodCore.cs: Fixed manual song remove bug
34752         * src/SourceView.cs: AddPlaylist() for adding playlist sources
34753         * src/PlayerInterface.cs: Update disk usage bar when device emits Changed
34754         signal. Add/Remove playlist specifically from the source view instead of
34755         rebuilding the source list. Updated Ipod UI parts.
34757 2005-09-07  Hans Petter Jansson  <hpj@novell.com>
34759         * libbanshee/xing/emdct.c
34760         * libbanshee/xing/hwin.c
34761         * libbanshee/xing/l3init.c
34762         * libbanshee/xing/mp3enc.cpp
34763         * libbanshee/xing/mp3low.h
34764         * libbanshee/xing/sbt.c
34765         * libbanshee/xing/setup.c
34766         * libbanshee/xing/xhwin.c: Make static or add xingenc_ namespace to
34767         the most obnoxious exported functions. This fixes a clash with a
34768         symbol in GStreamer's oggdec plugin, and makes future clashes less
34769         likely. The Xing code still needs a more thorough cleanup.
34771 2005-09-06  Aaron Bockover  <aaron@aaronbock.net>
34773         * data/glade/player.glade: Moved the iPod box to under the playlist view,
34774         will add more iPod crack there later
34775         * data/glade/trackinfo.glade: Add an event box behind the title label for
34776         setting its tooltip
34777         * src/TrackProperties.cs: Show the "editing track" title for single edits
34778         and set its tooltip to the URI of the current track
34779         * src/PlayerInterface.cs: Only update last played/play count when 
34780         at least half the song has been played (bug 315168)
34781         * data/banshee.schemas.in: schema for CopyOnImport, default to false
34782         * src/Preferences.cs: Default to false for CopyOnImport
34783         * data/Tables.sql: Removed incomplete and unused Smart Playlist tables
34784         * src/Database.cs: WriteCycleFinished event for notifying objects that
34785         the current query is finished and it is save to make pending queries
34786         * src/LibraryTrackInfo.cs: Catch exception on Save() query for potential
34787         database locking and put in a request with the Database core for 
34788         notification when it is safe to re-try the query
34789         * src/IpodTrackInfo.cs:
34790         * src/AudioCdCore.cs (AudioCdTrackInfo):
34791         * src/LibraryTrackInfo.cs: remove manual UID setting
34792         * plugincore/TrackInfo.cs: base class sets UID
34794 2005-09-06  Dan Winship  <danw@novell.com>
34796         * burn-sharp/Makefile.am: 
34797         * entagged-sharp/Makefile.am: 
34798         * hal-sharp/Makefile.am: 
34799         * mediaengines/gst/Makefile.am: 
34800         * mediaengines/helix/Makefile.am: 
34801         * plugincore/Makefile.am: 
34802         * src/Makefile.am: Install .mdb files along with assemblies.
34804         * libbanshee/.cvsignore: add CORBA CDDB gunk
34806         * libbanshee/gst-player-engine.c (gpe_pipeline_setup): Drop
34807         "error" param since it's not used. Return success/failure.
34808         (gpe_new): if gpe_pipeline_setup() fails, return NULL rather than
34809         crashing.
34810         (gpe_free): fix leak
34811         * mediaengines/gst/GstPlayerEngine.cs (TestInitialize): fill this
34812         in.
34813         * src/Core.cs: Exit without crashing if the AudioCdPlayer can't be
34814         loaded
34816         * src/EllipsizeLabel.cs: Gtk.Label subclass that checks if an
34817         "ellipsize" property exists on the underlying C object and sets it
34818         if so (so we get ellipsization on gtk 2.6+ platforms without
34819         depending on gtk# 2.6).
34820         * src/TrackInfoHeader.cs: 
34821         * src/LibraryTransactionStatus.cs: Use it
34823         * src/PlayerInterface.cs (OnPlaylistViewButtonPressEvent): ignore
34824         double-clicks in the header area
34826 2005-09-05  Aaron Bockover <aaron@aaronbock.net>
34828         * src/AudioCdCore.cs: Set the URI for CD tracks to cdda://<track>#<device>
34829         * libbanshee/gst-player-engine.c: Added notify::source support for
34830         getting the source from the playbin element to set the CD device for 
34831         cdda:// URIs. Handles cdda:// URIs in the form of cdda://<track>#<device>
34832         * src/LibraryTransactions.cs: call Save() on track info after setting 
34833         new filename when performing copy on import
34834         * src/Library.cs: Applied patch to fix death on renaming new iPod (315307)
34836 2005-09-04  Aaron Bockover <aaron@aaronbock.net>
34838         * banshee: Version 0.9.6
34840         * src/LibraryTransactions.cs: Added copy-on-import to FileLoadTransaction;
34841         obeys GConf setting for the feature
34842         * src/Library.cs: IpodSource handles its own syncing and updating of
34843         tracks on iPod
34844         * src/IpodCore.cs: Fixed to allow manual update and automatic syncing
34845         * src/PlaylistView.cs: Show warning icon next to DRMed songs, show
34846         sync icon next to pending iPod songs
34847         * src/SourceView.cs: Show iPod sources that have been modified (queued
34848         for sync) in blue
34849         * src/PlayerInterface.cs: Restrict DnD on iPod view, disable view if
34850         if active view is a syncing iPod
34851         * src/AudioCdCore.cs: Parse proper artist and song title from the track 
34852         name CDDB field if artist is "Various" and the track name field contains
34853         a " / " token (per the CDDB Database Specification)
34854         * src/banshee.exe.config.in: Added libbonobo-2 mapping
34855         * libbanshee/gst-encode-test.c: Adapted to use pipeline for gst-encode
34856         * plugincore/TrackInfo.cs: Added set accessor on Year and Genre
34857         * src/CddbClient.cs: Old CDDB HTTP client removed
34858         * src/AudioCdCore.cs: Adapted to use CddbSlaveClient
34859         * src/CddbSlaveClient.cs: Bindings for CDDB Slave2 CORBA Client
34860         * configure.ac: Build rules cor cddb slave code
34861         * libbanshee/Makefile.am: Build cddb slave code
34862         * libbanshee/cddb-slave-client.[ch]: GObject wrapper around GNOME Media
34863         CDDB Slave2 CORBA client
34864         * libbanshee/GNOME_Media_CDDBSlave2.idl: IDL Definition for GNOME Media
34865         CDDB Slave2 CORBA client
34866         * libbanshee/cd-info.[ch]: Added offsets property string with all
34867         track offsets for CDDB queries
34869 2005-09-03  Aaron Bockover <aaron@aaronbock.net>
34871         * src/PlayerInterface.cs: Use the LogCore to report errors to the user
34872         * src/LogCore.cs: New logging system to easily propagate and log warnings
34873         and errors.
34874         * src/IpodCore.cs: File transcoding to allow non-iPod formats to be 
34875         copied to an iPod. Transcoded song duplicates are cached so they need
34876         only be transcoded once. This allows the computer library to be in various
34877         formats (Ogg, Flac, Mp3) and the iPod in MP3 or AAC format.
34878         * libbanshee/gst-encode.c: Pass a full pipeline for encoding instead of a 
34879         file extension used to conditionally select a hard coded encoder pipeline
34880         * src/FileEncoder.cs, src/GstFileEncoder.cs, src/FileEncodeTransaction.cs,
34881         BurnCore.cs: Use PipelineProfile instead of hard coded encoding options
34882         * src/Preferences.cs: Encoding preference option for iPod transcoding
34883         * data/glade/preferences.cs: Encoding area for iPod
34885 2005-09-02  Aaron Bockover <aaron@aaronbock.net>
34887         * banshee: Version 0.9.5
34888         * data/glade/player.glade: Removed Menu->Playlists, moved Properties to
34889         View, added Columns item to View menu
34890         * src/Library.cs: TracksFnKeyed table for file name lookups for tracks 
34891         instead of ID based lookup
34892         * src/LibraryTrackInfo.cs: Guard against already imported tracks
34893         * src/PlayerInterface.cs: Connect to AudioCdCore.Updated to refresh
34894         the view title if update is for CD in current view
34895         * src/SourceView.cs: Use Add/Remove events for AudioCdCore to remove
34896         and insert AudioCdSources instead of rebuilding the source view tree
34897         * src/SourceView.cs: Fixed right click/highlight bug (dup of danw, cvs
34898         collision), Draw Markup in Source cell renderer wrapped in 
34899         GLib.Markup.Escape
34900         * src/GConfKeys.cs: LastFileSelectorUri: key to store last position in
34901         the file selectors
34902         * src/PlayerInterface.cs: Retain last directory in gconf for the file/folder
34903         selectors. Open the selector at that path.
34904         * src/LibraryTrackInfo.cs, src/IpodTrackInfo.cs, src/AudioCdCore.cs:
34905         Set the track UID using UidGenerator.Next
34906         * src/Core.cs: NextUid removed in favor of UidGenerator.Next
34907         * src/Dialogs.cs: MessageDialogs class for really simple prompting
34908         * src/AudioCdCore.cs: Better HAL event and device handling... no longer
34909         regenerate disk objects on a HAL event.
34910         * src/PlayerInterface.cs: Do not allow drag operations for Audio CDs,
34911         Disable search for CDs and Playlists, Cleaned up Menus, Rename on iPod
34912         now pops up an iPod-specific rename dialog, fixed markup errors, Fixed
34913         playlist appending, only allow rename on sources that allow it
34914         * src/Library.cs: CanRename property for Source objects. set accessor
34915         on Source.Name removed, moved to Rename method that returns false on
34916         failure. PlaylistSource shows an error dialog if it can't rename (existing
34917         playlist).
34919 2005-09-02  Dan Winship  <danw@novell.com>
34921         * src/Dialogs.cs (InputDialog.Execute): make Return == OK.
34923         * src/PlayerInterface.cs (ImportWithFileSelector,
34924         OnMenuImportFilesActivate): 
34925         * src/Preferences.cs (OnButtonLibraryChangeClicked): Remove
34926         incorrect (but harmless) "gnome-vfs" arg.
34928         * src/SourceView.cs (HighlightPath): select the row. (Fixes so
34929         that right-clicking on an unselected row DTRT now.)
34931 2005-09-01  Hans Petter Jansson  <hpj@novell.com>
34933         * libbanshee/xing/gst-xing-encoder.c (xing_mp3_encoder_chain): Fixed
34934         a large memory leak.
34936 2005-09-01  Aaron Bockover <aaron@aaronbock.net>
34937         
34938         * libbanshee/gst-misc.c: Use gst_bin_parsev for pipeline validating
34939         * src/PlayerInterface.cs: Only show rip button if in CD view, tooltip for
34940         rip button
34941         * src/LibraryTrackInfo.cs: Two new constructors for generating a library
34942         track object off of pure metadata and an existing URI
34943         * src/RipTransaction.cs: Better progress handling, no longer load ripped
34944         track into library using a FileLoadTransaction (causes metadata loss if
34945         encoder does not support tagging), instead load directly into cache
34946         * src/Preferences.cs: Preference page for setting ripping encoder profile
34947         * src/PipelineProfile.cs: GStreamer pipeline profile manager
34948         * src/GstMisc.cs: Bindings for libbanshee/gst-misc.c
34949         * libbanshee/gst-misc.[ch]: Misc. gstreamer functions
34951         * libbanshee/Makefile.am: Build Xing conditionally (--enable-xing)
34952         * configure.ac: Disable Xing by default, --enable-xing to enable
34953         * src/FileNamePattern.cs: Full pattern support for naming, creates
34954         directory structure if not exist
34955         * src/RipTransaction.cs: Bug fixes
34956         * libbanshee/cd-rip.c: Fix some bugs
34957         * mediaengines/gst/GstPlayerEngine.cs: DllImport on libbanshee
34958         * src/GstFileEncoder.cs: DllImport on libbanshee
34959         * mediaengines/gst/*.[ch]: moved to libbanshee
34960         
34961         * data/glade/player.glade: Ripping button
34962         * src/PlayerInterface.cs: New button to initiate Ripping, added UI code
34963         to create and register a RipTransaction
34964         * src/Library.cs: Library.sdb is now .banshee.db in new DefaultLibraryPath
34965         * src/Utilities.cs: DefaultLibraryPath now ~/My Music
34966         * src/FileNamePattern.cs: Base template for a file name pattern class to
34967         build file names based on an input pattern and create a directory structure
34968         * src/RipTransaction.cs: Bindings to CD Ripping core, and implementing
34969         LTM Transaction for Ripping/Encoding. Use xingenc bitrate=192, will
34970         make UI for future to pass any gst encoder pipeline
34971         * libbanshee/cd-rip.[ch]: CD Ripping Core
34972         * src/Library.cs: New default library DB path: ~/My Music/.banshee.db
34973         * src/Utilities.cs: New default library location: ~/My Music
34975 2005-08-31  James Willcox  <snorp@snorp.net>
34977         * src/SearchEntry.cs: delay a bit before emitting the 'changed'
34978         event, so we don't do spurious searches.
34979         * src/PlayerInterface.cs: guard against a null active track when
34980         ejecting an iPod.
34981         * burn-sharp/*: synced up
34983 2005-08-31  Aaron Bockover <aaron@aaronbock.net>
34985         * data/images/source-ipod-{shuffle,photo}.png: New iPod icons
34986         * src/SourceView.cs: Show a photo, regular, or shuffle iPod as an icon
34988 2005-08-31  Dan Winship  <danw@novell.com>
34990         * plugincore/IPlayerEngine.cs: fix a comment
34992         * mediaengines/helix/HxPlayer.cs (HxPlayer): Use Marshal.SizeOf
34993         rather than a hardcoded size.
34994         (Dispose): Call GC.SuppressFinalize so
34995         HxUnmanaged.ClientPlayerClose() doesn't get called twice if the
34996         HxPlayer is explicitly disposed.
34998         * src/AboutBox.cs: Make sure the timer always gets cleaned up
34999         properly when the window closes.
35001         * src/Core.cs (FindUserRealName): Use g_get_real_name() from glib
35003         * src/PlayerInterface.cs (OnPlaylistViewMotionNotifyEvent): fix
35004         again so column resizing/rearranging works again
35006         * src/PlaylistView.cs: don't intercept OnColumnClicked. Let the
35007         TreeView handle sorting itself. Also, Set a ColumnDragFunction to
35008         prevent dragging the content columns before the "now playing"
35009         column.
35011         * src/*.cs: Remove GLib.GType stuff which isn't needed. (Probably
35012         copied from another old out-of-date gtk# app)
35014 2005-08-31  James Willcox  <snorp@snorp.net>
35016         * banshee: 0.9.2
35017         * add an emacs modeline to all the .cs sources
35018         * src/IpodCore.cs: fix iPod syncing.
35019         * src/PlayerInterface.cs (OnSimpleSearch): fix a null reference that
35020         was causing some crashes.
35022 2005-08-30  Aaron Bockover  <aaron@aaronbock.net>
35024         * libbanshee/xing/gst-xing-encoder.[ch]: GStreamer plugin for Xing
35025         * libbanshee/xing: Moved Xing Encoder from mediaengines/xing-encoder
35026         * libbanshee/gst-init.[ch]: GStreamer initialization
35027         
35028 2005-08-30  Hans Petter Jansson  <hpj@novell.com>
35030         * mediaengines/xing-encoder/xing-mp3-encoder.c
35031         (xing_mp3_encoder_set_property): Guard against too low bitrate being
35032         set.
35034 2005-08-30  Hans Petter Jansson  <hpj@novell.com>
35036         * mediaengines/xing-encoder/xing-mp3-encoder.c
35037         (xing_mp3_encoder_get_property)
35038         (xing_mp3_encoder_set_property): Fix bad symbol references.
35040 2005-08-30  Hans Petter Jansson  <hpj@novell.com>
35042         * mediaengines/xing-encoder/Makefile.am: Add xing-mp3-encoder.[ch],
35043         add $(GST_CFLAGS).
35044         * mediaengines/xing-encoder/xing-mp3-encoder.[ch]: Implement Xing MP3
35045         Encoder GST plugin.
35047 2005-08-30  Aaron Bockover  <aaron@aaronbock.net>
35049         * src/PlayerInterface.cs, src/SourceView.cs: Good support for CD Audio
35050         Source
35051         * src/AudioCdCore.cs: Complete Audio CD Backend, with CDDB support
35052         * src/CddbClient.cs: CDDB Client
35053         * libbanshee/cd-info.c: DiskID Support
35054         
35055 2005-08-30  Dan Winship  <danw@novell.com>
35057         * src/PlayerInterface.cs (OnPlaylistViewButtonPressEvent): never
35058         eat control/shift clicks, so GtkTreeView will handle control-click
35059         to unselect rows.
35060         (OnPlaylistViewMotionNotifyEvent): Ignore drags below the last row
35061         of the tree
35063 2005-08-30  Dan Winship  <danw@novell.com>
35065         * Makefile.am (SUBDIRS): add po/
35067         * mediaengines/gst/GstPlayerEngine.cs: 
35068         * mediaengines/gst/gst-encode.c: 
35069         * mediaengines/gst/gst-player-engine.c: 
35070         * mediaengines/helix/HelixPlayer.cs: 
35071         * mediaengines/helix/HxPlayer.cs: 
35072         * plugincore/TrackInfo.cs: 
35073         * src/*.cs: Use _() / Catalog.GetString()
35074         
35075         * plugincore/Makefile.am ($(ASSEMBLY)): 
35076         * mediaengines/gst/Makefile.am ($(ASSEMBLY)): add -r:Mono.Posix
35078         * src/Core.cs (UserFirstName): don't add "'s" here, since that has
35079         to be part of the localization of "{0}'s Music Library". (Ignoring
35080         for now the larger issue that the first word of the user's full
35081         name might not be their given name.)
35083         * src/Library.cs (IpodSource.DiskUsageString): property that
35084         returns an internationalized "500 MB of 2 GB (1500 MB Remaining)"
35085         string.
35087         * src/PlayerInterface.cs (OnSimpleSearch): deal with the fact that
35088         the field names are now localized rather than being constant
35089         strings.
35091         * src/PlaylistColumns.cs: Add another arg to the constructor
35092         giving the database key name, since that won't be related to the
35093         column name if LANG != en
35095         * src/LibraryTrackInfo.cs (IncrementPlayCount): use the invariant
35096         datetime format for LastPlayed, not the localized one.
35098 2005-08-29  Aaron Bockover  <aaron@aaronbock.net>
35099         
35100         * banshee: Version 0.9.1
35101         * mediaengines/helix/HelixPlayer.cs: Fixed PCM set to 0 bug (314816)
35102         * libbanshee/cd-info.c: More internals complete/working, cdparanoia
35103         fix in patched gstreamer
35104         * src/DBusIPC.cs: Virtual D-Bus methods for TogglePlaying(), Next(), 
35105         and Previous() 
35106         * src/Main.cs: Command line option parser, supports --play-pause, 
35107         --next, and --previous, translated to method calls on running instance
35108         over D-Bus
35109         * src/PlayerInterface.cs: Generic Next()/Previous() methods for D-Bus,
35110         UI Button for Syncing iPod
35111         * src/IpodCore.cs: IpodSyncTransaction for auto-syncing iPod
35112         * src/PlayerInterface.cs, src/Preferences.cs: Disable CD Burning UI
35113         unless BANSHEE_BURN_ENABLE is set (Attn Packagers: DO NOT SET THIS...
35114         development only)
35115         * src/TrackProperties.cs: Multi-track metadata editor
35117 2005-08-29  Dan Winship  <danw@novell.com>
35119         * src/PlayerInterface.cs (OnPlaylistViewMotionNotifyEvent): Oops,
35120         don't start a song drag if the user is dragging a column. Also,
35121         the drag action should have been Move|Copy, not just Move.
35122         (OnPlaylistViewButtonReleaseEvent): if the user clicks on a single
35123         row of a multi-row selection (without dragging), select just that
35124         row.
35126 2005-08-28 Aaron Bockover <aaron@aaronbock.net>
35127         
35128         * banshee: Version 0.9.0
35129         * src/AudioCdCore.cs: Implementing cd-info bindings
35130         * libbanshee/cd-info.c: Disk/Track info objects, GStreamer to detect 
35131         sectors, offsets, and track numbers/layouts
35132         * src/Library.cs: New AudioCdSource
35133         * src/SourceView.cs: Listen to AudioCdCore for events to update the
35134         SourceView
35135         * src/AudioCdCore.cs: Bindings to cd-detect.c, AudioCdCore class provides
35136         a centralized layer for Audio CDs
35137         * libbanshee/cd-detect.c: HAL Audio CD Detection Library
35138         * libbanshee: Core Banshee C code
35139         * src/banshee.exe.config.in: Updated mappings, split up, don't override
35140         mono mappings
35141         * burn-sharp/burn-sharp.dll.config.in, burn-sharp/Makefile.am: DLL config
35142         file for burn-sharp assembly
35143         * src/ipod-sharp.dll.config.in, src/Makefile.am: DLL config file for
35144         ipod-sharp assembly
35146 2005-08-26 Aaron Bockover <aaron@aaronbock.net>
35148         * src/NotificationAreaIcon.cs: Tray icon code no longer depends on 
35149         eggtrayicon in egg in libsonance
35150         * libsonance/: Removed
35151         * src/LibraryTrackInfo.cs: Fix canSaveToDatabase = true, fixes append to
35152         Playlist bug
35153         * src/PlayerInterface.cs: Window resize/show patch
35154         * data/org.gnome.Banshee.service.in: D-Bus Service File
35155         * data/banshee.schemas.in: GConf Schemas
35156         * configure.ac: Check for sqlite3
35157         * src/Database.cs: Use sqlite3
35159 2005-08-25 Aaron Bockover <aaron@aaronbock.net>
35161         * data/banshee.desktop.in.in: Moved from banshee.desktop.in
35162         * data/Makefile.am: Translate banshee.desktop.in
35163         * configure.ac: Better configure checks, fix sqlite problem, hopefully
35164         * configure.ac, Makefile.am, po/: Set up infrastructure for translations
35165         * mediaengines/xing-encoder/Makefile.am: Fixed so make distcheck works
35166         * mediaengines/xing-encoder: Xing MP3 Encoder from RealNetworks
35167         * mediaengines/gst/Makefile.am, libsonance/Makefile.am, 
35168         burn-sharp/Makefile.am: -module -no-version
35169         * mediaengines/gst/gst-player-engine.c: Fixed random return
35170         * configure.ac: Check /usr/lib, /usr/local for SQLITE
35171         * src/SearchEntry.cs: Do not call changed event twice 
35172         * src/IpodPropertiesWindow.cs: More properties
35173         * src/PlayerInterface.cs, src/PlaylistModel.cs, src/PlaylistView.cs: 
35174         DnD patch by Dan Winship, fixes most DnD issues 
35175         * mediaengines/helix/HelixPlayer.cs: ClientPlayerMute to unmute 
35176         PCM on startup
35177         * entagged: Dropped from tree
35178         * entagged-sharp: Added to tree, updated sync script, updated entagged
35179         * configure.ac, src/Makefile.am: Updated for entagged-sharp
35180         
35181 2005-08-21 Aaron Bockover <aaron@aaronbock.net>
35183         * banshee: 0.8.7.1
35184         * configure.ac: Export ASM_VERSION instead of VERSION, an assembly-friendly
35185         version number string; require ipod-sharp 0.5.11 or better
35186         * src/IpodPropertiesWindow.cs: Display labels instead of entries if
35187         iPod is mounted read-only
35188         * src/PlayerInterface.cs: Only call Device.Save() if iPod is mounted RW
35189         * src/ImageAnimation.cs: Fix animation sync bug
35191 2005-08-20 Aaron Bockover <aaron@aaronbock.net>
35193         * banshee: Version 0.8.7
35194         * configure.ac: Version 0.8.7
35195         * src/PlayerInterface.cs: Better default window size
35196         * src/PlayerInterface.cs: Fixed UI bug that wouldn't show source view
35197         if library at startup was empty
35198         * banshee: Version 0.8.6
35199         * src/PlayerInterface.cs: Search works on the iPod, ejection fixes
35200         * src/PlayerInterface.cs: Don't show the source view until the database
35201         has been loaded into cache
35202         * src/TrackInfoHeader.cs: Don't show Banshee Version
35203         * src/PlayerInterface.cs: Nice iPod properties box, properties context
35204         menu, generic StopPlaying method
35205         * src/IpodPropertiesWindow.cs: Full iPod properties dialog/editor
35206         * configure.ac: Added more potential HELIX_LIBS paths to detector
35208 2005-08-18 Aaron Bockover <aaron@aaronbock.net>
35209         
35210         * plugincore/TrackInfo.cs: Abstract TrackInfo class
35211         * src/LibraryTrackInfo.cs: Library TrackInfo, extends TrackInfo
35212         * src/IpodTrackInfo.cs: Ipod TrackInfo, extends TrackInfo
35213         * src/PlayerInterface.cs: Ipod stuff, play from iPod, iPod properties
35214         * src/AboutBox.cs: About box patch from Evan... scrolls credits? Woo?
35215         * src/DBusIPC.cs: Dbus object, registration, session stuff
35216         * src/Main.cs: Instance detection through dbus
35217         * banshee: Probably more stuff I missed, because I suck at updating
35218         my own ChangeLogs
35220 2005-08-14 Aaron Bockover <aaron@aaronbock.net>
35222         * banshee: Version 0.8.5
35223         * src/PlaylistModel.cs: NullReferenceException bug fixes
35224         * src/BurnCore.cs: GConf bug fix
35225         * banshee: Various other bug fixes
35226         
35227 2005-08-11 Aaron Bockover <aaron@aaronbock.net>
35229         * src/BurnCore.cs: Fixed 313256 (exception thrown if burner was never
35230         configured in preferences... default is now selected)
35232         * banshee: Version 0.8.4
35233         * mediaengines/helix: Helix (hxclientkit) bindings working,
35234         HelixPlayer implementation of IPlayerEngine
35235         * plugincore/IPlayerEngine.cs: Interface updates
35236         * mediaengines/gst/GstPlayerEngine.cs: Updated to implement IPlayerEngine
35237         interface updates
35238         * src/Preferences.cs: Notify that restart needed after changing Player
35239         Engines
35240         * src/PlayerInterface.cs: Update song length if it was previously 0 
35241         with stream length from player engine if available
35242         * configure.ac: Detect HELIX_LIBS automatically or set based on configure
35243         --with-helix-libs option
35245 2005-08-08 Aaron Bockover <aaron@aaronbock.net>
35247         * libsonance/Makefile.am: SONANCE_* -> BANSHEE_*
35248         * configure.ac: Cleaned up lots of stuff
35249         * src/PlayerInterface.cs: Minor bug fixes
35250         * mediaengines/gst/GstPlayerEngine.cs: Fixed some error handling bugs,
35251         other minor bugs
35252         * mediaengines/gst/gst-player-engine.c: Fixed some error handling bugs
35253         * banshee.{mds,mdp}: Added entagged, plugincore, mediaengines/gst, and
35254         mediaengines/helix Mono Develop projects
35255         * Makefile.am: Removed banshee.{mds,mdp} from EXTRA_DIST. Not distributing
35256         Mono Develop projects with tarball releases
35258 2005-08-07 Aaron Bockover <aaron@aaronbock.net>
35260         * banshee: Version 0.8.3
35261         * banshee: gst-sharp player engine removed
35262         * src/PlayerInterface.cs: Implemented seeking in the UI
35263         * mediaengines/gst/GstPlayerEngine.cs: Bindings implementing IPlayerEngine
35264         for new GStreamer C player engine core
35265         * mediaengines/gst/gst-player-engine.c: New GStreamer C player engine core
35266         * mediaengines/gst/gst-player-engine.h: New GStreamer C player engine core
35268 2005-08-04 Aaron Bockover <aaron@aaronbock.net>
35270         * banshee: Version 0.8.2
35271         * configure.ac: --enable-helix option, HME disabled by default
35272         * mediaengines/helix/Makefile.am: if ENABLE_HELIX.. build only if requested
35273         * banshee: More Sonance->Banshee string changes
35274         * banshee: Namespace renamed from Sonance to Banshee
35275         * banshee: Files/Graphics updated to read Banshee in public/user places
35276         * sonance: Renamed to Banshee
35277         * src/Preferences.cs: Player Engine Chooser, Advanced Tab
35278         * src/PlayerEngineLoader.cs: Uses gconf to select preferred engine
35279         * plugincore/IPlayerEngine.cs: New fields for name, description, author,
35280         etc. for engine implementations. Initializer code moved to Initialize()
35281         function. Added TestInitialize() to interface.
35282         * src/mediaengines/HelixPlayer.cs: More minor fixes, still not working
35284 2005-08-03 Aaron Bockover <aaron@aaronbock.net>
35286         * sonance: Version 0.8.1
35287         * src/PlayerInterface.cs: Rating Menu, Increment Play Count/Date
35288         * src/PlaylistView.cs: Column Sorting, new Last Played Column
35289         * src/PlaylistColumns.cs: CellRenderer argument
35290         * src/TrackInfo.cs: Save count, date, rating
35291         * src/RatingRenderer.cs: CellRenderer for stars as rating
35293 2005-08-01 Aaron Bockover <aaron@aaronbock.net>
35295         * mediaengines/gst/Makefile.am: Fixed rule that removed bundled
35296         gst-sharp.dll on distclean
35297         * src/TrackInfoHeader.cs: Why I had a hard-coded version number is beyond me
35298         * src/PlayerInterface.cs: Fixed Menu->Quit bug not saving settings
35299         * data/images: Two new icons
35300         * src/PlaylistView.cs: Added column for showing arrow of current 
35301         playing song
35302         * src/PlaylistColumns.cs: Fixed column saving bug
35304         * sonance: Lots and lots of updates, I'm sure I missed lots of things
35305         in the ChangeLog
35307         * mediaengines/helix: Unworking Helix Core (very close to working,
35308         one major bug to figure out)
35310         * plugincore: New library currently containing IPlayerEngine and 
35311         ITrackInfo for developing player engine plugins
35312         * src/BurnCore.cs: Core CD Burning Engine
35313         * src/FileEncodeTransaction: LTM Transaction for the FileEncoder
35314         * src/BurnTransaction: LTM Transaction for the CD Burner (not in use ATM)
35315         * src/PlayerEngineLoader.cs: Searches for assemblies that have classes
35316         implementing IPlayerEngine - loads engines at runtime (no more linking)
35317         * src/Core.cs: Use PlayerEngineLoader
35319 2005-07-28 Aaron Bockover <aaron@aaronbock.net>
35321         * sonance: Version 0.8.0
35322         * src/FileEncoder.cs: Abstract engine class for encoding files
35323         * src/GstFileEncoder.cs: GStreamer implementation of FileEncoder class
35324         using mediaengines/gst/gst-encode
35325         * src/NautilusBurnUtil.cs: Utilities for libnautilus-burn-sharp
35327 2005-07-27 Aaron Bockover <aaron@aaronbock.net>
35329         * burn-sharp/: Added libnautilus-burn-sharp source tree
35330         * mediaengines/gst/: Added gst media engine root
35331         * mediaengines/gst/gst-encode.c: GStreamer file encoder engine
35332         * src/Preferences.cs: CD Burning Preferences
35334 2005-07-20 Aaron Bockover <aaron@aaronbock.net>
35336         * src/Makefile.am: Updated install-data-hook and uninstall-data rules to
35337         play nice with make distcheck
35339 2005-07-19 Aaron Bockover <aaron@aaronbock.net>
35341         * hal-sharp/: Added hal-sharp source tree
35342         * src/Makefile.am: Added hal-sharp, added uninstall-hook rule for ipod-sharp
35344 2005-07-18 Aaron Bockover <aaron@aaronbock.net>
35346         * configure.ac: Now requires ipod-sharp
35347         * src/Makefile.am: Cleaned out some of the unused resources, uses ipod-sharp
35348         * src/IpodCore.cs: IpodCore for managing all iPod services
35350 2005-07-12 Aaron Bockover <aaron@aaronbock.net>
35352         * configure.ac: Got rid of AC_PROG_CC
35354 2005-07-09 Aaron Bockover <aaron@aaronbock.net>
35356         * Library.cs: New Playlist.Count property
35357         * SourceView.cs: Updated source cell renderer to show child count
35358         * PlaylistModel.cs: Updated ChangeDirection algorithm, added O(1) 
35359         regression history for random playback
35360         * project: Version 0.7.3
35361         * PlayerInterface.cs: Added dynamic playlist context menu item and submenu
35362         to add selection to existing or new playlist
35364 2005-07-08 Aaron Bockover <aaron@aaronbock.net>
35366         * project: removed mm-keys support
35367         * LibraryTransactionManager.cs: small bug fix
35368         * PlayerInterface.cs: Edit menu enhanced with new items, tooltips on 
35369         toolbar buttons at the bottom
35370         * PlaylistView.cs: the beginning of column sorting
35372 2005-07-07 Aaron Bockover <aaron@aaronbock.net>
35374         * SqlGenerator.cs: Added Statement.Empty and ParenGroup classes
35375         * LibraryTransactions.cs: Made TrackRemoveTransaction an abstract class
35376         and added LibraryTrackRemoveTransaction and PlaylistTrackRemoveTransaction
35377         that extends TrackRemoveTransaction
35378         * PlayerInterface.cs: Proper removal of music from Playlists
35379         * PlayerInterface.cs: Prompt a confirm dialog to user to ask if they are
35380         sure they want to remove music from their *library*
35381         * Core.cs: Find user's real name
35382         * PlayerInterface.cs: Name of Playlist or User's Library showed at
35383         top of tree view depending on source
35384         * SourceView.cs: Single click/arrow up/down now selects source instead
35385         of double click/row activate
35386         * PlayerInterface.cs: Total Play Duration format updated to include
35387         days of music playback as well as hours, minutes, seconds
35388         * PlayerInterface.cs: Track Count / Total Play Duration updated on
35389         item remove
35391 2005-07-06 Aaron Bockover <aaron@aaronbock.net>
35392         
35393         * SqlGenerator.cs: More SQL classes (generic OR and AND, updated WHERE)
35394         * PlaylistModel.cs, PlayerInterface.cs: Fixed logic for removing 
35395         selected tracks (bug 309608, mtgordon)
35396         * LibraryTransactions.cs: New TrackRemoveTransaction to remove a set 
35397         of tracks from the library
35399 2005-07-06 Aaron Bockover <aaron@aaronbock.net>
35401         * Project: 0.7.2 Release, and I updated the ChangeLog...
35402         * PlaylistModel.cs: Added random/shuffle with history
35403         * PlayerInterface.cs: Rename playlist dialog, tool buttons work
35404         
35405 2005-06-29 Aaron Bockover <aaron@aaronbock.net>
35407         * Project: dropped Muine Metadata support, using Entagged
35408         * Project: lots of other stuff since last entry, I need to get
35409         better about writing the ChangeLog again :)
35411 2005-06-21 Aaron Bockover <aaron@aaronbock.net>
35413         * PlayerEngine.cs: New abstract class for building modular playback
35414         engines. Updated GstPlayer to extend PlayerEngine.
35416         * PlayerInterface.cs: Various bug fixes, cleanup
35418         * DBusIPC.cs: Added D-Bus dependency for IPC
35420         * Project: Updated build system, depends on dbus-sharp, fixed
35421         Makefile.am to include id3-vfs
35423 2005-06-20 Aaron Bockover <aaron@aaronbock.net>
35425         * Project: First import to GNOME CVS as a Novell-owned project. Heavy
35426         development ahead, starting to manage ChangeLog again.
35429 2005-05-04 Aaron Bockover <aaron@aaronbock.net>
35431   * PlayerInterface.cs: Playlist renaming/delete/append
35433   * Library.cs: Playlist renaming/delete/append
35435   * SourceView.cs: Fixed cell editor for sources
35437 2005-05-03 Aaron Bockover <aaron@aaronbock.net>
35439   * PlaylistView.cs: Reorder via DnD
35441 2005-05-02 Aaron Bockover <aaron@aaronbock.net>
35443   * PlayerInterface.cs: New playlist creation support
35445   * PlaylistView.cs: Multiple row selections supported.
35447 2005-04-28 Aaron Bockover <aaron@aaronbock.net>
35449   * SimpleNotebook.cs: Very simple Notebook widget (without tabs) for the
35450     status header widgets in the top of the main UI.
35452   * SearchEntry.cs: Custom search entry widget with drop down menu for
35453     simple searching
35455 2005-04-24 Aaron Bockover <aaron@aaronbock.net>
35457   * SqlBuilder.cs: SQL Builder UI for searching/smart playlists.
35459 2005-04-15 Aaron Bockover <aaron@aaronbock.net>
35461   * PlaylistView.cs: Column states saved, dialog to toggle column visibility
35462   
35463   * TrackInfo.cs: Support for album information now
35464   
35465   * Library.cs: Cache of all Library Tracks
35466   
35467   * PlayerInterface.cs: New Interface!
35469 2005-04-11 Aaron Bockover <aaron@aaronbock.net>
35471   * TrackInfo.cs: Fixed playlist loading bug
35472   
35473   * Database.cs: SQLite connection managing for threads
35475 2005-04-07 Aaron Bockover <aaron@aaronbock.net>
35477   * LibraryTransactions.cs: Playlist saving
35479 2005-04-03 Aaron Bockover <aaron@aaronbock.net>
35481   * PlayerInterface.cs: Added connecting code to the LibraryTransactionStatus
35483   * LibraryTransactionStatus.cs: Wrote UI for showing statistics in the 
35484     LibraryTransactionManager. 
35486   * ImageAnimation.cs: Wrote nice Animated Image widget
35488   * LibraryTransactions.cs: Replaced FileLoader with LibraryTransactions
35490   * FileLoader.cs: Removed FileLoader
35492   * LibraryTransactionManager.cs: Wrote LibraryTransactionManager to 
35493     manage all Library IO in a safe way
35495 2005-04-01 Aaron Bockover <aaron@aaronbock.net>
35497   * Preferences.cs: Wrote beginning of UI for Mimetype/Decoder handling
35499 2005-03-31 Aaron Bockover <aaron@aaronbock.net>
35501   * Core.cs: Added support for global DecoderRegistry instance.
35503   * GstMetadata.cs: Updated to use core global DecoderRegistry for supported
35504     mimetype checking instead of old Core DB.
35506   * DecoderRegistry.cs: Wrote DecoderRegistry class. This handles the parsing
35507     of the GStreamer plugins registry to build a local decoders registry
35508     for mimetype checking. The decoder registry is saved to XML for quick 
35509     loading on next run. Also will allow a UI for users to add/remove
35510     mimetypes.
35512   * Database.cs, Core.cs: Removed Core database. All SQL queries are specific 
35513     to the Library database.
35515   * Finally, a break from work to really do some hacking on Sonance again :-/
35517 2005-03-10 Aaron Bockover <aaron@aaronbock.net>
35519   * PlayerInterface.cs: Progress bar for track loading/importing
35521   * Preferences.cs: You can save/edit preferences
35523   * Preferences.cs: New preferences dialog.
35525 2005-03-09 Aaron Bockover <aaron@aaronbock.net>
35527   * FileLoader.cs: Support for SQL queries, sends IDataReader to TrackInfo.
35528     Reduces library load times (4000 songs) to 5 seconds! Major optimization!
35530   * TrackInfo.cs: New constructor that handles a raw IDataReader to reduce
35531     the number of SQL queries. 
35533   * PlayerInterface.cs: Using new FileChooserDialog instead of old FileSelector
35535   * PlaylistView.cs: Now all playlist additions are done based on a queue
35536     and an interface timeout. This reduces load time by over 250% (vs. a 
35537     1:1 loader/UI sync). Uses FileLoader/FileLoaderManager.
35539   * FileLoader.cs: Wrote a managed file/SQL loader. Manages a queue of
35540     load requests, allows the cancellation of all requests. FileLoader
35541     objects recurse directories and load TrackInfo objects, or load
35542     them from the database.
35544 2005-03-01 Aaron Bockover <aaron@aaronbock.net>
35546   * PlaylistRowRenderer.cs: Removed extern constructors... not allowed in 
35547     latest mcs.
35549   * SourceView.cs: Removed extern constructors... not allowed in latest mcs.
35551   * Library.cs: Removed extern constructors... not allowed in  latest mcs.
35553   * All: Changed namespaces to avoid conflicts with mcs 1.1.4. Project
35554     now depends on gtk-sharp-2.0 (1.9.2), and the latest gst-sharp (0.2.4)
35555     from SVN.
35557 2005-02-28 Aaron Bockover <aaron@aaronbock.net>
35559   * Library.cs: Set of Source classes to define how to read data from
35560     a given source.
35562   * SourceDialog.cs: A window that embeds a SourceView widget, used by
35563     the main interface to show a list of sources.
35565   * SourceView.cs: A new TreeView widget for showing data sources (Library
35566     and a list of Playlists)
35568   * PlayerInterface.cs: Supports MmKeys.
35570   * MmKeys.cs: Wraps mm-keys support in libsonance, adds MM-Keys support
35571     to Sonance. Adapted from Muine.
35572     
35573   * SignalUtils.cs: Wraps signal utilities in gobject-2.0. Needed for
35574     MM-Keys. Adapted from Muine.
35576   * NoticationAreaIcon.cs: Calls native egg-tray from libsonance
35578   * Build System: Builds libsonance (C shared library) which includes
35579     egg-tray support and mm-keys support. Dropped egg-sharp.dll.
35581   * libsonance/mm-keys.c: Added to project
35583   * libsonance/eggtrayicon.c: Added to project
35585   * Dialogs.cs: Save playlist dialog
35587   * PlayerInterface.cs: Can save playlist
35589   * PlaylistView.cs: Now saves playlist to DB
35591   * Library.cs: Playlist class saves to Library DB
35592   
35593   * Database.cs: More DB utilities
35595 2005-02-26 Aaron Bockover <aaron@aaronbock.net>
35597   * PlaylistView.cs: Fixed bug when removing item from playlist
35599   * TrackInfo.cs: Writes metadata to Library database
35601   * Database.cs: Supports new SQL generator objects as queries
35603   * SqlGenerator.cs: New SQL query generator to easily generate complex and
35604     safe SQL queries
35606   * PlayerInterface.cs: Lots of code cleanp, and support for interfacing
35607     with NotificationAreaIcon.
35609   * NotificationAreaIcon.cs: Added tray icon support in GNOME through libegg.
35610     Uses the egg-sharp.dll assembly, a wraper for libegg.so.
35611   
35612   * Source/Makefile.am: Added libegg.so rule to use gcc to build eggtrayicon.c
35613     for the egg-sharp.dll assembly.
35615 2005-02-24 Aaron Bockover <aaron@aaronbock.net>
35617   * Database.cs: Supports multiple databases (we now have a core and a library
35618     database that are independent of eachother).
35620   * Data/Makefile.am: Included Tables.sql
35622   * Tables.sql: Defined all SQL Table construction in a SQL file, included
35623     as resource.
35625   * TrackProperties.cs: Updated to reflect new supported metadata. Also only
35626     shows fields that we have data for (instead of showing "Unknown Field").
35628   * TrackInfo.cs: Updated to reflect updated GstMetadata.
35630   * GstMetadata.cs: Updated GStreamer metadata backend. Using a Hashtable to
35631     store tag data. 
35632     
35633   * CommonTags.cs: Simple class containing GStreamer tag names as constant
35634     members.
35636   * AboutBox.cs: Updated about box with new graphic, a tabbed information
35637     layout, project information, and assembly information. New graphic does
35638     not reference version, and version information is written based on the
35639     main assembly, so no updates need to be made to this code anymore.
35641 2005-02-21 Aaron Bockover <aaron@aaronbock.net>
35643   * Database.cs: Added dynamic mime type support checking based on
35644     a GstDecoders and MimeSynonyms table in the SQL database.
35645     If GstDecoders is empty or non-existant, it is constructed
35646     based on the GStreamer registry.xml file. No hard-coded supported
35647     mime types exist now.
35649   * Database.cs: Added SQLite support. SQLite is now a dependency.
35651 2005-02-18 Aaron Bockover <aaron@aaronbock.net>
35653   * PlayerInterface.cs: Fixed volume loading bug.
35655 2005-02-18 Aaron Bockover <aaron@aaronbock.net>
35657   * Sonance-0.2.1: Minor release for updates below
35659   * PlaylistView.cs: Fixed minor bug in playlist. PlayIter now ScrollToCell
35660     to always keep the active item in view unless user manually scrolls out
35661     of view
35662   
35663   * PlayerInterface.cs: Statusbar now shows total number of items and duration
35664     of entire playlist
35666   * PlaylistView.cs: Added Update event. Fired whenever the playlist changes
35668   * PlaylistView.cs: Added TotalDuration support to hold the length (time)
35669     of entire playlist
35671 2005-02-18 Aaron Bockover <aaron@aaronbock.net>
35673   * Sonance-0.2 - That was fast!?
35675 2005-02-17 Aaron Bockover <aaron@aaronbock.net>
35677   * PlayerInterface.cs: Added a GConf client (/apps/Sonance). Now all interface
35678     states are saved and loaded (Window size/position, volume, shuffle/repeat,
35679     and search bar).
35681   * PlayerInterface.cs: Added a search box, with back/forward features, and
35682     it can be toggled via J or F3 (Similar to Firefox, live searching)
35684   * PlaylistView.cs: Added searching support
35686   * PlayerInterface.cs: Added support for "Add" files through Gtk.FileSelection
35687     dialog. I hate that dialog. I can't wait for gtk-sharp2 to become stable
35688     to use the new Gtk.FileChooser dialog. Mugh.
35690   * PlaylistView.cs: Added directory reading and recursion for additions
35691   
35692   * PlaylistView.cs: Added support for shuffle and repeat modes
35693   
35694   * PlayerInterface.cs: Many UI enchancements. Interface is now
35695     resizeable and there are shuffle/repeat toggle buttons
35696   
35697   * TrackInfo.cs: Implemented a window for viewing selected track properties
35698     (Shows metadata for track)
35700 2005-02-17 Aaron Bockover <aaron@aaronbock.net>
35702   * Sonance-0.1 - First Public Release