private void Init() { App.InitMediaLibraryPath(); App.InitVideoLibraryPath(m_DefaultVideos); m_Videos = new List <ReferenceVideo>(); m_ChangedFiles = new HashSet <string>(); StartCoroutine(ScanReferenceDirectory()); if (Directory.Exists(App.VideoLibraryPath())) { m_FileWatcher = new FileWatcher(App.VideoLibraryPath()); m_FileWatcher.NotifyFilter = NotifyFilters.LastWrite; m_FileWatcher.FileChanged += OnDirectoryChanged; m_FileWatcher.FileCreated += OnDirectoryChanged; m_FileWatcher.FileDeleted += OnDirectoryChanged; m_FileWatcher.EnableRaisingEvents = true; } }
public void Init() { App.InitMediaLibraryPath(); App.InitModelLibraryPath(m_DefaultModels); m_ModelsDirectory = App.ModelLibraryPath(); if (Directory.Exists(m_ModelsDirectory)) { m_FileWatcher = new FileWatcher(m_ModelsDirectory); m_FileWatcher.NotifyFilter = NotifyFilters.LastWrite; m_FileWatcher.FileChanged += OnChanged; m_FileWatcher.FileCreated += OnChanged; m_FileWatcher.FileDeleted += OnChanged; m_FileWatcher.EnableRaisingEvents = true; } m_ModelsByRelativePath = new Dictionary <string, Model>(); m_MissingNormalizedModelsByRelativePath = new Dictionary <string, TrTransform[]>(); m_MissingModelsByRelativePath = new Dictionary <string, TrTransform[]>(); m_OrderedModelNames = new List <string>(); LoadModels(); }
public virtual void Init() { string sSketchDirectory = App.UserSketchPath(); ProcessDirectory(sSketchDirectory); m_ReadyForAccess = true; // No real reason to do this; SaveLoadScript creates the directory itself try { Directory.CreateDirectory(sSketchDirectory); } catch (IOException) { } catch (UnauthorizedAccessException) { } if (Directory.Exists(sSketchDirectory)) { m_FileWatcher = new FileWatcher(sSketchDirectory, "*" + SaveLoadScript.TILT_SUFFIX); // TODO: improve robustness. Using Created works for typical copy and move operations, but // doesn't handle e.g. streaming file. // Note: Renamed event not implemented on OS X, so we rely on Deleted + Created // If we ever start doing something special (like warning the user) with deleted or added, we // may need to add an explicit 'changed' queue, but delete then create works fine for now. m_FileWatcher.FileCreated += (object sender, FileSystemEventArgs e) => { m_ToAdd.Enqueue(e.FullPath); }; m_FileWatcher.FileDeleted += (object sender, FileSystemEventArgs e) => { m_ToDelete.Enqueue(e.FullPath); }; m_FileWatcher.FileChanged += (object sender, FileSystemEventArgs e) => { m_ToDelete.Enqueue(e.FullPath); m_ToAdd.Enqueue(e.FullPath); }; m_FileWatcher.EnableRaisingEvents = true; } }
void Awake() { m_Instance = this; m_RequestedLoads = new Stack <int>(); App.InitMediaLibraryPath(); App.InitReferenceImagePath(m_DefaultImages); m_ReferenceDirectory = App.ReferenceImagePath(); if (Directory.Exists(m_ReferenceDirectory)) { m_FileWatcher = new FileWatcher(m_ReferenceDirectory); m_FileWatcher.NotifyFilter = NotifyFilters.LastWrite; m_FileWatcher.FileChanged += OnChanged; m_FileWatcher.FileCreated += OnChanged; m_FileWatcher.FileDeleted += OnChanged; m_FileWatcher.EnableRaisingEvents = true; } ImageCache.DeleteObsoleteCaches(); m_Images = new List <ReferenceImage>(); ProcessReferenceDirectory(userOverlay: false); }