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 ...@@ -113,7 +113,8 @@ typedef enum VLCMediaState
VLCTime * length; //< Cached duration of the media VLCTime * length; //< Cached duration of the media
NSMutableDictionary * metaDictionary; //< Meta data storage NSMutableDictionary * metaDictionary; //< Meta data storage
id delegate; //< Delegate object 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 VLCMediaState state; //< Current state of the media
} }
......
...@@ -428,8 +428,6 @@ static void HandleMediaSubItemAdded(const libvlc_event_t * event, void * self) ...@@ -428,8 +428,6 @@ static void HandleMediaSubItemAdded(const libvlc_event_t * event, void * self)
libvlc_exception_t ex; libvlc_exception_t ex;
libvlc_exception_init( &ex ); libvlc_exception_init( &ex );
artFetched = NO;
char * p_url = libvlc_media_get_mrl( p_md ); char * p_url = libvlc_media_get_mrl( p_md );
url = [[NSURL URLWithString:[NSString stringWithUTF8String:p_url]] retain]; url = [[NSURL URLWithString:[NSString stringWithUTF8String:p_url]] retain];
...@@ -456,10 +454,6 @@ static void HandleMediaSubItemAdded(const libvlc_event_t * event, void * self) ...@@ -456,10 +454,6 @@ static void HandleMediaSubItemAdded(const libvlc_event_t * event, void * self)
} }
state = LibVLCStateToMediaState(libvlc_media_get_state( p_md )); 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 - (void)fetchMetaInformationFromLibVLCWithType:(NSString *)metaType
...@@ -542,12 +536,20 @@ static void HandleMediaSubItemAdded(const libvlc_event_t * event, void * self) ...@@ -542,12 +536,20 @@ static void HandleMediaSubItemAdded(const libvlc_event_t * event, void * self)
- (id)valueForKeyPath:(NSString *)keyPath - (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 */ /* Force the retrieval of the artwork now that someone asked for it */
[self fetchMetaInformationFromLibVLCWithType: VLCMetaInformationArtworkURL]; [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]; return [super valueForKeyPath:keyPath];
} }
@end @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