//////////////////////////////////////////////////////
        void TestDirectory()
        {
            int           hr;
            int           pulDActualSize;
            StringBuilder sb  = new StringBuilder(255, 255);
            StringBuilder sb2 = new StringBuilder(255, 255);

            hr = m_imc.Stop();
            hr = m_idc2.SetOption(DvdOptionFlag.ResetOnStop, true);
            DsError.ThrowExceptionForHR(hr);

            hr = m_idc2.SetOption(DvdOptionFlag.NotifyParentalLevelChange, true);
            DsError.ThrowExceptionForHR(hr);

            hr = m_idi2.GetDVDDirectory(sb, 255, out pulDActualSize);
            DsError.ThrowExceptionForHR(hr);

            hr = m_idc2.SetDVDDirectory(null);
            DsError.ThrowExceptionForHR(hr);

            Thread.Sleep(500);

            hr = m_imc.Stop();
            DsError.ThrowExceptionForHR(hr);

            // Map to a different drive.  One that has multiple streams, angles, etc
            hr = m_idc2.SetDVDDirectory(OtherDisk);
            DsError.ThrowExceptionForHR(hr);

            hr = m_idi2.GetDVDDirectory(sb2, 255, out pulDActualSize);
            DsError.ThrowExceptionForHR(hr);

            StartGraph();
        }
Exemple #2
0
        void TestDiskInfo()
        {
            int         hr;
            int         pulNumOfVolumes;
            int         pulVolume;
            DvdDiscSide pSide;
            int         pulNumOfTitles;
            int         pulDActualSize;

            hr = m_idi2.GetDVDVolumeInfo(out pulNumOfVolumes, out pulVolume, out pSide, out pulNumOfTitles);
            DsError.ThrowExceptionForHR(hr);

            Debug.Assert(pulNumOfTitles == 2, "TestDiskInfo");

            StringBuilder sb = new StringBuilder(255, 255);

            hr = m_idi2.GetDVDDirectory(sb, sb.Capacity, out pulDActualSize);
            DsError.ThrowExceptionForHR(hr);

            Debug.Assert(sb.ToString() == MyDisk, "TestDiskInfo2");

            long l1;

            hr = m_idi2.GetDiscID(sb.ToString(), out l1);
            DsError.ThrowExceptionForHR(hr);

            Debug.Assert(l1 == 6633412489990086489, "TestDiskInfo3");

            DvdMenuAttributes pMATR = new DvdMenuAttributes();

            hr = m_idi2.GetVMGAttributes(out pMATR);
            DsError.ThrowExceptionForHR(hr);

            Debug.Assert(pMATR.VideoAttributes.sourceResolutionX == 720, "TestDiskInfo4");
        }
Exemple #3
0
        /// <summary>
        /// Gets a unique file name for the current DVD which contains the disc's ID.
        /// </summary>
        protected string GetResumeFilename()
        {
            long discId = 0;

            IBaseFilter dvdbasefilter = (IBaseFilter) new DVDNavigator();
            IDvdInfo2   dvdInfo       = dvdbasefilter as IDvdInfo2;

            StringBuilder path = new StringBuilder(1024);

            if (dvdInfo != null)
            {
                int actualSize;
                dvdInfo.GetDVDDirectory(path, 1024, out actualSize);
                dvdInfo.GetDiscID(path.ToString(), out discId);
            }

            FilterGraphTools.TryRelease(ref dvdbasefilter);
            FilterGraphTools.TryRelease(ref _dvdInfo);

            return(String.Format(@"D_{0:X}.dat", discId));
        }