git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorBellai Ádám <USER\adam.bellai>
Tue, 10 Oct 2017 09:39:50 +0000 (09:39 +0000)
committerBellai Ádám <USER\adam.bellai>
Tue, 10 Oct 2017 09:39:50 +0000 (09:39 +0000)
client/Maestro/Configuration/ConfigurationInfo.cs
client/Maestro/MaestroForm.Source.cs
client/Maestro/Resources/configuration-unc.json
client/Maestro/Sources/FileSystemSource.cs

index acb4ec997592a9cafcf3837c3c26e23eb05c26aa..a33285201c60ce910142e6b66b620fd6d24d86a4 100644 (file)
@@ -30,7 +30,6 @@ namespace Maestro.Configuration {
         public bool EnableCustomMetadataId { get; set; }\r
         public MetadataProvider[] Metadatas { get; set; }\r
         public Target[] Targets { get; set; }\r
-        public String Filter { get; set; }\r
     }\r
 \r
     public class Player {\r
@@ -63,6 +62,7 @@ namespace Maestro.Configuration {
     public class Source {\r
         public Connection Local { get; set; }\r
         public Connection Remote { get; set; }\r
+        public String Filter { get; set; }\r
     }\r
 \r
     public class UNCSource : Source {\r
index 88cac0c91047de25a56ec6fb822d542641529d4d..7a1af3bc347b865af5a104b084ac38ebc4341341 100644 (file)
@@ -37,7 +37,7 @@ namespace Maestro {
 \r
             if (Configuration?.Source is UNCSource) {\r
                 logger.Debug("UNC source initialization");\r
-                source = new FileSystemSource(this, MessageBus, Configuration.Filter);\r
+                source = new FileSystemSource(this, MessageBus, Configuration.Source.Filter);\r
                 logger.Debug("UNC source created");\r
             }\r
             if (Configuration?.Source is NEXIOSource) {\r
index 12f1a435fe06c65ece8b068e5f256cd31fd431b4..2d40e58210ddf0f17e58b6fe0f692dc48c3afe9c 100644 (file)
@@ -4,7 +4,6 @@
   "startInTray": false,\r
   "enableNameOverride": false,\r
   "enableCustomMetadataId": true,\r
-  "filter": "avi,wav",\r
   "player": {\r
     "enabled": true,\r
     "autoStart": false,\r
@@ -12,6 +11,7 @@
   },\r
   "source": {\r
     "$type": "UNCSource",\r
+       "filter": "avi,wav,mxf",\r
     "local": {\r
       "address": "file://10.10.1.100/BRAAVOS/_TEST_/_ECHO/hirado/test"\r
     },\r
index 4dc44d9f36834c317a9e04172853b1dfccb327ac..3b24042c5e9cebe53897b16781efdc01b5ffcdb9 100644 (file)
@@ -22,6 +22,8 @@ namespace Maestro.Sources {
         private string fileExtensionFilter;\r
         private List<String> acceptableExtensions = new List<string>();\r
         private List<FileSourceItem> cache = new List<FileSourceItem>();\r
+        private BackgroundWorker pathWatcherWorker = new BackgroundWorker();\r
+        private string path;\r
 \r
         public DataGridViewColumn[] Columns {\r
             get {\r
@@ -69,6 +71,21 @@ namespace Maestro.Sources {
             this.messageBus = messageBus;\r
             this.fileExtensionFilter = fileExtensionFilter;\r
             SetAcceptableExtensions();\r
+            pathWatcherWorker.DoWork += pathWatcherWorker_watchPath;\r
+            pathWatcherWorker.ProgressChanged += pathWatcherWorker_progressChanged;\r
+            pathWatcherWorker.WorkerReportsProgress = true;\r
+        }\r
+\r
+        private void pathWatcherWorker_progressChanged(object sender, ProgressChangedEventArgs e) {\r
+            InnerStartUp();\r
+        }\r
+\r
+        private void pathWatcherWorker_watchPath(object sender, DoWorkEventArgs e) {\r
+            while (!(Directory.Exists(path))) {\r
+                \r
+            }\r
+            pathWatcherWorker.ReportProgress(0);\r
+\r
         }\r
 \r
         private void SetAcceptableExtensions() {\r
@@ -78,10 +95,19 @@ namespace Maestro.Sources {
 \r
         public void Startup(Uri address) {\r
             string path = address.LocalPath;\r
+            this.path = path;\r
+            if (Directory.Exists(path)) {\r
+                InnerStartUp();\r
+            } else pathWatcherWorker.RunWorkerAsync();\r
+        }\r
+\r
+        private void InnerStartUp() {\r
             createWatch(path);\r
             Task.Run(() => initializeList(path));\r
         }\r
 \r
+\r
+\r
         //private void AddItem(FileInfo fi, bool highlight) {\r
         //    FileSourceItem item = CreateItem(fi, highlight);\r
         //    Add(item);\r
@@ -111,10 +137,15 @@ namespace Maestro.Sources {
             watcher.Created += new FileSystemEventHandler(OnCreated);\r
             watcher.Deleted += new FileSystemEventHandler(OnDeleted);\r
             watcher.Renamed += new RenamedEventHandler(OnRenamed);\r
+            //watcher.Disposed += new EventHandler(OnDispose);\r
             watcher.EnableRaisingEvents = true;\r
         }\r
 \r
-        public void OnRenamed(object sender, RenamedEventArgs e) {\r
+        public void OnDispose(object sender, RenamedEventArgs e) {\r
+\r
+        }\r
+\r
+            public void OnRenamed(object sender, RenamedEventArgs e) {\r
             logger.Debug("{0} {1} {2}", e.ChangeType, e.OldName, e.Name);\r
             var item = this.Where(x => x.Name == e.OldName).SingleOrDefault();\r
             if (item == null)\r