Browse Source

VLCMedia server browser: add previously found items to exposed list to prevent incomplete listings

Felix Paul Kühne 9 years ago
parent
commit
ae3cafd2fc

+ 21 - 2
Sources/LocalNetworkConnectivity/ServerBrowsing/VLCNetworkServerBrowserVLCMedia.m

@@ -37,8 +37,27 @@
     return self;
     return self;
 }
 }
 
 
+- (void)setDelegate:(id<VLCNetworkServerBrowserDelegate>)delegate
+{
+    _delegate = delegate;
+    [self _addMediaListRootItemsToList];
+}
+
+- (void)_addMediaListRootItemsToList
+{
+    VLCMediaList *rootItems = _rootMedia.subitems;
+    [rootItems lock];
+    NSUInteger count = rootItems.count;
+    for (NSUInteger i = 0; i < count; i++) {
+        VLCMedia *media = [rootItems mediaAtIndex:i];
+        [self.mutableItems addObject:[[VLCNetworkServerBrowserItemVLCMedia alloc] initWithMedia:media options:self.mediaOptions]];
+    }
+    [rootItems unlock];
+    [self.delegate networkServerBrowserDidUpdate:self];
+}
+
 - (void)update {
 - (void)update {
-    int ret = [self.rootMedia parseWithOptions:VLCMediaParseNetwork | VLCMediaFetchNetwork];
+    int ret = [self.rootMedia parseWithOptions:VLCMediaParseNetwork];
     APLog(@"%s: %i", __PRETTY_FUNCTION__, ret);
     APLog(@"%s: %i", __PRETTY_FUNCTION__, ret);
     if (ret == -1) {
     if (ret == -1) {
         [self.delegate networkServerBrowserDidUpdate:self];
         [self.delegate networkServerBrowserDidUpdate:self];
@@ -57,7 +76,7 @@
 
 
 - (void)mediaList:(VLCMediaList *)aMediaList mediaAdded:(VLCMedia *)media atIndex:(NSInteger)index
 - (void)mediaList:(VLCMediaList *)aMediaList mediaAdded:(VLCMedia *)media atIndex:(NSInteger)index
 {
 {
-    APLog(@"%s", __PRETTY_FUNCTION__);
+    APLog(@"%s: %@", __PRETTY_FUNCTION__, media);
     [media parseWithOptions:VLCMediaParseNetwork];
     [media parseWithOptions:VLCMediaParseNetwork];
     [media addOptions:self.mediaOptions];
     [media addOptions:self.mediaOptions];
     [self.mutableItems addObject:[[VLCNetworkServerBrowserItemVLCMedia alloc] initWithMedia:media options:self.mediaOptions]];
     [self.mutableItems addObject:[[VLCNetworkServerBrowserItemVLCMedia alloc] initWithMedia:media options:self.mediaOptions]];