Fixed bug where unseekable songs still allowed the user to move the slider and updated the time.
parent
04c2fe383c
commit
78a908274b
|
@ -36,7 +36,6 @@
|
|||
- (NSDictionary *)properties;
|
||||
|
||||
- (BOOL)open:(id<CogSource>)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;
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
<key>1063</key>
|
||||
<string>650 960 136 68 0 0 1680 1028 </string>
|
||||
<key>1156</key>
|
||||
<string>866 232 241 366 0 0 1680 1028 </string>
|
||||
<string>719 529 241 366 0 0 1680 1028 </string>
|
||||
<key>1324</key>
|
||||
<string>787 658 137 182 0 0 1680 1028 </string>
|
||||
<key>29</key>
|
||||
|
@ -36,9 +36,9 @@
|
|||
<array>
|
||||
<integer>513</integer>
|
||||
<integer>21</integer>
|
||||
<integer>1156</integer>
|
||||
<integer>463</integer>
|
||||
<integer>1063</integer>
|
||||
<integer>1156</integer>
|
||||
<integer>29</integer>
|
||||
<integer>1324</integer>
|
||||
</array>
|
||||
|
|
Binary file not shown.
|
@ -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;
|
||||
|
|
|
@ -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"];
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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];
|
||||
}
|
||||
|
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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];
|
||||
}
|
||||
|
|
|
@ -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];
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
int bitsPerSample;
|
||||
float frequency;
|
||||
double length;
|
||||
bool seekTable;
|
||||
BOOL seekable;
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -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];
|
||||
}
|
||||
|
|
|
@ -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];
|
||||
}
|
||||
|
||||
|
|
|
@ -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];
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue