VLCTime * length; //< Cached duration of the media
NSMutableDictionary * metaDictionary; //< Meta data storage
id delegate; //< Delegate object
- BOOL artFetched; //< Value used to determine of the artwork has been preparsed
+ BOOL isArtFetched; //< Value used to determine of the artwork has been preparsed
+ BOOL areOthersMetaFetched; //< Value used to determine of the other meta has been preparsed
VLCMediaState state; //< Current state of the media
}
libvlc_exception_t ex;
libvlc_exception_init( &ex );
- artFetched = NO;
-
char * p_url = libvlc_media_get_mrl( p_md );
url = [[NSURL URLWithString:[NSString stringWithUTF8String:p_url]] retain];
}
state = LibVLCStateToMediaState(libvlc_media_get_state( p_md ));
-
- /* Force VLCMetaInformationTitle, that will trigger preparsing
- * And all the other meta will be added through the libvlc event system */
- [self fetchMetaInformationFromLibVLCWithType: VLCMetaInformationTitle];
}
- (void)fetchMetaInformationFromLibVLCWithType:(NSString *)metaType
- (id)valueForKeyPath:(NSString *)keyPath
{
- if( !artFetched && [keyPath isEqualToString:@"metaDictionary.artwork"])
+ if( !isArtFetched && [keyPath isEqualToString:@"metaDictionary.artwork"])
{
- artFetched = YES;
+ isArtFetched = YES;
/* Force the retrieval of the artwork now that someone asked for it */
[self fetchMetaInformationFromLibVLCWithType: VLCMetaInformationArtworkURL];
}
+ else if( !areOthersMetaFetched && [keyPath hasPrefix:@"metaDictionary."])
+ {
+ areOthersMetaFetched = YES;
+ /* Force VLCMetaInformationTitle, that will trigger preparsing
+ * And all the other meta will be added through the libvlc event system */
+ [self fetchMetaInformationFromLibVLCWithType: VLCMetaInformationTitle];
+ }
+
return [super valueForKeyPath:keyPath];
}
@end