Am Donnerstag, den 30.04.2009, 11:53 +1000 schrieb Craig Southeren: > Eugen Dedu wrote: > > ..deleted > > > > > We are stuck with this bug, because upstream does not help. What can we > > do...? > > If upstream means Opal, then I think this is being a bit unfair. > > I use Opal/PTLib on Windows and Linux every day. On both these operating > systems, there is no problem. > > We are extremely busy maintaining support for these two operating > systems using their native compilers (gcc and MSVC), as well as bringing > in new code and features. > > I've tried to cross-compile Ekiga for Windows, but it requires a debian > box with the latest dev code (Sid?) and I simply can't dedicate a whole > machine for this purpose, northe time it would take to make it work. > > Now, if I could cross-compile ekiga on a Fedora box then I would be > REALLY interested..... :) > > Craig
My contribution seems to fit in here: Good news devices are back in Ekiga. Please correct me if I am wrong. Win32 Ekiga uses ptlib plugins statically linked. However, current Ekiga code relies on dynamic plugins or every static plugin being automatically linked in. E.g. Ekiga knows about PVideoInputDevice but not about VideoForWindows. After replacement of the PWLibStupidLinkerHacks in ptlib the linker has no hint that Ekiga wants VideoForWindows and alike. So I would suggest a Win32 specific file which picks up the global consts offered by ptlib as needed - see attached patch. I had to change the macro from include/ptlib/plugin.h because Mingw32 would only do right with "const * somevar" and not with "* const somevar". I guess that that could be changed in ptlib. What do you think about this kind of solution. Regards Michael
diff -urN ekiga.orig/src/Makefile.am ekiga/src/Makefile.am --- ekiga.orig/src/Makefile.am 2009-05-01 09:22:30.635647211 +0200 +++ ekiga/src/Makefile.am 2009-05-01 09:26:36.791042703 +0200 @@ -87,7 +87,8 @@ # resources if WIN32 -ekiga_SOURCES += \ +ekiga_SOURCES += \ + $(top_srcdir)/win32/plugin-gconst.cpp \ $(top_srcdir)/win32/ekiga-rc.rc endif diff -urN ekiga.orig/win32/plugin-gconst.cpp ekiga/win32/plugin-gconst.cpp --- ekiga.orig/win32/plugin-gconst.cpp 1970-01-01 01:00:00.000000000 +0100 +++ ekiga/win32/plugin-gconst.cpp 2009-05-01 09:19:20.607042000 +0200 @@ -0,0 +1,19 @@ +#define PPLUGIN_STATIC_LOAD(serviceName, serviceType) \ + class PPlugin_##serviceType##_##serviceName##_Registration; \ + extern PPlugin_##serviceType##_##serviceName##_Registration PPlugin_##serviceType##_##serviceName##_Registration_Instance; \ + PPlugin_##serviceType##_##serviceName##_Registration const *PPlugin_##serviceType##_##serviceName##_Registration_Static_Library_Loader = &PPlugin_##serviceType##_##serviceName##_Registration_Instance; + +#include "ptbuildopts.h" + +#if P_AUDIO + PPLUGIN_STATIC_LOAD(WindowsMultimedia, PSoundChannel); +#endif + +#if P_DIRECTSHOW + PPLUGIN_STATIC_LOAD(DirectShow, PVideoInputDevice); +#endif + +#if P_VFW_CAPTURE + PPLUGIN_STATIC_LOAD(VideoForWindows, PVideoInputDevice); +#endif +
_______________________________________________ Ekiga-devel-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/ekiga-devel-list
