[PATCH 2/2] include: Add windows.media.closedcaptioning.idl file.

Rémi Bernon rbernon at codeweavers.com
Fri Apr 22 04:36:14 CDT 2022


On 4/22/22 09:22, Mohamad Al-Jaf wrote:
> Needed by Microsoft Edge.
> 
> Signed-off-by: Mohamad Al-Jaf <mohamadaljaf at gmail.com>
> ---
> I consider this file very important because people with disabilities
> often rely on captioning.


Sure, but this file isn't going to do anything on its own. Do you intend 
to implement the class too?


> ---
>   include/Makefile.in                        |   1 +
>   include/windows.media.closedcaptioning.idl | 139 +++++++++++++++++++++
>   2 files changed, 140 insertions(+)
>   create mode 100644 include/windows.media.closedcaptioning.idl
> 
> diff --git a/include/Makefile.in b/include/Makefile.in
> index b38475e6464..3deeb74a94c 100644
> --- a/include/Makefile.in
> +++ b/include/Makefile.in
> @@ -791,6 +791,7 @@ SOURCES = \
>   	windows.gaming.input.idl \
>   	windows.globalization.idl \
>   	windows.h \
> +	windows.media.closedcaptioning.idl \
>   	windows.media.devices.idl \
>   	windows.media.idl \
>   	windows.media.speechrecognition.idl \
> diff --git a/include/windows.media.closedcaptioning.idl b/include/windows.media.closedcaptioning.idl
> new file mode 100644
> index 00000000000..8d6b329739d
> --- /dev/null
> +++ b/include/windows.media.closedcaptioning.idl
> @@ -0,0 +1,139 @@
> +/*
> + * Copyright 2022 Mohamad Al-Jaf
> + *
> + * This library is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU Lesser General Public
> + * License as published by the Free Software Foundation; either
> + * version 2.1 of the License, or (at your option) any later version.
> + *
> + * This library is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> + * Lesser General Public License for more details.
> + *
> + * You should have received a copy of the GNU Lesser General Public
> + * License along with this library; if not, write to the Free Software
> + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
> + */
> +
> +#ifdef __WIDL__
> +#pragma winrt ns_prefix
> +#endif
> +
> +import "inspectable.idl";
> +import "asyncinfo.idl";
> +import "eventtoken.idl";
> +import "windowscontracts.idl";
> +import "windows.foundation.idl";
> +import "windows.ui.idl";
> +
> +namespace Windows.Media.ClosedCaptioning {
> +    typedef enum ClosedCaptionColor ClosedCaptionColor;
> +    typedef enum ClosedCaptionEdgeEffect ClosedCaptionEdgeEffect;
> +    typedef enum ClosedCaptionOpacity ClosedCaptionOpacity;
> +    typedef enum ClosedCaptionSize ClosedCaptionSize;
> +    typedef enum ClosedCaptionStyle ClosedCaptionStyle;
> +
> +    interface IClosedCaptionPropertiesStatics;
> +
> +    runtimeclass ClosedCaptionProperties;
> +
> +    [
> +        contract(Windows.Foundation.UniversalApiContract, 1.0)
> +    ]
> +    enum ClosedCaptionColor
> +    {
> +        Default = 0,
> +        White   = 1,
> +        Black   = 2,
> +        Red     = 3,
> +        Green   = 4,
> +        Blue    = 5,
> +        Yellow  = 6,
> +        Magenta = 7,
> +        Cyan    = 8
> +    };
> +
> +    [
> +        contract(Windows.Foundation.UniversalApiContract, 1.0)
> +    ]
> +    enum ClosedCaptionEdgeEffect
> +    {
> +        Default    = 0,
> +        None       = 1,
> +        Raised     = 2,
> +        Depressed  = 3,
> +        Uniform    = 4,
> +        DropShadow = 5
> +    };
> +
> +    [
> +        contract(Windows.Foundation.UniversalApiContract, 1.0)
> +    ]
> +    enum ClosedCaptionOpacity
> +    {
> +        Default            = 0,
> +        OneHundredPercent  = 1,
> +        SeventyFivePercent = 2,
> +        TwentyFivePercent  = 3,
> +        ZeroPercent        = 4
> +    };
> +
> +    [
> +        contract(Windows.Foundation.UniversalApiContract, 1.0)
> +    ]
> +    enum ClosedCaptionSize
> +    {
> +        Default                = 0,
> +        FiftyPercent           = 1,
> +        OneHundredPercent      = 2,
> +        OneHundredFiftyPercent = 3,
> +        TwoHundredPercent      = 4
> +    };
> +
> +    [
> +        contract(Windows.Foundation.UniversalApiContract, 1.0)
> +    ]
> +    enum ClosedCaptionStyle
> +    {
> +        Default                   = 0,
> +        MonospacedWithSerifs      = 1,
> +        ProportionalWithSerifs    = 2,
> +        MonospacedWithoutSerifs   = 3,
> +        ProportionalWithoutSerifs = 4,
> +        Casual                    = 5,
> +        Cursive                   = 6,
> +        SmallCapitals             = 7
> +    };
> +
> +    [
> +        contract(Windows.Foundation.UniversalApiContract, 1.0),
> +        exclusiveto(Windows.Media.ClosedCaptioning.ClosedCaptionProperties),
> +        uuid(10aa1f84-cc30-4141-b503-5272289e0c20)
> +    ]
> +    interface IClosedCaptionPropertiesStatics : IInspectable
> +    {
> +        [propget] HRESULT FontColor([out, retval] Windows.Media.ClosedCaptioning.ClosedCaptionColor* value);
> +        [propget] HRESULT ComputedFontColor([out, retval] Windows.UI.Color* value);
> +        [propget] HRESULT FontOpacity([out, retval] Windows.Media.ClosedCaptioning.ClosedCaptionOpacity* value);
> +        [propget] HRESULT FontSize([out, retval] Windows.Media.ClosedCaptioning.ClosedCaptionSize* value);
> +        [propget] HRESULT FontStyle([out, retval] Windows.Media.ClosedCaptioning.ClosedCaptionStyle* value);
> +        [propget] HRESULT FontEffect([out, retval] Windows.Media.ClosedCaptioning.ClosedCaptionEdgeEffect* value);
> +        [propget] HRESULT BackgroundColor([out, retval] Windows.Media.ClosedCaptioning.ClosedCaptionColor* value);
> +        [propget] HRESULT ComputedBackgroundColor([out, retval] Windows.UI.Color* value);
> +        [propget] HRESULT BackgroundOpacity([out, retval] Windows.Media.ClosedCaptioning.ClosedCaptionOpacity* value);
> +        [propget] HRESULT RegionColor([out, retval] Windows.Media.ClosedCaptioning.ClosedCaptionColor* value);
> +        [propget] HRESULT ComputedRegionColor([out, retval] Windows.UI.Color* value);
> +        [propget] HRESULT RegionOpacity([out, retval] Windows.Media.ClosedCaptioning.ClosedCaptionOpacity* value);
> +    }
> +


Please follow Wine code style, which is right aligned pointer, and (for 
PATCH 1), snake case parameter identifiers as as far as I can tell the 
casing doesn't matter for WinRT.

I also think you should add commas on the last enum value, though it's 
not done consistently already, so that adding more values later doesn't 
need to change unrelated lines.


-- 
Rémi Bernon <rbernon at codeweavers.com>



More information about the wine-devel mailing list