/// <summary> /// Load display text from the Registry /// </summary> private void LoadSettings() { var settings = new RegSettings(); chkDifferentMonitorMovies.Checked = settings.DifferentMoviesOnDual; chkUseTimeOfDay.Checked = settings.UseTimeOfDay; }
private void ScreenSaverForm_Load(object sender, EventArgs e) { if (!previewMode && !windowMode) Cursor.Hide(); LayoutPlayer(); var nextVideoTimer = new System.Windows.Forms.Timer(); nextVideoTimer.Tick += NextVideoTimer_Tick; nextVideoTimer.Interval = 1000; nextVideoTimer.Enabled = true; var cacheVideos = new RegSettings().CacheVideos; if (cacheVideos) { DirectoryInfo directory = Directory.CreateDirectory(cacheFolder); } if (ShowVideo) { Movies = new AerialContext().GetMovies(); #if DEBUG Movies = new List<Asset> { new Asset {url = @"http://blog.luxisinteractive.com/wp-content/uploads/2015/08/depth.mp4" }, new Asset {url = @"http://blog.luxisinteractive.com/wp-content/uploads/2015/08/animation.mp4" }, }; //this.player.URL = @"http://blog.luxisinteractive.com/wp-content/uploads/2015/08/depth.mp4"; #endif SetNextVideo(); } }
private void SetNextVideo() { Trace.WriteLine("SetNextVideo()"); var cacheEnabled = new RegSettings().CacheVideos; if (ShowVideo) { string url = Movies[currentVideoIndex].url; if (Caching.IsHit(url)) { player.URL = Caching.Get(url); } else { player.URL = url; if (cacheEnabled && shouldCache && !previewMode && !Caching.IsCaching(url)) { Caching.StartDelayedCache(url); } } currentVideoIndex++; if (currentVideoIndex >= Movies.Count) { currentVideoIndex = 0; } } }
/// <summary> /// Load display text from the Registry /// </summary> private void LoadSettings() { var settings = new RegSettings(); chkDifferentMonitorMovies.Checked = settings.DifferentMoviesOnDual; chkUseTimeOfDay.Checked = settings.UseTimeOfDay; chkMultiscreenDisabled.Checked = settings.MultiscreenDisabled; chkCacheVideos.Checked = settings.CacheVideos; if (settings.CacheLocation == null || settings.CacheLocation == "") { txtCacheFolderPath.Text = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Aerial").ToString(); } else { txtCacheFolderPath.Text = settings.CacheLocation; } if (String.IsNullOrEmpty(settings.JsonURL)) { changeVideoSourceText.Text = AerialGlobalVars.appleVideosURI; } else { changeVideoSourceText.Text = settings.JsonURL; } changeCacheLocationButton.Enabled = settings.CacheVideos; ShowSpace(); PopulateChosenVideoGroup(); InitPlayer(); }
/// <summary> /// Load display text from the Registry /// </summary> private void LoadSettings() { var settings = new RegSettings(); chkDifferentMonitorMovies.Checked = settings.DifferentMoviesOnDual; chkUseTimeOfDay.Checked = settings.UseTimeOfDay; chkMultiscreenDisabled.Checked = settings.MultiscreenDisabled; chkCacheVideos.Checked = settings.CacheVideos; if (settings.CacheLocation == null || settings.CacheLocation == "") { txtCacheFolderPath.Text = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Aerial").ToString(); } else { txtCacheFolderPath.Text = settings.CacheLocation; } changeCacheLocationButton.Enabled = settings.CacheVideos; ShowSpace(); // while developing tabs.TabPages.Remove(tabAbout); grpChosenVideos.Hide(); }
public List <Asset> GetMovies() { var settings = new RegSettings(); var aerialUrl = "http://a1.phobos.apple.com/us/r1000/000/Features/atv/AutumnResources/videos/entries.json"; WebClient webClient = new WebClient(); string ee = webClient.DownloadString(aerialUrl); var urls = new JavaScriptSerializer().Deserialize <IdAsset[]>(ee); var time = (DateTime.Now.Hour < 6 || DateTime.Now.Hour > 19) ? "night" : "day"; var ran = new Random(); var links = urls.SelectMany(s => s.assets) .OrderBy(t => ran.Next()) .OrderByDescending(t => settings.UseTimeOfDay && t.timeOfDay == time) .ToList(); if (settings.DifferentMoviesOnDual) { return(links); } if (cachedPlaylist == null) { cachedPlaylist = links; } return(cachedPlaylist); }
private void SetNextVideo(bool force) { Trace.WriteLine("SetNextVideo()"); var cacheEnabled = new RegSettings().CacheVideos; if (showVideo) { //If movies is null, when we tried to parse the JSON doc with the movies it //failed or it was empty. if (Movies == null || Movies.Count == 0) { showVideo = false; MessageBox.Show("Error finding the video locations. Please confirm that the video source " + "is a valid JSON document and can be reached. Resart after fixing the video source"); return; } if (force || repeated >= Movies[currentVideoIndex].repeat) { currentVideoIndex = selector.next(Movies.Count); repeated = 1; } else { repeated++; } //MessageBox.Show($"{Movies[currentVideoIndex].url}\n{Movies[currentVideoIndex].repeat}\n{repeated}\n{force}"); string url = Movies[currentVideoIndex].url; if (Caching.IsHit(url)) { Debug.WriteLine("Caching is hit"); player.Play(new Uri(Caching.Get(url))); } else { Debug.WriteLine("Caching is not hit"); player.Play(url); if (cacheEnabled && shouldCache && !previewMode && !Caching.IsCaching(url)) { Caching.StartDelayedCache(url); } } if (Movies[currentVideoIndex].shouldRepeatFrom && repeated != 1) { //MessageBox.Show($"Current time: {player.Time}, setting to {Movies[currentVideoIndex].repeatFrom}"); player.Time = Movies[currentVideoIndex].repeatFrom; } //currentVideoIndex++; //if (currentVideoIndex >= Movies.Count) // currentVideoIndex = 0; } }
private void SetNextVideo() { Trace.WriteLine("SetNextVideo()"); var cacheVideos = new RegSettings().CacheVideos; if (ShowVideo) { string filename = Path.GetFileName(Movies[currentVideoIndex].url); if (File.Exists(Path.Combine(cacheFolder, filename))) { player.URL = Path.Combine(cacheFolder, filename); } else { player.URL = Movies[currentVideoIndex].url; if (cacheVideos && !File.Exists(Path.Combine(tempFolder, filename))) { using (WebClient client = new WebClient()) { client.DownloadFileCompleted += new AsyncCompletedEventHandler(OnDownloadFileComplete); client.DownloadFileAsync(new System.Uri(Movies[currentVideoIndex].url), Path.Combine(tempFolder, filename), filename); } } } currentVideoIndex++; if (currentVideoIndex >= Movies.Count) { currentVideoIndex = 0; } } }
/// <summary> /// Load display text from the Registry /// </summary> private void LoadSettings() { var settings = new RegSettings(); chkDifferentMonitorMovies.Checked = settings.DifferentMoviesOnDual; chkUseTimeOfDay.Checked = settings.UseTimeOfDay; chkMultiscreenDisabled.Checked = settings.MultiscreenDisabled; chkCacheVideos.Checked = settings.CacheVideos; if (settings.CacheLocation == null) { txtCacheFolderPath.Text = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Aerial").ToString(); } else { txtCacheFolderPath.Text = settings.CacheLocation; } if (settings.CacheVideos) { changeCacheLocationButton.Enabled = true; } else { changeCacheLocationButton.Enabled = false; } }
/// <summary> /// Load display text from the Registry /// </summary> private void LoadSettings() { var settings = new RegSettings(); chkDifferentMonitorMovies.Checked = settings.DifferentMoviesOnDual; chkUseTimeOfDay.Checked = settings.UseTimeOfDay; chkMultiscreenDisabled.Checked = settings.MultiscreenDisabled; }
/// <summary> /// Save text into the Registry. /// </summary> private void SaveSettings() { var settings = new RegSettings(); settings.DifferentMoviesOnDual = chkDifferentMonitorMovies.Checked; settings.UseTimeOfDay = chkUseTimeOfDay.Checked; settings.SaveSettings(); }
private void SetNextVideo() { Trace.WriteLine("SetNextVideo()"); var cacheEnabled = new RegSettings().CacheVideos; if (showVideo) { //If movies is null, when we tried to parse the JSON doc with the movies it //failed or it was empty. if (Movies == null || Movies.Count == 0) { showVideo = false; MessageBox.Show("Error finding the video locations. Please confirm that the video source " + "is a valid JSON document and can be reached. Resart after fixing the video source"); return; } DetermineCurrentVideo(); string url = Movies[currentVideoIndex].url; if (Caching.IsHit(url)) { player.URL = Caching.Get(url); } else { player.URL = url; if (cacheEnabled && shouldCache && !previewMode && !Caching.IsCaching(url)) { Caching.StartDelayedCache(url); } } // start video from X //the currentPosition property gets or sets the current position in the media item in seconds from the beginning. //player.Ctlcontrols.currentPosition = 60; //var diff = fakeNow - fileStart; var diff = new TimeSpan(Now().Hour, Now().Minute, Now().Second) - fileStartTime; player.Ctlcontrols.currentPosition = diff.TotalSeconds; //currentVideoIndex++; if ((currentVideoIndex + 1) >= Movies.Count) { //TODO: use DateTime to determine next video? //currentVideoIndex = 0; DetermineCurrentVideo(); } } }
/// <summary> /// Load display text from the Registry /// </summary> private void LoadSettings() { var settings = new RegSettings(); chkDifferentMonitorMovies.Checked = settings.DifferentMoviesOnDual; chkUseTimeOfDay.Checked = settings.UseTimeOfDay; chkMultiscreenDisabled.Checked = settings.MultiscreenDisabled; chkCacheVideos.Checked = settings.CacheVideos; chkSharedLocation.Checked = settings.SharedCache; tbSharedLocation.Text = settings.CacheDir; }
/// <summary> /// Save text into the Registry. /// </summary> private void SaveSettings() { var settings = new RegSettings(); settings.DifferentMoviesOnDual = chkDifferentMonitorMovies.Checked; settings.UseTimeOfDay = chkUseTimeOfDay.Checked; settings.MultiscreenDisabled = chkMultiscreenDisabled.Checked; settings.CacheVideos = chkCacheVideos.Checked; settings.SaveSettings(); }
public List <Asset> GetMovies() { var settings = new RegSettings(); var aerialUrl = "http://a1.phobos.apple.com/us/r1000/000/Features/atv/AutumnResources/videos/entries.json"; WebClient webClient = new WebClient(); string ee = webClient.DownloadString(aerialUrl); var urls = new JavaScriptSerializer().Deserialize <IdAsset[]>(ee); // fetch local files var downloadedFiles = new HashSet <string>(urls.SelectMany(s => s.assets).Select(a => a.url.Split('/').Last().ToLower())); var localAssets = new List <Asset>(); foreach (var f in new DirectoryInfo(settings.CacheDir).EnumerateFiles()) { var filename = Path.GetFileName(f.FullName).ToLower(); if (!downloadedFiles.Contains(filename)) { localAssets.Add(new Asset() { accessibilityLabel = filename, filename = f.FullName, timeOfDay = "any", type = "video", id = filename }); } } if (localAssets.Count > 0) { var newUrls = urls.ToList(); newUrls.Add(new IdAsset() { id = "local", assets = localAssets.ToArray() }); urls = newUrls.ToArray(); } var time = (DateTime.Now.Hour < 6 || DateTime.Now.Hour > 19) ? "night" : "day"; var ran = new Random(); var links = urls.SelectMany(s => s.assets) .OrderBy(t => ran.Next()) // .Where(t => t.filename != null) // uncomment to use only local files .OrderByDescending(t => settings.UseTimeOfDay && (t.timeOfDay == time || t.timeOfDay == "any")) .ToList(); if (settings.DifferentMoviesOnDual) { return(links); } if (cachedPlaylist == null) { cachedPlaylist = links; } return(cachedPlaylist); }
private void PopulateChosenVideoGroup() { var movies = AerialContext.GetAllMovies(); movies.Sort(); if (movies.Count == 0) { return; // error } AddHumanNumbers(movies); var selected = new RegSettings().ChosenMovies.Split(';').ToList(); tvChosen.BuildTree(movies, selected); }
/// <summary> /// Display the form on each of the computer's monitors. /// </summary> static void ShowScreenSaver() { int i = 0; var multiscreenDisabled = new RegSettings().MultiscreenDisabled; foreach (Screen screen in Screen.AllScreens) { ScreenSaverForm screensaver = new ScreenSaverForm(screen.Bounds); // disable video on multi-displays (3+) except the first if (Screen.AllScreens.Length > 2 && i != 0 && multiscreenDisabled) screensaver.ShowVideo = false; i++; screensaver.Show(); } }
/// <summary> /// Save text into the Registry. /// </summary> private void SaveSettings() { var settings = new RegSettings(); settings.DifferentMoviesOnDual = chkDifferentMonitorMovies.Checked; settings.UseTimeOfDay = chkUseTimeOfDay.Checked; settings.MultiscreenDisabled = chkMultiscreenDisabled.Checked; settings.CacheVideos = chkCacheVideos.Checked; string oldCacheDirectory = settings.CacheLocation; settings.CacheLocation = txtCacheFolderPath.Text; settings.SaveSettings(); Caching.UpdateCachePath(oldCacheDirectory, settings.CacheLocation); }
private void ScreenSaverForm_Load(object sender, EventArgs e) { if (!previewMode && !windowMode) { Cursor.Hide(); } LayoutPlayer(); var nextVideoTimer = new System.Windows.Forms.Timer(); nextVideoTimer.Tick += NextVideoTimer_Tick; nextVideoTimer.Interval = 1000; nextVideoTimer.Enabled = true; var cacheVideos = new RegSettings().CacheVideos; if (cacheVideos) { DirectoryInfo cacheDirectory = Directory.CreateDirectory(cacheFolder); DirectoryInfo tempDirectory = Directory.CreateDirectory(tempFolder); } if (ShowVideo) { Movies = new AerialContext().GetMovies(); #if DEBUG Movies = new List <Asset> { new Asset { url = @"http://blog.luxisinteractive.com/wp-content/uploads/2015/08/depth.mp4" }, new Asset { url = @"http://blog.luxisinteractive.com/wp-content/uploads/2015/08/animation.mp4" }, }; //this.player.URL = @"http://blog.luxisinteractive.com/wp-content/uploads/2015/08/depth.mp4"; #endif SetNextVideo(); } }
/// <summary> /// Display the form on each of the computer's monitors. /// </summary> static void ShowScreenSaver() { int i = 0; var multiscreenDisabled = new RegSettings().MultiscreenDisabled; foreach (Screen screen in Screen.AllScreens) { ScreenSaverForm screensaver = new ScreenSaverForm(screen.Bounds, i == 0); // disable video on multi-displays (3+) except the first if (Screen.AllScreens.Length > 2 && screen != Screen.PrimaryScreen && multiscreenDisabled) { screensaver.ShowVideo = false; } i++; screensaver.Show(); } }
/// <summary> /// Save text into the Registry. /// </summary> private void SaveSettings() { var settings = new RegSettings(); settings.MultiMonitorMode = (RegSettings.MultiMonitorModeEnum)cbMultiScreenMode.SelectedValue; settings.UseTimeOfDay = chkUseTimeOfDay.Checked; settings.CacheVideos = chkCacheVideos.Checked; string oldCacheDirectory = settings.CacheLocation; settings.CacheLocation = txtCacheFolderPath.Text; settings.JsonURL = changeVideoSourceText.Text; settings.ChosenMovies = tvChosen.ConcatChosenEntities(); settings.SaveSettings(); Caching.UpdateCachePath(oldCacheDirectory, settings.CacheLocation); }
public List<Asset> GetMovies() { var settings = new RegSettings(); var aerialUrl = "http://a1.phobos.apple.com/us/r1000/000/Features/atv/AutumnResources/videos/entries.json"; WebClient webClient = new WebClient(); string ee = webClient.DownloadString(aerialUrl); var urls = new JavaScriptSerializer().Deserialize<IdAsset[]>(ee); // fetch local files var downloadedFiles = new HashSet<string>(urls.SelectMany(s => s.assets).Select(a => a.url.Split('/').Last().ToLower())); var localAssets = new List<Asset>(); foreach (var f in new DirectoryInfo(settings.CacheDir).EnumerateFiles()) { var filename = Path.GetFileName(f.FullName).ToLower(); if (!downloadedFiles.Contains(filename)) { localAssets.Add(new Asset() { accessibilityLabel = filename, filename = f.FullName, timeOfDay = "any", type = "video", id = filename }); } } if (localAssets.Count > 0) { var newUrls = urls.ToList(); newUrls.Add(new IdAsset() { id = "local", assets = localAssets.ToArray() }); urls = newUrls.ToArray(); } var time = (DateTime.Now.Hour < 6 || DateTime.Now.Hour > 19) ? "night" : "day"; var ran = new Random(); var links = urls.SelectMany(s => s.assets) .OrderBy(t => ran.Next()) // .Where(t => t.filename != null) // uncomment to use only local files .OrderByDescending(t => settings.UseTimeOfDay && (t.timeOfDay == time || t.timeOfDay == "any")) .ToList(); if (settings.DifferentMoviesOnDual) return links; if (cachedPlaylist == null) cachedPlaylist = links; return cachedPlaylist; }
private void SetNextVideo() { Trace.WriteLine("SetNextVideo()"); var cacheEnabled = new RegSettings().CacheVideos; if (showVideo) { //If movies is null, when we tried to parse the JSON doc with the movies it //failed or it was empty. if (Movies == null || Movies.Count == 0) { showVideo = false; MessageBox.Show("Error finding the video locations. Please confirm that the video source " + "is a valid JSON document and can be reached. Resart after fixing the video source"); return; } string url = Movies[currentVideoIndex].url; if (Caching.IsHit(url)) { player.URL = Caching.Get(url); } else { player.URL = url; if (cacheEnabled && shouldCache && !previewMode && !Caching.IsCaching(url)) { Caching.StartDelayedCache(url); } } currentVideoIndex++; if (currentVideoIndex >= Movies.Count) { currentVideoIndex = 0; } } }
public List<Asset> GetMovies() { var settings = new RegSettings(); var aerialUrl = "http://a1.phobos.apple.com/us/r1000/000/Features/atv/AutumnResources/videos/entries.json"; WebClient webClient = new WebClient(); string ee = webClient.DownloadString(aerialUrl); var urls = new JavaScriptSerializer().Deserialize<IdAsset[]>(ee); var time = (DateTime.Now.Hour < 6 || DateTime.Now.Hour > 19) ? "night" : "day"; var ran = new Random(); var links = urls.SelectMany(s => s.assets) .OrderBy(t => ran.Next()) .OrderByDescending(t => settings.UseTimeOfDay && t.timeOfDay == time) .ToList(); if (settings.DifferentMoviesOnDual) return links; if (cachedPlaylist == null) cachedPlaylist = links; return cachedPlaylist; }
private void SetNextVideo() { Trace.WriteLine("SetNextVideo()"); var cacheEnabled = new RegSettings().CacheVideos; if (ShowVideo) { string url = Movies[currentVideoIndex].url; if (Caching.IsHit(url)) { player.URL = Caching.Get(url); } else { player.URL = url; if (cacheEnabled && shouldCache && !previewMode && !Caching.IsCaching(url)) { Caching.StartDelayedCache(url); } } currentVideoIndex++; if (currentVideoIndex >= Movies.Count) currentVideoIndex = 0; } }
private void SetNextVideo() { Trace.WriteLine("SetNextVideo()"); var cacheVideos = new RegSettings().CacheVideos; if (ShowVideo) { string tempFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Temp"); string filename = Path.GetFileName(Movies[currentVideoIndex].url); if (File.Exists(Path.Combine(cacheFolder, filename))) { player.URL = Path.Combine(cacheFolder, filename); } else { player.URL = Movies[currentVideoIndex].url; if (cacheVideos) { using (WebClient client = new WebClient()) { client.DownloadFileCompleted += new AsyncCompletedEventHandler(OnDownloadFileComplete); client.DownloadFileAsync(new System.Uri(Movies[currentVideoIndex].url), Path.Combine(tempFolder, filename), filename); } } } currentVideoIndex++; if (currentVideoIndex >= Movies.Count) currentVideoIndex = 0; } }