private void LoadMedia(string filename) { FullScreenImage.Visibility = Visibility.Collapsed; FullScreenMedia.Visibility = Visibility.Visible; FullScreenMedia.Source = new Uri(filename); FullScreenMedia.Play(); }
private void MediaEnded(object sender, RoutedEventArgs e) { FullScreenMedia.Position = new TimeSpan(0); FullScreenMedia.Stop(); FullScreenMedia.Source = null; NextMediaItem(); }
private void Pause() { if (FullScreenImage.Visibility == Visibility.Visible) { if (imageTimer.IsEnabled) { imageTimer.Stop(); } else { HideError(); imageTimer.Start(); } } else { if (GetMediaState(FullScreenMedia) == MediaState.Play) { FullScreenMedia.Pause(); } else { HideError(); FullScreenMedia.Play(); } } }
private void NextMediaItem() { FullScreenMedia.Stop(); FullScreenMedia.Source = null; // FIXED Overlay display info is correct on video until you use forward/back arrow keys to traverse to images. imageRotationAngle = 0; switch (algorithm) { case PreferenceManager.ALGORITHM_SEQUENTIAL: incrementCurrentItem(); Console.WriteLine("NextMediaItem(): 0 isLoadingFiles = " + isLoadingFiles + ", currentItem = " + currentItem + ", mediaFiles.Count = " + mediaFiles.Count); break; case PreferenceManager.ALGORITHM_RANDOM_NO_REPEAT: incrementCurrentItem(); if (isLoadingFiles) { // Sleep to buffer some images to start Console.WriteLine("NextMediaItem(): 1 isLoadingFiles = " + isLoadingFiles + ", currentItem = " + currentItem + ", mediaFiles.Count = " + mediaFiles.Count + ", algorithm = " + algorithm); if (currentItem == 0) { Thread.Sleep(1000); } currentItem = new Random().Next(mediaFiles.Count); Console.WriteLine("NextMediaItem(): 2 isLoadingFiles = " + isLoadingFiles + ", currentItem = " + currentItem + ", mediaFiles.Count = " + mediaFiles.Count); // Maintain previous media list while loading/randomizing addLastMedia(); } Console.WriteLine("NextMediaItem(): 3 isLoadingFiles = " + isLoadingFiles + ", currentItem = " + currentItem + ", mediaFiles.Count = " + mediaFiles.Count); break; case PreferenceManager.ALGORITHM_RANDOM: currentItem = new Random().Next(mediaFiles.Count); addLastMedia(); break; } if (mediaFiles.Count == 0) { ShowError("There are no files to show!"); FullScreenImage.Source = null; FullScreenMedia.Stop(); FullScreenMedia.Source = null; return; } FileInfo fi = new FileInfo(mediaFiles[currentItem]); if (acceptedExtensionsImages.Contains(fi.Extension.ToLower())) // check if it image or video { LoadImage(fi.FullName); } else { LoadMedia(fi.FullName); } }
private void PrevMediaItem() { FullScreenMedia.Stop(); FullScreenMedia.Source = null; // FIXED Overlay display info is correct on video until you use forward/back arrow keys to traverse to images. imageRotationAngle = 0; switch (algorithm) { case PreferenceManager.ALGORITHM_SEQUENTIAL: case PreferenceManager.ALGORITHM_RANDOM_NO_REPEAT: currentItem--; if (currentItem < 0) { if (isLoadingFiles) { currentItem = 0; } else { currentItem = mediaFiles.Count - 1; } } break; case PreferenceManager.ALGORITHM_RANDOM: if (lastMedia.Count >= 2) { if (currentLastMediaItem > 0) { currentLastMediaItem--; } currentItem = mediaFiles.IndexOf(lastMedia[currentLastMediaItem]); //lastMedia.RemoveAt(lastMedia.Count - 1); } else { imageTimer.Start(); } break; } if (mediaFiles.Count == 0) { ShowError("There are no files to show!"); FullScreenImage.Source = null; FullScreenMedia.Stop(); FullScreenMedia.Source = null; return; } FileInfo fi = new FileInfo(mediaFiles[currentItem]); if (acceptedExtensionsImages.Contains(fi.Extension.ToLower())) // check if it image or video { LoadImage(fi.FullName); } else { LoadMedia(fi.FullName); } }
private void PrevMediaItem() { FullScreenMedia.Stop(); FullScreenMedia.Source = null; // FIXED Overlay display info is correct on video until you use forward/back arrow keys to traverse to images. imageRotationAngle = 0; Console.WriteLine("PrevMediaItem(): 1 isLoadingFiles = " + isLoadingFiles + ", lastMedia.Count = " + lastMedia.Count + ", currentItem = " + currentItem + ", mediaFiles.Count = " + mediaFiles.Count); switch (algorithm) { case PreferenceManager.ALGORITHM_SEQUENTIAL: decrementCurrentItem(); break; case PreferenceManager.ALGORITHM_RANDOM_NO_REPEAT: if (isLoadingFiles) { getLastMedia(); } else { decrementCurrentItem(); } break; case PreferenceManager.ALGORITHM_RANDOM: getLastMedia(); break; } if (mediaFiles.Count == 0) { ShowError("There are no files to show!"); FullScreenImage.Source = null; FullScreenMedia.Stop(); FullScreenMedia.Source = null; return; } FileInfo fi = new FileInfo(mediaFiles[currentItem]); if (acceptedExtensionsImages.Contains(fi.Extension.ToLower())) // check if it image or video { LoadImage(fi.FullName); } else { LoadMedia(fi.FullName); } Console.WriteLine("PrevMediaItem(): 2 isLoadingFiles = " + isLoadingFiles + ", lastMedia.Count = " + lastMedia.Count + ", currentItem = " + currentItem + ", mediaFiles.Count = " + mediaFiles.Count); }
private void PromtDeleteCurrentMedia() { var dial = new PromptDialog("Delete file?", " Type yes or ok if you want to delete " + mediaFiles[currentItem] + " file", "yes,ok"); if (dial.ShowDialog() == true) { String fileToDelete = mediaFiles[currentItem]; // remove filename from list so we don`t use it again if (algorithm == PreferenceManager.ALGORITHM_RANDOM) { if (lastMedia.IndexOf(fileToDelete) >= currentLastMediaItem) { currentLastMediaItem--; } lastMedia.Remove(fileToDelete); } mediaFiles.RemoveAt(currentItem); PrevMediaItem(); try { File.Delete(fileToDelete); } catch { Pause(); //pause screensaver MessageBox.Show(this, "Can not delete " + fileToDelete + " ! Please check it and delete manualy!", "Can not delete file!", MessageBoxButton.OK, MessageBoxImage.Error); Pause(); //unpause } File.AppendAllText(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "PhotoVideoScreensaver_deletedFiles.log"), DateTime.Now + ": " + fileToDelete + Environment.NewLine); //you can add here anything you want. } else { if (FullScreenImage.Visibility == Visibility.Visible) { imageTimer.Start(); // start timer because we stoped it on Delete key press } if (FullScreenMedia.Visibility == Visibility.Visible) { FullScreenMedia.Play(); // start again because we paused it on Delete key press } } }
private void PromtDeleteCurrentMedia() { var dial = new PromptDialog("Delete file?", " Type yes or ok if you want to delete " + mediaFiles[currentItem] + " file", "yes,ok"); /*if ( * MessageBox.Show(this, "You want to delete " + mediaFiles[currentItem] + " file?", "Delete file?", * MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)*/ if (dial.ShowDialog() == true) { String fileToDelete = mediaFiles[currentItem]; // remove filename from list so we don`t use it again if (algorithm == PreferenceManager.ALGORITHM_RANDOM) { lastMedia.Remove(fileToDelete); } mediaFiles.RemoveAt(currentItem); PrevMediaItem(); try { File.Delete(fileToDelete); } catch { Pause(); //pause screensaver MessageBox.Show(this, "Can not delete " + fileToDelete + " ! Please check it and delete manualy!", "Can not delete file!", MessageBoxButton.OK, MessageBoxImage.Error); Pause(); //unpause } File.AppendAllText("deletedFiles.log", fileToDelete + Environment.NewLine); //you can add here anything you want. } else { if (FullScreenImage.Visibility == Visibility.Visible) { imageTimer.Start(); // start timer because we stoped it on Delete key press } if (FullScreenMedia.Visibility == Visibility.Visible) { FullScreenMedia.Play(); // start again because we paused it on Delete key press } } }
private void NextMediaItem() { FullScreenMedia.Stop(); FullScreenMedia.Source = null; // FIXED Overlay display info is correct on video until you use forward/back arrow keys to traverse to images. imageRotationAngle = 0; switch (algorithm) { case PreferenceManager.ALGORITHM_SEQUENTIAL: case PreferenceManager.ALGORITHM_RANDOM_NO_REPEAT: currentItem++; if (currentItem >= mediaFiles.Count) { currentItem = 0; } break; case PreferenceManager.ALGORITHM_RANDOM: currentItem = new Random().Next(mediaFiles.Count); lastMedia.Add(mediaFiles[currentItem]); if (lastMedia.Count > 100) { lastMedia.RemoveAt(0); } break; } if (mediaFiles.Count == 0) { ShowError("There are no files to show!"); FullScreenImage.Source = null; FullScreenMedia.Stop(); FullScreenMedia.Source = null; return; } FileInfo fi = new FileInfo(mediaFiles[currentItem]); if (acceptedExtensionsImages.Contains(fi.Extension.ToLower())) // check if it image or video { LoadImage(fi.FullName); } else { LoadMedia(fi.FullName); } }
private void PromtDeleteCurrentMedia() { if ( MessageBox.Show(this, "You want to delete " + mediaFiles[currentItem] + " file?", "Delete file?", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) { String fileToDelete = mediaFiles[currentItem]; // remove filename from list so we don`t use it again if (algorithm == PreferenceManager.ALGORITHM_RANDOM) { lastMedia.Remove(fileToDelete); } mediaFiles.RemoveAt(currentItem); PrevMediaItem(); try { File.Delete(fileToDelete); } catch { Pause(); //pause screensaver MessageBox.Show(this, "Can not delete " + fileToDelete + " ! Please check it and delete manualy!", "Can not delete file!", MessageBoxButton.OK, MessageBoxImage.Error); Pause(); //unpause } } else { if (FullScreenImage.Visibility == Visibility.Visible) { imageTimer.Start(); // start timer because we stoped it on Delete key press } if (FullScreenMedia.Visibility == Visibility.Visible) { FullScreenMedia.Play(); // start again because we paused it on Delete key press } } }
private void MediaEnded(object sender, RoutedEventArgs e) { String userName = Environment.UserName; try { File.AppendAllText(@"C:\Users\" + userName + @"\Downloads\logfile.log", $"[{DateTime.Now.ToString()}] {"Entering MediaEnded\n"}"); FullScreenMedia.Position = new TimeSpan(0); FullScreenMedia.Stop(); FullScreenMedia.Source = null; NextMediaItem(); File.AppendAllText(@"C:\Users\" + userName + @"\Downloads\logfile.log", $"[{DateTime.Now.ToString()}] {"Exiting MediaEnded\n"}"); } catch (Exception ex) { File.AppendAllText(@"C:\Users\" + userName + @"\Downloads\logfile.log", $"[{DateTime.Now.ToString()}] {ex.ToString()+"\n"}"); } finally { NextMediaItem(); } }
private void ScrKeyDown(object sender, KeyEventArgs e) { switch (e.Key) { case Key.Up: case Key.VolumeUp: volume += 0.1; break; case Key.Down: case Key.VolumeDown: volume -= 0.1; break; case Key.VolumeMute: case Key.D0: volume = 0; break; case Key.Right: imageTimer.Stop(); NextMediaItem(); break; case Key.Left: imageTimer.Stop(); PrevMediaItem(); break; case Key.P: Pause(); break; case Key.Delete: imageTimer.Stop(); FullScreenMedia.Pause(); PromtDeleteCurrentMedia(); break; case Key.I: Overlay.Visibility = Overlay.Visibility == Visibility.Visible ? Visibility.Collapsed : Visibility.Visible; break; case Key.H: case Key.OemQuestion: ShowUsage(); break; case Key.R: FileInfo fi = new FileInfo(mediaFiles[currentItem]); if (acceptedExtensionsImages.Contains(fi.Extension.ToLower())) // Only rotate images { RotateImage(); } break; case Key.S: ShowInFolder(); break; default: EndFullScreensaver(); break; } }
private void NextMediaItem() { FullScreenMedia.Stop(); FullScreenMedia.Source = null; // FIXED Overlay display info is correct on video until you use forward/back arrow keys to traverse to images. imageRotationAngle = 0; if (isLoadingFiles) { if ((currentItem + 1) >= mediaFiles.Count || mediaFiles.Count == 0) // first condition is for ALGORITHM_SEQUENTIAL and ALGORITHM_RANDOM_NO_REPEAT , second is for ALGORITHM_RANDOM { ShowError("Wait untill more files loaded"); infoShowingTimer.Start(); Application.Current.Dispatcher.Invoke(DispatcherPriority.Background, new Action(delegate { })); do { Thread.Sleep(100); } while (isLoadingFiles && currentItem >= mediaFiles.Count); } } switch (algorithm) { case PreferenceManager.ALGORITHM_SEQUENTIAL: case PreferenceManager.ALGORITHM_RANDOM_NO_REPEAT: sleepAtStart(); currentItem++; if (currentItem >= mediaFiles.Count) { currentItem = 0; } break; case PreferenceManager.ALGORITHM_RANDOM: sleepAtStart(); if (currentLastMediaItem < (lastMedia.Count - 1)) { currentLastMediaItem++; currentItem = mediaFiles.IndexOf(lastMedia[currentLastMediaItem]); } else { currentItem = new Random().Next(mediaFiles.Count - 1); lastMedia.Add(mediaFiles[currentItem]); if (lastMedia.Count > 100) { lastMedia.RemoveAt(0); } currentLastMediaItem = lastMedia.Count - 1; } break; } if (mediaFiles.Count == 0) { ShowError("There are no files to show!"); FullScreenImage.Source = null; FullScreenMedia.Stop(); FullScreenMedia.Source = null; return; } FileInfo fi = new FileInfo(mediaFiles[currentItem]); if (acceptedExtensionsImages.Contains(fi.Extension.ToLower())) // check if it image or video { LoadImage(fi.FullName); } else { LoadMedia(fi.FullName); } }