[PATCH] include : Add dvdif.idl

Zebediah Figura zfigura at codeweavers.com
Thu Apr 9 11:13:06 CDT 2020


On 4/9/20 10:23 AM, Vijay Kiran Kamuju wrote:
> +typedef enum
> +{
> +    DVD_ResetOnStop                     = 1,
> +    DVD_NotifyParentalLevelChange       = 2,
> +    DVD_HMSF_TimeCodeEvents             = 3,
> +    DVD_AudioDuringFFwdRew              = 4,
> +    DVD_EnableNonblockingAPIs           = 5,
> +    DVD_CacheSizeInMB                   = 6,
> +    DVD_EnablePortableBookmarks         = 7,
> +    DVD_EnableExtendedCopyProtectErrors = 8,
> +    DVD_NotifyPositionChange            = 9,
> +    DVD_IncreaseOutputControl           = 10,
> +    DVD_EnableStreaming                 = 11,
> +    DVD_EnableESOutput 	                = 12,

Stray spaces here.

> +    DVD_EnableTitleLength               = 13,
> +    DVD_DisableStillThrottle            = 14,
> +    DVD_EnableLoggingEvents             = 15,
> +    DVD_MaxReadBurstInKB                = 16,
> +    DVD_ReadBurstPeriodInMS             = 17,
> +    DVD_RestartDisc                     = 18,
> +    DVD_EnableCC                        = 19
> +} DVD_OPTION_FLAG;

...

> +cpp_quote("#include <pshpack1.h>")
> +typedef struct tagDVD_AudioAttributes
> +{
> +    DVD_AUDIO_APPMODE AppMode;
> +    BYTE  AppModeData;
> +    DVD_AUDIO_FORMAT AudioFormat;
> +    LCID  Language;
> +    DVD_AUDIO_LANG_EXT LanguageExtension;
> +    BOOL  fHasMultichannelInfo;
> +    DWORD dwFrequency;
> +    BYTE  bQuantization;
> +    BYTE  bNumberOfChannels;
> +    DWORD dwReserved[2];
> +} DVD_AudioAttributes;
> +
> +typedef struct tagDVD_KaraokeAttributes
> +{
> +    BYTE bVersion;
> +    BOOL fMasterOfCeremoniesInGuideVocal1;
> +    BOOL fDuet;
> +    DVD_KARAOKE_ASSIGNMENT ChannelAssignment;
> +    WORD wChannelContents[8];
> +} DVD_KaraokeAttributes;
> +
> +typedef struct tagDVD_TitleMainAttributes
> +{
> +    union
> +    {
> +        DVD_TITLE_APPMODE AppMode;
> +        DVD_HMSF_TIMECODE TitleLength;
> +    } DUMMYUNIONNAME;
> +
> +    DVD_VideoAttributes VideoAttributes;
> +    ULONG ulNumberOfAudioStreams;
> +    DVD_AudioAttributes  AudioAttributes[8];
> +    DVD_MultichannelAudioAttributes MultichannelAudioAttributes[8];
> +    ULONG ulNumberOfSubpictureStreams;
> +    DVD_SubpictureAttributes SubpictureAttributes[32];
> +} DVD_TitleAttributes;
> +cpp_quote("#include <poppack.h>")

I don't see any packing directives in Microsoft's headers for these
structures. In fact, the Windows 10 SDK includes directives to ignore
padding warnings.

...

> +typedef struct tagDVD_DECODER_CAPS
> +{
> +    DWORD  dwSize;
> +    DWORD  dwAudioCaps;
> +    double dFwdMaxRateVideo;
> +    double dFwdMaxRateAudio;
> +    double dFwdMaxRateSP;
> +    double dBwdMaxRateVideo;
> +    double dBwdMaxRateAudio;
> +    double dBwdMaxRateSP;
> +    DWORD  dwRes1 ;
> +    DWORD  dwRes2 ;

Stray spaces.

> +    DWORD  dwRes3;
> +    DWORD  dwRes4;
> +} DVD_DECODER_CAPS;

...

> +[
> +  local,
> +  object,
> +  uuid(a70efe61-e2a3-11d0-a9be-00aa0061be93),
> +  pointer_default(unique)

Can you please keep indentation at a consistent 4 spaces?

> +]
> +interface IDvdControl : IUnknown
> +{
> +    HRESULT TitlePlay(
> +      [in] ULONG ulTitle);

Please avoid Hungarian notation for parameter names outside of library
blocks. There's also no need to put each parameter on a separate line,
or to put spaces between each function.

> +
> +    HRESULT ChapterPlay(
> +      [in] ULONG ulTitle,
> +      [in] ULONG ulChapter);

...

> +    HRESULT GetRoot(
> +      [out, size_is(ulBufSize)] LPSTR *pRoot,

This isn't a (double) pointer in my copy of the PSDK.

> +      [in] ULONG ulBufSize,
> +      [out] ULONG *pulActualSize);
> +}

...

> +    HRESULT GetCmdFromEvent(
> +      [in] ULONG_PTR lParam1,

This is LONG_PTR in my copy of the PSDK.

> +      [out] IDvdCmd **pCmdObj);
> +
> +    HRESULT GetDefaultMenuLanguage(
> +	  [out] LCID *pLanguage);
> +
> +    HRESULT GetDefaultAudioLanguage(
> +      [out] LCID *pLanguage,
> +      [out] DVD_AUDIO_LANG_EXT *pAudioExtension);
> +
> +    HRESULT SelectDefaultSubpictureLanguage(
> +      [out] LCID *pLanguage,
> +      [out] DVD_SUBPICTURE_LANG_EXT *pSubpictureExtension);
> +
> +    HRESULT GetDecoderCaps(
> +      [out] DVD_DECODER_CAPS *pCaps);
> +
> +    HRESULT GetButtonRect(
> +      [in] ULONG ulButton,
> +      [out] RECT *pRect);
> +
> +    HRESULT IsSubpictureStreamEnabled(
> +      [in] ULONG ulStreamNum,
> +      [out] BOOL *pbEnabled);
> +}
> +
> +[
> +local,
> +object,
> +uuid(fcc152B6-f372-11d0-8e00-00c04fd7c08b),
> +pointer_default(unique)

Please indent these attributes, and avoid mixing case in GUID declarations.

> +]
> +interface IDvdGraphBuilder : IUnknown
> +{
> +    HRESULT GetFiltergraph(
> +      [out] IGraphBuilder **ppGB);
> +
> +    HRESULT GetDvdInterface(
> +      [in] REFIID riid,
> +      [out] void **ppIF);
> +
> +    HRESULT RenderDvdVideoVolume(
> +      [in] LPCWSTR lpcwszPathName,
> +      [in] DWORD dwFlags,
> +      [out] AM_DVD_RENDERSTATUS *pStatus);
> +}
> diff --git a/include/strmif.idl b/include/strmif.idl
> index a06f99b751..38af866f47 100644
> --- a/include/strmif.idl
> +++ b/include/strmif.idl
> @@ -27,5 +27,6 @@ import "objidl.idl";
>  
>  #include <dyngraph.idl>
>  
> -/* TODO: #include <dvdif.h> */
>  #include <vmrender.idl>
> +
> +#include <dvdif.idl>
> 
> -- 
> 2.26.0
> 



More information about the wine-devel mailing list