[PATCH 1/2] dpwsockx: Implementation of GetCaps callback
Ismael Barros
razielmine at gmail.com
Sun Sep 13 14:58:47 CDT 2009
---
dlls/dpwsockx/dpwsockx_dll.h | 16 ++++++++++++++++
dlls/dpwsockx/dpwsockx_main.c | 29 +++++++++++++++++++++++++++--
2 files changed, 43 insertions(+), 2 deletions(-)
diff --git a/dlls/dpwsockx/dpwsockx_dll.h b/dlls/dpwsockx/dpwsockx_dll.h
index a9454da..fa9ecec 100644
--- a/dlls/dpwsockx/dpwsockx_dll.h
+++ b/dlls/dpwsockx/dpwsockx_dll.h
@@ -26,6 +26,22 @@
#include "wine/dplaysp.h"
+#define DPWS_MAXQUEUESIZE 0
+#define DPWS_HUNDREDBAUD 0
+#define DPWS_LATENCY 500
+#define DPWS_MAXLOCALPLAYERS 65536
+#define DPWS_TIMEOUT 5000
+#define DPWS_MAXBUFFERSIZE 65507
+#define DPWS_MAXPLAYERS 65536
+#define DPWS_GUARANTEED_MAXBUFFERSIZE 1048575
+#define DPWS_GUARANTEED_MAXPLAYERS 64
+
+#define DPWS_PORT_RANGE_START 2300
+#define DPWS_PORT_RANGE_END 2400
+#define DPWS_DPLAYSRV_PORT 47624
+
+
+
typedef struct tagDPWS_THREADDATA
{
BOOL is_running;
diff --git a/dlls/dpwsockx/dpwsockx_main.c b/dlls/dpwsockx/dpwsockx_main.c
index ff6f5b5..f4e571c 100644
--- a/dlls/dpwsockx/dpwsockx_main.c
+++ b/dlls/dpwsockx/dpwsockx_main.c
@@ -104,9 +104,34 @@ static HRESULT WINAPI DPWSCB_GetAddress( LPDPSP_GETADDRESSDATA data )
static HRESULT WINAPI DPWSCB_GetCaps( LPDPSP_GETCAPSDATA data )
{
- FIXME( "(%d,%p,0x%08x,%p)\n",
+ TRACE( "(%d,%p,0x%08x,%p)\n",
data->idPlayer, data->lpCaps, data->dwFlags, data->lpISP );
- return DPERR_UNSUPPORTED;
+
+ data->lpCaps->dwFlags = ( DPCAPS_ASYNCSUPPORTED |
+ DPCAPS_GUARANTEEDOPTIMIZED |
+ DPCAPS_GUARANTEEDSUPPORTED );
+
+ data->lpCaps->dwMaxQueueSize = DPWS_MAXQUEUESIZE;
+ data->lpCaps->dwHundredBaud = DPWS_HUNDREDBAUD;
+ data->lpCaps->dwLatency = DPWS_LATENCY;
+ data->lpCaps->dwMaxLocalPlayers = DPWS_MAXLOCALPLAYERS;
+ data->lpCaps->dwHeaderLength = sizeof(DPSP_MSG_HEADER);
+ data->lpCaps->dwTimeout = DPWS_TIMEOUT;
+
+ if ( data->dwFlags & DPGETCAPS_GUARANTEED )
+ {
+ data->lpCaps->dwMaxBufferSize = DPWS_GUARANTEED_MAXBUFFERSIZE;
+ data->lpCaps->dwMaxPlayers = DPWS_GUARANTEED_MAXPLAYERS;
+ }
+ else
+ {
+ data->lpCaps->dwMaxBufferSize = DPWS_MAXBUFFERSIZE;
+ data->lpCaps->dwMaxPlayers = DPWS_MAXPLAYERS;
+ }
+
+ data->lpCaps->dwMaxBufferSize -= sizeof(DPSP_MSG_HEADER);
+
+ return DP_OK;
}
static HRESULT WINAPI DPWSCB_Open( LPDPSP_OPENDATA data )
--
1.6.4.2
More information about the wine-patches
mailing list