Exemple #1
0
 private void LoadMedia(string filename)
 {
     FullScreenImage.Visibility = Visibility.Collapsed;
     FullScreenMedia.Visibility = Visibility.Visible;
     FullScreenMedia.Source     = new Uri(filename);
     FullScreenMedia.Play();
 }
Exemple #2
0
 private void MediaEnded(object sender, RoutedEventArgs e)
 {
     FullScreenMedia.Position = new TimeSpan(0);
     FullScreenMedia.Stop();
     FullScreenMedia.Source = null;
     NextMediaItem();
 }
Exemple #3
0
 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();
         }
     }
 }
Exemple #4
0
        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);
            }
        }
Exemple #5
0
        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);
            }
        }
Exemple #6
0
        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);
        }
Exemple #7
0
        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
                }
            }
        }
Exemple #8
0
        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
                }
            }
        }
Exemple #9
0
        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);
            }
        }
Exemple #10
0
        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
                }
            }
        }
Exemple #11
0
        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();
            }
        }
Exemple #12
0
        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;
            }
        }
Exemple #13
0
        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);
            }
        }