From 78a908274b1343a2608efcb37142302dc8b88be8 Mon Sep 17 00:00:00 2001 From: vspader Date: Sun, 27 May 2007 15:11:30 +0000 Subject: [PATCH] Fixed bug where unseekable songs still allowed the user to move the slider and updated the time. --- Audio/Plugin.h | 1 - English.lproj/MainMenu.nib/info.nib | 4 ++-- English.lproj/MainMenu.nib/keyedobjects.nib | Bin 58838 -> 59151 bytes Playlist/PlaylistEntry.h | 5 +++++ Playlist/PlaylistEntry.m | 14 ++++++++++++++ Plugins/CoreAudio/CoreAudioDecoder.m | 6 +----- Plugins/Flac/FlacDecoder.m | 6 +----- Plugins/MAD/MADDecoder.m | 6 +----- Plugins/MonkeysAudio/MonkeysAudioDecoder.mm | 6 +----- Plugins/Musepack/MusepackDecoder.m | 6 +----- Plugins/Shorten/ShortenDecoder.h | 2 +- Plugins/Shorten/ShortenDecoder.mm | 11 +++++------ Plugins/Vorbis/VorbisDecoder.m | 6 +----- Plugins/WavPack/WavPackDecoder.m | 6 +----- 14 files changed, 34 insertions(+), 45 deletions(-) diff --git a/Audio/Plugin.h b/Audio/Plugin.h index 4c122ea74..c246b853e 100644 --- a/Audio/Plugin.h +++ b/Audio/Plugin.h @@ -36,7 +36,6 @@ - (NSDictionary *)properties; - (BOOL)open:(id)source; -- (BOOL)seekable; - (double)seekToTime:(double)time; //time is in milleseconds, should return the time actually seeked to. - (int)fillBuffer:(void *)buf ofSize:(UInt32)size; - (void)close; diff --git a/English.lproj/MainMenu.nib/info.nib b/English.lproj/MainMenu.nib/info.nib index ffe968ffa..d2b0ed115 100644 --- a/English.lproj/MainMenu.nib/info.nib +++ b/English.lproj/MainMenu.nib/info.nib @@ -9,7 +9,7 @@ 1063 650 960 136 68 0 0 1680 1028 1156 - 866 232 241 366 0 0 1680 1028 + 719 529 241 366 0 0 1680 1028 1324 787 658 137 182 0 0 1680 1028 29 @@ -36,9 +36,9 @@ 513 21 + 1156 463 1063 - 1156 29 1324 diff --git a/English.lproj/MainMenu.nib/keyedobjects.nib b/English.lproj/MainMenu.nib/keyedobjects.nib index da8c6c90e63253460926e6fcc20c8193c93dd3bd..9ea14cb5ce06af5d120c162b2ecdc0881e1aa411 100644 GIT binary patch delta 38638 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 Cz}w;g delta 38187 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 diff --git a/Playlist/PlaylistEntry.h b/Playlist/PlaylistEntry.h index 021bdd87d..3e1a7f346 100644 --- a/Playlist/PlaylistEntry.h +++ b/Playlist/PlaylistEntry.h @@ -29,6 +29,8 @@ NSNumber *idx; NSNumber *shuffleIndex; + + NSNumber *seekable; } - (void)setIndex:(NSNumber *)i; @@ -69,6 +71,9 @@ - (void)setSampleRate:(NSNumber *)s; - (NSNumber *)sampleRate; +- (void)setSeekable:(NSNumber *)s; +- (NSNumber *)seekable; + - (void)setMetadata: (NSDictionary *)m; - (void)readMetadataThread; - (void)setProperties: (NSDictionary *)p; diff --git a/Playlist/PlaylistEntry.m b/Playlist/PlaylistEntry.m index a4bed12ed..67af0d9cb 100644 --- a/Playlist/PlaylistEntry.m +++ b/Playlist/PlaylistEntry.m @@ -202,6 +202,7 @@ [self setChannels: [dict objectForKey:@"channels" ]]; [self setBitsPerSample: [dict objectForKey:@"bitsPerSample" ]]; [self setSampleRate: [dict objectForKey:@"sampleRate" ]]; + [self setSeekable: [dict objectForKey:@"seekable" ]]; } - (void)readPropertiesThread @@ -271,6 +272,19 @@ return sampleRate; } +- (void)setSeekable:(NSNumber *)s +{ + [s retain]; + [seekable release]; + + seekable = s; +} + +- (NSNumber *)seekable +{ + return seekable; +} + - (void)setMetadata: (NSDictionary *)m { NSString *ti = [m objectForKey:@"title"]; diff --git a/Plugins/CoreAudio/CoreAudioDecoder.m b/Plugins/CoreAudio/CoreAudioDecoder.m index de2c20528..8b86974fe 100644 --- a/Plugins/CoreAudio/CoreAudioDecoder.m +++ b/Plugins/CoreAudio/CoreAudioDecoder.m @@ -186,14 +186,10 @@ [NSNumber numberWithInt:bitrate],@"bitrate", [NSNumber numberWithFloat:frequency],@"sampleRate", [NSNumber numberWithDouble:length],@"length", + [NSNumber numberWithBool:YES], @"seekable", @"big", @"endian", nil]; } -- (BOOL)seekable -{ - return YES; //Are you kidding me? it HAS to be seekable. The AudioFile API is 100% impossible to stream in any way. Even using callbacks gives problems. Sigh. -} - @end diff --git a/Plugins/Flac/FlacDecoder.m b/Plugins/Flac/FlacDecoder.m index 83efa96c7..9ff17eca8 100644 --- a/Plugins/Flac/FlacDecoder.m +++ b/Plugins/Flac/FlacDecoder.m @@ -282,11 +282,6 @@ void ErrorCallback(const FLAC__StreamDecoder *decoder, FLAC__StreamDecoderErrorS return source; } -- (BOOL)seekable -{ - return [source seekable]; -} - - (void)setEndOfStream:(BOOL)eos { endOfStream = eos; @@ -304,6 +299,7 @@ void ErrorCallback(const FLAC__StreamDecoder *decoder, FLAC__StreamDecoderErrorS [NSNumber numberWithInt:bitsPerSample],@"bitsPerSample", [NSNumber numberWithFloat:frequency],@"sampleRate", [NSNumber numberWithDouble:length],@"length", + [NSNumber numberWithBool:[source seekable]], @"seekable", @"big",@"endian", nil]; } diff --git a/Plugins/MAD/MADDecoder.m b/Plugins/MAD/MADDecoder.m index 311c49f38..c02d87b01 100644 --- a/Plugins/MAD/MADDecoder.m +++ b/Plugins/MAD/MADDecoder.m @@ -591,15 +591,11 @@ static inline signed int scale (mad_fixed_t sample) [NSNumber numberWithFloat:frequency],@"sampleRate", [NSNumber numberWithInt:bitrate],@"bitrate", [NSNumber numberWithDouble:length],@"length", + [NSNumber numberWithBool:[_source seekable]], @"seekable", @"big", @"endian", nil]; } -- (BOOL)seekable -{ - return [_source seekable]; -} - + (NSArray *)fileTypes { diff --git a/Plugins/MonkeysAudio/MonkeysAudioDecoder.mm b/Plugins/MonkeysAudio/MonkeysAudioDecoder.mm index 26b83c9b5..bbdc86e73 100644 --- a/Plugins/MonkeysAudio/MonkeysAudioDecoder.mm +++ b/Plugins/MonkeysAudio/MonkeysAudioDecoder.mm @@ -90,11 +90,6 @@ return source; } -- (BOOL)seekable -{ - return [source seekable]; -} - - (NSDictionary *)properties { return [NSDictionary dictionaryWithObjectsAndKeys: @@ -102,6 +97,7 @@ [NSNumber numberWithInt:bitsPerSample],@"bitsPerSample", [NSNumber numberWithFloat:frequency],@"sampleRate", [NSNumber numberWithDouble:length],@"length", + [NSNumber numberWithBool:[source seekable]], @"seekable", @"host",@"endian", nil]; } diff --git a/Plugins/Musepack/MusepackDecoder.m b/Plugins/Musepack/MusepackDecoder.m index dc2aa3be8..bdea02f1a 100644 --- a/Plugins/Musepack/MusepackDecoder.m +++ b/Plugins/Musepack/MusepackDecoder.m @@ -208,11 +208,6 @@ mpc_bool_t CanSeekProc(void *data) return source; } -- (BOOL)seekable -{ - return [source seekable]; -} - - (NSDictionary *)properties { return [NSDictionary dictionaryWithObjectsAndKeys: @@ -221,6 +216,7 @@ mpc_bool_t CanSeekProc(void *data) [NSNumber numberWithDouble:length], @"length", [NSNumber numberWithInt:16], @"bitsPerSample", [NSNumber numberWithInt:2], @"channels", + [NSNumber numberWithBool:[source seekable]], @"seekable", @"host",@"endian", nil]; } diff --git a/Plugins/Shorten/ShortenDecoder.h b/Plugins/Shorten/ShortenDecoder.h index 69de2f75d..db7083e49 100644 --- a/Plugins/Shorten/ShortenDecoder.h +++ b/Plugins/Shorten/ShortenDecoder.h @@ -22,7 +22,7 @@ int bitsPerSample; float frequency; double length; - bool seekTable; + BOOL seekable; } @end diff --git a/Plugins/Shorten/ShortenDecoder.mm b/Plugins/Shorten/ShortenDecoder.mm index 9f081b083..94e7bb880 100644 --- a/Plugins/Shorten/ShortenDecoder.mm +++ b/Plugins/Shorten/ShortenDecoder.mm @@ -29,8 +29,11 @@ bufferSize = decoder->shn_get_buffer_block_size(NUM_DEFAULT_BUFFER_BLOCKS); + bool seekTable; decoder->file_info(NULL, &channels, &frequency, NULL, &bitsPerSample, &seekTable); - NSLog(@"Seek table: %i", seekTable); + + seekable = seekTable == true ? YES : NO; + length = decoder->shn_get_song_length(); decoder->go(); @@ -100,11 +103,6 @@ shn_unload(handle);*/ } -- (BOOL)seekable -{ - return seekTable ? YES : NO; -} - - (NSDictionary *)properties { return [NSDictionary dictionaryWithObjectsAndKeys: @@ -112,6 +110,7 @@ [NSNumber numberWithInt:bitsPerSample],@"bitsPerSample", [NSNumber numberWithFloat:frequency],@"sampleRate", [NSNumber numberWithDouble:length],@"length", + [NSNumber numberWithBool:seekable ],@"seekable", @"little",@"endian", nil]; } diff --git a/Plugins/Vorbis/VorbisDecoder.m b/Plugins/Vorbis/VorbisDecoder.m index ef11a2449..8af23993b 100644 --- a/Plugins/Vorbis/VorbisDecoder.m +++ b/Plugins/Vorbis/VorbisDecoder.m @@ -125,11 +125,6 @@ long sourceTell(void *datasource) return milliseconds; } -- (BOOL) seekable -{ - return [source seekable]; -} - - (NSDictionary *)properties { return [NSDictionary dictionaryWithObjectsAndKeys: @@ -138,6 +133,7 @@ long sourceTell(void *datasource) [NSNumber numberWithFloat:frequency], @"sampleRate", [NSNumber numberWithDouble:length], @"length", [NSNumber numberWithInt:bitrate], @"bitrate", + [NSNumber numberWithBool:([source seekable] && seekable)], @"seekable", nil]; } diff --git a/Plugins/WavPack/WavPackDecoder.m b/Plugins/WavPack/WavPackDecoder.m index 1a3b8af1c..1fd6e2ed8 100644 --- a/Plugins/WavPack/WavPackDecoder.m +++ b/Plugins/WavPack/WavPackDecoder.m @@ -245,11 +245,6 @@ int32_t WriteBytesProc(void *ds, void *data, int32_t bcount) return source; } -- (BOOL)seekable -{ - return [source seekable]; -} - - (NSDictionary *)properties { return [NSDictionary dictionaryWithObjectsAndKeys: @@ -258,6 +253,7 @@ int32_t WriteBytesProc(void *ds, void *data, int32_t bcount) [NSNumber numberWithInt:bitrate],@"bitrate", [NSNumber numberWithFloat:frequency],@"sampleRate", [NSNumber numberWithDouble:length],@"length", + [NSNumber numberWithBool:[source seekable]], @"seekable", @"host",@"endian", nil]; }