[PATCH 3/3] dpwsockx: Implementation of GetCaps callback
Ismael Barros
razielmine at gmail.com
Fri Aug 28 21:33:34 CDT 2009
---
dlls/dpwsockx/dpwsockx_dll.h | 9 +++++++++
dlls/dpwsockx/dpwsockx_main.c | 24 ++++++++++++++++++++++++
2 files changed, 33 insertions(+), 0 deletions(-)
diff --git a/dlls/dpwsockx/dpwsockx_dll.h b/dlls/dpwsockx/dpwsockx_dll.h
index 461b3fa..1a09f6e 100644
--- a/dlls/dpwsockx/dpwsockx_dll.h
+++ b/dlls/dpwsockx/dpwsockx_dll.h
@@ -26,6 +26,15 @@
#include "wine/dplaysp.h"
+#define DPWS_TIMEOUT 5000
+#define DPWS_BUFFER_SIZE 65507
+#define DPWS_GUARANTEED_BUFFER_SIZE 1048575
+
+#define DPWS_PORT_RANGE_START 2300
+#define DPWS_PORT_RANGE_END 2400
+#define DPWS_DPLAYSRV_PORT 47624
+
+
typedef struct tagDPWS_THREADDATA
{
BOOL isRunning;
diff --git a/dlls/dpwsockx/dpwsockx_main.c b/dlls/dpwsockx/dpwsockx_main.c
index c010f00..70fd21c 100644
--- a/dlls/dpwsockx/dpwsockx_main.c
+++ b/dlls/dpwsockx/dpwsockx_main.c
@@ -108,6 +108,30 @@ static HRESULT WINAPI DPWSCB_GetCaps( LPDPSP_GETCAPSDATA data )
{
TRACE( "(%d,%p,0x%08x,%p)\n",
data->idPlayer, data->lpCaps, data->dwFlags, data->lpISP );
+
+ data->lpCaps->dwFlags = ( DPCAPS_ASYNCSUPPORTED |
+ DPCAPS_GUARANTEEDOPTIMIZED |
+ DPCAPS_GUARANTEEDSUPPORTED );
+ data->lpCaps->dwMaxQueueSize = 0;
+ data->lpCaps->dwHundredBaud = 0;
+ data->lpCaps->dwLatency = 500;
+ data->lpCaps->dwMaxLocalPlayers = 65536;
+ data->lpCaps->dwHeaderLength = sizeof(DPSP_MSG_HEADER);
+ data->lpCaps->dwTimeout = DPWS_TIMEOUT;
+
+ if ( data->dwFlags & DPGETCAPS_GUARANTEED )
+ {
+ data->lpCaps->dwMaxBufferSize = DPWS_GUARANTEED_BUFFER_SIZE;
+ data->lpCaps->dwMaxPlayers = 64;
+ }
+ else
+ {
+ data->lpCaps->dwMaxBufferSize = DPWS_BUFFER_SIZE;
+ data->lpCaps->dwMaxPlayers = data->lpCaps->dwMaxLocalPlayers;
+ }
+
+ /* Substract size of service provider header */
+ data->lpCaps->dwMaxBufferSize -= sizeof(DPSP_MSG_HEADER);
return DP_OK;
}
--
1.6.4.1
More information about the wine-patches
mailing list