Commit bfc6b198 authored by Pierre d'Herbemont's avatar Pierre d'Herbemont

macosx/framework: Don't automatically fetch meta, only when asked.

This saves some precious memory if we don't browse them.
parent 5216a752
......@@ -113,7 +113,8 @@ typedef enum VLCMediaState
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
}
......
......@@ -428,8 +428,6 @@ static void HandleMediaSubItemAdded(const libvlc_event_t * event, void * self)
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];
......@@ -456,10 +454,6 @@ static void HandleMediaSubItemAdded(const libvlc_event_t * event, void * self)
}
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
......@@ -542,12 +536,20 @@ static void HandleMediaSubItemAdded(const libvlc_event_t * event, void * self)
- (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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment