| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 | 
							- using UnityEngine;
 
- using UnityEditor;
 
- using System.Collections.Generic;
 
- //-----------------------------------------------------------------------------
 
- // Copyright 2015-2021 RenderHeads Ltd.  All rights reserved.
 
- //-----------------------------------------------------------------------------
 
- namespace RenderHeads.Media.AVProVideo.Editor
 
- {
 
- 	/// <summary>
 
- 	/// </summary>
 
- 	public static class RecentItems
 
- 	{
 
- 		private const int MaxRecentItems = 16;
 
- 		private static List<string> _recentFiles = new List<string>(MaxRecentItems);
 
- 		private static List<string> _recentUrls = new List<string>(MaxRecentItems);
 
- 		// TODO: add a list for favourites to allow user to create their own list?
 
- 		public static List<string> Files { get { return _recentFiles; } }
 
- 		public static List<string> Urls { get { return _recentUrls; } }
 
- 		static RecentItems()
 
- 		{
 
- 			MediaPlayer.InternalMediaLoadedEvent.RemoveListener(Add);
 
- 			MediaPlayer.InternalMediaLoadedEvent.AddListener(Add);
 
- 		}
 
- 		public static void Load()
 
- 		{
 
- 			_recentFiles = EditorHelper.GetEditorPrefsToStringList(MediaPlayerEditor.SettingsPrefix + "RecentFiles");
 
- 			_recentUrls = EditorHelper.GetEditorPrefsToStringList(MediaPlayerEditor.SettingsPrefix + "RecentUrls");
 
- 		}
 
- 		public static void Save()
 
- 		{
 
- 			EditorHelper.SetEditorPrefsFromStringList(MediaPlayerEditor.SettingsPrefix + "RecentFiles", _recentFiles);
 
- 			EditorHelper.SetEditorPrefsFromStringList(MediaPlayerEditor.SettingsPrefix + "RecentUrls", _recentUrls);
 
- 		}
 
- 		public static void Add(string path)
 
- 		{
 
- 			if (path.Contains("://"))
 
- 			{
 
- 				Add(path, _recentUrls);
 
- 			}
 
- 			else
 
- 			{
 
- 				Add(path, _recentFiles);
 
- 			}
 
- 		}
 
- 		private static void Add(string path, List<string> list)
 
- 		{
 
- 			if (!list.Contains(path))
 
- 			{
 
- 				list.Insert(0, path);
 
- 				if (list.Count > MaxRecentItems)
 
- 				{
 
- 					// Remove the oldest item from the list
 
- 					list.RemoveAt(list.Count - 1);
 
- 				}
 
- 			}
 
- 			else
 
- 			{
 
- 				// If it already contains the item, then move it to the top
 
- 				list.Remove(path);
 
- 				list.Insert(0, path);
 
- 			}
 
- 			Save();
 
- 		}
 
- 		public static void ClearMissingFiles()
 
- 		{
 
- 			if (_recentFiles != null && _recentFiles.Count > 0)
 
- 			{
 
- 				List<string> newList = new List<string>(_recentFiles.Count);
 
- 				for (int i = 0; i < _recentFiles.Count; i++)
 
- 				{
 
- 					string path = _recentFiles[i];
 
- 					if (System.IO.File.Exists(path))
 
- 					{
 
- 						newList.Add(path);
 
- 					}
 
- 				}
 
- 				_recentFiles = newList;
 
- 			}
 
- 		}
 
- 	}
 
- }
 
 
  |