12013-12-10: Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>
2	* RandomPlaylistFeed.m
3	* GNUmakefile.preamble
4	* GNUmakefile
5	* Documentation/Install
6	  bump version to 1.5.1
7	  add built fix for systems that don't have arc4random in libc
8
92013-12-02: Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>
10	* CollectionBrowser.m
11	  get rid of -windowDidResize: method to fix weirdo resizing issues
12	  get rid of DoubleClick action thingies
13	  remove extraneous )
14	* MPDConInfo.plist, GNUMakefile, MPDCon.pcproj
15	  update version to 1.5
16	* PlaylistController.m
17	  make the removal of selected songs from playlist work
18
192013-11-23: Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>
20	* CollectionBrowser.m
21	* remove some NSLog entries
222013-11-23: Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>
23	* AppController.m
24	* CollectionBrowser.m
25	* CollectionController.m
26	* MPDController.m
27	* restructuring about notifications sent on collection updates
28	* Resources/CollectionBrowser.gorm
29	* re-add missing connection from NSOwner to -browser
30	* CollectionBrowser.m
31	* make the update and add buttons work as expected
32	* CollectionController.m
33	* AppController.m
34	* MPDController.m
35	* remove some NSLog
36	* CollectionBrowser.m
37	* reload browser columns when collection change notification
38	  are received
39	* Documentation/Install
40	  mention the need for libbsd(-dev) on Linux
41
422013-11-22: Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>
43	* Resources/CollectionBrowser.gorm
44	* add an update and add button
45
462013-11-14: Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>
47	* AppController.m
48	* CollectionBrowser.m
49	* CollectionController.m
50	* LyricsInspector.m
51	* PlayView.m
52	* PlaylistController.m
53	* PlaylistInspector.m
54	* PlaylistItem.m
55	* PlaylistsManagerController.m
56	* RandomPlaylistFeed.m
57	* SQLiteAdaptor.m
58	* SongInspector.m
59	* fix a couple of format strings, potential memory leaks,
60	  uses of uninitialized pointers, and others found by
61	  clang static analyzer
62
632013-02-09: Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>
64	* SQLiteAdaptor.m
65	  fix compilation with clang
66	* PlaylistsManagerController.[h|m]
67	* CollectionController.[h|m]
68	  (unsigned) int -> NS(U)Integer transitions
69
702012-01-06: Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>
71	* MPDController.[h|m], CollectionBrowser.[h|m],
72	  Resources/CollectionBrowser.gorm, AppController.m,
73	  Resources/Player.gorm
74	* add a Music Collection filesystem browser
75	* PlaylistItem.m, do not try to retrieve the lyrics
76	  for unknow artists or songs
77	* PlaylistController.m after playlistChanged, update the
78	  highlight the current song
79
802012-12-20: Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>
81	* MPDController.m fix double frees and crashers in
82	  the collection controller
83	* Update release version to 1.4
842012-12-15: Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>
85	* RandomPlaylistFeed.[h|m] honour the IncludeUnratedSongs
86	  default, and optimize algorithm a bit.
87	* PlaylistInspector.[h|m] new outlets for the
88	  IncludeUnratedSongs default, and grey out other text
89	  when it is disabled
90	* Resources/PlaylistInspector.gorm
91	  new outlets for some text in order to disable them,
92	  and checkbox to include unrated songs
93	* SQLiteAdaptor.m little fix
94
952012-12-12: Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>
96	* PlaylistItem.[m|h] make the rating an Integer, not
97	  unsigned integer
98	* SQLiteAdaptor.[h|m] same as above, and use the quoteString
99	  from libSQLite correcly
100	* RandomPlaylistFeed, make the feed based on rating work
101
1022012-12-11: Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>
103	* nearly any .m file: get rid of GNUstep macros
104
1052012-12-10: Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>
106	* Strings.h add new string for Notification for the random
107	  playlist feed
108	* GNUmakefile, PC.project, add RandomPlaylistFeed.[h|m]
109	* Implement a random Playlist Feed
110	* PlaylistInspector.[h|m] move out the threading, and
111	  put it in the RandomPlaylistFeed class
112	* MPDController.[h|m] parameterize getAllTracksWithMetadata:
113	* CollectionController.m use the new method
114	* AppController.[h|m] initialize the RandomPlaylistFeed
115
1162012-12-02: Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>
117	* SongInspector.h
118	  add method to shut up gcc from whining it may not be available
119	* PlaylistItem.[h|m], LyricsInspector.[h|m]
120	  Move the lyrics retriveal from web from the LyricsInspector
121	  to the PlaylistItem. There is a better place for it.
122	  While there, shut up gcc from whining, save as for the
123	  SongInspector
124
1252012-11-25: Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>
126	* SQLiteAdaptor.[h|m]
127	  restructuring, to also save retrieved lyrics from the
128	  web in the SQLite database
129	* PlaylistItem.[h|m]
130	  restructuring, and adding methods to retrieve, save
131	  song lyrics
132	* LyricsInspector.m
133	  try to lookup lyrics in DB before consulting the web
134	  and save found lyrics from web to DB
135
1362012-11-11: Sebastian Reitenbach <sebastia@l00-buggdead-prods.de>
137	* GNUmakefile.preamble, MPDCon.pcproj/PC.project
138	* link against -lSQLClient, the SongRatings will be saved
139	  in a sqlite3 database
140	* PlaylistInspector.[h|m], Resources/PlaylistInspector.gorm
141	  make it kind of work
142	* PlaylistItem.[h|m], get rid of the Private category,
143	  and use SQLiteAdaptor to store the SongRatings
144	* GNUMakefile, MPDCon.pcproject/PC.project
145	  Add SQLiteAdaptor.[h|m]
146	* CollectionController.[h|m] new method: getAllTracks
147
1482012-11-10: Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>
149	* MPDController.[h|m]
150	* Add - (void) removeSongRange: (NSRange)songRange;
151	  needed for the PlaylistInspector
152	* PlaylistController.[h|m]
153	* expose a - (NSString *) playlistLength, which gives back
154	  the length of the playlist as timestamp, needed
155	  by the PlaylistInspector
156	* move the loading of the playlist to the init method
157
1582012-10-31: Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>
159	* PlaylistController.m int -> NSInteger conversions
160	* PlaylistInspector.[h|m], AppController.[h|m],
161	  GNUmakefile, Resources/PlaylistInspector.gorm,
162	  Resources/Player.gorm MPDCon.pcproj/PC.projec
163	* Add PlaylistInspector, empty so far
164
1652012-10-29: Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>
166	* GNUmakefile
167	* PlaylistController.h
168	* PlaylistController.m
169	* PlaylistItem.h
170	* PlaylistItem.m
171	* SongRatingCell.h
172	* SongRatingCell.m
173	* MPDCon.pcproj/PC.project
174	* Resources/Star.tiff
175	* Add Rating of songs in the PlaylistViewer, still
176	  with some NSLog output, and still not 100%
177        * while there, some int -> NS(U)Integer conversions
178	* Add helper method to PlalistItem: _playlistItemPathToRatingKey
179	  stolen from RSSKit, and delete keys from the Ratings database
180	  when Rating gets set to 0
181	* Now that it seems to work as expected, remove NSLogs
182	  from SongRatingCell.m PlaylistItem.m
183
1842012-10-19: Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>
185	* LyricsInspector.m When the server is not reachable
186	  tell the user about it in the inspector.
187	* GNUmakefile
188	* GNUmakefile.preamble
189	* MPDConInfo.plist
190	* MPDCon.pcproj/PC.project
191	* Version 1.3
192
1932012-09-25: Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>
194	* grant a little bit more space for the title in
195	  the lyrics inspector
196	* Make the buttons in the PlaylistViewer wider to show
197	  all the button text
198
1992012-09-25: Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>
200	* Resources/Player.gorm
201	* Resources/SongInspector.gorm
202	* SongInspector.[h|m]
203	* AppController.[h|m]
204	* GNUMakefile
205	* PlaylistItem.[h|m]
206	* MPDController.m
207	* Add an Inspector to see all details about the currently
208	  played song. PlaylistItem had to be enhanced to handle
209	  all available MPD tags. MPDController had to be enhanced
210	  to also set the new parameters of a PlaylistItem.
211
2122012-09-02: Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>
213	* Resources/Player.gorm
214	* Resources/LyricsInspector.gorm
215	* LyricsInspector.[h|m]
216	* AppController.[h|m]
217	* GNUmakefile
218	* Add an Inspector to retrieve lyrics from lyrics.wikia.com,
219	  based on the artist and title of the song. The API only
220	  gives back about 1/7 of the full lyrics if found, due to
221	  fair use and such. Additionally it gives a URL, where
222	  the full Lyrics can be found. Therefore the Inspector
223	  got a button to open the URL using NSWorkSpace openURL.
224
2252012-06-09: Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>
226	* Documentation/Install update
227	* GNUmakefile.preamble, use pkg-config to figure out
228	  how to link against libmpdclient
229
2302012-06-08: Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>
231	* MPDConInfo.plist
232	* MPDCon.pcproj/PC.project
233	* Add Project URL
234	* remove obsolete Resources/Info-gnustep.plist
235	* GNUmakefile
236	* MPDCon.pcproj/PC.project
237	* remove reference to non-existent Resources/TODO.txt
238	* remove reference to obsolete and removed Resources/Info-gnustep.plist
239
2402012-04-29: Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>
241	* Fix version in objects
242	* Resources/Collection.gorm/objects.gorm
243	* Resources/Player.gorm/objects.gorm
244	* Resources/PlaylistViewer.gorm/objects.gorm
245	* Resources/Preferences.gorm/objects.gorm
246	* Resources/StatisticsViewer.gorm/objects.gorm
247	* Fix bogus version in Gorm files, due to OpenBSD bogusness
248	  initially created
249
2502012-04-14: Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>
251	* MPDCon/MPDConInfo.plist
252	* MPDCon/MPDCon.pcproj/PC.project
253	  Make the version 1.2, and update Authors, Copyright...
254
2552012-03-25: Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>
256	* PlaylistController.m fix warning: suggest parentheses
257	  around assignment used as truth value
258	* MPDController.m: fix warnings about potentially uninitialized
259	  used of variables
260	* CollectionController.m: warning: suggest parentheses
261	  around assignment used as truth value
262
2632012-02-23: Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>
264	* PreferencesController.m: fix handling of the password field
265
2662012-02-17 Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>
267	* AppController.m, CollectionController.m, MPDController.h, MPDController.m
268	  After updating the Collection, update the Collection Interface
269	    * track the state of the collection (overall nr of artists/albums)
270	      in the MPDController, and add a method to check whether it changed.
271	    * let the CollectionController listen for a notification, in case
272	      the AppController detects a change.
273	* PlaylistManagerController.m do not try to remove playlists that
274	  don't exist when saving playlists
275
2762012-02-16 Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>
277
278	* Update to newer ProjectCenter project
279	* get rid of BSD licensed libmpdclient.[h|m]
280	* AppController.m new default mpdTimeout, and cleanups
281	* Bold/MormalFormatter.m code cleanups
282	* PreferencesController.[h|m] new preference mpdTimeout, and add some
283	  sane default values for it, and for mpdHost and mpdPort
284	* CollectionController.[h|m] fix some warnings and code cleanup
285	* Info-gnustep.plist general bumps from PC
286	* MPDController.[h|m]: update to new libmpdclient API
287	* PlaylistController.[h|m] code cleanups and now show Genre, and allow
288	  filter for Genre
289	* PlaylistItem.[h|m] code cleanups and now show Genre, and allow
290	  filter for Genre
291	* improvements to the Interfaces, new mpdTimeout in the Preferences,
292	  show Genre in PlaylistViewer and other minor nits
293	* MPDConInfo.plist new file from PC
294
2952004-06-14  Daniel Luederwald  <flip@Confusion.CabalOfEntropy.local>
296
297	* OwnTableView.m, FindController.m: Code Reformatting
298
299	* CrossfadeController.m, CollectionController.m, AppController.m:
300	Reformatted Code
301
3022004-06-13  Daniel Luederwald  <flip@Confusion.CabalOfEntropy.local>
303
304	* FindController.m, CollectionController.m, CollectionController.h:
305	*** empty log message ***
306
307	* AppController.m, AppController.h: Implemented getAlbums service
308
309	* FindController.m, FindController.h, CrossfadeController.m, CrossfadeController.h, CollectionController.m, CollectionController.h, MPDController.m, MPDController.h:
310	Refactoring
311
312	* PlaylistController.m, PlaylistController.h: More Refactoring
313
314	* PlayView.m, PlayView.h: Refactoring
315
316	* AppController.h: *** empty log message ***
317
318	* AppController.h, AppController.m: More Refactoring
319
3202004-06-12  Daniel Luederwald  <flip@Confusion.CabalOfEntropy.local>
321
322	* OwnPanel.h, OwnPanel.m: *** empty log message ***
323
324	* OwnPanel.h, OwnPanel.m: New file.
325
3262004-06-04  Daniel Luederwald  <flip@Confusion.CabalOfEntropy.local>
327
328	* FindController.m, FindController.h, AppController.m: Bugfix
329
330	* AppController.m: *** empty log message ***
331
332	* PlaylistsManagerController.m: Begin of localization
333
334	* PlaylistController.m: *** empty log message ***
335
336	* PlayView.m, MPDController.m, FindController.m, AppController.m:
337	Begin of localization
338
339	* Strings.h: New file.
340
341	* StatisticsController.h, PreferencesController.h, PlaylistsManagerController.h, PlaylistController.h, PlayView.h, OwnTableView.h, MPDController.h, FindController.h, CrossfadeController.h, CollectionController.h:
342	*** empty log message ***
343
344	* AppController.h: Service Method
345
346	* StatisticsController.m, PreferencesController.m, PlaylistsManagerController.m, PlaylistController.m, PlayView.m, MPDController.m, FindController.m:
347	*** empty log message ***
348
349	* CollectionController.m: Find Capability
350
351	* AppController.m: Service Method
352
3532004-06-02  Daniel Luederwald  <flip@Confusion.CabalOfEntropy.local>
354
355	* AppController.m, FindController.m: *** empty log message ***
356
357	* FindController.h, AppController.h, FindController.m, AppController.m:
358	Refactoring
359
360	* CollectionController.m, FindController.m, FindController.h, AppController.m, CollectionController.h, PlaylistController.h:
361	*** empty log message ***
362
363	* CollectionController.h, PlaylistController.m: Find Capability
364
365	* CollectionController.m: Find Capabilities
366
367	* FindController.h, FindController.m: *** empty log message ***
368
3692004-06-01  Daniel Luederwald  <flip@Confusion.CabalOfEntropy.local>
370
371	* CollectionController.m: *** empty log message ***
372
373	* CollectionController.m, PlaylistController.m, CollectionController.h:
374	Implemented Find Capabilities
375
376	* PlaylistController.h: *** empty log message ***
377
378	* PlaylistController.h: Implemented Find Capabilities
379
380	* FindController.h: *** empty log message ***
381
382	* AppController.h, AppController.m: Added Find Capabilities
383
384	* FindController.m, FindController.h: New file.
385
3862004-05-30  Daniel Luederwald  <flip@Confusion.CabalOfEntropy.local>
387
388	* PlaylistController.m: Highlight moved Song
389
390	* OwnTableView.h: Bugfix
391
392	* OwnTableView.h, OwnTableView.m: New file.
393
3942004-05-27  Daniel Luederwald  <flip@Confusion.CabalOfEntropy.local>
395
396	* PlaylistController.m: *** empty log message ***
397
398	* PreferencesController.h: Minor Bugfix
399
400	* MPDController.m: More Refactoring
401
4022004-05-26  Daniel Luederwald  <flip@Confusion.CabalOfEntropy.local>
403
404	* MPDController.m: Bugfix
405
406	* MPDController.h, MPDController.m, PlaylistController.m, PlaylistController.h, PlayView.m, PlayView.h, AppController.m:
407	Refactoring
408
409	* AppController.h, PreferencesController.h: *** empty log message ***
410
411	* PreferencesController.m: Refactoring
412
413	* PlaylistItem.h: *** empty log message ***
414
415	* PlaylistItem.m: Refactoring
416
417	* CollectionController.h: *** empty log message ***
418
419	* CollectionController.m, PlaylistsManagerController.h, PlaylistsManagerController.m:
420	Refactoring
421
422	* StatisticsController.h: *** empty log message ***
423
424	* StatisticsController.m: Refactoring
425
426	* StatisticsItem.h: *** empty log message ***
427
428	* StatisticsItem.m: Refactoring
429
430	* CrossfadeController.h: *** empty log message ***
431
432	* CrossfadeController.m, AppController.m: Refactoring
433
4342004-05-22  Daniel Luederwald  <flip@Confusion.CabalOfEntropy.local>
435
436	* MPDController.h, MPDController.m:
437	Refactoring + Handling of missing Tags
438
439	* CrossfadeController.m: *** empty log message ***
440
441	* PreferencesController.m: Bugfix
442
443	* AppController.m: *** empty log message ***
444
4452004-05-21  Daniel Luederwald  <flip@Confusion.CabalOfEntropy.local>
446
447	* AppController.m, AppController.h: *** empty log message ***
448
449	* AppController.m, AppController.h:
450	Remember PlayerWindow screen-location
451
452	* PlayView.h, PlayView.m: More Refactoring + Bugfix
453
4542004-05-20  Daniel Luederwald  <flip@Confusion.CabalOfEntropy.local>
455
456	* PlayView.m: Modified Scrolling
457
458	* AppController.m, AppController.h, CrossfadeController.h, StatisticsItem.h:
459	Refactoring
460
461	* StatisticsController.h: *** empty log message ***
462
463	* StatisticsController.m, StatisticsController.h: Refactoring
464
465	* PlaylistsManagerController.m, PlaylistsManagerController.h, CollectionController.m, CollectionController.h:
466	*** empty log message ***
467
468	* PlaylistsManagerController.m: Refactoring
469
470	* PlaylistsManagerController.h: *** empty log message ***
471
472	* PlaylistsManagerController.h: Refactoring
473
4742004-05-19  Daniel Luederwald  <flip@Confusion.CabalOfEntropy.local>
475
476	* CollectionController.m, CollectionController.h, PlaylistItem.h, PlayView.h, PlayView.m:
477	Refactoring
478
479	* PreferencesController.m: Refactoring + Bugfix
480
481	* PreferencesController.h: Bugfix
482
483	* PreferencesController.h, PlaylistController.m, PlaylistController.h, MPDController.h, MPDController.m:
484	Refactoring
485
486	* CrossfadeController.h: New file.
487
488	* MPDController.h, AppController.h, AppController.m, MPDController.m:
489	Implemented Crossfade
490
491	* CrossfadeController.m: New file.
492
493	* AppController.h, AppController.m: *** empty log message ***
494
495	* MPDController.h: Passwords for MPD implemented
496	Error Handling
497
498	* AppController.h: *** empty log message ***
499
500	* PreferencesController.h: Passwords for MPD implemented
501
502	* StatisticsController.m, CollectionController.m:
503	*** empty log message ***
504
505	* MPDController.m: Passwords for MPD implemented
506	Error Handling
507
508	* PreferencesController.m, AppController.m:
509	Passwords for MPD implemented
510
5112004-05-18  Daniel Luederwald  <flip@Confusion.CabalOfEntropy.local>
512
513	* MPDController.h, PlaylistController.m, PlaylistController.h:
514	Implemented ShuffleList
515
516	* PreferencesController.m: *** empty log message ***
517
518	* AppController.m, AppController.h:
519	Try to connect to Server if Preferences changed.
520
521	* MPDController.m: Fixed Server-Errors
522
523	* PreferencesController.m: *** empty log message ***
524
525	* AppController.m, AppController.h: Fixed Server-Errors
526
527	* StatisticsItem.h, StatisticsController.h: New file.
528
529	* MPDController.h, AppController.h: Added Server-Statistics
530
5312004-05-17  Daniel Luederwald  <flip@Confusion.CabalOfEntropy.local>
532
533	* StatisticsItem.m, StatisticsController.m: New file.
534
535	* MPDController.m, AppController.m: Added Server-Statistics
536
537	* AppController.m: *** empty log message ***
538
539	* PlaylistsManagerController.h, CollectionController.h, PlaylistItem.h, MPDController.h, PlaylistController.h, libmpdclient.h, PlayView.h, PreferencesController.h, AppController.h, PlaylistsManagerController.m, CollectionController.m, MPDController.m, PlaylistItem.m, PlaylistController.m, PlayView.m, PreferencesController.m, AppController.m:
540	New file.
541
542