-
Notifications
You must be signed in to change notification settings - Fork 1
/
ChangeLog
937 lines (596 loc) · 30.6 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
2013-07-22 Marcus Mueller <[email protected]>
* NOTE: ChangeLog has been closed, detailed change logs are now
kept in Git
2013-07-01 Marcus Mueller <[email protected]>
* iTunesFS.xcodeproj: LastUpgradeCheck bumped to 0450
* iTunesFS.xcodeproj: HIDPI images build flag added.
I don't have HIDPI images, though.
* iTunesFS.xcodeproj: SDKROOT syntax did change a while
ago
* iTunesFileSystem.m, iTunesLibrary.m, iTunesPlaylist.m, iTunesTrack.m:
Replaced all occurrences of NSStringFromClass(self->isa) [deprecated]
with object_getClassName(self)
* iPodLibrary.m: fixed incompatible pointer type
* iPodLibrary.m: fixed format string bugs on __LP64__ platforms
2012-08-07 Marcus Mueller <[email protected]>
* v1.3.2
* iTunesFormatFile.m: fixed formatter retrieval bugs in -getFormatter
* iTunesPlaylist.[hm]: added NSFileCreationDate and
NSFileModificationDate fileAttributes to improve Finder cache flushes
(folders are updated faster in Finder)
* PlaylistsTrackFormat.txt: more examples added
2012-07-25 Marcus Mueller <[email protected]>
* GNUmakefile, iPodLibrary.m, iTunesLibrary.m: ported to Linux
2012-02-19 Marcus Mueller <[email protected]>
* v1.3.1
* iTunesFS.xcodeproj: reenabled ppc for Release builds, as ppc also
returned in OSXFUSE 2.3.9 user libraries (which we link against and
hence need ppc in order to support ppc binaries).
2011-09-23 Marcus Mueller <[email protected]>
* v1.3.0
* Link against OSXFUSE (http://osxfuse.github.com/) on MacOS X as of
now. As a consequence of the OSXFUSE build process, PPC support
is removed.
2011-05-25 Marcus Mueller <[email protected]>
* v1.2.3b1
* iTunesTrack.[hm]: extract "Comments" from iTunes library and expose
as "comments" property
* English.lproj/{AlbumsTrackFormat.txt, PlaylistsTrackFormat.txt}:
documented %(comments)
2011-04-23 Marcus Mueller <[email protected]>
* v1.2.2
* iPodLibrary.m: extract a lot more properties from track items,
persistentID from playlists
* iTunesTrack.[hm], iTunesPlaylist.[hm]: merged init methods, provide
"keys" for representations
* iTunesTrack.[hm]: also added quite a lot new properties
* English.lproj/{AlbumsTrackFormat.txt,PlaylistsTrackFormat.txt}:
documented new properties
2011-02-26 Marcus Mueller <[email protected]>
* iTunesPlaylist.m: only show PlaylistsTrackFormat file if it really
exists (isn't true for real Playlist folders)
2011-02-25 Marcus Mueller <[email protected]>
* iTunesFSFormatter.m: fixed bug with leading "/" in path components
2011-02-21 Marcus Mueller <[email protected]>
* v1.2.1
2011-02-19 Marcus Mueller <[email protected]>
* v1.2.1b1
* iTunesTrack.[hm]: added -genre and -grouping as properties for
formatting tracks on user request
* English.lproj/{AlbumsTrackFormat.txt, PlaylistsTrackFormat.txt}:
documented %(genre) and %(grouping)
* README-GNUstep: updated
2011-02-18 Marcus Mueller <[email protected]>
* iTunesFSFormatter.m: set formatter behaviour explicitly to 10.0
* PlaylistsTrackFormat.txt: fixed a typo
2011-02-16 Marcus Mueller <[email protected]>
* iTunesFileSystem.m: volname is a MacFUSE-only option
* iTunesFSFormatter.m: removed old workaround for GNUstep, but there
are still problems (see README-GNUstep)
* README-GNUstep: updated
2011-02-14 Marcus Mueller <[email protected]>
* README-GNUstep: updated
* COPYING, COPYRIGHT: it's 2011 by now
* GNUmakefile: added main.m
* iTunesFileSystem.m: properly implemented -needsLocalOption for
GNUstep
* English.lproj/MainMenu.gorm: changed application delegate to
FUSEOFSAppController
* iTunesFSInfo.plist: added new defaults for GNUstep
2011-02-07 Marcus Mueller <[email protected]>
* iTunesLibrary.m: fixed a leak
* iPodLibrary.m: fixed format strings
* iTunesFormatFile.m: fixed format strings and conditional
expression
2011-02-06 Marcus Mueller <[email protected]>
* GNUmakefile*, *.[hm]: ported to GNUstep
* Info.plist: it's 2011 by now
* iTunesFileSystem.m: fixed an uninitialized variable access
2011-01-29 Marcus Mueller <[email protected]>
* iTunesFSController.[hm]: removed. Added a new FUSEOFSAppController
in FUSEOFS which does everything iTunesFS requires in a more
abstracted manner.
* Info.plist: added new "FUSEObjectFileSystemClass" user default
for FUSEOFSAppController.
2011-01-26 Marcus Mueller <[email protected]>
* GNUmakefile: first changes for gnustep-make 2.4.0 compat
* iTunesFSFormatter.m, iTunesPlaylist.m, iTunesTrack.m, iPodLibrary.m,
iTunesLibrary.m: fixed imports
* removed outdated FUSEObjC-GNUstep subproject
* FUSEOFS is an svn:external now
* NSString+Extensions.[hm]: moved -properlyEscapedFSRepresentation to
FUSEOFS/NSString+FUSEOFS.[hm]
* iPodLibrary.m, iTunesFSFormatter.m, iTunesLibrary.m, iTunesTrack.m:
adjusted includes
2010-12-22 Marcus Mueller <[email protected]>
* v1.2.0
* iTunesFileSystem.m: only show AlbumsTrackFormat.txt if new
'ShowFormatFiles' default is YES and 'UseCategories' is YES
* iTunesFormatFile.m: ignore lines starting with '#' altogether
* iTunesPlaylist.m: use new 'ShowFormatFiles' default
* v1.2.0b1
* NSObject+FUSEOFS.[hm]: changed layout and renamed every wording of
'directory' into 'container'.
* iTunesFileSystem.m, iTunesLibrary.m, iTunesPlaylist.m,
FUSEObjectFileSystem.m, FUSEOFSFileProxy.m, FUSEOFSMemoryFile.m,
FUSEOFSMemoryObject.m
* FUSEOFSMemoryFolder.[hm]: renamed to FUSEOFSMemoryContainer
* FUSEOFSMemoryContainer.[hm]: see above
* FUSEObjectFileSystem.m: minor fix for valueOfExtendedAttribute:...
* iTunesFileSystem.[hm]: implemented 'AlbumsTrackFormat.txt' and
'PlaylistsTrackFormat.txt' for global default manipulation
* iTunesFormatFile.m: bugfixes
* iTunesLibrary.m: removed caching of albumsTrackFormat, which can
change during runtime. Some code cleanup.
* English.lproj/AlbumsTrackFormat.txt: help text added
2010-12-21 Marcus Mueller <[email protected]>
* FUSEObjectFileSystem.m: added workaround for a MacFUSE bug which
prevented deleting extended attributes - this triggers an annoying
warning upon startup (we're implementing a deprecated method) which
is totally harmless.
* v1.1.14b5
* English.lproj/PlaylistsTrackFormat.txt: Help text for use in
iTunesFormatFile, giving examples for a quick headstart
* iTunesFormatFile.m: loads help text from a localizable file now.
Lazyfied setup, added support for hinting at used text encoding
via 'com.apple.TextEncoding' extended attribute.
* NSObject+FUSEOFS.[hm]: added api for dealing with extended
attributes
* FUSEObjectFileSystem.m: implemented extended attributes functionality
* FUSEOFSMemoryObject.[hm]: new class, suiting as (new) abstract base
class for FUSEMemoryFile and FUSEMemoryFolder.
* FUSEOFSMemoryFile.[hm]: code refactoring
* FUSEOFSMemoryFolder.[hm]: code refactoring
2010-12-21 Marcus Mueller <[email protected]>
* v1.1.14b4
* iTunesFormatFile.[hm]: new FUSEOFSMemoryFile subclass, implementing
a generic iTunesFSFormatter format string interface. Debug logging
can be turned on via new 'iTunesFormatFileDebugEnabled' default.
* iTunesPlaylist.[hm]: implemented track format via new
iTunesFormatFile.
* NSObject+FUSEOFS.[hm]: added -setFileAttributes: api
* FUSEOFSMemoryFile.[hm]: renamed -setData: to -setFileContents,
renamed -setAttributes: to -setFileAttributes:
* FUSEOFSMemoryFolder.[hm]: renamed -setAttributes: to
-setFileAttributes:, minor fixes and improvements
* FUSEObjectFileSystem.m: massively improved debug logging,
improved moveItemAtPath:toPath:error: and fixed a major bug
in writeFileAtPath:...
2010-12-20 Marcus Mueller <[email protected]>
* v1.1.14b3
* NSObject+FUSEOFS.m: minor cleanup
* FUSEOFSFileProxy.m: properly implemented to transparently work for
files and folders
* FUSEOFSMemoryFile.[hm]: new class which acts as a properly attributed
data object in memory
* FUSEOFSMemoryFolder.[hm]: new class which acts as a properly
attributed folder object in memory
* FUSEObjectFileSystem.m: added lots of debugging logs via new
'FUSEObjectFileSystemAccessDebugEnabled' user default. Added
naive implementation of -moveItemAtPath:toPath:error: (works for
file objects, only).
* iTunesPlaylist.[hm]: lots of cleanup in conjunction with granting
write access to the playlist format file. Renamed this file from
'.format' to 'PlaylistTrackFormatter.txt' and made it visible, if
playlist isn't virtual. Implemented shadow-write cache in order to
enable TextEdit.app to properly edit (and autosave) this file, which
is probably the text editor of choice for a lot of people.
* v1.1.14b2
* iTunesFileSystem.m: cleanup
* FUSEObjectFileSystem.[hm]: header cleanup, added +errorWithCode:
convenience method. Added MacFUSE write methods and all remaining
access methods (i.e. extended attributes) as skeletons. This
needs a lot of improvement in order to become fully functional,
but writing is good enough for iTunesFS, already.
* NSObject+FUSEOFS.[hm]: added write support (see above)
* iTunesFSFormatter.[hm]: exposed -formatString
* iTunesPlaylist.[hm]: reworked the way tracks and corresponding
trackNames are being built, as these can change now during
playlists' life at runtime. Added -getTrackFormatString in order
to make this available via newly implemented write methods.
A playlist exposes a virtual object called '.format' for reading,
writing and removal. Currently, '.format' won't show up in
directoryContents, though this might change via a default. The
name isn't fixed yet, it might be better to call it differently
and to always show it, but that depends on more research.
2010-12-19 Marcus Mueller <[email protected]>
* iTunesPlaylist.[hm]: added new -getTrackFormatter private method
which also sports formatter lookup via aliases. Also, minor
code cleanup and bugfixes in -generatePrettyTrackNames.
2010-12-18 Marcus Mueller <[email protected]>
* v1.1.14b1
* iTunesFSFormatter.[hm]: added -isPathFormat and
-pathComponentsByFormattingObject: in order to determine if a
formatter describes a path and if so, get this path (optimized
by stripping empty path components and ready for display by
properly escaping it)
* iTunesPlaylist.[hm]: changed internals to allow /both/ tracks and
children to co-exist in a playlist (previously, this was impossible
due to the way that it's impossible to mix both in iTunes).
Added -name to also display the persistentId if the new
"ShowPersistentIDs" default is set to YES.
Added per-playlist formatters, which require the persistentId of
playlists to be known. Changed -generatePrettyTrackNames to
detect appropriate formatters and detect whether these describe a
path (hierarchy). If so, a new virtual playlist hierarchy is
created and tracks moved these new playlists in order to reflect
this hierarchy.
2010-09-22 Marcus Mueller <[email protected]>
* v1.1.13
* Released after testing confirmed everything works as expected
2010-09-15 Marcus Mueller <[email protected]>
* v1.1.13b2
* IPhoneDiskIPodLibrary.[hm]: removed, moved contents to
iPodLibrary.[hm] for simplicity's sake
* iPodLibrary.[hm]: added previous contents from
IPhoneDiskIPodLibrary.[hm], also added support for com.apple.afc2
mounted iPhones.
* iTunesFileSystem.m: added JBiPhoneDiskIPodLibrary detection
* v1.1.13b1
* iPodLibrary.m: forgot to reset jump offset after decompressing the
library, fixed. Improved debug logs and added new
'iPodLibraryDebugVerbose' switch for verbose debugging.
* iTunesFileSystem.m: work seamlessly in conjunction with iPhoneDisk
by faking its default mountpoint into the list of mount points to
check
2010-07-09 Marcus Mueller <[email protected]>
* v1.1.12
* project.pbxproj: corrected 10.6 SDK dependency to be 10.5 instead,
required 10.5 minimum deployment target.
2010-03-15 Marcus Mueller <[email protected]>
* v1.1.11
* README: removed a lot of obsolete stuff and instead redirected
to the project webpages
* iPodLibrary.[hm], IPhoneDiskIPodLibrary.m, JBiPodLibrary.m:
corrected library lookup, which was static before - now it's
iTunesCDB first, then iTunesDB. Cleaned up old API, code is much
leaner now.
* iTunesFileSystem.m: adjusted -needsLocalOption for 10.6
* project.pbxproj: adjusted settings for Snow Leopard compilation.
* MacOSX10.6.patch, MacOSX10.6-README.txt: Added patch and README
for proper execution on Mac OS X 10.6.
* COPYING, COPYRIGHT: changed copyright notice for 2010
2009-08-15 Marcus Mueller <[email protected]>
* v1.1.11b3
* iPodLibrary.m: OS X 10.6 compatible
2009-08-12 Marcus Mueller <[email protected]>
* v1.1.11b2
* StreamReader.[hm]: simple abstraction for wrapping small parts of
the NSFileHandle API either around NSFileHandle or NSData.
This is used when parsing iTunesDB files and will be extended
for parsing the decompressed NSData contents of an iTunesCDB file.
* iPodLibrary.m: use StreamReader when parsing iTunesDB, properly
parse new header and discover compression. If compression is in
use, decompress data accordingly.
* NSData+ZlibDecompression.m: code cleanup
* iTunesFileSystem.m: fixed duplicate library inserts
2009-08-09 Marcus Mueller <[email protected]>
* IPhoneDiskIPodLibrary.[hm]: new iPod/iPhone library required for
parsing the contents of an iPod/iPhone mounted via the
iphonedisk (http://code.google.com/p/iphonedisk/) FUSE filesystem.
* NSData+ZlibDecompression.[hm]: categories for NSData to decompress
zlib compressed byte content, required for new iTunesCDB files.
2009-04-07 Marcus Mueller <[email protected]>
* v1.1.11b1
* iTunesFileSystem.m: removed an obsolete and ugly hack by implementing
lookup properly, according to my own specs.
* iTunesLibrary.m, iTunesTrack.m: fixed a typo in description
(missing trailing ">")
* iTunesTrack.m: added a hack for the -ext method, if the file has
no extension return "m4a" nevertheless.
2009-01-30 Marcus Mueller <[email protected]>
* v1.1.10
* iTunesPlaylist.[hm]: implemented playlist folders (don't recall
when they have been introduced in iTunes), which only contain a set
of other playlists. Technically, they also contain the tracks of all
their contained playlists, but in iTunesFS (as well as in iTunes)
these are ignored.
* iTunesLibrary.m: only playlists, which are no folders, are added to
the top-level. Properly add playlists to their parent folders,
creating a nested hierarchy as in iTunes.
2009-01-29 Marcus Mueller <[email protected]>
* v1.1.9
* iTunesLibrary.m: changed detection of libraryPath; if no default is
set, a candidate is looked up in the com.apple.iApps domain, first.
This change is based on code contributed by Frederik Seiffert
2009-01-28 Marcus Mueller <[email protected]>
* v1.1.8
* iTunesFileSystem.m: "allow_other" FUSE option is now triggerable via
a new "FUSEOptionAllowOther" default and OFF by default, as it caused
problems for some users.
* README: documented new "FUSEOptionAllowOther" default
2009-01-25 Marcus Mueller <[email protected]>
* v1.1.7
* NOTES: added Apache2/DAV config snippet
* iTunesFileSystem.m: added "allow_other" FUSE option
* FUSEOFS/NSObject+FUSEOFS.m: changed file permissions to be more
liberal (more appropriate for iTunesFS)
2009-01-11 Marcus Mueller <[email protected]>
* v1.1.7b7
* iTunesFS.xcodeproj: pulled the plug on 10.4.x version, don't have
a 10.4.x box around any more and can't guarantee that the 10.4.x
builds will work.
* *.[hm]: updated copyright notice for 2009, explicitly set
space vs. tabs and UTF-8 encoding for all code files.
* iTunesFileSystem.m: added debug logs for (un-)mounting,
explicitly release libraries in -willUnmount in order to break retain
cycle with watchdog. Removed "ping_diskarb" from options as we no
longer support Tiger.
* iTunesLibrary.m: added debug log
* FUSEOFS/FUSEObjectFileSystem.m: fixed legacy bug in willUnmount, no
need to call [fs unmount]... leads to infinite recursion which
apparently broke unmounting.
2008-12-31 Marcus Mueller <[email protected]>
* v1.1.7b6
* FUSEOFS/NSObject+FUSEOFS.[hm]: new experimental version of FUSEOFS
with slightly different object lookup (provides a context),
removed -isFile but added -isMutable reflection to allow write
methods later on
* FUSEOFS/FUSEOFSLookupContext.[hm]: new file, represents a context
used during -lookupPathComponent:inContext:
* FUSEOFS/FUSEObjectFileSystem.[hm]: -lookupPath: uses new
FUSEOFSLookupContext during lookup now
* iTunesPlaylist.m: code changed due to FUSEOFS API changes
* iTunesFileSystem.m: code changed due to FUSEOFS API changes
* iTunesLibrary.m: code changed due to FUSEOFS API changes
* FUSEOFS/FUSEOFSFileProxy.h: code cleanup
* NSString+Extensions.m: major bug fixed, properly apply Unicode string
normalization (decomposed form) in -properlyEscapedFSRepresentation.
2008-12-29 Marcus Mueller <[email protected]>
* v1.1.7b5
* Added filesystems-objc-support external, need NSImage+IconData for
displaying iconData *sigh*
* iPodLibrary.m: fixed 64bit issues, updated iTunesDB documentation
reference, fixed crashbug in -close, implemented -iconData and
removed (old) obsolete -icon
* iTunesLibrary.m: properly create NSData for libraryIconData (this
differs from previous MacFUSE versions)
* JBiPodLibrary.m: fixed comment
* iTunesFS.xcodeproj: link against Accelerate.framework
(NSImage+IconData utilizes this)
2008-12-28 Marcus Mueller <[email protected]>
* v1.1.7b4
* iTunesFS.xcodeproj: properly enabled 64bit builds, build debug
build with platform arch only
* iTunesFileSystem.m: minor cleanup and proper fuse options
2008-12-27 Marcus Mueller <[email protected]>
* v1.1.7b3
* iTunesFS.xcodeproj: enabled 64bit builds
* iTunesPlaylist.m: fixed a 64bit issue, added experimental
finderAttributes (disabled)
* iTunesTrack.m: changes for new API
* Watchdog.m: fixed several 64bit issues
* iTunesFileSystem.m: removed AutoOpenInFinder code (moved to
iTunesFSController), completed conversion to new FUSE ObjC API
* FUSEOFS/NSObject+FUSEOFS.[hm]: added -finderAttributes and
-resourceAttributes
* FUSEOFS/FUSEObjectFileSystem.m: properly implemented the new
FUSE ObjC API
* iTunesLibrary.[hm]: several internal changes for burn folder support
* iTunesFSController.m: enabled registration of defaults from
bundle's Info.plist, observe mounting/unmounting and implemented
AutoOpenInFinder when mount occurred and default is set.
* common.h: added MacFUSE/MacFUSE.h
2008-03-11 Marcus Mueller <[email protected]>
* NOTE: THIS BUILD DOESN'T WORK, YET.
It's a necessary rewrite for the now official ObjC API,
however it's not finished (and not polished)
* FUSEObjC: removed external dependency, as this was removed from
googlecode.
* main.m: added new main() method, this will start AppKit's runloop
like any other AppKit based application.
* iTunesFileSystem.m: changed to new API
* FUSEOFS/NSObject+FUSEOFS.[hm]: changed icon API
* FUSEOFS/FUSEObjectFileSystem.[hm]: according to new API this no
longer subclasses from FUSEFileSystem but is now a delegate to
GMUserFileSystem. There is quite a lot to be done still and several
places need to be revisited.
* English.lproj/MainMenu.nib: changed to new object model
* iTunesLibrary.[hm]: changed icon API, see FUSEOFS/NSObject+FUSEOFS
* JBiPodLibrary.m: added a comment, need to address this
* iTunesFSController.[hm]: new application delegate, needs work (i.e.
defaults need to be fetched dynamically, FS initializer is pretty
ugly)
* common.h: we need Appkit now
2008-01-09 Dan Villiom Podlaski Christiansen <[email protected]>
* README: updated for new defaults 'AutoOpenInFinder' and
'UseBurnFoldersInFinder'
* FUSEOFS/FUSEObjectFileSystem.m: properly set the volicon fuse option
if we have a custom icon for the filesystem
* iTunesLibrary.h: expose burn folder helper methods to subclassers
* iTunesLibrary.m, iPodLibrary.m: properly set burn folder names if the
default is set to YES
* iTunesFS.xcodeproj/project.pbxproj: removed redundant variables,
use standard way to choose C99
* Info.plist: set the default value (YES) for new 'AutoOpenInFinder'
user default
2008-01-07 Marcus Mueller <[email protected]>
* iPodLibrary.m: forgot to set "Track Number" properly, reported by
Tim Fitzgerald
* *.*: updated copyright information for 2008
2007-12-31 Marcus Mueller <[email protected]>
* v1.1.6
* README: updated, added proper MacFUSE Core versions
* iTunesFileSystem.m: added "NoITunes" default, preventing iTunes
library from being displayed (feature request by Iacopo Cacciaguerra)
2007-12-27 Marcus Mueller <[email protected]>
* README: updated, added .fseventsd TODO
* FUSEObjectFileSystem.m: renamed all overridden methods due to upgrade
of FUSEObjC
* iTunesFileSystem.m: implemented -fuseOptions, renamed -isLocal to
- needsLocalOption
2007-11-22 Marcus Mueller <[email protected]>
* iTunesFileSystem.m: implement -isLocal to return YES on
Mac OS X 10.5.x due to Leopard's Finder's broken behavior in dealing
with FUSE filesystems
* iTunesFS.xcodeproj/project.pbxproj: promoted to Xcode 3.0 project
2007-10-30 Marcus Mueller <[email protected]>
* v1.1.5
* iPodLibrary.h: expose -mountPoint (for subclassers).
* iPodLibrary.m: added safeguards in -setLocation: in case content in
iTunesDB file is malformed (or in a new scheme we don't understand,
yet).
* JBiPodLibrary.[hm]: new subclass of iPodLibrary which sports the
new folder locations of iPod Touch and iPhone.
* iTunesFileSystem.m: added JBiPodLibrary support. Add additional
entries to volume paths of removable devices from new
"iPodMountPoints" user default.
2007-08-01 Marcus Mueller <[email protected]>
* iTunesLibrary.m: added "Compilations" patch from Mark Wallis which
aggregates all albums which have different artists in this folder
* {*}.lproj/Localizable.strings: added "Compilations"
* AUTHORS: updated
* NOTES: updated
* English.lproj/MainMenu.nib: updated, but still invisible - we
probably could use a UI for setting formatters and the like, but
I'm still a bit undecided.
2007-07-08 Infinity <[email protected]>
* {Italian,Spanish}.lproj/Localizable.strings: fixed Italian and
Spanish localizations.
2007-07-02 Marcus Mueller <[email protected]>
* v1.1.4
* README: updated defaults section and added "Formatters" section
* iTunesFSFormatter.[hm]: new formatter object - this is used
for formatting all track names for now. Includes ability to provide
format strings for number formatters.
* iTunesTrack.[hm]: deprecated -prettyName, use -name now. Added
-extension (and, as a convenience, -ext), -trackNumber and
-playlistNumber for formatting purposes. Removed the
"DetailedTrackNames" default.
* iTunesLibrary.m: added new "AlbumsTrackFormat" default for formatting
track names in "Albums" and "Songs".
* iTunesPlaylist.m: added new "PlaylistsTrackFormat" default for
formatting track names in "Playlists".
* FUSEOFS/*: added new FUSEOFS subproject. The idea here is to have
a reusable object model for other FUSEObjC based file systems.
* iTunesFileSystem.[hm]: moved all lookup related stuff to new
superclass, FUSEObjectFileSystem.
* iTunesLibrary.m, iPodLibrary.m, iTunesPlaylist.m, iTunesTrack.m:
changed all references of "iTunesFS" to "FUSEOFS".
* NSArray+Extensions.[hm]: removed obsolete category
* NSObject+Extensions.[hm]: removed, part of FUSEOFS now.
* GNUmakefile{,.preamble}: added FUSEOFS
2007-06-14 Marcus Mueller <[email protected]>
* v1.1.3
* README: updated with GNUstep info and new NSUserDefaults description
* README-GNUstep: added
* NOTES: added localization hint
* Info.plist: added all NSUserDefaults
* iTunesLibrary.[hm]: added new -reloadVirtualMaps public API used
by subclassers to call after -reload is done
* iTunesLibrary.m: if "UseCategories" default is YES, display
"Playlists", "Artists" and "Albums" as virtual folders
* iPodLibrary.m: call -reloadVirtualMaps after -reload, properly
parse "Albums" and "Artists" for tracks
* iTunesTrack.[hm]: remember "Artist" and "Album" for later use
* NSString+Extensions.m: removed obsolete category methods. Properly
escape ":" (0x35) with similar glyph (0xFF1A)
* {English,German,French,Italian,Spanish,Japanese}.lproj/
Localizable.strings: added localized variants of the virtual category
folder names
* English.lproj/MainMenu.gorm: added main interface for GNUstep
* FUSEObjC-GNUstep/*: added port of FUSEObjC specifically for GNUstep,
basically removed all HFS+ and Finder related stuff
* examples/iTunesMusicLibrary.xml: added new tiny library for users
who don't have iTunes around but want to take a look nevertheless
2007-06-08 Marcus Mueller <[email protected]>
* iTunesFileSystem.m: fixed typo in -description
* iTunesLibrary.m: only append iTunes library version number to name if
debugging is enabled.
* Resources/*: moved everything in here to top-level directory
2007-05-31 Marcus Mueller <[email protected]>
* v1.1.2
* iTunesFileSystem.m: inform NSWorkspace about directory changes
(doesn't seem to have the desired effect on my system, though).
Implemented symbolic link lookup.
* NSURL+Extensions.[hm]: new category for properly demangling
"?" characters in file URLs to "_", as this is what iTunes seems to
do
* NSObject+Extensions.[hm]: added new method -symbolicLinkTarget
* iTunesLibrary.m: if library contains only one playlist (i.e. Shuffle)
skip the playlist in listing and instead show all tracks.
* iPodLibrary.m: extract "dateModified" and "dateAdded" from iTunesDB
and put it into representation dictionary for iTunesTrack to
initialize with
* iTunesTrack.[hm]: Derive FileSystemAttributes from attributes stored
in either iTunes or iTunesDB representation. Properly demangle
file URL paths before accessing data in hose file system. Return
these URL paths as symbolic link targets when asked to. Return
NSFileType == NSFileTypeSymbolicLink in case the "SymbolicLinks"
user default is true.
* iTunesFileSystem.m, iTunesLibrary.m, iTunesPlaylist.m, iTunesTrack.m:
added custom -description to aid in debugging
2007-05-29 Marcus Mueller <[email protected]>
* v1.1.1
* NOTES: added some Spotlight info
* README: updated
* NSObject+Extensions.[hm]: new iTunesFS lookup methods which
dramatically simplify the implementation
* iTunesFileSystem.m: added new "iTunesFileSystemDebugEnabled" and
"NoIPods" defaults (described in README). Added some debug output,
when iTunesFileSystemDebugEnabled == YES. All paths will be mangled
now before they are being processed - using the "NoIPods" default
this leads to the whole "libraries" hierarchy to be hidden, as it's
not useful to display it then.
Implemented new lookup algorithm for looking up "generic" objects
for performing all file system related operations on. Call -close
on libraries whose mount points are about to vanish.
* iTunesTrack.[hm]: minor renaming, implemented file system operations
as part of the new lookup API
* iTunesPlaylist.m: implemented lookup API
* iTunesLibrary.[hm]: removed quite a bit of the old API, implemented
new lookup API. Added new -close method which can be called in
case a file system will be unmounted.
2007-05-24 Marcus Mueller <[email protected]>
* v1.1.0
* iTunesTrack.[hm]: remove name (including playlist index) from
track, instead provide just the prettyName stub. Directly access
NSUserDefaults for finding out about whether detailed track names
are requested - and subsequently removed the public API for setting
that. Added initializer for iPodLibrary representation, renamed the
old initializer to better reflect what's happening.
* iTunesPlaylist.[hm]: store the trackNames locally, including the
proper playlist index. Changed API to initialize using the
respective library. Use this library now to retrieve tracks via
their ID. Added initializers similar to iTunesTrack.
* iTunesLibrary.[hm]: create a cache for tracks which works
universally in all playlists. Doing so reduces memory footprint
significantly. Changed API to allow access to cached tracks via
their ID. Added API for -mountPoint, which is required for the
iPodLibrary subclass.
* iPodLibrary.[hm]: New subclass of iTunesLibrary, representing the
iTunesDB which is found on iPods.
* iTunesFileSystem.[hm]: Added API for removing libraries. The
iTunesFileSystem registers itself for distributed workspace
notifications regarding the mounting/unmounting of removable
devices. If such a device is found and in fact is an iPod, its
library will be exposed in a fashion similar to that of the
iTunes Library.
* NSString+Extensions.[hm]: added new method for dealing with
initializing NSStrings with little endian unicode representations.
2007-05-23 Marcus Mueller <[email protected]>
* v1.0.4
* iTunesTrack.m: added safeguard against nameless tracks - not as
impossible to encounter as I'd hoped.
* iTunesPlaylist.m: in case playlists sport track ids which have
disappeared from the library, skip the creation of those tracks and
adjust playlist index accordingly. This effect has been observed
with Podcasts only, yet.
* create-itunesfs-binary-package.sh: remove 'Version' file from .dmg
* README: updated
* v1.0.3
* ChangeLog: added
* Watchdog.[hm]: added kqueue observer capable of reloading libraries
in case their underlying database files changed.
* NSArray+Extensions.[hm]: added category for all things specific to
path handling, enhances code readability in most places.
* iTunesFileSystem.[hm]: Added new top level hierarchy, enabling
more than one library to be displayed beneath the root directory.
The intended purpose is to also allow traversal of mounted iPods
in the similar fashion as is with the iTunes library.
* iTunesLibrary.[hm]: Library exposes its name and associated icon now.
Also, the library uses the shared watchdog to watch its database
file and reload upon change.
* iTunesTrack.[hm], iTunesPlaylist.[hm]: added copyright notice.
* NSString+Extensions.m: removed debug log message.