On 1/19/21 6:32 PM, Zebediah Figura (she/her) wrote:
On 1/19/21 7:04 AM, Rémi Bernon wrote:
Signed-off-by: Rémi Bernon rbernon@codeweavers.com
include/windows.media.speechsynthesis.idl | 25 ++ tools/widl/expr.c | 1 + tools/widl/header.c | 61 ++++- tools/widl/parser.l | 1 + tools/widl/parser.y | 269 +++++++++++++--------- tools/widl/typegen.c | 4 + tools/widl/typelib.c | 1 + tools/widl/typetree.c | 17 ++ tools/widl/typetree.h | 24 ++ tools/widl/widltypes.h | 7 + 10 files changed, 296 insertions(+), 114 deletions(-)
diff --git a/include/windows.media.speechsynthesis.idl b/include/windows.media.speechsynthesis.idl index 7a1de5fcba6..90bc9f279c6 100644 --- a/include/windows.media.speechsynthesis.idl +++ b/include/windows.media.speechsynthesis.idl @@ -29,6 +29,8 @@ namespace Windows { typedef enum VoiceGender VoiceGender; interface IInstalledVoicesStatic; interface IVoiceInformation;
runtimeclass VoiceInformation;
}runtimeclass SpeechSynthesizer; } }
@@ -42,6 +44,29 @@ namespace Windows { Male = 0, Female = 1 };
[
contract(Windows.Foundation.UniversalApiContract, 1.0),
exclusiveto(Windows.Media.SpeechSynthesis.VoiceInformation),
uuid(b127d6a4-1291-4604-aa9c-83134083352c)
]
interface IVoiceInformation : IInspectable
{
[propget] HRESULT DisplayName([out] [retval] HSTRING* value);
[propget] HRESULT Id([out] [retval] HSTRING* value);
[propget] HRESULT Language([out] [retval] HSTRING* value);
[propget] HRESULT Description([out] [retval] HSTRING* value);
[propget] HRESULT Gender([out] [retval] VoiceGender* value);
}
[
contract(Windows.Foundation.UniversalApiContract, 1.0),
marshaling_behavior(agile)
]
runtimeclass VoiceInformation
{
[default] interface IVoiceInformation;
}} } }
Does this need to be part of this patch?
Not necessarily part of it, do you mean move it to a separate patch?
It's there to illustrate the new features the widl changes enable, and make sure widl can parse and generate a proper header. Also it makes it possible to diff the generated headers on every widl change.
With that in mind I agree that it'd perhaps be better to move the new attributes parsing support after runtimeclass can be parsed, adding them to the idl iteratively, but I didn't want to add the runtimeclass without the attributes it's supposed to have.