📄 dvdif.cs
字号:
}
/// <summary>
/// From DVD_HMSF_TIMECODE
/// </summary>
[StructLayout(LayoutKind.Sequential, Pack=1)]
public class DvdHMSFTimeCode
{
public byte bHours;
public byte bMinutes;
public byte bSeconds;
public byte bFrames;
}
/// <summary>
/// From DVD_PLAYBACK_LOCATION2
/// </summary>
[StructLayout(LayoutKind.Sequential, Pack=1)]
public struct DvdPlaybackLocation2
{
public int TitleNum;
public int ChapterNum;
public DvdHMSFTimeCode TimeCode;
public int TimeCodeFlags;
}
/// <summary>
/// From DVD_AudioAttributes
/// </summary>
[StructLayout(LayoutKind.Sequential)]
public struct DvdAudioAttributes
{
public DvdAudioAppMode AppMode;
public byte AppModeData;
public DvdAudioFormat AudioFormat;
public int Language;
public DvdAudioLangExt LanguageExtension;
[MarshalAs(UnmanagedType.Bool)] public bool fHasMultichannelInfo;
public int dwFrequency;
public byte bQuantization;
public byte bNumberOfChannels;
public int dwReserved1;
public int dwReserved2;
}
/// <summary>
/// From DVD_MUA_MixingInfo
/// </summary>
[StructLayout(LayoutKind.Sequential)]
public struct DvdMUAMixingInfo
{
[MarshalAs(UnmanagedType.Bool)] public bool fMixTo0;
[MarshalAs(UnmanagedType.Bool)] public bool fMixTo1;
[MarshalAs(UnmanagedType.Bool)] public bool fMix0InPhase;
[MarshalAs(UnmanagedType.Bool)] public bool fMix1InPhase;
public int dwSpeakerPosition;
}
/// <summary>
/// From DVD_MUA_Coeff
/// </summary>
[StructLayout(LayoutKind.Sequential)]
public struct DvdMUACoeff
{
public double log2_alpha;
public double log2_beta;
}
/// <summary>
/// From DVD_MultichannelAudioAttributes
/// </summary>
[StructLayout(LayoutKind.Sequential)]
public struct DvdMultichannelAudioAttributes
{
[MarshalAs(UnmanagedType.ByValArray, ArraySubType=UnmanagedType.Struct, SizeConst=8)] public DvdMUAMixingInfo[] Info;
[MarshalAs(UnmanagedType.ByValArray, ArraySubType=UnmanagedType.Struct, SizeConst=8)] public DvdMUACoeff[] Coeff;
}
/// <summary>
/// From DVD_KaraokeAttributes
/// </summary>
[StructLayout(LayoutKind.Sequential, Pack=1, Size=32)]
public class DvdKaraokeAttributes
{
public byte bVersion;
public bool fMasterOfCeremoniesInGuideVocal1;
public bool fDuet;
public DvdKaraokeAssignment ChannelAssignment;
[MarshalAs(UnmanagedType.ByValArray, ArraySubType=UnmanagedType.I2, SizeConst=8)] public DvdKaraokeContents[] wChannelContents;
}
/// <summary>
/// From DVD_VideoAttributes
/// </summary>
[StructLayout(LayoutKind.Sequential)]
public struct DvdVideoAttributes
{
[MarshalAs(UnmanagedType.Bool)] public bool panscanPermitted;
[MarshalAs(UnmanagedType.Bool)] public bool letterboxPermitted;
public int aspectX;
public int aspectY;
public int frameRate;
public int frameHeight;
public DvdVideoCompression compression;
[MarshalAs(UnmanagedType.Bool)] public bool line21Field1InGOP;
[MarshalAs(UnmanagedType.Bool)] public bool line21Field2InGOP;
public int sourceResolutionX;
public int sourceResolutionY;
[MarshalAs(UnmanagedType.Bool)] public bool isSourceLetterboxed;
[MarshalAs(UnmanagedType.Bool)] public bool isFilmMode;
}
/// <summary>
/// From DVD_SubpictureAttributes
/// </summary>
[StructLayout(LayoutKind.Sequential)]
public struct DvdSubpictureAttributes
{
public DvdSubPictureType Type;
public DvdSubPictureCoding CodingMode;
public int Language;
public DvdSubPictureLangExt LanguageExtension;
}
/// <summary>
/// From DVD_TitleAttributes
/// </summary>
[StructLayout(LayoutKind.Sequential)]
public class DvdTitleAttributes
{
public DvdTitleAppMode AppMode;
public DvdVideoAttributes VideoAttributes;
public int ulNumberOfAudioStreams;
[MarshalAs(UnmanagedType.ByValArray, ArraySubType=UnmanagedType.Struct, SizeConst=8)] public DvdAudioAttributes[] AudioAttributes;
[MarshalAs(UnmanagedType.ByValArray, ArraySubType=UnmanagedType.Struct, SizeConst=8)] public DvdMultichannelAudioAttributes[] MultichannelAudioAttributes;
public int ulNumberOfSubpictureStreams;
[MarshalAs(UnmanagedType.ByValArray, ArraySubType=UnmanagedType.Struct, SizeConst=32)] public DvdSubpictureAttributes[] SubpictureAttributes;
}
/// <summary>
/// From DVD_MenuAttributes
/// </summary>
[StructLayout(LayoutKind.Sequential)]
public struct DvdMenuAttributes
{
[MarshalAs(UnmanagedType.ByValArray, ArraySubType=UnmanagedType.Bool, SizeConst=8)] public bool[] fCompatibleRegion;
public DvdVideoAttributes VideoAttributes;
[MarshalAs(UnmanagedType.Bool)] public bool fAudioPresent;
public DvdAudioAttributes AudioAttributes;
[MarshalAs(UnmanagedType.Bool)] public bool fSubpicturePresent;
public DvdSubpictureAttributes SubpictureAttributes;
}
/// <summary>
/// From DVD_DECODER_CAPS
/// </summary>
[StructLayout(LayoutKind.Sequential)]
public struct DvdDecoderCaps
{
public int dwSize;
public DvdAudioCaps dwAudioCaps;
public double dFwdMaxRateVideo;
public double dFwdMaxRateAudio;
public double dFwdMaxRateSP;
public double dBwdMaxRateVideo;
public double dBwdMaxRateAudio;
public double dBwdMaxRateSP;
public int dwRes1;
public int dwRes2;
public int dwRes3;
public int dwRes4;
}
/// <summary>
/// From AM_DVD_RENDERSTATUS
/// </summary>
[StructLayout(LayoutKind.Sequential)]
public struct AMDvdRenderStatus
{
public int hrVPEStatus;
[MarshalAs(UnmanagedType.Bool)] public bool bDvdVolInvalid;
[MarshalAs(UnmanagedType.Bool)] public bool bDvdVolUnknown;
[MarshalAs(UnmanagedType.Bool)] public bool bNoLine21In;
[MarshalAs(UnmanagedType.Bool)] public bool bNoLine21Out;
public int iNumStreams;
public int iNumStreamsFailed;
public AMDvdStreamFlags dwFailedStreamsFlag;
}
#endregion
#region Interfaces
#if ALLOW_UNTESTED_INTERFACES
[ComImport,
Guid("A70EFE61-E2A3-11d0-A9BE-00AA0061BE93"),
Obsolete("The IDvdControl interface is deprecated. Use IDvdControl2 instead.", false),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IDvdControl
{
[PreserveSig]
int TitlePlay([In] int ulTitle);
[PreserveSig]
int ChapterPlay(
[In] int ulTitle,
[In] int ulChapter
);
[PreserveSig]
int TimePlay(
[In] int ulTitle,
[In] int bcdTime
);
[PreserveSig]
int StopForResume();
[PreserveSig]
int GoUp();
[PreserveSig]
int TimeSearch([In] int bcdTime);
[PreserveSig]
int ChapterSearch([In] int ulChapter);
[PreserveSig]
int PrevPGSearch();
[PreserveSig]
int TopPGSearch();
[PreserveSig]
int NextPGSearch();
[PreserveSig]
int ForwardScan([In] double dwSpeed);
[PreserveSig]
int BackwardScan([In] double dwSpeed);
[PreserveSig]
int MenuCall([In] DvdMenuId MenuID);
[PreserveSig]
int Resume();
[PreserveSig]
int UpperButtonSelect();
[PreserveSig]
int LowerButtonSelect();
[PreserveSig]
int LeftButtonSelect();
[PreserveSig]
int RightButtonSelect();
[PreserveSig]
int ButtonActivate();
[PreserveSig]
int ButtonSelectAndActivate([In] int ulButton);
[PreserveSig]
int StillOff();
[PreserveSig]
int PauseOn();
[PreserveSig]
int PauseOff();
[PreserveSig]
int MenuLanguageSelect([In] int Language);
[PreserveSig]
int AudioStreamChange([In] int ulAudio);
[PreserveSig]
int SubpictureStreamChange(
[In] int ulSubPicture,
[In, MarshalAs(UnmanagedType.Bool)] bool bDisplay
);
[PreserveSig]
int AngleChange([In] int ulAngle);
[PreserveSig]
int ParentalLevelSelect([In] int ulParentalLevel);
[PreserveSig]
int ParentalCountrySelect([In] short wCountry);
[PreserveSig]
int KaraokeAudioPresentationModeChange([In] int ulMode);
[PreserveSig]
int VideoModePreferrence([In] int ulPreferredDisplayMode);
[PreserveSig]
int SetRoot([In, MarshalAs(UnmanagedType.LPWStr)] string pszPath);
[PreserveSig]
int MouseActivate([In] Point point);
[PreserveSig]
int MouseSelect([In] Point point);
[PreserveSig]
int ChapterPlayAutoStop(
[In] int ulTitle,
[In] int ulChapter,
[In] int ulChaptersToPlay
);
}
[ComImport,
Guid("A70EFE60-E2A3-11d0-A9BE-00AA0061BE93"),
Obsolete("The IDvdInfo interface is deprecated. Use IDvdInfo2 instead.", false),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IDvdInfo
{
[PreserveSig]
int GetCurrentDomain([Out] out DvdDomain pDomain);
[PreserveSig]
int GetCurrentLocation([Out] out DvdPlaybackLocation pLocation);
[PreserveSig]
int GetTotalTitleTime([Out] out int pulTotalTime);
[PreserveSig]
int GetCurrentButton(
[Out] out int pulButtonsAvailable,
[Out] out int pulCurrentButton
);
[PreserveSig]
int GetCurrentAngle(
[Out] out int pulAnglesAvailable,
[Out] out int pulCurrentAngle
);
[PreserveSig]
int GetCurrentAudio(
[Out] out int pulStreamsAvailable,
[Out] out int pulCurrentStream
);
[PreserveSig]
int GetCurrentSubpicture(
[Out] out int pulStreamsAvailable,
[Out] out int pulCurrentStream,
[Out, MarshalAs(UnmanagedType.Bool)] out bool pIsDisabled
);
[PreserveSig]
int GetCurrentUOPS([Out] out int pUOP);
[PreserveSig]
int GetAllSPRMs([Out] out SPRMArray pRegisterArray);
[PreserveSig]
int GetAllGPRMs([Out] out GPRMArray pRegisterArray);
[PreserveSig]
int GetAudioLanguage(
[In] int ulStream,
[Out] out int pLanguage
);
[PreserveSig]
int GetSubpictureLanguage(
[In] int ulStream,
[Out] out int pLanguage
);
[PreserveSig]
int GetTitleAttributes(
[In] int ulTitle,
[Out] out DvdAtr pATR
);
[PreserveSig]
int GetVMGAttributes([Out] out DvdAtr pATR);
[PreserveSig]
int GetCurrentVideoAttributes([Out] out DvdVideoATR pATR);
[PreserveSig]
int GetCurrentAudioAttributes([Out] out DvdAudioATR pATR);
[PreserveSig]
int GetCurrentSubpictureAttributes([Out] out DvdSubpictureATR pATR);
[PreserveSig]
int GetCurrentVolumeInfo(
[Out] out int pulNumOfVol,
[Out] out int pulThisVolNum,
[Out] DvdDiscSide pSide,
[Out] out int pulNumOfTitles
);
[PreserveSig]
int GetDVDTextInfo(
[Out] out IntPtr pTextManager, // BYTE *
[In] int ulBufSize,
[Out] out int pulActualSize
);
[PreserveSig]
int GetPlayerParentalLevel(
[Out] out int pulParentalLevel,
[Out] out int pulCountryCode
);
[PreserveSig]
int GetNumberOfChapters(
[In] int ulTitle,
[Out] out int pulNumberOfChapters
);
[PreserveSig]
int GetTitleParentalLevels(
[In] int ulTitle,
[Out] out int pulParentalLevels
);
[PreserveSig]
int GetRoot(
[Out] out IntPtr pRoot, // LPSTR
[In] int ulBufSize,
[Out] out int pulActualSize
);
}
[ComImport,
Guid("153ACC21-D83B-11d1-82BF-00A0C9696C8F"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IDDrawExclModeVideo
{
[PreserveSig]
int SetDDrawObject([In, MarshalAs(UnmanagedType.IUnknown)] object pDDrawObject);
[PreserveSig]
int GetDDrawObject(
[Out, MarshalAs(UnmanagedType.IUnknown)] out object ppDDrawObject,
[Out, MarshalAs(UnmanagedType.Bool)] out bool pbUsingExternal
);
[PreserveSig]
int SetDDrawSurface([In, MarshalAs(UnmanagedType.IUnknown)] object pDDrawSurface);
[PreserveSig]
int GetDDrawSurface(
[Out, MarshalAs(UnmanagedType.IUnknown)] out object ppDDrawSurface,
[Out, MarshalAs(UnmanagedType.Bool)] out bool pbUsingExternal
);
[PreserveSig]
int SetDrawParameters(
[In] Rectangle prcSource,
[In] Rectangle prcTarget
);
[PreserveSig]
int GetNativeVideoProps(
[Out] out int pdwVideoWidth,
[Out] out int pdwVideoHeight,
[Out] out int pdwPictAspectRatioX,
[Out] out int pdwPictAspectRatioY
);
[PreserveSig]
int SetCallbackInterface(
[In, MarshalAs(UnmanagedType.IUnknown)] object pCallback,
[In] int dwFlags
);
}
[ComImport,
Guid("913c24a0-20ab-11d2-9038-00a0c9697298"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IDDrawExclModeVideoCallback
{
[PreserveSig]
int OnUpdateOverlay(
[In, MarshalAs(UnmanagedType.Bool)] bool bBefore,
[In] AMOverlayNotifyFlags dwFlags,
[In, MarshalAs(UnmanagedType.Bool)] bool bOldVisible,
[In] Rectangle prcOldSrc,
[In] Rectangle prcOldDest,
[In, MarshalAs(UnmanagedType.Bool)] bool bNewVisible,
[In] Rectangle prcNewSrc,
[In] Rectangle prcNewDest
);
[PreserveSig]
int OnUpdateColorKey(
[In] ColorKey pKey,
[In] int dwColor
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -