diff --git a/.classpath b/.classpath deleted file mode 100644 index 3d25868..0000000 --- a/.classpath +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/.project b/.project deleted file mode 100644 index a3900a2..0000000 --- a/.project +++ /dev/null @@ -1,49 +0,0 @@ - - - MainActivity - - - - - - org.eclipse.andmore.ResourceManagerBuilder - - - - - org.eclipse.andmore.PreCompilerBuilder - - - - - com.android.ide.eclipse.adt.ResourceManagerBuilder - - - - - com.android.ide.eclipse.adt.PreCompilerBuilder - - - - - org.eclipse.jdt.core.javabuilder - - - - - com.android.ide.eclipse.adt.ApkBuilder - - - - - org.eclipse.andmore.ApkBuilder - - - - - - org.eclipse.andmore.AndroidNature - com.android.ide.eclipse.adt.AndroidNature - org.eclipse.jdt.core.javanature - - diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 48ab4c6..0000000 --- a/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 -org.eclipse.jdt.core.compiler.compliance=1.6 -org.eclipse.jdt.core.compiler.source=1.6 diff --git a/Android.mk b/Android.mk new file mode 100644 index 0000000..988356a --- /dev/null +++ b/Android.mk @@ -0,0 +1,24 @@ +LOCAL_PATH:= $(call my-dir) +include $(CLEAR_VARS) + +LOCAL_MODULE_TAGS := optional + +LOCAL_SRC_FILES := $(call all-subdir-java-files) + +LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4 org.apache.http.legacy + +LOCAL_JNI_SHARED_LIBRARIES := libapplication \ + libsdl-1.2 \ + libsdl_main \ + libsdl_native_helpers \ + libsdl_ttf \ + +# TODO: enable proguard once development has settled down +#LOCAL_PROGUARD_FLAG_FILES := proguard.flags +LOCAL_PROGUARD_ENABLED := disabled + +LOCAL_PACKAGE_NAME := xserver + +include $(BUILD_PACKAGE) + +include $(call all-makefiles-under,$(LOCAL_PATH)) diff --git a/jni/Android.mk b/jni/Android.mk index 5053e7d..b863a53 100644 --- a/jni/Android.mk +++ b/jni/Android.mk @@ -1 +1,5 @@ + +SDL_JAVA_PACKAGE_PATH := x_org_server +SDL_VERSION := 1.2 + include $(call all-subdir-makefiles) diff --git a/jni/application/android-shmem/Android.mk b/jni/application/android-shmem/Android.mk index 04de001..a0766ab 100644 --- a/jni/application/android-shmem/Android.mk +++ b/jni/application/android-shmem/Android.mk @@ -2,10 +2,10 @@ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) -LOCAL_MODULE := android-shmem +LOCAL_MODULE := libandroid-shmem LOCAL_C_INCLUDES := $(LOCAL_PATH) -LOCAL_CFLAGS := -O3 -I$(LOCAL_PATH)/libancillary -D_LINUX_IPC_H +LOCAL_CFLAGS := -O3 -I$(LOCAL_PATH)/libancillary -D_LINUX_IPC_H -DNO_debian_ipc_perm LOCAL_CPP_EXTENSION := .cpp diff --git a/jni/application/android-shmem/sys/shm.h b/jni/application/android-shmem/sys/shm.h index 2656ee1..5d06026 100644 --- a/jni/application/android-shmem/sys/shm.h +++ b/jni/application/android-shmem/sys/shm.h @@ -48,7 +48,7 @@ typedef __key_t key_t; typedef uint32_t __uid_t; typedef uint32_t __gid_t; */ - +#ifdef NO_debian_ipc_perm /* Data structure used to pass permission information to IPC operations. */ struct debian_ipc_perm /* We cannot use Android version, because there are no padding fields */ { @@ -64,7 +64,7 @@ struct debian_ipc_perm /* We cannot use Android version, because there are no pa unsigned long int __unused1; unsigned long int __unused2; }; - +#endif /* Data structure describing a shared memory segment. */ struct shmid_ds { diff --git a/jni/application/libICE-1.0.8/Android.mk b/jni/application/libICE-1.0.8/Android.mk index 4efb0a8..cf22aba 100644 --- a/jni/application/libICE-1.0.8/Android.mk +++ b/jni/application/libICE-1.0.8/Android.mk @@ -7,20 +7,23 @@ LOCAL_SDK_VERSION := 21 LOCAL_MODULE := libICE LOCAL_C_INCLUDES := \ - $(LOCAL_PATH)/../header/include \ + external/XServer-XSDL-android-src/jni/application/header/include \ $(LOCAL_PATH)/include/X11 \ $(LOCAL_PATH)/include/X11/ICE \ - $(LOCAL_PATH) \ + $(LOCAL_PATH)/ \ $(LOCAL_PATH)/include \ LOCAL_CFLAGS := -DHAVE_CONFIG_H -LOCAL_SRC_FILES := \ - $(wildcard $(LOCAL_PATH)/src/*.c) \ +LOCAL_SRCS := \ + src/*.c \ -LOCAL_SHARED_LIBRARIES := xcb Xau Xdmcp X11 Xext Xrender xkbfile -LOCAL_STATIC_LIBRARIES := android_support +LOCAL_SRC_FILES := \ + $(foreach F, $(LOCAL_SRCS), $(addprefix $(dir $(F)),$(notdir $(wildcard $(LOCAL_PATH)/$(F))))) + +LOCAL_SHARED_LIBRARIES := +LOCAL_STATIC_LIBRARIES := libxcb libXau libXdmcp libX11 libXext libXrender libxkbfile LOCAL_LDFLAGS := -pie diff --git a/jni/application/libICE-1.0.8/src/accept.c b/jni/application/libICE-1.0.8/src/accept.c index 6bc40ad..3c8b60b 100644 --- a/jni/application/libICE-1.0.8/src/accept.c +++ b/jni/application/libICE-1.0.8/src/accept.c @@ -47,7 +47,7 @@ IceAcceptConnection ( /* * Accept the connection. - */ + if ((newconn = _IceTransAccept (listenObj->trans_conn, &status)) == NULL) { @@ -57,7 +57,7 @@ IceAcceptConnection ( *statusRet = IceAcceptFailure; return (NULL); } - + */ /* * Set close-on-exec so that programs that fork() don't get confused. diff --git a/jni/application/libICE-1.0.8/src/connect.c b/jni/application/libICE-1.0.8/src/connect.c index b59e94c..540da88 100644 --- a/jni/application/libICE-1.0.8/src/connect.c +++ b/jni/application/libICE-1.0.8/src/connect.c @@ -488,10 +488,10 @@ ConnectToPeer (char *networkIdsList, char **actualConnectionRet) for (retry = ICE_CONNECTION_RETRIES; retry >= 0; retry--) { - if ((trans_conn = _IceTransOpenCOTSClient (address)) == NULL) - { - break; - } + //if ((trans_conn = _IceTransOpenCOTSClient (address)) == NULL) + //{ + // break; + //} if ((connect_stat = _IceTransConnect (trans_conn, address)) < 0) { diff --git a/jni/application/libSM-1.2.2/Android.mk b/jni/application/libSM-1.2.2/Android.mk index ef9366e..669be2b 100644 --- a/jni/application/libSM-1.2.2/Android.mk +++ b/jni/application/libSM-1.2.2/Android.mk @@ -7,20 +7,23 @@ LOCAL_SDK_VERSION := 21 LOCAL_MODULE := libSM LOCAL_C_INCLUDES := \ - $(LOCAL_PATH)/../header/include \ + external/XServer-XSDL-android-src/jni/application/header/include \ $(LOCAL_PATH)/include/X11 \ $(LOCAL_PATH)/include/X11/SM \ - $(LOCAL_PATH) \ + $(LOCAL_PATH)/ \ $(LOCAL_PATH)/include \ LOCAL_CFLAGS := -DHAVE_CONFIG_H -LOCAL_SRC_FILES := \ - $(wildcard $(LOCAL_PATH)/src/*.c) \ +LOCAL_SRCS := \ + src/*.c \ -LOCAL_SHARED_LIBRARIES := xcb Xau Xdmcp X11 Xext Xrender xkbfile ICE -LOCAL_STATIC_LIBRARIES := android_support +LOCAL_SRC_FILES := \ + $(foreach F, $(LOCAL_SRCS), $(addprefix $(dir $(F)),$(notdir $(wildcard $(LOCAL_PATH)/$(F))))) + +LOCAL_SHARED_LIBRARIES := +LOCAL_STATIC_LIBRARIES := libxcb libXau libXdmcp libX11 libXext libXrender libxkbfile libICE #LOCAL_LDFLAGS := -pie diff --git a/jni/application/libX11-1.6.2/Android.mk b/jni/application/libX11-1.6.2/Android.mk index 2b7953a..c2015ce 100644 --- a/jni/application/libX11-1.6.2/Android.mk +++ b/jni/application/libX11-1.6.2/Android.mk @@ -8,8 +8,8 @@ LOCAL_SDK_VERSION := 21 LOCAL_MODULE := libX11 LOCAL_C_INCLUDES := \ - $(LOCAL_PATH)/../header/include \ - $(LOCAL_PATH) \ + external/XServer-XSDL-android-src/jni/application/header/include \ + $(LOCAL_PATH)/ \ $(LOCAL_PATH)/include \ $(LOCAL_PATH)/include/X11 \ $(LOCAL_PATH)/src \ @@ -20,278 +20,281 @@ LOCAL_C_INCLUDES := \ LOCAL_CFLAGS := -DHAVE_CONFIG_H -DXCMSDIR=\"/proc/self/cwd/usr/share/X11\" -DMAXHOSTNAMELEN=255 -LOCAL_SRC_FILES := \ - $(wildcard $(LOCAL_PATH)/src/xcms/*.c) \ - $(wildcard $(LOCAL_PATH)/src/xkb/*.c) \ - $(wildcard $(LOCAL_PATH)/src/xlibi18n/*.c) \ - $(wildcard $(LOCAL_PATH)/modules/im/ximcp/*.c) \ - $(wildcard $(LOCAL_PATH)/modules/lc/def/*.c) \ - $(wildcard $(LOCAL_PATH)/modules/lc/gen/*.c) \ - $(wildcard $(LOCAL_PATH)/modules/lc/Utf8/*.c) \ - $(wildcard $(LOCAL_PATH)/modules/lc/xlocale/*.c) \ - $(wildcard $(LOCAL_PATH)/modules/om/generic/*.c) \ - $(LOCAL_PATH)/src/AllCells.c \ - $(LOCAL_PATH)/src/AllowEv.c \ - $(LOCAL_PATH)/src/AllPlanes.c \ - $(LOCAL_PATH)/src/AutoRep.c \ - $(LOCAL_PATH)/src/Backgnd.c \ - $(LOCAL_PATH)/src/BdrWidth.c \ - $(LOCAL_PATH)/src/Bell.c \ - $(LOCAL_PATH)/src/Border.c \ - $(LOCAL_PATH)/src/ChAccCon.c \ - $(LOCAL_PATH)/src/ChActPGb.c \ - $(LOCAL_PATH)/src/ChClMode.c \ - $(LOCAL_PATH)/src/ChCmap.c \ - $(LOCAL_PATH)/src/ChGC.c \ - $(LOCAL_PATH)/src/ChKeyCon.c \ - $(LOCAL_PATH)/src/ChkIfEv.c \ - $(LOCAL_PATH)/src/ChkMaskEv.c \ - $(LOCAL_PATH)/src/ChkTypEv.c \ - $(LOCAL_PATH)/src/ChkTypWEv.c \ - $(LOCAL_PATH)/src/ChkWinEv.c \ - $(LOCAL_PATH)/src/ChPntCon.c \ - $(LOCAL_PATH)/src/ChProp.c \ - $(LOCAL_PATH)/src/ChSaveSet.c \ - $(LOCAL_PATH)/src/ChWAttrs.c \ - $(LOCAL_PATH)/src/ChWindow.c \ - $(LOCAL_PATH)/src/CirWin.c \ - $(LOCAL_PATH)/src/CirWinDn.c \ - $(LOCAL_PATH)/src/CirWinUp.c \ - $(LOCAL_PATH)/src/ClDisplay.c \ - $(LOCAL_PATH)/src/ClearArea.c \ - $(LOCAL_PATH)/src/Clear.c \ - $(LOCAL_PATH)/src/ConfWind.c \ - $(LOCAL_PATH)/src/Context.c \ - $(LOCAL_PATH)/src/ConvSel.c \ - $(LOCAL_PATH)/src/CopyArea.c \ - $(LOCAL_PATH)/src/CopyCmap.c \ - $(LOCAL_PATH)/src/CopyGC.c \ - $(LOCAL_PATH)/src/CopyPlane.c \ - $(LOCAL_PATH)/src/CrBFData.c \ - $(LOCAL_PATH)/src/CrCmap.c \ - $(LOCAL_PATH)/src/CrCursor.c \ - $(LOCAL_PATH)/src/CrGC.c \ - $(LOCAL_PATH)/src/CrGlCur.c \ - $(LOCAL_PATH)/src/CrPFBData.c \ - $(LOCAL_PATH)/src/CrPixmap.c \ - $(LOCAL_PATH)/src/CrWindow.c \ - $(LOCAL_PATH)/src/Cursor.c \ - $(LOCAL_PATH)/src/DefCursor.c \ - $(LOCAL_PATH)/src/DelProp.c \ - $(LOCAL_PATH)/src/Depths.c \ - $(LOCAL_PATH)/src/DestSubs.c \ - $(LOCAL_PATH)/src/DestWind.c \ - $(LOCAL_PATH)/src/DisName.c \ - $(LOCAL_PATH)/src/DrArc.c \ - $(LOCAL_PATH)/src/DrArcs.c \ - $(LOCAL_PATH)/src/DrLine.c \ - $(LOCAL_PATH)/src/DrLines.c \ - $(LOCAL_PATH)/src/DrPoint.c \ - $(LOCAL_PATH)/src/DrPoints.c \ - $(LOCAL_PATH)/src/DrRect.c \ - $(LOCAL_PATH)/src/DrRects.c \ - $(LOCAL_PATH)/src/DrSegs.c \ - $(LOCAL_PATH)/src/ErrDes.c \ - $(LOCAL_PATH)/src/ErrHndlr.c \ - $(LOCAL_PATH)/src/evtomask.c \ - $(LOCAL_PATH)/src/EvToWire.c \ - $(LOCAL_PATH)/src/FetchName.c \ - $(LOCAL_PATH)/src/FillArc.c \ - $(LOCAL_PATH)/src/FillArcs.c \ - $(LOCAL_PATH)/src/FillPoly.c \ - $(LOCAL_PATH)/src/FillRct.c \ - $(LOCAL_PATH)/src/FillRcts.c \ - $(LOCAL_PATH)/src/FilterEv.c \ - $(LOCAL_PATH)/src/Flush.c \ - $(LOCAL_PATH)/src/Font.c \ - $(LOCAL_PATH)/src/FontInfo.c \ - $(LOCAL_PATH)/src/FontNames.c \ - $(LOCAL_PATH)/src/FreeCmap.c \ - $(LOCAL_PATH)/src/FreeCols.c \ - $(LOCAL_PATH)/src/FreeCurs.c \ - $(LOCAL_PATH)/src/FreeEData.c \ - $(LOCAL_PATH)/src/FreeEventData.c \ - $(LOCAL_PATH)/src/FreeGC.c \ - $(LOCAL_PATH)/src/FreePix.c \ - $(LOCAL_PATH)/src/FSSaver.c \ - $(LOCAL_PATH)/src/FSWrap.c \ - $(LOCAL_PATH)/src/GCMisc.c \ - $(LOCAL_PATH)/src/Geom.c \ - $(LOCAL_PATH)/src/GetAtomNm.c \ - $(LOCAL_PATH)/src/GetColor.c \ - $(LOCAL_PATH)/src/GetDflt.c \ - $(LOCAL_PATH)/src/GetEventData.c \ - $(LOCAL_PATH)/src/GetFPath.c \ - $(LOCAL_PATH)/src/GetFProp.c \ - $(LOCAL_PATH)/src/GetGCVals.c \ - $(LOCAL_PATH)/src/GetGeom.c \ - $(LOCAL_PATH)/src/GetHColor.c \ - $(LOCAL_PATH)/src/GetHints.c \ - $(LOCAL_PATH)/src/GetIFocus.c \ - $(LOCAL_PATH)/src/GetImage.c \ - $(LOCAL_PATH)/src/GetKCnt.c \ - $(LOCAL_PATH)/src/GetMoEv.c \ - $(LOCAL_PATH)/src/GetNrmHint.c \ - $(LOCAL_PATH)/src/GetPCnt.c \ - $(LOCAL_PATH)/src/GetPntMap.c \ - $(LOCAL_PATH)/src/GetProp.c \ - $(LOCAL_PATH)/src/GetRGBCMap.c \ - $(LOCAL_PATH)/src/GetSOwner.c \ - $(LOCAL_PATH)/src/GetSSaver.c \ - $(LOCAL_PATH)/src/GetStCmap.c \ - $(LOCAL_PATH)/src/GetTxtProp.c \ - $(LOCAL_PATH)/src/GetWAttrs.c \ - $(LOCAL_PATH)/src/GetWMCMapW.c \ - $(LOCAL_PATH)/src/GetWMProto.c \ - $(LOCAL_PATH)/src/globals.c \ - $(LOCAL_PATH)/src/GrButton.c \ - $(LOCAL_PATH)/src/GrKeybd.c \ - $(LOCAL_PATH)/src/GrKey.c \ - $(LOCAL_PATH)/src/GrPointer.c \ - $(LOCAL_PATH)/src/GrServer.c \ - $(LOCAL_PATH)/src/Host.c \ - $(LOCAL_PATH)/src/Iconify.c \ - $(LOCAL_PATH)/src/IfEvent.c \ - $(LOCAL_PATH)/src/imConv.c \ - $(LOCAL_PATH)/src/ImText16.c \ - $(LOCAL_PATH)/src/ImText.c \ - $(LOCAL_PATH)/src/ImUtil.c \ - $(LOCAL_PATH)/src/InitExt.c \ - $(LOCAL_PATH)/src/InsCmap.c \ - $(LOCAL_PATH)/src/IntAtom.c \ - $(LOCAL_PATH)/src/KeyBind.c \ - $(LOCAL_PATH)/src/KeysymStr.c \ - $(LOCAL_PATH)/src/KillCl.c \ - $(LOCAL_PATH)/src/LiHosts.c \ - $(LOCAL_PATH)/src/LiICmaps.c \ - $(LOCAL_PATH)/src/LiProps.c \ - $(LOCAL_PATH)/src/ListExt.c \ - $(LOCAL_PATH)/src/LoadFont.c \ - $(LOCAL_PATH)/src/LockDis.c \ - $(LOCAL_PATH)/src/locking.c \ - $(LOCAL_PATH)/src/LookupCol.c \ - $(LOCAL_PATH)/src/LowerWin.c \ - $(LOCAL_PATH)/src/Macros.c \ - $(LOCAL_PATH)/src/MapRaised.c \ - $(LOCAL_PATH)/src/MapSubs.c \ - $(LOCAL_PATH)/src/MapWindow.c \ - $(LOCAL_PATH)/src/MaskEvent.c \ - $(LOCAL_PATH)/src/Misc.c \ - $(LOCAL_PATH)/src/ModMap.c \ - $(LOCAL_PATH)/src/MoveWin.c \ - $(LOCAL_PATH)/src/NextEvent.c \ - $(LOCAL_PATH)/src/OCWrap.c \ - $(LOCAL_PATH)/src/OMWrap.c \ - $(LOCAL_PATH)/src/OpenDis.c \ - $(LOCAL_PATH)/src/ParseCmd.c \ - $(LOCAL_PATH)/src/ParseCol.c \ - $(LOCAL_PATH)/src/ParseGeom.c \ - $(LOCAL_PATH)/src/PeekEvent.c \ - $(LOCAL_PATH)/src/PeekIfEv.c \ - $(LOCAL_PATH)/src/Pending.c \ - $(LOCAL_PATH)/src/PixFormats.c \ - $(LOCAL_PATH)/src/PmapBgnd.c \ - $(LOCAL_PATH)/src/PmapBord.c \ - $(LOCAL_PATH)/src/PolyReg.c \ - $(LOCAL_PATH)/src/PolyTxt16.c \ - $(LOCAL_PATH)/src/PolyTxt.c \ - $(LOCAL_PATH)/src/PropAlloc.c \ - $(LOCAL_PATH)/src/PutBEvent.c \ - $(LOCAL_PATH)/src/PutImage.c \ - $(LOCAL_PATH)/src/Quarks.c \ - $(LOCAL_PATH)/src/QuBest.c \ - $(LOCAL_PATH)/src/QuColor.c \ - $(LOCAL_PATH)/src/QuColors.c \ - $(LOCAL_PATH)/src/QuCurShp.c \ - $(LOCAL_PATH)/src/QuExt.c \ - $(LOCAL_PATH)/src/QuKeybd.c \ - $(LOCAL_PATH)/src/QuPntr.c \ - $(LOCAL_PATH)/src/QuStipShp.c \ - $(LOCAL_PATH)/src/QuTextE16.c \ - $(LOCAL_PATH)/src/QuTextExt.c \ - $(LOCAL_PATH)/src/QuTileShp.c \ - $(LOCAL_PATH)/src/QuTree.c \ - $(LOCAL_PATH)/src/RaiseWin.c \ - $(LOCAL_PATH)/src/RdBitF.c \ - $(LOCAL_PATH)/src/RecolorC.c \ - $(LOCAL_PATH)/src/ReconfWin.c \ - $(LOCAL_PATH)/src/ReconfWM.c \ - $(LOCAL_PATH)/src/Region.c \ - $(LOCAL_PATH)/src/RegstFlt.c \ - $(LOCAL_PATH)/src/RepWindow.c \ - $(LOCAL_PATH)/src/RestackWs.c \ - $(LOCAL_PATH)/src/RotProp.c \ - $(LOCAL_PATH)/src/ScrResStr.c \ - $(LOCAL_PATH)/src/SelInput.c \ - $(LOCAL_PATH)/src/SendEvent.c \ - $(LOCAL_PATH)/src/SetBack.c \ - $(LOCAL_PATH)/src/SetClMask.c \ - $(LOCAL_PATH)/src/SetClOrig.c \ - $(LOCAL_PATH)/src/SetCRects.c \ - $(LOCAL_PATH)/src/SetDashes.c \ - $(LOCAL_PATH)/src/SetFont.c \ - $(LOCAL_PATH)/src/SetFore.c \ - $(LOCAL_PATH)/src/SetFPath.c \ - $(LOCAL_PATH)/src/SetFunc.c \ - $(LOCAL_PATH)/src/SetHints.c \ - $(LOCAL_PATH)/src/SetIFocus.c \ - $(LOCAL_PATH)/src/SetLocale.c \ - $(LOCAL_PATH)/src/SetLStyle.c \ - $(LOCAL_PATH)/src/SetNrmHint.c \ - $(LOCAL_PATH)/src/SetPMask.c \ - $(LOCAL_PATH)/src/SetPntMap.c \ - $(LOCAL_PATH)/src/SetRGBCMap.c \ - $(LOCAL_PATH)/src/SetSOwner.c \ - $(LOCAL_PATH)/src/SetSSaver.c \ - $(LOCAL_PATH)/src/SetState.c \ - $(LOCAL_PATH)/src/SetStCmap.c \ - $(LOCAL_PATH)/src/SetStip.c \ - $(LOCAL_PATH)/src/SetTile.c \ - $(LOCAL_PATH)/src/SetTSOrig.c \ - $(LOCAL_PATH)/src/SetTxtProp.c \ - $(LOCAL_PATH)/src/SetWMCMapW.c \ - $(LOCAL_PATH)/src/SetWMProto.c \ - $(LOCAL_PATH)/src/StBytes.c \ - $(LOCAL_PATH)/src/StColor.c \ - $(LOCAL_PATH)/src/StColors.c \ - $(LOCAL_PATH)/src/StName.c \ - $(LOCAL_PATH)/src/StNColor.c \ - $(LOCAL_PATH)/src/StrKeysym.c \ - $(LOCAL_PATH)/src/StrToText.c \ - $(LOCAL_PATH)/src/Sync.c \ - $(LOCAL_PATH)/src/Synchro.c \ - $(LOCAL_PATH)/src/Text16.c \ - $(LOCAL_PATH)/src/Text.c \ - $(LOCAL_PATH)/src/TextExt16.c \ - $(LOCAL_PATH)/src/TextExt.c \ - $(LOCAL_PATH)/src/TextToStr.c \ - $(LOCAL_PATH)/src/TrCoords.c \ - $(LOCAL_PATH)/src/UndefCurs.c \ - $(LOCAL_PATH)/src/UngrabBut.c \ - $(LOCAL_PATH)/src/UngrabKbd.c \ - $(LOCAL_PATH)/src/UngrabKey.c \ - $(LOCAL_PATH)/src/UngrabPtr.c \ - $(LOCAL_PATH)/src/UngrabSvr.c \ - $(LOCAL_PATH)/src/UninsCmap.c \ - $(LOCAL_PATH)/src/UnldFont.c \ - $(LOCAL_PATH)/src/UnmapSubs.c \ - $(LOCAL_PATH)/src/UnmapWin.c \ - $(LOCAL_PATH)/src/VisUtil.c \ - $(LOCAL_PATH)/src/WarpPtr.c \ - $(LOCAL_PATH)/src/Window.c \ - $(LOCAL_PATH)/src/WinEvent.c \ - $(LOCAL_PATH)/src/Withdraw.c \ - $(LOCAL_PATH)/src/WMGeom.c \ - $(LOCAL_PATH)/src/WMProps.c \ - $(LOCAL_PATH)/src/WrBitF.c \ - $(LOCAL_PATH)/src/xcb_disp.c \ - $(LOCAL_PATH)/src/xcb_io.c \ - $(LOCAL_PATH)/src/XlibAsync.c \ - $(LOCAL_PATH)/src/XlibInt.c \ - $(LOCAL_PATH)/src/Xrm.c \ +LOCAL_SRCS := \ + src/xcms/*.c \ + src/xkb/*.c \ + src/xlibi18n/*.c \ + modules/im/ximcp/*.c \ + modules/lc/def/*.c \ + modules/lc/gen/*.c \ + modules/lc/Utf8/*.c \ + modules/lc/xlocale/*.c \ + modules/om/generic/*.c \ -LOCAL_SHARED_LIBRARIES := libXdmcp libXau android-shmem xcb -LOCAL_STATIC_LIBRARIES := android_support +LOCAL_SRC_FILES := \ + $(foreach F, $(LOCAL_SRCS), $(addprefix $(dir $(F)),$(notdir $(wildcard $(LOCAL_PATH)/$(F))))) \ + src/AllCells.c \ + src/AllowEv.c \ + src/AllPlanes.c \ + src/AutoRep.c \ + src/Backgnd.c \ + src/BdrWidth.c \ + src/Bell.c \ + src/Border.c \ + src/ChAccCon.c \ + src/ChActPGb.c \ + src/ChClMode.c \ + src/ChCmap.c \ + src/ChGC.c \ + src/ChKeyCon.c \ + src/ChkIfEv.c \ + src/ChkMaskEv.c \ + src/ChkTypEv.c \ + src/ChkTypWEv.c \ + src/ChkWinEv.c \ + src/ChPntCon.c \ + src/ChProp.c \ + src/ChSaveSet.c \ + src/ChWAttrs.c \ + src/ChWindow.c \ + src/CirWin.c \ + src/CirWinDn.c \ + src/CirWinUp.c \ + src/ClDisplay.c \ + src/ClearArea.c \ + src/Clear.c \ + src/ConfWind.c \ + src/Context.c \ + src/ConvSel.c \ + src/CopyArea.c \ + src/CopyCmap.c \ + src/CopyGC.c \ + src/CopyPlane.c \ + src/CrBFData.c \ + src/CrCmap.c \ + src/CrCursor.c \ + src/CrGC.c \ + src/CrGlCur.c \ + src/CrPFBData.c \ + src/CrPixmap.c \ + src/CrWindow.c \ + src/Cursor.c \ + src/DefCursor.c \ + src/DelProp.c \ + src/Depths.c \ + src/DestSubs.c \ + src/DestWind.c \ + src/DisName.c \ + src/DrArc.c \ + src/DrArcs.c \ + src/DrLine.c \ + src/DrLines.c \ + src/DrPoint.c \ + src/DrPoints.c \ + src/DrRect.c \ + src/DrRects.c \ + src/DrSegs.c \ + src/ErrDes.c \ + src/ErrHndlr.c \ + src/evtomask.c \ + src/EvToWire.c \ + src/FetchName.c \ + src/FillArc.c \ + src/FillArcs.c \ + src/FillPoly.c \ + src/FillRct.c \ + src/FillRcts.c \ + src/FilterEv.c \ + src/Flush.c \ + src/Font.c \ + src/FontInfo.c \ + src/FontNames.c \ + src/FreeCmap.c \ + src/FreeCols.c \ + src/FreeCurs.c \ + src/FreeEData.c \ + src/FreeEventData.c \ + src/FreeGC.c \ + src/FreePix.c \ + src/FSSaver.c \ + src/FSWrap.c \ + src/GCMisc.c \ + src/Geom.c \ + src/GetAtomNm.c \ + src/GetColor.c \ + src/GetDflt.c \ + src/GetEventData.c \ + src/GetFPath.c \ + src/GetFProp.c \ + src/GetGCVals.c \ + src/GetGeom.c \ + src/GetHColor.c \ + src/GetHints.c \ + src/GetIFocus.c \ + src/GetImage.c \ + src/GetKCnt.c \ + src/GetMoEv.c \ + src/GetNrmHint.c \ + src/GetPCnt.c \ + src/GetPntMap.c \ + src/GetProp.c \ + src/GetRGBCMap.c \ + src/GetSOwner.c \ + src/GetSSaver.c \ + src/GetStCmap.c \ + src/GetTxtProp.c \ + src/GetWAttrs.c \ + src/GetWMCMapW.c \ + src/GetWMProto.c \ + src/globals.c \ + src/GrButton.c \ + src/GrKeybd.c \ + src/GrKey.c \ + src/GrPointer.c \ + src/GrServer.c \ + src/Host.c \ + src/Iconify.c \ + src/IfEvent.c \ + src/imConv.c \ + src/ImText16.c \ + src/ImText.c \ + src/ImUtil.c \ + src/InitExt.c \ + src/InsCmap.c \ + src/IntAtom.c \ + src/KeyBind.c \ + src/KeysymStr.c \ + src/KillCl.c \ + src/LiHosts.c \ + src/LiICmaps.c \ + src/LiProps.c \ + src/ListExt.c \ + src/LoadFont.c \ + src/LockDis.c \ + src/locking.c \ + src/LookupCol.c \ + src/LowerWin.c \ + src/Macros.c \ + src/MapRaised.c \ + src/MapSubs.c \ + src/MapWindow.c \ + src/MaskEvent.c \ + src/Misc.c \ + src/ModMap.c \ + src/MoveWin.c \ + src/NextEvent.c \ + src/OCWrap.c \ + src/OMWrap.c \ + src/OpenDis.c \ + src/ParseCmd.c \ + src/ParseCol.c \ + src/ParseGeom.c \ + src/PeekEvent.c \ + src/PeekIfEv.c \ + src/Pending.c \ + src/PixFormats.c \ + src/PmapBgnd.c \ + src/PmapBord.c \ + src/PolyReg.c \ + src/PolyTxt16.c \ + src/PolyTxt.c \ + src/PropAlloc.c \ + src/PutBEvent.c \ + src/PutImage.c \ + src/Quarks.c \ + src/QuBest.c \ + src/QuColor.c \ + src/QuColors.c \ + src/QuCurShp.c \ + src/QuExt.c \ + src/QuKeybd.c \ + src/QuPntr.c \ + src/QuStipShp.c \ + src/QuTextE16.c \ + src/QuTextExt.c \ + src/QuTileShp.c \ + src/QuTree.c \ + src/RaiseWin.c \ + src/RdBitF.c \ + src/RecolorC.c \ + src/ReconfWin.c \ + src/ReconfWM.c \ + src/Region.c \ + src/RegstFlt.c \ + src/RepWindow.c \ + src/RestackWs.c \ + src/RotProp.c \ + src/ScrResStr.c \ + src/SelInput.c \ + src/SendEvent.c \ + src/SetBack.c \ + src/SetClMask.c \ + src/SetClOrig.c \ + src/SetCRects.c \ + src/SetDashes.c \ + src/SetFont.c \ + src/SetFore.c \ + src/SetFPath.c \ + src/SetFunc.c \ + src/SetHints.c \ + src/SetIFocus.c \ + src/SetLocale.c \ + src/SetLStyle.c \ + src/SetNrmHint.c \ + src/SetPMask.c \ + src/SetPntMap.c \ + src/SetRGBCMap.c \ + src/SetSOwner.c \ + src/SetSSaver.c \ + src/SetState.c \ + src/SetStCmap.c \ + src/SetStip.c \ + src/SetTile.c \ + src/SetTSOrig.c \ + src/SetTxtProp.c \ + src/SetWMCMapW.c \ + src/SetWMProto.c \ + src/StBytes.c \ + src/StColor.c \ + src/StColors.c \ + src/StName.c \ + src/StNColor.c \ + src/StrKeysym.c \ + src/StrToText.c \ + src/Sync.c \ + src/Synchro.c \ + src/Text16.c \ + src/Text.c \ + src/TextExt16.c \ + src/TextExt.c \ + src/TextToStr.c \ + src/TrCoords.c \ + src/UndefCurs.c \ + src/UngrabBut.c \ + src/UngrabKbd.c \ + src/UngrabKey.c \ + src/UngrabPtr.c \ + src/UngrabSvr.c \ + src/UninsCmap.c \ + src/UnldFont.c \ + src/UnmapSubs.c \ + src/UnmapWin.c \ + src/VisUtil.c \ + src/WarpPtr.c \ + src/Window.c \ + src/WinEvent.c \ + src/Withdraw.c \ + src/WMGeom.c \ + src/WMProps.c \ + src/WrBitF.c \ + src/xcb_disp.c \ + src/xcb_io.c \ + src/XlibAsync.c \ + src/XlibInt.c \ + src/Xrm.c \ + +LOCAL_SHARED_LIBRARIES := +LOCAL_STATIC_LIBRARIES := libXdmcp libXau libandroid-shmem libxcb LOCAL_LDLIBS := -llog -lc -lm -ldl -lz diff --git a/jni/application/libX11-1.6.2/modules/im/ximcp/imTrans.c b/jni/application/libX11-1.6.2/modules/im/ximcp/imTrans.c index ae644ab..039cef9 100644 --- a/jni/application/libX11-1.6.2/modules/im/ximcp/imTrans.c +++ b/jni/application/libX11-1.6.2/modules/im/ximcp/imTrans.c @@ -82,11 +82,11 @@ _XimTransConnect( for (retry = XIM_CONNECTION_RETRIES; retry >= 0; retry--) { - if ((spec->trans_conn = _XimXTransOpenCOTSClient ( - spec->address)) == NULL) - { - break; - } + //if ((spec->trans_conn = _XimXTransOpenCOTSClient ( + // spec->address)) == NULL) + //{ + // break; + //} if ((connect_stat = _XimXTransConnect ( spec->trans_conn, spec->address)) < 0) diff --git a/jni/application/libXau-1.0.8/Android.mk b/jni/application/libXau-1.0.8/Android.mk index 11221de..68729dd 100644 --- a/jni/application/libXau-1.0.8/Android.mk +++ b/jni/application/libXau-1.0.8/Android.mk @@ -7,23 +7,23 @@ LOCAL_SDK_VERSION := 21 LOCAL_MODULE := libXau LOCAL_C_INCLUDES := \ - $(LOCAL_PATH)/../header/include \ + external/XServer-XSDL-android-src/jni/application/header/include \ $(LOCAL_PATH)/include/X11 \ - $(LOCAL_PATH) \ + $(LOCAL_PATH)/ \ $(LOCAL_PATH)/include \ LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_SRC_FILES := \ - $(LOCAL_PATH)/AuDispose.c \ - $(LOCAL_PATH)/AuFileName.c \ - $(LOCAL_PATH)/AuGetAddr.c \ - $(LOCAL_PATH)/AuGetBest.c \ - $(LOCAL_PATH)/AuLock.c \ - $(LOCAL_PATH)/AuRead.c \ - $(LOCAL_PATH)/AuUnlock.c \ - $(LOCAL_PATH)/AuWrite.c + AuDispose.c \ + AuFileName.c \ + AuGetAddr.c \ + AuGetBest.c \ + AuLock.c \ + AuRead.c \ + AuUnlock.c \ + AuWrite.c LOCAL_SHARED_LIBRARIES := LOCAL_STATIC_LIBRARIES := diff --git a/jni/application/libXdmcp-1.1.1/Android.mk b/jni/application/libXdmcp-1.1.1/Android.mk index 90aeab6..4e90c3c 100644 --- a/jni/application/libXdmcp-1.1.1/Android.mk +++ b/jni/application/libXdmcp-1.1.1/Android.mk @@ -7,25 +7,25 @@ LOCAL_SDK_VERSION := 21 LOCAL_MODULE := libXdmcp LOCAL_C_INCLUDES := \ - $(LOCAL_PATH)/../header/include \ + external/XServer-XSDL-android-src/jni/application/header/include \ $(LOCAL_PATH)/include/X11 \ - $(LOCAL_PATH) \ + $(LOCAL_PATH)/ \ $(LOCAL_PATH)/include \ LOCAL_CFLAGS := -DHAVE_CONFIG_H LOCAL_SRC_FILES := \ - $(LOCAL_PATH)/Array.c \ - $(LOCAL_PATH)/Fill.c \ - $(LOCAL_PATH)/Flush.c \ - $(LOCAL_PATH)/Key.c \ - $(LOCAL_PATH)/Read.c \ - $(LOCAL_PATH)/Unwrap.c \ - $(LOCAL_PATH)/Wrap.c \ - $(LOCAL_PATH)/Wrap.h \ - $(LOCAL_PATH)/Write.c \ - $(LOCAL_PATH)/Wraphelp.c + Array.c \ + Fill.c \ + Flush.c \ + Key.c \ + Read.c \ + Unwrap.c \ + Wrap.c \ + Wrap.h \ + Write.c \ + Wraphelp.c LOCAL_SHARED_LIBRARIES := LOCAL_STATIC_LIBRARIES := diff --git a/jni/application/libXext-1.3.2/Android.mk b/jni/application/libXext-1.3.2/Android.mk index 38f2a8f..ccc8def 100644 --- a/jni/application/libXext-1.3.2/Android.mk +++ b/jni/application/libXext-1.3.2/Android.mk @@ -7,19 +7,23 @@ LOCAL_SDK_VERSION := 21 LOCAL_MODULE := libXext LOCAL_C_INCLUDES := \ - $(LOCAL_PATH)/../header/include \ + external/XServer-XSDL-android-src/jni/application/header/include \ $(LOCAL_PATH)/include/X11 \ - $(LOCAL_PATH) \ + $(LOCAL_PATH)/ \ $(LOCAL_PATH)/include \ LOCAL_CFLAGS := -DHAVE_CONFIG_H +LOCAL_SRCS := \ + src/*.c \ + LOCAL_SRC_FILES := \ - $(wildcard $(LOCAL_PATH)/src/*.c) \ + $(foreach F, $(LOCAL_SRCS), $(addprefix $(dir $(F)),$(notdir $(wildcard $(LOCAL_PATH)/$(F))))) \ + LOCAL_SHARED_LIBRARIES := -LOCAL_STATIC_LIBRARIES := android_support xcb Xau Xdmcp X11 +LOCAL_STATIC_LIBRARIES := libxcb libXau libXdmcp libX11 LOCAL_LDLIBS := -llog -lc -lm -ldl -lz diff --git a/jni/application/libXfont-1.4.6/Android.mk b/jni/application/libXfont-1.4.6/Android.mk index 97f23b7..2622b2a 100644 --- a/jni/application/libXfont-1.4.6/Android.mk +++ b/jni/application/libXfont-1.4.6/Android.mk @@ -7,42 +7,45 @@ LOCAL_SDK_VERSION := 21 LOCAL_MODULE := libXfont LOCAL_C_INCLUDES := \ - $(LOCAL_PATH)/../header/include \ - $(LOCAL_PATH) \ + external/XServer-XSDL-android-src/jni/application/header/include \ + $(LOCAL_PATH)/ \ $(LOCAL_PATH)/include \ - $(LOCAL_PATH)/../../freetype/include \ + external/XServer-XSDL-android-src/jni/freetype/include \ $(LOCAL_PATH)/src/stubs \ LOCAL_CFLAGS := -DHAVE_CONFIG_H -DNOFILES_MAX=256 -DNO_LOCALE -LOCAL_SRC_FILES := \ - $(wildcard $(LOCAL_PATH)/src/bitmap/*.c) \ - $(wildcard $(LOCAL_PATH)/src/builtins/*.c) \ - $(wildcard $(LOCAL_PATH)/src/fc/*.c) \ - $(wildcard $(LOCAL_PATH)/src/FreeType/*.c) \ - $(wildcard $(LOCAL_PATH)/src/stubs/*.c) \ - $(wildcard $(LOCAL_PATH)/src/util/*.c) \ - $(LOCAL_PATH)/src/fontfile/bitsource.c \ - $(LOCAL_PATH)/src/fontfile/bufio.c \ - $(LOCAL_PATH)/src/fontfile/decompress.c \ - $(LOCAL_PATH)/src/fontfile/defaults.c \ - $(LOCAL_PATH)/src/fontfile/dirfile.c \ - $(LOCAL_PATH)/src/fontfile/fileio.c \ - $(LOCAL_PATH)/src/fontfile/filewr.c \ - $(LOCAL_PATH)/src/fontfile/fontdir.c \ - $(LOCAL_PATH)/src/fontfile/fontencc.c \ - $(LOCAL_PATH)/src/fontfile/fontfile.c \ - $(LOCAL_PATH)/src/fontfile/fontscale.c \ - $(LOCAL_PATH)/src/fontfile/gunzip.c \ - $(LOCAL_PATH)/src/fontfile/register.c \ - $(LOCAL_PATH)/src/fontfile/renderers.c \ - $(LOCAL_PATH)/src/fontfile/catalogue.c +LOCAL_SRCS := \ + src/bitmap/*.c \ + src/builtins/*.c \ + src/fc/*.c \ + src/FreeType/*.c \ + src/stubs/*.c \ + src/util/*.c \ + +LOCAL_SRC_FILES := \ + $(foreach F, $(LOCAL_SRCS), $(addprefix $(dir $(F)),$(notdir $(wildcard $(LOCAL_PATH)/$(F))))) \ + src/fontfile/bitsource.c \ + src/fontfile/bufio.c \ + src/fontfile/decompress.c \ + src/fontfile/defaults.c \ + src/fontfile/dirfile.c \ + src/fontfile/fileio.c \ + src/fontfile/filewr.c \ + src/fontfile/fontdir.c \ + src/fontfile/fontencc.c \ + src/fontfile/fontfile.c \ + src/fontfile/fontscale.c \ + src/fontfile/gunzip.c \ + src/fontfile/register.c \ + src/fontfile/renderers.c \ + src/fontfile/catalogue.c LOCAL_SHARED_LIBRARIES := -LOCAL_STATIC_LIBRARIES := freetype libfontenc +LOCAL_STATIC_LIBRARIES := libfreetype libfontenc LOCAL_LDLIBS := -llog -lc -lm -ldl -lz -include $(BUILD_STATIC_LIBRARY) +include $(BUILD_SHARED_LIBRARY) diff --git a/jni/application/libXmu-1.1.2/Android.mk b/jni/application/libXmu-1.1.2/Android.mk index 58f9f14..2c40d28 100644 --- a/jni/application/libXmu-1.1.2/Android.mk +++ b/jni/application/libXmu-1.1.2/Android.mk @@ -7,20 +7,24 @@ LOCAL_SDK_VERSION := 21 LOCAL_MODULE := libXmu LOCAL_C_INCLUDES := \ - $(LOCAL_PATH)/../header/include \ + external/XServer-XSDL-android-src/jni/application/header/include \ $(LOCAL_PATH)/include/X11 \ $(LOCAL_PATH)/include/X11/Xmu \ - $(LOCAL_PATH) \ + $(LOCAL_PATH)/ \ $(LOCAL_PATH)/include \ LOCAL_CFLAGS := -DHAVE_CONFIG_H +LOCAL_SRCS := \ + src/*.c \ + LOCAL_SRC_FILES := \ - $(wildcard $(LOCAL_PATH)/src/*.c) \ + $(foreach F, $(LOCAL_SRCS), $(addprefix $(dir $(F)),$(notdir $(wildcard $(LOCAL_PATH)/$(F))))) \ + LOCAL_SHARED_LIBRARIES := -LOCAL_STATIC_LIBRARIES := android_support xcb Xau Xdmcp X11 Xext Xrender xkbfile ICE SM Xt +LOCAL_STATIC_LIBRARIES := libxcb libXau libXdmcp libX11 libXext libXrender libxkbfile libICE libSM libXt #LOCAL_LDFLAGS := -pie diff --git a/jni/application/libXrandr-1.4.2/Android.mk b/jni/application/libXrandr-1.4.2/Android.mk index 3a03d5a..23ce015 100644 --- a/jni/application/libXrandr-1.4.2/Android.mk +++ b/jni/application/libXrandr-1.4.2/Android.mk @@ -7,20 +7,24 @@ LOCAL_SDK_VERSION := 21 LOCAL_MODULE := libXrandr LOCAL_C_INCLUDES := \ - $(LOCAL_PATH)/../header/include \ + external/XServer-XSDL-android-src/jni/application/header/include \ $(LOCAL_PATH)/include/X11 \ $(LOCAL_PATH)/include/X11/extensions \ - $(LOCAL_PATH) \ + $(LOCAL_PATH)/ \ $(LOCAL_PATH)/include \ LOCAL_CFLAGS := -DHAVE_CONFIG_H +LOCAL_SRCS := \ + src/*.c \ + LOCAL_SRC_FILES := \ - $(wildcard $(LOCAL_PATH)/src/*.c) \ + $(foreach F, $(LOCAL_SRCS), $(addprefix $(dir $(F)),$(notdir $(wildcard $(LOCAL_PATH)/$(F))))) \ + LOCAL_SHARED_LIBRARIES := -LOCAL_STATIC_LIBRARIES := android_support xcb Xau Xdmcp X11 Xext Xrender +LOCAL_STATIC_LIBRARIES := libxcb libXau libXdmcp libX11 libXext libXrender LOCAL_LDLIBS := -llog -lc -lm -ldl -lz diff --git a/jni/application/libXrender-0.9.8/Android.mk b/jni/application/libXrender-0.9.8/Android.mk index ba31c5d..e83295b 100644 --- a/jni/application/libXrender-0.9.8/Android.mk +++ b/jni/application/libXrender-0.9.8/Android.mk @@ -7,20 +7,23 @@ LOCAL_SDK_VERSION := 21 LOCAL_MODULE := libXrender LOCAL_C_INCLUDES := \ - $(LOCAL_PATH)/../header/include \ + external/XServer-XSDL-android-src/jni/application/header/include \ $(LOCAL_PATH)/include/X11 \ $(LOCAL_PATH)/include/X11/extensions \ - $(LOCAL_PATH) \ + $(LOCAL_PATH)/ \ $(LOCAL_PATH)/include \ LOCAL_CFLAGS := -DHAVE_CONFIG_H +LOCAL_SRCS := \ + src/*.c \ + LOCAL_SRC_FILES := \ - $(wildcard $(LOCAL_PATH)/src/*.c) \ + $(foreach F, $(LOCAL_SRCS), $(addprefix $(dir $(F)),$(notdir $(wildcard $(LOCAL_PATH)/$(F))))) \ LOCAL_SHARED_LIBRARIES := -LOCAL_STATIC_LIBRARIES := android_support xcb Xau Xdmcp X11 +LOCAL_STATIC_LIBRARIES := libxcb libXau libXdmcp libX11 LOCAL_LDLIBS := -llog -lc -lm -ldl -lz diff --git a/jni/application/libXt-1.1.4/Android.mk b/jni/application/libXt-1.1.4/Android.mk index 03136d7..59c6845 100644 --- a/jni/application/libXt-1.1.4/Android.mk +++ b/jni/application/libXt-1.1.4/Android.mk @@ -7,19 +7,22 @@ LOCAL_SDK_VERSION := 21 LOCAL_MODULE := libXt LOCAL_C_INCLUDES := \ - $(LOCAL_PATH)/../header/include \ + external/XServer-XSDL-android-src/jni/application/header/include \ $(LOCAL_PATH)/include/X11 \ - $(LOCAL_PATH) \ + $(LOCAL_PATH)/ \ $(LOCAL_PATH)/include \ LOCAL_CFLAGS := -DHAVE_CONFIG_H +LOCAL_SRCS := \ + src/*.c \ + LOCAL_SRC_FILES := \ - $(wildcard $(LOCAL_PATH)/src/*.c) \ + $(foreach F, $(LOCAL_SRCS), $(addprefix $(dir $(F)),$(notdir $(wildcard $(LOCAL_PATH)/$(F))))) \ LOCAL_SHARED_LIBRARIES := -LOCAL_STATIC_LIBRARIES := android_support xcb Xau Xdmcp X11 Xext Xrender xkbfile ICE SM +LOCAL_STATIC_LIBRARIES := libxcb libXau libXdmcp libX11 libXext libXrender libxkbfile libICE libSM #LOCAL_LDFLAGS := -pie diff --git a/jni/application/libfontenc-1.1.2/Android.mk b/jni/application/libfontenc-1.1.2/Android.mk index 501e488..03f245f 100644 --- a/jni/application/libfontenc-1.1.2/Android.mk +++ b/jni/application/libfontenc-1.1.2/Android.mk @@ -11,8 +11,8 @@ LOCAL_C_INCLUDES := $(LOCAL_PATH)/include LOCAL_CFLAGS := -DHAVE_CONFIG_H -DFONT_ENCODINGS_DIRECTORY=\"/usr/share/fonts/X11/encodings/encodings.dir\" LOCAL_SRC_FILES := \ - $(LOCAL_PATH)/src/encparse.c \ - $(LOCAL_PATH)/src/fontenc.c \ + src/encparse.c \ + src/fontenc.c \ LOCAL_STATIC_LIBRARIES := diff --git a/jni/application/libxcb-1.10/Android.mk b/jni/application/libxcb-1.10/Android.mk index fb21f01..62b82e6 100644 --- a/jni/application/libxcb-1.10/Android.mk +++ b/jni/application/libxcb-1.10/Android.mk @@ -7,16 +7,18 @@ LOCAL_SDK_VERSION := 21 LOCAL_MODULE := libxcb LOCAL_C_INCLUDES := \ - $(LOCAL_PATH)/../header/include \ - $(LOCAL_PATH) \ + external/XServer-XSDL-android-src/jni/application/header/include \ + $(LOCAL_PATH)/ \ $(LOCAL_PATH)/include \ $(LOCAL_PATH)/src/ LOCAL_CFLAGS := -DHAVE_CONFIG_H -LOCAL_SRC_FILES := \ - $(wildcard $(LOCAL_PATH)/src/*.c) \ +LOCAL_SRCS := \ + src/*.c \ +LOCAL_SRC_FILES := \ + $(foreach F, $(LOCAL_SRCS), $(addprefix $(dir $(F)),$(notdir $(wildcard $(LOCAL_PATH)/$(F))))) \ LOCAL_SHARED_LIBRARIES := LOCAL_STATIC_LIBRARIES := libXdmcp libXau diff --git a/jni/application/libxkbfile-1.0.8/Android.mk b/jni/application/libxkbfile-1.0.8/Android.mk index 2590329..5cf716b 100644 --- a/jni/application/libxkbfile-1.0.8/Android.mk +++ b/jni/application/libxkbfile-1.0.8/Android.mk @@ -7,20 +7,23 @@ LOCAL_SDK_VERSION := 21 LOCAL_MODULE := libxkbfile LOCAL_C_INCLUDES := \ - $(LOCAL_PATH)/../header/include \ + external/XServer-XSDL-android-src/jni/application/header/include \ $(LOCAL_PATH)/include/X11 \ $(LOCAL_PATH)/include/X11/extensions \ - $(LOCAL_PATH) \ + $(LOCAL_PATH)/ \ $(LOCAL_PATH)/include \ LOCAL_CFLAGS := -DHAVE_CONFIG_H +LOCAL_SRCS := \ + src/*.c \ + LOCAL_SRC_FILES := \ - $(wildcard $(LOCAL_PATH)/src/*.c) \ + $(foreach F, $(LOCAL_SRCS), $(addprefix $(dir $(F)),$(notdir $(wildcard $(LOCAL_PATH)/$(F))))) \ LOCAL_SHARED_LIBRARIES := -LOCAL_STATIC_LIBRARIES := android_support xcb Xau Xdmcp X11 Xext Xrender +LOCAL_STATIC_LIBRARIES := libxcb libXau libXdmcp libX11 libXext libXrender LOCAL_LDLIBS := -llog -lc -lm -ldl -lz diff --git a/jni/application/libxkbfile-1.0.8/src/cout.c b/jni/application/libxkbfile-1.0.8/src/cout.c index 399512f..19fe310 100644 --- a/jni/application/libxkbfile-1.0.8/src/cout.c +++ b/jni/application/libxkbfile-1.0.8/src/cout.c @@ -45,7 +45,7 @@ WriteCHdrVMods(FILE *file,Display *dpy,XkbDescPtr xkb) { register int i,nOut; - if ((!xkb)||(!xkb->names)||(!xkb->names->vmods)) + if ((!xkb)||(!xkb->names))//||(!xkb->names->vmods)) return False; for (i=nOut=0;inames->vmods[i]!=None) { diff --git a/jni/application/pixman-0.30.2/Android.mk b/jni/application/pixman-0.30.2/Android.mk index 18a894f..743f469 100644 --- a/jni/application/pixman-0.30.2/Android.mk +++ b/jni/application/pixman-0.30.2/Android.mk @@ -4,7 +4,7 @@ include $(CLEAR_VARS) #LOCAL_SDK_VERSION := 14 -LOCAL_MODULE := pixman-1 +LOCAL_MODULE := libpixman-1 LOCAL_C_INCLUDES := \ $(LOCAL_PATH) \ @@ -16,45 +16,39 @@ LOCAL_SRC_FILES := \ pixman/pixman.c \ pixman/pixman-access.c \ pixman/pixman-access-accessors.c \ - pixman/pixman-arm.c \ - pixman/pixman-arm-neon.c \ - pixman/pixman-arm-neon-asm.S \ - pixman/pixman-arm-neon-asm-bilinear.S \ - pixman/pixman-arm-simd.c \ - pixman/pixman-arm-simd-asm.S \ - pixman/pixman-arm-simd-asm-scaled.S \ pixman/pixman-bits-image.c \ pixman/pixman-combine32.c \ pixman/pixman-combine-float.c \ pixman/pixman-conical-gradient.c \ + pixman/pixman-filter.c \ + pixman/pixman-x86.c \ + pixman/pixman-mips.c \ + pixman/pixman-arm.c \ + pixman/pixman-ppc.c \ pixman/pixman-edge.c \ pixman/pixman-edge-accessors.c \ pixman/pixman-fast-path.c \ - pixman/pixman-filter.c \ - pixman/pixman-general.c \ pixman/pixman-glyph.c \ + pixman/pixman-general.c \ pixman/pixman-gradient-walker.c \ pixman/pixman-image.c \ pixman/pixman-implementation.c \ pixman/pixman-linear-gradient.c \ pixman/pixman-matrix.c \ - pixman/pixman-mips.c \ pixman/pixman-noop.c \ - pixman/pixman-ppc.c \ pixman/pixman-radial-gradient.c \ pixman/pixman-region16.c \ pixman/pixman-region32.c \ pixman/pixman-solid-fill.c \ pixman/pixman-timer.c \ pixman/pixman-trap.c \ - pixman/pixman-utils.c \ - pixman/pixman-x86.c \ + pixman/pixman-utils.c -LOCAL_STATIC_LIBRARIES := cpufeatures +LOCAL_STATIC_LIBRARIES := LOCAL_LDLIBS := -llog -lc -lm -ldl -lz include $(BUILD_STATIC_LIBRARY) -$(call import-module,android/cpufeatures) + diff --git a/jni/application/pixman-0.30.2/config.h b/jni/application/pixman-0.30.2/config.h index b7458f1..ca09547 100644 --- a/jni/application/pixman-0.30.2/config.h +++ b/jni/application/pixman-0.30.2/config.h @@ -123,10 +123,10 @@ /* #undef USE_ARM_IWMMXT */ /* use ARM NEON assembly optimizations */ -#define USE_ARM_NEON 1 +//#define USE_ARM_NEON 1 /* use ARM SIMD assembly optimizations */ -#define USE_ARM_SIMD 1 +//#define USE_ARM_SIMD 1 /* use GNU-style inline assembler */ #define USE_GCC_INLINE_ASM 1 diff --git a/jni/application/pixman-0.30.2/pixman/pixman-arm.c b/jni/application/pixman-0.30.2/pixman/pixman-arm.c index 23374e4..ac76419 100644 --- a/jni/application/pixman-0.30.2/pixman/pixman-arm.c +++ b/jni/application/pixman-0.30.2/pixman/pixman-arm.c @@ -94,10 +94,10 @@ detect_cpu_features (void) return features; } -#elif defined(__ANDROID__) || defined(ANDROID) /* Android */ - -#include +//#elif defined(__ANDROID__) || defined(ANDROID) /* Android */ +//#include +/* static arm_cpu_features_t detect_cpu_features (void) { @@ -122,7 +122,7 @@ detect_cpu_features (void) return features; } - +*/ #elif defined (__linux__) /* linux ELF */ #include diff --git a/jni/application/xhost-1.0.6/Android.mk b/jni/application/xhost-1.0.6/Android.mk index 0e8e2c8..e962827 100644 --- a/jni/application/xhost-1.0.6/Android.mk +++ b/jni/application/xhost-1.0.6/Android.mk @@ -7,16 +7,20 @@ LOCAL_SDK_VERSION := 21 LOCAL_MODULE := xhost LOCAL_C_INCLUDES := \ - $(LOCAL_PATH)/../header/include \ + external/XServer-XSDL-android-src/jni/application/header/include \ LOCAL_CFLAGS := -DHAVE_CONFIG_H -Dsethostent=abs -Dendhostent=sync +LOCAL_SRCS := \ + *.c \ + LOCAL_SRC_FILES := \ - $(wildcard $(LOCAL_PATH)/*.c) \ + $(foreach F, $(LOCAL_SRCS), $(addprefix $(dir $(F)),$(notdir $(wildcard $(LOCAL_PATH)/$(F))))) \ + LOCAL_SHARED_LIBRARIES := -LOCAL_STATIC_LIBRARIES := android_support xcb Xau Xdmcp X11 Xext Xrender xkbfile ICE SM Xt Xmu +LOCAL_STATIC_LIBRARIES := libxcb libXau libXdmcp libX11 libXext libXrender libxkbfile libICE libSM libXt libXmu LOCAL_LDFLAGS := -pie diff --git a/jni/application/xkbcomp-1.2.4/Android.mk b/jni/application/xkbcomp-1.2.4/Android.mk index fa2b78b..cf57b85 100644 --- a/jni/application/xkbcomp-1.2.4/Android.mk +++ b/jni/application/xkbcomp-1.2.4/Android.mk @@ -7,20 +7,23 @@ LOCAL_SDK_VERSION := 21 LOCAL_MODULE := xkbcomp LOCAL_C_INCLUDES := \ - $(LOCAL_PATH)/../header/include \ + external/XServer-XSDL-android-src/jni/application/header/include \ $(LOCAL_PATH)/include/X11 \ $(LOCAL_PATH)/include/X11/extensions \ - $(LOCAL_PATH) \ + $(LOCAL_PATH)/ \ $(LOCAL_PATH)/include \ LOCAL_CFLAGS := -DHAVE_CONFIG_H +LOCAL_SRCS := \ + *.c \ + LOCAL_SRC_FILES := \ - $(wildcard $(LOCAL_PATH)/*.c) \ + $(foreach F, $(LOCAL_SRCS), $(addprefix $(dir $(F)),$(notdir $(wildcard $(LOCAL_PATH)/$(F))))) \ LOCAL_SHARED_LIBRARIES := -LOCAL_STATIC_LIBRARIES := android_support xcb Xau Xdmcp X11 Xext Xrender xkbfile +LOCAL_STATIC_LIBRARIES := libxcb libXau libXdmcp libX11 libXext libXrender libxkbfile LOCAL_LDFLAGS := -pie diff --git a/jni/application/xli-1.16/Android.mk b/jni/application/xli-1.16/Android.mk index 6d0c8de..9371db3 100644 --- a/jni/application/xli-1.16/Android.mk +++ b/jni/application/xli-1.16/Android.mk @@ -7,7 +7,7 @@ LOCAL_SDK_VERSION := 21 LOCAL_MODULE := xli LOCAL_C_INCLUDES := \ - $(LOCAL_PATH)/../header/include \ + external/XServer-XSDL-android-src/jni/application/header/include \ LOCAL_CFLAGS := -DHAVE_CONFIG_H -Drindex=strchr -include strings.h \ @@ -18,55 +18,55 @@ LOCAL_CFLAGS := -DHAVE_CONFIG_H -Drindex=strchr -include strings.h \ -Os LOCAL_SRC_FILES := \ - $(LOCAL_PATH)/bright.c \ - $(LOCAL_PATH)/clip.c \ - $(LOCAL_PATH)/cmuwmrast.c \ - $(LOCAL_PATH)/compress.c \ - $(LOCAL_PATH)/dither.c \ - $(LOCAL_PATH)/faces.c \ - $(LOCAL_PATH)/fbm.c \ - $(LOCAL_PATH)/fill.c \ - $(LOCAL_PATH)/g3.c \ - $(LOCAL_PATH)/gif.c \ - $(LOCAL_PATH)/halftone.c \ - $(LOCAL_PATH)/imagetypes.c \ - $(LOCAL_PATH)/img.c \ - $(LOCAL_PATH)/mac.c \ - $(LOCAL_PATH)/mcidas.c \ - $(LOCAL_PATH)/mc_tables.c \ - $(LOCAL_PATH)/merge.c \ - $(LOCAL_PATH)/misc.c \ - $(LOCAL_PATH)/new.c \ - $(LOCAL_PATH)/options.c \ - $(LOCAL_PATH)/path.c \ - $(LOCAL_PATH)/pbm.c \ - $(LOCAL_PATH)/pcx.c \ - $(LOCAL_PATH)/reduce.c \ - $(LOCAL_PATH)/jpeg.c \ - $(LOCAL_PATH)/jpeglib.c \ - $(LOCAL_PATH)/rle.c \ - $(LOCAL_PATH)/rlelib.c \ - $(LOCAL_PATH)/root.c \ - $(LOCAL_PATH)/rotate.c \ - $(LOCAL_PATH)/send.c \ - $(LOCAL_PATH)/smooth.c \ - $(LOCAL_PATH)/sunraster.c \ - $(LOCAL_PATH)/value.c \ - $(LOCAL_PATH)/window.c \ - $(LOCAL_PATH)/xbitmap.c \ - $(LOCAL_PATH)/xli.c \ - $(LOCAL_PATH)/xpixmap.c \ - $(LOCAL_PATH)/xwd.c \ - $(LOCAL_PATH)/zio.c \ - $(LOCAL_PATH)/zoom.c \ - $(LOCAL_PATH)/ddxli.c \ - $(LOCAL_PATH)/doslib.c \ - $(LOCAL_PATH)/tga.c \ - $(LOCAL_PATH)/bmp.c \ - $(LOCAL_PATH)/pcd.c + bright.c \ + clip.c \ + cmuwmrast.c \ + compress.c \ + dither.c \ + faces.c \ + fbm.c \ + fill.c \ + g3.c \ + gif.c \ + halftone.c \ + imagetypes.c \ + img.c \ + mac.c \ + mcidas.c \ + mc_tables.c \ + merge.c \ + misc.c \ + new.c \ + options.c \ + path.c \ + pbm.c \ + pcx.c \ + reduce.c \ + jpeg.c \ + jpeglib.c \ + rle.c \ + rlelib.c \ + root.c \ + rotate.c \ + send.c \ + smooth.c \ + sunraster.c \ + value.c \ + window.c \ + xbitmap.c \ + xli.c \ + xpixmap.c \ + xwd.c \ + zio.c \ + zoom.c \ + ddxli.c \ + doslib.c \ + tga.c \ + bmp.c \ + pcd.c LOCAL_SHARED_LIBRARIES := -LOCAL_STATIC_LIBRARIES := android_support xcb Xau Xdmcp X11 Xext Xrender xkbfile ICE SM Xt Xmu +LOCAL_STATIC_LIBRARIES := libxcb libXau libXdmcp libX11 libXext libXrender libxkbfile libICE libSM libXt libXmu LOCAL_LDFLAGS := -pie diff --git a/jni/application/xsel-master/Android.mk b/jni/application/xsel-master/Android.mk index 28096df..769d6ba 100644 --- a/jni/application/xsel-master/Android.mk +++ b/jni/application/xsel-master/Android.mk @@ -7,17 +7,20 @@ LOCAL_SDK_VERSION := 21 LOCAL_MODULE := xsel LOCAL_C_INCLUDES := \ - $(LOCAL_PATH)/../header/include \ + external/XServer-XSDL-android-src/jni/application/header/include \ LOCAL_CFLAGS := -DHAVE_CONFIG_H -Drpl_malloc=malloc +LOCAL_SRCS := \ + *.c \ + LOCAL_SRC_FILES := \ - $(wildcard $(LOCAL_PATH)/*.c) \ + $(foreach F, $(LOCAL_SRCS), $(addprefix $(dir $(F)),$(notdir $(wildcard $(LOCAL_PATH)/$(F))))) \ LOCAL_SHARED_LIBRARIES := -LOCAL_STATIC_LIBRARIES := android_support xcb Xau Xdmcp X11 Xext Xrender xkbfile ICE SM Xt Xmu +LOCAL_STATIC_LIBRARIES := libxcb libXau libXdmcp libX11 libXext libXrender libxkbfile libICE libSM libXt libXmu LOCAL_LDFLAGS := -pie diff --git a/jni/application/xserver/Android.mk b/jni/application/xserver/Android.mk index 9924761..9fcf741 100644 --- a/jni/application/xserver/Android.mk +++ b/jni/application/xserver/Android.mk @@ -7,12 +7,14 @@ include $(CLEAR_VARS) LOCAL_MODULE := libapplication LOCAL_C_INCLUDES := \ - $(LOCAL_PATH)/../header/include \ + external/XServer-XSDL-android-src/jni/application/header/include \ + external/XServer-XSDL-android-src/jni/sdl-1.2/include \ + external/XServer-XSDL-android-src/jni/sdl_ttf/include \ + external/XServer-XSDL-android-src/jni/application/pixman-0.30.2/pixman \ + external/XServer-XSDL-android-src/jni/application/android-shmem \ + external/boringssl/include \ $(LOCAL_PATH)/xserver/include \ - $(LOCAL_PATH)/../../sdl-1.2/include \ - $(LOCAL_PATH)/../../sdl_ttf/include \ $(LOCAL_PATH)/xserver/hw/kdrive/src \ - $(LOCAL_PATH)/../pixman-0.30.2/pixman \ $(LOCAL_PATH)/xserver/Xext \ $(LOCAL_PATH)/xserver/dix \ $(LOCAL_PATH)/xserver/fb \ @@ -48,55 +50,59 @@ LOCAL_CFLAGS := -DHAVE_CONFIG_H \ +LOCAL_SRCS := \ + *.c \ + xserver/src/*.c \ + xserver/hw/kdrive/sdl/*.c \ + xserver/dix/*.c \ + xserver/hw/kdrive/src/*.c \ + xserver/fb/*.c \ + xserver/mi/*.c \ + xserver/xfixes/*.c \ + xserver/dbe/*.c \ + xserver/record/*.c \ + xserver/randr/*.c \ + xserver/render/*.c \ + xserver/damageext/*.c \ + xserver/miext/sync/*.c \ + xserver/miext/damage/*.c \ + xserver/miext/shadow/*.c \ + xserver/Xi/*.c \ + xserver/xkb/*.c \ + xserver/composite/*.c \ + xserver/os/*.c \ + xserver/hw/kdrive/linux/*.c \ + LOCAL_SRC_FILES := \ - $(wildcard $(LOCAL_PATH)/*.c) \ - $(wildcard $(LOCAL_PATH)/xserver/src/*.c) \ - $(wildcard $(LOCAL_PATH)/xserver/hw/kdrive/sdl/*.c) \ - $(wildcard $(LOCAL_PATH)/xserver/dix/*.c) \ - $(wildcard $(LOCAL_PATH)/xserver/hw/kdrive/src/*.c) \ - $(wildcard $(LOCAL_PATH)/xserver/fb/*.c) \ - $(wildcard $(LOCAL_PATH)/xserver/mi/*.c) \ - $(wildcard $(LOCAL_PATH)/xserver/xfixes/*.c) \ - $(wildcard $(LOCAL_PATH)/xserver/dbe/*.c) \ - $(wildcard $(LOCAL_PATH)/xserver/record/*.c) \ - $(wildcard $(LOCAL_PATH)/xserver/randr/*.c) \ - $(wildcard $(LOCAL_PATH)/xserver/render/*.c) \ - $(wildcard $(LOCAL_PATH)/xserver/damageext/*.c) \ - $(wildcard $(LOCAL_PATH)/xserver/miext/sync/*.c) \ - $(wildcard $(LOCAL_PATH)/xserver/miext/damage/*.c) \ - $(wildcard $(LOCAL_PATH)/xserver/miext/shadow/*.c) \ - $(wildcard $(LOCAL_PATH)/xserver/Xi/*.c) \ - $(wildcard $(LOCAL_PATH)/xserver/xkb/*.c) \ - $(wildcard $(LOCAL_PATH)/xserver/composite/*.c) \ - $(wildcard $(LOCAL_PATH)/xserver/os/*.c) \ - $(wildcard $(LOCAL_PATH)/xserver/hw/kdrive/linux/*.c) \ - $(LOCAL_PATH)/xserver/Xext/bigreq.c \ - $(LOCAL_PATH)/xserver/Xext/dpms.c \ - $(LOCAL_PATH)/xserver/Xext/geext.c \ - $(LOCAL_PATH)/xserver/Xext/panoramiX.c \ - $(LOCAL_PATH)/xserver/Xext/panoramiXprocs.c \ - $(LOCAL_PATH)/xserver/Xext/panoramiXSwap.c \ - $(LOCAL_PATH)/xserver/Xext/saver.c \ - $(LOCAL_PATH)/xserver/Xext/shape.c \ - $(LOCAL_PATH)/xserver/Xext/shm.c \ - $(LOCAL_PATH)/xserver/Xext/sleepuntil.c \ - $(LOCAL_PATH)/xserver/Xext/sync.c \ - $(LOCAL_PATH)/xserver/Xext/xace.c \ - $(LOCAL_PATH)/xserver/Xext/xcmisc.c \ - $(LOCAL_PATH)/xserver/Xext/xres.c \ - $(LOCAL_PATH)/xserver/Xext/xtest.c \ - $(LOCAL_PATH)/xserver/Xext/xvdisp.c \ - $(LOCAL_PATH)/xserver/Xext/xvmain.c \ - $(LOCAL_PATH)/xserver/Xext/xvmc.c \ + xserver/Xext/bigreq.c \ + xserver/Xext/dpms.c \ + xserver/Xext/geext.c \ + xserver/Xext/panoramiX.c \ + xserver/Xext/panoramiXprocs.c \ + xserver/Xext/panoramiXSwap.c \ + xserver/Xext/saver.c \ + xserver/Xext/shape.c \ + xserver/Xext/shm.c \ + xserver/Xext/sleepuntil.c \ + xserver/Xext/sync.c \ + xserver/Xext/xace.c \ + xserver/Xext/xcmisc.c \ + xserver/Xext/xres.c \ + xserver/Xext/xtest.c \ + xserver/Xext/xvdisp.c \ + xserver/Xext/xvmain.c \ + xserver/Xext/xvmc.c \ + $(foreach F, $(LOCAL_SRCS), $(addprefix $(dir $(F)),$(notdir $(wildcard $(LOCAL_PATH)/$(F))))) -# $(wildcard $(LOCAL_PATH)/xserver/Xext/*.c) \ +# $(wildcard xserver/Xext/*.c) \ -LOCAL_SHARED_LIBRARIES := sdl-1.2 sdl_ttf +LOCAL_SHARED_LIBRARIES := libsdl-1.2 libsdl_ttf libXfont -LOCAL_STATIC_LIBRARIES := android_support freetype xcb \ - Xau Xdmcp X11 Xext Xrender xkbfile \ - ICE fontenc android-shmem Xfont pixman-1 +LOCAL_STATIC_LIBRARIES := libxcb \ + libXau libXdmcp libX11 libXext libXrender libxkbfile \ + libICE libfontenc libandroid-shmem libpixman-1 \ + libcrypto_static #LOCAL_LDFLAGS := -pie @@ -104,4 +110,4 @@ LOCAL_LDLIBS := -llog -lc -lm -ldl -lz -lGLESv1_CM include $(BUILD_SHARED_LIBRARY) -$(call import-module,android/support) +#$(call import-module,android/support) diff --git a/jni/application/xserver/xserver/include/dix-config.h b/jni/application/xserver/xserver/include/dix-config.h index a942535..60b9951 100644 --- a/jni/application/xserver/xserver/include/dix-config.h +++ b/jni/application/xserver/xserver/include/dix-config.h @@ -162,7 +162,7 @@ /* #undef HAVE_RPCSVC_DBM_H */ /* Define to use libc SHA1 functions */ -#define HAVE_SHA1_IN_LIBC 1 +//#define HAVE_SHA1_IN_LIBC 1 /* Define to use CommonCrypto SHA1 functions */ /* #undef HAVE_SHA1_IN_COMMONCRYPTO */ diff --git a/jni/freetype/Android.mk b/jni/freetype/Android.mk index bb7fedb..36e624e 100644 --- a/jni/freetype/Android.mk +++ b/jni/freetype/Android.mk @@ -2,11 +2,14 @@ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) -LOCAL_MODULE := freetype +LOCAL_MODULE := libfreetype APP_SUBDIRS := $(patsubst $(LOCAL_PATH)/%, %, $(shell find $(LOCAL_PATH)/src -type d)) -LOCAL_C_INCLUDES := $(foreach D, $(APP_SUBDIRS), $(LOCAL_PATH)/$(D)) $(LOCAL_PATH)/include +LOCAL_C_INCLUDES := $(foreach D, $(APP_SUBDIRS), $(LOCAL_PATH)/$(D)) $(LOCAL_PATH)/include \ + external/libpng \ + external/zlib + LOCAL_CFLAGS := -O2 -DFT2_BUILD_LIBRARY diff --git a/jni/freetype/src/base/ftobjs.c b/jni/freetype/src/base/ftobjs.c index 46bcd3b..2691dc0 100644 --- a/jni/freetype/src/base/ftobjs.c +++ b/jni/freetype/src/base/ftobjs.c @@ -745,11 +745,11 @@ else if ( slot->format == FT_GLYPH_FORMAT_OUTLINE ) { /* apply `standard' transformation if no renderer is available */ - if ( &internal->transform_matrix ) + //if ( &internal->transform_matrix ) FT_Outline_Transform( &slot->outline, &internal->transform_matrix ); - if ( &internal->transform_delta ) + // if ( &internal->transform_delta ) FT_Outline_Translate( &slot->outline, internal->transform_delta.x, internal->transform_delta.y ); diff --git a/jni/jpeg/Android.mk b/jni/jpeg/Android.mk index d8f29e8..dbc997d 100644 --- a/jni/jpeg/Android.mk +++ b/jni/jpeg/Android.mk @@ -33,6 +33,6 @@ LOCAL_C_INCLUDES := $(LOCAL_PATH)/include LOCAL_CFLAGS += -DAVOID_TABLES LOCAL_CFLAGS += -O3 -fstrict-aliasing -fprefetch-loop-arrays -LOCAL_MODULE:= jpeg +LOCAL_MODULE:= libjpeg include $(BUILD_STATIC_LIBRARY) diff --git a/jni/ndk/Android.mk b/jni/ndk/Android.mk new file mode 100644 index 0000000..2125d3c --- /dev/null +++ b/jni/ndk/Android.mk @@ -0,0 +1,4 @@ + +#include ndk/sources/android/cpufeatures/Android.mk + +#include ndk/sources/android/support/Android.mk diff --git a/jni/ogg/AUTHORS b/jni/ogg/AUTHORS deleted file mode 100644 index 80c787c..0000000 --- a/jni/ogg/AUTHORS +++ /dev/null @@ -1,4 +0,0 @@ -Monty - -and the rest of the Xiph.Org Foundation. - diff --git a/jni/ogg/Android.mk b/jni/ogg/Android.mk deleted file mode 100644 index 1a531aa..0000000 --- a/jni/ogg/Android.mk +++ /dev/null @@ -1,22 +0,0 @@ -LOCAL_PATH := $(call my-dir) - -include $(CLEAR_VARS) - -LOCAL_MODULE := ogg - -LOCAL_C_INCLUDES := $(LOCAL_PATH)/include -LOCAL_CFLAGS := -O3 - - -LOCAL_CPP_EXTENSION := .cpp - -LOCAL_SRC_FILES := $(addprefix src/, $(notdir $(wildcard $(LOCAL_PATH)/src/*.c) $(wildcard $(LOCAL_PATH)/src/*.cpp))) - -LOCAL_STATIC_LIBRARIES := - -LOCAL_SHARED_LIBRARIES := - -LOCAL_LDLIBS := - -include $(BUILD_STATIC_LIBRARY) - diff --git a/jni/ogg/CHANGES b/jni/ogg/CHANGES deleted file mode 100644 index 40c60b6..0000000 --- a/jni/ogg/CHANGES +++ /dev/null @@ -1,49 +0,0 @@ -Version 1.2.0 (2010 March 25) - -* Alter default flushing behavior to span less often and use larger page - sizes when packet sizes are large. -* Build fixes for additional compilers -* Documentation updates - -Version 1.1.4 (2009 June 24) - -* New async error reporting mechanism. Calls made after a fatal error are - now safely handled in the event an error code is ignored -* Added allocation checks useful to some embedded applications -* fix possible read past end of buffer when reading 0 bits -* Updates to API documentation -* Build fixes - -Version 1.1.3 (2005 November 27) - - * Correct a bug in the granulepos field of pages where no packet ends - * New VS2003 and XCode builds, minor fixes to other builds - * documentation fixes and cleanup - -Version 1.1.2 (2004 September 23) - - * fix a bug with multipage packet assembly after seek - -Version 1.1.1 (2004 September 12) - - * various bugfixes - * important bugfix for 64-bit platforms - * various portability fixes - * autotools cleanup from Thomas Vander Stichele - * Symbian OS build support from Colin Ward at CSIRO - * new multiplexed Ogg stream documentation - -Version 1.1 (2003 November 17) - - * big-endian bitpacker routines for Theora - * various portability fixes - * improved API documenation - * RFC 3533 documentation of the format by Silvia Pfeiffer at CSIRO - * RFC 3534 documentation of the application/ogg mime-type by Linus Walleij - -Version 1.0 (2002 July 19) - - * First stable release - * little-endian bitpacker routines for Vorbis - * basic Ogg bitstream sync and coding support - diff --git a/jni/ogg/COPYING b/jni/ogg/COPYING deleted file mode 100644 index 6111c6c..0000000 --- a/jni/ogg/COPYING +++ /dev/null @@ -1,28 +0,0 @@ -Copyright (c) 2002, Xiph.org Foundation - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -- Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - -- Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - -- Neither the name of the Xiph.org Foundation nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION -OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/jni/ogg/README b/jni/ogg/README deleted file mode 100644 index e31d40a..0000000 --- a/jni/ogg/README +++ /dev/null @@ -1,133 +0,0 @@ -******************************************************************** -* * -* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * -* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * -* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * -* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * -* * -* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * -* by the Xiph.Org Foundation http://www.xiph.org/ * -* * -******************************************************************** - -WHAT'S HERE: - -This source distribution includes libogg and nothing else. Other modules -(eg, the modules vorbis, vorbis-tools and vorbis-plugins for the Vorbis -codec) contain the codec libraries for use with Ogg bitstreams. - -Directory: - -./src The source for libogg, a BSD-license inplementation of - the public domain Ogg bitstream format - -./include Library API headers and codebooks - -./doc Ogg specification documents - -./win32 Win32 projects and build automation - -./macosx MacOS X project and build files - -./macos Classic MacOS 9 projects and build automation - -./debian Rules/spec files for building Debian .deb packages - (may not be present, depending on your distribution) - -WHAT IS OGG?: - -Ogg project codecs use the Ogg bitstream format to arrange the raw, -compressed bitstream into a more robust, useful form. For example, -the Ogg bitstream makes seeking, time stamping and error recovery -possible, as well as mixing several sepearate, concurrent media -streams into a single physical bitstream. - -CONTACT: - -The Ogg homepage is located at 'http://www.xiph.org/ogg/'. -Up to date technical documents, contact information, source code and -pre-built utilities may be found there. - -BUILDING FROM REPOSITORY SOURCE: - -A standard svn build should consist of nothing more than: - -./autogen.sh -make - -and as root if desired : - -make install - -This will install the Ogg libraries (static and shared) into -/usr/local/lib, includes into /usr/local/include and API manpages -(once we write some) into /usr/local/man. - -BUILDING FROM TARBALL DISTRIBUTIONS: - -./configure -make - -and optionally (as root): -make install - -BUILDING RPMS: - -RPMs may be built by: - -make dist -rpm -ta libogg-.tar.gz - -BUILDING ON WIN32: - -Use the project file in the win32 directory. It should compile out of the box. -You can also run one of the batch files from the commandline. - -E.g.: build_ogg_dynamic - -CROSS COMPILING FROM LINUX TO WIN32: - -It is also possible to cross compile from Linux to windows using the MinGW -cross tools and even to run the test suite under Wine, the Linux/*nix -windows emulator. - -On Debian and Ubuntu systems, these cross compiler tools can be installed -by doing: - - sudo apt-get mingw32 mingw32-binutils mingw32-runtime wine - -Once these tools are installed its possible to compile and test by -executing the following commands: - - ./configure --host=i586-mingw32msvc --target=i586-mingw32msvc \ - --build=i586-linux - make - make check - -The above has been tested with the following versions of the tools on -Ubuntu's Hardy Heron release: - - mingw32 4.2.1.dfsg-1ubuntu1 - mingw32-binutils 2.17.50-20070129.1-1 - mingw32-runtime 3.13-1 - wine 0.9.59-0ubuntu4 - -BUILDING ON MACOS 9: - -Ogg on MacOS 9 is built using CodeWarrior 5.3. To build it, first -open ogg/mac/libogg.mcp, switch to the "Targets" pane, select -everything, and make the project. In ogg/mac/Output you will now have -both debug and final versions of Ogg shared libraries to link your -projects against. - -To build a project using Ogg, add access paths to your CodeWarrior -project for the ogg/include and ogg/mac/Output folders. Be sure that -"interpret DOS and Unix paths" is turned on in your project; it can be -found in the "access paths" pane in your project settings. Now simply -add the shared libraries you need to your project (OggLib at least) -and #include "ogg/ogg.h" wherever you need to acces Ogg functionality. - -(Build instructions for Ogg codecs such as vorbis are similar and may -be found in those source modules' README files) - -$Id: README 14726 2008-04-14 08:40:46Z erikd $ diff --git a/jni/ogg/include/ogg/config_types.h b/jni/ogg/include/ogg/config_types.h deleted file mode 100644 index a320fc8..0000000 --- a/jni/ogg/include/ogg/config_types.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef __CONFIG_TYPES_H__ -#define __CONFIG_TYPES_H__ - -/* these are filled in by configure */ -typedef short ogg_int16_t; -typedef unsigned short ogg_uint16_t; -typedef int ogg_int32_t; -typedef unsigned int ogg_uint32_t; -typedef long long ogg_int64_t; - -#endif diff --git a/jni/ogg/include/ogg/ogg.h b/jni/ogg/include/ogg/ogg.h deleted file mode 100644 index ae0cfd5..0000000 --- a/jni/ogg/include/ogg/ogg.h +++ /dev/null @@ -1,208 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: toplevel libogg include - last mod: $Id: ogg.h 16051 2009-05-27 05:00:06Z xiphmont $ - - ********************************************************************/ -#ifndef _OGG_H -#define _OGG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -typedef struct { - void *iov_base; - size_t iov_len; -} ogg_iovec_t; - -typedef struct { - long endbyte; - int endbit; - - unsigned char *buffer; - unsigned char *ptr; - long storage; -} oggpack_buffer; - -/* ogg_page is used to encapsulate the data in one Ogg bitstream page *****/ - -typedef struct { - unsigned char *header; - long header_len; - unsigned char *body; - long body_len; -} ogg_page; - -/* ogg_stream_state contains the current encode/decode state of a logical - Ogg bitstream **********************************************************/ - -typedef struct { - unsigned char *body_data; /* bytes from packet bodies */ - long body_storage; /* storage elements allocated */ - long body_fill; /* elements stored; fill mark */ - long body_returned; /* elements of fill returned */ - - - int *lacing_vals; /* The values that will go to the segment table */ - ogg_int64_t *granule_vals; /* granulepos values for headers. Not compact - this way, but it is simple coupled to the - lacing fifo */ - long lacing_storage; - long lacing_fill; - long lacing_packet; - long lacing_returned; - - unsigned char header[282]; /* working space for header encode */ - int header_fill; - - int e_o_s; /* set when we have buffered the last packet in the - logical bitstream */ - int b_o_s; /* set after we've written the initial page - of a logical bitstream */ - long serialno; - long pageno; - ogg_int64_t packetno; /* sequence number for decode; the framing - knows where there's a hole in the data, - but we need coupling so that the codec - (which is in a seperate abstraction - layer) also knows about the gap */ - ogg_int64_t granulepos; - -} ogg_stream_state; - -/* ogg_packet is used to encapsulate the data and metadata belonging - to a single raw Ogg/Vorbis packet *************************************/ - -typedef struct { - unsigned char *packet; - long bytes; - long b_o_s; - long e_o_s; - - ogg_int64_t granulepos; - - ogg_int64_t packetno; /* sequence number for decode; the framing - knows where there's a hole in the data, - but we need coupling so that the codec - (which is in a seperate abstraction - layer) also knows about the gap */ -} ogg_packet; - -typedef struct { - unsigned char *data; - int storage; - int fill; - int returned; - - int unsynced; - int headerbytes; - int bodybytes; -} ogg_sync_state; - -/* Ogg BITSTREAM PRIMITIVES: bitstream ************************/ - -extern void oggpack_writeinit(oggpack_buffer *b); -extern int oggpack_writecheck(oggpack_buffer *b); -extern void oggpack_writetrunc(oggpack_buffer *b,long bits); -extern void oggpack_writealign(oggpack_buffer *b); -extern void oggpack_writecopy(oggpack_buffer *b,void *source,long bits); -extern void oggpack_reset(oggpack_buffer *b); -extern void oggpack_writeclear(oggpack_buffer *b); -extern void oggpack_readinit(oggpack_buffer *b,unsigned char *buf,int bytes); -extern void oggpack_write(oggpack_buffer *b,unsigned long value,int bits); -extern long oggpack_look(oggpack_buffer *b,int bits); -extern long oggpack_look1(oggpack_buffer *b); -extern void oggpack_adv(oggpack_buffer *b,int bits); -extern void oggpack_adv1(oggpack_buffer *b); -extern long oggpack_read(oggpack_buffer *b,int bits); -extern long oggpack_read1(oggpack_buffer *b); -extern long oggpack_bytes(oggpack_buffer *b); -extern long oggpack_bits(oggpack_buffer *b); -extern unsigned char *oggpack_get_buffer(oggpack_buffer *b); - -extern void oggpackB_writeinit(oggpack_buffer *b); -extern int oggpackB_writecheck(oggpack_buffer *b); -extern void oggpackB_writetrunc(oggpack_buffer *b,long bits); -extern void oggpackB_writealign(oggpack_buffer *b); -extern void oggpackB_writecopy(oggpack_buffer *b,void *source,long bits); -extern void oggpackB_reset(oggpack_buffer *b); -extern void oggpackB_writeclear(oggpack_buffer *b); -extern void oggpackB_readinit(oggpack_buffer *b,unsigned char *buf,int bytes); -extern void oggpackB_write(oggpack_buffer *b,unsigned long value,int bits); -extern long oggpackB_look(oggpack_buffer *b,int bits); -extern long oggpackB_look1(oggpack_buffer *b); -extern void oggpackB_adv(oggpack_buffer *b,int bits); -extern void oggpackB_adv1(oggpack_buffer *b); -extern long oggpackB_read(oggpack_buffer *b,int bits); -extern long oggpackB_read1(oggpack_buffer *b); -extern long oggpackB_bytes(oggpack_buffer *b); -extern long oggpackB_bits(oggpack_buffer *b); -extern unsigned char *oggpackB_get_buffer(oggpack_buffer *b); - -/* Ogg BITSTREAM PRIMITIVES: encoding **************************/ - -extern int ogg_stream_packetin(ogg_stream_state *os, ogg_packet *op); -extern int ogg_stream_iovecin(ogg_stream_state *os, ogg_iovec_t *iov, - int count, long e_o_s, ogg_int64_t granulepos); -extern int ogg_stream_pageout(ogg_stream_state *os, ogg_page *og); -extern int ogg_stream_flush(ogg_stream_state *os, ogg_page *og); - -/* Ogg BITSTREAM PRIMITIVES: decoding **************************/ - -extern int ogg_sync_init(ogg_sync_state *oy); -extern int ogg_sync_clear(ogg_sync_state *oy); -extern int ogg_sync_reset(ogg_sync_state *oy); -extern int ogg_sync_destroy(ogg_sync_state *oy); -extern int ogg_sync_check(ogg_sync_state *oy); - -extern char *ogg_sync_buffer(ogg_sync_state *oy, long size); -extern int ogg_sync_wrote(ogg_sync_state *oy, long bytes); -extern long ogg_sync_pageseek(ogg_sync_state *oy,ogg_page *og); -extern int ogg_sync_pageout(ogg_sync_state *oy, ogg_page *og); -extern int ogg_stream_pagein(ogg_stream_state *os, ogg_page *og); -extern int ogg_stream_packetout(ogg_stream_state *os,ogg_packet *op); -extern int ogg_stream_packetpeek(ogg_stream_state *os,ogg_packet *op); - -/* Ogg BITSTREAM PRIMITIVES: general ***************************/ - -extern int ogg_stream_init(ogg_stream_state *os,int serialno); -extern int ogg_stream_clear(ogg_stream_state *os); -extern int ogg_stream_reset(ogg_stream_state *os); -extern int ogg_stream_reset_serialno(ogg_stream_state *os,int serialno); -extern int ogg_stream_destroy(ogg_stream_state *os); -extern int ogg_stream_check(ogg_stream_state *os); -extern int ogg_stream_eos(ogg_stream_state *os); - -extern void ogg_page_checksum_set(ogg_page *og); - -extern int ogg_page_version(const ogg_page *og); -extern int ogg_page_continued(const ogg_page *og); -extern int ogg_page_bos(const ogg_page *og); -extern int ogg_page_eos(const ogg_page *og); -extern ogg_int64_t ogg_page_granulepos(const ogg_page *og); -extern int ogg_page_serialno(const ogg_page *og); -extern long ogg_page_pageno(const ogg_page *og); -extern int ogg_page_packets(const ogg_page *og); - -extern void ogg_packet_clear(ogg_packet *op); - - -#ifdef __cplusplus -} -#endif - -#endif /* _OGG_H */ diff --git a/jni/ogg/include/ogg/os_types.h b/jni/ogg/include/ogg/os_types.h deleted file mode 100644 index f6f8b38..0000000 --- a/jni/ogg/include/ogg/os_types.h +++ /dev/null @@ -1,148 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: #ifdef jail to whip a few platforms into the UNIX ideal. - last mod: $Id: os_types.h 16649 2009-10-25 00:49:58Z ds $ - - ********************************************************************/ -#ifndef _OS_TYPES_H -#define _OS_TYPES_H - -/* make it easy on the folks that want to compile the libs with a - different malloc than stdlib */ -#define _ogg_malloc malloc -#define _ogg_calloc calloc -#define _ogg_realloc realloc -#define _ogg_free free - -#if defined(_WIN32) - -# if defined(__CYGWIN__) -# include - typedef int16_t ogg_int16_t; - typedef uint16_t ogg_uint16_t; - typedef int32_t ogg_int32_t; - typedef uint32_t ogg_uint32_t; - typedef int64_t ogg_int64_t; - typedef uint64_t ogg_uint64_t; -# elif defined(__MINGW32__) -# include - typedef short ogg_int16_t; - typedef unsigned short ogg_uint16_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long ogg_int64_t; - typedef unsigned long long ogg_uint64_t; -# elif defined(__MWERKS__) - typedef long long ogg_int64_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef short ogg_int16_t; - typedef unsigned short ogg_uint16_t; -# else - /* MSVC/Borland */ - typedef __int64 ogg_int64_t; - typedef __int32 ogg_int32_t; - typedef unsigned __int32 ogg_uint32_t; - typedef __int16 ogg_int16_t; - typedef unsigned __int16 ogg_uint16_t; -# endif - -#elif defined(__MACOS__) - -# include - typedef SInt16 ogg_int16_t; - typedef UInt16 ogg_uint16_t; - typedef SInt32 ogg_int32_t; - typedef UInt32 ogg_uint32_t; - typedef SInt64 ogg_int64_t; - -#elif (defined(__APPLE__) && defined(__MACH__)) /* MacOS X Framework build */ - -# include - typedef int16_t ogg_int16_t; - typedef u_int16_t ogg_uint16_t; - typedef int32_t ogg_int32_t; - typedef u_int32_t ogg_uint32_t; - typedef int64_t ogg_int64_t; - -#elif defined(__HAIKU__) - - /* Haiku */ -# include - typedef short ogg_int16_t; - typedef unsigned short ogg_uint16_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long ogg_int64_t; - -#elif defined(__BEOS__) - - /* Be */ -# include - typedef int16_t ogg_int16_t; - typedef u_int16_t ogg_uint16_t; - typedef int32_t ogg_int32_t; - typedef u_int32_t ogg_uint32_t; - typedef int64_t ogg_int64_t; - -#elif defined (__EMX__) - - /* OS/2 GCC */ - typedef short ogg_int16_t; - typedef unsigned short ogg_uint16_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long ogg_int64_t; - -#elif defined (DJGPP) - - /* DJGPP */ - typedef short ogg_int16_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long ogg_int64_t; - -#elif defined(R5900) - - /* PS2 EE */ - typedef long ogg_int64_t; - typedef int ogg_int32_t; - typedef unsigned ogg_uint32_t; - typedef short ogg_int16_t; - -#elif defined(__SYMBIAN32__) - - /* Symbian GCC */ - typedef signed short ogg_int16_t; - typedef unsigned short ogg_uint16_t; - typedef signed int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long int ogg_int64_t; - -#elif defined(__TMS320C6X__) - - /* TI C64x compiler */ - typedef signed short ogg_int16_t; - typedef unsigned short ogg_uint16_t; - typedef signed int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long int ogg_int64_t; - -#else - -# include -# include - -#endif - -#endif /* _OS_TYPES_H */ diff --git a/jni/ogg/src/bitwise.c b/jni/ogg/src/bitwise.c deleted file mode 100644 index e800901..0000000 --- a/jni/ogg/src/bitwise.c +++ /dev/null @@ -1,822 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE Ogg CONTAINER SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2010 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: packing variable sized words into an octet stream - last mod: $Id: bitwise.c 16993 2010-03-21 23:15:46Z xiphmont $ - - ********************************************************************/ - -/* We're 'LSb' endian; if we write a word but read individual bits, - then we'll read the lsb first */ - -#include -#include -#include - -#define BUFFER_INCREMENT 256 - -static const unsigned long mask[]= -{0x00000000,0x00000001,0x00000003,0x00000007,0x0000000f, - 0x0000001f,0x0000003f,0x0000007f,0x000000ff,0x000001ff, - 0x000003ff,0x000007ff,0x00000fff,0x00001fff,0x00003fff, - 0x00007fff,0x0000ffff,0x0001ffff,0x0003ffff,0x0007ffff, - 0x000fffff,0x001fffff,0x003fffff,0x007fffff,0x00ffffff, - 0x01ffffff,0x03ffffff,0x07ffffff,0x0fffffff,0x1fffffff, - 0x3fffffff,0x7fffffff,0xffffffff }; - -static const unsigned int mask8B[]= -{0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff}; - -void oggpack_writeinit(oggpack_buffer *b){ - memset(b,0,sizeof(*b)); - b->ptr=b->buffer=_ogg_malloc(BUFFER_INCREMENT); - b->buffer[0]='\0'; - b->storage=BUFFER_INCREMENT; -} - -void oggpackB_writeinit(oggpack_buffer *b){ - oggpack_writeinit(b); -} - -int oggpack_writecheck(oggpack_buffer *b){ - if(!b->ptr || !b->storage)return -1; - return 0; -} - -int oggpackB_writecheck(oggpack_buffer *b){ - return oggpack_writecheck(b); -} - -void oggpack_writetrunc(oggpack_buffer *b,long bits){ - long bytes=bits>>3; - if(b->ptr){ - bits-=bytes*8; - b->ptr=b->buffer+bytes; - b->endbit=bits; - b->endbyte=bytes; - *b->ptr&=mask[bits]; - } -} - -void oggpackB_writetrunc(oggpack_buffer *b,long bits){ - long bytes=bits>>3; - if(b->ptr){ - bits-=bytes*8; - b->ptr=b->buffer+bytes; - b->endbit=bits; - b->endbyte=bytes; - *b->ptr&=mask8B[bits]; - } -} - -/* Takes only up to 32 bits. */ -void oggpack_write(oggpack_buffer *b,unsigned long value,int bits){ - if(b->endbyte+4>=b->storage){ - void *ret; - if(!b->ptr)return; - ret=_ogg_realloc(b->buffer,b->storage+BUFFER_INCREMENT); - if(!ret){ - oggpack_writeclear(b); - return; - } - b->buffer=ret; - b->storage+=BUFFER_INCREMENT; - b->ptr=b->buffer+b->endbyte; - } - - value&=mask[bits]; - bits+=b->endbit; - - b->ptr[0]|=value<endbit; - - if(bits>=8){ - b->ptr[1]=(unsigned char)(value>>(8-b->endbit)); - if(bits>=16){ - b->ptr[2]=(unsigned char)(value>>(16-b->endbit)); - if(bits>=24){ - b->ptr[3]=(unsigned char)(value>>(24-b->endbit)); - if(bits>=32){ - if(b->endbit) - b->ptr[4]=(unsigned char)(value>>(32-b->endbit)); - else - b->ptr[4]=0; - } - } - } - } - - b->endbyte+=bits/8; - b->ptr+=bits/8; - b->endbit=bits&7; -} - -/* Takes only up to 32 bits. */ -void oggpackB_write(oggpack_buffer *b,unsigned long value,int bits){ - if(b->endbyte+4>=b->storage){ - void *ret; - if(!b->ptr)return; - ret=_ogg_realloc(b->buffer,b->storage+BUFFER_INCREMENT); - if(!ret){ - oggpack_writeclear(b); - return; - } - b->buffer=ret; - b->storage+=BUFFER_INCREMENT; - b->ptr=b->buffer+b->endbyte; - } - - value=(value&mask[bits])<<(32-bits); - bits+=b->endbit; - - b->ptr[0]|=value>>(24+b->endbit); - - if(bits>=8){ - b->ptr[1]=(unsigned char)(value>>(16+b->endbit)); - if(bits>=16){ - b->ptr[2]=(unsigned char)(value>>(8+b->endbit)); - if(bits>=24){ - b->ptr[3]=(unsigned char)(value>>(b->endbit)); - if(bits>=32){ - if(b->endbit) - b->ptr[4]=(unsigned char)(value<<(8-b->endbit)); - else - b->ptr[4]=0; - } - } - } - } - - b->endbyte+=bits/8; - b->ptr+=bits/8; - b->endbit=bits&7; -} - -void oggpack_writealign(oggpack_buffer *b){ - int bits=8-b->endbit; - if(bits<8) - oggpack_write(b,0,bits); -} - -void oggpackB_writealign(oggpack_buffer *b){ - int bits=8-b->endbit; - if(bits<8) - oggpackB_write(b,0,bits); -} - -static void oggpack_writecopy_helper(oggpack_buffer *b, - void *source, - long bits, - void (*w)(oggpack_buffer *, - unsigned long, - int), - int msb){ - unsigned char *ptr=(unsigned char *)source; - - long bytes=bits/8; - bits-=bytes*8; - - if(b->endbit){ - int i; - /* unaligned copy. Do it the hard way. */ - for(i=0;iendbyte+bytes+1>=b->storage){ - void *ret; - if(!b->ptr)return; - b->storage=b->endbyte+bytes+BUFFER_INCREMENT; - ret=_ogg_realloc(b->buffer,b->storage); - if(!ret){ - oggpack_writeclear(b); - return; - } - b->buffer=ret; - b->ptr=b->buffer+b->endbyte; - } - - memmove(b->ptr,source,bytes); - b->ptr+=bytes; - b->endbyte+=bytes; - *b->ptr=0; - - } - if(bits){ - if(msb) - w(b,(unsigned long)(ptr[bytes]>>(8-bits)),bits); - else - w(b,(unsigned long)(ptr[bytes]),bits); - } -} - -void oggpack_writecopy(oggpack_buffer *b,void *source,long bits){ - oggpack_writecopy_helper(b,source,bits,oggpack_write,0); -} - -void oggpackB_writecopy(oggpack_buffer *b,void *source,long bits){ - oggpack_writecopy_helper(b,source,bits,oggpackB_write,1); -} - -void oggpack_reset(oggpack_buffer *b){ - if(!b->ptr)return; - b->ptr=b->buffer; - b->buffer[0]=0; - b->endbit=b->endbyte=0; -} - -void oggpackB_reset(oggpack_buffer *b){ - oggpack_reset(b); -} - -void oggpack_writeclear(oggpack_buffer *b){ - if(b->buffer)_ogg_free(b->buffer); - memset(b,0,sizeof(*b)); -} - -void oggpackB_writeclear(oggpack_buffer *b){ - oggpack_writeclear(b); -} - -void oggpack_readinit(oggpack_buffer *b,unsigned char *buf,int bytes){ - memset(b,0,sizeof(*b)); - b->buffer=b->ptr=buf; - b->storage=bytes; -} - -void oggpackB_readinit(oggpack_buffer *b,unsigned char *buf,int bytes){ - oggpack_readinit(b,buf,bytes); -} - -/* Read in bits without advancing the bitptr; bits <= 32 */ -long oggpack_look(oggpack_buffer *b,int bits){ - unsigned long ret; - unsigned long m=mask[bits]; - - bits+=b->endbit; - - if(b->endbyte+4>=b->storage){ - /* not the main path */ - if(b->endbyte*8+bits>b->storage*8)return(-1); - } - - ret=b->ptr[0]>>b->endbit; - if(bits>8){ - ret|=b->ptr[1]<<(8-b->endbit); - if(bits>16){ - ret|=b->ptr[2]<<(16-b->endbit); - if(bits>24){ - ret|=b->ptr[3]<<(24-b->endbit); - if(bits>32 && b->endbit) - ret|=b->ptr[4]<<(32-b->endbit); - } - } - } - return(m&ret); -} - -/* Read in bits without advancing the bitptr; bits <= 32 */ -long oggpackB_look(oggpack_buffer *b,int bits){ - unsigned long ret; - int m=32-bits; - - bits+=b->endbit; - - if(b->endbyte+4>=b->storage){ - /* not the main path */ - if(b->endbyte*8+bits>b->storage*8)return(-1); - } - - ret=b->ptr[0]<<(24+b->endbit); - if(bits>8){ - ret|=b->ptr[1]<<(16+b->endbit); - if(bits>16){ - ret|=b->ptr[2]<<(8+b->endbit); - if(bits>24){ - ret|=b->ptr[3]<<(b->endbit); - if(bits>32 && b->endbit) - ret|=b->ptr[4]>>(8-b->endbit); - } - } - } - return ((ret&0xffffffff)>>(m>>1))>>((m+1)>>1); -} - -long oggpack_look1(oggpack_buffer *b){ - if(b->endbyte>=b->storage)return(-1); - return((b->ptr[0]>>b->endbit)&1); -} - -long oggpackB_look1(oggpack_buffer *b){ - if(b->endbyte>=b->storage)return(-1); - return((b->ptr[0]>>(7-b->endbit))&1); -} - -void oggpack_adv(oggpack_buffer *b,int bits){ - bits+=b->endbit; - b->ptr+=bits/8; - b->endbyte+=bits/8; - b->endbit=bits&7; -} - -void oggpackB_adv(oggpack_buffer *b,int bits){ - oggpack_adv(b,bits); -} - -void oggpack_adv1(oggpack_buffer *b){ - if(++(b->endbit)>7){ - b->endbit=0; - b->ptr++; - b->endbyte++; - } -} - -void oggpackB_adv1(oggpack_buffer *b){ - oggpack_adv1(b); -} - -/* bits <= 32 */ -long oggpack_read(oggpack_buffer *b,int bits){ - long ret; - unsigned long m=mask[bits]; - - bits+=b->endbit; - - if(b->endbyte+4>=b->storage){ - /* not the main path */ - ret=-1L; - if(b->endbyte*8+bits>b->storage*8)goto overflow; - } - - ret=b->ptr[0]>>b->endbit; - if(bits>8){ - ret|=b->ptr[1]<<(8-b->endbit); - if(bits>16){ - ret|=b->ptr[2]<<(16-b->endbit); - if(bits>24){ - ret|=b->ptr[3]<<(24-b->endbit); - if(bits>32 && b->endbit){ - ret|=b->ptr[4]<<(32-b->endbit); - } - } - } - } - ret&=m; - - overflow: - - b->ptr+=bits/8; - b->endbyte+=bits/8; - b->endbit=bits&7; - return(ret); -} - -/* bits <= 32 */ -long oggpackB_read(oggpack_buffer *b,int bits){ - long ret; - long m=32-bits; - - bits+=b->endbit; - - if(b->endbyte+4>=b->storage){ - /* not the main path */ - ret=-1L; - if(b->endbyte*8+bits>b->storage*8)goto overflow; - /* special case to avoid reading b->ptr[0], which might be past the end of - the buffer; also skips some useless accounting */ - else if(!bits)return(0L); - } - - ret=b->ptr[0]<<(24+b->endbit); - if(bits>8){ - ret|=b->ptr[1]<<(16+b->endbit); - if(bits>16){ - ret|=b->ptr[2]<<(8+b->endbit); - if(bits>24){ - ret|=b->ptr[3]<<(b->endbit); - if(bits>32 && b->endbit) - ret|=b->ptr[4]>>(8-b->endbit); - } - } - } - ret=((ret&0xffffffffUL)>>(m>>1))>>((m+1)>>1); - - overflow: - - b->ptr+=bits/8; - b->endbyte+=bits/8; - b->endbit=bits&7; - return(ret); -} - -long oggpack_read1(oggpack_buffer *b){ - long ret; - - if(b->endbyte>=b->storage){ - /* not the main path */ - ret=-1L; - goto overflow; - } - - ret=(b->ptr[0]>>b->endbit)&1; - - overflow: - - b->endbit++; - if(b->endbit>7){ - b->endbit=0; - b->ptr++; - b->endbyte++; - } - return(ret); -} - -long oggpackB_read1(oggpack_buffer *b){ - long ret; - - if(b->endbyte>=b->storage){ - /* not the main path */ - ret=-1L; - goto overflow; - } - - ret=(b->ptr[0]>>(7-b->endbit))&1; - - overflow: - - b->endbit++; - if(b->endbit>7){ - b->endbit=0; - b->ptr++; - b->endbyte++; - } - return(ret); -} - -long oggpack_bytes(oggpack_buffer *b){ - return(b->endbyte+(b->endbit+7)/8); -} - -long oggpack_bits(oggpack_buffer *b){ - return(b->endbyte*8+b->endbit); -} - -long oggpackB_bytes(oggpack_buffer *b){ - return oggpack_bytes(b); -} - -long oggpackB_bits(oggpack_buffer *b){ - return oggpack_bits(b); -} - -unsigned char *oggpack_get_buffer(oggpack_buffer *b){ - return(b->buffer); -} - -unsigned char *oggpackB_get_buffer(oggpack_buffer *b){ - return oggpack_get_buffer(b); -} - -/* Self test of the bitwise routines; everything else is based on - them, so they damned well better be solid. */ - -#ifdef _V_SELFTEST -#include - -static int ilog(unsigned int v){ - int ret=0; - while(v){ - ret++; - v>>=1; - } - return(ret); -} - -oggpack_buffer o; -oggpack_buffer r; - -void report(char *in){ - fprintf(stderr,"%s",in); - exit(1); -} - -void cliptest(unsigned long *b,int vals,int bits,int *comp,int compsize){ - long bytes,i; - unsigned char *buffer; - - oggpack_reset(&o); - for(i=0;i -#include -#include - -/* A complete description of Ogg framing exists in docs/framing.html */ - -int ogg_page_version(const ogg_page *og){ - return((int)(og->header[4])); -} - -int ogg_page_continued(const ogg_page *og){ - return((int)(og->header[5]&0x01)); -} - -int ogg_page_bos(const ogg_page *og){ - return((int)(og->header[5]&0x02)); -} - -int ogg_page_eos(const ogg_page *og){ - return((int)(og->header[5]&0x04)); -} - -ogg_int64_t ogg_page_granulepos(const ogg_page *og){ - unsigned char *page=og->header; - ogg_int64_t granulepos=page[13]&(0xff); - granulepos= (granulepos<<8)|(page[12]&0xff); - granulepos= (granulepos<<8)|(page[11]&0xff); - granulepos= (granulepos<<8)|(page[10]&0xff); - granulepos= (granulepos<<8)|(page[9]&0xff); - granulepos= (granulepos<<8)|(page[8]&0xff); - granulepos= (granulepos<<8)|(page[7]&0xff); - granulepos= (granulepos<<8)|(page[6]&0xff); - return(granulepos); -} - -int ogg_page_serialno(const ogg_page *og){ - return(og->header[14] | - (og->header[15]<<8) | - (og->header[16]<<16) | - (og->header[17]<<24)); -} - -long ogg_page_pageno(const ogg_page *og){ - return(og->header[18] | - (og->header[19]<<8) | - (og->header[20]<<16) | - (og->header[21]<<24)); -} - - - -/* returns the number of packets that are completed on this page (if - the leading packet is begun on a previous page, but ends on this - page, it's counted */ - -/* NOTE: -If a page consists of a packet begun on a previous page, and a new -packet begun (but not completed) on this page, the return will be: - ogg_page_packets(page) ==1, - ogg_page_continued(page) !=0 - -If a page happens to be a single packet that was begun on a -previous page, and spans to the next page (in the case of a three or -more page packet), the return will be: - ogg_page_packets(page) ==0, - ogg_page_continued(page) !=0 -*/ - -int ogg_page_packets(const ogg_page *og){ - int i,n=og->header[26],count=0; - for(i=0;iheader[27+i]<255)count++; - return(count); -} - - -#if 0 -/* helper to initialize lookup for direct-table CRC (illustrative; we - use the static init below) */ - -static ogg_uint32_t _ogg_crc_entry(unsigned long index){ - int i; - unsigned long r; - - r = index << 24; - for (i=0; i<8; i++) - if (r & 0x80000000UL) - r = (r << 1) ^ 0x04c11db7; /* The same as the ethernet generator - polynomial, although we use an - unreflected alg and an init/final - of 0, not 0xffffffff */ - else - r<<=1; - return (r & 0xffffffffUL); -} -#endif - -static const ogg_uint32_t crc_lookup[256]={ - 0x00000000,0x04c11db7,0x09823b6e,0x0d4326d9, - 0x130476dc,0x17c56b6b,0x1a864db2,0x1e475005, - 0x2608edb8,0x22c9f00f,0x2f8ad6d6,0x2b4bcb61, - 0x350c9b64,0x31cd86d3,0x3c8ea00a,0x384fbdbd, - 0x4c11db70,0x48d0c6c7,0x4593e01e,0x4152fda9, - 0x5f15adac,0x5bd4b01b,0x569796c2,0x52568b75, - 0x6a1936c8,0x6ed82b7f,0x639b0da6,0x675a1011, - 0x791d4014,0x7ddc5da3,0x709f7b7a,0x745e66cd, - 0x9823b6e0,0x9ce2ab57,0x91a18d8e,0x95609039, - 0x8b27c03c,0x8fe6dd8b,0x82a5fb52,0x8664e6e5, - 0xbe2b5b58,0xbaea46ef,0xb7a96036,0xb3687d81, - 0xad2f2d84,0xa9ee3033,0xa4ad16ea,0xa06c0b5d, - 0xd4326d90,0xd0f37027,0xddb056fe,0xd9714b49, - 0xc7361b4c,0xc3f706fb,0xceb42022,0xca753d95, - 0xf23a8028,0xf6fb9d9f,0xfbb8bb46,0xff79a6f1, - 0xe13ef6f4,0xe5ffeb43,0xe8bccd9a,0xec7dd02d, - 0x34867077,0x30476dc0,0x3d044b19,0x39c556ae, - 0x278206ab,0x23431b1c,0x2e003dc5,0x2ac12072, - 0x128e9dcf,0x164f8078,0x1b0ca6a1,0x1fcdbb16, - 0x018aeb13,0x054bf6a4,0x0808d07d,0x0cc9cdca, - 0x7897ab07,0x7c56b6b0,0x71159069,0x75d48dde, - 0x6b93dddb,0x6f52c06c,0x6211e6b5,0x66d0fb02, - 0x5e9f46bf,0x5a5e5b08,0x571d7dd1,0x53dc6066, - 0x4d9b3063,0x495a2dd4,0x44190b0d,0x40d816ba, - 0xaca5c697,0xa864db20,0xa527fdf9,0xa1e6e04e, - 0xbfa1b04b,0xbb60adfc,0xb6238b25,0xb2e29692, - 0x8aad2b2f,0x8e6c3698,0x832f1041,0x87ee0df6, - 0x99a95df3,0x9d684044,0x902b669d,0x94ea7b2a, - 0xe0b41de7,0xe4750050,0xe9362689,0xedf73b3e, - 0xf3b06b3b,0xf771768c,0xfa325055,0xfef34de2, - 0xc6bcf05f,0xc27dede8,0xcf3ecb31,0xcbffd686, - 0xd5b88683,0xd1799b34,0xdc3abded,0xd8fba05a, - 0x690ce0ee,0x6dcdfd59,0x608edb80,0x644fc637, - 0x7a089632,0x7ec98b85,0x738aad5c,0x774bb0eb, - 0x4f040d56,0x4bc510e1,0x46863638,0x42472b8f, - 0x5c007b8a,0x58c1663d,0x558240e4,0x51435d53, - 0x251d3b9e,0x21dc2629,0x2c9f00f0,0x285e1d47, - 0x36194d42,0x32d850f5,0x3f9b762c,0x3b5a6b9b, - 0x0315d626,0x07d4cb91,0x0a97ed48,0x0e56f0ff, - 0x1011a0fa,0x14d0bd4d,0x19939b94,0x1d528623, - 0xf12f560e,0xf5ee4bb9,0xf8ad6d60,0xfc6c70d7, - 0xe22b20d2,0xe6ea3d65,0xeba91bbc,0xef68060b, - 0xd727bbb6,0xd3e6a601,0xdea580d8,0xda649d6f, - 0xc423cd6a,0xc0e2d0dd,0xcda1f604,0xc960ebb3, - 0xbd3e8d7e,0xb9ff90c9,0xb4bcb610,0xb07daba7, - 0xae3afba2,0xaafbe615,0xa7b8c0cc,0xa379dd7b, - 0x9b3660c6,0x9ff77d71,0x92b45ba8,0x9675461f, - 0x8832161a,0x8cf30bad,0x81b02d74,0x857130c3, - 0x5d8a9099,0x594b8d2e,0x5408abf7,0x50c9b640, - 0x4e8ee645,0x4a4ffbf2,0x470cdd2b,0x43cdc09c, - 0x7b827d21,0x7f436096,0x7200464f,0x76c15bf8, - 0x68860bfd,0x6c47164a,0x61043093,0x65c52d24, - 0x119b4be9,0x155a565e,0x18197087,0x1cd86d30, - 0x029f3d35,0x065e2082,0x0b1d065b,0x0fdc1bec, - 0x3793a651,0x3352bbe6,0x3e119d3f,0x3ad08088, - 0x2497d08d,0x2056cd3a,0x2d15ebe3,0x29d4f654, - 0xc5a92679,0xc1683bce,0xcc2b1d17,0xc8ea00a0, - 0xd6ad50a5,0xd26c4d12,0xdf2f6bcb,0xdbee767c, - 0xe3a1cbc1,0xe760d676,0xea23f0af,0xeee2ed18, - 0xf0a5bd1d,0xf464a0aa,0xf9278673,0xfde69bc4, - 0x89b8fd09,0x8d79e0be,0x803ac667,0x84fbdbd0, - 0x9abc8bd5,0x9e7d9662,0x933eb0bb,0x97ffad0c, - 0xafb010b1,0xab710d06,0xa6322bdf,0xa2f33668, - 0xbcb4666d,0xb8757bda,0xb5365d03,0xb1f740b4}; - -/* init the encode/decode logical stream state */ - -int ogg_stream_init(ogg_stream_state *os,int serialno){ - if(os){ - memset(os,0,sizeof(*os)); - os->body_storage=16*1024; - os->lacing_storage=1024; - - os->body_data=_ogg_malloc(os->body_storage*sizeof(*os->body_data)); - os->lacing_vals=_ogg_malloc(os->lacing_storage*sizeof(*os->lacing_vals)); - os->granule_vals=_ogg_malloc(os->lacing_storage*sizeof(*os->granule_vals)); - - if(!os->body_data || !os->lacing_vals || !os->granule_vals){ - ogg_stream_clear(os); - return -1; - } - - os->serialno=serialno; - - return(0); - } - return(-1); -} - -/* async/delayed error detection for the ogg_stream_state */ -int ogg_stream_check(ogg_stream_state *os){ - if(!os || !os->body_data) return -1; - return 0; -} - -/* _clear does not free os, only the non-flat storage within */ -int ogg_stream_clear(ogg_stream_state *os){ - if(os){ - if(os->body_data)_ogg_free(os->body_data); - if(os->lacing_vals)_ogg_free(os->lacing_vals); - if(os->granule_vals)_ogg_free(os->granule_vals); - - memset(os,0,sizeof(*os)); - } - return(0); -} - -int ogg_stream_destroy(ogg_stream_state *os){ - if(os){ - ogg_stream_clear(os); - _ogg_free(os); - } - return(0); -} - -/* Helpers for ogg_stream_encode; this keeps the structure and - what's happening fairly clear */ - -static int _os_body_expand(ogg_stream_state *os,int needed){ - if(os->body_storage<=os->body_fill+needed){ - void *ret; - ret=_ogg_realloc(os->body_data,(os->body_storage+needed+1024)* - sizeof(*os->body_data)); - if(!ret){ - ogg_stream_clear(os); - return -1; - } - os->body_storage+=(needed+1024); - os->body_data=ret; - } - return 0; -} - -static int _os_lacing_expand(ogg_stream_state *os,int needed){ - if(os->lacing_storage<=os->lacing_fill+needed){ - void *ret; - ret=_ogg_realloc(os->lacing_vals,(os->lacing_storage+needed+32)* - sizeof(*os->lacing_vals)); - if(!ret){ - ogg_stream_clear(os); - return -1; - } - os->lacing_vals=ret; - ret=_ogg_realloc(os->granule_vals,(os->lacing_storage+needed+32)* - sizeof(*os->granule_vals)); - if(!ret){ - ogg_stream_clear(os); - return -1; - } - os->granule_vals=ret; - os->lacing_storage+=(needed+32); - } - return 0; -} - -/* checksum the page */ -/* Direct table CRC; note that this will be faster in the future if we - perform the checksum silmultaneously with other copies */ - -void ogg_page_checksum_set(ogg_page *og){ - if(og){ - ogg_uint32_t crc_reg=0; - int i; - - /* safety; needed for API behavior, but not framing code */ - og->header[22]=0; - og->header[23]=0; - og->header[24]=0; - og->header[25]=0; - - for(i=0;iheader_len;i++) - crc_reg=(crc_reg<<8)^crc_lookup[((crc_reg >> 24)&0xff)^og->header[i]]; - for(i=0;ibody_len;i++) - crc_reg=(crc_reg<<8)^crc_lookup[((crc_reg >> 24)&0xff)^og->body[i]]; - - og->header[22]=(unsigned char)(crc_reg&0xff); - og->header[23]=(unsigned char)((crc_reg>>8)&0xff); - og->header[24]=(unsigned char)((crc_reg>>16)&0xff); - og->header[25]=(unsigned char)((crc_reg>>24)&0xff); - } -} - -/* submit data to the internal buffer of the framing engine */ -int ogg_stream_iovecin(ogg_stream_state *os, ogg_iovec_t *iov, int count, - long e_o_s, ogg_int64_t granulepos){ - - int bytes = 0, lacing_vals, i; - - if(ogg_stream_check(os)) return -1; - if(!iov) return 0; - - for (i = 0; i < count; ++i) bytes += (int)iov[i].iov_len; - lacing_vals=bytes/255+1; - - if(os->body_returned){ - /* advance packet data according to the body_returned pointer. We - had to keep it around to return a pointer into the buffer last - call */ - - os->body_fill-=os->body_returned; - if(os->body_fill) - memmove(os->body_data,os->body_data+os->body_returned, - os->body_fill); - os->body_returned=0; - } - - /* make sure we have the buffer storage */ - if(_os_body_expand(os,bytes) || _os_lacing_expand(os,lacing_vals)) - return -1; - - /* Copy in the submitted packet. Yes, the copy is a waste; this is - the liability of overly clean abstraction for the time being. It - will actually be fairly easy to eliminate the extra copy in the - future */ - - for (i = 0; i < count; ++i) { - memcpy(os->body_data+os->body_fill, iov[i].iov_base, iov[i].iov_len); - os->body_fill += (int)iov[i].iov_len; - } - - /* Store lacing vals for this packet */ - for(i=0;ilacing_vals[os->lacing_fill+i]=255; - os->granule_vals[os->lacing_fill+i]=os->granulepos; - } - os->lacing_vals[os->lacing_fill+i]=bytes%255; - os->granulepos=os->granule_vals[os->lacing_fill+i]=granulepos; - - /* flag the first segment as the beginning of the packet */ - os->lacing_vals[os->lacing_fill]|= 0x100; - - os->lacing_fill+=lacing_vals; - - /* for the sake of completeness */ - os->packetno++; - - if(e_o_s)os->e_o_s=1; - - return(0); -} - -int ogg_stream_packetin(ogg_stream_state *os,ogg_packet *op){ - ogg_iovec_t iov; - iov.iov_base = op->packet; - iov.iov_len = op->bytes; - return ogg_stream_iovecin(os, &iov, 1, op->e_o_s, op->granulepos); -} - -/* Conditionally flush a page; force==0 will only flush nominal-size - pages, force==1 forces us to flush a page regardless of page size - so long as there's any data available at all. */ -static int ogg_stream_flush_i(ogg_stream_state *os,ogg_page *og, int force){ - int i; - int vals=0; - int maxvals=(os->lacing_fill>255?255:os->lacing_fill); - int bytes=0; - long acc=0; - ogg_int64_t granule_pos=-1; - - if(ogg_stream_check(os)) return(0); - if(maxvals==0) return(0); - - /* construct a page */ - /* decide how many segments to include */ - - /* If this is the initial header case, the first page must only include - the initial header packet */ - if(os->b_o_s==0){ /* 'initial header page' case */ - granule_pos=0; - for(vals=0;valslacing_vals[vals]&0x0ff)<255){ - vals++; - break; - } - } - }else{ - - /* The extra packets_done, packet_just_done logic here attempts to do two things: - 1) Don't unneccessarily span pages. - 2) Unless necessary, don't flush pages if there are less than four packets on - them; this expands page size to reduce unneccessary overhead if incoming packets - are large. - These are not necessary behaviors, just 'always better than naive flushing' - without requiring an application to explicitly request a specific optimized - behavior. We'll want an explicit behavior setup pathway eventually as well. */ - - int packets_done=0; - int packet_just_done=0; - for(vals=0;vals4096 && packet_just_done>=4){ - force=1; - break; - } - acc+=os->lacing_vals[vals]&0x0ff; - if((os->lacing_vals[vals]&0xff)<255){ - granule_pos=os->granule_vals[vals]; - packet_just_done=++packets_done; - }else - packet_just_done=0; - } - if(vals==255)force=1; - } - - if(!force) return(0); - - /* construct the header in temp storage */ - memcpy(os->header,"OggS",4); - - /* stream structure version */ - os->header[4]=0x00; - - /* continued packet flag? */ - os->header[5]=0x00; - if((os->lacing_vals[0]&0x100)==0)os->header[5]|=0x01; - /* first page flag? */ - if(os->b_o_s==0)os->header[5]|=0x02; - /* last page flag? */ - if(os->e_o_s && os->lacing_fill==vals)os->header[5]|=0x04; - os->b_o_s=1; - - /* 64 bits of PCM position */ - for(i=6;i<14;i++){ - os->header[i]=(unsigned char)(granule_pos&0xff); - granule_pos>>=8; - } - - /* 32 bits of stream serial number */ - { - long serialno=os->serialno; - for(i=14;i<18;i++){ - os->header[i]=(unsigned char)(serialno&0xff); - serialno>>=8; - } - } - - /* 32 bits of page counter (we have both counter and page header - because this val can roll over) */ - if(os->pageno==-1)os->pageno=0; /* because someone called - stream_reset; this would be a - strange thing to do in an - encode stream, but it has - plausible uses */ - { - long pageno=os->pageno++; - for(i=18;i<22;i++){ - os->header[i]=(unsigned char)(pageno&0xff); - pageno>>=8; - } - } - - /* zero for computation; filled in later */ - os->header[22]=0; - os->header[23]=0; - os->header[24]=0; - os->header[25]=0; - - /* segment table */ - os->header[26]=(unsigned char)(vals&0xff); - for(i=0;iheader[i+27]=(unsigned char)(os->lacing_vals[i]&0xff); - - /* set pointers in the ogg_page struct */ - og->header=os->header; - og->header_len=os->header_fill=vals+27; - og->body=os->body_data+os->body_returned; - og->body_len=bytes; - - /* advance the lacing data and set the body_returned pointer */ - - os->lacing_fill-=vals; - memmove(os->lacing_vals,os->lacing_vals+vals,os->lacing_fill*sizeof(*os->lacing_vals)); - memmove(os->granule_vals,os->granule_vals+vals,os->lacing_fill*sizeof(*os->granule_vals)); - os->body_returned+=bytes; - - /* calculate the checksum */ - - ogg_page_checksum_set(og); - - /* done */ - return(1); -} - -/* This will flush remaining packets into a page (returning nonzero), - even if there is not enough data to trigger a flush normally - (undersized page). If there are no packets or partial packets to - flush, ogg_stream_flush returns 0. Note that ogg_stream_flush will - try to flush a normal sized page like ogg_stream_pageout; a call to - ogg_stream_flush does not guarantee that all packets have flushed. - Only a return value of 0 from ogg_stream_flush indicates all packet - data is flushed into pages. - - since ogg_stream_flush will flush the last page in a stream even if - it's undersized, you almost certainly want to use ogg_stream_pageout - (and *not* ogg_stream_flush) unless you specifically need to flush - an page regardless of size in the middle of a stream. */ - -int ogg_stream_flush(ogg_stream_state *os,ogg_page *og){ - return ogg_stream_flush_i(os,og,1); -} - -/* This constructs pages from buffered packet segments. The pointers -returned are to static buffers; do not free. The returned buffers are -good only until the next call (using the same ogg_stream_state) */ - -int ogg_stream_pageout(ogg_stream_state *os, ogg_page *og){ - int force=0; - if(ogg_stream_check(os)) return 0; - - if((os->e_o_s&&os->lacing_fill) || /* 'were done, now flush' case */ - (os->lacing_fill&&!os->b_o_s)) /* 'initial header page' case */ - force=1; - - return(ogg_stream_flush_i(os,og,force)); -} - -int ogg_stream_eos(ogg_stream_state *os){ - if(ogg_stream_check(os)) return 1; - return os->e_o_s; -} - -/* DECODING PRIMITIVES: packet streaming layer **********************/ - -/* This has two layers to place more of the multi-serialno and paging - control in the application's hands. First, we expose a data buffer - using ogg_sync_buffer(). The app either copies into the - buffer, or passes it directly to read(), etc. We then call - ogg_sync_wrote() to tell how many bytes we just added. - - Pages are returned (pointers into the buffer in ogg_sync_state) - by ogg_sync_pageout(). The page is then submitted to - ogg_stream_pagein() along with the appropriate - ogg_stream_state* (ie, matching serialno). We then get raw - packets out calling ogg_stream_packetout() with a - ogg_stream_state. */ - -/* initialize the struct to a known state */ -int ogg_sync_init(ogg_sync_state *oy){ - if(oy){ - oy->storage = -1; /* used as a readiness flag */ - memset(oy,0,sizeof(*oy)); - } - return(0); -} - -/* clear non-flat storage within */ -int ogg_sync_clear(ogg_sync_state *oy){ - if(oy){ - if(oy->data)_ogg_free(oy->data); - memset(oy,0,sizeof(*oy)); - } - return(0); -} - -int ogg_sync_destroy(ogg_sync_state *oy){ - if(oy){ - ogg_sync_clear(oy); - _ogg_free(oy); - } - return(0); -} - -int ogg_sync_check(ogg_sync_state *oy){ - if(oy->storage<0) return -1; - return 0; -} - -char *ogg_sync_buffer(ogg_sync_state *oy, long size){ - if(ogg_sync_check(oy)) return NULL; - - /* first, clear out any space that has been previously returned */ - if(oy->returned){ - oy->fill-=oy->returned; - if(oy->fill>0) - memmove(oy->data,oy->data+oy->returned,oy->fill); - oy->returned=0; - } - - if(size>oy->storage-oy->fill){ - /* We need to extend the internal buffer */ - long newsize=size+oy->fill+4096; /* an extra page to be nice */ - void *ret; - - if(oy->data) - ret=_ogg_realloc(oy->data,newsize); - else - ret=_ogg_malloc(newsize); - if(!ret){ - ogg_sync_clear(oy); - return NULL; - } - oy->data=ret; - oy->storage=newsize; - } - - /* expose a segment at least as large as requested at the fill mark */ - return((char *)oy->data+oy->fill); -} - -int ogg_sync_wrote(ogg_sync_state *oy, long bytes){ - if(ogg_sync_check(oy))return -1; - if(oy->fill+bytes>oy->storage)return -1; - oy->fill+=bytes; - return(0); -} - -/* sync the stream. This is meant to be useful for finding page - boundaries. - - return values for this: - -n) skipped n bytes - 0) page not ready; more data (no bytes skipped) - n) page synced at current location; page length n bytes - -*/ - -long ogg_sync_pageseek(ogg_sync_state *oy,ogg_page *og){ - unsigned char *page=oy->data+oy->returned; - unsigned char *next; - long bytes=oy->fill-oy->returned; - - if(ogg_sync_check(oy))return 0; - - if(oy->headerbytes==0){ - int headerbytes,i; - if(bytes<27)return(0); /* not enough for a header */ - - /* verify capture pattern */ - if(memcmp(page,"OggS",4))goto sync_fail; - - headerbytes=page[26]+27; - if(bytesbodybytes+=page[27+i]; - oy->headerbytes=headerbytes; - } - - if(oy->bodybytes+oy->headerbytes>bytes)return(0); - - /* The whole test page is buffered. Verify the checksum */ - { - /* Grab the checksum bytes, set the header field to zero */ - char chksum[4]; - ogg_page log; - - memcpy(chksum,page+22,4); - memset(page+22,0,4); - - /* set up a temp page struct and recompute the checksum */ - log.header=page; - log.header_len=oy->headerbytes; - log.body=page+oy->headerbytes; - log.body_len=oy->bodybytes; - ogg_page_checksum_set(&log); - - /* Compare */ - if(memcmp(chksum,page+22,4)){ - /* D'oh. Mismatch! Corrupt page (or miscapture and not a page - at all) */ - /* replace the computed checksum with the one actually read in */ - memcpy(page+22,chksum,4); - - /* Bad checksum. Lose sync */ - goto sync_fail; - } - } - - /* yes, have a whole page all ready to go */ - { - unsigned char *page=oy->data+oy->returned; - long bytes; - - if(og){ - og->header=page; - og->header_len=oy->headerbytes; - og->body=page+oy->headerbytes; - og->body_len=oy->bodybytes; - } - - oy->unsynced=0; - oy->returned+=(bytes=oy->headerbytes+oy->bodybytes); - oy->headerbytes=0; - oy->bodybytes=0; - return(bytes); - } - - sync_fail: - - oy->headerbytes=0; - oy->bodybytes=0; - - /* search for possible capture */ - next=memchr(page+1,'O',bytes-1); - if(!next) - next=oy->data+oy->fill; - - oy->returned=(int)(next-oy->data); - return((long)-(next-page)); -} - -/* sync the stream and get a page. Keep trying until we find a page. - Supress 'sync errors' after reporting the first. - - return values: - -1) recapture (hole in data) - 0) need more data - 1) page returned - - Returns pointers into buffered data; invalidated by next call to - _stream, _clear, _init, or _buffer */ - -int ogg_sync_pageout(ogg_sync_state *oy, ogg_page *og){ - - if(ogg_sync_check(oy))return 0; - - /* all we need to do is verify a page at the head of the stream - buffer. If it doesn't verify, we look for the next potential - frame */ - - for(;;){ - long ret=ogg_sync_pageseek(oy,og); - if(ret>0){ - /* have a page */ - return(1); - } - if(ret==0){ - /* need more data */ - return(0); - } - - /* head did not start a synced page... skipped some bytes */ - if(!oy->unsynced){ - oy->unsynced=1; - return(-1); - } - - /* loop. keep looking */ - - } -} - -/* add the incoming page to the stream state; we decompose the page - into packet segments here as well. */ - -int ogg_stream_pagein(ogg_stream_state *os, ogg_page *og){ - unsigned char *header=og->header; - unsigned char *body=og->body; - long bodysize=og->body_len; - int segptr=0; - - int version=ogg_page_version(og); - int continued=ogg_page_continued(og); - int bos=ogg_page_bos(og); - int eos=ogg_page_eos(og); - ogg_int64_t granulepos=ogg_page_granulepos(og); - int serialno=ogg_page_serialno(og); - long pageno=ogg_page_pageno(og); - int segments=header[26]; - - if(ogg_stream_check(os)) return -1; - - /* clean up 'returned data' */ - { - long lr=os->lacing_returned; - long br=os->body_returned; - - /* body data */ - if(br){ - os->body_fill-=br; - if(os->body_fill) - memmove(os->body_data,os->body_data+br,os->body_fill); - os->body_returned=0; - } - - if(lr){ - /* segment table */ - if(os->lacing_fill-lr){ - memmove(os->lacing_vals,os->lacing_vals+lr, - (os->lacing_fill-lr)*sizeof(*os->lacing_vals)); - memmove(os->granule_vals,os->granule_vals+lr, - (os->lacing_fill-lr)*sizeof(*os->granule_vals)); - } - os->lacing_fill-=lr; - os->lacing_packet-=lr; - os->lacing_returned=0; - } - } - - /* check the serial number */ - if(serialno!=os->serialno)return(-1); - if(version>0)return(-1); - - if(_os_lacing_expand(os,segments+1)) return -1; - - /* are we in sequence? */ - if(pageno!=os->pageno){ - int i; - - /* unroll previous partial packet (if any) */ - for(i=os->lacing_packet;ilacing_fill;i++) - os->body_fill-=os->lacing_vals[i]&0xff; - os->lacing_fill=os->lacing_packet; - - /* make a note of dropped data in segment table */ - if(os->pageno!=-1){ - os->lacing_vals[os->lacing_fill++]=0x400; - os->lacing_packet++; - } - } - - /* are we a 'continued packet' page? If so, we may need to skip - some segments */ - if(continued){ - if(os->lacing_fill<1 || - os->lacing_vals[os->lacing_fill-1]==0x400){ - bos=0; - for(;segptrbody_data+os->body_fill,body,bodysize); - os->body_fill+=bodysize; - } - - { - int saved=-1; - while(segptrlacing_vals[os->lacing_fill]=val; - os->granule_vals[os->lacing_fill]=-1; - - if(bos){ - os->lacing_vals[os->lacing_fill]|=0x100; - bos=0; - } - - if(val<255)saved=os->lacing_fill; - - os->lacing_fill++; - segptr++; - - if(val<255)os->lacing_packet=os->lacing_fill; - } - - /* set the granulepos on the last granuleval of the last full packet */ - if(saved!=-1){ - os->granule_vals[saved]=granulepos; - } - - } - - if(eos){ - os->e_o_s=1; - if(os->lacing_fill>0) - os->lacing_vals[os->lacing_fill-1]|=0x200; - } - - os->pageno=pageno+1; - - return(0); -} - -/* clear things to an initial state. Good to call, eg, before seeking */ -int ogg_sync_reset(ogg_sync_state *oy){ - if(ogg_sync_check(oy))return -1; - - oy->fill=0; - oy->returned=0; - oy->unsynced=0; - oy->headerbytes=0; - oy->bodybytes=0; - return(0); -} - -int ogg_stream_reset(ogg_stream_state *os){ - if(ogg_stream_check(os)) return -1; - - os->body_fill=0; - os->body_returned=0; - - os->lacing_fill=0; - os->lacing_packet=0; - os->lacing_returned=0; - - os->header_fill=0; - - os->e_o_s=0; - os->b_o_s=0; - os->pageno=-1; - os->packetno=0; - os->granulepos=0; - - return(0); -} - -int ogg_stream_reset_serialno(ogg_stream_state *os,int serialno){ - if(ogg_stream_check(os)) return -1; - ogg_stream_reset(os); - os->serialno=serialno; - return(0); -} - -static int _packetout(ogg_stream_state *os,ogg_packet *op,int adv){ - - /* The last part of decode. We have the stream broken into packet - segments. Now we need to group them into packets (or return the - out of sync markers) */ - - int ptr=os->lacing_returned; - - if(os->lacing_packet<=ptr)return(0); - - if(os->lacing_vals[ptr]&0x400){ - /* we need to tell the codec there's a gap; it might need to - handle previous packet dependencies. */ - os->lacing_returned++; - os->packetno++; - return(-1); - } - - if(!op && !adv)return(1); /* just using peek as an inexpensive way - to ask if there's a whole packet - waiting */ - - /* Gather the whole packet. We'll have no holes or a partial packet */ - { - int size=os->lacing_vals[ptr]&0xff; - int bytes=size; - int eos=os->lacing_vals[ptr]&0x200; /* last packet of the stream? */ - int bos=os->lacing_vals[ptr]&0x100; /* first packet of the stream? */ - - while(size==255){ - int val=os->lacing_vals[++ptr]; - size=val&0xff; - if(val&0x200)eos=0x200; - bytes+=size; - } - - if(op){ - op->e_o_s=eos; - op->b_o_s=bos; - op->packet=os->body_data+os->body_returned; - op->packetno=os->packetno; - op->granulepos=os->granule_vals[ptr]; - op->bytes=bytes; - } - - if(adv){ - os->body_returned+=bytes; - os->lacing_returned=ptr+1; - os->packetno++; - } - } - return(1); -} - -int ogg_stream_packetout(ogg_stream_state *os,ogg_packet *op){ - if(ogg_stream_check(os)) return 0; - return _packetout(os,op,1); -} - -int ogg_stream_packetpeek(ogg_stream_state *os,ogg_packet *op){ - if(ogg_stream_check(os)) return 0; - return _packetout(os,op,0); -} - -void ogg_packet_clear(ogg_packet *op) { - _ogg_free(op->packet); - memset(op, 0, sizeof(*op)); -} - -#ifdef _V_SELFTEST -#include - -ogg_stream_state os_en, os_de; -ogg_sync_state oy; - -void checkpacket(ogg_packet *op,int len, int no, int pos){ - long j; - static int sequence=0; - static int lastno=0; - - if(op->bytes!=len){ - fprintf(stderr,"incorrect packet length (%d != %d)!\n",op->bytes,len); - exit(1); - } - if(op->granulepos!=pos){ - fprintf(stderr,"incorrect packet granpos (%ld != %ld)!\n",(long)op->granulepos,pos); - exit(1); - } - - /* packet number just follows sequence/gap; adjust the input number - for that */ - if(no==0){ - sequence=0; - }else{ - sequence++; - if(no>lastno+1) - sequence++; - } - lastno=no; - if(op->packetno!=sequence){ - fprintf(stderr,"incorrect packet sequence %ld != %d\n", - (long)(op->packetno),sequence); - exit(1); - } - - /* Test data */ - for(j=0;jbytes;j++) - if(op->packet[j]!=((j+no)&0xff)){ - fprintf(stderr,"body data mismatch (1) at pos %ld: %x!=%lx!\n\n", - j,op->packet[j],(j+no)&0xff); - exit(1); - } -} - -void check_page(unsigned char *data,const int *header,ogg_page *og){ - long j; - /* Test data */ - for(j=0;jbody_len;j++) - if(og->body[j]!=data[j]){ - fprintf(stderr,"body data mismatch (2) at pos %ld: %x!=%x!\n\n", - j,data[j],og->body[j]); - exit(1); - } - - /* Test header */ - for(j=0;jheader_len;j++){ - if(og->header[j]!=header[j]){ - fprintf(stderr,"header content mismatch at pos %ld:\n",j); - for(j=0;jheader[j]); - fprintf(stderr,"\n"); - exit(1); - } - } - if(og->header_len!=header[26]+27){ - fprintf(stderr,"header length incorrect! (%ld!=%d)\n", - og->header_len,header[26]+27); - exit(1); - } -} - -void print_header(ogg_page *og){ - int j; - fprintf(stderr,"\nHEADER:\n"); - fprintf(stderr," capture: %c %c %c %c version: %d flags: %x\n", - og->header[0],og->header[1],og->header[2],og->header[3], - (int)og->header[4],(int)og->header[5]); - - fprintf(stderr," granulepos: %d serialno: %d pageno: %ld\n", - (og->header[9]<<24)|(og->header[8]<<16)| - (og->header[7]<<8)|og->header[6], - (og->header[17]<<24)|(og->header[16]<<16)| - (og->header[15]<<8)|og->header[14], - ((long)(og->header[21])<<24)|(og->header[20]<<16)| - (og->header[19]<<8)|og->header[18]); - - fprintf(stderr," checksum: %02x:%02x:%02x:%02x\n segments: %d (", - (int)og->header[22],(int)og->header[23], - (int)og->header[24],(int)og->header[25], - (int)og->header[26]); - - for(j=27;jheader_len;j++) - fprintf(stderr,"%d ",(int)og->header[j]); - fprintf(stderr,")\n\n"); -} - -void copy_page(ogg_page *og){ - unsigned char *temp=_ogg_malloc(og->header_len); - memcpy(temp,og->header,og->header_len); - og->header=temp; - - temp=_ogg_malloc(og->body_len); - memcpy(temp,og->body,og->body_len); - og->body=temp; -} - -void free_page(ogg_page *og){ - _ogg_free (og->header); - _ogg_free (og->body); -} - -void error(void){ - fprintf(stderr,"error!\n"); - exit(1); -} - -/* 17 only */ -const int head1_0[] = {0x4f,0x67,0x67,0x53,0,0x06, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,0,0,0,0, - 0x15,0xed,0xec,0x91, - 1, - 17}; - -/* 17, 254, 255, 256, 500, 510, 600 byte, pad */ -const int head1_1[] = {0x4f,0x67,0x67,0x53,0,0x02, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,0,0,0,0, - 0x59,0x10,0x6c,0x2c, - 1, - 17}; -const int head2_1[] = {0x4f,0x67,0x67,0x53,0,0x04, - 0x07,0x18,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,1,0,0,0, - 0x89,0x33,0x85,0xce, - 13, - 254,255,0,255,1,255,245,255,255,0, - 255,255,90}; - -/* nil packets; beginning,middle,end */ -const int head1_2[] = {0x4f,0x67,0x67,0x53,0,0x02, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,0,0,0,0, - 0xff,0x7b,0x23,0x17, - 1, - 0}; -const int head2_2[] = {0x4f,0x67,0x67,0x53,0,0x04, - 0x07,0x28,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,1,0,0,0, - 0x5c,0x3f,0x66,0xcb, - 17, - 17,254,255,0,0,255,1,0,255,245,255,255,0, - 255,255,90,0}; - -/* large initial packet */ -const int head1_3[] = {0x4f,0x67,0x67,0x53,0,0x02, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,0,0,0,0, - 0x01,0x27,0x31,0xaa, - 18, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,10}; - -const int head2_3[] = {0x4f,0x67,0x67,0x53,0,0x04, - 0x07,0x08,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,1,0,0,0, - 0x7f,0x4e,0x8a,0xd2, - 4, - 255,4,255,0}; - - -/* continuing packet test */ -const int head1_4[] = {0x4f,0x67,0x67,0x53,0,0x02, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,0,0,0,0, - 0xff,0x7b,0x23,0x17, - 1, - 0}; - -const int head2_4[] = {0x4f,0x67,0x67,0x53,0,0x00, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x01,0x02,0x03,0x04,1,0,0,0, - 0xf8,0x3c,0x19,0x79, - 255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255}; - -const int head3_4[] = {0x4f,0x67,0x67,0x53,0,0x05, - 0x07,0x0c,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,2,0,0,0, - 0x38,0xe6,0xb6,0x28, - 6, - 255,220,255,4,255,0}; - - -/* spill expansion test */ -const int head1_4b[] = {0x4f,0x67,0x67,0x53,0,0x02, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,0,0,0,0, - 0xff,0x7b,0x23,0x17, - 1, - 0}; - -const int head2_4b[] = {0x4f,0x67,0x67,0x53,0,0x00, - 0x07,0x10,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,1,0,0,0, - 0xce,0x8f,0x17,0x1a, - 23, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,10,255,4,255,0,0}; - - -const int head3_4b[] = {0x4f,0x67,0x67,0x53,0,0x04, - 0x07,0x14,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,2,0,0,0, - 0x9b,0xb2,0x50,0xa1, - 1, - 0}; - -/* page with the 255 segment limit */ -const int head1_5[] = {0x4f,0x67,0x67,0x53,0,0x02, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,0,0,0,0, - 0xff,0x7b,0x23,0x17, - 1, - 0}; - -const int head2_5[] = {0x4f,0x67,0x67,0x53,0,0x00, - 0x07,0xfc,0x03,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,1,0,0,0, - 0xed,0x2a,0x2e,0xa7, - 255, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10}; - -const int head3_5[] = {0x4f,0x67,0x67,0x53,0,0x04, - 0x07,0x00,0x04,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,2,0,0,0, - 0x6c,0x3b,0x82,0x3d, - 1, - 50}; - - -/* packet that overspans over an entire page */ -const int head1_6[] = {0x4f,0x67,0x67,0x53,0,0x02, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,0,0,0,0, - 0xff,0x7b,0x23,0x17, - 1, - 0}; - -const int head2_6[] = {0x4f,0x67,0x67,0x53,0,0x00, - 0x07,0x04,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,1,0,0,0, - 0x68,0x22,0x7c,0x3d, - 255, - 100, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255}; - -const int head3_6[] = {0x4f,0x67,0x67,0x53,0,0x01, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x01,0x02,0x03,0x04,2,0,0,0, - 0xf4,0x87,0xba,0xf3, - 255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255}; - -const int head4_6[] = {0x4f,0x67,0x67,0x53,0,0x05, - 0x07,0x10,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,3,0,0,0, - 0xf7,0x2f,0x6c,0x60, - 5, - 254,255,4,255,0}; - -/* packet that overspans over an entire page */ -const int head1_7[] = {0x4f,0x67,0x67,0x53,0,0x02, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,0,0,0,0, - 0xff,0x7b,0x23,0x17, - 1, - 0}; - -const int head2_7[] = {0x4f,0x67,0x67,0x53,0,0x00, - 0x07,0x04,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,1,0,0,0, - 0x68,0x22,0x7c,0x3d, - 255, - 100, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255}; - -const int head3_7[] = {0x4f,0x67,0x67,0x53,0,0x05, - 0x07,0x08,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,2,0,0,0, - 0xd4,0xe0,0x60,0xe5, - 1, - 0}; - -void test_pack(const int *pl, const int **headers, int byteskip, - int pageskip, int packetskip){ - unsigned char *data=_ogg_malloc(1024*1024); /* for scripted test cases only */ - long inptr=0; - long outptr=0; - long deptr=0; - long depacket=0; - long granule_pos=7,pageno=0; - int i,j,packets,pageout=pageskip; - int eosflag=0; - int bosflag=0; - - int byteskipcount=0; - - ogg_stream_reset(&os_en); - ogg_stream_reset(&os_de); - ogg_sync_reset(&oy); - - for(packets=0;packetsbyteskip){ - memcpy(next,og.header,byteskipcount-byteskip); - next+=byteskipcount-byteskip; - byteskipcount=byteskip; - } - - byteskipcount+=og.body_len; - if(byteskipcount>byteskip){ - memcpy(next,og.body,byteskipcount-byteskip); - next+=byteskipcount-byteskip; - byteskipcount=byteskip; - } - - ogg_sync_wrote(&oy,next-buf); - - while(1){ - int ret=ogg_sync_pageout(&oy,&og_de); - if(ret==0)break; - if(ret<0)continue; - /* got a page. Happy happy. Verify that it's good. */ - - fprintf(stderr,"(%ld), ",pageout); - - check_page(data+deptr,headers[pageout],&og_de); - deptr+=og_de.body_len; - pageout++; - - /* submit it to deconstitution */ - ogg_stream_pagein(&os_de,&og_de); - - /* packets out? */ - while(ogg_stream_packetpeek(&os_de,&op_de2)>0){ - ogg_stream_packetpeek(&os_de,NULL); - ogg_stream_packetout(&os_de,&op_de); /* just catching them all */ - - /* verify peek and out match */ - if(memcmp(&op_de,&op_de2,sizeof(op_de))){ - fprintf(stderr,"packetout != packetpeek! pos=%ld\n", - depacket); - exit(1); - } - - /* verify the packet! */ - /* check data */ - if(memcmp(data+depacket,op_de.packet,op_de.bytes)){ - fprintf(stderr,"packet data mismatch in decode! pos=%ld\n", - depacket); - exit(1); - } - /* check bos flag */ - if(bosflag==0 && op_de.b_o_s==0){ - fprintf(stderr,"b_o_s flag not set on packet!\n"); - exit(1); - } - if(bosflag && op_de.b_o_s){ - fprintf(stderr,"b_o_s flag incorrectly set on packet!\n"); - exit(1); - } - bosflag=1; - depacket+=op_de.bytes; - - /* check eos flag */ - if(eosflag){ - fprintf(stderr,"Multiple decoded packets with eos flag!\n"); - exit(1); - } - - if(op_de.e_o_s)eosflag=1; - - /* check granulepos flag */ - if(op_de.granulepos!=-1){ - fprintf(stderr," granule:%ld ",(long)op_de.granulepos); - } - } - } - } - } - } - } - _ogg_free(data); - if(headers[pageno]!=NULL){ - fprintf(stderr,"did not write last page!\n"); - exit(1); - } - if(headers[pageout]!=NULL){ - fprintf(stderr,"did not decode last page!\n"); - exit(1); - } - if(inptr!=outptr){ - fprintf(stderr,"encoded page data incomplete!\n"); - exit(1); - } - if(inptr!=deptr){ - fprintf(stderr,"decoded page data incomplete!\n"); - exit(1); - } - if(inptr!=depacket){ - fprintf(stderr,"decoded packet data incomplete!\n"); - exit(1); - } - if(!eosflag){ - fprintf(stderr,"Never got a packet with EOS set!\n"); - exit(1); - } - fprintf(stderr,"ok.\n"); -} - -int main(void){ - - ogg_stream_init(&os_en,0x04030201); - ogg_stream_init(&os_de,0x04030201); - ogg_sync_init(&oy); - - /* Exercise each code path in the framing code. Also verify that - the checksums are working. */ - - { - /* 17 only */ - const int packets[]={17, -1}; - const int *headret[]={head1_0,NULL}; - - fprintf(stderr,"testing single page encoding... "); - test_pack(packets,headret,0,0,0); - } - - { - /* 17, 254, 255, 256, 500, 510, 600 byte, pad */ - const int packets[]={17, 254, 255, 256, 500, 510, 600, -1}; - const int *headret[]={head1_1,head2_1,NULL}; - - fprintf(stderr,"testing basic page encoding... "); - test_pack(packets,headret,0,0,0); - } - - { - /* nil packets; beginning,middle,end */ - const int packets[]={0,17, 254, 255, 0, 256, 0, 500, 510, 600, 0, -1}; - const int *headret[]={head1_2,head2_2,NULL}; - - fprintf(stderr,"testing basic nil packets... "); - test_pack(packets,headret,0,0,0); - } - - { - /* large initial packet */ - const int packets[]={4345,259,255,-1}; - const int *headret[]={head1_3,head2_3,NULL}; - - fprintf(stderr,"testing initial-packet lacing > 4k... "); - test_pack(packets,headret,0,0,0); - } - - { - /* continuing packet test; with page spill expansion, we have to - overflow the lacing table. */ - const int packets[]={0,65500,259,255,-1}; - const int *headret[]={head1_4,head2_4,head3_4,NULL}; - - fprintf(stderr,"testing single packet page span... "); - test_pack(packets,headret,0,0,0); - } - - { - /* spill expand packet test */ - const int packets[]={0,4345,259,255,0,0,-1}; - const int *headret[]={head1_4b,head2_4b,head3_4b,NULL}; - - fprintf(stderr,"testing page spill expansion... "); - test_pack(packets,headret,0,0,0); - } - - /* page with the 255 segment limit */ - { - - const int packets[]={0,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,50,-1}; - const int *headret[]={head1_5,head2_5,head3_5,NULL}; - - fprintf(stderr,"testing max packet segments... "); - test_pack(packets,headret,0,0,0); - } - - { - /* packet that overspans over an entire page */ - const int packets[]={0,100,130049,259,255,-1}; - const int *headret[]={head1_6,head2_6,head3_6,head4_6,NULL}; - - fprintf(stderr,"testing very large packets... "); - test_pack(packets,headret,0,0,0); - } - - { - /* test for the libogg 1.1.1 resync in large continuation bug - found by Josh Coalson) */ - const int packets[]={0,100,130049,259,255,-1}; - const int *headret[]={head1_6,head2_6,head3_6,head4_6,NULL}; - - fprintf(stderr,"testing continuation resync in very large packets... "); - test_pack(packets,headret,100,2,3); - } - - { - /* term only page. why not? */ - const int packets[]={0,100,64770,-1}; - const int *headret[]={head1_7,head2_7,head3_7,NULL}; - - fprintf(stderr,"testing zero data page (1 nil packet)... "); - test_pack(packets,headret,0,0,0); - } - - - - { - /* build a bunch of pages for testing */ - unsigned char *data=_ogg_malloc(1024*1024); - int pl[]={0, 1,1,98,4079, 1,1,2954,2057, 76,34,912,0,234,1000,1000, 1000,300,-1}; - int inptr=0,i,j; - ogg_page og[5]; - - ogg_stream_reset(&os_en); - - for(i=0;pl[i]!=-1;i++){ - ogg_packet op; - int len=pl[i]; - - op.packet=data+inptr; - op.bytes=len; - op.e_o_s=(pl[i+1]<0?1:0); - op.granulepos=(i+1)*1000; - - for(j=0;j0)error(); - - /* Test fractional page inputs: incomplete fixed header */ - memcpy(ogg_sync_buffer(&oy,og[1].header_len),og[1].header+3, - 20); - ogg_sync_wrote(&oy,20); - if(ogg_sync_pageout(&oy,&og_de)>0)error(); - - /* Test fractional page inputs: incomplete header */ - memcpy(ogg_sync_buffer(&oy,og[1].header_len),og[1].header+23, - 5); - ogg_sync_wrote(&oy,5); - if(ogg_sync_pageout(&oy,&og_de)>0)error(); - - /* Test fractional page inputs: incomplete body */ - - memcpy(ogg_sync_buffer(&oy,og[1].header_len),og[1].header+28, - og[1].header_len-28); - ogg_sync_wrote(&oy,og[1].header_len-28); - if(ogg_sync_pageout(&oy,&og_de)>0)error(); - - memcpy(ogg_sync_buffer(&oy,og[1].body_len),og[1].body,1000); - ogg_sync_wrote(&oy,1000); - if(ogg_sync_pageout(&oy,&og_de)>0)error(); - - memcpy(ogg_sync_buffer(&oy,og[1].body_len),og[1].body+1000, - og[1].body_len-1000); - ogg_sync_wrote(&oy,og[1].body_len-1000); - if(ogg_sync_pageout(&oy,&og_de)<=0)error(); - - fprintf(stderr,"ok.\n"); - } - - /* Test fractional page inputs: page + incomplete capture */ - { - ogg_page og_de; - fprintf(stderr,"Testing sync on 1+partial inputs... "); - ogg_sync_reset(&oy); - - memcpy(ogg_sync_buffer(&oy,og[1].header_len),og[1].header, - og[1].header_len); - ogg_sync_wrote(&oy,og[1].header_len); - - memcpy(ogg_sync_buffer(&oy,og[1].body_len),og[1].body, - og[1].body_len); - ogg_sync_wrote(&oy,og[1].body_len); - - memcpy(ogg_sync_buffer(&oy,og[1].header_len),og[1].header, - 20); - ogg_sync_wrote(&oy,20); - if(ogg_sync_pageout(&oy,&og_de)<=0)error(); - if(ogg_sync_pageout(&oy,&og_de)>0)error(); - - memcpy(ogg_sync_buffer(&oy,og[1].header_len),og[1].header+20, - og[1].header_len-20); - ogg_sync_wrote(&oy,og[1].header_len-20); - memcpy(ogg_sync_buffer(&oy,og[1].body_len),og[1].body, - og[1].body_len); - ogg_sync_wrote(&oy,og[1].body_len); - if(ogg_sync_pageout(&oy,&og_de)<=0)error(); - - fprintf(stderr,"ok.\n"); - } - - /* Test recapture: garbage + page */ - { - ogg_page og_de; - fprintf(stderr,"Testing search for capture... "); - ogg_sync_reset(&oy); - - /* 'garbage' */ - memcpy(ogg_sync_buffer(&oy,og[1].body_len),og[1].body, - og[1].body_len); - ogg_sync_wrote(&oy,og[1].body_len); - - memcpy(ogg_sync_buffer(&oy,og[1].header_len),og[1].header, - og[1].header_len); - ogg_sync_wrote(&oy,og[1].header_len); - - memcpy(ogg_sync_buffer(&oy,og[1].body_len),og[1].body, - og[1].body_len); - ogg_sync_wrote(&oy,og[1].body_len); - - memcpy(ogg_sync_buffer(&oy,og[2].header_len),og[2].header, - 20); - ogg_sync_wrote(&oy,20); - if(ogg_sync_pageout(&oy,&og_de)>0)error(); - if(ogg_sync_pageout(&oy,&og_de)<=0)error(); - if(ogg_sync_pageout(&oy,&og_de)>0)error(); - - memcpy(ogg_sync_buffer(&oy,og[2].header_len),og[2].header+20, - og[2].header_len-20); - ogg_sync_wrote(&oy,og[2].header_len-20); - memcpy(ogg_sync_buffer(&oy,og[2].body_len),og[2].body, - og[2].body_len); - ogg_sync_wrote(&oy,og[2].body_len); - if(ogg_sync_pageout(&oy,&og_de)<=0)error(); - - fprintf(stderr,"ok.\n"); - } - - /* Test recapture: page + garbage + page */ - { - ogg_page og_de; - fprintf(stderr,"Testing recapture... "); - ogg_sync_reset(&oy); - - memcpy(ogg_sync_buffer(&oy,og[1].header_len),og[1].header, - og[1].header_len); - ogg_sync_wrote(&oy,og[1].header_len); - - memcpy(ogg_sync_buffer(&oy,og[1].body_len),og[1].body, - og[1].body_len); - ogg_sync_wrote(&oy,og[1].body_len); - - memcpy(ogg_sync_buffer(&oy,og[2].header_len),og[2].header, - og[2].header_len); - ogg_sync_wrote(&oy,og[2].header_len); - - memcpy(ogg_sync_buffer(&oy,og[2].header_len),og[2].header, - og[2].header_len); - ogg_sync_wrote(&oy,og[2].header_len); - - if(ogg_sync_pageout(&oy,&og_de)<=0)error(); - - memcpy(ogg_sync_buffer(&oy,og[2].body_len),og[2].body, - og[2].body_len-5); - ogg_sync_wrote(&oy,og[2].body_len-5); - - memcpy(ogg_sync_buffer(&oy,og[3].header_len),og[3].header, - og[3].header_len); - ogg_sync_wrote(&oy,og[3].header_len); - - memcpy(ogg_sync_buffer(&oy,og[3].body_len),og[3].body, - og[3].body_len); - ogg_sync_wrote(&oy,og[3].body_len); - - if(ogg_sync_pageout(&oy,&og_de)>0)error(); - if(ogg_sync_pageout(&oy,&og_de)<=0)error(); - - fprintf(stderr,"ok.\n"); - } - - /* Free page data that was previously copied */ - { - for(i=0;i<5;i++){ - free_page(&og[i]); - } - } - } - - return(0); -} - -#endif - - - - diff --git a/jni/sdl-1.2/Android.mk b/jni/sdl-1.2/Android.mk index 7650621..0d63225 100644 --- a/jni/sdl-1.2/Android.mk +++ b/jni/sdl-1.2/Android.mk @@ -2,12 +2,16 @@ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) -LOCAL_MODULE := $(lastword $(subst /, ,$(LOCAL_PATH))) +LOCAL_MODULE := libsdl-1.2 ifndef SDL_JAVA_PACKAGE_PATH $(error Please define SDL_JAVA_PACKAGE_PATH to the path of your Java package with dots replaced with underscores, for example "com_example_SanAngeles") endif +SDL_TRACKBALL_KEYUP_DELAY := 1 + +SDL_VIDEO_RENDER_RESIZE := 1 + LOCAL_C_INCLUDES := $(LOCAL_PATH)/include LOCAL_CFLAGS := -O3 \ -DSDL_JAVA_PACKAGE_PATH=$(SDL_JAVA_PACKAGE_PATH) \ @@ -55,7 +59,7 @@ LOCAL_CPP_EXTENSION := .cpp # Note this "simple" makefile var substitution, you can find even more complex examples in different Android projects LOCAL_SRC_FILES := $(foreach F, $(SDL_SRCS), $(addprefix $(dir $(F)),$(notdir $(wildcard $(LOCAL_PATH)/$(F))))) -LOCAL_SHARED_LIBRARIES := sdl_native_helpers # Not really a dependency, needed for CustomBuildScript +LOCAL_SHARED_LIBRARIES := libsdl_native_helpers # Not really a dependency, needed for CustomBuildScript LOCAL_LDLIBS := -lGLESv1_CM -ldl -llog diff --git a/jni/sdl-1.2/src/audio/android/SDL_androidaudio.c b/jni/sdl-1.2/src/audio/android/SDL_androidaudio.c index cbc4991..7c47090 100644 --- a/jni/sdl-1.2/src/audio/android/SDL_androidaudio.c +++ b/jni/sdl-1.2/src/audio/android/SDL_androidaudio.c @@ -405,6 +405,7 @@ JNIEXPORT jint JNICALL JAVA_EXPORT_NAME(AudioThread_nativeAudioInitJavaCallbacks JavaDeinitAudio = (*jniEnv)->GetMethodID(jniEnv, JavaAudioThreadClass, "deinitAudio", "()I"); JavaPauseAudioPlayback = (*jniEnv)->GetMethodID(jniEnv, JavaAudioThreadClass, "pauseAudioPlayback", "()I"); JavaResumeAudioPlayback = (*jniEnv)->GetMethodID(jniEnv, JavaAudioThreadClass, "resumeAudioPlayback", "()I"); + return 0; } JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) diff --git a/jni/sdl-1.2/src/video/android/SDL_androidvideo.c b/jni/sdl-1.2/src/video/android/SDL_androidvideo.c index 99ad652..56edd32 100644 --- a/jni/sdl-1.2/src/video/android/SDL_androidvideo.c +++ b/jni/sdl-1.2/src/video/android/SDL_androidvideo.c @@ -367,6 +367,7 @@ int SDL_ANDROID_SetApplicationPutToBackgroundCallback( if( appRestoredCallback ) appRestoredCallback = appRestored; + return 0; } extern int SDL_ANDROID_SetOpenALPutToBackgroundCallback( @@ -379,6 +380,7 @@ int SDL_ANDROID_SetOpenALPutToBackgroundCallback( { openALPutToBackgroundCallback = PutToBackground; openALRestoredCallback = Restored; + return 0; } JNIEXPORT void JNICALL @@ -429,6 +431,7 @@ int SDLCALL SDL_SetClipboardText(const char *text) if( s ) (*JavaEnv)->DeleteLocalRef( JavaEnv, s ); (*JavaEnv)->PopLocalFrame(JavaEnv, NULL); + return 0; } char * SDLCALL SDL_GetClipboardText(void) @@ -465,6 +468,7 @@ int SDLCALL SDL_HasClipboardText(void) return ret; } +JNIEXPORT void JNICALL JAVA_EXPORT_NAME(DemoRenderer_nativeClipboardChanged) ( JNIEnv* env, jobject thiz ) { if ( SDL_ProcessEvents[SDL_SYSWMEVENT] == SDL_ENABLE ) diff --git a/jni/sdl-1.2/src/video/android/SDL_touchscreenkeyboard.c b/jni/sdl-1.2/src/video/android/SDL_touchscreenkeyboard.c index e1c4335..a467900 100644 --- a/jni/sdl-1.2/src/video/android/SDL_touchscreenkeyboard.c +++ b/jni/sdl-1.2/src/video/android/SDL_touchscreenkeyboard.c @@ -1165,6 +1165,7 @@ SDLKey SDL_ANDROID_GetScreenKeyboardButtonKey(int buttonId) int SDL_ANDROID_SetScreenKeyboardShown(int shown) { touchscreenKeyboardShown = shown; + return 0; }; int SDL_ANDROID_GetScreenKeyboardShown(void) @@ -1268,6 +1269,7 @@ int SDLCALL SDL_ANDROID_SetScreenKeyboardButtonStayPressedAfterTouch(int buttonI int SDLCALL SDL_ANDROID_SetScreenKeyboardTransparency(int alpha) { transparency = (float)alpha / 255.0f; + return 0; } static int ScreenKbRedefinedByUser = 0; @@ -1327,6 +1329,7 @@ extern DECLSPEC int SDL_ANDROID_ScreenKeyboardUpdateToNewVideoMode(int oldx, int pos2.h = (pos.y + pos.h) * newy / oldy - pos2.y; SDL_ANDROID_SetScreenKeyboardButtonPos(i, &pos2); } + return 0; } /** diff --git a/jni/sdl_main/Android.mk b/jni/sdl_main/Android.mk index c31d216..437d1e2 100644 --- a/jni/sdl_main/Android.mk +++ b/jni/sdl_main/Android.mk @@ -2,7 +2,7 @@ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) -LOCAL_MODULE := sdl_main +LOCAL_MODULE := libsdl_main ifndef SDL_JAVA_PACKAGE_PATH $(error Please define SDL_JAVA_PACKAGE_PATH to the path of your Java package with dots replaced with underscores, for example "com_example_SanAngeles") @@ -15,7 +15,7 @@ LOCAL_CPP_EXTENSION := .cpp LOCAL_SRC_FILES := sdl_main.c SDL_android_main.cpp -LOCAL_SHARED_LIBRARIES := sdl-$(SDL_VERSION) application +LOCAL_SHARED_LIBRARIES := libsdl-$(SDL_VERSION) libapplication LOCAL_LDLIBS := -llog include $(BUILD_SHARED_LIBRARY) diff --git a/jni/sdl_native_helpers/Android.mk b/jni/sdl_native_helpers/Android.mk index 3295ce8..d2c2520 100644 --- a/jni/sdl_native_helpers/Android.mk +++ b/jni/sdl_native_helpers/Android.mk @@ -2,7 +2,7 @@ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) -LOCAL_MODULE := sdl_native_helpers +LOCAL_MODULE := libsdl_native_helpers ifndef SDL_JAVA_PACKAGE_PATH $(error Please define SDL_JAVA_PACKAGE_PATH to the path of your Java package with dots replaced with underscores, for example "com_example_SanAngeles") diff --git a/jni/sdl_ttf/Android.mk b/jni/sdl_ttf/Android.mk index 3a2cf27..0b1fb87 100644 --- a/jni/sdl_ttf/Android.mk +++ b/jni/sdl_ttf/Android.mk @@ -2,7 +2,7 @@ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) -LOCAL_MODULE := sdl_ttf +LOCAL_MODULE := libsdl_ttf LOCAL_C_INCLUDES := $(LOCAL_PATH) $(LOCAL_PATH)/../sdl-$(SDL_VERSION)/include $(LOCAL_PATH)/../freetype/include $(LOCAL_PATH)/include LOCAL_CFLAGS := -Os @@ -11,8 +11,8 @@ LOCAL_CPP_EXTENSION := .cpp LOCAL_SRC_FILES := SDL_ttf.c -LOCAL_SHARED_LIBRARIES := sdl-$(SDL_VERSION) -LOCAL_STATIC_LIBRARIES := freetype +LOCAL_SHARED_LIBRARIES := libsdl-$(SDL_VERSION) +LOCAL_STATIC_LIBRARIES := libfreetype LOCAL_LDLIBS := -lz include $(BUILD_SHARED_LIBRARY) diff --git a/proguard-project.txt b/proguard-project.txt deleted file mode 100644 index f2fe155..0000000 --- a/proguard-project.txt +++ /dev/null @@ -1,20 +0,0 @@ -# To enable ProGuard in your project, edit project.properties -# to define the proguard.config property as described in that file. -# -# Add project specific ProGuard rules here. -# By default, the flags in this file are appended to flags specified -# in ${sdk.dir}/tools/proguard/proguard-android.txt -# You can edit the include path and order by changing the ProGuard -# include property in project.properties. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# Add any project specific keep options here: - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} diff --git a/project.properties b/project.properties deleted file mode 100644 index 6e18427..0000000 --- a/project.properties +++ /dev/null @@ -1,14 +0,0 @@ -# This file is automatically generated by Android Tools. -# Do not modify this file -- YOUR CHANGES WILL BE ERASED! -# -# This file must be checked in Version Control Systems. -# -# To customize properties used by the Ant build system edit -# "ant.properties", and override values to adapt the script to your -# project structure. -# -# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): -#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt - -# Project target. -target=android-21