[PATCH] include : Add dvdif.idl

Vijay Kiran Kamuju infyquest at gmail.com
Thu Apr 9 13:35:28 CDT 2020


On Thu, Apr 9, 2020 at 6:13 PM Zebediah Figura <zfigura at codeweavers.com> wrote:
>
> 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.
I removed them, it seems I updated on top of older commit.
Will fix it.
>
> > +    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.
Oh I assumed #pragma warning(push) to be packing directives.
Will fix it.
>
> ...
>
> > +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.
I removed them, it seems I updated on top of older commit.
Will fix it.
>
> > +    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?
>
Will fix it.
> > +]
> > +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.
I used the same notation as in PSDK, which is used in other idl files.
I used some older idl files as reference.
I can put all the parameters in the same line.
>
> > +
> > +    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.
Oops a typo. will correct it.
>
> > +      [in] ULONG ulBufSize,
> > +      [out] ULONG *pulActualSize);
> > +}
>
> ...
>
> > +    HRESULT GetCmdFromEvent(
> > +      [in] ULONG_PTR lParam1,
>
> This is LONG_PTR in my copy of the PSDK.
Oops a typo. will correct it.
>
> > +      [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.
I missed it, while trying to fix compile issues.
Will fix it.
>
> > +]
> > +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