aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/IO
diff options
context:
space:
mode:
authorTechywarrior <techywarrior@gmail.com>2013-05-02 21:39:34 -0700
committerTechywarrior <techywarrior@gmail.com>2013-05-02 21:39:34 -0700
commit8095f7200b1bd79bc30572a3ebde03f34a6b9e01 (patch)
tree42d664de774dc7744fc133be3f3a646e3db056eb /MediaBrowser.Server.Implementations/IO
parentf58c26afaa94b812c06004145999336bb77e4629 (diff)
parent9fdf5d1c4b488fe53e557870cacdf02b1b7fd4a2 (diff)
Merge branch 'master' of https://github.com/MediaBrowser/MediaBrowser
Diffstat (limited to 'MediaBrowser.Server.Implementations/IO')
-rw-r--r--MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs58
1 files changed, 30 insertions, 28 deletions
diff --git a/MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs b/MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs
index d45952d6f..51fbfd219 100644
--- a/MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs
+++ b/MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs
@@ -103,7 +103,8 @@ namespace MediaBrowser.Server.Implementations.IO
/// </summary>
public void Start()
{
- LibraryManager.LibraryChanged += Instance_LibraryChanged;
+ LibraryManager.ItemAdded += LibraryManager_ItemAdded;
+ LibraryManager.ItemRemoved += LibraryManager_ItemRemoved;
var pathsToWatch = new List<string> { LibraryManager.RootFolder.Path };
@@ -138,6 +139,32 @@ namespace MediaBrowser.Server.Implementations.IO
}
/// <summary>
+ /// Handles the ItemRemoved event of the LibraryManager control.
+ /// </summary>
+ /// <param name="sender">The source of the event.</param>
+ /// <param name="e">The <see cref="ItemChangeEventArgs"/> instance containing the event data.</param>
+ void LibraryManager_ItemRemoved(object sender, ItemChangeEventArgs e)
+ {
+ if (e.Item.Parent is AggregateFolder)
+ {
+ StopWatchingPath(e.Item.Path);
+ }
+ }
+
+ /// <summary>
+ /// Handles the ItemAdded event of the LibraryManager control.
+ /// </summary>
+ /// <param name="sender">The source of the event.</param>
+ /// <param name="e">The <see cref="ItemChangeEventArgs"/> instance containing the event data.</param>
+ void LibraryManager_ItemAdded(object sender, ItemChangeEventArgs e)
+ {
+ if (e.Item.Parent is AggregateFolder)
+ {
+ StartWatchingPath(e.Item.Path);
+ }
+ }
+
+ /// <summary>
/// Examine a list of strings assumed to be file paths to see if it contains a parent of
/// the provided path.
/// </summary>
@@ -232,32 +259,6 @@ namespace MediaBrowser.Server.Implementations.IO
}
/// <summary>
- /// Handles the LibraryChanged event of the Kernel
- /// </summary>
- /// <param name="sender">The source of the event.</param>
- /// <param name="e">The <see cref="MediaBrowser.Controller.Library.ChildrenChangedEventArgs" /> instance containing the event data.</param>
- void Instance_LibraryChanged(object sender, ChildrenChangedEventArgs e)
- {
- if (e.Folder is AggregateFolder && e.HasAddOrRemoveChange)
- {
- if (e.ItemsRemoved != null)
- {
- foreach (var item in e.ItemsRemoved.OfType<Folder>())
- {
- StopWatchingPath(item.Path);
- }
- }
- if (e.ItemsAdded != null)
- {
- foreach (var item in e.ItemsAdded.OfType<Folder>())
- {
- StartWatchingPath(item.Path);
- }
- }
- }
- }
-
- /// <summary>
/// Handles the Error event of the watcher control.
/// </summary>
/// <param name="sender">The source of the event.</param>
@@ -497,7 +498,8 @@ namespace MediaBrowser.Server.Implementations.IO
/// </summary>
public void Stop()
{
- LibraryManager.LibraryChanged -= Instance_LibraryChanged;
+ LibraryManager.ItemAdded -= LibraryManager_ItemAdded;
+ LibraryManager.ItemRemoved -= LibraryManager_ItemRemoved;
FileSystemWatcher watcher;