コード例 #1
0
        /// <summary>
        /// Determines whether this instance is a subset of passed <see cref="MediaTypeHeaderValue"/>.
        /// If the media type and media type parameters of this media type are all present
        /// and match those of <paramref name="otherMediaType"/> then it is a match even though
        /// <paramref name="otherMediaType"/> may have additional parameters.
        /// </summary>
        /// <param name="mediaType">The first media type.</param>
        /// <param name="otherMediaType">The second media type.</param>
        /// <returns><c>true</c> if this is a subset of <paramref name="otherMediaType"/>; false otherwise.</returns>
        public bool IsSubsetOf(MediaTypeHeaderValue otherMediaType)
        {
            if (otherMediaType == null)
            {
                return(false);
            }

            if (!MediaType.Equals(otherMediaType.MediaType, StringComparison.OrdinalIgnoreCase))
            {
                if (otherMediaType.MediaTypeRange != MediaTypeHeaderValueRange.AllMediaRange)
                {
                    return(false);
                }
            }
            else if (!MediaSubType.Equals(otherMediaType.MediaSubType, StringComparison.OrdinalIgnoreCase))
            {
                if (otherMediaType.MediaTypeRange != MediaTypeHeaderValueRange.SubtypeMediaRange)
                {
                    return(false);
                }
            }

            if (Parameters != null)
            {
                if (Parameters.Count != 0 &&
                    (otherMediaType.Parameters == null || otherMediaType.Parameters.Count == 0))
                {
                    return(false);
                }

                // So far we either have a full match or a subset match. Now check that all of
                // mediaType1's parameters are present and equal in mediatype2
                if (!MatchParameters(Parameters, otherMediaType.Parameters))
                {
                    return(false);
                }
            }

            return(true);
        }
コード例 #2
0
ファイル: AutoPlay.cs プロジェクト: nio22/MediaPortal-1
    private static void GetMediaTypeFromFiles(string strFolder)
    {
      if (string.IsNullOrEmpty(strFolder))
        return;

      try
      {
        ArrayList audioFiles = new ArrayList();
        ArrayList photoFiles = new ArrayList();
        ArrayList videoFiles = new ArrayList();
        mediaSubType = MediaSubType.FILES;

        string[] files = null;
        DirectoryInfo di = new DirectoryInfo(strFolder);
        if (di != null)
          files = di.GetFiles("*.*", SearchOption.AllDirectories).Select(a => a.FullName).ToArray();

        if (files != null && files.Length > 0)
        {
          //for (int i = files.Length - 1; i >= 0; i--)
          for (int i = 0; i < files.Length; i++)
          {
            if (Util.Utils.IsVideo(files[i]))
            {
              videoFiles.Add(files[i]);
            }
            else if (Util.Utils.IsAudio(files[i]))
            {
              audioFiles.Add(files[i]);
              if (Path.GetExtension(files[i]).ToLower() == ".cda")
                mediaSubType = MediaSubType.AUDIO_CD;
            }
            else if (Util.Utils.IsPicture(files[i]))
            {
              photoFiles.Add(files[i]);
            }
          }
        }

        mediaFiles.Clear();
        if (videoFiles.Count > 0)
        {
          mediaType = MediaType.VIDEO;
          mediaFiles = videoFiles;
        }
        else if (audioFiles.Count > 0)
        {
          mediaType = MediaType.AUDIO;
          mediaFiles = audioFiles;
        }
        else if (photoFiles.Count > 0)
        {
          mediaType = MediaType.PHOTO;
          mediaFiles = photoFiles;
        }
      }
      catch (Exception) {}
    }
コード例 #3
0
ファイル: AutoPlay.cs プロジェクト: nio22/MediaPortal-1
    /// <summary>
    /// Detects the media type of the CD/DVD inserted into a drive.
    /// </summary>
    /// <param name="driveLetter">The drive that contains the data.</param>
    private static void DetectMediaType(string strDrive)
    {
      mediaType = MediaType.UNKNOWN;
      mediaSubType = MediaSubType.UNKNOWN;

      if (string.IsNullOrEmpty(strDrive))
        return;

      try
      {
        if (Directory.Exists(Path.Combine(strDrive, "VIDEO_TS")))
        {
          mediaType = MediaType.VIDEO;
          mediaSubType = MediaSubType.DVD;
          return;
        }

        if (Directory.Exists(Path.Combine(strDrive, "BDMV")))
        {
          mediaType = MediaType.VIDEO;
          mediaSubType = MediaSubType.BLURAY;
          return;
        }

        if (Directory.Exists(Path.Combine(strDrive, "HVDVD_TS")))
        {
          mediaType = MediaType.VIDEO;
          mediaSubType = MediaSubType.HDDVD;
          return;
        }

        if (Directory.Exists(Path.Combine(strDrive, "MPEGAV")))
        {
          mediaType = MediaType.VIDEO;
          mediaSubType = MediaSubType.VCD;
          return;
        }

        GetMediaTypeFromFiles(Path.GetPathRoot(strDrive));
      }
      catch (Exception) {}
    }