Exemplo n.º 1
0
 private void FileManagerCallback(MediaFileInformation currentPlayingFile, bool repeatState)
 {
     if (!FilesCollection.Last().Equals(FilesCollection.Current) || repeatState)
     {
         RequestNewFiles(FilesCollection.Next, callback: FileManagerCallback);
     }
 }
Exemplo n.º 2
0
 private void RequestNewFiles(
     MediaFileInformation file,
     object originalSource = null,
     FileManager <MediaFileInformation> .FileManagerCallback callback = null)
 {
     RequestNewFiles(file.AsEnumerable(), originalSource, callback);
 }
Exemplo n.º 3
0
        public static FileInformation DetectSubtitles(
            [NotNull] MediaFileInformation file,
            string preferedSubtitleLanguage)
        {
            if (file == null)
            {
                throw new ArgumentNullException(nameof(file));
            }

            var availableSubtitles =
                file.FileInfo.Directory.GetFiles($"*{Settings.SubtitleExtensionString}", SearchOption.AllDirectories);

            if (!string.IsNullOrEmpty(preferedSubtitleLanguage))
            {
                //en -> .en, bg -> .bg
                if (preferedSubtitleLanguage[0] != '.')
                {
                    preferedSubtitleLanguage = preferedSubtitleLanguage.Insert(0, ".");
                }

                var preferedLanguageSubtitle = availableSubtitles
                                               .Where(s => s.Name.Contains(
                                                          $"{preferedSubtitleLanguage}{Settings.SubtitleExtensionString}"))
                                               .FirstOrDefault(info => Path.GetFileNameWithoutExtension(info.Name) ==
                                                               $"{file.FileName}{preferedSubtitleLanguage}");

                if (preferedLanguageSubtitle != null)
                {
                    return(new FileInformation(preferedLanguageSubtitle.FullName));
                }
            }

            return(availableSubtitles.Where(subs => Path.GetFileNameWithoutExtension(subs.Name) == file.FileName)
                   .Select(subs => new FileInformation(subs.FullName)).FirstOrDefault());
        }
Exemplo n.º 4
0
 private void ChangePlayingFile(MediaFileInformation file, bool newFileState = true)
 {
     if (FilesCollection.Current != null)
     {
         FilesCollection.Current.IsPlaying = false;
     }
     FilesCollection.SetCurrent(FilesCollection.IndexOf(file));
     FilesCollection.Current.IsPlaying = newFileState;
 }
Exemplo n.º 5
0
 private void TryBegin(MediaFileInformation file)
 {
     if (Settings.DetectSubtitlesAutomatically)
     {
         var localSubs = SubtitleDetector.DetectSubtitles(file, Settings.PreferedSubtitleLanguage);
         if (localSubs != null)
         {
             Begin(localSubs, TimeSpan.Zero);
         }
     }
 }