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