From 5ff84158ccd0f875844c490d59010be8909d6ebf Mon Sep 17 00:00:00 2001 From: vspader Date: Sat, 20 Oct 2007 15:08:06 +0000 Subject: [PATCH] Made playlist/cuesheet encoding a little more robust (Vasfed). --- Audio/Chain/ConverterNode.m | 2 -- Plugins/CueSheet/CueSheet.m | 18 +++++++++++++++++- Plugins/M3u/M3uContainer.m | 22 +++++++++++++++++++--- Plugins/Pls/PlsContainer.m | 19 ++++++++++++++++++- 4 files changed, 54 insertions(+), 7 deletions(-) diff --git a/Audio/Chain/ConverterNode.m b/Audio/Chain/ConverterNode.m index 93c5aa811..3a709b96f 100644 --- a/Audio/Chain/ConverterNode.m +++ b/Audio/Chain/ConverterNode.m @@ -98,8 +98,6 @@ static OSStatus ACInputProc(AudioConverterRef inAudioConverter, UInt32* ioNumber amountRead += [self convert:dest + amountRead amount:amount - amountRead]; } - NSLog(@"Amount read: %i/%i", amountRead, amount); - return amountRead; } diff --git a/Plugins/CueSheet/CueSheet.m b/Plugins/CueSheet/CueSheet.m index e00939b96..4233cb85d 100644 --- a/Plugins/CueSheet/CueSheet.m +++ b/Plugins/CueSheet/CueSheet.m @@ -61,8 +61,24 @@ - (void)parseFile:(NSString *)filename { + NSStringEncoding encoding; NSError *error = nil; - NSString *contents = [NSString stringWithContentsOfFile:filename encoding:NSUTF8StringEncoding error:&error]; + NSString *contents = [NSString stringWithContentsOfFile:filename usedEncoding:&encoding error:&error]; + if (error) { + NSLog(@"Trying UTF8"); + error = nil; + contents = [NSString stringWithContentsOfFile:filename encoding:NSUTF8StringEncoding error:&error]; + } + if (error) { + NSLog(@"Trying windows CP1251"); + error = nil; + contents = [NSString stringWithContentsOfFile:filename encoding:NSWindowsCP1251StringEncoding error:&error]; + } + if (error) { + NSLog(@"Trying latin1"); + error = nil; + contents = [NSString stringWithContentsOfFile:filename encoding:NSISOLatin1StringEncoding error:&error]; + } if (error || !contents) { NSLog(@"Could not open file...%@ %@ %@", filename, contents, error); return; diff --git a/Plugins/M3u/M3uContainer.m b/Plugins/M3u/M3uContainer.m index ce2047f91..7f6e06774 100644 --- a/Plugins/M3u/M3uContainer.m +++ b/Plugins/M3u/M3uContainer.m @@ -68,11 +68,27 @@ NSString *filename = [url path]; + NSStringEncoding encoding; NSError *error = nil; - NSString *contents = [NSString stringWithContentsOfFile:filename encoding:NSUTF8StringEncoding error:&error]; + NSString *contents = [NSString stringWithContentsOfFile:filename usedEncoding:&encoding error:&error]; + if (error) { + NSLog(@"Trying UTF8"); + error = nil; + contents = [NSString stringWithContentsOfFile:filename encoding:NSUTF8StringEncoding error:&error]; + } + if (error) { + NSLog(@"Trying windows CP1251"); + error = nil; + contents = [NSString stringWithContentsOfFile:filename encoding:NSWindowsCP1251StringEncoding error:&error]; + } + if (error) { + NSLog(@"Trying latin1"); + error = nil; + contents = [NSString stringWithContentsOfFile:filename encoding:NSISOLatin1StringEncoding error:&error]; + } if (error || !contents) { - NSLog(@"Could not open file...%@ %@", contents, error); - return NO; + NSLog(@"Could not open file...%@ %@ %@", filename, contents, error); + return nil; } NSString *entry; diff --git a/Plugins/Pls/PlsContainer.m b/Plugins/Pls/PlsContainer.m index 077d7ad9d..7bca89bc8 100644 --- a/Plugins/Pls/PlsContainer.m +++ b/Plugins/Pls/PlsContainer.m @@ -70,9 +70,26 @@ NSString *filename = [url path]; + NSStringEncoding encoding; NSError *error; - NSString *contents = [NSString stringWithContentsOfFile:filename encoding:NSUTF8StringEncoding error:&error]; + NSString *contents = [NSString stringWithContentsOfFile:filename usedEncoding:&encoding error:&error]; + if (error) { + NSLog(@"Trying UTF8"); + error = nil; + contents = [NSString stringWithContentsOfFile:filename encoding:NSUTF8StringEncoding error:&error]; + } + if (error) { + NSLog(@"Trying windows CP1251"); + error = nil; + contents = [NSString stringWithContentsOfFile:filename encoding:NSWindowsCP1251StringEncoding error:&error]; + } + if (error) { + NSLog(@"Trying latin1"); + error = nil; + contents = [NSString stringWithContentsOfFile:filename encoding:NSISOLatin1StringEncoding error:&error]; + } if (error || !contents) { + NSLog(@"Could not open file...%@ %@ %@", filename, contents, error); return nil; }