[ekiga/gnome-2-26] Add back plugin devices



commit 9177b5891920a2deb0f831162717668d86382226
Author: Michael Rickmann <mrickma gwdg de>
Date:   Tue May 19 14:01:43 2009 +0200

    Add back plugin devices
    
    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.
---
 src/Makefile.am         |    3 ++-
 win32/plugin-gconst.cpp |   19 +++++++++++++++++++
 2 files changed, 21 insertions(+), 1 deletions(-)

diff --git a/src/Makefile.am b/src/Makefile.am
index 6614ffe..5e658a2 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -87,7 +87,8 @@ ekiga_SOURCES +=				\
 
 # resources
 if WIN32
-ekiga_SOURCES +=                   	\
+ekiga_SOURCES +=                   		\
+	$(top_srcdir)/win32/plugin-gconst.cpp	\
 	$(top_srcdir)/win32/ekiga-rc.rc
 endif
 
diff --git a/win32/plugin-gconst.cpp b/win32/plugin-gconst.cpp
new file mode 100644
index 0000000..3f1f3c5
--- /dev/null
+++ b/win32/plugin-gconst.cpp
@@ -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
+



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]