winehq.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2025
February
January
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
January
2003
December
November
October
September
August
July
June
May
April
March
February
January
2002
December
November
October
September
August
July
June
May
April
March
February
January
2001
December
November
October
September
August
July
June
May
April
March
February
List overview
wine-commits
June 2020
----- 2025 -----
February 2025
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
January 2004
----- 2003 -----
December 2003
November 2003
October 2003
September 2003
August 2003
July 2003
June 2003
May 2003
April 2003
March 2003
February 2003
January 2003
----- 2002 -----
December 2002
November 2002
October 2002
September 2002
August 2002
July 2002
June 2002
May 2002
April 2002
March 2002
February 2002
January 2002
----- 2001 -----
December 2001
November 2001
October 2001
September 2001
August 2001
July 2001
June 2001
May 2001
April 2001
March 2001
February 2001
wine-commits@winehq.org
1 participants
947 discussions
Start a n
N
ew thread
Paul Gofman : netio.sys: Implement wsk_free_address_info() function.
by Alexandre Julliard
15 Jun '20
15 Jun '20
Module: wine Branch: master Commit: 0d1d8c1220caf7bbcdff9191560be7eb3ab9706d URL:
https://source.winehq.org/git/wine.git/?a=commit;h=0d1d8c1220caf7bbcdff9191…
Author: Paul Gofman <pgofman(a)codeweavers.com> Date: Sun Jun 14 21:58:49 2020 +0300 netio.sys: Implement wsk_free_address_info() function. Signed-off-by: Paul Gofman <pgofman(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/netio.sys/netio.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/dlls/netio.sys/netio.c b/dlls/netio.sys/netio.c index cbbf8c0611..00dbec7664 100644 --- a/dlls/netio.sys/netio.c +++ b/dlls/netio.sys/netio.c @@ -203,7 +203,9 @@ static NTSTATUS WINAPI wsk_get_address_info(WSK_CLIENT *client, UNICODE_STRING * static void WINAPI wsk_free_address_info(WSK_CLIENT *client, ADDRINFOEXW *addr_info) { - FIXME("client %p, addr_info %p stub.\n", client, addr_info); + TRACE("client %p, addr_info %p.\n", client, addr_info); + + FreeAddrInfoExW(addr_info); } static NTSTATUS WINAPI wsk_get_name_info(WSK_CLIENT *client, SOCKADDR *sock_addr, ULONG sock_addr_length,
1
0
0
0
Paul Gofman : netio.sys: Implement wsk_get_address_info() function.
by Alexandre Julliard
15 Jun '20
15 Jun '20
Module: wine Branch: master Commit: 8599ab24a184edcf1af86d7fb046f04dcce9e839 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=8599ab24a184edcf1af86d7f…
Author: Paul Gofman <pgofman(a)codeweavers.com> Date: Sun Jun 14 21:58:48 2020 +0300 netio.sys: Implement wsk_get_address_info() function. Signed-off-by: Paul Gofman <pgofman(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/netio.sys/Makefile.in | 2 +- dlls/netio.sys/netio.c | 120 +++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 118 insertions(+), 4 deletions(-) diff --git a/dlls/netio.sys/Makefile.in b/dlls/netio.sys/Makefile.in index 76e541021a..2db691540d 100644 --- a/dlls/netio.sys/Makefile.in +++ b/dlls/netio.sys/Makefile.in @@ -1,6 +1,6 @@ MODULE = netio.sys IMPORTLIB = netio -IMPORTS = ntoskrnl +IMPORTS = ntoskrnl ws2_32 EXTRADLLFLAGS = -mno-cygwin -Wl,--subsystem,native C_SRCS = \ diff --git a/dlls/netio.sys/netio.c b/dlls/netio.sys/netio.c index fac91736ab..cbbf8c0611 100644 --- a/dlls/netio.sys/netio.c +++ b/dlls/netio.sys/netio.c @@ -31,6 +31,8 @@ #include "ddk/wdm.h" #include "ddk/wsk.h" #include "wine/debug.h" +#include "winsock2.h" +#include "ws2tcpip.h" #include "wine/heap.h" @@ -42,6 +44,54 @@ struct _WSK_CLIENT WSK_CLIENT_NPI *client_npi; }; +static NTSTATUS sock_error_to_ntstatus(DWORD err) +{ + switch (err) + { + case 0: return STATUS_SUCCESS; + case WSAEBADF: return STATUS_INVALID_HANDLE; + case WSAEACCES: return STATUS_ACCESS_DENIED; + case WSAEFAULT: return STATUS_NO_MEMORY; + case WSAEINVAL: return STATUS_INVALID_PARAMETER; + case WSAEMFILE: return STATUS_TOO_MANY_OPENED_FILES; + case WSAEWOULDBLOCK: return STATUS_CANT_WAIT; + case WSAEINPROGRESS: return STATUS_PENDING; + case WSAEALREADY: return STATUS_NETWORK_BUSY; + case WSAENOTSOCK: return STATUS_OBJECT_TYPE_MISMATCH; + case WSAEDESTADDRREQ: return STATUS_INVALID_PARAMETER; + case WSAEMSGSIZE: return STATUS_BUFFER_OVERFLOW; + case WSAEPROTONOSUPPORT: + case WSAESOCKTNOSUPPORT: + case WSAEPFNOSUPPORT: + case WSAEAFNOSUPPORT: + case WSAEPROTOTYPE: return STATUS_NOT_SUPPORTED; + case WSAENOPROTOOPT: return STATUS_INVALID_PARAMETER; + case WSAEOPNOTSUPP: return STATUS_NOT_SUPPORTED; + case WSAEADDRINUSE: return STATUS_ADDRESS_ALREADY_ASSOCIATED; + case WSAEADDRNOTAVAIL: return STATUS_INVALID_PARAMETER; + case WSAECONNREFUSED: return STATUS_CONNECTION_REFUSED; + case WSAESHUTDOWN: return STATUS_PIPE_DISCONNECTED; + case WSAENOTCONN: return STATUS_CONNECTION_DISCONNECTED; + case WSAETIMEDOUT: return STATUS_IO_TIMEOUT; + case WSAENETUNREACH: return STATUS_NETWORK_UNREACHABLE; + case WSAENETDOWN: return STATUS_NETWORK_BUSY; + case WSAECONNRESET: return STATUS_CONNECTION_RESET; + case WSAECONNABORTED: return STATUS_CONNECTION_ABORTED; + case WSAHOST_NOT_FOUND: return STATUS_NOT_FOUND; + default: + FIXME("Unmapped error %u.\n", err); + return STATUS_UNSUCCESSFUL; + } +} + +static void dispatch_irp(IRP *irp, NTSTATUS status) +{ + irp->IoStatus.u.Status = status; + --irp->CurrentLocation; + --irp->Tail.Overlay.s.u2.CurrentStackLocation; + IoCompleteRequest(irp, IO_NO_INCREMENT); +} + static NTSTATUS WINAPI wsk_socket(WSK_CLIENT *client, ADDRESS_FAMILY address_family, USHORT socket_type, ULONG protocol, ULONG Flags, void *socket_context, const void *dispatch, PEPROCESS owning_process, PETHREAD owning_thread, SECURITY_DESCRIPTOR *security_descriptor, IRP *irp) @@ -81,16 +131,74 @@ static NTSTATUS WINAPI wsk_control_client(WSK_CLIENT *client, ULONG control_code return STATUS_NOT_IMPLEMENTED; } +struct wsk_get_address_info_context +{ + UNICODE_STRING *node_name; + UNICODE_STRING *service_name; + ULONG namespace; + GUID *provider; + ADDRINFOEXW *hints; + ADDRINFOEXW **result; + IRP *irp; +}; + +static void WINAPI get_address_info_callback(TP_CALLBACK_INSTANCE *instance, void *context_) +{ + struct wsk_get_address_info_context *context = context_; + INT ret; + + TRACE("instance %p, context %p.\n", instance, context); + + ret = GetAddrInfoExW( context->node_name ? context->node_name->Buffer : NULL, + context->service_name ? context->service_name->Buffer : NULL, context->namespace, + context->provider, context->hints, context->result, NULL, NULL, NULL, NULL); + + context->irp->IoStatus.Information = 0; + dispatch_irp(context->irp, sock_error_to_ntstatus(ret)); + heap_free(context); +} + static NTSTATUS WINAPI wsk_get_address_info(WSK_CLIENT *client, UNICODE_STRING *node_name, UNICODE_STRING *service_name, ULONG name_space, GUID *provider, ADDRINFOEXW *hints, ADDRINFOEXW **result, PEPROCESS owning_process, PETHREAD owning_thread, IRP *irp) { - FIXME("client %p, node_name %p, service_name %p, name_space %#x, provider %p, hints %p, " - "result %p, owning_process %p, owning_thread %p, irp %p stub.\n", + struct wsk_get_address_info_context *context; + NTSTATUS status; + + TRACE("client %p, node_name %p, service_name %p, name_space %#x, provider %p, hints %p, " + "result %p, owning_process %p, owning_thread %p, irp %p.\n", client, node_name, service_name, name_space, provider, hints, result, owning_process, owning_thread, irp); - return STATUS_NOT_IMPLEMENTED; + if (!irp) + return STATUS_INVALID_PARAMETER; + + if (!(context = heap_alloc(sizeof(*context)))) + { + ERR("No memory.\n"); + status = STATUS_NO_MEMORY; + dispatch_irp(irp, status); + return status; + } + + context->node_name = node_name; + context->service_name = service_name; + context->namespace = name_space; + context->provider = provider; + context->hints = hints; + context->result = result; + context->irp = irp; + + if (!TrySubmitThreadpoolCallback(get_address_info_callback, context, NULL)) + { + ERR("Could not submit thread pool callback.\n"); + status = STATUS_UNSUCCESSFUL; + dispatch_irp(irp, status); + heap_free(context); + return status; + } + TRACE("Submitted threadpool callback, context %p.\n", context); + return STATUS_PENDING; } static void WINAPI wsk_free_address_info(WSK_CLIENT *client, ADDRINFOEXW *addr_info) @@ -142,6 +250,9 @@ void WINAPI WskReleaseProviderNPI(WSK_REGISTRATION *wsk_registration) NTSTATUS WINAPI WskRegister(WSK_CLIENT_NPI *wsk_client_npi, WSK_REGISTRATION *wsk_registration) { + static const WORD version = MAKEWORD( 2, 2 ); + WSADATA data; + WSK_CLIENT *client; TRACE("wsk_client_npi %p, wsk_registration %p.\n", wsk_client_npi, wsk_registration); @@ -156,6 +267,9 @@ NTSTATUS WINAPI WskRegister(WSK_CLIENT_NPI *wsk_client_npi, WSK_REGISTRATION *ws client->client_npi = wsk_client_npi; wsk_registration->ReservedRegistrationContext = client; + if (WSAStartup(version, &data)) + return STATUS_INTERNAL_ERROR; + return STATUS_SUCCESS; }
1
0
0
0
Alistair Leslie-Hughes : uuid: Add directmanipulation.h.
by Alexandre Julliard
15 Jun '20
15 Jun '20
Module: wine Branch: master Commit: 44cbf6e5c64352862d81b59fcd2e4568ee8c557f URL:
https://source.winehq.org/git/wine.git/?a=commit;h=44cbf6e5c64352862d81b59f…
Author: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> Date: Thu Jul 18 09:46:30 2019 +1000 uuid: Add directmanipulation.h. Signed-off-by: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> Signed-off-by: Vijay Kiran Kamuju <infyquest(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/uuid/uuid.c | 1 + 1 file changed, 1 insertion(+) diff --git a/dlls/uuid/uuid.c b/dlls/uuid/uuid.c index aa3b30c3c7..eacb83301d 100644 --- a/dlls/uuid/uuid.c +++ b/dlls/uuid/uuid.c @@ -90,6 +90,7 @@ DEFINE_GUID(GUID_NULL,0,0,0,0,0,0,0,0,0,0,0); #include "netcfgx.h" #include "shimgdata.h" #include "comsvcs.h" +#include "directmanipulation.h" /* FIXME: cguids declares GUIDs but does not define their values */
1
0
0
0
Alistair Leslie-Hughes : directmanipulation: Register the DirectManipulationManager and DirectManipulationSharedManager classes.
by Alexandre Julliard
15 Jun '20
15 Jun '20
Module: wine Branch: master Commit: f2cd77668ad77ef2f80166b6cf0625d44bdeebc9 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=f2cd77668ad77ef2f80166b6…
Author: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> Date: Fri Jun 12 16:43:06 2020 -0500 directmanipulation: Register the DirectManipulationManager and DirectManipulationSharedManager classes. Signed-off-by: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> Signed-off-by: Vijay Kiran Kamuju <infyquest(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/directmanipulation/Makefile.in | 2 ++ dlls/directmanipulation/directmanip.idl | 38 +++++++++++++++++++++++++ dlls/directmanipulation/directmanipulation.c | 12 ++++++++ dlls/directmanipulation/directmanipulation.spec | 4 +-- 4 files changed, 54 insertions(+), 2 deletions(-) diff --git a/dlls/directmanipulation/Makefile.in b/dlls/directmanipulation/Makefile.in index d09d652b61..331c2a8420 100644 --- a/dlls/directmanipulation/Makefile.in +++ b/dlls/directmanipulation/Makefile.in @@ -2,5 +2,7 @@ MODULE = directmanipulation.dll EXTRADLLFLAGS = -mno-cygwin +IDL_SRCS = directmanip.idl + C_SRCS = \ directmanipulation.c diff --git a/dlls/directmanipulation/directmanip.idl b/dlls/directmanipulation/directmanip.idl new file mode 100644 index 0000000000..ff00668ba5 --- /dev/null +++ b/dlls/directmanipulation/directmanip.idl @@ -0,0 +1,38 @@ +/* + * Copyright 2019 Alistair Leslie-Hughes + * + * 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 + */ +#pragma makedep register + +[ + uuid(54e211b6-3650-4f75-8334-fa359598e1c5), + threading(both) +] +coclass DirectManipulationManager +{ + interface IDirectManipulationManager2; + [default] interface IDirectManipulationManager; +} + +[ + uuid(99793286-77cc-4b57-96db-3b354f6f9fb5), + threading(both) +] +coclass DirectManipulationSharedManager +{ + interface IDirectManipulationManager2; + [default] interface IDirectManipulationManager; +} diff --git a/dlls/directmanipulation/directmanipulation.c b/dlls/directmanipulation/directmanipulation.c index 21458ba1fe..f808bc1a33 100644 --- a/dlls/directmanipulation/directmanipulation.c +++ b/dlls/directmanipulation/directmanipulation.c @@ -20,6 +20,8 @@ #include "windef.h" #include "winbase.h" +#include "oleidl.h" +#include "rpcproxy.h" #include "wine/debug.h" WINE_DEFAULT_DEBUG_CHANNEL(manipulation); @@ -43,6 +45,16 @@ BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, void *reserved) return TRUE; } +HRESULT WINAPI DllRegisterServer(void) +{ + return __wine_register_resources( dm_instance ); +} + +HRESULT WINAPI DllUnregisterServer(void) +{ + return __wine_unregister_resources( dm_instance ); +} + HRESULT WINAPI DllCanUnloadNow(void) { return S_FALSE; diff --git a/dlls/directmanipulation/directmanipulation.spec b/dlls/directmanipulation/directmanipulation.spec index 6c8a107d5c..3f0004daeb 100644 --- a/dlls/directmanipulation/directmanipulation.spec +++ b/dlls/directmanipulation/directmanipulation.spec @@ -2,5 +2,5 @@ @ stdcall -private DllCanUnloadNow() @ stub DllGetActivationFactory @ stdcall -private DllGetClassObject(ptr ptr ptr) -@ stub DllRegisterServer() -@ stub DllUnregisterServer() +@ stdcall -private DllRegisterServer() +@ stdcall -private DllUnregisterServer()
1
0
0
0
Zebediah Figura : quartz/tests: Relax some timings.
by Alexandre Julliard
15 Jun '20
15 Jun '20
Module: wine Branch: master Commit: 5161554b9d4e8d999f21a420b4c56067e209d435 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=5161554b9d4e8d999f21a420…
Author: Zebediah Figura <z.figura12(a)gmail.com> Date: Sat Jun 13 13:55:38 2020 -0500 quartz/tests: Relax some timings. Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/quartz/tests/videorenderer.c | 2 +- dlls/quartz/tests/vmr9.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dlls/quartz/tests/videorenderer.c b/dlls/quartz/tests/videorenderer.c index d603ea46ed..ab2b4f9e0d 100644 --- a/dlls/quartz/tests/videorenderer.c +++ b/dlls/quartz/tests/videorenderer.c @@ -1082,7 +1082,7 @@ static void test_sample_time(IBaseFilter *filter, IPin *pin, IMemInputPin *input ok(hr == S_OK, "Got hr %#x.\n", hr); thread = send_frame_time(input, 2, 0x66); /* orange */ - ok(WaitForSingleObject(thread, 800) == WAIT_TIMEOUT, "Thread should block in Receive().\n"); + ok(WaitForSingleObject(thread, 500) == WAIT_TIMEOUT, "Thread should block in Receive().\n"); hr = join_thread(thread); ok(hr == S_OK, "Got hr %#x.\n", hr); diff --git a/dlls/quartz/tests/vmr9.c b/dlls/quartz/tests/vmr9.c index a227a647f6..2641b7a04b 100644 --- a/dlls/quartz/tests/vmr9.c +++ b/dlls/quartz/tests/vmr9.c @@ -1430,7 +1430,7 @@ static void test_sample_time(IPin *pin, IMemInputPin *input, IMediaControl *cont ok(hr == S_OK, "Got hr %#x.\n", hr); thread = send_frame_time(input, 2, 0x00ff00ff); /* magenta */ - ok(WaitForSingleObject(thread, 800) == WAIT_TIMEOUT, "Thread should block in Receive().\n"); + ok(WaitForSingleObject(thread, 500) == WAIT_TIMEOUT, "Thread should block in Receive().\n"); hr = join_thread(thread); ok(hr == S_OK, "Got hr %#x.\n", hr);
1
0
0
0
Akihiro Sagawa : winegstreamer: Also wait for EOS events when retrieving duration.
by Alexandre Julliard
15 Jun '20
15 Jun '20
Module: wine Branch: master Commit: bd28efb4c702f3119043d8d365fdc7ba98cd8b7d URL:
https://source.winehq.org/git/wine.git/?a=commit;h=bd28efb4c702f3119043d8d3…
Author: Akihiro Sagawa <sagawa.aki(a)gmail.com> Date: Sat Jun 13 10:34:22 2020 -0500 winegstreamer: Also wait for EOS events when retrieving duration. The mpegaudioparse element will not send a duration-changed message if no Xing or VBRI headers are present. Signed-off-by: Akihiro Sagawa <sagawa.aki(a)gmail.com> Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/quartz/tests/mpegsplit.c | 8 ++++---- dlls/quartz/tests/rsrc.rc | 2 +- dlls/quartz/tests/test.mp3 | Bin 2349 -> 2157 bytes dlls/winegstreamer/gstdemux.c | 13 ++++++++++--- 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/dlls/quartz/tests/mpegsplit.c b/dlls/quartz/tests/mpegsplit.c index 9bfd7e3bb1..e407fe44ee 100644 --- a/dlls/quartz/tests/mpegsplit.c +++ b/dlls/quartz/tests/mpegsplit.c @@ -523,13 +523,13 @@ static void test_media_types(void) { MPEG1WAVEFORMAT expect_wfx = { - {WAVE_FORMAT_MPEG, 1, 48000, 8000, 192, 0, sizeof(MPEG1WAVEFORMAT) - sizeof(WAVEFORMATEX)}, - ACM_MPEG_LAYER3, 64000, ACM_MPEG_SINGLECHANNEL, 0, 1, ACM_MPEG_PROTECTIONBIT | ACM_MPEG_ID_MPEG1, 0, 0 + {WAVE_FORMAT_MPEG, 1, 48000, 4000, 96, 0, sizeof(MPEG1WAVEFORMAT) - sizeof(WAVEFORMATEX)}, + ACM_MPEG_LAYER3, 32000, ACM_MPEG_SINGLECHANNEL, 4096, 1, ACM_MPEG_ORIGINALHOME | ACM_MPEG_PROTECTIONBIT | ACM_MPEG_ID_MPEG1, 0, 0 }; static const MPEGLAYER3WAVEFORMAT expect_mp3_wfx = { - {WAVE_FORMAT_MPEGLAYER3, 1, 48000, 8000, 1, 0, sizeof(MPEGLAYER3WAVEFORMAT) - sizeof(WAVEFORMATEX)}, - MPEGLAYER3_ID_MPEG, 0, 192, 1, 0 + {WAVE_FORMAT_MPEGLAYER3, 1, 48000, 4000, 1, 0, sizeof(MPEGLAYER3WAVEFORMAT) - sizeof(WAVEFORMATEX)}, + MPEGLAYER3_ID_MPEG, 0, 96, 1, 0 }; const WCHAR *filename = load_resource(L"test.mp3"); diff --git a/dlls/quartz/tests/rsrc.rc b/dlls/quartz/tests/rsrc.rc index 753415cf8d..d28c2bd6ed 100644 --- a/dlls/quartz/tests/rsrc.rc +++ b/dlls/quartz/tests/rsrc.rc @@ -28,7 +28,7 @@ test.avi RCDATA "test.avi" /* @makedep: test.mpg */ test.mpg RCDATA "test.mpg" -/* ffmpeg -f lavfi -i "sine=frequency=500" -t 0.5 -ar 48000 -b:a 32k -f mp3 -acodec mp3 test.mp3 */ +/* ffmpeg -f lavfi -i "sine=frequency=500" -t 0.5 -ar 48000 -b:a 32k -f mp3 -acodec mp3 -write_xing 0 test.mp3 */ /* @makedep: test.mp3 */ test.mp3 RCDATA "test.mp3" diff --git a/dlls/quartz/tests/test.mp3 b/dlls/quartz/tests/test.mp3 index 78d8dd2af6..b35e6b77d1 100644 Binary files a/dlls/quartz/tests/test.mp3 and b/dlls/quartz/tests/test.mp3 differ diff --git a/dlls/winegstreamer/gstdemux.c b/dlls/winegstreamer/gstdemux.c index e7d8a0b98c..b9c91245f8 100644 --- a/dlls/winegstreamer/gstdemux.c +++ b/dlls/winegstreamer/gstdemux.c @@ -79,7 +79,7 @@ struct gstdemux_source GstPad *their_src, *post_sink, *post_src, *my_sink; GstElement *flip; AM_MEDIA_TYPE mt; - HANDLE caps_event; + HANDLE caps_event, eos_event; GstSegment *segment; SourceSeeking seek; }; @@ -699,6 +699,8 @@ static gboolean event_sink(GstPad *pad, GstObject *parent, GstEvent *event) case GST_EVENT_EOS: if (pin->pin.pin.peer) IPin_EndOfStream(pin->pin.pin.peer); + else + SetEvent(pin->eos_event); return TRUE; case GST_EVENT_FLUSH_START: if (impl_from_strmbase_filter(pin->pin.pin.filter)->ignore_flush) { @@ -2129,6 +2131,7 @@ static void free_source_pin(struct gstdemux_source *pin) } gst_object_unref(pin->my_sink); CloseHandle(pin->caps_event); + CloseHandle(pin->eos_event); FreeMediaType(&pin->mt); gst_segment_free(pin->segment); @@ -2161,6 +2164,7 @@ static struct gstdemux_source *create_pin(struct gstdemux *filter, const WCHAR * strmbase_source_init(&pin->pin, &filter->filter, name, &source_ops); pin->caps_event = CreateEventW(NULL, FALSE, FALSE, NULL); + pin->eos_event = CreateEventW(NULL, FALSE, FALSE, NULL); pin->segment = gst_segment_new(); gst_segment_init(pin->segment, GST_FORMAT_TIME); pin->IQualityControl_iface.lpVtbl = &GSTOutPin_QualityControl_Vtbl; @@ -2561,7 +2565,8 @@ static BOOL mpeg_splitter_init_gst(struct gstdemux *filter) static const WCHAR source_name[] = {'A','u','d','i','o',0}; struct gstdemux_source *pin; GstElement *element; - HANDLE events[2]; + HANDLE events[3]; + DWORD res; int ret; if (!(element = gst_element_factory_make("mpegaudioparse", NULL))) @@ -2600,7 +2605,9 @@ static BOOL mpeg_splitter_init_gst(struct gstdemux *filter) events[0] = filter->duration_event; events[1] = filter->error_event; - if (WaitForMultipleObjects(2, events, FALSE, INFINITE)) + events[2] = pin->eos_event; + res = WaitForMultipleObjects(3, events, FALSE, INFINITE); + if (res == 1) return FALSE; pin->seek.llDuration = pin->seek.llStop = query_duration(pin->their_src);
1
0
0
0
Zebediah Figura : quartz/vmr9: Get rid of VMR9_ImagePresenter_PresentOffscreenSurface().
by Alexandre Julliard
15 Jun '20
15 Jun '20
Module: wine Branch: master Commit: 5444ce2f0db7b3f7b4e1fdf3f7bb8d18b79f315b URL:
https://source.winehq.org/git/wine.git/?a=commit;h=5444ce2f0db7b3f7b4e1fdf3…
Author: Zebediah Figura <zfigura(a)codeweavers.com> Date: Fri Jun 12 16:28:28 2020 -0500 quartz/vmr9: Get rid of VMR9_ImagePresenter_PresentOffscreenSurface(). Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/quartz/vmr9.c | 31 ++++++++++--------------------- 1 file changed, 10 insertions(+), 21 deletions(-) diff --git a/dlls/quartz/vmr9.c b/dlls/quartz/vmr9.c index 449943f2dc..6b653e5609 100644 --- a/dlls/quartz/vmr9.c +++ b/dlls/quartz/vmr9.c @@ -2611,26 +2611,6 @@ static HRESULT WINAPI VMR9_ImagePresenter_StopPresenting(IVMRImagePresenter9 *if return S_OK; } -static HRESULT VMR9_ImagePresenter_PresentOffscreenSurface(struct default_presenter *This, IDirect3DSurface9 *surface) -{ - HRESULT hr; - IDirect3DSurface9 *target = NULL; - - hr = IDirect3DDevice9_GetBackBuffer(This->d3d9_dev, 0, 0, D3DBACKBUFFER_TYPE_MONO, &target); - if (FAILED(hr)) - { - ERR("IDirect3DDevice9_GetBackBuffer -- %08x\n", hr); - return hr; - } - - hr = IDirect3DDevice9_StretchRect(This->d3d9_dev, surface, NULL, target, NULL, D3DTEXF_POINT); - if (FAILED(hr)) - ERR("IDirect3DDevice9_StretchRect -- %08x\n", hr); - IDirect3DSurface9_Release(target); - - return hr; -} - static HRESULT WINAPI VMR9_ImagePresenter_PresentImage(IVMRImagePresenter9 *iface, DWORD_PTR cookie, VMR9PresentationInfo *info) { @@ -2638,6 +2618,7 @@ static HRESULT WINAPI VMR9_ImagePresenter_PresentImage(IVMRImagePresenter9 *ifac const struct quartz_vmr *filter = presenter->pVMR9; IDirect3DDevice9 *device = presenter->d3d9_dev; const RECT src = filter->window.src; + IDirect3DSurface9 *backbuffer; RECT dst = filter->window.dst; HRESULT hr; @@ -2654,7 +2635,15 @@ static HRESULT WINAPI VMR9_ImagePresenter_PresentImage(IVMRImagePresenter9 *ifac if (FAILED(hr = IDirect3DDevice9_BeginScene(device))) ERR("Failed to begin scene, hr %#x.\n", hr); - VMR9_ImagePresenter_PresentOffscreenSurface(presenter, info->lpSurf); + if (FAILED(hr = IDirect3DDevice9_GetBackBuffer(device, 0, 0, D3DBACKBUFFER_TYPE_MONO, &backbuffer))) + { + ERR("Failed to get backbuffer, hr %#x.\n", hr); + return hr; + } + + if (FAILED(hr = IDirect3DDevice9_StretchRect(device, info->lpSurf, NULL, backbuffer, NULL, D3DTEXF_POINT))) + ERR("Failed to blit image, hr %#x.\n", hr); + IDirect3DSurface9_Release(backbuffer); if (FAILED(hr = IDirect3DDevice9_EndScene(device))) ERR("Failed to end scene, hr %#x.\n", hr);
1
0
0
0
Zebediah Figura : quartz/vmr9: Implement IVMRWindowlessControl9::SetAspectRatioMode().
by Alexandre Julliard
15 Jun '20
15 Jun '20
Module: wine Branch: master Commit: 408a3074c4297a0004b8aa485d4cb3e296d3fe04 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=408a3074c4297a0004b8aa48…
Author: Zebediah Figura <zfigura(a)codeweavers.com> Date: Fri Jun 12 16:28:27 2020 -0500 quartz/vmr9: Implement IVMRWindowlessControl9::SetAspectRatioMode(). Wine-Bug:
https://bugs.winehq.org/show_bug.cgi?id=35215
Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/quartz/tests/vmr9.c | 37 ++++++++++++++++++++ dlls/quartz/vmr9.c | 87 ++++++++++++++++++++++++++++++++---------------- 2 files changed, 96 insertions(+), 28 deletions(-) diff --git a/dlls/quartz/tests/vmr9.c b/dlls/quartz/tests/vmr9.c index 14b6539a6b..a227a647f6 100644 --- a/dlls/quartz/tests/vmr9.c +++ b/dlls/quartz/tests/vmr9.c @@ -3770,6 +3770,7 @@ static void test_windowless_size(void) LONG width, height, aspect_width, aspect_height; IVMRWindowlessControl9 *windowless_control; IFilterGraph2 *graph = create_graph(); + VMR9AspectRatioMode aspect_mode; struct testfilter source; IMemAllocator *allocator; RECT src, dst, expect; @@ -3813,6 +3814,11 @@ static void test_windowless_size(void) hr = IVMRWindowlessControl9_GetNativeVideoSize(windowless_control, &width, NULL, &aspect_width, &aspect_height); ok(hr == E_POINTER, "Got hr %#x.\n", hr); + aspect_mode = 0xdeadbeef; + hr = IVMRWindowlessControl9_GetAspectRatioMode(windowless_control, &aspect_mode); + ok(hr == S_OK, "Got hr %#x.\n", hr); + ok(aspect_mode == VMR9ARMode_None, "Got mode %u.\n", aspect_mode); + width = height = 0xdeadbeef; hr = IVMRWindowlessControl9_GetNativeVideoSize(windowless_control, &width, &height, NULL, NULL); ok(hr == S_OK, "Got hr %#x.\n", hr); @@ -3867,6 +3873,37 @@ static void test_windowless_size(void) SetRect(&expect, 0, 0, 640, 480); ok(EqualRect(&src, &expect), "Got window rect %s.\n", wine_dbgstr_rect(&src)); + hr = IVMRWindowlessControl9_SetAspectRatioMode(windowless_control, VMR9ARMode_LetterBox); + ok(hr == S_OK, "Got hr %#x.\n", hr); + + aspect_mode = 0xdeadbeef; + hr = IVMRWindowlessControl9_GetAspectRatioMode(windowless_control, &aspect_mode); + ok(hr == S_OK, "Got hr %#x.\n", hr); + ok(aspect_mode == VMR9ARMode_LetterBox, "Got mode %u.\n", aspect_mode); + + memset(&src, 0xcc, sizeof(src)); + memset(&dst, 0xcc, sizeof(dst)); + hr = IVMRWindowlessControl9_GetVideoPosition(windowless_control, &src, &dst); + ok(hr == S_OK, "Got hr %#x.\n", hr); + SetRect(&expect, 4, 6, 16, 12); + ok(EqualRect(&src, &expect), "Got source rect %s.\n", wine_dbgstr_rect(&src)); + SetRect(&expect, 40, 60, 120, 160); + ok(EqualRect(&dst, &expect), "Got dest rect %s.\n", wine_dbgstr_rect(&dst)); + + SetRect(&src, 0, 0, 32, 16); + SetRect(&dst, 0, 0, 640, 480); + hr = IVMRWindowlessControl9_SetVideoPosition(windowless_control, &src, &dst); + ok(hr == S_OK, "Got hr %#x.\n", hr); + + memset(&src, 0xcc, sizeof(src)); + memset(&dst, 0xcc, sizeof(dst)); + hr = IVMRWindowlessControl9_GetVideoPosition(windowless_control, &src, &dst); + ok(hr == S_OK, "Got hr %#x.\n", hr); + SetRect(&expect, 0, 0, 32, 16); + ok(EqualRect(&src, &expect), "Got source rect %s.\n", wine_dbgstr_rect(&src)); + SetRect(&expect, 0, 0, 640, 480); + ok(EqualRect(&dst, &expect), "Got dest rect %s.\n", wine_dbgstr_rect(&dst)); + out: ref = IFilterGraph2_Release(graph); ok(!ref, "Got outstanding refcount %d.\n", ref); diff --git a/dlls/quartz/vmr9.c b/dlls/quartz/vmr9.c index 776d927f2a..449943f2dc 100644 --- a/dlls/quartz/vmr9.c +++ b/dlls/quartz/vmr9.c @@ -106,6 +106,7 @@ struct quartz_vmr LONG VideoWidth; LONG VideoHeight; + VMR9AspectRatioMode aspect_mode; HANDLE run_event; }; @@ -1715,18 +1716,26 @@ static HRESULT WINAPI VMR9WindowlessControl_GetVideoPosition(IVMRWindowlessContr static HRESULT WINAPI VMR9WindowlessControl_GetAspectRatioMode(IVMRWindowlessControl9 *iface, DWORD *mode) { - struct quartz_vmr *This = impl_from_IVMRWindowlessControl9(iface); + struct quartz_vmr *filter = impl_from_IVMRWindowlessControl9(iface); - FIXME("(%p/%p)->(...) stub\n", iface, This); - return E_NOTIMPL; + TRACE("filter %p, mode %p.\n", filter, mode); + + EnterCriticalSection(&filter->renderer.filter.csFilter); + *mode = filter->aspect_mode; + LeaveCriticalSection(&filter->renderer.filter.csFilter); + return S_OK; } static HRESULT WINAPI VMR9WindowlessControl_SetAspectRatioMode(IVMRWindowlessControl9 *iface, DWORD mode) { - struct quartz_vmr *This = impl_from_IVMRWindowlessControl9(iface); + struct quartz_vmr *filter = impl_from_IVMRWindowlessControl9(iface); - FIXME("(%p/%p)->(...) stub\n", iface, This); - return E_NOTIMPL; + TRACE("filter %p, mode %u.\n", filter, mode); + + EnterCriticalSection(&filter->renderer.filter.csFilter); + filter->aspect_mode = mode; + LeaveCriticalSection(&filter->renderer.filter.csFilter); + return S_OK; } static HRESULT WINAPI VMR9WindowlessControl_SetVideoClippingWindow(IVMRWindowlessControl9 *iface, HWND window) @@ -2625,37 +2634,59 @@ static HRESULT VMR9_ImagePresenter_PresentOffscreenSurface(struct default_presen static HRESULT WINAPI VMR9_ImagePresenter_PresentImage(IVMRImagePresenter9 *iface, DWORD_PTR cookie, VMR9PresentationInfo *info) { - struct default_presenter *This = impl_from_IVMRImagePresenter9(iface); + struct default_presenter *presenter = impl_from_IVMRImagePresenter9(iface); + const struct quartz_vmr *filter = presenter->pVMR9; + IDirect3DDevice9 *device = presenter->d3d9_dev; + const RECT src = filter->window.src; + RECT dst = filter->window.dst; HRESULT hr; - BOOL render = FALSE; - TRACE("presenter %p, cookie %#Ix, info %p.\n", This, cookie, info); + TRACE("presenter %p, cookie %#Ix, info %p.\n", presenter, cookie, info); /* This might happen if we don't have active focus (eg on a different virtual desktop) */ - if (!This->d3d9_dev) + if (!device) return S_OK; - /* Display image here */ - hr = IDirect3DDevice9_Clear(This->d3d9_dev, 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0); - if (FAILED(hr)) - FIXME("hr: %08x\n", hr); - hr = IDirect3DDevice9_BeginScene(This->d3d9_dev); - if (SUCCEEDED(hr)) - { - hr = VMR9_ImagePresenter_PresentOffscreenSurface(This, info->lpSurf); - render = SUCCEEDED(hr); - } - else - FIXME("BeginScene: %08x\n", hr); - hr = IDirect3DDevice9_EndScene(This->d3d9_dev); - if (render && SUCCEEDED(hr)) + if (FAILED(hr = IDirect3DDevice9_Clear(device, 0, NULL, D3DCLEAR_TARGET, + D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0))) + ERR("Failed to clear, hr %#x.\n", hr); + + if (FAILED(hr = IDirect3DDevice9_BeginScene(device))) + ERR("Failed to begin scene, hr %#x.\n", hr); + + VMR9_ImagePresenter_PresentOffscreenSurface(presenter, info->lpSurf); + + if (FAILED(hr = IDirect3DDevice9_EndScene(device))) + ERR("Failed to end scene, hr %#x.\n", hr); + + if (filter->aspect_mode == VMR9ARMode_LetterBox) { - hr = IDirect3DDevice9_Present(This->d3d9_dev, &This->pVMR9->window.src, - &This->pVMR9->window.dst, NULL, NULL); - if (FAILED(hr)) - FIXME("Presenting image: %08x\n", hr); + unsigned int src_width = src.right - src.left, src_height = src.bottom - src.top; + unsigned int dst_width = dst.right - dst.left, dst_height = dst.bottom - dst.top; + + if (src_width * dst_height > dst_width * src_height) + { + /* src is "wider" than dst. */ + unsigned int dst_center = (dst.top + dst.bottom) / 2; + unsigned int scaled_height = src_height * dst_width / src_width; + + dst.top = dst_center - scaled_height / 2; + dst.bottom = dst.top + scaled_height; + } + else if (src_width * dst_height < dst_width * src_height) + { + /* src is "taller" than dst. */ + unsigned int dst_center = (dst.left + dst.right) / 2; + unsigned int scaled_width = src_width * dst_height / src_height; + + dst.left = dst_center - scaled_width / 2; + dst.right = dst.left + scaled_width; + } } + if (FAILED(hr = IDirect3DDevice9_Present(device, &src, &dst, NULL, NULL))) + ERR("Failed to present, hr %#x.\n", hr); + return S_OK; }
1
0
0
0
Zebediah Figura : quartz/vmr9: Trace the arguments to IVMRWindowlessControl9::SetVideoPosition().
by Alexandre Julliard
15 Jun '20
15 Jun '20
Module: wine Branch: master Commit: 8dcd253e06b0e4ae4a6611c6f5e89e9ad00678cd URL:
https://source.winehq.org/git/wine.git/?a=commit;h=8dcd253e06b0e4ae4a6611c6…
Author: Zebediah Figura <zfigura(a)codeweavers.com> Date: Fri Jun 12 16:28:26 2020 -0500 quartz/vmr9: Trace the arguments to IVMRWindowlessControl9::SetVideoPosition(). Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/quartz/vmr9.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/dlls/quartz/vmr9.c b/dlls/quartz/vmr9.c index 4ea3b483a7..776d927f2a 100644 --- a/dlls/quartz/vmr9.c +++ b/dlls/quartz/vmr9.c @@ -1679,20 +1679,21 @@ static HRESULT WINAPI VMR9WindowlessControl_GetMaxIdealVideoSize(IVMRWindowlessC return E_NOTIMPL; } -static HRESULT WINAPI VMR9WindowlessControl_SetVideoPosition(IVMRWindowlessControl9 *iface, const RECT *source, const RECT *dest) +static HRESULT WINAPI VMR9WindowlessControl_SetVideoPosition(IVMRWindowlessControl9 *iface, + const RECT *src, const RECT *dst) { - struct quartz_vmr *This = impl_from_IVMRWindowlessControl9(iface); + struct quartz_vmr *filter = impl_from_IVMRWindowlessControl9(iface); - TRACE("(%p/%p)->(%p, %p)\n", iface, This, source, dest); + TRACE("filter %p, src %s, dst %s.\n", filter, wine_dbgstr_rect(src), wine_dbgstr_rect(dst)); - EnterCriticalSection(&This->renderer.filter.csFilter); + EnterCriticalSection(&filter->renderer.filter.csFilter); - if (source) - This->window.src = *source; - if (dest) - This->window.dst = *dest; + if (src) + filter->window.src = *src; + if (dst) + filter->window.dst = *dst; - LeaveCriticalSection(&This->renderer.filter.csFilter); + LeaveCriticalSection(&filter->renderer.filter.csFilter); return S_OK; }
1
0
0
0
Zebediah Figura : include: Correct the name of WAVEBANKMINIWAVEFORMAT.
by Alexandre Julliard
15 Jun '20
15 Jun '20
Module: wine Branch: master Commit: 362ed8c2d5ff11c49ce42c0979048c068356758f URL:
https://source.winehq.org/git/wine.git/?a=commit;h=362ed8c2d5ff11c49ce42c09…
Author: Zebediah Figura <z.figura12(a)gmail.com> Date: Fri Jun 12 17:59:41 2020 -0500 include: Correct the name of WAVEBANKMINIWAVEFORMAT. Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com> Signed-off-by: Vijay Kiran Kamuju <infyquest(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- include/xact3wb.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/xact3wb.h b/include/xact3wb.h index c68d7a30fa..81b1518930 100644 --- a/include/xact3wb.h +++ b/include/xact3wb.h @@ -138,7 +138,7 @@ typedef struct WAVEBANKDATA DWORD dwEntryMetaDataElementSize; DWORD dwEntryNameElementSize; DWORD dwAlignment; - WAVEBANKMINIFORMAT CompactFormat; + WAVEBANKMINIWAVEFORMAT CompactFormat; FILETIME BuildTime; } WAVEBANKDATA, *LPWAVEBANKDATA; typedef const WAVEBANKDATA *LPCWAVEBANKDATA;
1
0
0
0
← Newer
1
...
42
43
44
45
46
47
48
...
95
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
Results per page:
10
25
50
100
200