diff --git a/Info.plist b/Info.plist
index 8d0ab32..cd38399 100644
--- a/Info.plist
+++ b/Info.plist
@@ -7,7 +7,7 @@
CFBundleExecutable
${EXECUTABLE_NAME}
CFBundleGetInfoString
- iTunesFS version 1.3.3, Copyright 2007-2015 Mulle kybernetiK.
+ iTunesFS version 1.3.4, Copyright 2007-2015 Mulle kybernetiK.
CFBundleIconFile
iTunesFS
CFBundleIdentifier
@@ -19,11 +19,11 @@
CFBundlePackageType
APPL
CFBundleShortVersionString
- 1.3.3
+ 1.3.4
CFBundleSignature
????
CFBundleVersion
- 1.3.3
+ 1.3.4
LSApplicationCategoryType
public.app-category.utilities
LSUIElement
@@ -54,6 +54,8 @@
%(artist) / %(album) / %(trackNumber#00) %(name).%(ext.lowercaseString)
M3UTrackFormat
%(name)
+ UseM3U8
+
ShowFormatFiles
SymbolicLinks
diff --git a/Version b/Version
index 7af51ce..61b0bcc 100644
--- a/Version
+++ b/Version
@@ -1,3 +1,3 @@
MAJOR_VERSION=1
MINOR_VERSION=3
-SUBMINOR_VERSION=3
+SUBMINOR_VERSION=4
diff --git a/iTunesFSInfo.plist b/iTunesFSInfo.plist
index 2fe9b14..8ebe495 100644
--- a/iTunesFSInfo.plist
+++ b/iTunesFSInfo.plist
@@ -9,6 +9,7 @@
PlaylistsTrackFormat = "%(playlistNumber#000) %(name).%(ext)";
"PlaylistsTrackFormat[folders]" = "%(artist) / %(album) / %(trackNumber#00) %(name).%(ext.lowercaseString)";
M3UTrackFormat = "%(name)";
+ UseM3U8 = NO;
ShowFormatFiles = YES;
};
}
diff --git a/iTunesM3UPlaylist.h b/iTunesM3UPlaylist.h
index bbe9dd2..8018070 100644
--- a/iTunesM3UPlaylist.h
+++ b/iTunesM3UPlaylist.h
@@ -49,6 +49,9 @@
- (NSString *)name;
- (NSString *)fileName;
+- (NSString *)fileExtension;
+- (NSStringEncoding)fileEncoding;
+
@end /* iTunesM3UPlaylist */
#endif /* __iTunesFS_iTunesM3UPlaylist_H */
diff --git a/iTunesM3UPlaylist.m b/iTunesM3UPlaylist.m
index 6ad4df4..8edb2f4 100644
--- a/iTunesM3UPlaylist.m
+++ b/iTunesM3UPlaylist.m
@@ -39,6 +39,19 @@ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
@implementation iTunesM3UPlaylist
+static BOOL useM3U8 = NO;
+static NSString *fileExt = nil;
+
++ (void)initialize {
+ static BOOL didInit = NO;
+ if (didInit) return;
+ didInit = YES;
+
+ NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
+ useM3U8 = [ud boolForKey:@"UseM3U8"];
+ fileExt = [ud stringForKey:@"M3UPlaylistFileExtension"];
+}
+
- (id)initWithPlaylist:(iTunesPlaylist *)_playlist
useRelativePaths:(BOOL)_useRelativePaths
{
@@ -61,9 +74,18 @@ - (NSString *)name {
return [self->playlist name];
}
- (NSString *)fileName {
- return [[[self name] stringByAppendingPathExtension:@"m3u"]
+ return [[[self name] stringByAppendingPathExtension:[self fileExtension]]
properlyEscapedFSRepresentation];
}
+- (NSString *)fileExtension {
+ if (fileExt)
+ return fileExt;
+ return useM3U8 ? @"m3u8" : @"m3u";
+}
+- (NSStringEncoding)fileEncoding {
+ return useM3U8 ? NSUTF8StringEncoding : NSWindowsCP1252StringEncoding;
+}
+
- (NSArray *)tracks {
return self->useRelativePaths ? [self->playlist tracks]
: [self->playlist allTracks];
@@ -121,7 +143,7 @@ - (NSData *)fileContents {
[rep appendString:location];
[rep appendString:@"\n"];
}
- NSData *d = [rep dataUsingEncoding:NSUTF8StringEncoding];
+ NSData *d = [rep dataUsingEncoding:[self fileEncoding]];
[rep release];
[formatter release];
return d;