Ver código fonte

MediaLibraryService: Send modified callbacks

Soomin Lee 6 anos atrás
pai
commit
78d745a06a
1 arquivos alterados com 53 adições e 1 exclusões
  1. 53 1
      SharedSources/MediaLibraryService.swift

+ 53 - 1
SharedSources/MediaLibraryService.swift

@@ -25,8 +25,9 @@ extension NSNotification {
 
 @objc protocol MediaLibraryObserver: class {
     // Video
+
     @objc optional func medialibrary(_ medialibrary: MediaLibraryService,
-                                     didModifyVideo video: [VLCMLMedia])
+                                     didModifyVideos videos: [VLCMLMedia])
 
     @objc optional func medialibrary(_ medialibrary: MediaLibraryService,
                                      didDeleteMediaWithIds ids: [NSNumber])
@@ -45,15 +46,24 @@ extension NSNotification {
                                      didAddTracks tracks: [VLCMLMedia])
 
     @objc optional func medialibrary(_ medialibrary: MediaLibraryService,
+                                     didModifyTracks tracks: [VLCMLMedia])
+
+    @objc optional func medialibrary(_ medialibrary: MediaLibraryService,
                                      didAddArtists artists: [VLCMLArtist])
 
     @objc optional func medialibrary(_ medialibrary: MediaLibraryService,
+                                     didModifyArtists artists: [VLCMLArtist])
+
+    @objc optional func medialibrary(_ medialibrary: MediaLibraryService,
                                      didDeleteArtistsWithIds artistsIds: [NSNumber])
 
     @objc optional func medialibrary(_ medialibrary: MediaLibraryService,
                                      didAddAlbums albums: [VLCMLAlbum])
 
     @objc optional func medialibrary(_ medialibrary: MediaLibraryService,
+                                     didModifyAlbums albums: [VLCMLAlbum])
+
+    @objc optional func medialibrary(_ medialibrary: MediaLibraryService,
                                      didDeleteAlbumsWithIds albumsIds: [NSNumber])
 
     @objc optional func medialibrary(_ medialibrary: MediaLibraryService,
@@ -63,6 +73,9 @@ extension NSNotification {
                                      didAddGenres genres: [VLCMLGenre])
 
     @objc optional func medialibrary(_ medialibrary: MediaLibraryService,
+                                     didModifyGenres genres: [VLCMLGenre])
+
+    @objc optional func medialibrary(_ medialibrary: MediaLibraryService,
                                      didDeleteGenresWithIds genreIds: [NSNumber])
 
     // Playlist
@@ -431,10 +444,15 @@ extension MediaLibraryService: VLCMediaLibraryDelegate {
 
         let showEpisodes = media.filter {( $0.subtype() == .showEpisode )}
         let albumTrack = media.filter {( $0.subtype() == .albumTrack )}
+        let videos = media.filter {( $0.type() == .video)}
+        let tracks = media.filter {( $0.type() == .audio)}
 
+        // Shows and albumtracks are known only after when the medialibrary calls didModifyMedia
         for observer in observers {
             observer.value.observer?.medialibrary?(self, didAddShowEpisodes: showEpisodes)
             observer.value.observer?.medialibrary?(self, didAddAlbumTracks: albumTrack)
+            observer.value.observer?.medialibrary?(self, didModifyVideos: videos)
+            observer.value.observer?.medialibrary?(self, didModifyTracks: tracks)
         }
     }
 
@@ -465,6 +483,12 @@ extension MediaLibraryService {
         }
     }
 
+    func medialibrary(_ medialibrary: VLCMediaLibrary, didModifyArtists artists: [VLCMLArtist]) {
+        for observer in observers {
+            observer.value.observer?.medialibrary?(self, didModifyArtists: artists)
+        }
+    }
+
     func medialibrary(_ medialibrary: VLCMediaLibrary, didDeleteArtistsWithIds artistsIds: [NSNumber]) {
         for observer in observers {
             observer.value.observer?.medialibrary?(self, didDeleteArtistsWithIds: artistsIds)
@@ -481,6 +505,12 @@ extension MediaLibraryService {
         }
     }
 
+    func medialibrary(_ medialibrary: VLCMediaLibrary, didModify albums: [VLCMLAlbum]) {
+        for observer in observers {
+            observer.value.observer?.medialibrary?(self, didAddAlbums: albums)
+        }
+    }
+
     func medialibrary(_ medialibrary: VLCMediaLibrary, didDeleteAlbumsWithIds albumsIds: [NSNumber]) {
         for observer in observers {
             observer.value.observer?.medialibrary?(self, didDeleteAlbumsWithIds: albumsIds)
@@ -488,6 +518,28 @@ extension MediaLibraryService {
     }
 }
 
+// MARK: - VLCMediaLibraryDelegate - Genres
+extension MediaLibraryService {
+    func medialibrary(_ medialibrary: VLCMediaLibrary, didAdd genres: [VLCMLGenre]) {
+        for observer in observers {
+            observer.value.observer?.medialibrary?(self, didAddGenres: genres)
+        }
+    }
+
+    func medialibrary(_ medialibrary: VLCMediaLibrary, didModifyGenres genres: [VLCMLGenre]) {
+        for observer in observers {
+            observer.value.observer?.medialibrary?(self, didModifyGenres: genres)
+        }
+    }
+
+    func medialibrary(_ medialibrary: VLCMediaLibrary,
+                      didDeleteGenresWithIds genresIds: [NSNumber]) {
+        for observer in observers {
+            observer.value.observer?.medialibrary?(self, didDeleteGenresWithIds: genresIds)
+        }
+    }
+}
+
 // MARK: - VLCMediaLibraryDelegate - Playlists
 
 extension MediaLibraryService {