////////////////////////////////////////////////////// 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(); }
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"); }
/// <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)); }