From fcb78cba3f049a660316952523cc5c799d60bfe5 Mon Sep 17 00:00:00 2001 From: Lyubomir Marinov Date: Wed, 20 Jun 2012 02:01:01 +0000 Subject: [PATCH] Commits an initial version of the libjitsi library which should be fully functional with respect to neomedia/MediaService and should be usable with and without OSGi. --- .../windows/msofficecomm/NoStdCPlusPlus.cxx | 11 ------ src/native/windows/msofficecomm/build-x64.sh | 37 ------------------ src/native/windows/msofficecomm/build-x86.sh | 37 ------------------ src/native/windows/msofficecomm/msgrua.tlb | Bin 31476 -> 0 bytes .../neomedia/device/DeviceConfiguration.java | 6 +-- .../protocol/portaudio/PortAudioStream.java | 33 +++++++++++----- 6 files changed, 27 insertions(+), 97 deletions(-) delete mode 100644 src/native/windows/msofficecomm/NoStdCPlusPlus.cxx delete mode 100755 src/native/windows/msofficecomm/build-x64.sh delete mode 100755 src/native/windows/msofficecomm/build-x86.sh delete mode 100644 src/native/windows/msofficecomm/msgrua.tlb diff --git a/src/native/windows/msofficecomm/NoStdCPlusPlus.cxx b/src/native/windows/msofficecomm/NoStdCPlusPlus.cxx deleted file mode 100644 index 0662baf93..000000000 --- a/src/native/windows/msofficecomm/NoStdCPlusPlus.cxx +++ /dev/null @@ -1,11 +0,0 @@ -/* - * Jitsi, the OpenSource Java VoIP and Instant Messaging client. - * - * Distributable under LGPL license. - * See terms of license at gnu.org. - */ -#include - -void * operator new (size_t size) { return ::malloc(size); } -void operator delete (void *ptr) { ::free(ptr); } -void *__cxa_pure_virtual = NULL; diff --git a/src/native/windows/msofficecomm/build-x64.sh b/src/native/windows/msofficecomm/build-x64.sh deleted file mode 100755 index b6292a3ef..000000000 --- a/src/native/windows/msofficecomm/build-x64.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/sh - -CC=x86_64-w64-mingw32-gcc -JAVA_HOME=$HOME/Downloads/jdk-7u4-windows-i586 -OCSDK_HOME=$HOME/Downloads/OCSDK -WINVER=0x0501 - -BASE_DIR=`dirname $0` -if [ "x${BASE_DIR}" = "x" ]; then - BASE_DIR=. -else - BASE_DIR=`cd ${BASE_DIR}/../../../../ && pwd` -fi -SRC_DIR=${BASE_DIR}/src/native/windows/msofficecomm -STRIP=`echo ${CC} | sed 's/gcc/strip/'` -TARGET=${BASE_DIR}/lib/native/windows-64/jmsofficecomm.dll - -for CXX_FILE in ${SRC_DIR}/*.cxx; do - ${CC} \ - -c \ - -D_JNI_IMPLEMENTATION_ -D_UNICODE -DUNICODE -D_WIN32_WINNT=${WINVER} -DWINVER=${WINVER} \ - -fno-exceptions -fno-rtti \ - -I${JAVA_HOME}/include -I${JAVA_HOME}/include/win32 -I${OCSDK_HOME} \ - -O2 \ - -Wall \ - -x 'c++' \ - ${CXX_FILE} \ - -o ${SRC_DIR}/`basename ${CXX_FILE} .cxx`.o -done -${CC} \ - -shared \ - -Wl,--kill-at \ - ${SRC_DIR}/*.o \ - ${SRC_DIR}/*.res \ - -o ${TARGET} \ - -lole32 -loleaut32 -luuid -${STRIP} -x ${TARGET} diff --git a/src/native/windows/msofficecomm/build-x86.sh b/src/native/windows/msofficecomm/build-x86.sh deleted file mode 100755 index 584c711a3..000000000 --- a/src/native/windows/msofficecomm/build-x86.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/sh - -CC=i686-w64-mingw32-gcc -JAVA_HOME=$HOME/Downloads/jdk-7u4-windows-i586 -OCSDK_HOME=$HOME/Downloads/OCSDK -WINVER=0x0501 - -BASE_DIR=`dirname $0` -if [ "x${BASE_DIR}" = "x" ]; then - BASE_DIR=. -else - BASE_DIR=`cd ${BASE_DIR}/../../../../ && pwd` -fi -SRC_DIR=${BASE_DIR}/src/native/windows/msofficecomm -STRIP=`echo ${CC} | sed 's/gcc/strip/'` -TARGET=${BASE_DIR}/lib/native/windows/jmsofficecomm.dll - -for CXX_FILE in ${SRC_DIR}/*.cxx; do - ${CC} \ - -c \ - -D_JNI_IMPLEMENTATION_ -D_UNICODE -DUNICODE -D_WIN32_WINNT=${WINVER} -DWINVER=${WINVER} \ - -fno-exceptions -fno-rtti \ - -I${JAVA_HOME}/include -I${JAVA_HOME}/include/win32 -I${OCSDK_HOME} \ - -O2 \ - -Wall \ - -x 'c++' \ - ${CXX_FILE} \ - -o ${SRC_DIR}/`basename ${CXX_FILE} .cxx`.o -done -${CC} \ - -shared \ - -Wl,--kill-at \ - ${SRC_DIR}/*.o \ - ${SRC_DIR}/*.res \ - -o ${TARGET} \ - -lole32 -loleaut32 -luuid -${STRIP} -x ${TARGET} diff --git a/src/native/windows/msofficecomm/msgrua.tlb b/src/native/windows/msofficecomm/msgrua.tlb deleted file mode 100644 index 86e3ef94f2bff17c6ebb08c5b2aa374f231e6a92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31476 zcmc(I4U|+@mF|K5tN#C?f#xr{O%U3o)44z=smUX;ny!W})7@2e7Ziyk-33*o%M?|W zu4;ZFqiu#5oZ*e=i;7NW*-wcNl^IE7G%Aj`9y;hS6I7mJ%u~jPFHw23aE6(O%9!_k z=iGCDs=J|`HEX@I*wnq}?6dbi`|PvN|Ly*v4biz`j$o)Pl|P~jKPpBDQ$^YT--CqV zdFu5Igcdv+fC&Ke=zIx0p8>QZ;t=2}V9Q(~P6CV)A@&1a2lRpGaX@pK5PJZx0s`ei z90B+$gh&I<0Xls`90ptmj8qD78qiiH#6iFnK(tzjmjFv^APe9Uptn|tV}OP_Aqs#C zfOYjkOae+9gct>!1(=OOJPWu6*xH0N$ao6BEFVzC!G%JAoc(?n?@L|pX}lY*_tVWv zA3A?@%d&zM-2Mi{Y)OHIy(@@Xq`I)4;W2R&@}xw;i2)EozE*nE+=Pe5BQBp;wpNJfBYaa~HuZ5FzJsBd7UNisUOrfXI7X{) z1|F92Xk`3qnrCjpL*p?kpI5e4io?HWIehSUI=^~y__G`%IugI+VYF7wz+Ay( zw0wsw9{Qaa`kA`g<7BaPRXYQZnd|(>O?YU2ns?{&Ix#U#Ii_+ze}qib)kXAY3{!P= zLh6eBX{oqF;*j6U)_PGhB46cyv(eQxi$}4%BtTuU572=)Mr*?iJf@aJ(`-Rs%%I=h z&*V`Y-?_X|L`I0Ef-c8Y4(R8BLR}rPc=%n$N4j&wNm&k#H_F7Fk|5((wl;~HxWxcJ znuinPJQ1I7r*Be@NhgbCSMz4zVL84ce7;_~2@fp`arxZ2yjh%^rW_bTObJ&ILtQlh z7|u-5l_7P-yx#tNzA(4REb_nE=*n;LD3+H5Sm(zjCG{V1jMfD+@R-U?(~R7NhsGlp zKCf(DD4zX2%W>r~K2&By z1IBRHIKIVYdgM1pjLP~b=H0n`v8Z{6Lrd3!Wu8s~o(%AyU7h4u7hwg)=sGAK(HZP& zi7<9*%-OZUODzh&SYF0bSM&!u5XWd;Is*?~B8~0RKgQ?`Gw~>n?_9o2?4PC_Q#rtw zTe>=8@wj63xtiY`F(S*s`A&&YV<+WS{x!4k2cF74qAN`@kncq zNJt)>N0kbtP{rd`k)DQ!E4$5V)Z%f#;&H`=qcg11C z;&EY#N=dtnPx06)d2k+BB9wuva6HP0qa`>m^v9k3xajc**XV*T`77xFRZhM>~9%4x}|l%v2vM#i?

FCPk?(D>i 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