[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