Wine msn webcam patch (Attempt 2)

Mike McCormack mike at codeweavers.com
Sun Apr 10 00:22:24 CDT 2005


Hi Maarten,

Maarten Lankhorst wrote:
> I've been trying to get msn webcam to work again, and I found out that 

Cool!  The next step is probably to break up your patch a little, and 
submit it in smaller chunks.  If you'd like I'm willing to help you do that.

> diff -Nru wine-old/dlls/devenum/createdevenum.c wine-new/dlls/devenum/createdevenum.c
> diff -Nru wine-old/dlls/devenum/devenum_main.c wine-new/dlls/devenum/devenum_main.c

These two look like one chunk.

> diff -Nru wine-old/dlls/qcap/main.c wine-new/dlls/qcap/main.c
> diff -Nru wine-old/dlls/qcap/Makefile.in wine-new/dlls/qcap/Makefile.in
> diff -Nru wine-old/dlls/qcap/qcap_main.c wine-new/dlls/qcap/qcap_main.c
> diff -Nru wine-old/dlls/qcap/qcap_private.h wine-new/dlls/qcap/qcap_private.h
> diff -Nru wine-old/dlls/qcap/qcap.spec wine-new/dlls/qcap/qcap.spec
> diff -Nru wine-old/dlls/qcap/regsvr.c wine-new/dlls/qcap/regsvr.c

And one more chunk.  You might reconsider deleting qcap_main.c, and 
instead add you main.c implementation in there.

> +/******************************************************************************
> + * DirectShow ClassFactory
> + */
> +typedef struct {
> +    IClassFactory ITF_IClassFactory;
> +
> +    DWORD ref;
> +    HRESULT (*pfnCreateInstance)(IUnknown *pUnkOuter, LPVOID *ppObj);
> +} IClassFactoryImpl;

ClassFactories don't need to be allocated and freed, so it's sufficient 
to use a statically allocated IClassFactoryImpl, where AddRef and 
Release return 2 and 1 respectively.

+ * Copyright 2005

You need to add your name after the copyright.

> diff -Nru wine-old/dlls/quartz/capturegraph.c wine-new/dlls/quartz/capturegraph.c
> diff -Nru wine-old/dlls/quartz/filesource.c wine-new/dlls/quartz/filesource.c
> diff -Nru wine-old/dlls/quartz/filtergraph.c wine-new/dlls/quartz/filtergraph.c
> diff -Nru wine-old/dlls/quartz/main.c wine-new/dlls/quartz/main.c
> diff -Nru wine-old/dlls/quartz/Makefile.in wine-new/dlls/quartz/Makefile.in
> diff -Nru wine-old/dlls/quartz/quartz_private.h wine-new/dlls/quartz/quartz_private.h
> diff -Nru wine-old/dlls/quartz/regsvr.c wine-new/dlls/quartz/regsvr.c
> diff -Nru wine-old/dlls/quartz/v4wsource.c wine-new/dlls/quartz/v4wsource.c

And this looks like it's still a bit of a work in progress.  There's 
probably quite a few patches in there.

> +/* Copyright 2005 Maarten Lankhorst, Goal is to get MSN's webcam function to work..

Better to put the description on one line first, and the Copyright 
message below it, as described in the COPYING file on line 473.

> +   return E_FAIL;

return E_NOIMPL for stuff that isn't implemented.

> +static HRESULT WINAPI CaptureGraphBuilder_FindInterface(ICaptureGraphBuilder * iface, const GUID *pCategory, IBaseFilter *pf, REFIID riid, void **ppint)
> +{
> +   struct CaptureGraphImpl *This = (CaptureGraphImpl *)iface;
> +   TRACE("%p: %s .. %p .. %s .. %p - unwanted untested unguaranteed unwarranted unreliable stub workaround!\n", iface, qzdebugstr_guid(pCategory), pf, qzdebugstr_guid(riid), *ppint);
> +   return IBaseFilter_QueryInterface(pf, riid, ppint);
> +   /* Looks for the specified interface on the filter, upstream and downstream from the filter, and, optionally, only on the output pin of the given category. */
> +}

Keeping you lines short will make it easier to read.

> --- wine-old/dlls/quartz/Makefile.in	2005-02-10 18:13:18.000000000 +0100
> +++ wine-new/dlls/quartz/Makefile.in	2005-04-09 16:11:35.000000000 +0200
> @@ -28,6 +28,8 @@
>  	systemclock.c \
>  	transform.c \
>  	videorenderer.c \
> +	v4wsource.c \
> +	capturegraph.c \
>  	waveparser.c

Better keep the list in alphabetical order.

> + * LETS SING IT ALL TOGETHER NOW! ON MY MARK!
> + * COM SUCKS ASS!

Indeed :)

> diff -Nru wine-old/include/axextend.idl wine-new/include/axextend.idl

> +interface IAMStreamConfig : IUnknown

We've added this one for you already (in the CVS).

Mike



More information about the wine-devel mailing list